{
  "description": "Generator information:\n- Generated from: /apimanagement/resource-manager/Microsoft.ApiManagement/stable/2022-08-01/apimapis.json\n- ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": "string"
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "properties": {
        "apiRevision": {
          "description": "ApiRevision: Describes the revision of the API. If no value is provided, default revision 1 is created",
          "maxLength": 100,
          "minLength": 1,
          "type": "string"
        },
        "apiRevisionDescription": {
          "description": "ApiRevisionDescription: Description of the API Revision.",
          "maxLength": 256,
          "type": "string"
        },
        "apiType": {
          "description": "ApiType: Type of API to create.\n* `http` creates a REST API\n* `soap` creates a SOAP pass-through API\n* `websocket` creates websocket API\n* `graphql` creates GraphQL API.",
          "enum": [
            "graphql",
            "http",
            "soap",
            "websocket"
          ],
          "type": "string"
        },
        "apiVersion": {
          "description": "APIVersion: Indicates the version identifier of the API if the API is versioned",
          "maxLength": 100,
          "type": "string"
        },
        "apiVersionDescription": {
          "description": "ApiVersionDescription: Description of the API Version.",
          "maxLength": 256,
          "type": "string"
        },
        "apiVersionSet": {
          "description": "ApiVersionSet: Version set details",
          "properties": {
            "description": {
              "description": "Description: Description of API Version Set.",
              "type": "string"
            },
            "name": {
              "description": "Name: The display Name of the API Version Set.",
              "type": "string"
            },
            "reference": {
              "description": "Reference: Identifier for existing API Version Set. Omit this value to create a new Version Set.",
              "properties": {
                "armId": {
                  "description": "ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.\nThe /resourcegroups/{resourceGroupName} bit is optional as some resources are scoped at the subscription level\nARMID is mutually exclusive with Group, Kind, Namespace and Name.",
                  "pattern": "(?i)(^(/subscriptions/([^/]+)(/resourcegroups/([^/]+))?)?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$|^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?$)",
                  "type": "string"
                },
                "group": {
                  "description": "Group is the Kubernetes group of the resource.",
                  "type": "string"
                },
                "kind": {
                  "description": "Kind is the Kubernetes kind of the resource.",
                  "type": "string"
                },
                "name": {
                  "description": "Name is the Kubernetes name of the resource.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "versionHeaderName": {
              "description": "VersionHeaderName: Name of HTTP header parameter that indicates the API Version if versioningScheme is set to `header`.",
              "type": "string"
            },
            "versionQueryName": {
              "description": "VersionQueryName: Name of query parameter that indicates the API Version if versioningScheme is set to `query`.",
              "type": "string"
            },
            "versioningScheme": {
              "description": "VersioningScheme: An value that determines where the API Version identifier will be located in a HTTP request.",
              "enum": [
                "Header",
                "Query",
                "Segment"
              ],
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "apiVersionSetReference": {
          "description": "ApiVersionSetReference: A resource identifier for the related ApiVersionSet.",
          "properties": {
            "armId": {
              "description": "ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.\nThe /resourcegroups/{resourceGroupName} bit is optional as some resources are scoped at the subscription level\nARMID is mutually exclusive with Group, Kind, Namespace and Name.",
              "pattern": "(?i)(^(/subscriptions/([^/]+)(/resourcegroups/([^/]+))?)?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$|^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?$)",
              "type": "string"
            },
            "group": {
              "description": "Group is the Kubernetes group of the resource.",
              "type": "string"
            },
            "kind": {
              "description": "Kind is the Kubernetes kind of the resource.",
              "type": "string"
            },
            "name": {
              "description": "Name is the Kubernetes name of the resource.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "authenticationSettings": {
          "description": "AuthenticationSettings: Collection of authentication settings included into this API.",
          "properties": {
            "oAuth2": {
              "description": "OAuth2: OAuth2 Authentication settings",
              "properties": {
                "authorizationServerId": {
                  "description": "AuthorizationServerId: OAuth authorization server identifier.",
                  "type": "string"
                },
                "scope": {
                  "description": "Scope: operations scope.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "oAuth2AuthenticationSettings": {
              "description": "OAuth2AuthenticationSettings: Collection of OAuth2 authentication settings included into this API.",
              "items": {
                "description": "API OAuth2 Authentication settings details.",
                "properties": {
                  "authorizationServerId": {
                    "description": "AuthorizationServerId: OAuth authorization server identifier.",
                    "type": "string"
                  },
                  "scope": {
                    "description": "Scope: operations scope.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "openid": {
              "description": "Openid: OpenID Connect Authentication Settings",
              "properties": {
                "bearerTokenSendingMethods": {
                  "description": "BearerTokenSendingMethods: How to send token to the server.",
                  "items": {
                    "description": "Form of an authorization grant, which the client uses to request the access token.",
                    "enum": [
                      "authorizationHeader",
                      "query"
                    ],
                    "type": "string"
                  },
                  "type": "array"
                },
                "openidProviderId": {
                  "description": "OpenidProviderId: OAuth authorization server identifier.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "openidAuthenticationSettings": {
              "description": "OpenidAuthenticationSettings: Collection of Open ID Connect authentication settings included into this API.",
              "items": {
                "description": "API OAuth2 Authentication settings details.",
                "properties": {
                  "bearerTokenSendingMethods": {
                    "description": "BearerTokenSendingMethods: How to send token to the server.",
                    "items": {
                      "description": "Form of an authorization grant, which the client uses to request the access token.",
                      "enum": [
                        "authorizationHeader",
                        "query"
                      ],
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "openidProviderId": {
                    "description": "OpenidProviderId: OAuth authorization server identifier.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "azureName": {
          "description": "AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it\ndoesn't have to be.",
          "maxLength": 256,
          "minLength": 1,
          "pattern": "^[^*#&+:<>?]+$",
          "type": "string"
        },
        "contact": {
          "description": "Contact: Contact information for the API.",
          "properties": {
            "email": {
              "description": "Email: The email address of the contact person/organization. MUST be in the format of an email address",
              "type": "string"
            },
            "name": {
              "description": "Name: The identifying name of the contact person/organization",
              "type": "string"
            },
            "url": {
              "description": "Url: The URL pointing to the contact information. MUST be in the format of a URL",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "description": {
          "description": "Description: Description of the API. May include HTML formatting tags.",
          "type": "string"
        },
        "displayName": {
          "description": "DisplayName: API name. Must be 1 to 300 characters long.",
          "maxLength": 300,
          "minLength": 1,
          "type": "string"
        },
        "format": {
          "description": "Format: Format of the Content in which the API is getting imported.",
          "enum": [
            "graphql-link",
            "openapi",
            "openapi+json",
            "openapi+json-link",
            "openapi-link",
            "swagger-json",
            "swagger-link-json",
            "wadl-link-json",
            "wadl-xml",
            "wsdl",
            "wsdl-link"
          ],
          "type": "string"
        },
        "isCurrent": {
          "description": "IsCurrent: Indicates if API revision is current api revision.",
          "type": "boolean"
        },
        "license": {
          "description": "License: License information for the API.",
          "properties": {
            "name": {
              "description": "Name: The license name used for the API",
              "type": "string"
            },
            "url": {
              "description": "Url: A URL to the license used for the API. MUST be in the format of a URL",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "operatorSpec": {
          "description": "OperatorSpec: The specification for configuring operator behavior. This field is interpreted by the operator and not\npassed directly to Azure",
          "properties": {
            "configMapExpressions": {
              "description": "ConfigMapExpressions: configures where to place operator written dynamic ConfigMaps (created with CEL expressions).",
              "items": {
                "description": "DestinationExpression is a CEL expression and a destination to store the result in. The destination may\nbe a secret or a configmap. The value of the expression is stored at the specified location in\nthe destination.",
                "properties": {
                  "key": {
                    "description": "Key is the key in the ConfigMap or Secret being written to. If the CEL expression in Value returns a string\nthis is required to identify what key to write to. If the CEL expression in Value returns a map[string]string\nKey must not be set, instead the keys written will be determined dynamically based on the keys of the resulting\nmap[string]string.",
                    "type": "string"
                  },
                  "name": {
                    "description": "Name is the name of the Kubernetes configmap or secret to write to.\nThe configmap or secret will be created in the same namespace as the resource.",
                    "type": "string"
                  },
                  "value": {
                    "description": "Value is a CEL expression. The CEL expression may return a string or a map[string]string. For more information\non CEL in ASO see https://azure.github.io/azure-service-operator/guide/expressions/",
                    "type": "string"
                  }
                },
                "required": [
                  "name",
                  "value"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "secretExpressions": {
              "description": "SecretExpressions: configures where to place operator written dynamic secrets (created with CEL expressions).",
              "items": {
                "description": "DestinationExpression is a CEL expression and a destination to store the result in. The destination may\nbe a secret or a configmap. The value of the expression is stored at the specified location in\nthe destination.",
                "properties": {
                  "key": {
                    "description": "Key is the key in the ConfigMap or Secret being written to. If the CEL expression in Value returns a string\nthis is required to identify what key to write to. If the CEL expression in Value returns a map[string]string\nKey must not be set, instead the keys written will be determined dynamically based on the keys of the resulting\nmap[string]string.",
                    "type": "string"
                  },
                  "name": {
                    "description": "Name is the name of the Kubernetes configmap or secret to write to.\nThe configmap or secret will be created in the same namespace as the resource.",
                    "type": "string"
                  },
                  "value": {
                    "description": "Value is a CEL expression. The CEL expression may return a string or a map[string]string. For more information\non CEL in ASO see https://azure.github.io/azure-service-operator/guide/expressions/",
                    "type": "string"
                  }
                },
                "required": [
                  "name",
                  "value"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "owner": {
          "description": "Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also\ncontrols the resources lifecycle. When the owner is deleted the resource will also be deleted. Owner is expected to be a\nreference to a apimanagement.azure.com/Service resource",
          "properties": {
            "armId": {
              "pattern": "(?i)(^(/subscriptions/([^/]+)(/resourcegroups/([^/]+))?)?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$|^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?$)",
              "type": "string"
            },
            "name": {
              "description": "This is the name of the Kubernetes resource to reference.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "path": {
          "description": "Path: Relative URL uniquely identifying this API and all of its resource paths within the API Management service\ninstance. It is appended to the API endpoint base URL specified during the service instance creation to form a public\nURL for this API.",
          "maxLength": 400,
          "minLength": 0,
          "type": "string"
        },
        "protocols": {
          "description": "Protocols: Describes on which protocols the operations in this API can be invoked.",
          "items": {
            "enum": [
              "http",
              "https",
              "ws",
              "wss"
            ],
            "type": "string"
          },
          "type": "array"
        },
        "serviceUrl": {
          "description": "ServiceUrl: Absolute URL of the backend service implementing this API. Cannot be more than 2000 characters long.",
          "maxLength": 2000,
          "minLength": 0,
          "type": "string"
        },
        "sourceApiReference": {
          "description": "SourceApiReference: API identifier of the source API.",
          "properties": {
            "armId": {
              "description": "ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.\nThe /resourcegroups/{resourceGroupName} bit is optional as some resources are scoped at the subscription level\nARMID is mutually exclusive with Group, Kind, Namespace and Name.",
              "pattern": "(?i)(^(/subscriptions/([^/]+)(/resourcegroups/([^/]+))?)?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$|^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?$)",
              "type": "string"
            },
            "group": {
              "description": "Group is the Kubernetes group of the resource.",
              "type": "string"
            },
            "kind": {
              "description": "Kind is the Kubernetes kind of the resource.",
              "type": "string"
            },
            "name": {
              "description": "Name is the Kubernetes name of the resource.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "subscriptionKeyParameterNames": {
          "description": "SubscriptionKeyParameterNames: Protocols over which API is made available.",
          "properties": {
            "header": {
              "description": "Header: Subscription key header name.",
              "type": "string"
            },
            "query": {
              "description": "Query: Subscription key query string parameter name.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "subscriptionRequired": {
          "description": "SubscriptionRequired: Specifies whether an API or Product subscription is required for accessing the API.",
          "type": "boolean"
        },
        "termsOfServiceUrl": {
          "description": "TermsOfServiceUrl:  A URL to the Terms of Service for the API. MUST be in the format of a URL.",
          "type": "string"
        },
        "translateRequiredQueryParameters": {
          "description": "TranslateRequiredQueryParameters: Strategy of translating required query parameters to template ones. By default has\nvalue 'template'. Possible values: 'template', 'query'",
          "enum": [
            "query",
            "template"
          ],
          "type": "string"
        },
        "type": {
          "description": "Type: Type of API.",
          "enum": [
            "graphql",
            "http",
            "soap",
            "websocket"
          ],
          "type": "string"
        },
        "value": {
          "description": "Value: Content value when Importing an API.",
          "type": "string"
        },
        "wsdlSelector": {
          "description": "WsdlSelector: Criteria to limit import of WSDL to a subset of the document.",
          "properties": {
            "wsdlEndpointName": {
              "description": "WsdlEndpointName: Name of endpoint(port) to import from WSDL",
              "type": "string"
            },
            "wsdlServiceName": {
              "description": "WsdlServiceName: Name of service to import from WSDL",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        }
      },
      "required": [
        "owner",
        "path"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "properties": {
        "apiRevision": {
          "description": "ApiRevision: Describes the revision of the API. If no value is provided, default revision 1 is created",
          "type": "string"
        },
        "apiRevisionDescription": {
          "description": "ApiRevisionDescription: Description of the API Revision.",
          "type": "string"
        },
        "apiVersion": {
          "description": "APIVersion: Indicates the version identifier of the API if the API is versioned",
          "type": "string"
        },
        "apiVersionDescription": {
          "description": "ApiVersionDescription: Description of the API Version.",
          "type": "string"
        },
        "apiVersionSet": {
          "description": "ApiVersionSet: Version set details",
          "properties": {
            "description": {
              "description": "Description: Description of API Version Set.",
              "type": "string"
            },
            "id": {
              "description": "Id: Identifier for existing API Version Set. Omit this value to create a new Version Set.",
              "type": "string"
            },
            "name": {
              "description": "Name: The display Name of the API Version Set.",
              "type": "string"
            },
            "versionHeaderName": {
              "description": "VersionHeaderName: Name of HTTP header parameter that indicates the API Version if versioningScheme is set to `header`.",
              "type": "string"
            },
            "versionQueryName": {
              "description": "VersionQueryName: Name of query parameter that indicates the API Version if versioningScheme is set to `query`.",
              "type": "string"
            },
            "versioningScheme": {
              "description": "VersioningScheme: An value that determines where the API Version identifier will be located in a HTTP request.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "apiVersionSetId": {
          "description": "ApiVersionSetId: A resource identifier for the related ApiVersionSet.",
          "type": "string"
        },
        "authenticationSettings": {
          "description": "AuthenticationSettings: Collection of authentication settings included into this API.",
          "properties": {
            "oAuth2": {
              "description": "OAuth2: OAuth2 Authentication settings",
              "properties": {
                "authorizationServerId": {
                  "description": "AuthorizationServerId: OAuth authorization server identifier.",
                  "type": "string"
                },
                "scope": {
                  "description": "Scope: operations scope.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "oAuth2AuthenticationSettings": {
              "description": "OAuth2AuthenticationSettings: Collection of OAuth2 authentication settings included into this API.",
              "items": {
                "description": "API OAuth2 Authentication settings details.",
                "properties": {
                  "authorizationServerId": {
                    "description": "AuthorizationServerId: OAuth authorization server identifier.",
                    "type": "string"
                  },
                  "scope": {
                    "description": "Scope: operations scope.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "openid": {
              "description": "Openid: OpenID Connect Authentication Settings",
              "properties": {
                "bearerTokenSendingMethods": {
                  "description": "BearerTokenSendingMethods: How to send token to the server.",
                  "items": {
                    "description": "Form of an authorization grant, which the client uses to request the access token.",
                    "type": "string"
                  },
                  "type": "array"
                },
                "openidProviderId": {
                  "description": "OpenidProviderId: OAuth authorization server identifier.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "openidAuthenticationSettings": {
              "description": "OpenidAuthenticationSettings: Collection of Open ID Connect authentication settings included into this API.",
              "items": {
                "description": "API OAuth2 Authentication settings details.",
                "properties": {
                  "bearerTokenSendingMethods": {
                    "description": "BearerTokenSendingMethods: How to send token to the server.",
                    "items": {
                      "description": "Form of an authorization grant, which the client uses to request the access token.",
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "openidProviderId": {
                    "description": "OpenidProviderId: OAuth authorization server identifier.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "conditions": {
          "description": "Conditions: The observed state of the resource",
          "items": {
            "description": "Condition defines an extension to status (an observation) of a resource",
            "properties": {
              "lastTransitionTime": {
                "description": "LastTransitionTime is the last time the condition transitioned from one status to another.",
                "format": "date-time",
                "type": "string"
              },
              "message": {
                "description": "Message is a human readable message indicating details about the transition. This field may be empty.",
                "type": "string"
              },
              "observedGeneration": {
                "description": "ObservedGeneration is the .metadata.generation that the condition was set based upon. For instance, if\n.metadata.generation is currently 12, but the .status.condition[x].observedGeneration is 9, the condition is out of date\nwith respect to the current state of the instance.",
                "format": "int64",
                "type": "integer"
              },
              "reason": {
                "description": "Reason for the condition's last transition.\nReasons are upper CamelCase (PascalCase) with no spaces. A reason is always provided, this field will not be empty.",
                "type": "string"
              },
              "severity": {
                "description": "Severity with which to treat failures of this type of condition.\nFor conditions which have positive polarity (Status == True is their normal/healthy state), this will be omitted when Status == True\nFor conditions which have negative polarity (Status == False is their normal/healthy state), this will be omitted when Status == False.\nThis is omitted in all cases when Status == Unknown",
                "type": "string"
              },
              "status": {
                "description": "Status of the condition, one of True, False, or Unknown.",
                "type": "string"
              },
              "type": {
                "description": "Type of condition.",
                "type": "string"
              }
            },
            "required": [
              "lastTransitionTime",
              "reason",
              "status",
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "contact": {
          "description": "Contact: Contact information for the API.",
          "properties": {
            "email": {
              "description": "Email: The email address of the contact person/organization. MUST be in the format of an email address",
              "type": "string"
            },
            "name": {
              "description": "Name: The identifying name of the contact person/organization",
              "type": "string"
            },
            "url": {
              "description": "Url: The URL pointing to the contact information. MUST be in the format of a URL",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "description": {
          "description": "Description: Description of the API. May include HTML formatting tags.",
          "type": "string"
        },
        "displayName": {
          "description": "DisplayName: API name. Must be 1 to 300 characters long.",
          "type": "string"
        },
        "id": {
          "description": "Id: Fully qualified resource ID for the resource. Ex -\n/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}",
          "type": "string"
        },
        "isCurrent": {
          "description": "IsCurrent: Indicates if API revision is current api revision.",
          "type": "boolean"
        },
        "isOnline": {
          "description": "IsOnline: Indicates if API revision is accessible via the gateway.",
          "type": "boolean"
        },
        "license": {
          "description": "License: License information for the API.",
          "properties": {
            "name": {
              "description": "Name: The license name used for the API",
              "type": "string"
            },
            "url": {
              "description": "Url: A URL to the license used for the API. MUST be in the format of a URL",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "name": {
          "description": "Name: The name of the resource",
          "type": "string"
        },
        "path": {
          "description": "Path: Relative URL uniquely identifying this API and all of its resource paths within the API Management service\ninstance. It is appended to the API endpoint base URL specified during the service instance creation to form a public\nURL for this API.",
          "type": "string"
        },
        "properties_type": {
          "description": "PropertiesType: Type of API.",
          "type": "string"
        },
        "protocols": {
          "description": "Protocols: Describes on which protocols the operations in this API can be invoked.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "serviceUrl": {
          "description": "ServiceUrl: Absolute URL of the backend service implementing this API. Cannot be more than 2000 characters long.",
          "type": "string"
        },
        "sourceApiId": {
          "description": "SourceApiId: API identifier of the source API.",
          "type": "string"
        },
        "subscriptionKeyParameterNames": {
          "description": "SubscriptionKeyParameterNames: Protocols over which API is made available.",
          "properties": {
            "header": {
              "description": "Header: Subscription key header name.",
              "type": "string"
            },
            "query": {
              "description": "Query: Subscription key query string parameter name.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "subscriptionRequired": {
          "description": "SubscriptionRequired: Specifies whether an API or Product subscription is required for accessing the API.",
          "type": "boolean"
        },
        "termsOfServiceUrl": {
          "description": "TermsOfServiceUrl:  A URL to the Terms of Service for the API. MUST be in the format of a URL.",
          "type": "string"
        },
        "type": {
          "description": "Type: The type of the resource. E.g. \"Microsoft.Compute/virtualMachines\" or \"Microsoft.Storage/storageAccounts\"",
          "type": "string"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
