swagger: "2.0"
schemes:
  - https
host: management.azure.com
info:
  description: Use these REST APIs for performing operations on entities like API, Product, and Subscription associated with your Azure API Management deployment.
  title: ApiManagementClient
  version: 2016-07-07
  x-apisguru-categories:
    - cloud
  x-logo:
    url: https://api.apis.guru/v2/cache/logo/https_assets.onestore.ms_cdnfiles_onestorerolling-1606-01000_shell_v3_images_logo_microsoft.png
  x-origin:
    - format: swagger
      url: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2016-07-07/apimanagement.json
      version: "2.0"
  x-preferred: false
  x-providerName: azure.com
  x-serviceName: apimanagement
  x-tags:
    - Azure
    - Microsoft
consumes:
  - application/json
produces:
  - application/json
securityDefinitions:
  azure_auth:
    authorizationUrl: https://login.microsoftonline.com/common/oauth2/authorize
    description: Azure Active Directory OAuth2 Flow.
    flow: implicit
    scopes:
      user_impersonation: impersonate your user account
    type: oauth2
security:
  - azure_auth:
      - user_impersonation
parameters:
  ApiIdParameter:
    description: API identifier. Must be unique in the current API Management service instance.
    in: path
    maxLength: 256
    minLength: 1
    name: apiId
    pattern: ^[^*#&+:<>?]+$
    required: true
    type: string
    x-ms-parameter-location: method
  ApiVersionParameter:
    description: Version of the API to be used with the client request.
    in: query
    name: api-version
    required: true
    type: string
  BackendIdParameter:
    description: User identifier. Must be unique in the current API Management service instance.
    in: path
    maxLength: 255
    minLength: 1
    name: backendid
    pattern: ^[^*#&+:<>?]+$
    required: true
    type: string
    x-ms-parameter-location: method
  GroupIdParameter:
    description: Group identifier. Must be unique in the current API Management service instance.
    in: path
    maxLength: 256
    minLength: 1
    name: groupId
    pattern: ^[^*#&+:<>?]+$
    required: true
    type: string
    x-ms-parameter-location: method
  IdentityProviderNameParameter:
    description: Identity Provider Type identifier.
    enum:
      - facebook
      - google
      - microsoft
      - twitter
      - aad
    in: path
    name: identityProviderName
    required: true
    type: string
    x-ms-enum:
      modelAsString: true
      name: IdentityProviderNameType
    x-ms-parameter-location: method
  OperationIdParameter:
    description: Operation identifier within an API. Must be unique in the current API Management service instance.
    in: path
    maxLength: 256
    minLength: 1
    name: operationId
    pattern: ^[^*#&+:<>?]+$
    required: true
    type: string
    x-ms-parameter-location: method
  ProductIdParameter:
    description: Product identifier. Must be unique in the current API Management service instance.
    in: path
    maxLength: 256
    minLength: 1
    name: productId
    pattern: ^[^*#&+:<>?]+$
    required: true
    type: string
    x-ms-parameter-location: method
  QuotaCounterKeyParameter:
    description: Quota counter key identifier.
    in: path
    name: quotaCounterKey
    required: true
    type: string
    x-ms-parameter-location: method
  QuotaPeriodKeyParameter:
    description: Quota period key identifier.
    in: path
    name: quotaPeriodKey
    required: true
    type: string
    x-ms-parameter-location: method
  ResourceGroupNameParameter:
    description: The name of the resource group.
    in: path
    name: resourceGroupName
    required: true
    type: string
    x-ms-parameter-location: method
  ServiceNameParameter:
    description: The name of the API Management service.
    in: path
    maxLength: 50
    minLength: 1
    name: serviceName
    pattern: ^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$
    required: true
    type: string
    x-ms-parameter-location: method
  SkipQueryParameter:
    description: Number of records to skip.
    format: int32
    in: query
    minimum: 0
    name: $skip
    required: false
    type: integer
    x-ms-parameter-location: method
  SubscriptionIdParameter:
    description: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
    in: path
    name: subscriptionId
    required: true
    type: string
  TopQueryParameter:
    description: Number of records to return.
    format: int32
    in: query
    minimum: 1
    name: $top
    required: false
    type: integer
    x-ms-parameter-location: method
  UserIdParameter:
    description: User identifier. Must be unique in the current API Management service instance.
    in: path
    maxLength: 256
    minLength: 1
    name: uid
    pattern: ^[^*#&+:<>?]+$
    required: true
    type: string
    x-ms-parameter-location: method
paths:
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis":
    get:
      description: Lists all APIs of the API Management service instance.
      externalDocs:
        url: https://msdn.microsoft.com/en-us/library/azure/dn781423.aspx
      operationId: Apis_ListByService
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: |-
            | Field       | Supported operators    | Supported functions               |
            |-------------|------------------------|-----------------------------------|
            | id          | ge, le, eq, ne, gt, lt | substringof, startswith, endswith |
            | name        | ge, le, eq, ne, gt, lt | substringof, startswith, endswith |
            | description | ge, le, eq, ne, gt, lt | substringof, startswith, endswith |
            | serviceUrl  | ge, le, eq, ne, gt, lt | substringof, startswith, endswith |
            | path        | ge, le, eq, ne, gt, lt | substringof, startswith, endswith |
          in: query
          name: $filter
          required: false
          type: string
        - $ref: "#/parameters/TopQueryParameter"
        - $ref: "#/parameters/SkipQueryParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Paged Result response of Apis.
          schema:
            $ref: "#/definitions/ApiCollection"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Apis
      x-ms-odata: "#/definitions/ApiContract"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}":
    delete:
      description: Deletes the specified API of the API Management service instance.
      operationId: Apis_Delete
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ApiIdParameter"
        - description: ETag of the API Entity. ETag should match the current entity state from the header response of the GET request or it should be * for unconditional update.
          in: header
          name: If-Match
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The API was successfully deleted.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Apis
    get:
      description: Gets the details of the API specified by its identifier.
      operationId: Apis_Get
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ApiIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      produces:
        - application/json
        - application/vnd.sun.wadl+xml
        - application/vnd.swagger.doc+json
        - application/wsdl+xml
      responses:
        "200":
          description: The response body contains the specified API entity.
          headers:
            ETag:
              description: Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
              type: string
          schema:
            $ref: "#/definitions/ApiContract"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Apis
    patch:
      description: Updates the specified API of the API Management service instance.
      operationId: Apis_Update
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ApiIdParameter"
        - description: Patch parameters.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/PatchParameters"
        - description: ETag of the API entity. ETag should match the current entity state in the header response of the GET request or it should be * for unconditional update.
          in: header
          name: If-Match
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The API was successfully updated.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Apis
    put:
      description: Creates new or updates existing specified API of the API Management service instance.
      operationId: Apis_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ApiIdParameter"
        - description: Create or update parameters.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/ApiContract"
        - description: ETag of the Api Entity. For Create Api Etag should not be specified. For Update Etag should match the existing Entity or it can be * for unconditional update.
          in: header
          name: If-Match
          required: false
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "201":
          description: API was successfully created.
        "204":
          description: API was successfully updated.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Apis
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/operations":
    get:
      description: Lists a collection of the operations for the specified API.
      operationId: ApiOperations_ListByApi
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ApiIdParameter"
        - description: |-
            | Field       | Supported operators    | Supported functions               |
            |-------------|------------------------|-----------------------------------|
            | name        | ge, le, eq, ne, gt, lt | substringof, startswith, endswith |
            | method      | ge, le, eq, ne, gt, lt | substringof, startswith, endswith |
            | description | ge, le, eq, ne, gt, lt | substringof, startswith, endswith |
            | urlTemplate | ge, le, eq, ne, gt, lt | substringof, startswith, endswith |
          in: query
          name: $filter
          required: false
          type: string
        - $ref: "#/parameters/TopQueryParameter"
        - $ref: "#/parameters/SkipQueryParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: A collection of operation summary entities at the API level.
          schema:
            $ref: "#/definitions/OperationCollection"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - ApiOperations
      x-ms-odata: "#/definitions/OperationContract"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/operations/{operationId}":
    delete:
      description: Deletes the specified operation.
      operationId: ApiOperations_Delete
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ApiIdParameter"
        - $ref: "#/parameters/OperationIdParameter"
        - description: ETag of the API Operation Entity. ETag should match the current entity state from the header response of the GET request or it should be * for unconditional update.
          in: header
          name: If-Match
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The operation was successfully deleted.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - ApiOperations
    get:
      description: Gets the details of the API Operation specified by its identifier.
      operationId: ApiOperations_Get
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ApiIdParameter"
        - $ref: "#/parameters/OperationIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: The response body contains the specified Operation entity.
          headers:
            ETag:
              description: Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
              type: string
          schema:
            $ref: "#/definitions/OperationContract"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - ApiOperations
    patch:
      description: Updates the details of the operation specified by its identifier.
      operationId: ApiOperations_Update
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ApiIdParameter"
        - $ref: "#/parameters/OperationIdParameter"
        - description: Update parameters.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/PatchParameters"
        - description: ETag of the API Operation Entity. ETag should match the current entity state from the header response of the GET request or it should be * for unconditional update.
          in: header
          name: If-Match
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The operation was successfully updated.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - ApiOperations
    put:
      description: Creates a new API operation or updates an existing one.
      operationId: ApiOperations_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ApiIdParameter"
        - $ref: "#/parameters/OperationIdParameter"
        - description: Create parameters.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/OperationContract"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "201":
          description: Operation was successfully created.
        "204":
          description: Operation was successfully updated.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - ApiOperations
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/products":
    get:
      description: Lists all API associated products.
      operationId: ApiProducts_ListByApi
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ApiIdParameter"
        - description: |-
            | Field | Supported operators    | Supported functions                         |
            |-------|------------------------|---------------------------------------------|
            | name  | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
          in: query
          name: $filter
          required: false
          type: string
        - $ref: "#/parameters/TopQueryParameter"
        - $ref: "#/parameters/SkipQueryParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: The operation returns a collection of products which have the Api entity.
          schema:
            $ref: "#/definitions/ProductCollection"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - ApiProducts
      x-ms-odata: "#/definitions/ProductContract"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/authorizationServers":
    get:
      description: Lists a collection of authorization servers defined within a service instance.
      externalDocs:
        url: https://msdn.microsoft.com/en-us/library/azure/dn879064.aspx
      operationId: AuthorizationServers_ListByService
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: |-
            | Field | Supported operators    | Supported functions                         |
            |-------|------------------------|---------------------------------------------|
            | id    | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | name  | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
          in: query
          name: $filter
          required: false
          type: string
        - $ref: "#/parameters/TopQueryParameter"
        - $ref: "#/parameters/SkipQueryParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: A Collection of the Authorization Server entities for the specified API Management service instance.
          schema:
            $ref: "#/definitions/AuthorizationServerCollection"
      tags:
        - AuthorizationServers
      x-ms-odata: "#/definitions/OAuth2AuthorizationServerContract"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/authorizationServers/{authsid}":
    delete:
      description: Deletes specific authorization server instance.
      operationId: AuthorizationServers_Delete
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Identifier of the authorization server.
          in: path
          name: authsid
          required: true
          type: string
        - description: The entity state (Etag) version of the authentication server to delete. A value of "*" can be used for If-Match to unconditionally apply the operation.
          in: header
          name: If-Match
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The authorization server settings were successfully deleted.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - AuthorizationServers
    get:
      description: Gets the details of the authorization server specified by its identifier.
      operationId: AuthorizationServers_Get
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Identifier of the authorization server.
          in: path
          maxLength: 256
          name: authsid
          pattern: ^[^*#&+:<>?]+$
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Gets the details of the specified authorization server.
          headers:
            ETag:
              description: Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
              type: string
          schema:
            $ref: "#/definitions/OAuth2AuthorizationServerContract"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - AuthorizationServers
    patch:
      description: Updates the details of the authorization server specified by its identifier.
      operationId: AuthorizationServers_Update
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Identifier of the authorization server.
          in: path
          name: authsid
          required: true
          type: string
        - description: OAuth2 Server settings Update parameters.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/OAuth2AuthorizationServerUpdateContract"
        - description: The entity state (Etag) version of the authorization server to update. A value of "*" can be used for If-Match to unconditionally apply the operation.
          in: header
          name: If-Match
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The authorization server settings were successfully updated.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - AuthorizationServers
    put:
      description: Creates new authorization server or updates an existing authorization server.
      operationId: AuthorizationServers_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Identifier of the authorization server.
          in: path
          maxLength: 256
          name: authsid
          pattern: ^[^*#&+:<>?]+$
          required: true
          type: string
        - description: Create or update parameters.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/OAuth2AuthorizationServerContract"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "201":
          description: Authorization server was successfully registered.
        "204":
          description: Authorization server is already registered.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - AuthorizationServers
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/backends":
    get:
      description: Lists a collection of backends in the specified service instance.
      externalDocs:
        url: https://msdn.microsoft.com/en-us/library/dn935030.aspx
      operationId: Backends_ListByService
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: |-
            | Field | Supported operators    | Supported functions                         |
            |-------|------------------------|---------------------------------------------|
            | id    | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | host  | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
          in: query
          name: $filter
          required: false
          type: string
        - $ref: "#/parameters/TopQueryParameter"
        - $ref: "#/parameters/SkipQueryParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Lists a collection of Backend entities.
          schema:
            $ref: "#/definitions/BackendCollection"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Backends
      x-ms-odata: "#/definitions/BackendResponse"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/backends/{backendid}":
    delete:
      description: Deletes the specified backend.
      operationId: Backends_Delete
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/BackendIdParameter"
        - description: The entity state (Etag) version of the backend to delete. A value of "*" can be used for If-Match to unconditionally apply the operation.
          in: header
          name: If-Match
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The backend was successfully deleted.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Backends
    get:
      description: Gets the details of the backend specified by its identifier.
      operationId: Backends_Get
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/BackendIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: The response body contains the specified Backend entity.
          headers:
            ETag:
              description: Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
              type: string
          schema:
            $ref: "#/definitions/BackendResponse"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Backends
    patch:
      description: Updates an existing backend.
      operationId: Backends_Update
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/BackendIdParameter"
        - description: Update parameters.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/BackendUpdateParameters"
        - description: The entity state (Etag) version of the backend to update. A value of "*" can be used for If-Match to unconditionally apply the operation.
          in: header
          name: If-Match
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The existing backend was successfully updated.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Backends
    put:
      description: Creates or Updates a backend.
      operationId: Backends_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/BackendIdParameter"
        - description: Create parameters.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/BackendContract"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "201":
          description: Backend was successfully created.
        "204":
          description: The existing backend was successfully updated.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Backends
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/certificates":
    get:
      description: Lists a collection of all certificates in the specified service instance.
      externalDocs:
        url: https://msdn.microsoft.com/en-us/library/azure/dn783483.aspx
      operationId: Certificates_ListByService
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: |-
            | Field          | Supported operators    | Supported functions                         |
            |----------------|------------------------|---------------------------------------------|
            | id             | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | subject        | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | thumbprint     | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | expirationDate | ge, le, eq, ne, gt, lt | N/A                                         |
          in: query
          name: $filter
          required: false
          type: string
        - $ref: "#/parameters/TopQueryParameter"
        - $ref: "#/parameters/SkipQueryParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Returns a collection of Certificate entity.
          schema:
            $ref: "#/definitions/CertificateCollection"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Certificates
      x-ms-odata: "#/definitions/CertificateContract"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/certificates/{certificateId}":
    delete:
      description: Deletes specific certificate.
      operationId: Certificates_Delete
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Identifier of the certificate.
          in: path
          name: certificateId
          required: true
          type: string
        - description: The entity state (Etag) version of the certificate to delete. A value of "*" can be used for If-Match to unconditionally apply the operation.
          in: header
          name: If-Match
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The certificate was successfully deleted.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Certificates
    get:
      description: Gets the details of the certificate specified by its identifier.
      operationId: Certificates_Get
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Identifier of the certificate.
          in: path
          name: certificateId
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: The response body contains the specified Certificate entity.
          headers:
            ETag:
              description: Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
              type: string
          schema:
            $ref: "#/definitions/CertificateContract"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Certificates
    put:
      description: Creates or updates the certificate being used for authentication with the backend.
      externalDocs:
        description: How to secure back-end services using client certificate authentication in Azure API Management
        url: https://azure.microsoft.com/en-us/documentation/articles/api-management-howto-mutual-certificates/
      operationId: Certificates_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Identifier of the certificate entity. Must be unique in the current API Management service instance.
          in: path
          maxLength: 256
          minLength: 1
          name: certificateId
          pattern: ^[^*#&+:<>?]+$
          required: true
          type: string
        - description: Create parameters.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/CertificateCreateOrUpdateParameters"
        - description: The entity state (Etag) version of the certificate to update. A value of "*" can be used for If-Match to unconditionally apply the operation..
          in: header
          name: If-Match
          required: false
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "201":
          description: The new certificate was successfully added.
        "204":
          description: The certificate details were successfully updated.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Certificates
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/groups":
    get:
      description: Lists a collection of groups defined within a service instance.
      externalDocs:
        url: https://msdn.microsoft.com/en-us/library/azure/dn776329.aspx
      operationId: Groups_ListByService
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: |-
            | Field       | Supported operators    | Supported functions                         |
            |-------------|------------------------|---------------------------------------------|
            | id          | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | name        | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | description | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | type        | eq, ne                 | N/A                                         |
          in: query
          name: $filter
          required: false
          type: string
        - $ref: "#/parameters/TopQueryParameter"
        - $ref: "#/parameters/SkipQueryParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Lists a collection of Group entities.
          schema:
            $ref: "#/definitions/GroupCollection"
      tags:
        - Groups
      x-ms-odata: "#/definitions/GroupContract"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/groups/{groupId}":
    delete:
      description: Deletes specific group of the API Management service instance.
      operationId: Groups_Delete
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/GroupIdParameter"
        - description: ETag of the Group Entity. ETag should match the current entity state from the header response of the GET request or it should be * for unconditional update.
          in: header
          name: If-Match
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The group was successfully deleted.
        "405":
          description: The specified group cannot be updated because it is a built-in group.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Groups
    get:
      description: Gets the details of the group specified by its identifier.
      operationId: Groups_Get
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/GroupIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: The response body contains the specified Group entity.
          headers:
            ETag:
              description: Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
              type: string
          schema:
            $ref: "#/definitions/GroupContract"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Groups
    patch:
      description: Updates the details of the group specified by its identifier.
      operationId: Groups_Update
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/GroupIdParameter"
        - description: Update parameters.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/GroupUpdateParameters"
        - description: ETag of the Group Entity. ETag should match the current entity state from the header response of the GET request or it should be * for unconditional update.
          in: header
          name: If-Match
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The group details were successfully updated.
        "405":
          description: The specified group cannot be updated because it is a built-in group.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Groups
    put:
      description: Creates or Updates a group.
      operationId: Groups_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/GroupIdParameter"
        - description: Create parameters.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/GroupCreateParameters"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "201":
          description: Group was created successfully.
        "204":
          description: Group already exists.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Groups
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/groups/{groupId}/users":
    get:
      description: Lists a collection of the members of the group, specified by its identifier.
      operationId: GroupUsers_ListByGroup
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/GroupIdParameter"
        - description: |-
            | Field            | Supported operators    | Supported functions               |
            |------------------|------------------------|-----------------------------------|
            | id               | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | firstName        | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | lastName         | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | email            | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | state            | eq                     | N/A                               |
            | registrationDate | ge, le, eq, ne, gt, lt | N/A                               |
            | note             | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
          in: query
          name: $filter
          required: false
          type: string
        - $ref: "#/parameters/TopQueryParameter"
        - $ref: "#/parameters/SkipQueryParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Lists a collection of user entities associated with the group.
          schema:
            $ref: "#/definitions/UserCollection"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - GroupUsers
      x-ms-odata: "#/definitions/UserContract"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/groups/{groupId}/users/{uid}":
    delete:
      description: Remove existing user from existing group.
      operationId: GroupUsers_Remove
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/GroupIdParameter"
        - $ref: "#/parameters/UserIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The user was successfully removed from the group..
        "405":
          description: Attempt was made to add a user to a built-in group. Built-in group membership is managed by the system.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - GroupUsers
    put:
      description: Adds a user to the specified group.
      operationId: GroupUsers_Add
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/GroupIdParameter"
        - $ref: "#/parameters/UserIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "201":
          description: The user was successfully added to the group.
        "204":
          description: The specified user is already a member of the specified group.
        "405":
          description: Attempt was made to add a user to a built-in group. Built-in group membership is managed by the system.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - GroupUsers
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/identityProviders":
    get:
      description: Lists a collection of Identity Provider configured in the specified service instance.
      operationId: IdentityProviders_ListByService
      parameters:
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: Lists a collection of Identity Providers.
          schema:
            $ref: "#/definitions/IdentityProviderList"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - IdentityProvider
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/identityProviders/{identityProviderName}":
    delete:
      description: Deletes the specified identity provider configuration.
      operationId: IdentityProviders_Delete
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/IdentityProviderNameParameter"
        - description: The entity state (Etag) version of the backend to delete. A value of "*" can be used for If-Match to unconditionally apply the operation.
          in: header
          name: If-Match
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The identity provider configuration was successfully deleted.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - IdentityProvider
    get:
      description: Gets the configuration details of the identity Provider configured in specified service instance.
      operationId: IdentityProviders_Get
      parameters:
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/IdentityProviderNameParameter"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: The response body contains the specified IdentityProvider entity configuration details.
          headers:
            ETag:
              description: Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
              type: string
          schema:
            $ref: "#/definitions/IdentityProviderContract"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - IdentityProvider
    patch:
      description: Updates an existing IdentityProvider configuration.
      operationId: IdentityProviders_Update
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/IdentityProviderNameParameter"
        - description: Update parameters.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/IdentityProviderUpdateParameters"
        - description: The entity state (Etag) version of the identity provider configuration to update. A value of "*" can be used for If-Match to unconditionally apply the operation.
          in: header
          name: If-Match
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The existing identity provider configuration was successfully updated.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - IdentityProviders
    put:
      description: Creates or Updates the IdentityProvider configuration.
      operationId: IdentityProviders_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/IdentityProviderNameParameter"
        - description: Create parameters.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/IdentityProviderContract"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "201":
          description: IdentityProvider configuration were successfully created.
        "204":
          description: The existing Identity Provider was successfully updated.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - IdentityProvider
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/loggers":
    get:
      description: Lists a collection of loggers in the specified service instance.
      externalDocs:
        url: https://msdn.microsoft.com/en-us/library/azure/mt592020.aspx
      operationId: Loggers_ListByService
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: |-
            | Field | Supported operators    | Supported functions                         |
            |-------|------------------------|---------------------------------------------|
            | id    | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | type  | eq                     |                                             |
          in: query
          name: $filter
          required: false
          type: string
        - $ref: "#/parameters/TopQueryParameter"
        - $ref: "#/parameters/SkipQueryParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Lists a collection of Logger entities.
          schema:
            $ref: "#/definitions/LoggerCollection"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Loggers
      x-ms-odata: "#/definitions/LoggerResponse"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/loggers/{loggerid}":
    delete:
      description: Deletes the specified logger.
      operationId: Loggers_Delete
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Identifier of the logger.
          in: path
          name: loggerid
          required: true
          type: string
        - description: The entity state (Etag) version of the logger to delete. A value of "*" can be used for If-Match to unconditionally apply the operation.
          in: header
          name: If-Match
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The logger was successfully deleted.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Loggers
    get:
      description: Gets the details of the logger specified by its identifier.
      operationId: Loggers_Get
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Identifier of the logger.
          in: path
          name: loggerid
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: The response body contains the specified Logger entity.
          headers:
            ETag:
              description: Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
              type: string
          schema:
            $ref: "#/definitions/LoggerResponse"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Loggers
    patch:
      description: Updates an existing logger.
      operationId: Loggers_Update
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Identifier of the logger.
          in: path
          name: loggerid
          required: true
          type: string
        - description: Update parameters.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/LoggerUpdateParameters"
        - description: The entity state (Etag) version of the logger to update. A value of "*" can be used for If-Match to unconditionally apply the operation.
          in: header
          name: If-Match
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The existing logger was successfully updated.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Loggers
    put:
      description: Creates or Updates a logger.
      operationId: Loggers_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Identifier of the logger.
          in: path
          maxLength: 256
          name: loggerid
          pattern: ^[^*#&+:<>?]+$
          required: true
          type: string
        - description: Create parameters.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/LoggerCreateParameters"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "201":
          description: Logger was successfully created.
        "204":
          description: The existing logger was successfully updated.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Loggers
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/openidConnectProviders":
    get:
      description: Lists all OpenID Connect Providers.
      operationId: OpenIdConnectProviders_ListByService
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: |-
            | Field | Supported operators    | Supported functions                         |
            |-------|------------------------|---------------------------------------------|
            | id    | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | name  | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
          in: query
          name: $filter
          required: false
          type: string
        - $ref: "#/parameters/TopQueryParameter"
        - $ref: "#/parameters/SkipQueryParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Lists of all the OpenId Connect Providers.
          schema:
            $ref: "#/definitions/OpenIdConnectProviderCollection"
      tags:
        - OpenIdConnectProviders
      x-ms-odata: "#/definitions/OpenidConnectProviderContract"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/openidConnectProviders/{opid}":
    delete:
      description: Deletes specific OpenID Connect Provider of the API Management service instance.
      operationId: OpenIdConnectProviders_Delete
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Identifier of the OpenID Connect Provider.
          in: path
          name: opid
          required: true
          type: string
        - description: The entity state (Etag) version of the OpenID Connect Provider to delete. A value of "*" can be used for If-Match to unconditionally apply the operation.
          in: header
          name: If-Match
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: OpenId Connect Provider was successfully deleted.
        "405":
          description: The specified OpenIdConnect Provider cannot be deleted because it is in use in a policy. You must remove all references to this property before it can be deleted.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - OpenIdConnectProviders
    get:
      description: Gets specific OpenID Connect Provider.
      operationId: OpenIdConnectProviders_Get
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Identifier of the OpenID Connect Provider.
          in: path
          name: opid
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: The response body contains the specified OpenId Connect Provider entity.
          headers:
            ETag:
              description: Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
              type: string
          schema:
            $ref: "#/definitions/OpenidConnectProviderContract"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - OpenIdConnectProviders
    patch:
      description: Updates the specific OpenID Connect Provider.
      operationId: OpenIdConnectProviders_Update
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Identifier of the OpenID Connect Provider.
          in: path
          name: opid
          required: true
          type: string
        - description: Update parameters.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/OpenidConnectProviderUpdateContract"
        - description: The entity state (Etag) version of the OpenID Connect Provider to update. A value of "*" can be used for If-Match to unconditionally apply the operation.
          in: header
          name: If-Match
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: OpenId Connect Provider was successfully updated.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - OpenIdConnectProviders
    put:
      description: Creates or updates the OpenID Connect Provider.
      operationId: OpenIdConnectProviders_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Identifier of the OpenID Connect Provider.
          in: path
          maxLength: 256
          name: opid
          pattern: ^[^*#&+:<>?]+$
          required: true
          type: string
        - description: Create parameters.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/OpenidConnectProviderCreateContract"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "201":
          description: OpenIdConnect Provider was successfully created.
        "204":
          description: OpenIdConnect Provider was successfully updated.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - OpenIdConnectProviders
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/policySnippets":
    get:
      description: Lists all policy snippets.
      operationId: PolicySnippets_ListByService
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Policy scope.
          enum:
            - Tenant
            - Product
            - Api
            - Operation
            - All
          in: query
          name: scope
          required: false
          type: string
          x-ms-enum:
            modelAsString: false
            name: PolicyScopeContract
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Returns an array of Policy Contracts.
          schema:
            items:
              $ref: "#/definitions/PolicySnippetContract"
            type: array
      tags:
        - PolicySnippets
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products":
    get:
      description: Lists a collection of products in the specified service instance.
      externalDocs:
        url: https://msdn.microsoft.com/en-us/library/azure/dn776336.aspx
      operationId: Products_ListByService
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: |-
            | Field       | Supported operators    | Supported functions                         |
            |-------------|------------------------|---------------------------------------------|
            | id          | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | name        | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | description | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | terms       | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | state       | eq                     |                                             |
          in: query
          name: $filter
          required: false
          type: string
        - $ref: "#/parameters/TopQueryParameter"
        - $ref: "#/parameters/SkipQueryParameter"
        - description: When set to true, the response contains an array of groups that have visibility to the product. The default is false.
          in: query
          name: expandGroups
          required: false
          type: boolean
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: A Collection of the Product entities for the specified API Management service instance.
          schema:
            $ref: "#/definitions/ProductCollection"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Products
      x-ms-odata: "#/definitions/ProductContract"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}":
    delete:
      description: Delete product.
      operationId: Products_Delete
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ProductIdParameter"
        - description: Delete existing subscriptions to the product or not.
          in: query
          name: deleteSubscriptions
          required: false
          type: boolean
        - description: ETag of the Product Entity. ETag should match the current entity state from the header response of the GET request or it should be * for unconditional update.
          in: header
          name: If-Match
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The product was successfully deleted.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Products
    get:
      description: Gets the details of the product specified by its identifier.
      operationId: Products_Get
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ProductIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: The response body contains the specified Product entity.
          headers:
            ETag:
              description: Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
              type: string
          schema:
            $ref: "#/definitions/ProductContract"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Products
    patch:
      description: Update product.
      operationId: Products_Update
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ProductIdParameter"
        - description: Update parameters.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/ProductUpdateParameters"
        - description: ETag of the Product Entity. ETag should match the current entity state from the header response of the GET request or it should be * for unconditional update.
          in: header
          name: If-Match
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: No Content in case of Update Successful.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Products
    put:
      description: Creates or Updates a product.
      operationId: Products_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ProductIdParameter"
        - description: Create or update parameters.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/ProductContract"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "201":
          description: Product was successfully created.
        "204":
          description: Product already exists.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Products
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/apis":
    get:
      description: Lists a collection of the APIs associated with a product.
      operationId: ProductApis_ListByProduct
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ProductIdParameter"
        - description: |
            | Field       | Supported operators    | Supported functions                         |
            |-------------|------------------------|---------------------------------------------|
            | id          | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | name        | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | description | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | serviceUrl  | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | path        | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
          in: query
          name: $filter
          required: false
          type: string
        - $ref: "#/parameters/TopQueryParameter"
        - $ref: "#/parameters/SkipQueryParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: The response body contains a collection of Api entities in the product.
          schema:
            $ref: "#/definitions/ApiCollection"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - ProductApis
      x-ms-odata: "#/definitions/ApiContract"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/apis/{apiId}":
    delete:
      description: Deletes the specified API from the specified product.
      operationId: ProductApis_Remove
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ProductIdParameter"
        - $ref: "#/parameters/ApiIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The API was successfully removed from the product.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - ProductApis
    put:
      description: Adds an API to the specified product.
      operationId: ProductApis_Add
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ProductIdParameter"
        - $ref: "#/parameters/ApiIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "201":
          description: The API was successfully added to the product.
        "204":
          description: The specified API is already added to the product.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - ProductApis
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/groups":
    get:
      description: Lists the collection of developer groups associated with the specified product.
      operationId: ProductGroups_ListByProduct
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ProductIdParameter"
        - description: |-
            | Field       | Supported operators    | Supported functions                         |
            |-------------|------------------------|---------------------------------------------|
            | id          | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | name        | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | description | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | type        | eq, ne                 | N/A                                         |
          in: query
          name: $filter
          required: false
          type: string
        - $ref: "#/parameters/TopQueryParameter"
        - $ref: "#/parameters/SkipQueryParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Lists a collection of Group entities.
          schema:
            $ref: "#/definitions/GroupCollection"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - ProductGroups
      x-ms-odata: "#/definitions/GroupContract"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/groups/{groupId}":
    delete:
      description: Deletes the association between the specified group and product.
      operationId: ProductGroups_Remove
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ProductIdParameter"
        - $ref: "#/parameters/GroupIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The group was successfully disassociated with the product.
        "400":
          description: Request validation failed.This is typically caused by an invalid product or group id.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - ProductGroups
    put:
      description: Adds the association between the specified developer group with the specified product.
      operationId: ProductGroups_Add
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ProductIdParameter"
        - $ref: "#/parameters/GroupIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "201":
          description: The group was successfully associated with the product..
        "204":
          description: The specified group is already associated with the product.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - ProductGroups
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/subscriptions":
    get:
      description: Lists the collection of subscriptions to the specified product.
      operationId: ProductSubscriptions_ListByProduct
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ProductIdParameter"
        - description: |-
            | Field        | Supported operators    | Supported functions                         |
            |--------------|------------------------|---------------------------------------------|
            | id           | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | name         | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | stateComment | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | userId       | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | productId    | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | state        | eq                     |                                             |
          in: query
          name: $filter
          required: false
          type: string
        - $ref: "#/parameters/TopQueryParameter"
        - $ref: "#/parameters/SkipQueryParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Lists a collection of subscription entities.
          schema:
            $ref: "#/definitions/SubscriptionCollection"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - ProductSubscriptions
      x-ms-odata: "#/definitions/SubscriptionContract"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/properties":
    get:
      description: Lists a collection of properties defined within a service instance.
      externalDocs:
        url: https://msdn.microsoft.com/en-us/library/azure/mt651775.aspx
      operationId: Property_ListByService
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: |-
            | Field | Supported operators    | Supported functions                                   |
            |-------|------------------------|-------------------------------------------------------|
            | tags  | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith, any, all |
            | name  | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith           |
          in: query
          name: $filter
          required: false
          type: string
        - $ref: "#/parameters/TopQueryParameter"
        - $ref: "#/parameters/SkipQueryParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: A Collection of the Property entities for the specified API Management service instance.
          schema:
            $ref: "#/definitions/PropertyCollection"
      tags:
        - Property
      x-ms-odata: "#/definitions/PropertyContract"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/properties/{propId}":
    delete:
      description: Deletes specific property from the API Management service instance.
      operationId: Property_Delete
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Identifier of the property.
          in: path
          name: propId
          required: true
          type: string
        - description: The entity state (Etag) version of the property to delete. A value of "*" can be used for If-Match to unconditionally apply the operation.
          in: header
          name: If-Match
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: Property was successfully deleted.
        "405":
          description: The specified property cannot be deleted because it is in use in a policy. You must remove all references to this property before it can be deleted.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Property
    get:
      description: Gets the details of the property specified by its identifier.
      operationId: Property_Get
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Identifier of the property.
          in: path
          name: propId
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: The response body contains the specified Property entity.
          headers:
            ETag:
              description: Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
              type: string
          schema:
            $ref: "#/definitions/PropertyContract"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Property
    patch:
      description: Updates the specific property.
      operationId: Property_Update
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Identifier of the property.
          in: path
          name: propId
          required: true
          type: string
        - description: Update parameters.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/PropertyUpdateParameters"
        - description: The entity state (Etag) version of the property to update. A value of "*" can be used for If-Match to unconditionally apply the operation.
          in: header
          name: If-Match
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: Property was successfully updated.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Property
    put:
      description: Creates or updates a property.
      operationId: Property_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Identifier of the property.
          in: path
          maxLength: 256
          name: propId
          pattern: ^[^*#&+:<>?]+$
          required: true
          type: string
        - description: Create parameters.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/PropertyCreateParameters"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "201":
          description: Property was successfully created.
        "204":
          description: Property was successfully updated.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Property
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/quotas/{quotaCounterKey}":
    get:
      description: Lists a collection of current quota counter periods associated with the counter-key configured in the policy on the specified service instance. The api does not support paging yet.
      externalDocs:
        description: Document describing how to configure the quota policies.
        url: https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-product-with-rules#a-namepolicies-ato-configure-call-rate-limit-and-quota-policies
      operationId: QuotaByCounterKeys_ListByService
      parameters:
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/QuotaCounterKeyParameter"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: Lists a collection of the quota counter values.
          schema:
            $ref: "#/definitions/QuotaCounterCollection"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - QuotaByCounterKeys
    patch:
      description: Updates all the quota counter values specified with the existing quota counter key to a value in the specified service instance. This should be used for reset of the quota counter values.
      operationId: QuotaByCounterKeys_Update
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/QuotaCounterKeyParameter"
        - description: The value of the quota counter to be applied to all quota counter periods.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/QuotaCounterValueContract"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: All the quota counter periods were successfully updated.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - QuotaByCounterKeys
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/quotas/{quotaCounterKey}/{quotaPeriodKey}":
    get:
      description: Gets the value of the quota counter associated with the counter-key in the policy for the specific period in service instance.
      externalDocs:
        description: Document describing how to configure the quota policies.
        url: https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-product-with-rules#a-namepolicies-ato-configure-call-rate-limit-and-quota-policies
      operationId: QuotaByPeriodKeys_Get
      parameters:
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/QuotaCounterKeyParameter"
        - $ref: "#/parameters/QuotaPeriodKeyParameter"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: The response body contains the Quota counter details for the specified period.
          schema:
            $ref: "#/definitions/QuotaCounterContract"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - QuotaByPeriodKeys
    patch:
      description: Updates an existing quota counter value in the specified service instance.
      operationId: QuotaByPeriodKeys_Update
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/QuotaCounterKeyParameter"
        - $ref: "#/parameters/QuotaPeriodKeyParameter"
        - description: The value of the Quota counter to be applied on the specified period.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/QuotaCounterValueContract"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The quota counter value was successfully updated.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - QuotaByPeriodKeys
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/regions":
    get:
      description: Lists all azure regions in which the service exists.
      operationId: Regions_ListByService
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Lists of Regions in which the service is deployed.
          schema:
            $ref: "#/definitions/RegionListResult"
      tags:
        - Regions
      x-ms-pageable:
        nextLinkName: null
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/reports/{aggregation}":
    get:
      description: Lists report records.
      operationId: Reports_ListByService
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Report aggregation.
          enum:
            - byApi
            - byGeo
            - byOperation
            - byProduct
            - bySubscription
            - byTime
            - byUser
          in: path
          name: aggregation
          required: true
          type: string
          x-ms-enum:
            modelAsString: false
            name: ReportsAggregation
        - description: The filter to apply on the operation.
          in: query
          name: $filter
          required: false
          type: string
        - $ref: "#/parameters/TopQueryParameter"
        - $ref: "#/parameters/SkipQueryParameter"
        - description: "By time interval. This value is only applicable to ByTime aggregation. Interval must be multiple of 15 minutes and may not be zero. The value should be in ISO  8601 format (http://en.wikipedia.org/wiki/ISO_8601#Durations).This code can be used to convert TimSpan to a valid interval string: XmlConvert.ToString(new TimeSpan(hours, minutes, seconds))"
          in: query
          name: interval
          required: false
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Lists a collection of Report record.
          schema:
            $ref: "#/definitions/ReportCollection"
      tags:
        - Reports
      x-ms-odata: "#/definitions/ReportRecordContract"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/subscriptions":
    get:
      description: Lists all subscriptions of the API Management service instance.
      externalDocs:
        url: https://msdn.microsoft.com/en-us/library/azure/dn776325.aspx
      operationId: Subscriptions_ListByService
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: |-
            | Field        | Supported operators    | Supported functions                         |
            |--------------|------------------------|---------------------------------------------|
            | id           | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | name         | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | stateComment | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | userId       | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | productId    | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | state        | eq                     |                                             |
          in: query
          name: $filter
          required: false
          type: string
        - $ref: "#/parameters/TopQueryParameter"
        - $ref: "#/parameters/SkipQueryParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: A collection of the Subscription entities for the specified API Management service instance.
          schema:
            $ref: "#/definitions/SubscriptionCollection"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Subscriptions
      x-ms-odata: "#/definitions/SubscriptionContract"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/subscriptions/{sid}":
    delete:
      description: Deletes the specified subscription.
      operationId: Subscriptions_Delete
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Identifier of the subscription.
          in: path
          name: sid
          required: true
          type: string
        - description: ETag of the Subscription Entity. ETag should match the current entity state from the header response of the GET request or it should be * for unconditional update.
          in: header
          name: If-Match
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The subscription details were successfully deleted.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Subscriptions
    get:
      description: Gets the specified Subscription entity.
      operationId: Subscriptions_Get
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Identifier of the subscription.
          in: path
          name: sid
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: The response body contains the specified Subscription entity.
          headers:
            ETag:
              description: Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
              type: string
          schema:
            $ref: "#/definitions/SubscriptionContract"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Subscriptions
    patch:
      description: Updates the details of a subscription specified by its identifier.
      operationId: Subscriptions_Update
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Identifier of the subscription.
          in: path
          name: sid
          required: true
          type: string
        - description: Update parameters.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/SubscriptionUpdateParameters"
        - description: ETag of the Subscription Entity. ETag should match the current entity state from the header response of the GET request or it should be * for unconditional update.
          in: header
          name: If-Match
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The subscription details were successfully updated.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Subscriptions
    put:
      description: Creates or updates the subscription of specified user to the specified product.
      operationId: Subscriptions_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Identifier of the subscription.
          in: path
          maxLength: 256
          minLength: 1
          name: sid
          pattern: ^[^*#&+:<>?]+$
          required: true
          type: string
        - description: Create parameters.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/SubscriptionCreateParameters"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "201":
          description: The user was successfully subscribed to the product.
        "204":
          description: The user already subscribed to the product.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Subscriptions
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/subscriptions/{sid}/regeneratePrimaryKey":
    post:
      description: Regenerates primary key of existing subscription of the API Management service instance.
      operationId: Subscriptions_RegeneratePrimaryKey
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Identifier of the subscription.
          in: path
          name: sid
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The primary key was successfully regenerated.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Subscriptions
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/subscriptions/{sid}/regenerateSecondaryKey":
    post:
      description: Regenerates secondary key of existing subscription of the API Management service instance.
      operationId: Subscriptions_RegenerateSecondaryKey
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Identifier of the subscription.
          in: path
          name: sid
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The secondary key was successfully regenerated.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Subscriptions
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/tenant/access":
    get:
      description: Get tenant access information details.
      operationId: TenantAccess_Get
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Tenant Access information.
          headers:
            ETag:
              description: Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
              type: string
          schema:
            $ref: "#/definitions/AccessInformationContract"
      tags:
        - TenantAccess
    patch:
      description: Update tenant access information details.
      operationId: TenantAccess_Update
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Parameters.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/AccessInformationUpdateParameters"
        - description: The entity state (Etag) version of the tenant access settings to update. A value of "*" can be used for If-Match to unconditionally apply the operation.
          in: header
          name: If-Match
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "201":
          description: Tenant's access information updated successfully.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - TenantAccess
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/tenant/access/git":
    get:
      description: Gets the Git access configuration for the tenant.
      operationId: TenantAccessGit_Get
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Git Access Information for the Service.
          headers:
            ETag:
              description: Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
              type: string
          schema:
            $ref: "#/definitions/AccessInformationContract"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - TenantAccessGit
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/tenant/access/git/regeneratePrimaryKey":
    post:
      description: Regenerate primary access key for GIT.
      operationId: TenantAccessGit_RegeneratePrimaryKey
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The primary key was successfully regenerated.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - TenantAccessGit
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/tenant/access/git/regenerateSecondaryKey":
    post:
      description: Regenerate secondary access key for GIT.
      operationId: TenantAccessGit_RegenerateSecondaryKey
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The secondary key was successfully regenerated.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - TenantAccessGit
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/tenant/access/regeneratePrimaryKey":
    post:
      description: Regenerate primary access key.
      operationId: TenantAccess_RegeneratePrimaryKey
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The primary key was successfully regenerated.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - TenantAccess
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/tenant/access/regenerateSecondaryKey":
    post:
      description: Regenerate secondary access key.
      operationId: TenantAccess_RegenerateSecondaryKey
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The secondary key was successfully regenerated.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - TenantAccess
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/tenant/configuration/deploy":
    post:
      description: This operation applies changes from the specified Git branch to the configuration database. This is a long running operation and could take several minutes to complete.
      externalDocs:
        description: To deploy any service configuration changes to the API Management service instance
        url: https://azure.microsoft.com/en-us/documentation/articles/api-management-configuration-repository-git/#to-deploy-any-service-configuration-changes-to-the-api-management-service-instance
      operationId: TenantConfiguration_Deploy
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Deploy Configuration parameters.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/DeployConfigurationParameters"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Result of applying changes from Git branch to database.
          schema:
            $ref: "#/definitions/OperationResultContract"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - TenantConfiguration
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/tenant/configuration/save":
    post:
      description: This operation creates a commit with the current configuration snapshot to the specified branch in the repository. This is a long running operation and could take several minutes to complete.
      externalDocs:
        description: To save the service configuration to the Git repository
        url: https://azure.microsoft.com/en-us/documentation/articles/api-management-configuration-repository-git/#to-save-the-service-configuration-to-the-git-repository
      operationId: TenantConfiguration_Save
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Save Configuration parameters.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/SaveConfigurationParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Result of creating a commit in the repository.
          schema:
            $ref: "#/definitions/OperationResultContract"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - TenantConfiguration
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/tenant/configuration/syncState":
    get:
      description: Gets the status of the most recent synchronization between the configuration database and the Git repository.
      operationId: TenantConfigurationSyncState_Get
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Sync state result.
          schema:
            $ref: "#/definitions/TenantConfigurationSyncStateContract"
      tags:
        - TenantConfigurationSyncState
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/tenant/configuration/validate":
    post:
      description: This operation validates the changes in the specified Git branch. This is a long running operation and could take several minutes to complete.
      operationId: TenantConfiguration_Validate
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: Validate Configuration parameters.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/DeployConfigurationParameters"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Result of validating the changes in the specified Git branch.
          schema:
            $ref: "#/definitions/OperationResultContract"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - TenantConfiguration
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/users":
    get:
      description: Lists a collection of registered users in the specified service instance.
      externalDocs:
        url: https://msdn.microsoft.com/en-us/library/azure/dn776330.aspx
      operationId: Users_ListByService
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - description: |-
            | Field            | Supported operators    | Supported functions               |
            |------------------|------------------------|-----------------------------------|
            | id               | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | firstName        | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | lastName         | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | email            | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | state            | eq                     | N/A                               |
            | registrationDate | ge, le, eq, ne, gt, lt | N/A                               |
            | note             | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
          in: query
          name: $filter
          required: false
          type: string
        - $ref: "#/parameters/TopQueryParameter"
        - $ref: "#/parameters/SkipQueryParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Lists a collection of User entities.
          schema:
            $ref: "#/definitions/UserCollection"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Users
      x-ms-odata: "#/definitions/UserContract"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/users/{uid}":
    delete:
      description: Deletes specific user.
      operationId: Users_Delete
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/UserIdParameter"
        - description: Whether to delete user's subscription or not.
          in: query
          name: deleteSubscriptions
          required: false
          type: boolean
        - description: The entity state (Etag) version of the user to delete. A value of "*" can be used for If-Match to unconditionally apply the operation.
          in: header
          name: If-Match
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The user details were successfully deleted.
        "405":
          description: Administrator user cannot be modified.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Users
    get:
      description: Gets the details of the user specified by its identifier.
      operationId: Users_Get
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/UserIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Gets the specified user entity.
          headers:
            ETag:
              description: Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
              type: string
          schema:
            $ref: "#/definitions/UserContract"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Users
    patch:
      description: Updates the details of the user specified by its identifier.
      operationId: Users_Update
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/UserIdParameter"
        - description: Update parameters.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/UserUpdateParameters"
        - description: The entity state (Etag) version of the user to update. A value of "*" can be used for If-Match to unconditionally apply the operation.
          in: header
          name: If-Match
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "204":
          description: The user details were successfully updated.
        "405":
          description: Administrator user cannot be modified.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Users
    put:
      description: Creates or Updates a user.
      operationId: Users_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/UserIdParameter"
        - description: Create or update parameters.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/UserCreateParameters"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "201":
          description: User was successfully created.
        "204":
          description: User was successfully updated.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Users
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/users/{uid}/generateSsoUrl":
    post:
      description: Retrieves a redirection URL containing an authentication token for signing a given user into the developer portal.
      operationId: Users_GenerateSsoUrl
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/UserIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: The response body contains the single sign-on URL.
          schema:
            $ref: "#/definitions/GenerateSsoUrlResult"
            x-ms-client-flatten: true
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Users
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/users/{uid}/groups":
    get:
      description: Lists all user groups.
      operationId: UserGroups_ListByUser
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/UserIdParameter"
        - description: |-
            | Field       | Supported operators    | Supported functions                         |
            |-------------|------------------------|---------------------------------------------|
            | id          | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | name        | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | description | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
          in: query
          name: $filter
          required: false
          type: string
        - $ref: "#/parameters/TopQueryParameter"
        - $ref: "#/parameters/SkipQueryParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Lists a collection of Group entities.
          schema:
            $ref: "#/definitions/GroupCollection"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - UserGroups
      x-ms-odata: "#/definitions/GroupContract"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/users/{uid}/identities":
    get:
      description: Lists all user identities.
      operationId: UserIdentities_ListByUser
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/UserIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Lists of User Identities.
          schema:
            items:
              $ref: "#/definitions/UserIdentityContract"
            type: array
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - UserIdentities
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/users/{uid}/subscriptions":
    get:
      description: Lists the collection of subscriptions of the specified user.
      operationId: UserSubscriptions_ListByUser
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/UserIdParameter"
        - description: |-
            | Field        | Supported operators    | Supported functions                         |
            |--------------|------------------------|---------------------------------------------|
            | id           | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | name         | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | stateComment | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | userId       | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | productId    | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith |
            | state        | eq                     |                                             |
          in: query
          name: $filter
          required: false
          type: string
        - $ref: "#/parameters/TopQueryParameter"
        - $ref: "#/parameters/SkipQueryParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Lists a collection of Subscription entities.
          schema:
            $ref: "#/definitions/SubscriptionCollection"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - UserSubscriptions
      x-ms-odata: "#/definitions/SubscriptionContract"
      x-ms-pageable:
        nextLinkName: nextLink
definitions:
  AccessInformationContract:
    description: Tenant access information contract of the API Management service.
    properties:
      enabled:
        description: Tenant access information of the API Management service.
        type: boolean
      id:
        description: Identifier.
        type: string
      primaryKey:
        description: Primary access key.
        type: string
      secondaryKey:
        description: Secondary access key.
        type: string
  AccessInformationUpdateParameters:
    description: Tenant access information update parameters of the API Management service.
    properties:
      enabled:
        description: Tenant access information of the API Management service.
        type: boolean
    required:
      - enabled
  ApiCollection:
    description: Paged Api list representation.
    properties:
      count:
        description: Total records count number.
        format: int64
        type: integer
      nextLink:
        description: Next page link if any.
        type: string
      value:
        description: Page values.
        items:
          $ref: "#/definitions/ApiContract"
        type: array
  ApiContract:
    description: API details.
    properties:
      authenticationSettings:
        $ref: "#/definitions/AuthenticationSettingsContract"
        description: Collection of authentication settings included into this API.
      description:
        description: Description of the API. May include HTML formatting tags.
        type: string
      id:
        description: "API identifier path: /apis/{apiId}"
        readOnly: true
        type: string
      name:
        description: API name.
        maxLength: 300
        minLength: 1
        type: string
      path:
        description: Relative URL uniquely identifying this API and all of its resource paths within the API Management service instance. It is appended to the API endpoint base URL specified during the service instance creation to form a public URL for this API.
        maxLength: 400
        minLength: 0
        type: string
      protocols:
        description: Describes on which protocols the operations in this API can be invoked.
        items:
          enum:
            - Http
            - Https
          type: string
          x-ms-enum:
            modelAsString: false
            name: ApiProtocolContract
        type: array
      serviceUrl:
        description: Absolute URL of the backend service implementing this API.
        maxLength: 2000
        minLength: 1
        type: string
      subscriptionKeyParameterNames:
        $ref: "#/definitions/SubscriptionKeyParameterNamesContract"
        description: Protocols over which API is made available.
      type:
        description: Type of API.
        enum:
          - Http
          - Soap
        type: string
        x-ms-enum:
          modelAsString: false
          name: ApiTypeContract
    required:
      - name
      - serviceUrl
      - path
      - protocols
  ApiExportResult:
    description: The response model for the export API output operation.
    properties:
      content:
        description: Response content bytes.
        format: byte
        type: string
      requestId:
        type: string
      statusCode:
        enum:
          - Continue
          - OK
          - Created
          - Accepted
          - NotFound
          - Conflict
        type: string
        x-ms-enum:
          modelAsString: false
          name: HttpStatusCode
  AuthenticationSettingsContract:
    description: API Authentication Settings.
    properties:
      oAuth2:
        $ref: "#/definitions/OAuth2AuthenticationSettingsContract"
  AuthorizationServerCollection:
    description: Paged OAuth2 Authorization Servers list representation.
    properties:
      count:
        description: Total records count number.
        format: int64
        type: integer
      nextLink:
        description: Next page link if any.
        type: string
      value:
        description: Page values.
        items:
          $ref: "#/definitions/OAuth2AuthorizationServerContract"
        type: array
  BackendCollection:
    description: Paged Backend list representation.
    properties:
      count:
        description: Total records count number.
        format: int64
        type: integer
      nextLink:
        description: Next page link if any.
        type: string
      value:
        description: Backend values.
        items:
          $ref: "#/definitions/BackendResponse"
        type: array
  BackendContract:
    description: Parameters supplied to the Create Backend operation.
    properties:
      host:
        description: Host attribute of the backend. Host is a pure hostname without a port or suffix, for example backend.contoso.com. Must not be empty.
        maxLength: 255
        minLength: 1
        type: string
      skipCertificateChainValidation:
        default: false
        description: Flag indicating whether SSL certificate chain validation should be skipped when using self-signed certificates for this backend host.
        type: boolean
    required:
      - host
  BackendResponse:
    allOf:
      - $ref: "#/definitions/BackendContract"
    description: The Backend entity in API Management represents a backend service that is configured to skip certification chain validation when using a self-signed certificate to test mutual certificate authentication.
    properties:
      id:
        description: Uniquely identifies the backend within the current API Management service instance. The value is a valid relative URL in the format of /backends/{backendId} where {backendId} is a backend identifier.
        readOnly: true
        type: string
  BackendUpdateParameters:
    description: Parameters supplied to the Update Backend operation.
    properties:
      host:
        description: Host attribute of the backend. Host is a pure hostname without a port or suffix, for example backend.contoso.com. Must not be empty.
        maxLength: 255
        minLength: 1
        type: string
      skipCertificateChainValidation:
        default: false
        description: Flag indicating whether SSL certificate chain validation should be skipped when using self-signed certificates for this backend host.
        type: boolean
  CertificateCollection:
    description: Paged Certificates list representation.
    properties:
      count:
        description: Total records count number.
        format: int64
        type: integer
      nextLink:
        description: Next page link if any.
        type: string
      value:
        description: Page values.
        items:
          $ref: "#/definitions/CertificateContract"
        type: array
  CertificateContract:
    description: Certificate details.
    properties:
      expirationDate:
        description: |
          Expiration date of the certificate. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.
        format: date-time
        type: string
      id:
        description: "Certificate identifier path: /certificates/{certificateId}"
        readOnly: true
        type: string
      subject:
        description: Subject attribute of the certificate.
        type: string
      thumbprint:
        description: Thumbprint of the certificate.
        type: string
    required:
      - subject
      - thumbprint
      - expirationDate
  CertificateCreateOrUpdateParameters:
    description: Parameters supplied to the CreateOrUpdate certificate operation.
    properties:
      data:
        description: Base 64 encoded certificate using the application/x-pkcs12 representation.
        type: string
      password:
        description: Password for the Certificate
        type: string
    required:
      - data
      - password
  DeployConfigurationParameters:
    description: Parameters supplied to the Deploy Configuration operation.
    properties:
      branch:
        description: The name of the Git branch from which the configuration is to be deployed to the configuration database.
        type: string
      force:
        description: The value enforcing deleting subscriptions to products that are deleted in this update.
        type: boolean
    required:
      - branch
  ErrorBodyContract:
    description: Error Body contract.
    properties:
      code:
        description: Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.
        type: string
      details:
        description: The list of invalid fields send in request, in case of validation error.
        items:
          $ref: "#/definitions/ErrorFieldContract"
        type: array
      message:
        description: Human-readable representation of the error.
        type: string
  ErrorFieldContract:
    description: Error Field contract.
    properties:
      code:
        description: Property level error code.
        type: string
      message:
        description: Human-readable representation of property-level error.
        type: string
      target:
        description: Property name.
        type: string
  GenerateSsoUrlResult:
    description: Generate SSO Url operations response details.
    properties:
      value:
        description: Redirect Url containing the SSO URL value.
        type: string
  GroupCollection:
    description: Paged Group list representation.
    properties:
      count:
        description: Total records count number.
        format: int64
        type: integer
      nextLink:
        description: Next page link if any.
        type: string
      value:
        description: Page values.
        items:
          $ref: "#/definitions/GroupContract"
        type: array
  GroupContract:
    description: Developer group.
    properties:
      builtIn:
        description: true if the group is one of the three system groups (Administrators, Developers, or Guests); otherwise false.
        readOnly: true
        type: boolean
      description:
        description: Group description. Can contain HTML formatting tags.
        maxLength: 1000
        type: string
      externalId:
        description: For external groups, this property contains the id of the group from the external identity provider, e.g. Azure Active Directory; otherwise the value is null.
        readOnly: true
        type: string
      id:
        description: Uniquely identifies the group within the current API Management service instance. The value is a valid relative URL in the format of /groups/{groupId} where {groupId} is a group identifier.
        readOnly: true
        type: string
      name:
        description: Group name.
        maxLength: 300
        minLength: 1
        type: string
      type:
        description: Group type.
        enum:
          - Custom
          - System
          - External
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: false
          name: GroupTypeContract
    required:
      - name
  GroupCreateParameters:
    description: Parameters supplied to the Create Group operation.
    properties:
      description:
        description: Group description.
        type: string
      externalId:
        description: Identifier for an external group.
        type: string
      name:
        description: Group name.
        maxLength: 300
        minLength: 1
        type: string
      type:
        description: Group type.
        enum:
          - Custom
          - System
          - External
        type: string
        x-ms-enum:
          modelAsString: false
          name: GroupTypeContract
    required:
      - name
  GroupUpdateParameters:
    description: Parameters supplied to the Update Group operation.
    properties:
      description:
        description: Group description.
        type: string
      externalId:
        description: Identifier for an external group.
        type: string
      name:
        description: Group name.
        maxLength: 300
        minLength: 1
        type: string
      type:
        description: Group type.
        enum:
          - Custom
          - System
          - External
        type: string
        x-ms-enum:
          modelAsString: false
          name: GroupTypeContract
  IdentityProviderContract:
    description: The external Identity Providers like Facebook, Google, Microsoft, Twitter or Azure Active Directory which can be used to enable access to the API Management service developer portal for all users.
    externalDocs:
      url: https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-aad#how-to-authorize-developer-accounts-using-azure-active-directory
    properties:
      allowedTenants:
        description: List of Allowed Tenants when configuring Azure Active Directory login.
        items:
          type: string
        maxItems: 32
        type: array
      clientId:
        description: Client Id of the Application in the external Identity Provider. It is App ID for Facebook login, Client ID for Google login, App ID for Microsoft.
        minLength: 1
        type: string
      clientSecret:
        description: Client secret of the Application in external Identity Provider, used to authenticate login request. For example, it is App Secret for Facebook login, API Key for Google login, Public Key for Microsoft.
        minLength: 1
        type: string
      type:
        description: Identity Provider Type identifier.
        enum:
          - facebook
          - google
          - microsoft
          - twitter
          - aad
        type: string
        x-ms-enum:
          modelAsString: true
          name: IdentityProviderNameType
    required:
      - clientId
      - clientSecret
  IdentityProviderList:
    description: List of all the Identity Providers configured on the service instance.
    properties:
      value:
        description: Identity Provider configuration values.
        items:
          $ref: "#/definitions/IdentityProviderContract"
        type: array
  IdentityProviderUpdateParameters:
    description: Parameters supplied to the Update Identity Provider operation.
    properties:
      allowedTenants:
        description: List of Allowed Tenants when configuring Azure Active Directory login.
        items:
          type: string
        maxItems: 32
        type: array
      clientId:
        description: Client Id of the Application in the external Identity Provider. It is App ID for Facebook login, Client ID for Google login, App ID for Microsoft.
        minLength: 1
        type: string
      clientSecret:
        description: Client secret of the Application in external Identity Provider, used to authenticate login request. For example, it is App Secret for Facebook login, API Key for Google login, Public Key for Microsoft.
        minLength: 1
        type: string
  LoggerCollection:
    description: Paged Logger list representation.
    properties:
      count:
        description: Total records count number.
        format: int64
        type: integer
      nextLink:
        description: Next page link if any.
        type: string
      value:
        description: Logger values.
        items:
          $ref: "#/definitions/LoggerResponse"
        type: array
  LoggerCreateParameters:
    description: Parameters supplied to the Create Logger operation.
    properties:
      credentials:
        additionalProperties:
          type: string
        description: The name and SendRule connection string of the event hub.
        example:
          connectionString: Endpoint=endpoint and key from Azure classic portal. This property in credentials is must.
          name: Event hub name. This is optional.
        type: object
      description:
        description: Logger description.
        type: string
      isBuffered:
        description: Whether records are buffered in the logger before publishing. Default is assumed to be true.
        type: boolean
      type:
        description: Logger type.
        enum:
          - AzureEventHub
        type: string
        x-ms-enum:
          modelAsString: false
          name: LoggerTypeContract
    required:
      - type
      - credentials
  LoggerResponse:
    description: The Logger entity in API Management represents an event sink that you can use to log API Management events. Currently the Logger entity supports logging API Management events to Azure Event Hubs.
    properties:
      credentials:
        additionalProperties:
          type: string
        description: The name and SendRule connection string of the event hub.
        example:
          connectionString: Endpoint=sb://contoso-ns.servicebus.windows.net/;SharedAccessKeyName=Sender;SharedAccessKey=...
          name: apim
        type: object
      description:
        description: Logger description.
        maxLength: 256
        type: string
      id:
        description: Uniquely identifies the logger within the current API Management service instance. The value is a valid relative URL in the format of /loggers/{loggerId} where {loggerId} is a logger identifier.
        readOnly: true
        type: string
      isBuffered:
        default: true
        description: Whether records are buffered in the logger before publishing. Default is assumed to be true.
        type: boolean
      type:
        description: Logger type.
        enum:
          - AzureEventHub
        type: string
        x-ms-enum:
          modelAsString: false
          name: LoggerTypeContract
    required:
      - type
      - credentials
  LoggerUpdateParameters:
    description: Parameters supplied to the Update Logger operation.
    properties:
      credentials:
        additionalProperties:
          type: string
        description: Logger credentials.
        type: object
      description:
        description: Logger description.
        type: string
      isBuffered:
        description: whether records are buffered in the logger before publishing. Default is assumed to be true.
        type: boolean
      type:
        description: Logger type.
        enum:
          - AzureEventHub
        type: string
        x-ms-enum:
          modelAsString: false
          name: LoggerTypeContract
    required:
      - type
  OAuth2AuthenticationSettingsContract:
    description: API OAuth2 Authentication settings details.
    properties:
      authorizationServerId:
        description: OAuth authorization server identifier.
        type: string
      scope:
        description: operations scope.
        type: string
  OAuth2AuthorizationServerContract:
    description: External OAuth authorization server settings.
    example:
      authorizationEndpoint: https://login.microsoftonline.com/55abb68a-8ews-4565-8675-927722a8a005/oauth2/authorize?api-version=1.0
      authorizationMethods:
        - GET
      bearerTokenSendingMethods:
        - authorizationHeader
      clientAuthenticationMethod:
        - Body
      clientId: demo
      clientRegistrationEndpoint: https://contoso.com/
      clientSecret: demo
      defaultScope: null
      description: null
      grantTypes:
        - authorizationCode
      id: /authorizationServers/554be23d0fce600674232c33
      name: AAD OAuth A/S
      resourceOwnerPassword: null
      resourceOwnerUsername: null
      supportState: false
      tokenBodyParameters: []
      tokenEndpoint: https://login.microsoftonline.com/55abb68a-8ews-4565-8675-927722a8a005/oauth2/token?api-version=1.0
    properties:
      authorizationEndpoint:
        description: OAuth authorization endpoint. See http://tools.ietf.org/html/rfc6749#section-3.2.
        type: string
      authorizationMethods:
        description: HTTP verbs supported by the authorization endpoint. GET must be always present. POST is optional.
        items:
          enum:
            - HEAD
            - OPTIONS
            - TRACE
            - GET
            - POST
            - PUT
            - PATCH
            - DELETE
          type: string
          x-ms-enum:
            modelAsString: false
            name: MethodContract
        type: array
      bearerTokenSendingMethods:
        description: "Specifies the mechanism by which access token is passed to the API. "
        externalDocs:
          url: http://tools.ietf.org/html/rfc6749#section-4
        items:
          enum:
            - authorizationHeader
            - query
          type: string
          x-ms-enum:
            modelAsString: false
            name: BearerTokenSendingMethodsContract
        type: array
      clientAuthenticationMethod:
        description: Method of authentication supported by the token endpoint of this authorization server. Possible values are Basic and/or Body. When Body is specified, client credentials and other parameters are passed within the request body in the application/x-www-form-urlencoded format.
        items:
          enum:
            - Basic
            - Body
          type: string
          x-ms-enum:
            modelAsString: false
            name: ClientAuthenticationMethodContract
        type: array
      clientId:
        description: Client or app id registered with this authorization server.
        type: string
      clientRegistrationEndpoint:
        description: Optional reference to a page where client or app registration for this authorization server is performed. Contains absolute URL to entity being referenced.
        type: string
      clientSecret:
        description: Client or app secret registered with this authorization server.
        type: string
      defaultScope:
        description: Access token scope that is going to be requested by default. Can be overridden at the API level. Should be provided in the form of a string containing space-delimited values.
        externalDocs:
          url: http://tools.ietf.org/html/rfc6749#section-3.3
        type: string
      description:
        description: Description of the authorization server. Can contain HTML formatting tags.
        type: string
      grantTypes:
        description: Form of an authorization grant, which the client uses to request the access token.
        externalDocs:
          url: http://tools.ietf.org/html/rfc6749#section-4
        items:
          enum:
            - authorizationCode
            - implicit
            - resourceOwnerPassword
            - clientCredentials
          type: string
          x-ms-enum:
            modelAsString: false
            name: GrantTypesContract
        type: array
      id:
        description: Uniquely identifies the authorization server within the current API Management service instance. The value is a valid relative URL in the format of /authorizationServers/{authsid} where {authsid} is an authorization server identifier.
        readOnly: true
        type: string
      name:
        description: User-friendly authorization server name.
        maxLength: 50
        minLength: 1
        type: string
      resourceOwnerPassword:
        description: Can be optionally specified when resource owner password grant type is supported by this authorization server. Default resource owner password.
        type: string
      resourceOwnerUsername:
        description: Can be optionally specified when resource owner password grant type is supported by this authorization server. Default resource owner username.
        type: string
      supportState:
        description: If true, authorization server will include state parameter from the authorization request to its response. Client may use state parameter to raise protocol security.
        externalDocs:
          url: http://tools.ietf.org/html/rfc6749#section-3.1
        type: boolean
      tokenBodyParameters:
        description: 'Additional parameters required by the token endpoint of this authorization server represented as an array of JSON objects with name and value string properties, i.e. {"name" : "name value", "value": "a value"}.'
        items:
          $ref: "#/definitions/TokenBodyParameterContract"
        type: array
      tokenEndpoint:
        description: OAuth token endpoint. Contains absolute URI to entity being referenced.
        externalDocs:
          url: http://tools.ietf.org/html/rfc6749#section-3.1
        type: string
    required:
      - name
      - clientRegistrationEndpoint
      - authorizationEndpoint
      - clientId
      - grantTypes
  OAuth2AuthorizationServerUpdateContract:
    description: External OAuth authorization server Update settings contract.
    properties:
      authorizationEndpoint:
        description: OAuth authorization endpoint. See http://tools.ietf.org/html/rfc6749#section-3.2.
        type: string
      authorizationMethods:
        description: HTTP verbs supported by the authorization endpoint. GET must be always present. POST is optional.
        items:
          enum:
            - HEAD
            - OPTIONS
            - TRACE
            - GET
            - POST
            - PUT
            - PATCH
            - DELETE
          type: string
          x-ms-enum:
            modelAsString: false
            name: MethodContract
        type: array
      bearerTokenSendingMethods:
        description: "Specifies the mechanism by which access token is passed to the API. "
        externalDocs:
          url: http://tools.ietf.org/html/rfc6749#section-4
        items:
          enum:
            - authorizationHeader
            - query
          type: string
          x-ms-enum:
            modelAsString: false
            name: BearerTokenSendingMethodsContract
        type: array
      clientAuthenticationMethod:
        description: Method of authentication supported by the token endpoint of this authorization server. Possible values are Basic and/or Body. When Body is specified, client credentials and other parameters are passed within the request body in the application/x-www-form-urlencoded format.
        items:
          enum:
            - Basic
            - Body
          type: string
          x-ms-enum:
            modelAsString: false
            name: ClientAuthenticationMethodContract
        type: array
      clientId:
        description: Client or app id registered with this authorization server.
        type: string
      clientRegistrationEndpoint:
        description: Optional reference to a page where client or app registration for this authorization server is performed. Contains absolute URL to entity being referenced.
        type: string
      clientSecret:
        description: Client or app secret registered with this authorization server.
        type: string
      defaultScope:
        description: Access token scope that is going to be requested by default. Can be overridden at the API level. Should be provided in the form of a string containing space-delimited values.
        externalDocs:
          url: http://tools.ietf.org/html/rfc6749#section-3.3
        type: string
      description:
        description: Description of the authorization server. Can contain HTML formatting tags.
        type: string
      grantTypes:
        description: Form of an authorization grant, which the client uses to request the access token.
        externalDocs:
          url: http://tools.ietf.org/html/rfc6749#section-4
        items:
          enum:
            - authorizationCode
            - implicit
            - resourceOwnerPassword
            - clientCredentials
          type: string
          x-ms-enum:
            modelAsString: false
            name: GrantTypesContract
        type: array
      name:
        description: User-friendly authorization server name.
        maxLength: 50
        minLength: 1
        type: string
      resourceOwnerPassword:
        description: Can be optionally specified when resource owner password grant type is supported by this authorization server. Default resource owner password.
        type: string
      resourceOwnerUsername:
        description: Can be optionally specified when resource owner password grant type is supported by this authorization server. Default resource owner username.
        type: string
      supportState:
        description: If true, authorization server will include state parameter from the authorization request to its response. Client may use state parameter to raise protocol security.
        externalDocs:
          url: http://tools.ietf.org/html/rfc6749#section-3.1
        type: boolean
      tokenBodyParameters:
        description: 'Additional parameters required by the token endpoint of this authorization server represented as an array of JSON objects with name and value string properties, i.e. {"name" : "name value", "value": "a value"}.'
        items:
          $ref: "#/definitions/TokenBodyParameterContract"
        type: array
      tokenEndpoint:
        description: OAuth token endpoint. Contains absolute URI to entity being referenced.
        externalDocs:
          url: http://tools.ietf.org/html/rfc6749#section-3.1
        type: string
  OpenIdConnectProviderCollection:
    description: Paged OpenIdProviders list representation.
    properties:
      count:
        description: Total records count number.
        format: int64
        type: integer
      nextLink:
        description: Next page link if any.
        type: string
      value:
        description: Page values.
        items:
          $ref: "#/definitions/OpenidConnectProviderContract"
        type: array
  OpenidConnectProviderContract:
    description: OpenID Connect Providers Contract.
    properties:
      clientId:
        description: Client ID of developer console which is the client application.
        type: string
      clientSecret:
        description: Client Secret of developer console which is the client application.
        type: string
      description:
        description: User-friendly description of OpenID Connect Provider.
        type: string
      id:
        description: OpenID Connect Provider identifier.
        type: string
      metadataEndpoint:
        description: Metadata endpoint URI.
        type: string
      name:
        description: User-friendly OpenID Connect Provider name.
        maxLength: 50
        type: string
    required:
      - name
      - metadataEndpoint
      - clientId
  OpenidConnectProviderCreateContract:
    description: Parameters supplied to the Create OpenID Connect Provider operation.
    properties:
      clientId:
        description: Client ID of developer console which is the client application.
        type: string
      clientSecret:
        description: Client Secret of developer console which is the client application.
        type: string
      description:
        description: User-friendly description of OpenID Connect Provider.
        type: string
      metadataEndpoint:
        description: Metadata endpoint URI.
        type: string
      name:
        description: User-friendly OpenID Connect Provider name.
        maxLength: 50
        type: string
    required:
      - name
      - metadataEndpoint
      - clientId
  OpenidConnectProviderUpdateContract:
    description: Parameters supplied to the Update OpenID Connect Provider operation.
    properties:
      clientId:
        description: Client ID of developer console which is the client application.
        type: string
      clientSecret:
        description: Client Secret of developer console which is the client application.
        type: string
      description:
        description: User-friendly description of OpenID Connect Provider.
        type: string
      metadataEndpoint:
        description: Metadata endpoint URI.
        type: string
      name:
        description: User-friendly OpenID Connect Provider name.
        maxLength: 50
        type: string
  OperationCollection:
    description: Paged Operation list representation.
    properties:
      count:
        description: Total records count number.
        format: int64
        type: integer
      nextLink:
        description: Next page link if any.
        type: string
      value:
        description: Page values.
        items:
          $ref: "#/definitions/OperationContract"
        type: array
  OperationContract:
    description: Api Operation details.
    properties:
      description:
        description: Description of the operation. May include HTML formatting tags.
        maxLength: 1000
        type: string
      id:
        description: Uniquely identifies the operation within the current API Management service instance. The value is a valid relative URL in the format of /apis/{aid}/operations/{id} where {aid} is an API identifier and {id} is an operation identifier.
        readOnly: true
        type: string
      method:
        description: A Valid HTTP Operation Method. Typical Http Methods like GET, PUT, POST but not limited by only them.
        externalDocs:
          description: As defined by RFC.
          url: http://www.rfc-editor.org/rfc/rfc7230.txt
        type: string
      name:
        description: Operation Name.
        maxLength: 300
        minLength: 1
        type: string
      request:
        $ref: "#/definitions/RequestContract"
        description: An entity containing request details.
      responses:
        description: Array of Operation responses.
        items:
          $ref: "#/definitions/ResultContract"
        type: array
      templateParameters:
        description: Collection of URL template parameters.
        items:
          $ref: "#/definitions/ParameterContract"
        type: array
      urlTemplate:
        description: "Relative URL template identifying the target resource for this operation. May include parameters. Example: /customers/{cid}/orders/{oid}/?date={date}"
        maxLength: 1000
        minLength: 1
        type: string
    required:
      - name
      - method
      - urlTemplate
  OperationResultContract:
    description: Operation Result.
    properties:
      error:
        $ref: "#/definitions/ErrorBodyContract"
      id:
        description: Operation result identifier.
        type: string
      resultInfo:
        description: Optional result info.
        type: string
      started:
        description: |
          Start time of an async operation. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.
        format: date-time
        type: string
      status:
        description: Status of an async operation.
        enum:
          - Started
          - InProgress
          - Succeeded
          - Failed
        type: string
        x-ms-enum:
          modelAsString: false
          name: AsyncOperationState
      updated:
        description: |
          Last update time of an async operation. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.
        format: date-time
        type: string
  ParameterContract:
    description: Operation parameters details.
    properties:
      defaultValue:
        description: Default parameter value.
        type: string
      description:
        description: Parameter description.
        type: string
      name:
        description: Parameter name.
        type: string
      required:
        description: whether parameter is required or not.
        type: boolean
      type:
        description: Parameter type.
        type: string
      values:
        description: Parameter values.
        items:
          type: string
        type: array
    required:
      - name
      - type
  PatchParameters:
    description: Parameters supplied to the Patch operations.
    properties:
      RawJson:
        description: json value.
        type: object
    required:
      - RawJson
  PolicySnippetContract:
    description: Policy snippet.
    properties:
      content:
        description: Snippet content.
        readOnly: true
        type: string
      name:
        description: Snippet name.
        readOnly: true
        type: string
      scope:
        description: Snippet scope.
        enum:
          - Tenant
          - Product
          - Api
          - Operation
          - All
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: false
          name: PolicyScopeContract
      toolTip:
        description: Snippet toolTip.
        readOnly: true
        type: string
  ProductCollection:
    description: Paged Products list representation.
    properties:
      count:
        description: Total records count number.
        format: int64
        type: integer
      nextLink:
        description: Next page link if any.
        type: string
      value:
        description: Page values.
        items:
          $ref: "#/definitions/ProductContract"
        type: array
  ProductContract:
    description: Product profile.
    properties:
      approvalRequired:
        description: whether subscription approval is required. If false, new subscriptions will be approved automatically enabling developers to call the product’s APIs immediately after subscribing. If true, administrators must manually approve the subscription before the developer can any of the product’s APIs. Can be present only if subscriptionRequired property is present and has a value of false.
        type: boolean
      description:
        description: Product description. May include HTML formatting tags.
        maxLength: 1000
        minLength: 1
        type: string
      id:
        description: Uniquely identifies the product within the current API Management service instance. The value is a valid relative URL in the format of /products/{productId} where {productId} is a product identifier.
        readOnly: true
        type: string
      name:
        description: Product name.
        maxLength: 300
        minLength: 1
        type: string
      state:
        default: NotPublished
        description: whether product is published or not. Published products are discoverable by users of developer portal. Non published products are visible only to administrators. Default state of Product is NotPublished.
        enum:
          - NotPublished
          - Published
        type: string
        x-ms-enum:
          modelAsString: false
          name: ProductStateContract
      subscriptionRequired:
        default: true
        description: Whether a product subscription is required for accessing APIs included in this product. If true, the product is referred to as "protected" and a valid subscription key is required for a request to an API included in the product to succeed. If false, the product is referred to as "open" and requests to an API included in the product can be made without a subscription key. If property is omitted when creating a new product it's value is assumed to be true.
        type: boolean
      subscriptionsLimit:
        description: Whether the number of subscriptions a user can have to this product at the same time. Set to null or omit to allow unlimited per user subscriptions. Can be present only if subscriptionRequired property is present and has a value of false.
        format: int32
        type: integer
      terms:
        description: Product terms of use. Developers trying to subscribe to the product will be presented and required to accept these terms before they can complete the subscription process.
        type: string
    required:
      - name
  ProductUpdateParameters:
    description: Parameters supplied to the CreateOrUpdate Product operation.
    properties:
      approvalRequired:
        description: whether subscription approval is required. If false, new subscriptions will be approved automatically enabling developers to call the product’s APIs immediately after subscribing. If true, administrators must manually approve the subscription before the developer can any of the product’s APIs. Can be present only if subscriptionRequired property is present and has a value of false.
        type: boolean
      description:
        description: Product description.
        maxLength: 500
        minLength: 1
        type: string
      name:
        description: Product name.
        maxLength: 300
        minLength: 1
        type: string
      state:
        description: whether product is published or not. Published products are discoverable by users of developer portal. Non published products are visible only to administrators.
        enum:
          - NotPublished
          - Published
        type: string
        x-ms-enum:
          modelAsString: false
          name: ProductStateContract
      subscriptionRequired:
        description: whether a product subscription is required for accessing APIs included in this product. If true, the product is referred to as "protected" and a valid subscription key is required for a request to an API included in the product to succeed. If false, the product is referred to as "open" and requests to an API included in the product can be made without a subscription key. If property is omitted when creating a new product it's value is assumed to be true.
        type: boolean
      subscriptionsLimit:
        description: whether the number of subscriptions a user can have to this product at the same time. Set to null or omit to allow unlimited per user subscriptions. Can be present only if subscriptionRequired property is present and has a value of false.
        format: int32
        type: integer
      terms:
        description: Product terms and conditions. Developer will have to accept these terms before he's allowed to call product API.
        type: string
  PropertyCollection:
    description: Paged Property list representation.
    properties:
      count:
        description: Total records count number.
        format: int64
        type: integer
      nextLink:
        description: Next page link if any.
        type: string
      value:
        description: Page values.
        items:
          $ref: "#/definitions/PropertyContract"
        type: array
  PropertyContract:
    description: Property details.
    properties:
      id:
        description: Uniquely identifies the property within the current API Management service instance. The value is a valid relative URL in the format of /properties/{propId} where {propId} is a property identifier.
        readOnly: true
        type: string
      name:
        description: Unique name of Property. It may contain only letters, digits, period, dash, and underscore characters.
        maxLength: 256
        minLength: 1
        pattern: ^[A-Z0-9-._]+$
        type: string
      secret:
        description: Determines whether the value is a secret and should be encrypted or not. Default value is false.
        type: boolean
      tags:
        description: Optional tags that when provided can be used to filter the property list.
        items:
          type: string
        maxItems: 32
        type: array
      value:
        description: Value of the property. Can contain policy expressions. It may not be empty or consist only of whitespace.
        maxLength: 4096
        minLength: 1
        type: string
    required:
      - name
      - value
  PropertyCreateParameters:
    description: Parameters supplied to the Create Property operation.
    properties:
      name:
        description: Unique name of Property. It may contain only letters, digits, period, dash, and underscore characters.
        maxLength: 256
        minLength: 1
        pattern: ^[A-Z0-9-._]+$
        type: string
      secret:
        description: Determines whether the value is a secret and should be encrypted or not. Default value is false.
        type: boolean
      tags:
        description: Optional tags that when provided can be used to filter the property list.
        items:
          type: string
        maxItems: 32
        type: array
      value:
        description: Value of the property. Can contain policy expressions. It may not be empty or consist only of whitespace.
        maxLength: 4096
        minLength: 1
        type: string
    required:
      - name
      - value
  PropertyUpdateParameters:
    description: Parameters supplied to the Update Property operation.
    properties:
      name:
        description: Unique name of Property. It may contain only letters, digits, period, dash, and underscore characters.
        maxLength: 256
        minLength: 1
        pattern: ^[A-Z0-9-._]+$
        type: string
      secret:
        description: Determines whether the value is a secret and should be encrypted or not. Default value is false.
        type: boolean
      tags:
        description: Optional tags that when provided can be used to filter the property list.
        items:
          type: string
        maxItems: 32
        type: array
      value:
        description: Value of the property. Can contain policy expressions. It may not be empty or consist only of whitespace.
        maxLength: 4096
        minLength: 1
        type: string
  QuotaCounterCollection:
    description: Paged Quota Counter list representation.
    properties:
      count:
        description: Total records count number.
        format: int64
        type: integer
      nextLink:
        description: Next page link if any.
        type: string
      value:
        description: Quota counter values.
        items:
          $ref: "#/definitions/QuotaCounterContract"
        type: array
  QuotaCounterContract:
    allOf:
      - $ref: "#/definitions/QuotaCounterValueContract"
    description: Quota counter details.
    properties:
      counterKey:
        description: The Key value of the Counter. Must not be empty.
        minLength: 1
        type: string
      periodEndTime:
        description: |
          The date of the end of Counter Period. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.
        format: date-time
        type: string
      periodKey:
        description: Identifier of the Period for which the counter was collected. Must not be empty.
        minLength: 1
        type: string
      periodStartTime:
        description: |
          The date of the start of Counter Period. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.
        format: date-time
        type: string
    required:
      - counterKey
      - periodKey
      - periodStartTime
      - periodEndTime
  QuotaCounterValueContract:
    description: Quota counter value details.
    properties:
      callsCount:
        description: Number of times Counter was called.
        format: int32
        type: integer
      kbTransferred:
        description: Data Transferred in KiloBytes.
        format: double
        type: number
  RegionContract:
    description: Region profile.
    properties:
      isMasterRegion:
        description: whether Region is the master region.
        type: boolean
      name:
        description: Region name.
        type: string
    required:
      - name
      - isMasterRegion
  RegionListResult:
    description: Lists Regions operation response details.
    properties:
      value:
        description: Lists of Regions.
        items:
          $ref: "#/definitions/RegionContract"
        type: array
  ReportCollection:
    description: Paged Report records list representation.
    properties:
      count:
        description: Total records count number.
        format: int64
        type: integer
      nextLink:
        description: Next page link if any.
        type: string
      value:
        description: Page values.
        items:
          $ref: "#/definitions/ReportRecordContract"
        type: array
  ReportRecordContract:
    description: Report data.
    properties:
      apiId:
        description: API identifier path. /apis/{apiId}
        type: string
      apiRegion:
        description: API region identifier.
        type: string
      apiTimeAvg:
        description: Average time it took to process request.
        format: double
        type: number
      apiTimeMax:
        description: Maximum time it took to process request.
        format: double
        type: number
      apiTimeMin:
        description: Minimum time it took to process request.
        format: double
        type: number
      bandwidth:
        description: Bandwidth consumed.
        format: int64
        type: integer
      cacheHitCount:
        description: Number of times when content was served from cache policy.
        format: int32
        type: integer
      cacheMissCount:
        description: Number of times content was fetched from backend.
        format: int32
        type: integer
      callCountBlocked:
        description: Number of calls blocked due to invalid credentials.
        format: int32
        type: integer
      callCountFailed:
        description: Number of calls failed due to proxy or backend errors.
        format: int32
        type: integer
      callCountOther:
        description: Number of other calls.
        format: int32
        type: integer
      callCountSuccess:
        description: Number of successful calls.
        format: int32
        type: integer
      callCountTotal:
        description: Total number of calls.
        format: int32
        type: integer
      country:
        description: Country to which this record data is related.
        type: string
      interval:
        description: Length of aggregation period.
        format: int64
        type: integer
      name:
        description: Name depending on report endpoint specifies product, API, operation or developer name.
        type: string
      operationId:
        description: Operation identifier path. /apis/{apiId}/operations/{operationId}
        type: string
      productId:
        description: Product identifier path. /products/{productId}
        readOnly: true
        type: string
      region:
        description: Country region to which this record data is related.
        type: string
      serviceTimeAvg:
        description: Average time it took to process request on backend.
        format: double
        type: number
      serviceTimeMax:
        description: Maximum time it took to process request on backend.
        format: double
        type: number
      serviceTimeMin:
        description: Minimum time it took to process request on backend.
        format: double
        type: number
      subscriptionId:
        description: Subscription identifier path. /subscriptions/{subscriptionId}
        type: string
      timestamp:
        description: |
          Start of aggregation period. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.
        format: date-time
        type: string
      userId:
        description: User identifier path. /users/{userId}
        readOnly: true
        type: string
      zip:
        description: Zip code to which this record data is related.
        type: string
  RepresentationContract:
    description: Operation request/response representation details.
    properties:
      contentType:
        description: Specifies a registered or custom content type for this representation, e.g. application/xml.
        type: string
      sample:
        description: An example of the representation.
        type: string
    required:
      - contentType
  RequestContract:
    description: Operation request details.
    properties:
      description:
        description: Operation request description.
        type: string
      headers:
        description: Collection of operation request headers.
        items:
          $ref: "#/definitions/ParameterContract"
        type: array
      queryParameters:
        description: Collection of operation request query parameters.
        items:
          $ref: "#/definitions/ParameterContract"
        type: array
      representations:
        description: Collection of operation request representations.
        items:
          $ref: "#/definitions/RepresentationContract"
        type: array
  ResultContract:
    description: Operation response details.
    properties:
      description:
        description: Operation response description.
        type: string
      representations:
        description: Collection of operation response representations.
        items:
          $ref: "#/definitions/RepresentationContract"
        type: array
      statusCode:
        description: Operation response HTTP status code.
        format: int32
        maximum: 599
        minimum: 100
        type: integer
    required:
      - statusCode
  SaveConfigurationParameter:
    description: Parameters supplied to the Save Tenant Configuration operation.
    properties:
      branch:
        description: The name of the Git branch in which to commit the current configuration snapshot.
        type: string
      force:
        description: The value if true, the current configuration database is committed to the Git repository, even if the Git repository has newer changes that would be overwritten.
        type: boolean
    required:
      - branch
  SubscriptionCollection:
    description: Paged Subscriptions list representation.
    properties:
      count:
        description: Total records count number.
        format: int64
        type: integer
      nextLink:
        description: Next page link if any.
        type: string
      value:
        description: Page values.
        items:
          $ref: "#/definitions/SubscriptionContract"
        type: array
  SubscriptionContract:
    description: Subscription details.
    properties:
      createdDate:
        description: |
          Subscription creation date. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.
        format: date-time
        readOnly: true
        type: string
      endDate:
        description: |
          Date when subscription was cancelled or expired. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.
        format: date-time
        type: string
      expirationDate:
        description: |
          Subscription expiration date. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.
        format: date-time
        type: string
      id:
        description: Uniquely identifies the subscription within the current API Management service instance. The value is a valid relative URL in the format of /subscriptions/{sid} where {sid} is a subscription identifier.
        readOnly: true
        type: string
      name:
        description: The name of the subscription, or null if the subscription has no name.
        maxLength: 100
        minLength: 0
        type: string
      notificationDate:
        description: |
          Upcoming subscription expiration notification date. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.
        format: date-time
        type: string
      primaryKey:
        description: Subscription primary key.
        maxLength: 256
        minLength: 1
        type: string
      productId:
        description: The product resource identifier of the subscribed product. The value is a valid relative URL in the format of /products/{productId} where {productId} is a product identifier.
        type: string
      secondaryKey:
        description: Subscription secondary key.
        maxLength: 256
        minLength: 1
        type: string
      startDate:
        description: |
          Subscription activation date. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.
        format: date-time
        type: string
      state:
        description: Subscription state. Possible states are * active – the subscription is active, * suspended – the subscription is blocked, and the subscriber cannot call any APIs of the product, * submitted – the subscription request has been made by the developer, but has not yet been approved or rejected, * rejected – the subscription request has been denied by an administrator, * cancelled – the subscription has been cancelled by the developer or administrator, * expired – the subscription reached its expiration date and was deactivated.
        enum:
          - Suspended
          - Active
          - Expired
          - Submitted
          - Rejected
          - Cancelled
        type: string
        x-ms-enum:
          modelAsString: false
          name: SubscriptionStateContract
      stateComment:
        description: Optional subscription comment added by an administrator.
        type: string
      userId:
        description: The user resource identifier of the subscription owner. The value is a valid relative URL in the format of /users/{uid} where {uid} is a user identifier.
        type: string
  SubscriptionCreateParameters:
    description: Parameters supplied to the Create subscription operation.
    properties:
      name:
        description: Subscription name.
        maxLength: 100
        minLength: 1
        type: string
      primaryKey:
        description: Primary subscription key. If not specified during request key will be generated automatically.
        maxLength: 256
        minLength: 1
        type: string
      productId:
        description: Product (product id path) for which subscription is being created in form /products/{productId}
        type: string
      secondaryKey:
        description: Secondary subscription key. If not specified during request key will be generated automatically.
        maxLength: 256
        minLength: 1
        type: string
      state:
        description: Initial subscription state. If no value is specified, subscription is created with Submitted state. Possible states are * active – the subscription is active, * suspended – the subscription is blocked, and the subscriber cannot call any APIs of the product, * submitted – the subscription request has been made by the developer, but has not yet been approved or rejected, * rejected – the subscription request has been denied by an administrator, * cancelled – the subscription has been cancelled by the developer or administrator, * expired – the subscription reached its expiration date and was deactivated.
        enum:
          - Suspended
          - Active
          - Expired
          - Submitted
          - Rejected
          - Cancelled
        type: string
        x-ms-enum:
          modelAsString: false
          name: SubscriptionStateContract
      userId:
        description: User (user id path) for whom subscription is being created in form /users/{uid}
        type: string
    required:
      - userId
      - productId
      - name
  SubscriptionKeyParameterNamesContract:
    description: Subscription key parameter names details.
    example:
      subscriptionKeyParameterNames:
        header: customHeaderParameterName
        query: customQueryParameterName
    properties:
      header:
        description: Subscription key header name.
        type: string
      query:
        description: Subscription key query string parameter name.
        type: string
  SubscriptionUpdateParameters:
    description: Parameters supplied to the Update subscription operation.
    properties:
      expirationDate:
        description: New subscription expiration date.
        format: date-time
        type: string
      name:
        description: Subscription name.
        type: string
      primaryKey:
        description: Primary subscription key.
        maxLength: 256
        minLength: 1
        type: string
      productId:
        description: "Product identifier path: /products/{productId}"
        type: string
      secondaryKey:
        description: Secondary subscription key.
        maxLength: 256
        minLength: 1
        type: string
      state:
        description: Subscription state. Possible states are * active – the subscription is active, * suspended – the subscription is blocked, and the subscriber cannot call any APIs of the product, * submitted – the subscription request has been made by the developer, but has not yet been approved or rejected, * rejected – the subscription request has been denied by an administrator, * cancelled – the subscription has been cancelled by the developer or administrator, * expired – the subscription reached its expiration date and was deactivated.
        enum:
          - Suspended
          - Active
          - Expired
          - Submitted
          - Rejected
          - Cancelled
        type: string
        x-ms-enum:
          modelAsString: false
          name: SubscriptionStateContract
      stateComment:
        description: Comments describing subscription state change by the administrator.
        type: string
      userId:
        description: "User identifier path: /users/{uid}"
        type: string
  TenantConfigurationSyncStateContract:
    description: Tenant Configuration Synchronization State.
    properties:
      branch:
        description: The name of Git branch.
        type: string
      commitId:
        description: The latest commit Id.
        type: string
      configurationChangeDate:
        description: |
          The date of the latest configuration change. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.
        format: date-time
        type: string
      isExport:
        description: value indicating if last sync was save (true) or deploy (false) operation.
        type: boolean
      isGitEnabled:
        description: value indicating whether Git configuration access is enabled.
        type: boolean
      isSynced:
        description: value indicating if last synchronization was later than the configuration change.
        type: boolean
      syncDate:
        description: |
          The date of the latest synchronization. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.
        format: date-time
        type: string
  TenantLongRunningOperationResult:
    description: A standard service response for long running tenant operations.
    properties:
      operationStatusLink:
        description: operation status link.
        type: string
      requestId:
        type: string
      retryAfter:
        description: The number of minutes to retry the operation after.
        format: int32
        type: integer
      status:
        description: Current status of the operation.
        enum:
          - InProgress
          - Succeeded
          - Failed
        type: string
        x-ms-enum:
          modelAsString: false
          name: OperationStatus
      statusCode:
        enum:
          - Continue
          - OK
          - Created
          - Accepted
          - NotFound
          - Conflict
        type: string
        x-ms-enum:
          modelAsString: false
          name: HttpStatusCode
  TokenBodyParameterContract:
    description: OAuth acquire token request body parameter (www-url-form-encoded).
    properties:
      name:
        description: body parameter name.
        type: string
      value:
        description: body parameter value.
        type: string
    required:
      - name
      - value
  UserCollection:
    description: Paged Users list representation.
    properties:
      count:
        description: Total records count number.
        format: int64
        type: integer
      nextLink:
        description: Next page link if any.
        type: string
      value:
        description: Page values.
        items:
          $ref: "#/definitions/UserContract"
        type: array
  UserContract:
    description: User profile.
    properties:
      email:
        description: Email address.
        type: string
      firstName:
        description: First name.
        type: string
      id:
        description: User identifier path.
        type: string
      identities:
        description: Collection of user identities.
        items:
          $ref: "#/definitions/UserIdentityContract"
        readOnly: true
        type: array
      lastName:
        description: Last name.
        type: string
      note:
        description: Administrator's note about given user.
        type: string
      registrationDate:
        description: |
          Date of user registration. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.
        format: date-time
        type: string
      state:
        description: User state.
        enum:
          - Active
          - Blocked
        type: string
        x-ms-enum:
          modelAsString: false
          name: UserStateContract
  UserCreateParameters:
    description: Parameters supplied to the Create User operation.
    properties:
      email:
        description: Email address. Must not be empty and must be unique within the service instance.
        maxLength: 254
        minLength: 1
        type: string
      firstName:
        description: First name.
        maxLength: 100
        minLength: 1
        type: string
      lastName:
        description: Last name.
        maxLength: 100
        minLength: 1
        type: string
      note:
        description: Optional note about a user set by the administrator.
        type: string
      password:
        description: User Password.
        type: string
      state:
        default: Active
        description: Account state. Specifies whether the user is active or not. Blocked users are unable to sign into the developer portal or call any APIs of subscribed products. Default state is Active.
        enum:
          - Active
          - Blocked
        type: string
        x-ms-enum:
          modelAsString: false
          name: UserStateContract
    required:
      - email
      - password
      - firstName
      - lastName
  UserIdentityContract:
    description: User identity details.
    properties:
      id:
        description: Identifier value within provider.
        type: string
      provider:
        description: Identity provider name.
        type: string
  UserUpdateParameters:
    description: Parameters supplied to the Update User operation.
    properties:
      email:
        description: Email address.
        type: string
      firstName:
        description: First name.
        maxLength: 100
        minLength: 1
        type: string
      lastName:
        description: Last name.
        maxLength: 100
        minLength: 1
        type: string
      note:
        description: Note about user.
        type: string
      password:
        description: Password.
        type: string
      state:
        description: Account state.
        enum:
          - Active
          - Blocked
        type: string
        x-ms-enum:
          modelAsString: false
          name: UserStateContract
x-ms-paths:
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}?export=true":
    get:
      description: Gets the details of the API specified by its identifier.
      operationId: Apis_Export
      parameters:
        - $ref: "#/parameters/ResourceGroupNameParameter"
        - $ref: "#/parameters/ServiceNameParameter"
        - $ref: "#/parameters/ApiIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: The response contains a stream with a full set of API metadata and includes API entity with an embedded array of operation entities.
          schema:
            $ref: "#/definitions/ApiExportResult"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorBodyContract"
      tags:
        - Apis
