openapi: 3.0.1
info:
  contact:
    email: architecture@wso2.com
    name: WSO2
    url: http://wso2.com/products/api-manager/
  description: |
    This document specifies a **RESTful API** for WSO2 **API Manager** - **Publisher**.

    # Authentication
    The Publisher REST API is protected using OAuth2 and access control is achieved through scopes. Before you start invoking
    the the API you need to obtain an access token with the required scopes. This guide will walk you through the steps
    that you will need to follow to obtain an access token.
    First you need to obtain the consumer key/secret key pair by calling the dynamic client registration (DCR) endpoint. You can add your preferred grant types
    in the payload. A Sample payload is shown below.
    ```
      {
      "callbackUrl":"www.google.lk",
      "clientName":"rest_api_publisher",
      "owner":"admin",
      "grantType":"client_credentials password refresh_token",
      "saasApp":true
      }
    ```
    Create a file (payload.json) with the above sample payload, and use the cURL shown bellow to invoke the DCR endpoint. Authorization header of this should contain the
    base64 encoded admin username and password.
    **Format of the request**
    ```
      curl -X POST -H "Authorization: Basic Base64(admin_username:admin_password)" -H "Content-Type: application/json"
      \ -d @payload.json https://<host>:<servlet_port>/client-registration/v0.17/register
    ```
    **Sample request**
    ```
      curl -X POST -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Content-Type: application/json"
      \ -d @payload.json https://localhost:9443/client-registration/v0.17/register
    ```
    Following is a sample response after invoking the above curl.
    ```
    {
    "clientId": "fOCi4vNJ59PpHucC2CAYfYuADdMa",
    "clientName": "rest_api_publisher",
    "callBackURL": "www.google.lk",
    "clientSecret": "a4FwHlq0iCIKVs2MPIIDnepZnYMa",
    "isSaasApplication": true,
    "appOwner": "admin",
    "jsonString": "{\"grant_types\":\"client_credentials password refresh_token\",\"redirect_uris\":\"www.google.lk\",\"client_name\":\"rest_api123\"}",
    "jsonAppAttribute": "{}",
    "tokenType": null
    }
    ```
    Next you must use the above client id and secret to obtain the access token.
    We will be using the password grant type for this, you can use any grant type you desire.
    You also need to add the proper **scope** when getting the access token. All possible scopes for publisher REST API can be viewed in **OAuth2 Security** section
    of this document and scope for each resource is given in **authorization** section of resource documentation.
    Following is the format of the request if you are using the password grant type.
    ```
    curl -k -d "grant_type=password&username=<admin_username>&password=<admin_passowrd&scope=<scopes seperated by space>"
    \ -H "Authorization: Basic base64(cliet_id:client_secret)"
    \ https://<host>:<servlet_port>/oauth2/token
    ```
    **Sample request**
    ```
    curl https://localhost:9443/oauth2/token -k \
    -H "Authorization: Basic Zk9DaTR2Tko1OVBwSHVjQzJDQVlmWXVBRGRNYTphNEZ3SGxxMGlDSUtWczJNUElJRG5lcFpuWU1h" \
    -d "grant_type=password&username=admin&password=admin&scope=apim:api_view apim:api_create"
    ```
    Shown below is a sample response to the above request.
    ```
    {
    "access_token": "e79bda48-3406-3178-acce-f6e4dbdcbb12",
    "refresh_token": "a757795d-e69f-38b8-bd85-9aded677a97c",
    "scope": "apim:api_create apim:api_view",
    "token_type": "Bearer",
    "expires_in": 3600
    }
    ```
    Now you have a valid access token, which you can use to invoke an API.
    Navigate through the API descriptions to find the required API, obtain an access token as described above and invoke the API with the authentication header.
    If you use a different authentication mechanism, this process may change.

    # Try out in Postman
    If you want to try-out the embedded postman collection with "Run in Postman" option, please follow the guidelines listed below.
    * All of the OAuth2 secured endpoints have been configured with an Authorization Bearer header with a parameterized access token. Before invoking any REST API resource make sure you run the `Register DCR Application` and `Generate Access Token` requests to fetch an access token with all required scopes.
    * Make sure you have an API Manager instance up and running.
    * Update the `basepath` parameter to match the hostname and port of the APIM instance.

    [![Run in Postman](https://run.pstmn.io/button.svg)](https://app.getpostman.com/run-collection/a09044034b5c3c1b01a9)
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  title: WSO2 API Manager - Publisher API
  version: v4
servers:
- url: https://apis.wso2.com/api/am/publisher/v4
security:
- OAuth2Security:
  - apim:api_view
paths:
  /apis:
    get:
      description: |
        This operation provides you a list of available APIs qualifying under a given search condition.

        Each retrieved API is represented with a minimal amount of attributes. If you want to get complete details of an API, you need to use **Get details of an API** operation.
      operationId: getAllAPIs
      parameters:
      - description: |
          Maximum size of resource array to return.
        explode: true
        in: query
        name: limit
        required: false
        schema:
          default: 25
          type: integer
        style: form
      - description: |
          Starting point within the complete list of items qualified.
        explode: true
        in: query
        name: offset
        required: false
        schema:
          default: 0
          type: integer
        style: form
      - description: |
          Criteria for sorting.
        explode: true
        in: query
        name: sortBy
        required: false
        schema:
          default: createdTime
          enum:
          - apiName
          - version
          - createdTime
          - status
          type: string
        style: form
      - description: |
          Order of sorting(ascending/descending).
        explode: true
        in: query
        name: sortOrder
        required: false
        schema:
          default: desc
          enum:
          - asc
          - desc
          type: string
        style: form
      - description: |
          For cross-tenant invocations, this is used to specify the tenant domain, where the resource need to be
            retirieved from.
        explode: false
        in: header
        name: X-WSO2-Tenant
        required: false
        schema:
          type: string
        style: simple
      - description: |
          **Search condition**.

          You can search in attributes by using an **"<attribute>:"** modifier.

          Eg.
          "provider:wso2" will match an API if the provider of the API contains "wso2".
          "provider:"wso2"" will match an API if the provider of the API is exactly "wso2".
          "status:PUBLISHED" will match an API if the API is in PUBLISHED state.

          Also you can use combined modifiers
          Eg.
          name:pizzashack version:v1 will match an API if the name of the API is pizzashack and version is v1.

          Supported attribute modifiers are [**version, context, name, status,
          description, doc, provider**]

          If no advanced attribute modifier has been specified,  the API names containing
          the search term will be returned as a result.

          Please note that you need to use encoded URL (URL encoding) if you are using a client which does not support URL encoding (such as curl)
        explode: true
        in: query
        name: query
        required: false
        schema:
          type: string
        style: form
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      - description: |
          Media types acceptable for the response. Default is application/json.
        explode: false
        in: header
        name: Accept
        required: false
        schema:
          default: application/json
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIList'
          description: |
            OK.
            List of qualifying APIs is returned.
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
        - apim:api_import_export
        - apim:api_list_view
      summary: |
        Retrieve/Search APIs
      tags:
      - APIs
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis"'
      x-examples:
        $ref: docs/examples/apis/apis_get.yaml
      x-accepts: application/json
    post:
      description: |
        This operation can be used to create a new API specifying the details of the API in the payload. The new API will be in `CREATED` state.

        There is a special capability for a user who has `APIM Admin` permission such that he can create APIs on behalf of other users. For that he can to specify `"provider" : "some_other_user"` in the payload so that the API's creator will be shown as `some_other_user` in the UI.
      operationId: createAPI
      parameters:
      - description: Open api version
        explode: true
        in: query
        name: openAPIVersion
        required: false
        schema:
          default: v3
          enum:
          - v2
          - v3
          type: string
        style: form
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/API'
        description: API object that needs to be added
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/API'
          description: |
            Created.
            Successful response with the newly created object as entity in the body.
            Location header contains URL of newly created entity.
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Location:
              description: |
                The URL of the newly created resource.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "415":
          content:
            application/json:
              example:
                code: 415
                message: Unsupported media type
                description: The entity of the request was not in a supported format
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Unsupported Media Type. The entity of the request was not in
            a supported format.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
      summary: Create a New API
      tags:
      - APIs
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -H "Content-Type: application/json" -d @data.json "https://127.0.0.1:9443/api/am/publisher/v4/apis"'
      x-examples:
        $ref: docs/examples/apis/apis_post.yaml
      x-contentType: application/json
      x-accepts: application/json
  /apis/{apiId}:
    delete:
      description: |
        This operation can be used to delete an existing API proving the Id of the API.
      operationId: deleteAPI
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on ETag.
        explode: false
        in: header
        name: If-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content: {}
          description: |
            OK.
            Resource successfully deleted.
        "403":
          content:
            application/json:
              example:
                code: 403
                message: Forbidden
                description: The request must be conditional but no condition has
                  been specified
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden. The request must be conditional but no condition
            has been specified.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "409":
          content:
            application/json:
              example:
                code: 409
                message: Conflict
                description: Specified resource already exists
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Conflict. Specified resource already exists.
        "412":
          content:
            application/json:
              example:
                code: 412
                message: Precondition Failed
                description: The request has not been performed because one of the
                  preconditions is not met
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Precondition Failed. The request has not been performed because
            one of the preconditions is not met.
      security:
      - OAuth2Security:
        - apim:api_delete
        - apim:api_manage
        - apim:api_import_export
      summary: Delete an API
      tags:
      - APIs
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X DELETE -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/7a2298c4-c905-403f-8fac-38c73301631f"'
      x-accepts: application/json
    get:
      description: |
        Using this operation, you can retrieve complete details of a single API. You need to provide the Id of the API to retrive it.
      operationId: getAPI
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          For cross-tenant invocations, this is used to specify the tenant domain, where the resource need to be
            retirieved from.
        explode: false
        in: header
        name: X-WSO2-Tenant
        required: false
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/API'
          description: |
            OK.
            Requested API is returned
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
        - apim:api_import_export
        - apim:api_product_import_export
      summary: Get Details of an API
      tags:
      - APIs
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/7a2298c4-c905-403f-8fac-38c73301631f"'
      x-examples:
        $ref: docs/examples/apis/apis_id_get.yaml
      x-accepts: application/json
    put:
      description: |
        This operation can be used to update an existing API.
        But the properties `name`, `version`, `context`, `provider`, `state` will not be changed by this operation.
      operationId: updateAPI
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on ETag.
        explode: false
        in: header
        name: If-Match
        required: false
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/API'
        description: API object that needs to be added
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/API'
          description: |
            OK.
            Successful response with updated API object
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Location:
              description: |
                The URL of the newly created resource.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "403":
          content:
            application/json:
              example:
                code: 403
                message: Forbidden
                description: The request must be conditional but no condition has
                  been specified
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden. The request must be conditional but no condition
            has been specified.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "409":
          content:
            application/json:
              example:
                code: 409
                message: Conflict
                description: Specified resource already exists
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Conflict. Specified resource already exists.
        "412":
          content:
            application/json:
              example:
                code: 412
                message: Precondition Failed
                description: The request has not been performed because one of the
                  preconditions is not met
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Precondition Failed. The request has not been performed because
            one of the preconditions is not met.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
        - apim:api_publish
      summary: Update an API
      tags:
      - APIs
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X PUT -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -H "Content-Type: application/json" -d @data.json "https://127.0.0.1:9443/api/am/publisher/v4/apis/7a2298c4-c905-403f-8fac-38c73301631f"'
      x-contentType: application/json
      x-accepts: application/json
  /apis/{apiId}/topics:
    put:
      description: This operation can be used to update topics of an existing API.
      operationId: updateTopics
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on ETag.
        explode: false
        in: header
        name: If-Match
        required: false
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TopicList'
        description: API object that needs to be added
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/API'
          description: |
            OK.
            Successful response with updated API object
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Location:
              description: |
                The URL of the newly created resource.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
        - apim:api_import_export
      summary: Update Topics
      tags:
      - APIs
      x-contentType: application/json
      x-accepts: application/json
  /apis/{apiId}/reimport-service:
    put:
      description: This operation can be used to re-import the Service used to create
        the API
      operationId: reimportServiceFromCatalog
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/API'
          description: |
            OK.
            Successful response with updated API object
          headers:
            Location:
              description: |
                The URL of the newly created resource.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
      summary: Update the Service that is used to create the API
      tags:
      - APIs
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X PUT -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/ecb5b300-422d-4ee8-88d2-364a0a122238/reimport-service"'
      x-accepts: application/json
  /apis/{apiId}/swagger:
    get:
      description: |
        This operation can be used to retrieve the swagger definition of an API.
      operationId: getAPISwagger
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: |
            OK.
            Requested swagger document of the API is returned
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
        - apim:api_definition_view
      summary: Get Swagger Definition
      tags:
      - APIs
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/7a2298c4-c905-403f-8fac-38c73301631f/swagger"'
      x-accepts: application/json
    put:
      description: |
        This operation can be used to update the swagger definition of an existing API. Swagger definition to be updated is passed as a form data parameter `apiDefinition`.
      operationId: updateAPISwagger
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on ETag.
        explode: false
        in: header
        name: If-Match
        required: false
        schema:
          type: string
        style: simple
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                apiDefinition:
                  description: Swagger definition of the API
                  type: string
                url:
                  description: Swagger definition URL of the API
                  type: string
                file:
                  description: Swagger definitio as a file
                  format: binary
                  type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: |
            OK.
            Successful response with updated Swagger definition
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Location:
              description: |
                The URL of the newly created resource.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "403":
          content:
            application/json:
              example:
                code: 403
                message: Forbidden
                description: The request must be conditional but no condition has
                  been specified
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden. The request must be conditional but no condition
            has been specified.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "412":
          content:
            application/json:
              example:
                code: 412
                message: Precondition Failed
                description: The request has not been performed because one of the
                  preconditions is not met
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Precondition Failed. The request has not been performed because
            one of the preconditions is not met.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
      summary: Update Swagger Definition
      tags:
      - APIs
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X PUT -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -F apiDefinition=@swagger.json "https://127.0.0.1:9443/api/am/publisher/v4/apis/96077508-fd01-4fae-bc64-5de0e2baf43c/swagger"'
      x-contentType: multipart/form-data
      x-accepts: application/json
  /apis/{apiId}/generate-mock-scripts:
    post:
      description: |
        This operation can be used to generate mock responses from examples of swagger definition of an API.
      operationId: generateMockScripts
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: |
            OK.
            Requested swagger document of the API is returned with example responses
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
      summary: Generate Mock Response Payloads
      tags:
      - APIs
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/7a2298c4-c905-403f-8fac-38c73301631f/generate-mock-scripts"'
      x-accepts: application/json
  /apis/{apiId}/generated-mock-scripts:
    get:
      description: |
        This operation can be used to get generated mock responses from examples of swagger definition of an API.
      operationId: getGeneratedMockScriptsOfAPI
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MockResponsePayloadList'
          description: |
            OK.
            Requested swagger document of the API is returned with example responses
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
      summary: Get Generated Mock Response Payloads
      tags:
      - APIs
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/7a2298c4-c905-403f-8fac-38c73301631f/generated-mock-scripts"'
      x-accepts: application/json
  /apis/{apiId}/resource-policies:
    get:
      description: |
        This operation can be used to retrieve conversion policy resource definitions of an API.
      operationId: getAPIResourcePolicies
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: Resource path of the resource policy definition
        explode: true
        in: query
        name: resourcePath
        required: false
        schema:
          type: string
        style: form
      - description: HTTP verb of the resource path of the resource policy definition
        explode: true
        in: query
        name: verb
        required: false
        schema:
          type: string
        style: form
      - description: sequence type of the resource policy resource definition
        explode: true
        in: query
        name: sequenceType
        required: true
        schema:
          type: string
        style: form
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourcePolicyList'
          description: |
            OK.
            List of resource policy definitions of the API is returned
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
      summary: Get the Resource Policy(inflow/outflow) Definitions
      tags:
      - API Resource Policies
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/2fd14eb8-b828-4013-b448-0739d2e76bf7/resource-policies?resourcePath=checkPhoneNumber&verb=post&sequenceType=in"'
      x-accepts: application/json
  /apis/{apiId}/resource-policies/{resourcePolicyId}:
    get:
      description: |
        This operation can be used to retrieve conversion policy resource definitions of an API given the resource identifier.
      operationId: getAPIResourcePoliciesByPolicyId
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          registry resource Id
        explode: false
        in: path
        name: resourcePolicyId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourcePolicyInfo'
          description: |
            OK.
            Requested resource policy definition of the API is returned for the given resource identifier.
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
      summary: Get the Resource Policy(inflow/outflow) Definition for a Given Resource
        Identifier.
      tags:
      - API Resource Policies
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/2fd14eb8-b828-4013-b448-0739d2e76bf7/resource-policies/8efc32a4-c7f1-4bee-b860-b7566e2bc0d5"'
      x-accepts: application/json
    put:
      description: |
        This operation can be used to update the resource policy(inflow/outflow) definition for the given resource identifier of an existing API. resource policy definition to be updated is passed as a body parameter `content`.
      operationId: updateAPIResourcePoliciesByPolicyId
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          registry resource Id
        explode: false
        in: path
        name: resourcePolicyId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on ETag.
        explode: false
        in: header
        name: If-Match
        required: false
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourcePolicyInfo'
        description: Content of the resource policy definition that needs to be updated
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourcePolicyInfo'
          description: |
            OK.
            Successful response with updated the resource policy definition
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Location:
              description: |
                The URL of the newly created resource.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "403":
          content:
            application/json:
              example:
                code: 403
                message: Forbidden
                description: The request must be conditional but no condition has
                  been specified
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden. The request must be conditional but no condition
            has been specified.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "412":
          content:
            application/json:
              example:
                code: 412
                message: Precondition Failed
                description: The request has not been performed because one of the
                  preconditions is not met
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Precondition Failed. The request has not been performed because
            one of the preconditions is not met.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
      summary: Update the Resource Policy(inflow/outflow) Definition for the Given
        Resource Identifier
      tags:
      - API Resource Policies
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X PUT -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -H "Content-Type: application/json" -d @data.json "https://127.0.0.1:9443/api/am/publisher/v4/apis/2fd14eb8-b828-4013-b448-0739d2e76bf7/resource-policies/8efc32a4-c7f1-4bee-b860-b7566e2bc0d5"'
      x-contentType: application/json
      x-accepts: application/json
  /apis/{apiId}/thumbnail:
    get:
      description: |
        This operation can be used to download a thumbnail image of an API.
      operationId: getAPIThumbnail
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content: {}
          description: |
            OK.
            Thumbnail image returned
          headers:
            ETag:
              description: |
                Entity Tag of the response resource.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
      summary: Get Thumbnail Image
      tags:
      - APIs
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/2fd14eb8-b828-4013-b448-0739d2e76bf7/thumbnail"'
      x-accepts: application/json
    put:
      description: |
        This operation can be used to upload a thumbnail image of an API. The thumbnail to be uploaded should be given as a form data parameter `file`.
      operationId: updateAPIThumbnail
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on ETag.
        explode: false
        in: header
        name: If-Match
        required: false
        schema:
          type: string
        style: simple
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                file:
                  description: Image to upload
                  format: binary
                  type: string
              required:
              - file
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FileInfo'
          description: |
            OK.
            Image updated
          headers:
            ETag:
              description: |
                Entity Tag of the response resource.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Location:
              description: |
                The URL of the uploaded thumbnail image of the API.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "412":
          content:
            application/json:
              example:
                code: 412
                message: Precondition Failed
                description: The request has not been performed because one of the
                  preconditions is not met
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Precondition Failed. The request has not been performed because
            one of the preconditions is not met.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
        - apim:api_publish
      summary: Upload a Thumbnail Image
      tags:
      - APIs
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X PUT -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -F file=image.jpeg "https://127.0.0.1:9443/api/am/publisher/v4/apis/2fd14eb8-b828-4013-b448-0739d2e76bf7/thumbnail"'
      x-contentType: multipart/form-data
      x-accepts: application/json
  /apis/{apiId}/subscription-policies:
    get:
      description: |
        This operation can be used to retrieve details of the subscription throttling policy of an API by specifying the API Id.

        `X-WSO2-Tenant` header can be used to retrive API subscription throttling policies that belongs to a different tenant domain. If not specified super tenant will be used. If Authorization header is present in the request, the user's tenant associated with the access token will be used.
      operationId: getAPISubscriptionPolicies
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          For cross-tenant invocations, this is used to specify the tenant domain, where the resource need to be
            retirieved from.
        explode: false
        in: header
        name: X-WSO2-Tenant
        required: false
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThrottlingPolicy'
          description: |
            OK.
            Throttling Policy returned
          headers:
            ETag:
              description: |
                Entity Tag of the response resource.
                Used by caches, or in conditional requests.
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
      summary: |
        Get Details of the Subscription Throttling Policies of an API
      tags:
      - APIs
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/2fd14eb8-b828-4013-b448-0739d2e76bf7/subscription-policies"'
      x-accepts: application/json
  /apis/copy-api:
    post:
      description: |
        This operation can be used to create a new version of an existing API. The new version is specified as `newVersion` query parameter. New API will be in `CREATED` state.
      operationId: createNewAPIVersion
      parameters:
      - description: Version of the new API.
        explode: true
        in: query
        name: newVersion
        required: true
        schema:
          maxLength: 30
          type: string
        style: form
      - description: Specifies whether new API should be added as default version.
        explode: true
        in: query
        name: defaultVersion
        required: false
        schema:
          default: false
          type: boolean
        style: form
      - description: Version of the Service that will used in creating new version
        explode: true
        in: query
        name: serviceVersion
        required: false
        schema:
          type: string
        style: form
      - description: |
          **API ID** consisting of the **UUID** of the API.
          The combination of the provider of the API, name of the API and the version is also accepted as a valid API I.
          Should be formatted as **provider-name-version**.
        explode: true
        in: query
        name: apiId
        required: true
        schema:
          type: string
        style: form
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/API'
          description: |
            Created.
            Successful response with the newly created API as entity in the body. Location header contains URL of newly created API.
          headers:
            Location:
              description: |
                The URL of the newly created API.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
      summary: Create a New API Version
      tags:
      - APIs
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/copy-api?newVersion=2.0&defaultVersion=false&apiId=2fd14eb8-b828-4013-b448-0739d2e76bf7"'
      x-examples:
        $ref: docs/examples/apis/apis_copyapi.yaml#/post
      x-accepts: application/json
  /apis/change-lifecycle:
    post:
      description: |
        This operation is used to change the lifecycle of an API. Eg: Publish an API which is in `CREATED` state. In order to change the lifecycle, we need to provide the lifecycle `action` as a query parameter.

        For example, to Publish an API, `action` should be `Publish`. Note that the `Re-publish` action is available only after calling `Block`.

        Some actions supports providing additional paramters which should be provided as `lifecycleChecklist` parameter. Please see parameters table for more information.
      operationId: changeAPILifecycle
      parameters:
      - description: |
          The action to demote or promote the state of the API.

          Supported actions are [ **Publish**, **Deploy as a Prototype**, **Demote to Created**, **Block**, **Deprecate**, **Re-Publish**, **Retire** ]
        explode: true
        in: query
        name: action
        required: true
        schema:
          enum:
          - Publish
          - Deploy as a Prototype
          - Demote to Created
          - Block
          - Deprecate
          - Re-Publish
          - Retire
          type: string
        style: form
      - description: |2

          Supported checklist items are as follows.
          1. **Deprecate old versions after publishing the API**: Setting this to true will deprecate older versions of a particular API when it is promoted to Published state from Created state.
          2. **Requires re-subscription when publishing the API**: If you set this to true, users need to re subscribe to the API although they may have subscribed to an older version.
          You can specify additional checklist items by using an **"attribute:"** modifier.
          Eg: "Deprecate old versions after publishing the API:true" will deprecate older versions of a particular API when it is promoted to Published state from Created state. Multiple checklist items can be given in "attribute1:true, attribute2:false" format.
          **Sample CURL :**  curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8" -X POST "https://localhost:9443/api/am/publisher/v4/apis/change-lifecycle?apiId=890a4f4d-09eb-4877-a323-57f6ce2ed79b&action=Publish&lifecycleChecklist=Deprecate%20old%20versions%20after%20publishing%20the%20API%3Atrue,Requires%20re-subscription%20when%20publishing%20the%20API%3Afalse"
        explode: true
        in: query
        name: lifecycleChecklist
        required: false
        schema:
          type: string
        style: form
      - description: |
          **API ID** consisting of the **UUID** of the API.
          The combination of the provider of the API, name of the API and the version is also accepted as a valid API I.
          Should be formatted as **provider-name-version**.
        explode: true
        in: query
        name: apiId
        required: true
        schema:
          type: string
        style: form
      - description: |
          Validator for conditional requests; based on ETag.
        explode: false
        in: header
        name: If-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowResponse'
          description: |
            OK.
            Lifecycle changed successfully.
          headers:
            ETag:
              description: |
                Entity Tag of the changed API. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the API lifecycle has been modified the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
        "202":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowResponse'
          description: |
            Accepted.
            The request has been accepted.
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "409":
          content:
            application/json:
              example:
                code: 409
                message: Conflict
                description: Specified resource already exists
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Conflict. Specified resource already exists.
        "412":
          content:
            application/json:
              example:
                code: 412
                message: Precondition Failed
                description: The request has not been performed because one of the
                  preconditions is not met
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Precondition Failed. The request has not been performed because
            one of the preconditions is not met.
      security:
      - OAuth2Security:
        - apim:api_publish
        - apim:api_manage
        - apim:api_import_export
      summary: Change API Status
      tags:
      - API Lifecycle
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/change-lifecycle?apiId=890a4f4d-09eb-4877-a323-57f6ce2ed79b&action=Publish"'
      x-accepts: application/json
  /apis/{apiId}/lifecycle-history:
    get:
      description: |
        This operation can be used to retrieve Lifecycle state change history of the API.
      operationId: getAPILifecycleHistory
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LifecycleHistory'
          description: |
            OK.
            Lifecycle state change history returned successfully.
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_publish
        - apim:api_manage
      summary: Get Lifecycle State Change History of the API.
      tags:
      - API Lifecycle
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/890a4f4d-09eb-4877-a323-57f6ce2ed79b/lifecycle-history"'
      x-accepts: application/json
  /apis/{apiId}/lifecycle-state:
    get:
      description: |
        This operation can be used to retrieve Lifecycle state data of the API.
      operationId: getAPILifecycleState
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LifecycleState'
          description: |
            OK.
            Lifecycle state data returned successfully.
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "412":
          content:
            application/json:
              example:
                code: 412
                message: Precondition Failed
                description: The request has not been performed because one of the
                  preconditions is not met
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Precondition Failed. The request has not been performed because
            one of the preconditions is not met.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_publish
        - apim:api_create
        - apim:api_manage
      summary: Get Lifecycle State Data of the API.
      tags:
      - API Lifecycle
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/890a4f4d-09eb-4877-a323-57f6ce2ed79b/lifecycle-state"'
      x-accepts: application/json
  /apis/{apiId}/lifecycle-state/pending-tasks:
    delete:
      description: |
        This operation can be used to remove pending lifecycle state change requests that are in pending state
      operationId: deleteAPILifecycleStatePendingTasks
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content: {}
          description: |
            OK.
            Lifecycle state change pending task removed successfully.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "412":
          content:
            application/json:
              example:
                code: 412
                message: Precondition Failed
                description: The request has not been performed because one of the
                  preconditions is not met
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Precondition Failed. The request has not been performed because
            one of the preconditions is not met.
      security:
      - OAuth2Security:
        - apim:api_publish
        - apim:api_manage
      summary: Delete Pending Lifecycle State Change Tasks
      tags:
      - API Lifecycle
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X DELETE -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/890a4f4d-09eb-4877-a323-57f6ce2ed79b/lifecycle-state/pending-tasks"'
      x-accepts: application/json
  /apis/{apiId}/revisions:
    get:
      description: |
        List available revisions of an API
      operationId: getAPIRevisions
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - explode: true
        in: query
        name: query
        required: false
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIRevisionList'
          description: |
            OK.
            List of API revisions are returned.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_create
        - apim:api_manage
        - apim:api_publish
        - apim:api_import_export
      summary: List Revisions
      tags:
      - API Revisions
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/890a4f4d-09eb-4877-a323-57f6ce2ed79b/revisions?query=deployed:true"'
      x-accepts: application/json
    post:
      description: |
        Create a new API revision
      operationId: createAPIRevision
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/APIRevision'
        description: API object that needs to be added
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIRevision'
          description: |
            Created.
            Successful response with the newly created APIRevision object as the entity in the body.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "412":
          content:
            application/json:
              example:
                code: 412
                message: Precondition Failed
                description: The request has not been performed because one of the
                  preconditions is not met
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Precondition Failed. The request has not been performed because
            one of the preconditions is not met.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
        - apim:api_publish
        - apim:api_import_export
      summary: Create API Revision
      tags:
      - API Revisions
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -H "Content-Type: application/json" -d @data.json "https://127.0.0.1:9443/api/am/publisher/v4/apis/890a4f4d-09eb-4877-a323-57f6ce2ed79b/revisions"'
      x-contentType: application/json
      x-accepts: application/json
  /apis/{apiId}/revisions/{revisionId}:
    delete:
      description: |
        Delete a revision of an API
      operationId: deleteAPIRevision
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Revision ID of an API
        explode: false
        in: path
        name: revisionId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIRevisionList'
          description: |
            OK.
            List of remaining API revisions are returned.
        "204":
          description: |
            No Content.
            Successfully deleted the revision
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
        - apim:api_publish
        - apim:api_import_export
      summary: Delete Revision
      tags:
      - API Revisions
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X DELETE -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/890a4f4d-09eb-4877-a323-57f6ce2ed79b/revisions/e0824883-3e86-403a-aec1-22bbc454eb7c"'
      x-accepts: application/json
    get:
      description: |
        Retrieve a revision of an API
      operationId: getAPIRevision
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Revision ID of an API
        explode: false
        in: path
        name: revisionId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIRevision'
          description: |
            OK.
            An API revision is returned.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_create
        - apim:api_manage
        - apim:api_publish
      summary: Retrieve Revision
      tags:
      - API Revisions
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/890a4f4d-09eb-4877-a323-57f6ce2ed79b/revisions/e0824883-3e86-403a-aec1-22bbc454eb7c"'
      x-accepts: application/json
  /apis/{apiId}/deployments:
    get:
      description: |
        List available deployed revision deployment details of an API
      operationId: getAPIRevisionDeployments
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIRevisionDeploymentList'
          description: |
            OK.
            List of deployed revision deployment details are returned.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_create
        - apim:api_manage
        - apim:api_publish
      summary: List Deployments
      tags:
      - API Revisions
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/890a4f4d-09eb-4877-a323-57f6ce2ed79b/deployments"'
      x-accepts: application/json
  /apis/{apiId}/deployments/{deploymentId}:
    put:
      description: |
        Update deployment devportal visibility
      operationId: updateAPIDeployment
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Base64 URL encoded value of the name of an environment
        explode: false
        in: path
        name: deploymentId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/APIRevisionDeployment'
        description: Deployment object that needs to be updated
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIRevisionDeployment'
          description: |
            Created.
            Successful response with the newly updated APIRevisionDeployment List object as the entity in the body.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
        - apim:api_publish
      summary: Update Deployment
      tags:
      - API Revisions
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X PUT -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -d @data.json "https://127.0.0.1:9443/api/am/publisher/v4/apis/890a4f4d-09eb-4877-a323-57f6ce2ed79b/deployments/UHJvZHVjdGlvbiBhbmQgU2FuZGJveA"'
      x-contentType: application/json
      x-accepts: application/json
  /apis/{apiId}/deploy-revision:
    post:
      description: |
        Deploy a revision
      operationId: deployAPIRevision
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Revision ID of an API
        explode: true
        in: query
        name: revisionId
        required: false
        schema:
          type: string
        style: form
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: '#/components/schemas/APIRevisionDeployment'
              type: array
        description: Deployment object that needs to be added
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/APIRevisionDeployment'
                type: array
          description: |
            Created.
            Successful response with the newly deployed APIRevisionDeployment List object as the entity in the body.
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
        - apim:api_publish
      summary: Deploy Revision
      tags:
      - API Revisions
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/890a4f4d-09eb-4877-a323-57f6ce2ed79b/deploy-revision?revisionId=e0824883-3e86-403a-aec1-22bbc454eb7c"'
      x-contentType: application/json
      x-accepts: application/json
  /apis/{apiId}/undeploy-revision:
    post:
      description: |
        UnDeploy a revision
      operationId: undeployAPIRevision
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Revision ID of an API
        explode: true
        in: query
        name: revisionId
        required: false
        schema:
          type: string
        style: form
      - description: |
          Revision Number of an API
        explode: true
        in: query
        name: revisionNumber
        required: false
        schema:
          type: string
        style: form
      - explode: true
        in: query
        name: allEnvironments
        required: false
        schema:
          default: false
          type: boolean
        style: form
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: '#/components/schemas/APIRevisionDeployment'
              type: array
        description: Deployment object that needs to be added
      responses:
        "200":
          description: |
            OK.
        "201":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/APIRevisionDeployment'
                type: array
          description: |
            Created.
            Successful response with the newly undeployed APIRevisionDeploymentList object as the entity in the body.
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
        - apim:api_publish
        - apim:api_import_export
      summary: UnDeploy Revision
      tags:
      - API Revisions
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/890a4f4d-09eb-4877-a323-57f6ce2ed79b/undeploy-revision?revisionId=e0824883-3e86-403a-aec1-22bbc454eb7c"'
      x-contentType: application/json
      x-accepts: application/json
  /apis/{apiId}/restore-revision:
    post:
      description: |
        Restore a revision to the current API of the API
      operationId: restoreAPIRevision
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Revision ID of an API
        explode: true
        in: query
        name: revisionId
        required: false
        schema:
          type: string
        style: form
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/API'
          description: |
            Restored.
            Successful response with the newly restored API object as the entity in the body.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
        - apim:api_publish
      summary: Restore API Revision
      tags:
      - API Revisions
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/890a4f4d-09eb-4877-a323-57f6ce2ed79b/restore-revision?revisionId=e0824883-3e86-403a-aec1-22bbc454eb7c"'
      x-accepts: application/json
  /apis/{apiId}/cancel-revision-workflow/{revisionId}/{envName}:
    delete:
      description: |
        This operation can be used to remove pending revision deployment requests that are in pending state
      operationId: deleteAPIRevisionDeploymentPendingTask
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Revision ID of an API
        explode: false
        in: path
        name: revisionId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Environment name of an Revision
        explode: false
        in: path
        name: envName
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content: {}
          description: |
            OK.
            Revision deployment pending task removed successfully.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "412":
          content:
            application/json:
              example:
                code: 412
                message: Precondition Failed
                description: The request has not been performed because one of the
                  preconditions is not met
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Precondition Failed. The request has not been performed because
            one of the preconditions is not met.
      security:
      - OAuth2Security:
        - apim:api_publish
        - apim:api_manage
      summary: Delete Pending Revision Deployment Workflow Tasks
      tags:
      - API Revisions
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X DELETE -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/890a4f4d-09eb-4877-a323-57f6ce2ed79b/cancel-revision-workflow/e0824883-3e86-403a-aec1-22bbc454eb7c/Default"'
      x-accepts: application/json
  /apis/import-service:
    post:
      description: This operation can be used to create an API from a Service from
        Service Catalog
      operationId: importServiceFromCatalog
      parameters:
      - description: ID of service that should be imported from Service Catalog
        example: Pizzashack-1.0.0
        explode: true
        in: query
        name: serviceKey
        required: true
        schema:
          type: string
        style: form
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/API'
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/API'
          description: |
            Created.
            Successful response with the newly created object as entity in the body.
            Location header contains the URL of the newly created entity.
          headers:
            Location:
              description: |
                The URL of the newly created resource.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
      summary: Import a Service from Service Catalog
      tags:
      - APIs
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -H "Content-Type: application/json" -d @data.json "https://127.0.0.1:9443/api/am/publisher/v4/apis/import-service?serviceKey=Pizzashack-1.0.0"'
      x-contentType: application/json
      x-accepts: application/json
  /apis/{apiId}/comments:
    get:
      description: |
        Get a list of Comments that are already added to APIs
      operationId: getAllCommentsOfAPI
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          For cross-tenant invocations, this is used to specify the tenant domain, where the resource need to be
            retirieved from.
        explode: false
        in: header
        name: X-WSO2-Tenant
        required: false
        schema:
          type: string
        style: simple
      - description: |
          Maximum size of resource array to return.
        explode: true
        in: query
        name: limit
        required: false
        schema:
          default: 25
          type: integer
        style: form
      - description: |
          Starting point within the complete list of items qualified.
        explode: true
        in: query
        name: offset
        required: false
        schema:
          default: 0
          type: integer
        style: form
      - description: |
          Whether we need to display commentor details.
        explode: true
        in: query
        name: includeCommenterInfo
        required: false
        schema:
          default: false
          type: boolean
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommentList'
          description: |
            OK.
            Comments list is returned.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:comment_view
        - apim:comment_manage
      summary: Retrieve API Comments
      tags:
      - Comments
      x-code-samples:
      - lang: Curl
        source: curl -k "https://localhost:9443/api/am/publisher/v1/apis/e93fb282-b456-48fc-8981-003fb89086ae/comments"
      x-accepts: application/json
    post:
      operationId: addCommentToAPI
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          ID of the perent comment.
        explode: true
        in: query
        name: replyTo
        required: false
        schema:
          type: string
        style: form
      requestBody:
        $ref: '#/components/requestBodies/Post_request_body'
        content:
          application/json:
            schema:
              properties:
                content:
                  description: |
                    Content of the comment
                  example: This is a comment
                  maxLength: 512
                  type: string
                category:
                  description: |
                    Category of the comment
                  example: general
                  type: string
              required:
              - content
              title: Post request body
              type: object
        description: |
          Comment object that should to be added
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
          description: |
            Created.
            Successful response with the newly created object as entity in the body.
            Location header contains URL of newly created entity.
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional request.
              explode: false
              schema:
                type: string
              style: simple
            Location:
              description: |
                Location to the newly created Comment.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "401":
          content:
            application/json:
              example:
                code: 401
                message: Unauthorized
                description: The user is not authorized
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Unauthorized. The user is not authorized.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "415":
          content:
            application/json:
              example:
                code: 415
                message: Unsupported media type
                description: The entity of the request was not in a supported format
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Unsupported Media Type. The entity of the request was not in
            a supported format.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:comment_write
        - apim:comment_manage
      summary: Add an API Comment
      tags:
      - Comments
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization:Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -H "Content-Type: application/json" -d @data.json "https://localhost:9443/api/am/publisher/v1/apis/e93fb282-b456-48fc-8981-003fb89086ae/comments"'
      x-contentType: application/json
      x-accepts: application/json
  /apis/{apiId}/comments/{commentId}:
    delete:
      description: |
        Remove a Comment
      operationId: deleteComment
      parameters:
      - description: |
          Comment Id
        explode: false
        in: path
        name: commentId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on ETag.
        explode: false
        in: header
        name: If-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content: {}
          description: |
            OK.
            Resource successfully deleted.
        "401":
          content:
            application/json:
              example:
                code: 401
                message: Unauthorized
                description: The user is not authorized
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Unauthorized. The user is not authorized.
        "403":
          content:
            application/json:
              example:
                code: 403
                message: Forbidden
                description: The request must be conditional but no condition has
                  been specified
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden. The request must be conditional but no condition
            has been specified.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "405":
          content: {}
          description: |
            MethodNotAllowed.
            Request method is known by the server but is not supported by the target resource.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:comment_write
        - apim:comment_manage
        - apim:admin
      summary: Delete an API Comment
      tags:
      - Comments
      x-code-samples:
      - lang: Curl
        source: curl -k -X DELETE -H "Authorization:Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://localhost:9443/api/am/publisher/v1/apis/e93fb282-b456-48fc-8981-003fb89086ae/comments/d4cf1704-5d09-491c-bc48-4d19ce6ea9b4"
      x-accepts: application/json
    get:
      description: |
        Get the individual comment given by a username for a certain API.
      operationId: getCommentOfAPI
      parameters:
      - description: |
          Comment Id
        explode: false
        in: path
        name: commentId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          For cross-tenant invocations, this is used to specify the tenant domain, where the resource need to be
            retirieved from.
        explode: false
        in: header
        name: X-WSO2-Tenant
        required: false
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      - description: |
          Whether we need to display commentor details.
        explode: true
        in: query
        name: includeCommenterInfo
        required: false
        schema:
          default: false
          type: boolean
        style: form
      - description: |
          Maximum size of replies array to return.
        explode: true
        in: query
        name: replyLimit
        required: false
        schema:
          default: 25
          type: integer
        style: form
      - description: |
          Starting point within the complete list of replies.
        explode: true
        in: query
        name: replyOffset
        required: false
        schema:
          default: 0
          type: integer
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
          description: |
            OK.
            Comment returned.
          headers:
            ETag:
              description: |
                Entity Tag of the response resource.
                Used by caches, or in conditional requests.
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests.
              explode: false
              schema:
                type: string
              style: simple
        "401":
          content:
            application/json:
              example:
                code: 401
                message: Unauthorized
                description: The user is not authorized
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Unauthorized. The user is not authorized.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:comment_view
        - apim:comment_manage
      summary: Get Details of an API Comment
      tags:
      - Comments
      x-code-samples:
      - lang: Curl
        source: curl -k "https://localhost:9443/api/am/publisher/v1/apis/e93fb282-b456-48fc-8981-003fb89086ae/comments/d4cf1704-5d09-491c-bc48-4d19ce6ea9b4"
      x-accepts: application/json
    patch:
      description: |
        Edit the individual comment
      operationId: editCommentOfAPI
      parameters:
      - description: |
          Comment Id
        explode: false
        in: path
        name: commentId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        $ref: '#/components/requestBodies/Patch_request_body'
        content:
          application/json:
            schema:
              properties:
                content:
                  description: |
                    Content of the comment
                  example: This is a comment
                  maxLength: 512
                  type: string
                category:
                  description: |
                    Category of the comment
                  example: general
                  type: string
              title: Patch request body
              type: object
        description: |
          Comment object that should to be updated
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
          description: |
            OK.
            Comment updated.
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional request.
              explode: false
              schema:
                type: string
              style: simple
            Location:
              description: |
                Location to the newly created Comment.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "401":
          content:
            application/json:
              example:
                code: 401
                message: Unauthorized
                description: The user is not authorized
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Unauthorized. The user is not authorized.
        "403":
          content:
            application/json:
              example:
                code: 403
                message: Forbidden
                description: The request must be conditional but no condition has
                  been specified
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden. The request must be conditional but no condition
            has been specified.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "415":
          content:
            application/json:
              example:
                code: 415
                message: Unsupported media type
                description: The entity of the request was not in a supported format
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Unsupported Media Type. The entity of the request was not in
            a supported format.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:comment_write
        - apim:comment_manage
      summary: Edit a comment
      tags:
      - Comments
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X PATCH -H "Authorization:Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -H "Content-Type: application/json" -d @data.json "https://localhost:9443/api/am/publisher/v1/apis/e93fb282-b456-48fc-8981-003fb89086ae/comments/d4cf1704-5d09-491c-bc48-4d19ce6ea9b4"'
      x-contentType: application/json
      x-accepts: application/json
  /apis/{apiId}/comments/{commentId}/replies:
    get:
      description: |
        Get replies of a comment
      operationId: getRepliesOfComment
      parameters:
      - description: |
          Comment Id
        explode: false
        in: path
        name: commentId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          For cross-tenant invocations, this is used to specify the tenant domain, where the resource need to be
            retirieved from.
        explode: false
        in: header
        name: X-WSO2-Tenant
        required: false
        schema:
          type: string
        style: simple
      - description: |
          Maximum size of resource array to return.
        explode: true
        in: query
        name: limit
        required: false
        schema:
          default: 25
          type: integer
        style: form
      - description: |
          Starting point within the complete list of items qualified.
        explode: true
        in: query
        name: offset
        required: false
        schema:
          default: 0
          type: integer
        style: form
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      - description: |
          Whether we need to display commentor details.
        explode: true
        in: query
        name: includeCommenterInfo
        required: false
        schema:
          default: false
          type: boolean
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommentList'
          description: |
            OK.
            Comment returned.
          headers:
            ETag:
              description: |
                Entity Tag of the response resource.
                Used by caches, or in conditional requests.
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests.
              explode: false
              schema:
                type: string
              style: simple
        "401":
          content:
            application/json:
              example:
                code: 401
                message: Unauthorized
                description: The user is not authorized
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Unauthorized. The user is not authorized.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:comment_view
        - apim:comment_manage
      summary: Get replies of a comment
      tags:
      - Comments
      x-code-samples:
      - lang: Curl
        source: curl -k "https://localhost:9443/api/am/publisher/v1/apis/e93fb282-b456-48fc-8981-003fb89086ae/comments/d4cf1704-5d09-491c-bc48-4d19ce6ea9b4/replies"
      x-accepts: application/json
  /apis/import-openapi:
    post:
      description: |
        This operation can be used to create an API from an OpenAPI definition. Provide either `url` or `file`
        to specify the definition.

        Specify additionalProperties with **at least** API's name, version, context and endpointConfig.
      operationId: importOpenAPIDefinition
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                file:
                  description: Definition to upload as a file
                  format: binary
                  type: string
                url:
                  description: Definition url
                  type: string
                additionalProperties:
                  description: Additional attributes specified as a stringified JSON
                    with API's schema
                  type: string
                inlineAPIDefinition:
                  description: Inline content of the OpenAPI definition
                  type: string
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/API'
          description: |
            Created.
            Successful response with the newly created object as entity in the body.
            Location header contains URL of newly created entity.
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Location:
              description: |
                The URL of the newly created resource.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "415":
          content:
            application/json:
              example:
                code: 415
                message: Unsupported media type
                description: The entity of the request was not in a supported format
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Unsupported Media Type. The entity of the request was not in
            a supported format.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
      summary: Import an OpenAPI Definition
      tags:
      - APIs
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -F file=@openapi.json -F additionalProperties=@data.json "https://127.0.0.1:9443/api/am/publisher/v4/apis/import-openapi"'
      x-examples:
        $ref: docs/examples/apis/import_openapi_post.yaml
      x-contentType: multipart/form-data
      x-accepts: application/json
  /apis/import-wsdl:
    post:
      description: |
        This operation can be used to create an API using a WSDL definition. Provide either `url` or `file`
        to specify the definition.

        WSDL can be speficied as a single file or a ZIP archive with WSDLs and reference XSDs etc.
        Specify additionalProperties with **at least** API's name, version, context and endpointConfig.
      operationId: importWSDLDefinition
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                file:
                  description: |
                    WSDL definition as a file or archive

                    **Sample cURL to Upload WSDL File**

                    curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8" -F file=@api.wsdl -F additionalProperties=@data.json "https://127.0.0.1:9443/api/am/publisher/v4/apis/import-wsdl"

                    **Sample cURL to Upload WSDL Archive**

                    curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8" -F file="@wsdl.zip;type=application/zip" -F additionalProperties=@data.json "https://127.0.0.1:9443/api/am/publisher/v4/apis/import-wsdl"
                  format: binary
                  type: string
                url:
                  description: WSDL Definition url
                  type: string
                additionalProperties:
                  description: Additional attributes specified as a stringified JSON
                    with API's schema
                  type: string
                implementationType:
                  default: SOAP
                  description: |
                    If 'SOAP' is specified, the API will be created with only one resource 'POST /*' which is to be used for SOAP
                    operations.

                    If 'HTTP_BINDING' is specified, the API will be created with resources using HTTP binding operations
                    which are extracted from the WSDL.
                  enum:
                  - SOAPTOREST
                  - SOAP
                  type: string
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/API'
          description: |
            Created.
            Successful response with the newly created object as entity in the body.
            Location header contains URL of newly created entity.
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Location:
              description: |
                The URL of the newly created resource.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "415":
          content:
            application/json:
              example:
                code: 415
                message: Unsupported media type
                description: The entity of the request was not in a supported format
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Unsupported Media Type. The entity of the request was not in
            a supported format.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
      summary: Import a WSDL Definition
      tags:
      - APIs
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -F file=@api.wsdl -F additionalProperties=@data.json "https://127.0.0.1:9443/api/am/publisher/v4/apis/import-wsdl"'
      x-examples:
        $ref: docs/examples/apis/wsdl/import_wsdl_post.yaml
      x-contentType: multipart/form-data
      x-accepts: application/json
  /apis/import-graphql-schema:
    post:
      description: |
        This operation can be used to create api from api definition.APIMgtDAOTest

        API definition is GraphQL Schema
      operationId: importGraphQLSchema
      parameters:
      - description: |
          Validator for conditional requests; based on ETag.
        explode: false
        in: header
        name: If-Match
        required: false
        schema:
          type: string
        style: simple
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                type:
                  description: Definition type to upload
                  type: string
                file:
                  description: Definition to uploads a file
                  format: binary
                  type: string
                additionalProperties:
                  description: Additional attributes specified as a stringified JSON
                    with API's schema
                  type: string
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/API'
          description: |
            Created.
            Successful response with the newly created object as entity in the body.
            Location header contains URL of newly created entity.
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Location:
              description: |
                The URL of the newly created resource.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "415":
          content:
            application/json:
              example:
                code: 415
                message: Unsupported media type
                description: The entity of the request was not in a supported format
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Unsupported Media Type. The entity of the request was not in
            a supported format.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
      summary: Import a GraphQL SDL
      tags:
      - APIs
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -F file=@schema.graphql -F additionalProperties=@data.json "https://127.0.0.1:9443/api/am/publisher/v4/apis/import-graphql-schema"'
      x-contentType: multipart/form-data
      x-accepts: application/json
  /apis/validate-openapi:
    post:
      description: |
        This operation can be used to validate an OpenAPI definition and retrieve a summary. Provide either `url`
        or `file` to specify the definition.
      operationId: validateOpenAPIDefinition
      parameters:
      - description: |
          Specify whether to return the full content of the OpenAPI definition in the response. This is only
          applicable when using url based validation
        explode: true
        in: query
        name: returnContent
        required: false
        schema:
          default: false
          type: boolean
        style: form
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                url:
                  description: OpenAPI definition url
                  type: string
                file:
                  description: OpenAPI definition as a file
                  format: binary
                  type: string
                inlineAPIDefinition:
                  description: Inline content of the OpenAPI definition
                  type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenAPIDefinitionValidationResponse'
          description: |
            OK.
            API definition validation information is returned
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
      summary: Validate an OpenAPI Definition
      tags:
      - Validation
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -F file=@openapi.json "https://127.0.0.1:9443/api/am/publisher/v4/apis/validate-openapi"'
      x-examples:
        $ref: docs/examples/apis/validate_openapi_post.yaml
      x-contentType: multipart/form-data
      x-accepts: application/json
  /apis/validate-endpoint:
    post:
      description: |
        Using this operation, it is possible check whether the given API endpoint url is a valid url
      operationId: validateEndpoint
      parameters:
      - description: API endpoint url
        explode: true
        in: query
        name: endpointUrl
        required: true
        schema:
          type: string
        style: form
      - explode: true
        in: query
        name: apiId
        required: false
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiEndpointValidationResponse'
          description: |
            OK.
            API definition validation information is returned
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
      summary: Check Whether Given Endpoint URL is Valid
      tags:
      - Validation
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/validate-endpoint?apiId=e0824883-3e86-403a-aec1-22bbc454eb7c&endpointUrl=https%3A%2F%2Flocalhost%3A9443%2Fam%2Fsample%2Fpizzashack%2Fv1%2Fapi%2F"'
      x-accepts: application/json
  /apis/validate:
    post:
      description: |
        Using this operation, you can check a given API context is already used. You need to provide the context name you want to check.
      operationId: validateAPI
      parameters:
      - description: |
          **Search condition**.

          You can search in attributes by using an **"<attribute>:"** modifier.

          Eg.
          "name:wso2" will match an API if the provider of the API is exactly "wso2".

          Supported attribute modifiers are [** version, context, name **]

          If no advanced attribute modifier has been specified, search will match the
          given query string against API Name.
        explode: true
        in: query
        name: query
        required: true
        schema:
          type: string
        style: form
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content: {}
          description: |
            OK.
            API definition validation information is returned
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
      summary: Check Given API Context Name already Exists
      tags:
      - Validation
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/validate?query=name%3Awso2"'
      x-examples:
        $ref: docs/examples/apis/apis_validate.yaml
      x-accepts: application/json
  /apis/validate-wsdl:
    post:
      description: |
        This operation can be used to validate a WSDL definition and retrieve a summary. Provide either `url`
        or `file` to specify the definition.
      operationId: validateWSDLDefinition
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                url:
                  description: Definition url
                  type: string
                file:
                  description: Definition to upload as a file
                  format: binary
                  type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WSDLValidationResponse'
          description: |
            OK.
            API definition validation information is returned
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
      summary: Validate a WSDL Definition
      tags:
      - Validation
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -F file=@api.wsdl "https://127.0.0.1:9443/api/am/publisher/v4/apis/validate-wsdl"'
      x-examples:
        $ref: docs/examples/apis/wsdl/validate_wsdl_post.yaml
      x-contentType: multipart/form-data
      x-accepts: application/json
  /apis/validate-graphql-schema:
    post:
      description: |
        This operation can be used to validate a graphQL definition and retrieve a summary.
      operationId: validateGraphQLSchema
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                file:
                  description: Definition to upload as a file
                  format: binary
                  type: string
              required:
              - file
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GraphQLValidationResponse'
          description: |
            OK.
            API definition validation information is returned
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
      summary: Validate a GraphQL SDL
      tags:
      - Validation
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -F file=@schema.graphql "https://127.0.0.1:9443/api/am/publisher/v4/apis/validate-graphql-schema"'
      x-contentType: multipart/form-data
      x-accepts: application/json
  /apis/{apiId}/graphql-schema:
    get:
      description: |
        This operation can be used to retrieve the Schema definition of a GraphQL API.
      operationId: getAPIGraphQLSchema
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Media types acceptable for the response. Default is application/json.
        explode: false
        in: header
        name: Accept
        required: false
        schema:
          default: application/json
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GraphQLSchema'
          description: |
            OK.
            Requested GraphQL Schema DTO object belongs to the API
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
      summary: Get the Schema of a GraphQL API
      tags:
      - GraphQL Schema (Individual)
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/e0824883-3e86-403a-aec1-22bbc454eb7c/graphql-schema"'
      x-accepts: application/json
    put:
      description: |
        This operation can be used to add a GraphQL Schema definition to an existing GraphQL API.
      operationId: updateAPIGraphQLSchema
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on ETag.
        explode: false
        in: header
        name: If-Match
        required: false
        schema:
          type: string
        style: simple
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                schemaDefinition:
                  description: schema definition of the GraphQL API
                  type: string
              required:
              - schemaDefinition
        required: true
      responses:
        "200":
          content: {}
          description: |
            OK.
            Successful response with updated schema definition
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by cache, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Location:
              description: |
                The URL of the newly created resource.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "403":
          content:
            application/json:
              example:
                code: 403
                message: Forbidden
                description: The request must be conditional but no condition has
                  been specified
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden. The request must be conditional but no condition
            has been specified.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "412":
          content:
            application/json:
              example:
                code: 412
                message: Precondition Failed
                description: The request has not been performed because one of the
                  preconditions is not met
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Precondition Failed. The request has not been performed because
            one of the preconditions is not met.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
      summary: Add a Schema to a GraphQL API
      tags:
      - GraphQL Schema
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -F schemaDefinition=@schema.graphql "https://127.0.0.1:9443/api/am/publisher/v4/apis/e0824883-3e86-403a-aec1-22bbc454eb7c/graphql-schema"'
      x-contentType: multipart/form-data
      x-accepts: application/json
  /apis/{apiId}/amznResourceNames:
    get:
      description: |
        This operation can be use to retrieve ARNs of AWS Lambda function for a given AWS credentials.
      operationId: getAmazonResourceNamesOfAPI
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                example: |-
                  {
                     "count": "2",
                     "list": [
                        "arn:aws:lambda:us-west-2:123456789012:function:my-function1",
                        "arn:aws:lambda:us-west-2:123456789012:function:my-function2"
                     ]
                  }
                type: string
          description: |
            OK.
            Requested ARN List of the API is returned
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
      summary: Retrieve the ARNs of AWS Lambda Functions
      tags:
      - AWS Lambda (Individual)
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/e0824883-3e86-403a-aec1-22bbc454eb7c/amznResourceNames"'
      x-examples:
        $ref: docs/examples/apis/apis_id_amznresourcenames_get.yaml
      x-accepts: application/json
  /apis/{apiId}/monetize:
    post:
      description: |
        This operation can be used to configure monetization for a given API.
      operationId: addAPIMonetization
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/APIMonetizationInfo'
        description: Monetization data object
        required: true
      responses:
        "201":
          content: {}
          description: |
            OK.
            Monetization status changed successfully.
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_publish
        - apim:api_manage
      summary: Configure Monetization for a Given API
      tags:
      - API Monetization
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -H "Content-Type: application/json" -d @data.json https://127.0.0.1:9443/api/am/publisher/v4/apis/96077508-fd01-4fae-bc64-5de0e2baf43c/monetize'
      x-contentType: application/json
      x-accepts: application/json
  /apis/{apiId}/monetization:
    get:
      description: |
        This operation can be used to get monetization status for each tier in a given API
      operationId: getAPIMonetization
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content: {}
          description: |
            OK.
            Monetization status for each tier returned successfully.
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_publish
        - apim:api_manage
      summary: Get Monetization Status for each Tier in a Given API
      tags:
      - API Monetization
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/96077508-fd01-4fae-bc64-5de0e2baf43c/monetize"'
      x-accepts: application/json
  /apis/{apiId}/revenue:
    get:
      description: |
        This operation can be used to get details of total revenue details of a given monetized API with meterd billing.
      operationId: getAPIRevenue
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIRevenue'
          description: |
            OK.
            Details of a total revenue returned.
          headers:
            ETag:
              description: Entity Tag of the response resource. Used by caches, or
                in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: Date and time the resource has been modified the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_publish
        - apim:api_manage
      summary: Get Total Revenue Details of a Given Monetized API with Meterd Billing
      tags:
      - API Monetization
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/96077508-fd01-4fae-bc64-5de0e2baf43c/revenue"'
      x-accepts: application/json
  /apis/{apiId}/documents:
    get:
      description: |
        This operation can be used to retrieve a list of documents belonging to an API by providing the id of the API.
      operationId: getAPIDocuments
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Maximum size of resource array to return.
        explode: true
        in: query
        name: limit
        required: false
        schema:
          default: 25
          type: integer
        style: form
      - description: |
          Starting point within the complete list of items qualified.
        explode: true
        in: query
        name: offset
        required: false
        schema:
          default: 0
          type: integer
        style: form
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentList'
          description: |
            OK.
            Document list is returned.
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
        - apim:document_manage
      summary: Get a List of Documents of an API
      tags:
      - API Documents
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/e0824883-3e86-403a-aec1-22bbc454eb7c/documents"'
      x-accepts: application/json
    post:
      description: |
        This operation can be used to add a new documentation to an API. This operation only adds the metadata of a document. To add the actual content we need to use **Upload the content of an API document ** API once we obtain a document Id by this operation.
      operationId: addAPIDocument
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on ETag.
        explode: false
        in: header
        name: If-Match
        required: false
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Document'
        description: Document object that needs to be added
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Document'
          description: |
            Created.
            Successful response with the newly created Document object as entity in the body.
            Location header contains URL of newly added document.
          headers:
            ETag:
              description: |
                Entity Tag of the response resource.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Location:
              description: |
                Location to the newly created Document.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "415":
          content:
            application/json:
              example:
                code: 415
                message: Unsupported media type
                description: The entity of the request was not in a supported format
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Unsupported Media Type. The entity of the request was not in
            a supported format.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
        - apim:document_create
        - apim:document_manage
      summary: Add a New Document to an API
      tags:
      - API Documents
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -H "Content-Type: application/json" -d @data.json "https://127.0.0.1:9443/api/am/publisher/v4/apis/96077508-fd01-4fae-bc64-5de0e2baf43c/documents"'
      x-contentType: application/json
      x-accepts: application/json
  /apis/{apiId}/documents/{documentId}:
    delete:
      description: |
        This operation can be used to delete a document associated with an API.
      operationId: deleteAPIDocument
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Document Identifier
        explode: false
        in: path
        name: documentId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on ETag.
        explode: false
        in: header
        name: If-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content: {}
          description: |
            OK.
            Resource successfully deleted.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "412":
          content:
            application/json:
              example:
                code: 412
                message: Precondition Failed
                description: The request has not been performed because one of the
                  preconditions is not met
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Precondition Failed. The request has not been performed because
            one of the preconditions is not met.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
        - apim:document_manage
      summary: Delete a Document of an API
      tags:
      - API Documents
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X DELETE -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/96077508-fd01-4fae-bc64-5de0e2baf43c/documents/0bcb7f05-599d-4e1a-adce-5cb89bfe58d5"'
      x-accepts: application/json
    get:
      description: |
        This operation can be used to retrieve a particular document's metadata associated with an API.
      operationId: getAPIDocumentByDocumentId
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Document Identifier
        explode: false
        in: path
        name: documentId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Document'
          description: |
            OK.
            Document returned.
          headers:
            ETag:
              description: |
                Entity Tag of the response resource.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
        - apim:document_manage
      summary: Get a Document of an API
      tags:
      - API Documents
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/96077508-fd01-4fae-bc64-5de0e2baf43c/documents/0bcb7f05-599d-4e1a-adce-5cb89bfe58d5"'
      x-accepts: application/json
    put:
      description: |
        This operation can be used to update metadata of an API's document.
      operationId: updateAPIDocument
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Document Identifier
        explode: false
        in: path
        name: documentId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on ETag.
        explode: false
        in: header
        name: If-Match
        required: false
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Document'
        description: Document object that needs to be added
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Document'
          description: |
            OK.
            Document updated
          headers:
            ETag:
              description: |
                Entity Tag of the response resource.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Location:
              description: |
                The URL of the updated document.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "412":
          content:
            application/json:
              example:
                code: 412
                message: Precondition Failed
                description: The request has not been performed because one of the
                  preconditions is not met
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Precondition Failed. The request has not been performed because
            one of the preconditions is not met.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
        - apim:document_manage
      summary: Update a Document of an API
      tags:
      - API Documents
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X PUT -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -H "Content-Type: application/json" -d @doc.json "https://127.0.0.1:9443/api/am/publisher/v4/apis/96077508-fd01-4fae-bc64-5de0e2baf43c/documents/0bcb7f05-599d-4e1a-adce-5cb89bfe58d5"'
      x-contentType: application/json
      x-accepts: application/json
  /apis/{apiId}/documents/{documentId}/content:
    get:
      description: |
        This operation can be used to retrive the content of an API's document.

        The document can be of 3 types. In each cases responses are different.

        1. **Inline type**:
           The content of the document will be retrieved in `text/plain` content type

           _Sample cURL_ : `curl -k -H "Authorization:Bearer 579f0af4-37be-35c7-81a4-f1f1e9ee7c51" -F inlineContent=@"docs.txt" -X POST "https://localhost:9443/api/am/publisher/v4/apis/995a4972-3178-4b17-a374-756e0e19127c/documents/43c2bcce-60e7-405f-bc36-e39c0c5e189e/content`
        2. **FILE type**:
           The file will be downloaded with the related content type (eg. `application/pdf`)
        3. **URL type**:
            The client will recieve the URL of the document as the Location header with the response with - `303 See Other`
      operationId: getAPIDocumentContentByDocumentId
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Document Identifier
        explode: false
        in: path
        name: documentId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/octet-stream:
              schema:
                type: string
          description: |
            OK.
            File or inline content returned.
          headers:
            ETag:
              description: |
                Entity Tag of the response resource.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "303":
          content: {}
          description: |
            See Other.
            Source can be retrived from the URL specified at the Location header.
          headers:
            Location:
              description: |
                The Source URL of the document.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
        - apim:document_manage
      summary: Get the Content of an API Document
      tags:
      - API Documents
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/96077508-fd01-4fae-bc64-5de0e2baf43c/documents/0bcb7f05-599d-4e1a-adce-5cb89bfe58d5/content"'
      x-accepts: application/json
    post:
      description: |
        Thid operation can be used to upload a file or add inline content to an API document.

        **IMPORTANT:**
        * Either **file** or **inlineContent** form data parameters should be specified at one time.
        * Document's source type should be **FILE** in order to upload a file to the document using **file** parameter.
        * Document's source type should be **INLINE** in order to add inline content to the document using **inlineContent** parameter.
      operationId: addAPIDocumentContent
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Document Identifier
        explode: false
        in: path
        name: documentId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on ETag.
        explode: false
        in: header
        name: If-Match
        required: false
        schema:
          type: string
        style: simple
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                file:
                  description: Document to upload
                  format: binary
                  type: string
                inlineContent:
                  description: Inline content of the document
                  type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Document'
          description: |
            OK.
            Document updated
          headers:
            ETag:
              description: |
                Entity Tag of the response resource.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Location:
              description: |
                The URL of the updated content of the document.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "412":
          content:
            application/json:
              example:
                code: 412
                message: Precondition Failed
                description: The request has not been performed because one of the
                  preconditions is not met
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Precondition Failed. The request has not been performed because
            one of the preconditions is not met.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
        - apim:document_create
        - apim:document_manage
      summary: Upload the Content of an API Document
      tags:
      - API Documents
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -F file=@sample.pdf "https://127.0.0.1:9443/api/am/publisher/v4/apis/96077508-fd01-4fae-bc64-5de0e2baf43c/documents/0bcb7f05-599d-4e1a-adce-5cb89bfe58d5/content"'
      x-contentType: multipart/form-data
      x-accepts: application/json
  /apis/{apiId}/documents/validate:
    post:
      description: |
        This operation can be used to verify the document name exists or not.
      operationId: validateDocument
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          The name of the document which needs to be checked for the existance.
        explode: true
        in: query
        name: name
        required: true
        schema:
          type: string
        style: form
      - description: |
          Validator for conditional requests; based on ETag.
        explode: false
        in: header
        name: If-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          description: |
            OK.
            Successful response if the document name exists.
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          description: |
            Not Found.
            The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
        - apim:document_manage
        - apim:document_create
      summary: Check Whether a Document with the Provided Name Exist
      tags:
      - API Documents
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/96077508-fd01-4fae-bc64-5de0e2baf43c/documents/validate?name=CalculatorDoc"'
      x-examples:
        $ref: docs/examples/apis/apis_id_document_validate.yaml
      x-accepts: application/json
  /apis/{apiId}/wsdl-info:
    get:
      description: |
        This operation can be used to retrieve the WSDL meta information of an API. It states whether the API is a SOAP
        API. If the API is a SOAP API, it states whether it has a single WSDL or a WSDL archive.
      operationId: getWSDLInfoOfAPI
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WSDLInfo'
          description: |
            OK.
            Requested WSDL meta information of the API is returned
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
      summary: Get WSDL Meta Information
      tags:
      - APIs
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/96077508-fd01-4fae-bc64-5de0e2baf43c/wsdl-info"'
      x-examples:
        $ref: docs/examples/apis/wsdl/apiId_wsdl_info_get.yaml
      x-accepts: application/json
  /apis/{apiId}/wsdl:
    get:
      description: |
        This operation can be used to retrieve the WSDL definition of an API. It can be either a single WSDL file or a WSDL archive.

        The type of the WSDL of the API is indicated at the "wsdlInfo" element of the API payload definition.
      operationId: getWSDLOfAPI
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content: {}
          description: |
            OK.
            Requested WSDL document of the API is returned
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
      summary: Get WSDL definition
      tags:
      - APIs
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/96077508-fd01-4fae-bc64-5de0e2baf43c/wsdl"'
      x-examples:
        $ref: docs/examples/apis/wsdl/apiId_wsdl_get.yaml
      x-accepts: application/json
    put:
      description: |
        This operation can be used to update the WSDL definition of an existing API. WSDL to be updated can be passed as either "url" or "file".
        Only one of "url" or "file" can be used at the same time. "file" can be specified as a single WSDL file or as a zip file which has a WSDL
        and its dependencies (eg: XSDs)
      operationId: updateWSDLOfAPI
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on ETag.
        explode: false
        in: header
        name: If-Match
        required: false
        schema:
          type: string
        style: simple
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                file:
                  description: WSDL file or archive to upload
                  format: binary
                  type: string
                url:
                  description: WSDL Definition url
                  type: string
      responses:
        "200":
          content: {}
          description: |
            OK.
            Successful response with updated WSDL definition
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Location:
              description: |
                The URL of the newly created resource.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "403":
          content:
            application/json:
              example:
                code: 403
                message: Forbidden
                description: The request must be conditional but no condition has
                  been specified
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden. The request must be conditional but no condition
            has been specified.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "412":
          content:
            application/json:
              example:
                code: 412
                message: Precondition Failed
                description: The request has not been performed because one of the
                  preconditions is not met
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Precondition Failed. The request has not been performed because
            one of the preconditions is not met.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
      summary: Update WSDL Definition
      tags:
      - APIs
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -F file=@api.wsdl "https://127.0.0.1:9443/api/am/publisher/v4/apis/96077508-fd01-4fae-bc64-5de0e2baf43c/wsdl"'
      x-examples:
        $ref: docs/examples/apis/wsdl/apiId_wsdl_put.yaml
      x-contentType: multipart/form-data
      x-accepts: application/json
  /apis/{apiId}/graphql-policies/complexity:
    get:
      description: |
        This operation can be used to retrieve complexity related details belonging to an API by providing the API id.
      operationId: getGraphQLPolicyComplexityOfAPI
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GraphQLQueryComplexityInfo'
          description: |
            OK.
            Requested complexity details returned.
          headers:
            Content-Type:
              description: |
                The content of the body.
              explode: false
              schema:
                default: application/json
                type: string
              style: simple
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_create
        - apim:api_manage
        - apim:api_publish
      summary: Get the Complexity Related Details of an API
      tags:
      - GraphQL Policies
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/96077508-fd01-4fae-bc64-5de0e2baf43c/graphql-policies/complexity"'
      x-accepts: application/json
    put:
      description: |
        This operation can be used to update complexity details belonging to an API by providing the id of the API.
      operationId: updateGraphQLPolicyComplexityOfAPI
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GraphQLQueryComplexityInfo'
        description: Role-depth mapping that needs to be added
      responses:
        "200":
          content: {}
          description: |
            Created.
            Complexity details created successfully.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
      summary: Update Complexity Related Details of an API
      tags:
      - GraphQL Policies
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X PUT -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -H "Content-Type: application/json" -d @data.json "https://127.0.0.1:9443/api/am/publisher/v4/apis/96077508-fd01-4fae-bc64-5de0e2baf43c/graphql-policies/complexity"'
      x-contentType: application/json
      x-accepts: application/json
  /apis/{apiId}/graphql-policies/complexity/types:
    get:
      description: |
        This operation can be used to retrieve all types and fields of the GraphQL Schema by providing the API id.
      operationId: getGraphQLPolicyComplexityTypesOfAPI
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GraphQLSchemaTypeList'
          description: |
            OK.
            Types and fields returned successfully.
          headers:
            Content-Type:
              description: |
                The content of the body.
              explode: false
              schema:
                default: application/json
                type: string
              style: simple
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_create
        - apim:api_manage
        - apim:api_publish
      summary: Retrieve Types and Fields of a GraphQL Schema
      tags:
      - GraphQL Policies
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/96077508-fd01-4fae-bc64-5de0e2baf43c/graphql-policies/complexity/types"'
      x-accepts: application/json
  /apis/{apiId}/resource-paths:
    get:
      description: |
        This operation can be used to retrieve resource paths defined for a specific api.
      operationId: getAPIResourcePaths
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Maximum size of resource array to return.
        explode: true
        in: query
        name: limit
        required: false
        schema:
          default: 25
          type: integer
        style: form
      - description: |
          Starting point within the complete list of items qualified.
        explode: true
        in: query
        name: offset
        required: false
        schema:
          default: 0
          type: integer
        style: form
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourcePathList'
          description: |
            OK.
            ResourcePaths returned.
          headers:
            ETag:
              description: |
                Entity Tag of the response resource.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modified the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
      summary: Get Resource Paths of an API
      tags:
      - APIs
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/96077508-fd01-4fae-bc64-5de0e2baf43c/resource-paths"'
      x-accepts: application/json
  /apis/{apiId}/auditapi:
    get:
      description: |
        Retrieve the Security Audit Report of the Audit API
      operationId: getAuditReportOfAPI
      parameters:
      - description: |
          Media types acceptable for the response. Default is application/json.
        explode: false
        in: header
        name: Accept
        required: false
        schema:
          default: application/json
          type: string
        style: simple
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuditReport'
          description: |
            OK.
            The Security Audit Report has been returned.
          headers:
            Content-Type:
              description: |
                The content of the body.
              explode: false
              schema:
                default: application/json
                type: string
              style: simple
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
      summary: Retrieve the Security Audit Report of the Audit API
      tags:
      - API Audit
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/96077508-fd01-4fae-bc64-5de0e2baf43c/auditapi"'
      x-examples:
        $ref: docs/examples/apis/apis_id_auditapi_get.yaml
      x-accepts: application/json
  /apis/{apiId}/external-stores:
    get:
      description: |
        This operation can be used to retrieve a list of external stores which an API is published to by providing the id of the API.
      operationId: getAllPublishedExternalStoresByAPI
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIExternalStoreList'
          description: |
            OK.
            External Store list is returned.
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
      summary: Get the List of External Stores to which an API is Published
      tags:
      - External Stores
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/96077508-fd01-4fae-bc64-5de0e2baf43c/external-stores"'
      x-examples:
        $ref: docs/examples/external-stores/external_stores.yaml#/getPublishedExternalStoresByAPI
      x-accepts: application/json
  /apis/{apiId}/publish-to-external-stores:
    post:
      description: |
        This operation can be used to publish an API to a list of external stores.
      operationId: publishAPIToExternalStores
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: External Store Ids of stores which the API needs to be published
          or updated.
        explode: true
        in: query
        name: externalStoreIds
        required: false
        schema:
          type: string
        style: form
      - description: |
          Validator for conditional requests; based on ETag.
        explode: false
        in: header
        name: If-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIExternalStoreList'
          description: |
            OK.
            API was successfully published to all the selected external stores.
          headers:
            ETag:
              description: |
                Entity Tag of the blocked subscription.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the subscription has been blocked.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_publish
        - apim:api_manage
      summary: Publish an API to External Stores
      tags:
      - External Stores
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/96077508-fd01-4fae-bc64-5de0e2baf43c/publish-to-external-stores?externalStoreId=Store123#"'
      x-examples:
        $ref: docs/examples/external-stores/external_stores.yaml#/publishToExternalStore
      x-accepts: application/json
  /apis/{apiId}/generate-key:
    post:
      description: |
        This operation can be used to generate internal api key which used to invoke API.
      operationId: generateInternalAPIKey
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIKey'
          description: |
            OK.
            apikey generated.
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_generate_key
        - apim:api_manage
      summary: Generate internal API Key to invoke APIS.
      tags:
      - APIs
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/7a2298c4-c905-403f-8fac-38c73301631f/generate-key"'
      x-accepts: application/json
  /apis/export:
    get:
      description: |
        This operation can be used to export the details of a particular API as a zip file.
      operationId: exportAPI
      parameters:
      - description: UUID of the API
        explode: true
        in: query
        name: apiId
        required: false
        schema:
          type: string
        style: form
      - description: |
          API Name
        explode: true
        in: query
        name: name
        required: false
        schema:
          type: string
        style: form
      - description: |
          Version of the API
        explode: true
        in: query
        name: version
        required: false
        schema:
          type: string
        style: form
      - description: |
          Revision number of the API artifact
        explode: true
        in: query
        name: revisionNumber
        required: false
        schema:
          type: string
        style: form
      - description: |
          Provider name of the API
        explode: true
        in: query
        name: providerName
        required: false
        schema:
          type: string
        style: form
      - description: |
          Format of output documents. Can be YAML or JSON.
        explode: true
        in: query
        name: format
        required: false
        schema:
          enum:
          - JSON
          - YAML
          type: string
        style: form
      - description: |
          Preserve API Status on export
        explode: true
        in: query
        name: preserveStatus
        required: false
        schema:
          type: boolean
        style: form
      - description: |
          Export the latest revision of the API
        explode: true
        in: query
        name: latestRevision
        required: false
        schema:
          default: false
          type: boolean
        style: form
      responses:
        "200":
          content:
            application/zip:
              schema:
                format: binary
                type: string
          description: |
            OK.
            Export Successful.
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_publish
        - apim:api_create
        - apim:api_import_export
        - apim:api_manage
      summary: Export an API
      tags:
      - Import Export
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/export?apiId=96077508-fd01-4fae-bc64-5de0e2baf43c&name=PizzaShackAPI&version=1.0&provider=admin&format=YAML"
          > exportAPI.zip'
      x-accepts: application/json
  /apis/import:
    post:
      description: |
        This operation can be used to import an API.
      operationId: importAPI
      parameters:
      - description: |
          Preserve Original Provider of the API. This is the user choice to keep or replace the API provider
        explode: true
        in: query
        name: preserveProvider
        required: false
        schema:
          type: boolean
        style: form
      - description: |
          Once the revision max limit reached, undeploy and delete the earliest revision and create a new revision
        explode: true
        in: query
        name: rotateRevision
        required: false
        schema:
          type: boolean
        style: form
      - description: |
          Whether to update the API or not. This is used when updating already existing APIs
        explode: true
        in: query
        name: overwrite
        required: false
        schema:
          type: boolean
        style: form
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                file:
                  description: Zip archive consisting on exported api configuration
                  format: binary
                  type: string
              required:
              - file
      responses:
        "200":
          description: |
            Created.
            API Imported Successfully.
        "403":
          content:
            application/json:
              example:
                code: 403
                message: Forbidden
                description: The request must be conditional but no condition has
                  been specified
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden. The request must be conditional but no condition
            has been specified.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "409":
          content:
            application/json:
              example:
                code: 409
                message: Conflict
                description: Specified resource already exists
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Conflict. Specified resource already exists.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_import_export
        - apim:admin
      summary: Import an API
      tags:
      - Import Export
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -F file=@admin-PizzaShackAPI-1.0.0.zip "https://127.0.0.1:9443/api/am/publisher/v4/apis/import?preserveProvider=false&overwrite=false"'
      x-contentType: multipart/form-data
      x-accepts: application/json
  /subscriptions:
    get:
      description: |
        This operation can be used to retrieve a list of subscriptions of the user associated with the provided access token. This operation is capable of

        1. Retrieving all subscriptions for the user's APIs.
        `GET https://127.0.0.1:9443/api/am/publisher/v4/subscriptions`

        2. Retrieving subscriptions for a specific API.
        `GET https://127.0.0.1:9443/api/am/publisher/v4/subscriptions?apiId=c43a325c-260b-4302-81cb-768eafaa3aed`
      operationId: getSubscriptions
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
          The combination of the provider of the API, name of the API and the version is also accepted as a valid API I.
          Should be formatted as **provider-name-version**.
        explode: true
        in: query
        name: apiId
        required: false
        schema:
          type: string
        style: form
      - description: |
          Maximum size of resource array to return.
        explode: true
        in: query
        name: limit
        required: false
        schema:
          default: 25
          type: integer
        style: form
      - description: |
          Starting point within the complete list of items qualified.
        explode: true
        in: query
        name: offset
        required: false
        schema:
          default: 0
          type: integer
        style: form
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      - description: |
          Keywords to filter subscriptions
        explode: true
        in: query
        name: query
        required: false
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionList'
          description: |
            OK.
            Subscription list returned.
          headers:
            ETag:
              description: |
                Entity Tag of the response resource.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:subscription_view
        - apim:subscription_manage
      summary: Get all Subscriptions
      tags:
      - Subscriptions
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/subscriptions?apiId=96077508-fd01-4fae-bc64-5de0e2baf43c"'
      x-accepts: application/json
  /subscriptions/{subscriptionId}/usage:
    get:
      description: |
        This operation can be used to get details of a pending invoice for a monetized subscription with meterd billing.
      operationId: getSubscriptionUsage
      parameters:
      - description: |
          Subscription Id
        explode: false
        in: path
        name: subscriptionId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIMonetizationUsage'
          description: |
            OK.
            Details of a pending invoice returned.
          headers:
            ETag:
              description: Entity Tag of the response resource. Used by caches, or
                in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: Date and time the resource has been modified the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: |
            Not Found.
            Requested Subscription does not exist.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:subscription_view
        - apim:subscription_manage
      summary: Get Details of a Pending Invoice for a Monetized Subscription with
        Metered Billing.
      tags:
      - API Monetization
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/subscriptions/64eca60b-2e55-4c38-8603-e9e6bad7d809/usage"'
      x-accepts: application/json
  /subscriptions/{subscriptionId}/subscriber-info:
    get:
      description: |
        This operation can be used to get details of a user who subscribed to the API.
      operationId: getSubscriberInfoBySubscriptionId
      parameters:
      - description: |
          Subscription Id
        explode: false
        in: path
        name: subscriptionId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberInfo'
          description: |
            OK.
             Details of the subscriber are returned.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:subscription_view
        - apim:subscription_manage
      summary: Get Details of a Subscriber
      tags:
      - Subscriber
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/subscriptions/64eca60b-2e55-4c38-8603-e9e6bad7d809/subscriber-info"'
      x-accepts: application/json
  /subscriptions/block-subscription:
    post:
      description: |
        This operation can be used to block a subscription. Along with the request, `blockState` must be specified as a query parameter.

        1. `BLOCKED` : Subscription is completely blocked for both Production and Sandbox environments.
        2. `PROD_ONLY_BLOCKED` : Subscription is blocked for Production environment only.
      operationId: blockSubscription
      parameters:
      - description: |
          Subscription Id
        explode: true
        in: query
        name: subscriptionId
        required: true
        schema:
          type: string
        style: form
      - description: |
          Subscription block state.
        explode: true
        in: query
        name: blockState
        required: true
        schema:
          enum:
          - BLOCKED
          - PROD_ONLY_BLOCKED
          type: string
        style: form
      - description: |
          Validator for conditional requests; based on ETag.
        explode: false
        in: header
        name: If-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content: {}
          description: |
            OK.
            Subscription was blocked successfully.
          headers:
            ETag:
              description: |
                Entity Tag of the blocked subscription.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the subscription has been blocked.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "412":
          content:
            application/json:
              example:
                code: 412
                message: Precondition Failed
                description: The request has not been performed because one of the
                  preconditions is not met
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Precondition Failed. The request has not been performed because
            one of the preconditions is not met.
      security:
      - OAuth2Security:
        - apim:subscription_block
        - apim:subscription_manage
      summary: Block a Subscription
      tags:
      - Subscriptions
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/subscriptions/block-subscription?subscriptionId=64eca60b-2e55-4c38-8603-e9e6bad7d809&blockState=PROD_ONLY_BLOCKED"'
      x-accepts: application/json
  /subscriptions/unblock-subscription:
    post:
      description: |
        This operation can be used to unblock a subscription specifying the subscription Id. The subscription will be fully unblocked after performing this operation.
      operationId: unBlockSubscription
      parameters:
      - description: |
          Subscription Id
        explode: true
        in: query
        name: subscriptionId
        required: true
        schema:
          type: string
        style: form
      - description: |
          Validator for conditional requests; based on ETag.
        explode: false
        in: header
        name: If-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content: {}
          description: |
            OK.
            Subscription was unblocked successfully.
          headers:
            ETag:
              description: |
                Entity Tag of the unblocked subscription.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the subscription has been unblocked.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "412":
          content:
            application/json:
              example:
                code: 412
                message: Precondition Failed
                description: The request has not been performed because one of the
                  preconditions is not met
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Precondition Failed. The request has not been performed because
            one of the preconditions is not met.
      security:
      - OAuth2Security:
        - apim:subscription_block
        - apim:subscription_manage
      summary: Unblock a Subscription
      tags:
      - Subscriptions
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/subscriptions/unblock-subscription?subscriptionId=64eca60b-2e55-4c38-8603-e9e6bad7d809"'
      x-accepts: application/json
  /throttling-policies/{policyLevel}:
    get:
      description: |
        This operation can be used to list the available policies for a given policy level. Tier level should be specified as a path parameter and should be one of `subscription` and `api`.
        `subscription` is for Subscription Level policies and `api` is for Resource Level policies
      operationId: getAllThrottlingPolicies
      parameters:
      - description: |
          Maximum size of resource array to return.
        explode: true
        in: query
        name: limit
        required: false
        schema:
          default: 25
          type: integer
        style: form
      - description: |
          Starting point within the complete list of items qualified.
        explode: true
        in: query
        name: offset
        required: false
        schema:
          default: 0
          type: integer
        style: form
      - description: |
          List API or Application or Resource type policies.
        explode: false
        in: path
        name: policyLevel
        required: true
        schema:
          enum:
          - api
          - subcription
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThrottlingPolicyList'
          description: |
            OK.
            List of policies returned.
          headers:
            ETag:
              description: |
                Entity Tag of the response resource.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:tier_view
        - apim:tier_manage
      summary: Get All Throttling Policies for the Given Type
      tags:
      - Throttling Policies
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/throttling-policies/api"'
      x-accepts: application/json
  /throttling-policies/streaming/subscription:
    get:
      description: |
        This operation can be used to list the available streaming subscription policies
      operationId: getSubscriptionThrottlingPolicies
      parameters:
      - description: |
          Maximum size of resource array to return.
        explode: true
        in: query
        name: limit
        required: false
        schema:
          default: 25
          type: integer
        style: form
      - description: |
          Starting point within the complete list of items qualified.
        explode: true
        in: query
        name: offset
        required: false
        schema:
          default: 0
          type: integer
        style: form
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionPolicyList'
          description: |
            OK.
            List of subscription policies returned.
          headers:
            ETag:
              description: |
                Entity Tag of the response resource.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:tier_view
        - apim:tier_manage
      summary: Get streaming throttling policies
      tags:
      - Throttling Policies
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/throttling-policies/subscription?tierQuotaType=RequestCountLimit"'
      x-accepts: application/json
  /throttling-policies/{policyLevel}/{policyName}:
    get:
      description: |
        This operation can be used to retrieve details of a single policy by specifying the policy level and policy name.
      operationId: getThrottlingPolicyByName
      parameters:
      - description: |
          Tier name
        explode: false
        in: path
        name: policyName
        required: true
        schema:
          type: string
        style: simple
      - description: |
          List API or Application or Resource type policies.
        explode: false
        in: path
        name: policyLevel
        required: true
        schema:
          enum:
          - api
          - subcription
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThrottlingPolicy'
          description: |
            OK.
            Tier returned
          headers:
            ETag:
              description: |
                Entity Tag of the response resource.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:tier_view
        - apim:tier_manage
      summary: Get Details of a Policy
      tags:
      - Throttling Policies
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/throttling-policies/api/Platinum"'
      x-accepts: application/json
  /apis/{apiId}/client-certificates:
    get:
      description: |
        This operation can be used to retrieve and search the uploaded client certificates.
      operationId: getAPIClientCertificates
      parameters:
      - description: |
          Maximum size of resource array to return.
        explode: true
        in: query
        name: limit
        required: false
        schema:
          default: 25
          type: integer
        style: form
      - description: |
          Starting point within the complete list of items qualified.
        explode: true
        in: query
        name: offset
        required: false
        schema:
          default: 0
          type: integer
        style: form
      - description: Alias for the client certificate
        explode: true
        in: query
        name: alias
        required: false
        schema:
          type: string
        style: form
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientCertificates'
          description: |
            OK. Successful response with the list of matching certificate information in the body.
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
        - apim:client_certificates_view
        - apim:client_certificates_manage
      summary: Retrieve/ Search Uploaded Client Certificates
      tags:
      - Client Certificates
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/d48a3412-1b85-49be-99f4-b81a3722ae73/client-certificates?alias=wso2carbon"'
      x-accepts: application/json
    post:
      description: |
        This operation can be used to upload a new certificate for an endpoint.
      operationId: addAPIClientCertificate
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                certificate:
                  description: The certificate that needs to be uploaded.
                  format: binary
                  type: string
                alias:
                  description: Alias for the certificate
                  maxLength: 30
                  minLength: 1
                  type: string
                tier:
                  description: api tier to which the certificate should be applied.
                  type: string
              required:
              - alias
              - certificate
              - tier
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientCertMetadata'
          description: |
            OK.
            The Certificate added successfully.
          headers:
            Location:
              description: |
                The URL of the newly created resource.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
        - apim:client_certificates_add
        - apim:client_certificates_manage
      summary: Upload a New Certificate
      tags:
      - Client Certificates
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -H "Content-Type: multipart/form-data" -F certificate=@test.crt -F alias=wso2carbon
          -F apiId=fea749dd-d548-4a8b-b308-34903b39a34b -F tier=Gold "https://127.0.0.1:9443/api/am/publisher/v4/apis/d48a3412-1b85-49be-99f4-b81a3722ae73/client-certificates"'
      x-contentType: multipart/form-data
      x-accepts: application/json
  /apis/{apiId}/client-certificates/{alias}:
    delete:
      description: |
        This operation can be used to delete an uploaded certificate.
      operationId: deleteAPIClientCertificateByAlias
      parameters:
      - description: |
          The alias of the certificate that should be deleted.
        explode: false
        in: path
        name: alias
        required: true
        schema:
          type: string
        style: simple
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content: {}
          description: |
            OK.
            The Certificate deleted successfully.
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
        - apim:client_certificates_update
      summary: Delete a Certificate
      tags:
      - Client Certificates
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X DELETE -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/d48a3412-1b85-49be-99f4-b81a3722ae73/client-certificates/wso2carbon"'
      x-accepts: application/json
    get:
      description: |
        This operation can be used to get the information about a certificate.
      operationId: getAPIClientCertificateByAlias
      parameters:
      - explode: false
        in: path
        name: alias
        required: true
        schema:
          type: string
        style: simple
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CertificateInfo'
          description: |
            OK.
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
        - apim:client_certificates_view
        - apim:client_certificates_manage
      summary: Get the Certificate Information
      tags:
      - Client Certificates
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/d48a3412-1b85-49be-99f4-b81a3722ae73/client-certificates/wso2carbon"'
      x-accepts: application/json
    put:
      description: |
        This operation can be used to update an uploaded certificate.
      operationId: updateAPIClientCertificateByAlias
      parameters:
      - description: Alias for the certificate
        explode: false
        in: path
        name: alias
        required: true
        schema:
          maxLength: 30
          minLength: 1
          type: string
        style: simple
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                certificate:
                  description: The certificate that needs to be uploaded.
                  format: binary
                  type: string
                tier:
                  description: The tier of the certificate
                  type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientCertMetadata'
          description: |
            OK.
            The Certificate updated successfully.
          headers:
            Location:
              description: |
                The URL of the newly created resource.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
        - apim:client_certificates_update
        - apim:client_certificates_manage
      summary: Update a Certificate
      tags:
      - Client Certificates
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X PUT -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -H "Content-Type: multipart/form-data" -F certificate=@test.crt -F alias=wso2carbon
          -F apiId=fea749dd-d548-4a8b-b308-34903b39a34b -F tier=Gold "https://127.0.0.1:9443/api/am/publisher/v4/apis/d48a3412-1b85-49be-99f4-b81a3722ae73/client-certificates/wso2carbon"'
      x-contentType: multipart/form-data
      x-accepts: application/json
  /apis/{apiId}/client-certificates/{alias}/content:
    get:
      description: |
        This operation can be used to download a certificate which matches the given alias.
      operationId: getAPIClientCertificateContentByAlias
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - explode: false
        in: path
        name: alias
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content: {}
          description: |
            OK.
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
        - apim:client_certificates_view
        - apim:client_certificates_manage
      summary: Download a Certificate
      tags:
      - Client Certificates
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/apis/d48a3412-1b85-49be-99f4-b81a3722ae73/client-certificates/wso2carbon/content"'
      x-accepts: application/json
  /endpoint-certificates:
    get:
      description: |
        This operation can be used to retrieve and search the uploaded certificates.
      operationId: getEndpointCertificates
      parameters:
      - description: |
          Maximum size of resource array to return.
        explode: true
        in: query
        name: limit
        required: false
        schema:
          default: 25
          type: integer
        style: form
      - description: |
          Starting point within the complete list of items qualified.
        explode: true
        in: query
        name: offset
        required: false
        schema:
          default: 0
          type: integer
        style: form
      - description: Alias for the certificate
        explode: true
        in: query
        name: alias
        required: false
        schema:
          maxLength: 30
          type: string
        style: form
      - description: Endpoint of which the certificate is uploaded
        explode: true
        in: query
        name: endpoint
        required: false
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Certificates'
          description: |
            OK. Successful response with the list of matching certificate information in the body.
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
        - apim:ep_certificates_view
        - apim:ep_certificates_manage
      summary: Retrieve/Search Uploaded Certificates
      tags:
      - Endpoint Certificates
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/endpoint-certificates?alias=wso2carbon&endpoint=www.abc.com"'
      x-accepts: application/json
    post:
      description: |
        This operation can be used to upload a new certificate for an endpoint.
      operationId: addEndpointCertificate
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                certificate:
                  description: The certificate that needs to be uploaded.
                  format: binary
                  type: string
                alias:
                  description: Alias for the certificate
                  maxLength: 30
                  minLength: 1
                  type: string
                endpoint:
                  description: Endpoint to which the certificate should be applied.
                  type: string
              required:
              - alias
              - certificate
              - endpoint
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CertMetadata'
          description: |
            OK.
            The Certificate added successfully.
          headers:
            Location:
              description: |
                The URL of the newly created resource.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
        - apim:ep_certificates_add
        - apim:ep_certificates_manage
      summary: Upload a new Certificate.
      tags:
      - Endpoint Certificates
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -H "Content-Type: multipart/form-data" -F certificate=@test.crt -F alias=alias
          -F "endpoint=endpoint=https://www.abc.com" "https://127.0.0.1:9443/api/am/publisher/v4/apis/d48a3412-1b85-49be-99f4-b81a3722ae73/endpoint-certificates"'
      x-contentType: multipart/form-data
      x-accepts: application/json
  /endpoint-certificates/{alias}:
    delete:
      description: |
        This operation can be used to delete an uploaded certificate.
      operationId: deleteEndpointCertificateByAlias
      parameters:
      - description: |
          The alias of the certificate that should be deleted.
        explode: false
        in: path
        name: alias
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content: {}
          description: |
            OK.
            The Certificate deleted successfully.
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
        - apim:ep_certificates_update
        - apim:ep_certificates_manage
      summary: Delete a certificate.
      tags:
      - Endpoint Certificates
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X DELETE -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/endpoint-certificates/wso2carbon"'
      x-accepts: application/json
    get:
      description: |
        This operation can be used to get the information about a certificate.
      operationId: getEndpointCertificateByAlias
      parameters:
      - explode: false
        in: path
        name: alias
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CertificateInfo'
          description: |
            OK.
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
        - apim:ep_certificates_view
        - apim:ep_certificates_manage
      summary: Get the Certificate Information
      tags:
      - Endpoint Certificates
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/endpoint-certificates/wso2carbon"'
      x-accepts: application/json
    put:
      description: |
        This operation can be used to update an uploaded certificate.
      operationId: updateEndpointCertificateByAlias
      parameters:
      - description: Alias for the certificate
        explode: false
        in: path
        name: alias
        required: true
        schema:
          maxLength: 30
          minLength: 1
          type: string
        style: simple
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                certificate:
                  description: The certificate that needs to be uploaded.
                  format: binary
                  type: string
              required:
              - certificate
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CertMetadata'
          description: |
            OK.
            The Certificate updated successfully.
          headers:
            Location:
              description: |
                The URL of the newly created resource.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
        - apim:ep_certificates_update
        - apim:ep_certificates_manage
      summary: Update a certificate.
      tags:
      - Endpoint Certificates
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X PUT -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -H "Content-Type: multipart/form-data" -F certificate=@test.crt "https://127.0.0.1:9443/api/am/publisher/v4/apis/d48a3412-1b85-49be-99f4-b81a3722ae73/endpoint-certificates/wso2carbon"'
      x-contentType: multipart/form-data
      x-accepts: application/json
  /endpoint-certificates/{alias}/content:
    get:
      description: |
        This operation can be used to download a certificate which matches the given alias.
      operationId: getEndpointCertificateContentByAlias
      parameters:
      - explode: false
        in: path
        name: alias
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content: {}
          description: |
            OK.
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
        - apim:ep_certificates_view
        - apim:ep_certificates_manage
      summary: Download a Certificate
      tags:
      - Endpoint Certificates
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/endpoint-certificates/wso2carbon/content"'
      x-accepts: application/json
  /endpoint-certificates/{alias}/usage:
    get:
      description: |
        This operation can be used to retrieve/identify apis that use a known certificate.
      operationId: getCertificateUsageByAlias
      parameters:
      - description: |
          Maximum size of resource array to return.
        explode: true
        in: query
        name: limit
        required: false
        schema:
          default: 25
          type: integer
        style: form
      - description: |
          Starting point within the complete list of items qualified.
        explode: true
        in: query
        name: offset
        required: false
        schema:
          default: 0
          type: integer
        style: form
      - explode: false
        in: path
        name: alias
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIMetadataList'
          description: |
            OK.
            List of qualifying APIs is returned.
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
        - apim:ep_certificates_view
        - apim:ep_certificates_manage
      summary: Retrieve all the APIs that use a given certificate by the alias
      tags:
      - Endpoint Certificates
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/endpoint-certificates/wso2cert/usage"'
      x-accepts: application/json
  /search:
    get:
      description: |
        This operation provides you a list of available APIs and API Documents qualifying the given keyword match.
      operationId: search
      parameters:
      - description: |
          Maximum size of resource array to return.
        explode: true
        in: query
        name: limit
        required: false
        schema:
          default: 25
          type: integer
        style: form
      - description: |
          Starting point within the complete list of items qualified.
        explode: true
        in: query
        name: offset
        required: false
        schema:
          default: 0
          type: integer
        style: form
      - description: |
          **Search**.

          You can search by proving a keyword.
        explode: true
        in: query
        name: query
        required: false
        schema:
          type: string
        style: form
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResultList'
          description: |
            OK.
            List of qualifying APIs and API documents is returned.
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
        - apim:api_import_export
        - apim:api_product_import_export
      summary: |
        Retrieve/Search APIs and API Documents by Content
      tags:
      - Unified Search
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/search?query=pizza"'
      x-examples:
        $ref: docs/examples/apis/search_get.yaml
      x-accepts: application/json
  /api-products:
    get:
      description: |
        This operation provides you a list of available API Products qualifying under a given search condition.

        Each retrieved API Product is represented with a minimal amount of attributes. If you want to get complete details of an API Product, you need to use **Get details of an API Product** operation.
      operationId: getAllAPIProducts
      parameters:
      - description: |
          Maximum size of resource array to return.
        explode: true
        in: query
        name: limit
        required: false
        schema:
          default: 25
          type: integer
        style: form
      - description: |
          Starting point within the complete list of items qualified.
        explode: true
        in: query
        name: offset
        required: false
        schema:
          default: 0
          type: integer
        style: form
      - explode: true
        in: query
        name: query
        required: false
        schema:
          type: string
        style: form
      - description: |
          Media types acceptable for the response. Default is application/json.
        explode: false
        in: header
        name: Accept
        required: false
        schema:
          default: application/json
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIProductList'
          description: |
            OK.
            List of qualifying API Products is returned.
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
      summary: |
        Retrieve/Search API Products
      tags:
      - API Products
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/api-products?query=PizzaAPIProduct"'
      x-accepts: application/json
    post:
      description: |
        This operation can be used to create a new API Product specifying the details of the API Product in the payload.
      operationId: createAPIProduct
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/APIProduct'
        description: API object that needs to be added
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIProduct'
          description: |
            'Created.
            Successful response with the newly created object as entity in the body.
            Location header contains URL of newly created entity.'
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Location:
              description: |
                The URL of the newly created resource.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "415":
          content:
            application/json:
              example:
                code: 415
                message: Unsupported media type
                description: The entity of the request was not in a supported format
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Unsupported Media Type. The entity of the request was not in
            a supported format.
      security:
      - OAuth2Security:
        - apim:api_publish
        - apim:api_manage
      summary: Create a New API Product
      tags:
      - API Products
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -H "Content-Type: application/json" -d @data.json "https://127.0.0.1:9443/api/am/publisher/v4/api-products"'
      x-contentType: application/json
      x-accepts: application/json
  /api-products/{apiProductId}:
    delete:
      description: |
        This operation can be used to delete an existing API Product proving the Id of the API Product.
      operationId: deleteAPIProduct
      parameters:
      - description: |
          **API Product ID** consisting of the **UUID** of the API Product. Using the **UUID** in the API call is recommended.
        explode: false
        in: path
        name: apiProductId
        required: true
        schema:
          type: string
          x-encoded: true
        style: simple
        x-encoded: true
      - description: |
          Validator for conditional requests; based on ETag.
        explode: false
        in: header
        name: If-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content: {}
          description: |
            OK.
            Resource successfully deleted.
        "403":
          content:
            application/json:
              example:
                code: 403
                message: Forbidden
                description: The request must be conditional but no condition has
                  been specified
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden. The request must be conditional but no condition
            has been specified.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "412":
          content:
            application/json:
              example:
                code: 412
                message: Precondition Failed
                description: The request has not been performed because one of the
                  preconditions is not met
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Precondition Failed. The request has not been performed because
            one of the preconditions is not met.
      security:
      - OAuth2Security:
        - apim:api_publish
        - apim:api_manage
        - apim:api_product_import_export
      summary: Delete an API Product
      tags:
      - API Products
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X DELETE -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/api-products/5bca47e1-8233-46a5-9295-525dca337f33"'
      x-accepts: application/json
    get:
      description: |
        Using this operation, you can retrieve complete details of a single API Product. You need to provide the Id of the API to retrive it.
      operationId: getAPIProduct
      parameters:
      - description: |
          **API Product ID** consisting of the **UUID** of the API Product. Using the **UUID** in the API call is recommended.
        explode: false
        in: path
        name: apiProductId
        required: true
        schema:
          type: string
          x-encoded: true
        style: simple
        x-encoded: true
      - description: |
          Media types acceptable for the response. Default is application/json.
        explode: false
        in: header
        name: Accept
        required: false
        schema:
          default: application/json
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIProduct'
          description: |
            OK.
            Requested API Product is returned
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_publish
        - apim:api_manage
      summary: Get Details of an API Product
      tags:
      - API Products
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/api-products/5bca47e1-8233-46a5-9295-525dca337f33"'
      x-accepts: application/json
    put:
      description: |
        This operation can be used to update an existing API product.
        But the properties `name`, `provider` and `version` cannot be changed.
      operationId: updateAPIProduct
      parameters:
      - description: |
          **API Product ID** consisting of the **UUID** of the API Product. Using the **UUID** in the API call is recommended.
        explode: false
        in: path
        name: apiProductId
        required: true
        schema:
          type: string
          x-encoded: true
        style: simple
        x-encoded: true
      - description: |
          Validator for conditional requests; based on ETag.
        explode: false
        in: header
        name: If-Match
        required: false
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/APIProduct'
        description: API object that needs to be added
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIProduct'
          description: |
            OK.
            Successful response with updated API product object
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Location:
              description: |
                The URL of the newly created resource.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "403":
          content:
            application/json:
              example:
                code: 403
                message: Forbidden
                description: The request must be conditional but no condition has
                  been specified
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden. The request must be conditional but no condition
            has been specified.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "412":
          content:
            application/json:
              example:
                code: 412
                message: Precondition Failed
                description: The request has not been performed because one of the
                  preconditions is not met
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Precondition Failed. The request has not been performed because
            one of the preconditions is not met.
      security:
      - OAuth2Security:
        - apim:api_publish
        - apim:api_manage
      summary: Update an API Product
      tags:
      - API Products
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X PUT -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -H "Content-Type: application/json" -d @data.json "https://127.0.0.1:9443/api/am/publisher/v4/api-products/5bca47e1-8233-46a5-9295-525dca337f33"'
      x-contentType: application/json
      x-accepts: application/json
  /api-products/{apiProductId}/thumbnail:
    get:
      description: |
        This operation can be used to download a thumbnail image of an API product.
      operationId: getAPIProductThumbnail
      parameters:
      - description: |
          **API Product ID** consisting of the **UUID** of the API Product. Using the **UUID** in the API call is recommended.
        explode: false
        in: path
        name: apiProductId
        required: true
        schema:
          type: string
          x-encoded: true
        style: simple
        x-encoded: true
      - description: |
          Media types acceptable for the response. Default is application/json.
        explode: false
        in: header
        name: Accept
        required: false
        schema:
          default: application/json
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content: {}
          description: |
            OK.
            Thumbnail image returned
          headers:
            ETag:
              description: |
                Entity Tag of the response resource.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_publish
        - apim:api_manage
      summary: Get Thumbnail Image
      tags:
      - API Products
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/api-products/5bca47e1-8233-46a5-9295-525dca337f33/thumbnail"
          > image.jpeg'
      x-accepts: application/json
    put:
      description: |
        This operation can be used to upload a thumbnail image of an API Product. The thumbnail to be uploaded should be given as a form data parameter `file`.
      operationId: updateAPIProductThumbnail
      parameters:
      - description: |
          **API Product ID** consisting of the **UUID** of the API Product. Using the **UUID** in the API call is recommended.
        explode: false
        in: path
        name: apiProductId
        required: true
        schema:
          type: string
          x-encoded: true
        style: simple
        x-encoded: true
      - description: |
          Validator for conditional requests; based on ETag.
        explode: false
        in: header
        name: If-Match
        required: false
        schema:
          type: string
        style: simple
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                file:
                  description: Image to upload
                  format: binary
                  type: string
              required:
              - file
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FileInfo'
          description: |
            OK.
            Image updated
          headers:
            ETag:
              description: |
                Entity Tag of the response resource.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Location:
              description: |
                The URL of the uploaded thumbnail image of the API Product.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "412":
          content:
            application/json:
              example:
                code: 412
                message: Precondition Failed
                description: The request has not been performed because one of the
                  preconditions is not met
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Precondition Failed. The request has not been performed because
            one of the preconditions is not met.
      security:
      - OAuth2Security:
        - apim:api_publish
        - apim:api_manage
      summary: Upload a Thumbnail Image
      tags:
      - API Products
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X PUT -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -H "Content-Type: multipart/form-data" -F file=@image.jpeg "https://127.0.0.1:9443/api/am/publisher/v4/api-products/d48a3412-1b85-49be-99f4-b81a3722ae73/thumbnail"'
      x-contentType: multipart/form-data
      x-accepts: application/json
  /api-products/{apiProductId}/swagger:
    get:
      description: |
        This operation can be used to retrieve the swagger definition of an API.
      operationId: getAPIProductSwagger
      parameters:
      - description: |
          **API Product ID** consisting of the **UUID** of the API Product. Using the **UUID** in the API call is recommended.
        explode: false
        in: path
        name: apiProductId
        required: true
        schema:
          type: string
          x-encoded: true
        style: simple
        x-encoded: true
      - description: |
          Media types acceptable for the response. Default is application/json.
        explode: false
        in: header
        name: Accept
        required: false
        schema:
          default: application/json
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: |
            OK.
            Requested swagger document of the API is returned
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_publish
        - apim:api_manage
      summary: Get Swagger Definition
      tags:
      - API Products
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/api-products/5bca47e1-8233-46a5-9295-525dca337f33/swagger"'
      x-accepts: application/json
  /api-products/{apiProductId}/is-outdated:
    get:
      description: |
        This operation can be used to retrieve the status indicating if an API Product is outdated due to updating of dependent APIs (This resource is not supported at the moment)
      operationId: getIsAPIProductOutdated
      parameters:
      - description: |
          **API Product ID** consisting of the **UUID** of the API Product. Using the **UUID** in the API call is recommended.
        explode: false
        in: path
        name: apiProductId
        required: true
        schema:
          type: string
          x-encoded: true
        style: simple
        x-encoded: true
      - description: |
          Media types acceptable for the response. Default is application/json.
        explode: false
        in: header
        name: Accept
        required: false
        schema:
          default: application/json
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIProductOutdatedStatus'
          description: |
            OK.
            Requested swagger document of the API is returned
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_publish
        - apim:api_manage
      summary: Check Whether API Product is Outdated
      tags:
      - API Products
      x-accepts: application/json
  /api-products/{apiProductId}/documents:
    get:
      description: |
        This operation can be used to retrive a list of documents belonging to an API Product by providing the id of the API Product.
      operationId: getAPIProductDocuments
      parameters:
      - description: |
          **API Product ID** consisting of the **UUID** of the API Product. Using the **UUID** in the API call is recommended.
        explode: false
        in: path
        name: apiProductId
        required: true
        schema:
          type: string
          x-encoded: true
        style: simple
        x-encoded: true
      - description: |
          Maximum size of resource array to return.
        explode: true
        in: query
        name: limit
        required: false
        schema:
          default: 25
          type: integer
        style: form
      - description: |
          Starting point within the complete list of items qualified.
        explode: true
        in: query
        name: offset
        required: false
        schema:
          default: 0
          type: integer
        style: form
      - description: |
          Media types acceptable for the response. Default is application/json.
        explode: false
        in: header
        name: Accept
        required: false
        schema:
          default: application/json
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentList'
          description: |
            OK.
            Document list is returned.
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_publish
        - apim:api_manage
      summary: Get a List of Documents of an API Product
      tags:
      - API Product Documents
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/api-products/5bca47e1-8233-46a5-9295-525dca337f33/documents"'
      x-accepts: application/json
    post:
      description: |
        This operation can be used to add a new documentation to an API Product. This operation only adds the metadata of a document. To add the actual content we need to use **Upload the content of an API Product document ** API once we obtain a document Id by this operation.
      operationId: addAPIProductDocument
      parameters:
      - description: |
          **API Product ID** consisting of the **UUID** of the API Product. Using the **UUID** in the API call is recommended.
        explode: false
        in: path
        name: apiProductId
        required: true
        schema:
          type: string
          x-encoded: true
        style: simple
        x-encoded: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Document'
        description: Document object that needs to be added
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Document'
          description: |
            Created.
            Successful response with the newly created Document object as entity in the body.
            Location header contains URL of newly added document.
          headers:
            ETag:
              description: |
                Entity Tag of the response resource.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Location:
              description: |
                Location to the newly created Document.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "415":
          content:
            application/json:
              example:
                code: 415
                message: Unsupported media type
                description: The entity of the request was not in a supported format
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Unsupported Media Type. The entity of the request was not in
            a supported format.
      security:
      - OAuth2Security:
        - apim:api_publish
        - apim:api_manage
      summary: Add a New Document to an API Product
      tags:
      - API Product Documents
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -H "Content-Type: application/json" -d @data.json "https://127.0.0.1:9443/api/am/publisher/v4/api-products/5bca47e1-8233-46a5-9295-525dca337f33/documents"'
      x-contentType: application/json
      x-accepts: application/json
  /api-products/{apiProductId}/documents/{documentId}:
    delete:
      description: |
        This operation can be used to delete a document associated with an API Product.
      operationId: deleteAPIProductDocument
      parameters:
      - description: |
          **API Product ID** consisting of the **UUID** of the API Product. Using the **UUID** in the API call is recommended.
        explode: false
        in: path
        name: apiProductId
        required: true
        schema:
          type: string
          x-encoded: true
        style: simple
        x-encoded: true
      - description: |
          Document Identifier
        explode: false
        in: path
        name: documentId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on ETag.
        explode: false
        in: header
        name: If-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content: {}
          description: |
            OK.
            Resource successfully deleted.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "412":
          content:
            application/json:
              example:
                code: 412
                message: Precondition Failed
                description: The request has not been performed because one of the
                  preconditions is not met
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Precondition Failed. The request has not been performed because
            one of the preconditions is not met.
      security:
      - OAuth2Security:
        - apim:api_publish
        - apim:api_manage
      summary: Delete a Document of an API Product
      tags:
      - API Product Documents
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X DELETE -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/api-products/5bca47e1-8233-46a5-9295-525dca337f33/documents/83312daf-0d8a-427b-8f72-12755b7901d3"'
      x-accepts: application/json
    get:
      description: |
        This operation can be used to retrieve a particular document's metadata associated with an API.
      operationId: getAPIProductDocument
      parameters:
      - description: |
          **API Product ID** consisting of the **UUID** of the API Product. Using the **UUID** in the API call is recommended.
        explode: false
        in: path
        name: apiProductId
        required: true
        schema:
          type: string
          x-encoded: true
        style: simple
        x-encoded: true
      - description: |
          Document Identifier
        explode: false
        in: path
        name: documentId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Media types acceptable for the response. Default is application/json.
        explode: false
        in: header
        name: Accept
        required: false
        schema:
          default: application/json
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Document'
          description: |
            OK.
            Document returned.
          headers:
            ETag:
              description: |
                Entity Tag of the response resource.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_publish
        - apim:api_manage
      summary: Get a Document of an API Product
      tags:
      - API Product Documents
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/api-products/5bca47e1-8233-46a5-9295-525dca337f33/documents/83312daf-0d8a-427b-8f72-12755b7901d3"'
      x-accepts: application/json
    put:
      description: |
        This operation can be used to update metadata of an API's document.
      operationId: updateAPIProductDocument
      parameters:
      - description: |
          **API Product ID** consisting of the **UUID** of the API Product. Using the **UUID** in the API call is recommended.
        explode: false
        in: path
        name: apiProductId
        required: true
        schema:
          type: string
          x-encoded: true
        style: simple
        x-encoded: true
      - description: |
          Document Identifier
        explode: false
        in: path
        name: documentId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on ETag.
        explode: false
        in: header
        name: If-Match
        required: false
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Document'
        description: Document object that needs to be added
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Document'
          description: |
            OK.
            Document updated
          headers:
            ETag:
              description: |
                Entity Tag of the response resource.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Location:
              description: |
                The URL of the updated document.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "412":
          content:
            application/json:
              example:
                code: 412
                message: Precondition Failed
                description: The request has not been performed because one of the
                  preconditions is not met
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Precondition Failed. The request has not been performed because
            one of the preconditions is not met.
      security:
      - OAuth2Security:
        - apim:api_publish
        - apim:api_manage
      summary: Update a Document of an API Product
      tags:
      - API Product Documents
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X PUT -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -H "Content-Type: application/json" -d @data.json "https://127.0.0.1:9443/api/am/publisher/v4/api-products/5bca47e1-8233-46a5-9295-525dca337f33/documents/83312daf-0d8a-427b-8f72-12755b7901d3"'
      x-contentType: application/json
      x-accepts: application/json
  /api-products/{apiProductId}/documents/{documentId}/content:
    get:
      description: |
        This operation can be used to retrive the content of an API's document.

        The document can be of 3 types. In each cases responses are different.

        1. **Inline type**:
           The content of the document will be retrieved in `text/plain` content type

           _Sample cURL_ : `curl -k -H "Authorization:Bearer 579f0af4-37be-35c7-81a4-f1f1e9ee7c51" -F inlineContent=@"docs.txt" -X POST "https://localhost:9443/api/am/publisher/v4/apis/995a4972-3178-4b17-a374-756e0e19127c/documents/43c2bcce-60e7-405f-bc36-e39c0c5e189e/content`
        2. **FILE type**:
           The file will be downloaded with the related content type (eg. `application/pdf`)
        3. **URL type**:
            The client will recieve the URL of the document as the Location header with the response with - `303 See Other`
      operationId: getAPIProductDocumentContent
      parameters:
      - description: |
          **API Product ID** consisting of the **UUID** of the API Product. Using the **UUID** in the API call is recommended.
        explode: false
        in: path
        name: apiProductId
        required: true
        schema:
          type: string
          x-encoded: true
        style: simple
        x-encoded: true
      - description: |
          Document Identifier
        explode: false
        in: path
        name: documentId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Media types acceptable for the response. Default is application/json.
        explode: false
        in: header
        name: Accept
        required: false
        schema:
          default: application/json
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content: {}
          description: |
            OK.
            File or inline content returned.
          headers:
            ETag:
              description: |
                Entity Tag of the response resource.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "303":
          content: {}
          description: |
            See Other.
            Source can be retrived from the URL specified at the Location header.
          headers:
            Location:
              description: |
                The Source URL of the document.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_publish
        - apim:api_manage
      summary: Get the Content of an API Product Document
      tags:
      - API Product Documents
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/api-products/5bca47e1-8233-46a5-9295-525dca337f33/documents/83312daf-0d8a-427b-8f72-12755b7901d3/content"'
      x-accepts: application/json
    post:
      description: |
        Thid operation can be used to upload a file or add inline content to an API Product document.

        **IMPORTANT:**
        * Either **file** or **inlineContent** form data parameters should be specified at one time.
        * Document's source type should be **FILE** in order to upload a file to the document using **file** parameter.
        * Document's source type should be **INLINE** in order to add inline content to the document using **inlineContent** parameter.
      operationId: addAPIProductDocumentContent
      parameters:
      - description: |
          **API Product ID** consisting of the **UUID** of the API Product. Using the **UUID** in the API call is recommended.
        explode: false
        in: path
        name: apiProductId
        required: true
        schema:
          type: string
          x-encoded: true
        style: simple
        x-encoded: true
      - description: |
          Document Identifier
        explode: false
        in: path
        name: documentId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on ETag.
        explode: false
        in: header
        name: If-Match
        required: false
        schema:
          type: string
        style: simple
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                file:
                  description: Document to upload
                  format: binary
                  type: string
                inlineContent:
                  description: Inline content of the document
                  type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Document'
          description: |
            OK.
            Document updated
          headers:
            ETag:
              description: |
                Entity Tag of the response resource.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has been modifed the last time.
                Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Location:
              description: |
                The URL of the updated content of the document.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "412":
          content:
            application/json:
              example:
                code: 412
                message: Precondition Failed
                description: The request has not been performed because one of the
                  preconditions is not met
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Precondition Failed. The request has not been performed because
            one of the preconditions is not met.
      security:
      - OAuth2Security:
        - apim:api_publish
        - apim:api_manage
      summary: Upload the Content of an API Product Document
      tags:
      - API Product Documents
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -H "Content-Type: multipart/form-data" -F file=@sample.pdf "https://127.0.0.1:9443/api/am/publisher/v4/api-products/5bca47e1-8233-46a5-9295-525dca337f33/documents/83312daf-0d8a-427b-8f72-12755b7901d3/content"'
      x-contentType: multipart/form-data
      x-accepts: application/json
  /api-products/{apiProductId}/revisions:
    get:
      description: |
        List available revisions of an API Product
      operationId: getAPIProductRevisions
      parameters:
      - description: |
          **API Product ID** consisting of the **UUID** of the API Product. Using the **UUID** in the API call is recommended.
        explode: false
        in: path
        name: apiProductId
        required: true
        schema:
          type: string
          x-encoded: true
        style: simple
        x-encoded: true
      - explode: true
        in: query
        name: query
        required: false
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIRevisionList'
          description: |
            OK.
            List of API Product revisions are returned.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_create
        - apim:api_publish
        - apim:api_manage
        - apim:api_product_import_export
      summary: List Revisions
      tags:
      - API Product Revisions
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/api-products/890a4f4d-09eb-4877-a323-57f6ce2ed79b/revisions?query=deployed:true"'
      x-accepts: application/json
    post:
      description: |
        Create a new API Product revision
      operationId: createAPIProductRevision
      parameters:
      - description: |
          **API Product ID** consisting of the **UUID** of the API Product. Using the **UUID** in the API call is recommended.
        explode: false
        in: path
        name: apiProductId
        required: true
        schema:
          type: string
          x-encoded: true
        style: simple
        x-encoded: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/APIRevision'
        description: API Product object that needs to be added
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIRevision'
          description: |
            Created.
            Successful response with the newly created APIRevision object as the entity in the body.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "412":
          content:
            application/json:
              example:
                code: 412
                message: Precondition Failed
                description: The request has not been performed because one of the
                  preconditions is not met
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Precondition Failed. The request has not been performed because
            one of the preconditions is not met.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_publish
        - apim:api_manage
      summary: Create a new API Product revision
      tags:
      - API Product Revisions
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -H "Content-Type: application/json" -d @data.json "https://127.0.0.1:9443/api/am/publisher/v4/api-products/890a4f4d-09eb-4877-a323-57f6ce2ed79b/revisions"'
      x-contentType: application/json
      x-accepts: application/json
  /api-products/{apiProductId}/revisions/{revisionId}:
    delete:
      description: |
        Delete a revision of an API Product
      operationId: deleteAPIProductRevision
      parameters:
      - description: |
          **API Product ID** consisting of the **UUID** of the API Product. Using the **UUID** in the API call is recommended.
        explode: false
        in: path
        name: apiProductId
        required: true
        schema:
          type: string
          x-encoded: true
        style: simple
        x-encoded: true
      - description: |
          Revision ID of an API
        explode: false
        in: path
        name: revisionId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIRevisionList'
          description: |
            OK.
            List of remaining API revisions are returned.
        "204":
          description: |
            No Content.
            Successfully deleted the revision
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_publish
        - apim:api_manage
      summary: Delete Revision
      tags:
      - API Product Revisions
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X DELETE -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/api-products/890a4f4d-09eb-4877-a323-57f6ce2ed79b/revisions/e0824883-3e86-403a-aec1-22bbc454eb7c"'
      x-accepts: application/json
    get:
      description: |
        Retrieve a revision of an API Product
      operationId: getAPIProductRevision
      parameters:
      - description: |
          **API Product ID** consisting of the **UUID** of the API Product. Using the **UUID** in the API call is recommended.
        explode: false
        in: path
        name: apiProductId
        required: true
        schema:
          type: string
          x-encoded: true
        style: simple
        x-encoded: true
      - description: |
          Revision ID of an API
        explode: false
        in: path
        name: revisionId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIRevision'
          description: |
            OK.
            An API revision is returned.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_create
        - apim:api_publish
        - apim:api_manage
      summary: Retrieve Revision
      tags:
      - API Product Revisions
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/api-products/890a4f4d-09eb-4877-a323-57f6ce2ed79b/revisions/e0824883-3e86-403a-aec1-22bbc454eb7c"'
      x-accepts: application/json
  /api-products/{apiProductId}/deployments:
    get:
      description: |
        List available deployed revision deployment details of an API Product
      operationId: getAPIProductRevisionDeployments
      parameters:
      - description: |
          **API Product ID** consisting of the **UUID** of the API Product. Using the **UUID** in the API call is recommended.
        explode: false
        in: path
        name: apiProductId
        required: true
        schema:
          type: string
          x-encoded: true
        style: simple
        x-encoded: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIRevisionDeploymentList'
          description: |
            OK.
            List of deployed revision deployment details are returned.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_create
        - apim:api_publish
        - apim:api_manage
      summary: List Deployments
      tags:
      - API Product Revisions
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/api-products/890a4f4d-09eb-4877-a323-57f6ce2ed79b/deployments"'
      x-accepts: application/json
  /api-products/{apiProductId}/deployments/{deploymentId}:
    put:
      description: |
        Update deployment devportal visibility
      operationId: updateAPIProductDeployment
      parameters:
      - description: |
          **API Product ID** consisting of the **UUID** of the API Product. Using the **UUID** in the API call is recommended.
        explode: false
        in: path
        name: apiProductId
        required: true
        schema:
          type: string
          x-encoded: true
        style: simple
        x-encoded: true
      - description: |
          Base64 URL encoded value of the name of an environment
        explode: false
        in: path
        name: deploymentId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/APIRevisionDeployment'
        description: Deployment object that needs to be updated
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIRevisionDeployment'
          description: |
            Created.
            Successful response with the newly updated APIRevisionDeployment List object as the entity in the body.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_publish
        - apim:api_manage
      summary: Update Deployment
      tags:
      - API Product Revisions
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X PUT -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -d @data.json "https://127.0.0.1:9443/api/am/publisher/v4/api-products/890a4f4d-09eb-4877-a323-57f6ce2ed79b/deployments/UHJvZHVjdGlvbiBhbmQgU2FuZGJveA"'
      x-contentType: application/json
      x-accepts: application/json
  /api-products/{apiProductId}/deploy-revision:
    post:
      description: |
        Deploy an API Product Revision
      operationId: deployAPIProductRevision
      parameters:
      - description: |
          **API Product ID** consisting of the **UUID** of the API Product. Using the **UUID** in the API call is recommended.
        explode: false
        in: path
        name: apiProductId
        required: true
        schema:
          type: string
          x-encoded: true
        style: simple
        x-encoded: true
      - description: |
          Revision ID of an API
        explode: true
        in: query
        name: revisionId
        required: false
        schema:
          type: string
        style: form
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: '#/components/schemas/APIRevisionDeployment'
              type: array
        description: Deployment object that needs to be added
      responses:
        "200":
          description: |
            OK.
        "201":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/APIRevisionDeployment'
                type: array
          description: |
            Created.
            Successful response with the newly deployed APIRevisionDeployment List object as the entity in the body.
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_publish
        - apim:api_manage
      summary: Deploy Revision
      tags:
      - API Product Revisions
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/api-products/890a4f4d-09eb-4877-a323-57f6ce2ed79b/deploy-revision?revisionId=e0824883-3e86-403a-aec1-22bbc454eb7c"'
      x-contentType: application/json
      x-accepts: application/json
  /api-products/{apiProductId}/undeploy-revision:
    post:
      description: |
        UnDeploy an API Product Revision
      operationId: undeployAPIProductRevision
      parameters:
      - description: |
          **API Product ID** consisting of the **UUID** of the API Product. Using the **UUID** in the API call is recommended.
        explode: false
        in: path
        name: apiProductId
        required: true
        schema:
          type: string
          x-encoded: true
        style: simple
        x-encoded: true
      - description: |
          Revision ID of an API
        explode: true
        in: query
        name: revisionId
        required: false
        schema:
          type: string
        style: form
      - description: |
          Revision Number of an API
        explode: true
        in: query
        name: revisionNumber
        required: false
        schema:
          type: string
        style: form
      - explode: true
        in: query
        name: allEnvironments
        required: false
        schema:
          default: false
          type: boolean
        style: form
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: '#/components/schemas/APIRevisionDeployment'
              type: array
        description: Deployment object that needs to be added
      responses:
        "200":
          description: |
            OK.
        "201":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/APIRevisionDeployment'
                type: array
          description: |
            Created.
            Successful response with the newly undeployed APIRevisionDeploymentList object as the entity in the body.
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_publish
        - apim:api_manage
        - apim:api_product_import_export
      summary: UnDeploy Revision
      tags:
      - API Product Revisions
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/api-products/890a4f4d-09eb-4877-a323-57f6ce2ed79b/undeploy-revision?revisionId=e0824883-3e86-403a-aec1-22bbc454eb7c"'
      x-contentType: application/json
      x-accepts: application/json
  /api-products/{apiProductId}/restore-revision:
    post:
      description: |
        Restore a revision to the Current API of the API Product
      operationId: restoreAPIProductRevision
      parameters:
      - description: |
          **API Product ID** consisting of the **UUID** of the API Product. Using the **UUID** in the API call is recommended.
        explode: false
        in: path
        name: apiProductId
        required: true
        schema:
          type: string
          x-encoded: true
        style: simple
        x-encoded: true
      - description: |
          Revision ID of an API
        explode: true
        in: query
        name: revisionId
        required: false
        schema:
          type: string
        style: form
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIProduct'
          description: |
            Restored.
            Successful response with the newly restored API Product object as the entity in the body.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_publish
        - apim:api_manage
      summary: Restore Revision
      tags:
      - API Product Revisions
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/api-products/890a4f4d-09eb-4877-a323-57f6ce2ed79b/restore-revision?revisionId=e0824883-3e86-403a-aec1-22bbc454eb7c"'
      x-accepts: application/json
  /api-products/copy-api-products:
    post:
      description: |
        This operation can be used to create a new version of an existing API Products. The new version is specified as `newVersion` query parameter. New API Product will be in `CREATED` state.
      operationId: createNewAPIProductVersion
      parameters:
      - description: Version of the new API Product.
        explode: true
        in: query
        name: newVersion
        required: true
        schema:
          maxLength: 30
          type: string
        style: form
      - description: Specifies whether new API Product should be added as default
          version.
        explode: true
        in: query
        name: defaultVersion
        required: false
        schema:
          default: false
          type: boolean
        style: form
      - description: |
          **API Product ID** consisting of the **UUID** of the API Product.
          The combination of the provider, name and the version of the API Product is also accepted as a valid API Product ID.
          Should be formatted as **provider-name-version**.
        explode: true
        in: query
        name: apiProductId
        required: true
        schema:
          type: string
        style: form
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIProduct'
          description: |
            Created.
            Successful response with the newly created API Product as entity in the body. Location header contains URL of newly created API Product.
          headers:
            Location:
              description: |
                The URL of the newly created API Product.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_publish
        - apim:api_manage
      summary: Create a New API Product Version
      tags:
      - API Products
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/api-products/copy-api-products?newVersion=2.0&defaultVersion=false&apiproductId=2fd14eb8-b828-4013-b448-0739d2e76bf7"'
      x-accepts: application/json
  /api-products/export:
    get:
      description: |
        This operation can be used to export the details of a particular API Product as a zip file.
      operationId: exportAPIProduct
      parameters:
      - description: |
          API Product Name
        explode: true
        in: query
        name: name
        required: false
        schema:
          type: string
        style: form
      - description: |
          Version of the API Product
        explode: true
        in: query
        name: version
        required: false
        schema:
          type: string
        style: form
      - description: |
          Provider name of the API Product
        explode: true
        in: query
        name: providerName
        required: false
        schema:
          type: string
        style: form
      - description: |
          Revision number of the API Product
        explode: true
        in: query
        name: revisionNumber
        required: false
        schema:
          type: string
        style: form
      - description: |
          Format of output documents. Can be YAML or JSON.
        explode: true
        in: query
        name: format
        required: false
        schema:
          enum:
          - JSON
          - YAML
          type: string
        style: form
      - description: |
          Preserve API Product Status on export
        explode: true
        in: query
        name: preserveStatus
        required: false
        schema:
          type: boolean
        style: form
      - description: |
          Export the latest revision of the API Product
        explode: true
        in: query
        name: latestRevision
        required: false
        schema:
          default: false
          type: boolean
        style: form
      responses:
        "200":
          content:
            application/zip:
              schema:
                format: binary
                type: string
          description: |
            OK.
            Export Successful.
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_product_import_export
      summary: Export an API Product
      tags:
      - Import Export
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/api-products/export?name=LeasingAPIProduct&version=1.0.0&revisionNumber=2&provider=admin&format=YAML"
          > exportAPIProduct.zip'
      x-accepts: application/json
  /api-products/import:
    post:
      description: |
        This operation can be used to import an API Product.
      operationId: importAPIProduct
      parameters:
      - description: |
          Preserve Original Provider of the API Product. This is the user choice to keep or replace the API Product provider
        explode: true
        in: query
        name: preserveProvider
        required: false
        schema:
          type: boolean
        style: form
      - description: |
          Once the revision max limit reached, undeploy and delete the earliest revision and create a new revision
        explode: true
        in: query
        name: rotateRevision
        required: false
        schema:
          type: boolean
        style: form
      - description: |
          Whether to import the dependent APIs or not.
        explode: true
        in: query
        name: importAPIs
        required: false
        schema:
          type: boolean
        style: form
      - description: |
          Whether to update the API Product or not. This is used when updating already existing API Products.
        explode: true
        in: query
        name: overwriteAPIProduct
        required: false
        schema:
          type: boolean
        style: form
      - description: |
          Whether to update the dependent APIs or not. This is used when updating already existing dependent APIs of an API Product.
        explode: true
        in: query
        name: overwriteAPIs
        required: false
        schema:
          type: boolean
        style: form
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                file:
                  description: |
                    Zip archive consisting on exported API Product configuration
                  format: binary
                  type: string
              required:
              - file
      responses:
        "200":
          content: {}
          description: |
            Created.
            API Product Imported Successfully.
        "403":
          content:
            application/json:
              example:
                code: 403
                message: Forbidden
                description: The request must be conditional but no condition has
                  been specified
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden. The request must be conditional but no condition
            has been specified.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "409":
          content:
            application/json:
              example:
                code: 409
                message: Conflict
                description: Specified resource already exists
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Conflict. Specified resource already exists.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_product_import_export
      summary: Import an API Product
      tags:
      - Import Export
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -F file=@admin-PizzaShackAPIProduct.zip "https://127.0.0.1:9443/api/am/admin/v4/api-products/importt?preserveProvider=false&overwriteAPIProduct=false&overwriteAPIs=false&importAPIs=false"'
      x-contentType: multipart/form-data
      x-accepts: application/json
  /roles/{roleId}:
    head:
      description: |
        Using this operation, user can check a given role name exists or not.
      operationId: validateSystemRole
      parameters:
      - description: |
          The Base 64 URL encoded role name with domain. If the given role is in secondary user-store, role ID should be
          derived as Base64URLEncode({user-store-name}/{role-name}). If the given role is in PRIMARY user-store, role ID
          can be derived as Base64URLEncode(role-name)
        explode: false
        in: path
        name: roleId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content: {}
          description: OK. Requested role name exists.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_publish
        - apim:api_manage
      summary: Check Whether Given Role Name already Exist
      tags:
      - Roles
      x-code-samples:
      - lang: Curl
        source: 'curl -k -I -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/roles/SW50ZXJuYWwvcHVibGlzaGVyCQ"'
      x-accepts: application/json
  /me/roles/{roleId}:
    head:
      description: |
        Using this operation, logged-in user can check whether he has given role.
      operationId: validateUserRole
      parameters:
      - description: |
          The Base 64 URL encoded role name with domain. If the given role is in secondary user-store, role ID should be
          derived as Base64URLEncode({user-store-name}/{role-name}). If the given role is in PRIMARY user-store, role ID
          can be derived as Base64URLEncode(role-name)
        explode: false
        in: path
        name: roleId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content: {}
          description: OK. Requested user has the role.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
      summary: Validate Whether the Logged-in User has the Given Role
      tags:
      - Roles
      x-code-samples:
      - lang: Curl
        source: 'curl -k -I -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/me/roles/SW50ZXJuYWwvcHVibGlzaGVyCQ"'
      x-accepts: application/json
  /external-stores:
    get:
      description: |
        Retrieve external stores list configured to publish an API
      operationId: getAllExternalStores
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalStore'
          description: |
            OK.
            External Stores list returned
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
      summary: Retrieve External Stores List to Publish an API
      tags:
      - External Stores
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/external-stores"'
      x-accepts: application/json
  /settings:
    get:
      description: |
        Retreive publisher settings
      operationId: getSettings
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Settings'
          description: |
            OK.
            Settings returned
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:publisher_settings
      summary: Retreive Publisher Settings
      tags:
      - Settings
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/settings"'
      x-accepts: application/json
  /linter-custom-rules:
    get:
      description: |
        This operation can be used to get linter custom rules from tenant-config.
      operationId: getLinterCustomRules
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: |
            OK.
            Linter Custom Rules Retrieved Successfully.
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "403":
          content:
            application/json:
              example:
                code: 403
                message: Forbidden
                description: The request must be conditional but no condition has
                  been specified
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden. The request must be conditional but no condition
            has been specified.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_view
      summary: Get linter custom rules.
      tags:
      - Linter Custom Rules
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/linter-custom-rules"'
      x-accepts: application/json
  /tenants:
    get:
      description: |
        This operation is to get tenants by state
      operationId: getTenantsByState
      parameters:
      - description: |
          The state represents the current state of the tenant

          Supported states are [active, inactive]
        explode: true
        in: query
        name: state
        required: false
        schema:
          default: active
          enum:
          - active
          - inactive
          type: string
        style: form
      - description: |
          Maximum size of resource array to return.
        explode: true
        in: query
        name: limit
        required: false
        schema:
          default: 25
          type: integer
        style: form
      - description: |
          Starting point within the complete list of items qualified.
        explode: true
        in: query
        name: offset
        required: false
        schema:
          default: 0
          type: integer
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TenantList'
          description: |
            OK.
            Tenant names returned.
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
      summary: |
        Get Tenants by State
      tags:
      - Tenants
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/tenants?state=active"'
      x-accepts: application/json
  /tenants/{tenantDomain}:
    head:
      description: |
        Using this operation, user can check whether a given tenant exists or not.
      operationId: getTenantExistence
      parameters:
      - description: |
          The domain of a specific tenant
        explode: false
        in: path
        name: tenantDomain
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content: {}
          description: OK. Requested tenant exists.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
      summary: Check Whether the Given Tenant already Exists
      tags:
      - Tenants
      x-code-samples:
      - lang: Curl
        source: 'curl -k -I -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/tenants/wso2.com"'
      x-examples:
        $ref: docs/examples/tenants/tenants.yaml
      x-accepts: application/json
  /api-categories:
    get:
      description: |
        Get all API categories
      operationId: getAllAPICategories
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APICategoryList'
          description: |
            OK.
            Categories returned
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
      summary: Get all API categories
      tags:
      - API Category (Collection)
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/api-categories"'
      x-accepts: application/json
  /scopes:
    get:
      description: |
        This operation can be used to get all the available Shared Scopes.
      operationId: getSharedScopes
      parameters:
      - description: |
          Maximum size of resource array to return.
        explode: true
        in: query
        name: limit
        required: false
        schema:
          default: 25
          type: integer
        style: form
      - description: |
          Starting point within the complete list of items qualified.
        explode: true
        in: query
        name: offset
        required: false
        schema:
          default: 0
          type: integer
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScopeList'
          description: |
            OK.
            Shared Scope list is returned.
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:shared_scope_manage
      summary: Get All Available Shared Scopes
      tags:
      - Scopes
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/scopes"'
      x-accepts: application/json
    post:
      description: |
        This operation can be used to add a new Shared Scope.
      operationId: addSharedScope
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Scope'
        description: Scope object that needs to be added
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Scope'
          description: |
            Created.
            Successful response with the newly created Scope object as an entity in the body.
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "415":
          content:
            application/json:
              example:
                code: 415
                message: Unsupported media type
                description: The entity of the request was not in a supported format
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Unsupported Media Type. The entity of the request was not in
            a supported format.
      security:
      - OAuth2Security:
        - apim:shared_scope_manage
      summary: Add a New Shared Scope
      tags:
      - Scopes
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -H "Content-Type: application/json" -d @data.json "https://127.0.0.1:9443/api/am/publisher/v4/scopes"'
      x-contentType: application/json
      x-accepts: application/json
  /scopes/{scopeId}:
    delete:
      description: |
        This operation can be used to delete a Shared Scope proving the Id of the scope.
      operationId: deleteSharedScope
      parameters:
      - description: |
          Scope Id consisting the UUID of the shared scope
        explode: false
        in: path
        name: scopeId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content: {}
          description: |
            OK.
            Resource successfully deleted.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:shared_scope_manage
      summary: Delete a Shared Scope
      tags:
      - Scopes
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X DELETE -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/scopes/01234567-0123-0123-0123-012345678901"'
      x-accepts: application/json
    get:
      description: |
        This operation can be used to retrieve details of a Shared Scope by a given scope Id.
      operationId: getSharedScope
      parameters:
      - description: |
          Scope Id consisting the UUID of the shared scope
        explode: false
        in: path
        name: scopeId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Scope'
          description: |
            OK.
            Requested Shared Scope is returned.
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:shared_scope_manage
      summary: Get a Shared Scope by Scope Id
      tags:
      - Scopes
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/scopes/01234567-0123-0123-0123-012345678901"'
      x-accepts: application/json
    head:
      description: |
        Using this operation, user can check a given scope name exists or not.
      operationId: validateScope
      parameters:
      - description: |
          Scope name
        explode: false
        in: path
        name: scopeId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content: {}
          description: OK. Requested scope name exists.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_publish
        - apim:api_manage
        - apim:shared_scope_manage
      summary: Check Given Scope Name already Exists
      tags:
      - Scopes
      x-code-samples:
      - lang: Curl
        source: 'curl -k -I -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/scopes/YXBpbTphcGlfdmlldw"'
      x-accepts: application/json
    put:
      description: |
        This operation can be used to update a Shared Scope by a given scope Id.
      operationId: updateSharedScope
      parameters:
      - description: |
          Scope Id consisting the UUID of the shared scope
        explode: false
        in: path
        name: scopeId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Scope'
        description: Scope object that needs to be updated
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Scope'
          description: |
            OK.
            Successful response with updated Scope object
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:shared_scope_manage
      summary: Update a Shared Scope
      tags:
      - Scopes
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X PUT -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -H "Content-Type: application/json" -d @data.json "https://127.0.0.1:9443/api/am/publisher/v4/scopes/01234567-0123-0123-0123-012345678901"'
      x-contentType: application/json
      x-accepts: application/json
  /scopes/{scopeId}/usage:
    get:
      description: |
        This operation can be used to retrieve usages of a Shared Scope by a given scope Id.
      operationId: getSharedScopeUsages
      parameters:
      - description: |
          Scope Id consisting the UUID of the shared scope
        explode: false
        in: path
        name: scopeId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SharedScopeUsage'
          description: |
            OK.
            Usages of the shared scope is returned.
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
        - apim:shared_scope_manage
      summary: Get usages of a Shared Scope by Scope Id
      tags:
      - Scopes
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/scopes/01234567-0123-0123-0123-012345678901/usage"'
      x-accepts: application/json
  /key-managers:
    get:
      description: |
        Get all Key managers
      operationId: getAllKeyManagers
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KeyManagerList'
          description: |
            OK.
            Categories returned
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_create
        - apim:api_manage
      summary: Get All Key Managers
      tags:
      - Key Managers (Collection)
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/key-managers"'
      x-accepts: application/json
  /apis/validate-asyncapi:
    post:
      description: This operation can be used to validate and AsyncAPI Specification
        and retrieve a summary. Provide either 'url' or 'file' to specify the definition.
      operationId: validateAsyncAPISpecification
      parameters:
      - description: Specify whether to return the full content of the AsyncAPI specification
          in the response. This is only applicable when using url based validation
        explode: true
        in: query
        name: returnContent
        required: false
        schema:
          default: false
          type: boolean
        style: form
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                url:
                  description: AsyncAPI definition url
                  type: string
                file:
                  description: AsyncAPI definition as a file
                  format: binary
                  type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncAPISpecificationValidationResponse'
          description: OK. API definition validation information is returned
          headers:
            Content-Type:
              description: The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
      summary: Validate an AsyncAPI Specification
      tags:
      - Validation
      x-contentType: multipart/form-data
      x-accepts: application/json
  /apis/import-asyncapi:
    post:
      description: |-
        This operation can be used to create and API from the AsyncAPI Specification. Provide either 'url' or 'file' to specify the definition.
        Specify additionalProperties with **at least** API's name, version, context and endpointConfig.
      operationId: importAsyncAPISpecification
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                file:
                  description: Definition to upload as a file
                  format: binary
                  type: string
                url:
                  description: Definition url
                  type: string
                additionalProperties:
                  description: Additional attributes specified as a stringified JSON
                    with API's schema
                  type: string
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/API'
          description: Created. Successful response with the newly created object
            as entity in the body. Location header contains URL of newly created entity.
          headers:
            Etag:
              description: Entity Tag of the respons resource. Used by caches, or
                in conditional requests (Will be supported in the future).
              explode: false
              schema:
                type: string
              style: simple
            Location:
              description: The URL of the newly created resource.
              explode: false
              schema:
                type: string
              style: simple
            Content-type:
              description: The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "415":
          content:
            application/json:
              example:
                code: 415
                message: Unsupported media type
                description: The entity of the request was not in a supported format
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Unsupported Media Type. The entity of the request was not in
            a supported format.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
      summary: import an AsyncAPI Specification
      tags:
      - APIs
      x-contentType: multipart/form-data
      x-accepts: application/json
  /apis/{apiId}/asyncapi:
    get:
      description: |
        This operation can be used to retrieve the AsyncAPI definition of an API.
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: |
            OK.
            Requested AsyncAPI definition of the API is returned
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Willl= be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has beed modified the last time.
                Used by caches, or in conditional request (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "304":
          content: {}
          description: |
            Not Modified.
            Empty body because the client has already the latest version of the requested resource (Will be supported in future).
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
        - apim:api_definition_view
      summary: Get AsyncAPI definition
      tags:
      - APIs
      x-accepts: application/json
    put:
      description: |
        This operation can be used to update the AsyncAPI definition of an existing API. AsyncAPI definition to be updated is passed as a form data parameter 'apiDefinition'.
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Validator for conditional requests; based on ETag.
        explode: false
        in: header
        name: If-Match
        required: false
        schema:
          type: string
        style: simple
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                apiDefinition:
                  description: AsyncAPI definition of the API
                  type: string
                url:
                  description: AsyncAPI definition URL of the API
                  type: string
                file:
                  description: AsyncAPI definition as a file
                  format: binary
                  type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: |
            OK.
            Successful response with updated AsyncAPI definition
          headers:
            ETag:
              description: |
                Entity Tag of the response resource. Used by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Last-Modified:
              description: |
                Date and time the resource has beed modified the last time.
                Use =d by caches, or in conditional requests (Will be supported in future).
              explode: false
              schema:
                type: string
              style: simple
            Location:
              description: |
                The URL of the newly created resource.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "403":
          content:
            application/json:
              example:
                code: 403
                message: Forbidden
                description: The request must be conditional but no condition has
                  been specified
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden. The request must be conditional but no condition
            has been specified.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "412":
          content:
            application/json:
              example:
                code: 412
                message: Precondition Failed
                description: The request has not been performed because one of the
                  preconditions is not met
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Precondition Failed. The request has not been performed because
            one of the preconditions is not met.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
      summary: Update AsyncAPI definition
      tags:
      - APIs
      x-contentType: multipart/form-data
      x-accepts: application/json
  /apis/{apiId}/environments/{envId}/keys:
    get:
      description: |
        This operation can be used to retrieve environment specific API properties from an existing API.
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          **Env ID** consisting of the **UUID** of the gateway environment.
        explode: false
        in: path
        name: envId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvironmentProperties'
          description: |
            OK.
            Successful response with environment specific API properties
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "403":
          content:
            application/json:
              example:
                code: 403
                message: Forbidden
                description: The request must be conditional but no condition has
                  been specified
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden. The request must be conditional but no condition
            has been specified.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
      summary: get environment specific API properties
      tags:
      - APIs
      x-accepts: application/json
    put:
      description: |
        This operation can be used to update the environment specific API properties of an existing API.
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          **Env ID** consisting of the **UUID** of the gateway environment.
        explode: false
        in: path
        name: envId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnvironmentProperties'
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvironmentProperties'
          description: |
            OK.
            Successful response with environment specific API properties
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "403":
          content:
            application/json:
              example:
                code: 403
                message: Forbidden
                description: The request must be conditional but no condition has
                  been specified
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden. The request must be conditional but no condition
            has been specified.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:api_create
        - apim:api_manage
      summary: Update environment specific API properties
      tags:
      - APIs
      x-contentType: application/json
      x-accepts: application/json
  /apis/{apiId}/operation-policies:
    get:
      description: |
        This operation provides you a list of all applicabale operation policies for an API
      operationId: getAllAPISpecificOperationPolicies
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Maximum size of resource array to return.
        explode: true
        in: query
        name: limit
        required: false
        schema:
          default: 25
          type: integer
        style: form
      - description: |
          Starting point within the complete list of items qualified.
        explode: true
        in: query
        name: offset
        required: false
        schema:
          default: 0
          type: integer
        style: form
      - description: -Not supported yet-
        explode: true
        in: query
        name: query
        required: false
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OperationPolicyDataList'
          description: |
            OK.
            List of qualifying policies is returned.
          headers:
            Content-Type:
              description: The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
        - apim:mediation_policy_view
        - apim:mediation_policy_manage
        - apim:api_mediation_policy_manage
      summary: |
        Get all API specific operation policies for an API
      tags:
      - API Operation Policies
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v2/apis/96077508-fd01-4fae-bc64-5de0e2baf43c/operation-policies"'
      x-accepts: application/json
    post:
      description: |
        This operation can be used to add an API specifc operation policy. This policy cannot be used in other APIs.
      operationId: addAPISpecificOperationPolicy
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                policySpecFile:
                  description: Policy specification to upload
                  format: binary
                  type: string
                synapsePolicyDefinitionFile:
                  description: Operation policy definition of synapse gateway to upload
                  format: binary
                  type: string
                ccPolicyDefinitionFile:
                  description: Operation policy definition of choreo connect to upload
                  format: binary
                  type: string
              required:
              - type
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OperationPolicyData'
          description: |
            OK.
            Operation policy uploaded
          headers:
            Location:
              description: |
                The URL of the uploaded operation policy of the API.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_manage
        - apim:mediation_policy_create
        - apim:mediation_policy_manage
        - apim:api_mediation_policy_manage
      summary: Add an API specific operation policy
      tags:
      - API Operation Policies
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -H "Content-Type: multipart/form-data" -F policySpecFile=@setHeader.yaml
          -F policyDefinitionFile=@setHeader.j2 "https://127.0.0.1:9443/api/am/publisher/v2/apis/96077508-fd01-4fae-bc64-5de0e2baf43c/operation-policies"'
      x-contentType: multipart/form-data
      x-accepts: application/json
  /apis/{apiId}/operation-policies/{operationPolicyId}:
    delete:
      description: |
        This operation can be used to delete an existing API specific opreation policy by providing the Id of the API and the Id of the policy.
      operationId: deleteAPISpecificOperationPolicyByPolicyId
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Operation policy Id
        explode: false
        in: path
        name: operationPolicyId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content: {}
          description: |
            OK.
            Resource successfully deleted.
        "403":
          content:
            application/json:
              example:
                code: 403
                message: Forbidden
                description: The request must be conditional but no condition has
                  been specified
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden. The request must be conditional but no condition
            has been specified.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_manage
        - apim:mediation_policy_create
        - apim:mediation_policy_manage
        - apim:api_mediation_policy_manage
      summary: Delete an API Specific Operation Policy
      tags:
      - API Operation Policies
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X DELETE -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v2/apis/96077508-fd01-4fae-bc64-5de0e2baf43c/operation-policies/f56eb8b4-128c-45aa-ad35-9c87a546261a"'
      x-accepts: application/json
    get:
      description: |
        This operation can be used to retrieve a particular API specific operation policy.
      operationId: getOperationPolicyForAPIByPolicyId
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Operation policy Id
        explode: false
        in: path
        name: operationPolicyId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OperationPolicyData'
          description: |
            OK.
            Operation policy returned.
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
        - apim:mediation_policy_view
        - apim:mediation_policy_manage
        - apim:api_mediation_policy_manage
      summary: Get policy details of an API specific policy
      tags:
      - API Operation Policies
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v2/apis/96077508-fd01-4fae-bc64-5de0e2baf43c/operation-policies/f56eb8b4-128c-45aa-ad35-9c87a546261a"'
      x-accepts: application/json
  /apis/{apiId}/operation-policies/{operationPolicyId}/content:
    get:
      description: |
        This operation can be used to download a particular API specific operation policy.
      operationId: getAPISpecificOperationPolicyContentByPolicyId
      parameters:
      - description: |
          **API ID** consisting of the **UUID** of the API.
        explode: false
        in: path
        name: apiId
        required: true
        schema:
          type: string
        style: simple
      - description: |
          Operation policy Id
        explode: false
        in: path
        name: operationPolicyId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/zip:
              schema:
                format: binary
                type: string
          description: |
            OK.
            Operation policy returned.
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_view
        - apim:api_manage
        - apim:mediation_policy_view
        - apim:mediation_policy_manage
        - apim:api_mediation_policy_manage
      summary: Download an API Specific Operation Policy
      tags:
      - API Operation Policies
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v2/apis/96077508-fd01-4fae-bc64-5de0e2baf43c/operation-policies/f56eb8b4-128c-45aa-ad35-9c87a546261a/content"'
      x-accepts: application/json
  /operation-policies:
    get:
      description: |
        This operation provides you a list of all common operation policies that can be used by any API
      operationId: getAllCommonOperationPolicies
      parameters:
      - description: |
          Maximum size of policy array to return.
        explode: true
        in: query
        name: limit
        required: false
        schema:
          type: integer
        style: form
      - description: |
          Starting point within the complete list of items qualified.
        explode: true
        in: query
        name: offset
        required: false
        schema:
          default: 0
          type: integer
        style: form
      - description: |
          **Search condition**.

          You can search in attributes by using an **"<attribute>:"** modifier.

          Eg.
          "name:addHeader" will match an API Policy if the provider of the API Policy contains "addHeader".
          "version:"v1"" will match an API Policy if the provider of the API Policy contains "v1".

          Also you can use combined modifiers
          Eg.
          name:addHeader&version:v1 will match an API Policy if the name of the API Policy is addHeader and version is v1.

          Supported attribute modifiers are [**version, name**]

          If query attributes are provided, this returns all API policies available under the given limit.

          Please note that you need to use encoded URL (URL encoding) if you are using a client which does not support URL encoding (such as curl)
        explode: true
        in: query
        name: query
        required: false
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OperationPolicyDataList'
          description: |
            OK.
            List of qualifying policies is returned.
          headers:
            Content-Type:
              description: The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:common_operation_policy_view
        - apim:common_operation_policy_manage
        - apim:policies_import_export
      summary: |
        Get all common operation policies to all the APIs
      tags:
      - Operation Policies
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v2/operation-policies"'
      x-accepts: application/json
    post:
      description: |
        This operation can be used to add a new common operation policy.
      operationId: addCommonOperationPolicy
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                policySpecFile:
                  description: Operation policy specification to upload
                  format: binary
                  type: string
                synapsePolicyDefinitionFile:
                  description: Operation policy definition of synapse gateway to upload
                  format: binary
                  type: string
                ccPolicyDefinitionFile:
                  description: Operation policy definition of choreo connect to upload
                  format: binary
                  type: string
              required:
              - type
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OperationPolicyData'
          description: |
            OK.
            Shared operation policy uploaded
          headers:
            Location:
              description: |
                The URL of the uploaded common operation policy of the API.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:common_operation_policy_manage
      summary: Add a new common operation policy
      tags:
      - Operation Policies
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -H "Content-Type: multipart/form-data" -F policySpecFile=@setHeader.yaml
          -F policyDefinitionFile=@setHeader.j2 "https://127.0.0.1:9443/api/am/publisher/v2/operation-policies"'
      x-contentType: multipart/form-data
      x-accepts: application/json
  /operation-policies/{operationPolicyId}:
    delete:
      description: |
        This operation can be used to delete an existing common opreation policy by providing the Id of the policy.
      operationId: deleteCommonOperationPolicyByPolicyId
      parameters:
      - description: |
          Operation policy Id
        explode: false
        in: path
        name: operationPolicyId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content: {}
          description: |
            OK.
            Resource successfully deleted.
        "403":
          content:
            application/json:
              example:
                code: 403
                message: Forbidden
                description: The request must be conditional but no condition has
                  been specified
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden. The request must be conditional but no condition
            has been specified.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:common_operation_policy_manage
        - apim:policies_import_export
      summary: Delete a common operation policy
      tags:
      - Operation Policies
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X DELETE -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v2/operation-policies/f56eb8b4-128c-45aa-ad35-9c87a546261a"'
      x-accepts: application/json
    get:
      description: |
        This operation can be used to retrieve a particular common operation policy.
      operationId: getCommonOperationPolicyByPolicyId
      parameters:
      - description: |
          Operation policy Id
        explode: false
        in: path
        name: operationPolicyId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OperationPolicyData'
          description: |
            OK.
            Operation policy returned.
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "406":
          content:
            application/json:
              example:
                code: 406
                message: Not Acceptable
                description: The requested media type is not supported
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Acceptable. The requested media type is not supported.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:common_operation_policy_view
        - apim:common_operation_policy_manage
        - apim:policies_import_export
      summary: Get the details of a common operation policy by providing policy ID
      tags:
      - Operation Policies
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v2/operation-policies/f56eb8b4-128c-45aa-ad35-9c87a546261a"'
      x-accepts: application/json
  /operation-policies/export:
    get:
      description: |
        This operation provides you to export a preferred common API policy
      operationId: exportOperationPolicy
      parameters:
      - description: Policy name
        explode: true
        in: query
        name: name
        required: false
        schema:
          type: string
        style: form
      - description: Version of the policy
        explode: true
        in: query
        name: version
        required: false
        schema:
          type: string
        style: form
      - description: Format of the policy definition file
        explode: true
        in: query
        name: format
        required: false
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/zip:
              schema:
                format: binary
                type: string
          description: |
            OK.
            Export Successful.
          headers:
            Content-Type:
              description: The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "403":
          content:
            application/json:
              example:
                code: 403
                message: Forbidden
                description: The request must be conditional but no condition has
                  been specified
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden. The request must be conditional but no condition
            has been specified.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
      security:
      - OAuth2Security:
        - apim:policies_import_export
      summary: |
        Export an API Policy by its name and version
      tags:
      - Import Export
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/operation-policies/export?name=addHeader&version=v1"
          > addHeader_v1.zip'
      x-accepts: application/json
  /operation-policies/import:
    post:
      description: |
        This operation can be used to import an API Policy.
      operationId: importOperationPolicy
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                file:
                  description: Zip archive consisting on exported policy configuration
                  format: binary
                  type: string
              required:
              - file
      responses:
        "200":
          description: |
            Created.
            Policy Imported Successfully.
        "403":
          content:
            application/json:
              example:
                code: 403
                message: Forbidden
                description: The request must be conditional but no condition has
                  been specified
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden. The request must be conditional but no condition
            has been specified.
        "409":
          content:
            application/json:
              example:
                code: 409
                message: Conflict
                description: Specified resource already exists
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Conflict. Specified resource already exists.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:policies_import_export
      summary: Import an API Policy
      tags:
      - Import Export
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -F file=add_header_v1.zip "https://127.0.0.1:9443/api/am/publisher/v4/operation-policies/import"'
      x-contentType: multipart/form-data
      x-accepts: application/json
  /operation-policies/{operationPolicyId}/content:
    get:
      description: |
        This operation can be used to download a selected common operation policy.
      operationId: getCommonOperationPolicyContentByPolicyId
      parameters:
      - description: |
          Operation policy Id
        explode: false
        in: path
        name: operationPolicyId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/zip:
              schema:
                format: binary
                type: string
          description: |
            OK.
            Operation policy returned.
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:common_operation_policy_view
        - apim:common_operation_policy_manage
      summary: Download a common operation policy
      tags:
      - Operation Policies
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v2/operation-policies/f56eb8b4-128c-45aa-ad35-9c87a546261a/content"'
      x-accepts: application/json
  /gateway-policies:
    get:
      description: |
        This operation provides you a list of all gateway policies mapping information.
      operationId: getAllGatewayPolicies
      parameters:
      - description: |
          Maximum size of policy array to return.
        explode: true
        in: query
        name: limit
        required: false
        schema:
          type: integer
        style: form
      - description: |
          Starting point within the complete list of items qualified.
        explode: true
        in: query
        name: offset
        required: false
        schema:
          default: 0
          type: integer
        style: form
      - description: |
          **Search condition**.

          You can search in attributes by using an **"gatewayLabel:"** modifier.

          Eg.
          The entry "gatewayLabel:gateway1" will result in a match with a Gateway Policy Mapping only if the policy mapping is deployed on "gateway1".

          If query attribute is provided, this returns the Gateway policy Mapping available under the given limit.

          Please note that you need to use encoded URL (URL encoding) if you are using a client which does not support URL encoding (such as curl)
        explode: true
        in: query
        name: query
        required: false
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayPolicyMappingDataList'
          description: |
            OK.
            List of gateway policies is returned.
          headers:
            Content-Type:
              description: The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:gateway_policy_view
        - apim:gateway_policy_manage
      summary: |
        Get all gateway policies mapping information
      tags:
      - Gateway Policies
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/gateway-policies"'
      x-accepts: application/json
    post:
      description: |
        This operation can be used to apply gateway policies to the request, response, fault flows.
      operationId: addGatewayPoliciesToFlows
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GatewayPolicyMappings'
        description: Policy details object that needs to be added.
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayPolicyMappingInfo'
          description: |
            OK.
            Policy mapping created successfully.
          headers:
            Location:
              description: |
                The URL of the created gateway policy mapping.
              explode: false
              schema:
                type: string
              style: simple
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:gateway_policy_manage
      summary: Engage gateway policies to the request, response, fault flows
      tags:
      - Gateway Policies
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -H "Content-Type: application/json" -d @data.json "https://127.0.0.1:9443/api/am/publisher/v4/gateway-policies"'
      x-contentType: application/json
      x-accepts: application/json
  /gateway-policies/{gatewayPolicyMappingId}:
    delete:
      description: |
        This operation can be used to delete an existing gateway policy mapping by providing the Id of the policy mapping.
      operationId: deleteGatewayPolicyByPolicyId
      parameters:
      - description: |
          Gateway policy mapping Id
        explode: false
        in: path
        name: gatewayPolicyMappingId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content: {}
          description: |
            OK.
            Resource successfully deleted.
        "403":
          content:
            application/json:
              example:
                code: 403
                message: Forbidden
                description: The request must be conditional but no condition has
                  been specified
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden. The request must be conditional but no condition
            has been specified.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "412":
          content:
            application/json:
              example:
                code: 412
                message: Precondition Failed
                description: The request has not been performed because one of the
                  preconditions is not met
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Precondition Failed. The request has not been performed because
            one of the preconditions is not met.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:gateway_policy_manage
      summary: Delete a gateway policy mapping
      tags:
      - Gateway Policies
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X DELETE -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/gateway-policies/f56eb8b4-128c-45aa-ad35-9c87a546261a"'
      x-accepts: application/json
    get:
      description: |
        This operation can be used to retrieve information of a selected gateway policy mapping.
      operationId: getGatewayPolicyMappingContentByPolicyMappingId
      parameters:
      - description: |
          Gateway policy mapping Id
        explode: false
        in: path
        name: gatewayPolicyMappingId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayPolicyMappings'
          description: |
            OK.
            Gateway policy mapping information returned.
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:gateway_policy_view
        - apim:gateway_policy_manage
      summary: Retrieve information of a selected gateway policy mapping
      tags:
      - Gateway Policies
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/gateway-policies/f56eb8b4-128c-45aa-ad35-9c87a546261a"'
      x-accepts: application/json
    put:
      description: |
        This operation can be used to update already added gateway policies to the request, response, fault flows.
      operationId: updateGatewayPoliciesToFlows
      parameters:
      - description: |
          Gateway policy mapping Id
        explode: false
        in: path
        name: gatewayPolicyMappingId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GatewayPolicyMappings'
        description: Policy details object that needs to be updated.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayPolicyMappings'
          description: |
            OK.
            Policy mapping updated successfully.
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:gateway_policy_manage
      summary: Update gateway policies added to the request, response, fault flows
      tags:
      - Gateway Policies
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X PUT -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -H "Content-Type: application/json" -d @data.json "https://127.0.0.1:9443/api/am/publisher/v4/gateway-policies/f56eb8b4-128c-45aa-ad35-9c87a546261a"'
      x-contentType: application/json
      x-accepts: application/json
  /gateway-policies/{gatewayPolicyMappingId}/deploy:
    post:
      description: |
        This operation can be used to engage gateway policy mapping to the gateway/s.
      operationId: engageGlobalPolicy
      parameters:
      - description: |
          Gateway policy mapping Id
        explode: false
        in: path
        name: gatewayPolicyMappingId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: '#/components/schemas/GatewayPolicyDeployment'
              type: array
        description: Policy details object that needs to be added.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/GatewayPolicyDeployment'
                type: array
          description: |
            OK.
            Gateway policy mapping engaged successfully.
          headers:
            Content-Type:
              description: |
                The content type of the body.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:gateway_policy_manage
      summary: Engage gateway policy mapping to the gateways
      tags:
      - Gateway Policies
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          -H "Content-Type: application/json" -d @data.json "https://127.0.0.1:9443/api/am/publisher/v4/gateway-policies/deploy"'
      x-contentType: application/json
      x-accepts: application/json
  /api-products/change-lifecycle:
    post:
      description: |
        This operation is used to change the lifecycle of an API Product.
        Eg: Publish an API Product which is in `CREATED` state. In order to change the lifecycle, we need to provide the
        lifecycle `action` as a query parameter.

        For example, to Publish an API Product, `action` should be `Publish`. Note that the `Re-publish` action is
        available only after calling `Block`.

        Some actions supports providing additional paramters which should be provided as `lifecycleChecklist` parameter.
        Please see parameters table for more information.
      operationId: changeAPIProductLifecycle
      parameters:
      - description: |
          The action to demote or promote the state of the API Product.

          Supported actions are [ **Publish**, **Deploy as a Prototype**, **Demote to Created**, **Block**, **Deprecate**, **Re-Publish**, **Retire** ]
        explode: true
        in: query
        name: action
        required: true
        schema:
          enum:
          - Publish
          - Deploy as a Prototype
          - Demote to Created
          - Block
          - Deprecate
          - Re-Publish
          - Retire
          type: string
        style: form
      - description: |
          Supported checklist items are as follows.
          1. **Deprecate old versions after publishing the API**: Setting this to true will deprecate older versions of a particular API Product when it is promoted to Published state from Created state.
          2. **Requires re-subscription when publishing the API**: If you set this to true, users need to re subscribe to the API Products although they may have subscribed to an older version.
          You can specify additional checklist items by using an **"attribute:"** modifier.
          Eg: "Deprecate old versions after publishing the API:true" will deprecate older versions of a particular API Product when it is promoted to Published state from Created state. Multiple checklist items can be given in "attribute1:true, attribute2:false" format.
          **Sample CURL :**  curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8" -X POST "https://localhost:9443/api/am/publisher/v4/api-products/change-lifecycle?apiId=890a4f4d-09eb-4877-a323-57f6ce2ed79b&action=Publish&lifecycleChecklist=Deprecate%20old%20versions%20after%20publishing%20the%20API%3Atrue,Requires%20re-subscription%20when%20publishing%20the%20API%3Afalse"
        explode: true
        in: query
        name: lifecycleChecklist
        required: false
        schema:
          type: string
        style: form
      - description: |
          **API Product ID** consisting of the **UUID** of the API Product.
          The combination of the provider, name and the version of the API Product is also accepted as a valid API Product ID.
          Should be formatted as **provider-name-version**.
        explode: true
        in: query
        name: apiProductId
        required: true
        schema:
          type: string
        style: form
      - description: |
          Validator for conditional requests; based on ETag.
        explode: false
        in: header
        name: If-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowResponse'
          description: |
            OK.
            Lifecycle changed successfully.
        "400":
          content:
            application/json:
              example:
                code: 400
                message: Bad Request
                description: Invalid request or validation error
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request. Invalid request or validation error.
        "401":
          content:
            application/json:
              example:
                code: 401
                message: Unauthorized
                description: The user is not authorized
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Unauthorized. The user is not authorized.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "409":
          content:
            application/json:
              example:
                code: 409
                message: Conflict
                description: Specified resource already exists
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Conflict. Specified resource already exists.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_publish
        - apim:api_manage
        - apim:api_product_import_export
      summary: Change API Product LC Status
      tags:
      - API Product Lifecycle
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X POST -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/api-products/change-lifecycle?apiId=890a4f4d-09eb-4877-a323-57f6ce2ed79b&action=Publish"'
      x-accepts: application/json
  /api-products/{apiProductId}/lifecycle-history:
    get:
      description: |
        This operation can be used to retrieve Lifecycle state change history of the API Products.
      operationId: getAPIProductLifecycleHistory
      parameters:
      - description: |
          **API Product ID** consisting of the **UUID** of the API Product. Using the **UUID** in the API call is recommended.
        explode: false
        in: path
        name: apiProductId
        required: true
        schema:
          type: string
          x-encoded: true
        style: simple
        x-encoded: true
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LifecycleHistory'
          description: |
            OK.
            Lifecycle state change history returned successfully.
        "401":
          content:
            application/json:
              example:
                code: 401
                message: Unauthorized
                description: The user is not authorized
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Unauthorized. The user is not authorized.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_publish
        - apim:api_manage
      summary: Get Lifecycle State Change History of the API Products.
      tags:
      - API Product Lifecycle
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/api-products/890a4f4d-09eb-4877-a323-57f6ce2ed79b/lifecycle-history"'
      x-accepts: application/json
  /api-products/{apiProductId}/lifecycle-state:
    get:
      description: |
        This operation can be used to retrieve Lifecycle state data of the API Product.
      operationId: getAPIProductLifecycleState
      parameters:
      - description: |
          **API Product ID** consisting of the **UUID** of the API Product. Using the **UUID** in the API call is recommended.
        explode: false
        in: path
        name: apiProductId
        required: true
        schema:
          type: string
          x-encoded: true
        style: simple
        x-encoded: true
      - description: |
          Validator for conditional requests; based on the ETag of the formerly retrieved
          variant of the resource.
        explode: false
        in: header
        name: If-None-Match
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LifecycleState'
          description: |
            OK.
            Lifecycle state data returned successfully.
        "401":
          content:
            application/json:
              example:
                code: 401
                message: Unauthorized
                description: The user is not authorized
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Unauthorized. The user is not authorized.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_publish
        - apim:api_create
        - apim:api_manage
      summary: Get Lifecycle State Data of the API Product.
      tags:
      - API Product Lifecycle
      x-code-samples:
      - lang: Curl
        source: 'curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/api-products/890a4f4d-09eb-4877-a323-57f6ce2ed79b/lifecycle-state"'
      x-accepts: application/json
  /api-products/{apiProductId}/lifecycle-state/pending-tasks:
    delete:
      description: |
        This operation can be used to remove pending lifecycle state change requests that are in pending state
      operationId: deleteAPIProductLifecycleStatePendingTasks
      parameters:
      - description: |
          **API Product ID** consisting of the **UUID** of the API Product. Using the **UUID** in the API call is recommended.
        explode: false
        in: path
        name: apiProductId
        required: true
        schema:
          type: string
          x-encoded: true
        style: simple
        x-encoded: true
      responses:
        "200":
          content: {}
          description: |
            OK.
            Lifecycle state change pending task removed successfully.
        "401":
          content:
            application/json:
              example:
                code: 401
                message: Unauthorized
                description: The user is not authorized
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Unauthorized. The user is not authorized.
        "404":
          content:
            application/json:
              example:
                code: 404
                message: Not Found
                description: The specified resource does not exist
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found. The specified resource does not exist.
        "500":
          content:
            application/json:
              example:
                code: 500
                message: Internal Server Error
                description: The server encountered an internal error. Please contact
                  administrator.
                moreInfo: ""
                error: []
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error.
      security:
      - OAuth2Security:
        - apim:api_publish
        - apim:api_manage
      summary: Delete Pending Lifecycle State Change Tasks
      tags:
      - API Product Lifecycle
      x-code-samples:
      - lang: Curl
        source: 'curl -k -X DELETE -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8"
          "https://127.0.0.1:9443/api/am/publisher/v4/api-products/890a4f4d-09eb-4877-a323-57f6ce2ed79b/lifecycle-state/pending-tasks"'
      x-accepts: application/json
components:
  parameters:
    replyLimit:
      description: |
        Maximum size of replies array to return.
      explode: true
      in: query
      name: replyLimit
      required: false
      schema:
        default: 25
        type: integer
      style: form
    replyOffset:
      description: |
        Starting point within the complete list of replies.
      explode: true
      in: query
      name: replyOffset
      required: false
      schema:
        default: 0
        type: integer
      style: form
    commentId:
      description: |
        Comment Id
      explode: false
      in: path
      name: commentId
      required: true
      schema:
        type: string
      style: simple
    parentCommentID:
      description: |
        ID of the perent comment.
      explode: true
      in: query
      name: replyTo
      required: false
      schema:
        type: string
      style: form
    includeCommenterInfo:
      description: |
        Whether we need to display commentor details.
      explode: true
      in: query
      name: includeCommenterInfo
      required: false
      schema:
        default: false
        type: boolean
      style: form
    apiId:
      description: |
        **API ID** consisting of the **UUID** of the API.
      explode: false
      in: path
      name: apiId
      required: true
      schema:
        type: string
      style: simple
    endpointId:
      description: |
        **Endpoint ID** consisting of the **UUID** of the Endpoint**.
      explode: false
      in: path
      name: endpointId
      required: true
      schema:
        type: string
      style: simple
    apiId-Q:
      description: |
        **API ID** consisting of the **UUID** of the API.
        The combination of the provider of the API, name of the API and the version is also accepted as a valid API I.
        Should be formatted as **provider-name-version**.
      explode: true
      in: query
      name: apiId
      required: true
      schema:
        type: string
      style: form
    apiId-Q-Opt:
      description: |
        **API ID** consisting of the **UUID** of the API.
        The combination of the provider of the API, name of the API and the version is also accepted as a valid API I.
        Should be formatted as **provider-name-version**.
      explode: true
      in: query
      name: apiId
      required: false
      schema:
        type: string
      style: form
    labelType-Q:
      description: |
        **API ID** consisting of the **UUID** of the API.
        The combination of the provider of the API, name of the API and the version is also accepted as a valid API I.
        Should be formatted as **provider-name-version**.
      explode: true
      in: query
      name: labelType
      required: false
      schema:
        type: string
      style: form
    name:
      description: |
        Name of the API
      explode: false
      in: path
      name: name
      required: true
      schema:
        type: string
      style: simple
    version:
      description: |
        Version of the API
      explode: false
      in: path
      name: version
      required: true
      schema:
        type: string
      style: simple
    apiName-Q:
      description: |
        Name of the API
      explode: true
      in: query
      name: name
      required: false
      schema:
        type: string
      style: form
    apiVersion-Q:
      description: |
        Version of the API
      explode: true
      in: query
      name: version
      required: false
      schema:
        type: string
      style: form
    apiProvider-Q:
      description: |
        Provider name of the API
      explode: true
      in: query
      name: providerName
      required: false
      schema:
        type: string
      style: form
    documentId:
      description: |
        Document Identifier
      explode: false
      in: path
      name: documentId
      required: true
      schema:
        type: string
      style: simple
    applicationId:
      description: |
        **Application Identifier** consisting of the UUID of the Application.
      explode: false
      in: path
      name: applicationId
      required: true
      schema:
        type: string
      style: simple
    subscriptionId:
      description: |
        Subscription Id
      explode: false
      in: path
      name: subscriptionId
      required: true
      schema:
        type: string
      style: simple
    resourcePolicyId:
      description: |
        registry resource Id
      explode: false
      in: path
      name: resourcePolicyId
      required: true
      schema:
        type: string
      style: simple
    subscriptionId-Q:
      description: |
        Subscription Id
      explode: true
      in: query
      name: subscriptionId
      required: true
      schema:
        type: string
      style: form
    operationPolicyId:
      description: |
        Operation policy Id
      explode: false
      in: path
      name: operationPolicyId
      required: true
      schema:
        type: string
      style: simple
    gatewayPolicyMappingId:
      description: |
        Gateway policy mapping Id
      explode: false
      in: path
      name: gatewayPolicyMappingId
      required: true
      schema:
        type: string
      style: simple
    revisionId:
      description: |
        Revision ID of an API
      explode: false
      in: path
      name: revisionId
      required: true
      schema:
        type: string
      style: simple
    envName:
      description: |
        Environment name of an Revision
      explode: false
      in: path
      name: envName
      required: true
      schema:
        type: string
      style: simple
    revisionId-Q:
      description: |
        Revision ID of an API
      explode: true
      in: query
      name: revisionId
      required: false
      schema:
        type: string
      style: form
    revisionNum-Q:
      description: |
        Revision Number of an API
      explode: true
      in: query
      name: revisionNumber
      required: false
      schema:
        type: string
      style: form
    deploymentId:
      description: |
        Base64 URL encoded value of the name of an environment
      explode: false
      in: path
      name: deploymentId
      required: true
      schema:
        type: string
      style: simple
    policyName:
      description: |
        Tier name
      explode: false
      in: path
      name: policyName
      required: true
      schema:
        type: string
      style: simple
    policyName-Q:
      description: |
        Name of the policy
      explode: true
      in: query
      name: policyName
      required: true
      schema:
        type: string
      style: form
    policyLevel:
      description: |
        List API or Application or Resource type policies.
      explode: false
      in: path
      name: policyLevel
      required: true
      schema:
        enum:
        - api
        - subcription
        type: string
      style: simple
    policyLevel-Q:
      description: |
        List API or Application or Resource type policies.
      explode: true
      in: query
      name: policyLevel
      required: true
      schema:
        enum:
        - api
        - subcription
        type: string
      style: form
    limit:
      description: |
        Maximum size of resource array to return.
      explode: true
      in: query
      name: limit
      required: false
      schema:
        default: 25
        type: integer
      style: form
    policyLimit:
      description: |
        Maximum size of policy array to return.
      explode: true
      in: query
      name: limit
      required: false
      schema:
        type: integer
      style: form
    Accept:
      description: |
        Media types acceptable for the response. Default is application/json.
      explode: false
      in: header
      name: Accept
      required: false
      schema:
        default: application/json
        type: string
      style: simple
    offset:
      description: |
        Starting point within the complete list of items qualified.
      explode: true
      in: query
      name: offset
      required: false
      schema:
        default: 0
        type: integer
      style: form
    sortBy:
      description: |
        Criteria for sorting.
      explode: true
      in: query
      name: sortBy
      required: false
      schema:
        default: createdTime
        enum:
        - apiName
        - version
        - createdTime
        - status
        type: string
      style: form
    sortOrder:
      description: |
        Order of sorting(ascending/descending).
      explode: true
      in: query
      name: sortOrder
      required: false
      schema:
        default: desc
        enum:
        - asc
        - desc
        type: string
      style: form
    If-None-Match:
      description: |
        Validator for conditional requests; based on the ETag of the formerly retrieved
        variant of the resource.
      explode: false
      in: header
      name: If-None-Match
      required: false
      schema:
        type: string
      style: simple
    If-Match:
      description: |
        Validator for conditional requests; based on ETag.
      explode: false
      in: header
      name: If-Match
      required: false
      schema:
        type: string
      style: simple
    scopeName:
      description: |
        Scope name
      explode: false
      in: path
      name: scopeId
      required: true
      schema:
        type: string
      style: simple
    scopeId:
      description: |
        Scope Id consisting the UUID of the shared scope
      explode: false
      in: path
      name: scopeId
      required: true
      schema:
        type: string
      style: simple
    threatProtectionPolicyId:
      description: |
        The UUID of a Policy
      explode: false
      in: path
      name: policyId
      required: true
      schema:
        type: string
      style: simple
    roleId:
      description: |
        The Base 64 URL encoded role name with domain. If the given role is in secondary user-store, role ID should be
        derived as Base64URLEncode({user-store-name}/{role-name}). If the given role is in PRIMARY user-store, role ID
        can be derived as Base64URLEncode(role-name)
      explode: false
      in: path
      name: roleId
      required: true
      schema:
        type: string
      style: simple
    requestedTenant:
      description: |
        For cross-tenant invocations, this is used to specify the tenant domain, where the resource need to be
          retirieved from.
      explode: false
      in: header
      name: X-WSO2-Tenant
      required: false
      schema:
        type: string
      style: simple
    apiProductId:
      description: |
        **API Product ID** consisting of the **UUID** of the API Product. Using the **UUID** in the API call is recommended.
      explode: false
      in: path
      name: apiProductId
      required: true
      schema:
        type: string
        x-encoded: true
      style: simple
      x-encoded: true
    tenantDomain:
      description: |
        The domain of a specific tenant
      explode: false
      in: path
      name: tenantDomain
      required: true
      schema:
        type: string
      style: simple
    alertType:
      description: The alert type.
      explode: false
      in: path
      name: alertType
      required: true
      schema:
        type: string
      style: simple
    configurationId:
      description: The alert configuration id.
      explode: false
      in: path
      name: configurationId
      required: true
      schema:
        type: string
      style: simple
    tierQuotaType:
      description: Filter the subscription base on tier quota type
      explode: true
      in: query
      name: tierQuotaType
      required: false
      schema:
        type: string
      style: form
    envId:
      description: |
        **Env ID** consisting of the **UUID** of the gateway environment.
      explode: false
      in: path
      name: envId
      required: true
      schema:
        type: string
      style: simple
    apiProductId-Q:
      description: |
        **API Product ID** consisting of the **UUID** of the API Product.
        The combination of the provider, name and the version of the API Product is also accepted as a valid API Product ID.
        Should be formatted as **provider-name-version**.
      explode: true
      in: query
      name: apiProductId
      required: true
      schema:
        type: string
      style: form
  requestBodies:
    threatProtectionPolicy:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ThreatProtectionPolicy'
      description: |
        Threat protection policy request parameter
      required: true
    Post_request_body:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Post_request_body'
      required: true
    Patch_request_body:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Patch_request_body'
      required: true
  responses:
    BadRequest:
      content:
        application/json:
          example:
            code: 400
            message: Bad Request
            description: Invalid request or validation error
            moreInfo: ""
            error: []
          schema:
            $ref: '#/components/schemas/Error'
      description: Bad Request. Invalid request or validation error.
    Conflict:
      content:
        application/json:
          example:
            code: 409
            message: Conflict
            description: Specified resource already exists
            moreInfo: ""
            error: []
          schema:
            $ref: '#/components/schemas/Error'
      description: Conflict. Specified resource already exists.
    Forbidden:
      content:
        application/json:
          example:
            code: 403
            message: Forbidden
            description: The request must be conditional but no condition has been
              specified
            moreInfo: ""
            error: []
          schema:
            $ref: '#/components/schemas/Error'
      description: Forbidden. The request must be conditional but no condition has
        been specified.
    InternalServerError:
      content:
        application/json:
          example:
            code: 500
            message: Internal Server Error
            description: The server encountered an internal error. Please contact
              administrator.
            moreInfo: ""
            error: []
          schema:
            $ref: '#/components/schemas/Error'
      description: Internal Server Error.
    NotAcceptable:
      content:
        application/json:
          example:
            code: 406
            message: Not Acceptable
            description: The requested media type is not supported
            moreInfo: ""
            error: []
          schema:
            $ref: '#/components/schemas/Error'
      description: Not Acceptable. The requested media type is not supported.
    NotFound:
      content:
        application/json:
          example:
            code: 404
            message: Not Found
            description: The specified resource does not exist
            moreInfo: ""
            error: []
          schema:
            $ref: '#/components/schemas/Error'
      description: Not Found. The specified resource does not exist.
    PreconditionFailed:
      content:
        application/json:
          example:
            code: 412
            message: Precondition Failed
            description: The request has not been performed because one of the preconditions
              is not met
            moreInfo: ""
            error: []
          schema:
            $ref: '#/components/schemas/Error'
      description: Precondition Failed. The request has not been performed because
        one of the preconditions is not met.
    Unauthorized:
      content:
        application/json:
          example:
            code: 401
            message: Unauthorized
            description: The user is not authorized
            moreInfo: ""
            error: []
          schema:
            $ref: '#/components/schemas/Error'
      description: Unauthorized. The user is not authorized.
    UnsupportedMediaType:
      content:
        application/json:
          example:
            code: 415
            message: Unsupported media type
            description: The entity of the request was not in a supported format
            moreInfo: ""
            error: []
          schema:
            $ref: '#/components/schemas/Error'
      description: Unsupported Media Type. The entity of the request was not in a
        supported format.
  schemas:
    Comment:
      example:
        updatedTime: 2021-02-12-19:57:25
        commenterInfo:
          firstName: John
          lastName: David
          fullName: John David
        createdBy: admin
        createdTime: 2021-02-11-09:57:25
        parentCommentId: 6f38aea2-f41e-4ac9-b3f2-a9493d00ba97
        id: 943d3002-000c-42d3-a1b9-d6559f8a4d49
        entryPoint: devPortal
        category: general
        content: This is a comment
      properties:
        id:
          example: 943d3002-000c-42d3-a1b9-d6559f8a4d49
          readOnly: true
          type: string
        content:
          example: This is a comment
          maxLength: 512
          type: string
        createdTime:
          example: 2021-02-11-09:57:25
          readOnly: true
          type: string
        createdBy:
          example: admin
          readOnly: true
          type: string
        updatedTime:
          example: 2021-02-12-19:57:25
          readOnly: true
          type: string
        category:
          default: general
          example: general
          readOnly: true
          type: string
        parentCommentId:
          example: 6f38aea2-f41e-4ac9-b3f2-a9493d00ba97
          readOnly: true
          type: string
        entryPoint:
          enum:
          - devPortal
          - publisher
          readOnly: true
          type: string
        commenterInfo:
          $ref: '#/components/schemas/CommenterInfo'
        replies:
          $ref: '#/components/schemas/CommentList'
      required:
      - content
      title: Comment
      type: object
    CommentList:
      example:
        pagination:
          next: next
          total: 10
          offset: 0
          previous: previous
          limit: 1
        count: 1
        list:
        - updatedTime: 2021-02-12-19:57:25
          commenterInfo:
            firstName: John
            lastName: David
            fullName: John David
          createdBy: admin
          createdTime: 2021-02-11-09:57:25
          parentCommentId: 6f38aea2-f41e-4ac9-b3f2-a9493d00ba97
          id: 943d3002-000c-42d3-a1b9-d6559f8a4d49
          entryPoint: devPortal
          category: general
          content: This is a comment
        - updatedTime: 2021-02-12-19:57:25
          commenterInfo:
            firstName: John
            lastName: David
            fullName: John David
          createdBy: admin
          createdTime: 2021-02-11-09:57:25
          parentCommentId: 6f38aea2-f41e-4ac9-b3f2-a9493d00ba97
          id: 943d3002-000c-42d3-a1b9-d6559f8a4d49
          entryPoint: devPortal
          category: general
          content: This is a comment
      properties:
        count:
          description: |
            Number of Comments returned.
          example: 1
          readOnly: true
          type: integer
        list:
          items:
            $ref: '#/components/schemas/Comment'
          readOnly: true
          type: array
        pagination:
          $ref: '#/components/schemas/Pagination'
      title: Comments List
      type: object
    CommenterInfo:
      example:
        firstName: John
        lastName: David
        fullName: John David
      properties:
        firstName:
          example: John
          type: string
        lastName:
          example: David
          type: string
        fullName:
          example: John David
          type: string
      type: object
    APIList:
      example:
        pagination:
          next: next
          total: 10
          offset: 0
          previous: previous
          limit: 1
        count: 1
        list:
        - updatedTime: 2021-02-11 09:57:25
          audience: PUBLIC
          hasThumbnail: true
          advertiseOnly: true
          workflowStatus: APPROVED
          description: A calculator API that supports basic operations
          type: HTTP
          version: 1.0.0
          provider: admin
          gatewayVendor: wso2
          securityScheme:
          - securityScheme
          - securityScheme
          name: CalculatorAPI
          context: CalculatorAPI
          createdTime: 2021-02-11 09:57:25
          id: 01234567-0123-0123-0123-012345678901
          additionalProperties:
          - display: true
            name: name
            value: value
          - display: true
            name: name
            value: value
          additionalPropertiesMap:
            key:
              display: false
              name: name
              value: value
          lifeCycleStatus: CREATED
        - updatedTime: 2021-02-11 09:57:25
          audience: PUBLIC
          hasThumbnail: true
          advertiseOnly: true
          workflowStatus: APPROVED
          description: A calculator API that supports basic operations
          type: HTTP
          version: 1.0.0
          provider: admin
          gatewayVendor: wso2
          securityScheme:
          - securityScheme
          - securityScheme
          name: CalculatorAPI
          context: CalculatorAPI
          createdTime: 2021-02-11 09:57:25
          id: 01234567-0123-0123-0123-012345678901
          additionalProperties:
          - display: true
            name: name
            value: value
          - display: true
            name: name
            value: value
          additionalPropertiesMap:
            key:
              display: false
              name: name
              value: value
          lifeCycleStatus: CREATED
      properties:
        count:
          description: |
            Number of APIs returned.
          example: 1
          type: integer
        list:
          items:
            $ref: '#/components/schemas/APIInfo'
          type: array
        pagination:
          $ref: '#/components/schemas/Pagination'
      title: API List
      type: object
    APIMetadataList:
      example:
        pagination:
          next: next
          total: 10
          offset: 0
          previous: previous
          limit: 1
        count: 1
        list:
        - provider: admin
          name: CalculatorAPI
          context: CalculatorAPI
          id: 01234567-0123-0123-0123-012345678901
          version: 1.0.0
        - provider: admin
          name: CalculatorAPI
          context: CalculatorAPI
          id: 01234567-0123-0123-0123-012345678901
          version: 1.0.0
      properties:
        count:
          description: |
            Number of APIs returned.
          example: 1
          type: integer
        list:
          items:
            $ref: '#/components/schemas/APIMetadata'
          type: array
        pagination:
          $ref: '#/components/schemas/Pagination'
      title: API metadata List
      type: object
    APIInfo:
      example:
        updatedTime: 2021-02-11 09:57:25
        audience: PUBLIC
        hasThumbnail: true
        advertiseOnly: true
        workflowStatus: APPROVED
        description: A calculator API that supports basic operations
        type: HTTP
        version: 1.0.0
        provider: admin
        gatewayVendor: wso2
        securityScheme:
        - securityScheme
        - securityScheme
        name: CalculatorAPI
        context: CalculatorAPI
        createdTime: 2021-02-11 09:57:25
        id: 01234567-0123-0123-0123-012345678901
        additionalProperties:
        - display: true
          name: name
          value: value
        - display: true
          name: name
          value: value
        additionalPropertiesMap:
          key:
            display: false
            name: name
            value: value
        lifeCycleStatus: CREATED
      properties:
        id:
          example: 01234567-0123-0123-0123-012345678901
          type: string
        name:
          example: CalculatorAPI
          type: string
        description:
          example: A calculator API that supports basic operations
          type: string
        context:
          example: CalculatorAPI
          type: string
        additionalProperties:
          description: Map of custom properties of API
          items:
            $ref: '#/components/schemas/APIInfo_additionalProperties'
          type: array
        additionalPropertiesMap:
          additionalProperties:
            $ref: '#/components/schemas/APIInfo_additionalPropertiesMap'
          type: object
        version:
          example: 1.0.0
          type: string
        provider:
          description: |
            If the provider value is not given, the user invoking the API will be used as the provider.
          example: admin
          type: string
        type:
          example: HTTP
          type: string
        audience:
          description: The audience of the API. Accepted values are PUBLIC, SINGLE
          enum:
          - PUBLIC
          - SINGLE
          example: PUBLIC
          type: string
        lifeCycleStatus:
          example: CREATED
          type: string
        workflowStatus:
          example: APPROVED
          type: string
        hasThumbnail:
          example: true
          type: boolean
        securityScheme:
          items:
            type: string
          type: array
        createdTime:
          example: 2021-02-11 09:57:25
          type: string
        updatedTime:
          example: 2021-02-11 09:57:25
          type: string
        gatewayVendor:
          example: wso2
          type: string
        advertiseOnly:
          example: true
          type: boolean
      title: API Info object with basic API details.
      type: object
    APIMetadata:
      example:
        provider: admin
        name: CalculatorAPI
        context: CalculatorAPI
        id: 01234567-0123-0123-0123-012345678901
        version: 1.0.0
      properties:
        id:
          example: 01234567-0123-0123-0123-012345678901
          type: string
        name:
          example: CalculatorAPI
          type: string
        context:
          example: CalculatorAPI
          type: string
        version:
          example: 1.0.0
          type: string
        provider:
          description: |
            If the provider value is not given, the user invoking the API will be used as the provider.
          example: admin
          type: string
      title: API Info object with basic minimal API details.
      type: object
    Topic:
      properties:
        id:
          description: id
          example: "1222344"
          readOnly: true
          type: string
        name:
          example: PizzaShackAPI
          maxLength: 50
          minLength: 1
          pattern: (^[^~!@#;:%^*()+={}|\\<>"',&$\s+\[\]\/]*$)
          type: string
        mode:
          example: This is a simple API for Pizza Shack online pizza delivery store.
          maxLength: 32766
          type: string
        description:
          example: This is a simple API for Pizza Shack online pizza delivery store.
          maxLength: 32766
          type: string
      required:
      - description
      - mode
      - name
      title: Topic object
      type: object
    TopicList:
      properties:
        count:
          description: |
            Number of Topics returned.
          example: 1
          type: integer
        list:
          items:
            $ref: '#/components/schemas/Topic'
          type: array
        pagination:
          $ref: '#/components/schemas/Pagination'
      title: Topic List
      type: object
    API:
      example:
        endpointImplementationType: INLINE
        workflowStatus: APPROVED
        isRevision: false
        serviceInfo:
          outdated: false
          name: PetStore
          version: 1.0.0
          key: PetStore-1.0.0
        authorizationHeader: Authorization
        responseCachingEnabled: true
        type: HTTP
        enableSchemaValidation: false
        gatewayType: wso2/synapse
        context: pizza
        createdTime: createdTime
        id: 01234567-0123-0123-0123-012345678901
        wsdlUrl: /apimgt/applicationdata/wsdls/admin--soap1.wsdl
        apiKeyHeader: apiKey
        accessControlRoles: []
        audience: PUBLIC
        visibility: PUBLIC
        version: 1.0.0
        enableSubscriberVerification: false
        tags:
        - pizza
        - food
        visibleTenants: []
        cacheTimeout: 300
        isDefaultVersion: false
        gatewayVendor: wso2
        asyncTransportProtocols:
        - http
        - https
        apiThrottlingPolicy: Unlimited
        websubSubscriptionConfiguration:
          signingAlgorithm: signingAlgorithm
          enable: false
          signatureHeader: signatureHeader
          secret: secret
        name: PizzaShackAPI
        revisionedApiId: 01234567-0123-0123-0123-012345678901
        advertiseInfo:
          apiOwner: admin
          apiExternalProductionEndpoint: https://localhost:9443/devportal
          apiExternalSandboxEndpoint: https://localhost:9443/devportal
          advertised: true
          vendor: WSO2
          originalDevPortalUrl: https://localhost:9443/devportal
        additionalProperties:
        - display: true
          name: name
          value: value
        - display: true
          name: name
          value: value
        lifeCycleStatus: CREATED
        accessControl: NONE
        apiPolicies:
          request:
          - policyVersion: v1
            policyId: policyId
            policyName: policyName
            parameters:
              key: '{}'
          - policyVersion: v1
            policyId: policyId
            policyName: policyName
            parameters:
              key: '{}'
          response:
          - policyVersion: v1
            policyId: policyId
            policyName: policyName
            parameters:
              key: '{}'
          - policyVersion: v1
            policyId: policyId
            policyName: policyName
            parameters:
              key: '{}'
          fault:
          - policyVersion: v1
            policyId: policyId
            policyName: policyName
            parameters:
              key: '{}'
          - policyVersion: v1
            policyId: policyId
            policyName: policyName
            parameters:
              key: '{}'
        monetization:
          enabled: true
          properties:
            key: properties
        policies:
        - Unlimited
        description: This is a simple API for Pizza Shack online pizza delivery store.
        visibleRoles: []
        corsConfiguration:
          accessControlAllowOrigins:
          - accessControlAllowOrigins
          - accessControlAllowOrigins
          accessControlAllowCredentials: false
          corsConfigurationEnabled: false
          accessControlAllowHeaders:
          - accessControlAllowHeaders
          - accessControlAllowHeaders
          accessControlAllowMethods:
          - accessControlAllowMethods
          - accessControlAllowMethods
        subscriptionAvailability: CURRENT_TENANT
        operations:
        - target: /order/{orderId}
          verb: POST
          authType: Application & Application User
          throttlingPolicy: Unlimited
        - target: /menu
          verb: GET
          authType: Application & Application User
          throttlingPolicy: Unlimited
        provider: admin
        endpointConfig:
          endpoint_type: http
          sandbox_endpoints:
            url: https://localhost:9443/am/sample/pizzashack/v1/api/
          production_endpoints:
            url: https://localhost:9443/am/sample/pizzashack/v1/api/
        mediationPolicies:
        - name: json_to_xml_in_message
          type: in
        - name: xml_to_json_out_message
          type: out
        - name: json_fault
          type: fault
        lastUpdatedTime: lastUpdatedTime
        threatProtectionPolicies:
          list:
          - policyId: policyId
            priority: 0
          - policyId: policyId
            priority: 0
        categories:
        - categories
        - categories
        additionalPropertiesMap:
          key:
            display: false
            name: name
            value: value
        lastUpdatedTimestamp: lastUpdatedTimestamp
        wsdlInfo:
          type: WSDL
        hasThumbnail: false
        transport:
        - http
        - https
        revisionId: 1
        businessInformation: ""
        securityScheme:
        - oauth2
        keyManagers: '{}'
        scopes:
        - shared: true
          scope:
            displayName: api_view
            bindings:
            - admin
            - Internal/creator
            - Internal/publisher
            name: apim:api_view
            description: This Scope can used to view Apis
            id: 01234567-0123-0123-0123-012345678901
            usageCount: 3
        - shared: true
          scope:
            displayName: api_view
            bindings:
            - admin
            - Internal/creator
            - Internal/publisher
            name: apim:api_view
            description: This Scope can used to view Apis
            id: 01234567-0123-0123-0123-012345678901
            usageCount: 3
        maxTps:
          production: 1000
          sandbox: 1000
        subscriptionAvailableTenants: []
      properties:
        id:
          description: |
            UUID of the api registry artifact
          example: 01234567-0123-0123-0123-012345678901
          readOnly: true
          type: string
        name:
          example: PizzaShackAPI
          maxLength: 60
          minLength: 1
          pattern: (^[^~!@#;:%^*()+={}|\\<>"',&$\[\]\/]*$)
          type: string
        description:
          example: This is a simple API for Pizza Shack online pizza delivery store.
          maxLength: 32766
          type: string
        context:
          example: pizza
          maxLength: 232
          minLength: 1
          type: string
        version:
          example: 1.0.0
          maxLength: 30
          minLength: 1
          pattern: ^[^~!@#;:%^*()+={}|\\<>"',&/$\[\]\s+\/]+$
          type: string
        provider:
          description: |
            If the provider value is not given user invoking the api will be used as the provider.
          example: admin
          maxLength: 50
          type: string
        lifeCycleStatus:
          example: CREATED
          type: string
          x-otherScopes:
          - apim:api_publish
          - apim:api_manage
        wsdlInfo:
          $ref: '#/components/schemas/WSDLInfo'
        wsdlUrl:
          example: /apimgt/applicationdata/wsdls/admin--soap1.wsdl
          readOnly: true
          type: string
        responseCachingEnabled:
          example: true
          type: boolean
        cacheTimeout:
          example: 300
          type: integer
        hasThumbnail:
          example: false
          type: boolean
        isDefaultVersion:
          example: false
          type: boolean
        isRevision:
          example: false
          type: boolean
        revisionedApiId:
          description: |
            UUID of the api registry artifact
          example: 01234567-0123-0123-0123-012345678901
          readOnly: true
          type: string
        revisionId:
          example: 1
          type: integer
        enableSchemaValidation:
          example: false
          type: boolean
        enableSubscriberVerification:
          example: false
          type: boolean
        type:
          default: HTTP
          description: The api creation type to be used. Accepted values are HTTP,
            WS, SOAPTOREST, GRAPHQL, WEBSUB, SSE, WEBHOOK, ASYNC
          enum:
          - HTTP
          - WS
          - SOAPTOREST
          - SOAP
          - GRAPHQL
          - WEBSUB
          - SSE
          - WEBHOOK
          - ASYNC
          example: HTTP
          type: string
        audience:
          description: The audience of the API. Accepted values are PUBLIC, SINGLE
          enum:
          - PUBLIC
          - SINGLE
          example: PUBLIC
          type: string
        transport:
          description: |
            Supported transports for the API (http and/or https).
          example:
          - http
          - https
          items:
            type: string
          type: array
        tags:
          example:
          - pizza
          - food
          items:
            type: string
          type: array
          x-otherScopes:
          - apim:api_publish
          - apim:api_manage
        policies:
          example:
          - Unlimited
          items:
            type: string
          type: array
          x-otherScopes:
          - apim:api_publish
          - apim:api_manage
        apiThrottlingPolicy:
          description: The API level throttling policy selected for the particular
            API
          example: Unlimited
          type: string
          x-otherScopes:
          - apim:api_publish
          - apim:api_manage
        authorizationHeader:
          description: |
            Name of the Authorization header used for invoking the API. If it is not set, Authorization header name specified
            in tenant or system level will be used.
          example: Authorization
          pattern: (^[^~!@#;:%^*()+={}|\\<>"',&$\s+]*$)
          type: string
        apiKeyHeader:
          description: |
            Name of the API key header used for invoking the API. If it is not set, default value `apiKey` will be used.
          example: apiKey
          pattern: (^[^~!@#;:%^*()+={}|\\<>"',&$\s+]*$)
          type: string
        securityScheme:
          description: |
            Types of API security, the current API secured with. It can be either OAuth2 or mutual SSL or both. If
            it is not set OAuth2 will be set as the security for the current API.
          example:
          - oauth2
          items:
            type: string
          type: array
        maxTps:
          $ref: '#/components/schemas/APIMaxTps'
        visibility:
          default: PUBLIC
          description: The visibility level of the API. Accepts one of the following.
            PUBLIC, PRIVATE, RESTRICTED.
          enum:
          - PUBLIC
          - PRIVATE
          - RESTRICTED
          example: PUBLIC
          type: string
          x-otherScopes:
          - apim:api_publish
          - apim:api_manage
        visibleRoles:
          description: The user roles that are able to access the API in Developer
            Portal
          example: []
          items:
            type: string
          type: array
          x-otherScopes:
          - apim:api_publish
          - apim:api_manage
        visibleTenants:
          example: []
          items:
            type: string
          type: array
        mediationPolicies:
          example:
          - name: json_to_xml_in_message
            type: in
          - name: xml_to_json_out_message
            type: out
          - name: json_fault
            type: fault
          items:
            $ref: '#/components/schemas/MediationPolicy'
          type: array
        apiPolicies:
          $ref: '#/components/schemas/APIOperationPolicies'
        subscriptionAvailability:
          default: CURRENT_TENANT
          description: The subscription availability. Accepts one of the following.
            CURRENT_TENANT, ALL_TENANTS or SPECIFIC_TENANTS.
          enum:
          - CURRENT_TENANT
          - ALL_TENANTS
          - SPECIFIC_TENANTS
          example: CURRENT_TENANT
          type: string
          x-otherScopes:
          - apim:api_publish
          - apim:api_manage
        subscriptionAvailableTenants:
          example: []
          items:
            type: string
          type: array
        additionalProperties:
          description: Map of custom properties of API
          items:
            $ref: '#/components/schemas/APIInfo_additionalProperties'
          type: array
          x-otherScopes:
          - apim:api_publish
          - apim:api_manage
        additionalPropertiesMap:
          additionalProperties:
            $ref: '#/components/schemas/APIInfo_additionalPropertiesMap'
          type: object
          x-otherScopes:
          - apim:api_publish
          - apim:api_manage
        monetization:
          $ref: '#/components/schemas/APIMonetizationInfo'
        accessControl:
          default: NONE
          description: |
            Is the API is restricted to certain set of publishers or creators or is it visible to all the
            publishers and creators. If the accessControl restriction is none, this API can be modified by all the
            publishers and creators, if not it can only be viewable/modifiable by certain set of publishers and creators,
             based on the restriction.
          enum:
          - NONE
          - RESTRICTED
          type: string
        accessControlRoles:
          description: The user roles that are able to view/modify as API publisher
            or creator.
          example: []
          items:
            type: string
          type: array
        businessInformation:
          allOf:
          - $ref: '#/components/schemas/APIBusinessInformation'
          x-otherScopes:
          - apim:api_publish
          - apim:api_manage
        corsConfiguration:
          $ref: '#/components/schemas/APICorsConfiguration'
        websubSubscriptionConfiguration:
          $ref: '#/components/schemas/WebsubSubscriptionConfiguration'
        workflowStatus:
          example: APPROVED
          type: string
        createdTime:
          type: string
        lastUpdatedTimestamp:
          type: string
        lastUpdatedTime:
          type: string
          x-otherScopes:
          - apim:api_publish
          - apim:api_manage
        endpointConfig:
          description: |
            Endpoint configuration of the API. This can be used to provide different types of endpoints including Simple REST Endpoints, Loadbalanced and Failover.

            `Simple REST Endpoint`
              {
                "endpoint_type": "http",
                "sandbox_endpoints":       {
                   "url": "https://localhost:9443/am/sample/pizzashack/v1/api/"
                },
                "production_endpoints":       {
                   "url": "https://localhost:9443/am/sample/pizzashack/v1/api/"
                }
              }

            `Loadbalanced Endpoint`

              {
                "endpoint_type": "load_balance",
                "algoCombo": "org.apache.synapse.endpoints.algorithms.RoundRobin",
                "sessionManagement": "",
                "sandbox_endpoints":       [
                            {
                      "url": "https://localhost:9443/am/sample/pizzashack/v1/api/1"
                   },
                            {
                      "endpoint_type": "http",
                      "template_not_supported": false,
                      "url": "https://localhost:9443/am/sample/pizzashack/v1/api/2"
                   }
                ],
                "production_endpoints":       [
                            {
                      "url": "https://localhost:9443/am/sample/pizzashack/v1/api/3"
                   },
                            {
                      "endpoint_type": "http",
                      "template_not_supported": false,
                      "url": "https://localhost:9443/am/sample/pizzashack/v1/api/4"
                   }
                ],
                "sessionTimeOut": "",
                "algoClassName": "org.apache.synapse.endpoints.algorithms.RoundRobin"
              }

            `Failover Endpoint`

              {
                "production_failovers":[
                   {
                      "endpoint_type":"http",
                      "template_not_supported":false,
                      "url":"https://localhost:9443/am/sample/pizzashack/v1/api/1"
                   }
                ],
                "endpoint_type":"failover",
                "sandbox_endpoints":{
                   "url":"https://localhost:9443/am/sample/pizzashack/v1/api/2"
                },
                "production_endpoints":{
                   "url":"https://localhost:9443/am/sample/pizzashack/v1/api/3"
                },
                "sandbox_failovers":[
                   {
                      "endpoint_type":"http",
                      "template_not_supported":false,
                      "url":"https://localhost:9443/am/sample/pizzashack/v1/api/4"
                   }
                ]
              }

            `Default Endpoint`

              {
                "endpoint_type":"default",
                "sandbox_endpoints":{
                   "url":"default"
                },
                "production_endpoints":{
                   "url":"default"
                }
              }

            `Endpoint from Endpoint Registry`
              {
                "endpoint_type": "Registry",
                "endpoint_id": "{registry-name:entry-name:version}",
              }
          example:
            endpoint_type: http
            sandbox_endpoints:
              url: https://localhost:9443/am/sample/pizzashack/v1/api/
            production_endpoints:
              url: https://localhost:9443/am/sample/pizzashack/v1/api/
          properties: {}
          type: object
        endpointImplementationType:
          default: ENDPOINT
          enum:
          - INLINE
          - ENDPOINT
          - MOCKED_OAS
          example: INLINE
          type: string
        scopes:
          items:
            $ref: '#/components/schemas/APIScope'
          type: array
        operations:
          example:
          - target: /order/{orderId}
            verb: POST
            authType: Application & Application User
            throttlingPolicy: Unlimited
          - target: /menu
            verb: GET
            authType: Application & Application User
            throttlingPolicy: Unlimited
          items:
            $ref: '#/components/schemas/APIOperations'
          type: array
        threatProtectionPolicies:
          $ref: '#/components/schemas/API_threatProtectionPolicies'
        categories:
          description: |
            API categories
          items:
            type: string
          type: array
          x-otherScopes:
          - apim:api_publish
        keyManagers:
          description: |
            API Key Managers
          properties: {}
          readOnly: true
          type: object
        serviceInfo:
          $ref: '#/components/schemas/API_serviceInfo'
        advertiseInfo:
          $ref: '#/components/schemas/AdvertiseInfo'
        gatewayVendor:
          example: wso2
          title: field to identify gateway vendor
          type: string
        gatewayType:
          default: wso2/synapse
          description: The gateway type selected for the API policies. Accepts one
            of the following. wso2/synapse, wso2/apk.
          example: wso2/synapse
          title: Field to identify gateway type.
          type: string
        asyncTransportProtocols:
          description: |
            Supported transports for the async API (http and/or https).
          example:
          - http
          - https
          items:
            type: string
          type: array
      required:
      - context
      - name
      - version
      title: API object
      type: object
      x-scopes:
      - apim:api_create
      - apim:api_import_export
      - apim:api_manage
    APIRevision:
      example:
        displayName: REVISION 1
        description: removed a post resource
        createdTime: createdTime
        id: c26b2b9b-4632-4ca4-b6f3-521c8863990c
        deploymentInfo:
        - revisionUuid: c26b2b9b-4632-4ca4-b6f3-521c8863990c
          vhost: mg.wso2.com
          displayOnDevportal: true
          deployedTime: deployedTime
          name: default
          successDeployedTime: successDeployedTime
          status: CREATED
        - revisionUuid: c26b2b9b-4632-4ca4-b6f3-521c8863990c
          vhost: mg.wso2.com
          displayOnDevportal: true
          deployedTime: deployedTime
          name: default
          successDeployedTime: successDeployedTime
          status: CREATED
        apiInfo:
          id: 01234567-0123-0123-0123-012345678901
      properties:
        displayName:
          example: REVISION 1
          readOnly: true
          type: string
        id:
          example: c26b2b9b-4632-4ca4-b6f3-521c8863990c
          readOnly: true
          type: string
        description:
          example: removed a post resource
          maxLength: 255
          minLength: 0
          type: string
        createdTime:
          readOnly: true
          type: string
        apiInfo:
          $ref: '#/components/schemas/APIRevisionAPIInfo'
        deploymentInfo:
          items:
            $ref: '#/components/schemas/APIRevisionDeployment'
          readOnly: true
          type: array
      title: API Info object with basic API details
    APIRevisionAPIInfo:
      example:
        id: 01234567-0123-0123-0123-012345678901
      properties:
        id:
          example: 01234567-0123-0123-0123-012345678901
          type: string
      readOnly: true
      title: API Info object with basic Revisioned API details
    APIRevisionList:
      example:
        count: 1
        list:
        - displayName: REVISION 1
          description: removed a post resource
          createdTime: createdTime
          id: c26b2b9b-4632-4ca4-b6f3-521c8863990c
          deploymentInfo:
          - revisionUuid: c26b2b9b-4632-4ca4-b6f3-521c8863990c
            vhost: mg.wso2.com
            displayOnDevportal: true
            deployedTime: deployedTime
            name: default
            successDeployedTime: successDeployedTime
            status: CREATED
          - revisionUuid: c26b2b9b-4632-4ca4-b6f3-521c8863990c
            vhost: mg.wso2.com
            displayOnDevportal: true
            deployedTime: deployedTime
            name: default
            successDeployedTime: successDeployedTime
            status: CREATED
          apiInfo:
            id: 01234567-0123-0123-0123-012345678901
        - displayName: REVISION 1
          description: removed a post resource
          createdTime: createdTime
          id: c26b2b9b-4632-4ca4-b6f3-521c8863990c
          deploymentInfo:
          - revisionUuid: c26b2b9b-4632-4ca4-b6f3-521c8863990c
            vhost: mg.wso2.com
            displayOnDevportal: true
            deployedTime: deployedTime
            name: default
            successDeployedTime: successDeployedTime
            status: CREATED
          - revisionUuid: c26b2b9b-4632-4ca4-b6f3-521c8863990c
            vhost: mg.wso2.com
            displayOnDevportal: true
            deployedTime: deployedTime
            name: default
            successDeployedTime: successDeployedTime
            status: CREATED
          apiInfo:
            id: 01234567-0123-0123-0123-012345678901
      properties:
        count:
          description: |
            Number of API revisions returned
          example: 1
          type: integer
        list:
          items:
            $ref: '#/components/schemas/APIRevision'
          type: array
      title: API Revisions List
    APIRevisionDeploymentList:
      example:
        list:
        - revisionUuid: c26b2b9b-4632-4ca4-b6f3-521c8863990c
          vhost: mg.wso2.com
          displayOnDevportal: true
          deployedTime: deployedTime
          name: default
          successDeployedTime: successDeployedTime
          status: CREATED
        - revisionUuid: c26b2b9b-4632-4ca4-b6f3-521c8863990c
          vhost: mg.wso2.com
          displayOnDevportal: true
          deployedTime: deployedTime
          name: default
          successDeployedTime: successDeployedTime
          status: CREATED
      properties:
        list:
          items:
            $ref: '#/components/schemas/APIRevisionDeployment'
          type: array
      title: API Revision to Deployment mapped object with basic API deployment details
    APIRevisionDeployment:
      example:
        revisionUuid: c26b2b9b-4632-4ca4-b6f3-521c8863990c
        vhost: mg.wso2.com
        displayOnDevportal: true
        deployedTime: deployedTime
        name: default
        successDeployedTime: successDeployedTime
        status: CREATED
      properties:
        revisionUuid:
          example: c26b2b9b-4632-4ca4-b6f3-521c8863990c
          maxLength: 255
          minLength: 0
          type: string
        name:
          example: default
          maxLength: 255
          minLength: 1
          type: string
        status:
          default: CREATED
          enum:
          - CREATED
          - APPROVED
          - REJECTED
          example: CREATED
          type: string
        vhost:
          example: mg.wso2.com
          maxLength: 255
          minLength: 1
          pattern: ^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$
          type: string
        displayOnDevportal:
          example: true
          type: boolean
        deployedTime:
          readOnly: true
          type: string
        successDeployedTime:
          readOnly: true
          type: string
      title: APIRevisionDeployment Info object with basic API deployment details
    AuditReport:
      example:
        numErrors: 20
        externalApiId: fd21f9f7-3674-49cf-8a83-dca401f635de
        grade: "27.95"
        report: report
      properties:
        report:
          description: |
            The API Security Audit Report
          type: string
        grade:
          description: |
            The overall grade of the Security Audit
          example: "27.95"
          type: string
        numErrors:
          description: |
            The number of errors in the API Definition
          example: 20
          type: integer
        externalApiId:
          description: |
            The External API ID
          example: fd21f9f7-3674-49cf-8a83-dca401f635de
          type: string
      title: Resource for Audit Report
      type: object
    APIProductList:
      example:
        pagination:
          next: next
          total: 10
          offset: 0
          previous: previous
          limit: 1
        count: 1
        list:
        - hasThumbnail: true
          provider: admin
          gatewayVendor: wso2
          securityScheme:
          - oauth2
          name: PizzaShackAPIProduct
          context: pizzaproduct
          description: This is a simple API for Pizza Shack online pizza delivery
            store
          id: 01234567-0123-0123-0123-012345678901
          state: state
        - hasThumbnail: true
          provider: admin
          gatewayVendor: wso2
          securityScheme:
          - oauth2
          name: PizzaShackAPIProduct
          context: pizzaproduct
          description: This is a simple API for Pizza Shack online pizza delivery
            store
          id: 01234567-0123-0123-0123-012345678901
          state: state
      properties:
        count:
          description: |
            Number of API Products returned.
          example: 1
          type: integer
        list:
          items:
            $ref: '#/components/schemas/APIProductInfo'
          type: array
        pagination:
          $ref: '#/components/schemas/Pagination'
      title: API Product List
      type: object
    APIProductInfo:
      example:
        hasThumbnail: true
        provider: admin
        gatewayVendor: wso2
        securityScheme:
        - oauth2
        name: PizzaShackAPIProduct
        context: pizzaproduct
        description: This is a simple API for Pizza Shack online pizza delivery store
        id: 01234567-0123-0123-0123-012345678901
        state: state
      properties:
        id:
          description: |
            UUID of the api product
          example: 01234567-0123-0123-0123-012345678901
          readOnly: true
          type: string
        name:
          description: Name of the API Product
          example: PizzaShackAPIProduct
          type: string
        context:
          example: pizzaproduct
          type: string
        description:
          description: A brief description about the API
          example: This is a simple API for Pizza Shack online pizza delivery store
          type: string
        provider:
          description: |
            If the provider value is not given, the user invoking the API will be used as the provider.
          example: admin
          type: string
        hasThumbnail:
          example: true
          type: boolean
        state:
          description: |
            State of the API product. Only published api products are visible on the Developer Portal
          type: string
        securityScheme:
          description: |
            Types of API security, the current API secured with. It can be either OAuth2 or mutual SSL or both. If
            it is not set OAuth2 will be set as the security for the current API.
          example:
          - oauth2
          items:
            type: string
          type: array
        gatewayVendor:
          example: wso2
          type: string
      title: API Info object with basic API details.
      type: object
    APIProduct:
      example:
        accessControl: NONE
        workflowStatus: APPROVED
        monetization:
          enabled: true
          properties:
            key: properties
        policies:
        - Unlimited
        description: This is a simple API for Pizza Shack online pizza delivery store
        isRevision: false
        authorizationHeader: Authorization
        responseCachingEnabled: true
        visibleRoles: []
        corsConfiguration:
          accessControlAllowOrigins:
          - accessControlAllowOrigins
          - accessControlAllowOrigins
          accessControlAllowCredentials: false
          corsConfigurationEnabled: false
          accessControlAllowHeaders:
          - accessControlAllowHeaders
          - accessControlAllowHeaders
          accessControlAllowMethods:
          - accessControlAllowMethods
          - accessControlAllowMethods
        enableSchemaValidation: false
        subscriptionAvailability: CURRENT_TENANT
        provider: admin
        context: pizzaproduct
        createdTime: createdTime
        lastUpdatedTime: lastUpdatedTime
        id: 01234567-0123-0123-0123-012345678901
        state: CREATED
        categories: []
        additionalPropertiesMap:
          key:
            display: false
            name: name
            value: value
        revisionedApiProductId: 01234567-0123-0123-0123-012345678901
        apiKeyHeader: apiKey
        accessControlRoles: []
        lastUpdatedTimestamp: lastUpdatedTimestamp
        hasThumbnail: false
        visibility: PUBLIC
        transport:
        - http
        - https
        version: 1.0.0
        tags:
        - pizza
        - food
        revisionId: 1
        visibleTenants: []
        cacheTimeout: 300
        isDefaultVersion: false
        apis:
        - name: PizzaShackAPI
          apiId: 01234567-0123-0123-0123-012345678901
          version: "1.0"
          operations:
          - target: /order/{orderId}
            verb: POST
            authType: Application & Application User
            throttlingPolicy: Unlimited
          - target: /menu
            verb: GET
            authType: Application & Application User
            throttlingPolicy: Unlimited
        gatewayVendor: wso2
        businessInformation:
          technicalOwnerEmail: technicalowner@wso2.com
          businessOwnerEmail: businessowner@wso2.com
          businessOwner: businessowner
          technicalOwner: technicalowner
        apiThrottlingPolicy: Unlimited
        securityScheme:
        - oauth2
        name: PizzaShackAPIProduct
        additionalProperties:
        - display: true
          name: name
          value: value
        - display: true
          name: name
          value: value
        scopes: []
        apiType: APIPRODUCT
        subscriptionAvailableTenants: []
      properties:
        id:
          description: |
            UUID of the api product
          example: 01234567-0123-0123-0123-012345678901
          readOnly: true
          type: string
        name:
          description: Name of the API Product
          example: PizzaShackAPIProduct
          maxLength: 50
          minLength: 1
          type: string
        context:
          example: pizzaproduct
          maxLength: 60
          minLength: 1
          type: string
        version:
          example: 1.0.0
          maxLength: 30
          minLength: 1
          pattern: ^[^~!@#;:%^*()+={}|\\<>"',&/$\[\]\s+\/]+$
          type: string
        description:
          description: A brief description about the API
          example: This is a simple API for Pizza Shack online pizza delivery store
          type: string
        provider:
          description: |
            If the provider value is not given, the user invoking the API will be used as the provider.
          example: admin
          maxLength: 50
          type: string
        hasThumbnail:
          example: false
          type: boolean
        state:
          default: CREATED
          description: |
            State of the API product. Only published api products are visible on the Developer Portal
          type: string
        enableSchemaValidation:
          example: false
          type: boolean
        isDefaultVersion:
          example: false
          type: boolean
        isRevision:
          example: false
          type: boolean
        revisionedApiProductId:
          description: |
            UUID of the api product registry artifact
          example: 01234567-0123-0123-0123-012345678901
          readOnly: true
          type: string
        revisionId:
          example: 1
          type: integer
        responseCachingEnabled:
          example: true
          type: boolean
        cacheTimeout:
          example: 300
          type: integer
        visibility:
          default: PUBLIC
          description: The visibility level of the API. Accepts one of the following.
            PUBLIC, PRIVATE, RESTRICTED.
          enum:
          - PUBLIC
          - PRIVATE
          - RESTRICTED
          example: PUBLIC
          type: string
        visibleRoles:
          description: The user roles that are able to access the API
          example: []
          items:
            type: string
          type: array
        visibleTenants:
          example: []
          items:
            type: string
          type: array
        accessControl:
          default: NONE
          description: |
            Defines whether the API Product is restricted to certain set of publishers or creators or is it visible to all the
            publishers and creators. If the accessControl restriction is none, this API Product can be modified by all the
            publishers and creators, if not it can only be viewable/modifiable by certain set of publishers and creators,
            based on the restriction.
          enum:
          - NONE
          - RESTRICTED
          type: string
        accessControlRoles:
          description: The user roles that are able to view/modify as API Product
            publisher or creator.
          example: []
          items:
            type: string
          type: array
        apiType:
          description: The API type to be used. Accepted values are API, APIPRODUCT
          enum:
          - API
          - APIPRODUCT
          example: APIPRODUCT
          type: string
        transport:
          description: |
            Supported transports for the API (http and/or https).
          example:
          - http
          - https
          items:
            type: string
          type: array
        tags:
          example:
          - pizza
          - food
          items:
            type: string
          type: array
        policies:
          example:
          - Unlimited
          items:
            type: string
          type: array
        apiThrottlingPolicy:
          description: The API level throttling policy selected for the particular
            API Product
          example: Unlimited
          type: string
        authorizationHeader:
          description: |
            Name of the Authorization header used for invoking the API. If it is not set, Authorization header name specified
            in tenant or system level will be used.
          example: Authorization
          type: string
        apiKeyHeader:
          description: |
            Name of the API key header used for invoking the API. If it is not set, default value `apiKey` will be used.
          example: apiKey
          pattern: (^[^~!@#;:%^*()+={}|\\<>"',&$\s+]*$)
          type: string
        securityScheme:
          description: |
            Types of API security, the current API secured with. It can be either OAuth2 or mutual SSL or both. If
            it is not set OAuth2 will be set as the security for the current API.
          example:
          - oauth2
          items:
            type: string
          type: array
        subscriptionAvailability:
          default: ALL_TENANTS
          description: The subscription availability. Accepts one of the following.
            CURRENT_TENANT, ALL_TENANTS or SPECIFIC_TENANTS.
          enum:
          - CURRENT_TENANT
          - ALL_TENANTS
          - SPECIFIC_TENANTS
          example: CURRENT_TENANT
          type: string
        subscriptionAvailableTenants:
          example: []
          items:
            type: string
          type: array
          x-otherScopes:
          - apim:api_publish
          - apim:api_manage
        additionalProperties:
          description: Map of custom properties of API
          items:
            $ref: '#/components/schemas/APIInfo_additionalProperties'
          type: array
        additionalPropertiesMap:
          additionalProperties:
            $ref: '#/components/schemas/APIInfo_additionalPropertiesMap'
          type: object
        monetization:
          $ref: '#/components/schemas/APIMonetizationInfo'
        businessInformation:
          $ref: '#/components/schemas/APIProductBusinessInformation'
        corsConfiguration:
          $ref: '#/components/schemas/APICorsConfiguration'
        createdTime:
          type: string
        lastUpdatedTimestamp:
          type: string
        lastUpdatedTime:
          type: string
        gatewayVendor:
          example: wso2
          title: field to identify gateway vendor
          type: string
        apis:
          description: |
            APIs and resources in the API Product.
          example:
          - name: PizzaShackAPI
            apiId: 01234567-0123-0123-0123-012345678901
            version: "1.0"
            operations:
            - target: /order/{orderId}
              verb: POST
              authType: Application & Application User
              throttlingPolicy: Unlimited
            - target: /menu
              verb: GET
              authType: Application & Application User
              throttlingPolicy: Unlimited
          items:
            $ref: '#/components/schemas/ProductAPI'
          type: array
        scopes:
          example: []
          items:
            $ref: '#/components/schemas/APIScope'
          type: array
        categories:
          description: |
            API categories
          example: []
          items:
            type: string
          type: array
        workflowStatus:
          example: APPROVED
          type: string
      required:
      - name
      title: API Product object
      type: object
    ProductAPI:
      properties:
        name:
          example: PizzaShackAPI
          type: string
        apiId:
          example: 01234567-0123-0123-0123-012345678901
          type: string
        version:
          example: "1.0"
          type: string
        operations:
          items:
            $ref: '#/components/schemas/APIOperations'
          type: array
      required:
      - apiId
      title: ProductAPI
      type: object
    ResourcePath:
      example:
        httpVerb: GET
        resourcePath: /menu
        id: 1
      properties:
        id:
          example: 1
          type: integer
        resourcePath:
          example: /menu
          type: string
        httpVerb:
          example: GET
          type: string
      required:
      - id
      title: ResourcePath
      type: object
    ResourcePathList:
      example:
        pagination:
          next: next
          total: 10
          offset: 0
          previous: previous
          limit: 1
        count: 1
        list:
        - httpVerb: GET
          resourcePath: /menu
          id: 1
        - httpVerb: GET
          resourcePath: /menu
          id: 1
      properties:
        count:
          description: |
            Number of API Resource Paths returned.
          example: 1
          type: integer
        list:
          items:
            $ref: '#/components/schemas/ResourcePath'
          type: array
        pagination:
          $ref: '#/components/schemas/Pagination'
      title: ResourcePath List
      type: object
    APIProductOutdatedStatus:
      example:
        isOutdated: true
      properties:
        isOutdated:
          description: |
            Indicates if an API Product is outdated
          example: true
          type: boolean
      title: APIProduct is outdated status
      type: object
    APIProductBusinessInformation:
      example:
        technicalOwnerEmail: technicalowner@wso2.com
        businessOwnerEmail: businessowner@wso2.com
        businessOwner: businessowner
        technicalOwner: technicalowner
      properties:
        businessOwner:
          example: businessowner
          maxLength: 120
          type: string
        businessOwnerEmail:
          example: businessowner@wso2.com
          type: string
        technicalOwner:
          example: technicalowner
          maxLength: 120
          type: string
        technicalOwnerEmail:
          example: technicalowner@wso2.com
          type: string
      type: object
    Claim:
      example:
        name: email
        URI: http://wso2.org/claims/emailaddress
        value: admin@wso2.com
      properties:
        name:
          example: email
          type: string
        URI:
          example: http://wso2.org/claims/emailaddress
          type: string
        value:
          example: admin@wso2.com
          type: string
      title: Claim
      type: object
    SubscriberInfo:
      example:
        name: admin
        claims:
        - name: email
          URI: http://wso2.org/claims/emailaddress
          value: admin@wso2.com
        - name: email
          URI: http://wso2.org/claims/emailaddress
          value: admin@wso2.com
      properties:
        name:
          example: admin
          type: string
        claims:
          items:
            $ref: '#/components/schemas/Claim'
          type: array
      title: SubscriberInfo
      type: object
    Application:
      properties:
        applicationId:
          example: 01234567-0123-0123-0123-012345678901
          type: string
        name:
          example: CalculatorApp
          type: string
        subscriber:
          example: admin
          type: string
        throttlingTier:
          example: Unlimited
          type: string
        description:
          example: Sample calculator application
          type: string
        groupId:
          type: string
      required:
      - name
      - throttlingTier
      title: Application
      type: object
    ApplicationInfo:
      example:
        subscriber: admin
        name: CalculatorApp
        subscriptionCount: 0
        description: Sample calculator application
        applicationId: 01234567-0123-0123-0123-012345678901
      properties:
        applicationId:
          example: 01234567-0123-0123-0123-012345678901
          type: string
        name:
          example: CalculatorApp
          type: string
        subscriber:
          example: admin
          type: string
        description:
          example: Sample calculator application
          type: string
        subscriptionCount:
          type: integer
      title: Application info object with basic application details
      type: object
    DocumentList:
      example:
        pagination:
          next: next
          total: 10
          offset: 0
          previous: previous
          limit: 1
        count: 1
        list:
        - summary: Summary of PizzaShackAPI Documentation
          lastUpdatedBy: admin
          fileName: fileName
          visibility: API_LEVEL
          otherTypeName: otherTypeName
          type: HOWTO
          sourceUrl: sourceUrl
          sourceType: INLINE
          createdBy: admin
          name: PizzaShackDoc
          createdTime: createdTime
          documentId: 01234567-0123-0123-0123-012345678901
          lastUpdatedTime: lastUpdatedTime
          inlineContent: This is doc content. This can have many lines.
        - summary: Summary of PizzaShackAPI Documentation
          lastUpdatedBy: admin
          fileName: fileName
          visibility: API_LEVEL
          otherTypeName: otherTypeName
          type: HOWTO
          sourceUrl: sourceUrl
          sourceType: INLINE
          createdBy: admin
          name: PizzaShackDoc
          createdTime: createdTime
          documentId: 01234567-0123-0123-0123-012345678901
          lastUpdatedTime: lastUpdatedTime
          inlineContent: This is doc content. This can have many lines.
      properties:
        count:
          description: |
            Number of Documents returned.
          example: 1
          type: integer
        list:
          items:
            $ref: '#/components/schemas/Document'
          type: array
        pagination:
          $ref: '#/components/schemas/Pagination'
      title: Document List
      type: object
    Document:
      example:
        summary: Summary of PizzaShackAPI Documentation
        lastUpdatedBy: admin
        fileName: fileName
        visibility: API_LEVEL
        otherTypeName: otherTypeName
        type: HOWTO
        sourceUrl: sourceUrl
        sourceType: INLINE
        createdBy: admin
        name: PizzaShackDoc
        createdTime: createdTime
        documentId: 01234567-0123-0123-0123-012345678901
        lastUpdatedTime: lastUpdatedTime
        inlineContent: This is doc content. This can have many lines.
      properties:
        documentId:
          example: 01234567-0123-0123-0123-012345678901
          readOnly: true
          type: string
        name:
          example: PizzaShackDoc
          maxLength: 60
          minLength: 1
          type: string
        type:
          enum:
          - HOWTO
          - SAMPLES
          - PUBLIC_FORUM
          - SUPPORT_FORUM
          - API_MESSAGE_FORMAT
          - SWAGGER_DOC
          - OTHER
          example: HOWTO
          type: string
        summary:
          example: Summary of PizzaShackAPI Documentation
          maxLength: 32766
          minLength: 1
          type: string
        sourceType:
          enum:
          - INLINE
          - MARKDOWN
          - URL
          - FILE
          example: INLINE
          type: string
        sourceUrl:
          readOnly: true
          type: string
        fileName:
          readOnly: true
          type: string
        inlineContent:
          example: This is doc content. This can have many lines.
          type: string
        otherTypeName:
          readOnly: true
          type: string
        visibility:
          enum:
          - OWNER_ONLY
          - PRIVATE
          - API_LEVEL
          example: API_LEVEL
          type: string
        createdTime:
          readOnly: true
          type: string
        createdBy:
          example: admin
          type: string
        lastUpdatedTime:
          readOnly: true
          type: string
        lastUpdatedBy:
          example: admin
          readOnly: true
          type: string
      required:
      - name
      - sourceType
      - type
      - visibility
      title: Document
      type: object
    GraphQLSchema:
      example:
        schemaDefinition: schemaDefinition
        name: admin--HackerNewsAPI.graphql
      properties:
        name:
          example: admin--HackerNewsAPI.graphql
          type: string
        schemaDefinition:
          type: string
      required:
      - name
      title: GraphQL Schema
      type: object
    GraphQLQueryComplexityInfo:
      example:
        list:
        - complexityValue: 1
          field: name
          type: Country
        - complexityValue: 1
          field: name
          type: Country
      properties:
        list:
          items:
            $ref: '#/components/schemas/GraphQLCustomComplexityInfo'
          type: array
      title: GraphQL Query Complexity Info
      type: object
    GraphQLCustomComplexityInfo:
      example:
        complexityValue: 1
        field: name
        type: Country
      properties:
        type:
          description: |
            The type found within the schema of the API
          example: Country
          type: string
        field:
          description: |
            The field which is found under the type within the schema of the API
          example: name
          type: string
        complexityValue:
          description: |
            The complexity value allocated for the associated field under the specified type
          example: 1
          type: integer
      required:
      - complexityValue
      - field
      - type
      title: GraphQL Custom Complexity Info
      type: object
    GraphQLSchemaTypeList:
      example:
        typeList:
        - type: Country
          fieldList:
          - code
          - name
        - type: Country
          fieldList:
          - code
          - name
      properties:
        typeList:
          items:
            $ref: '#/components/schemas/GraphQLSchemaType'
          type: array
      title: List of types and corresponding fields of the GraphQL Schema
      type: object
    GraphQLSchemaType:
      example:
        type: Country
        fieldList:
        - code
        - name
      properties:
        type:
          description: |
            Type found within the GraphQL Schema
          example: Country
          type: string
        fieldList:
          description: |
            Array of fields under current type
          example:
          - code
          - name
          items:
            type: string
          type: array
      title: Single type and corresponding fields found within the GraphQL Schema
      type: object
    ThrottlingPolicyList:
      example:
        pagination:
          next: next
          total: 10
          offset: 0
          previous: previous
          limit: 1
        count: 1
        list:
        - requestCount: 50
          stopOnQuotaReach: true
          displayName: Platinum
          monetizationProperties: {}
          rateLimitTimeUnit: min
          description: Allows 50 request(s) per minute.
          dataUnit: KB
          policyLevel: api
          rateLimitCount: 10
          tierPlan: FREE
          name: Platinum
          attributes: {}
          unitTime: 60000
          timeUnit: min
          quotaPolicyType: REQUESTCOUNT
        - requestCount: 50
          stopOnQuotaReach: true
          displayName: Platinum
          monetizationProperties: {}
          rateLimitTimeUnit: min
          description: Allows 50 request(s) per minute.
          dataUnit: KB
          policyLevel: api
          rateLimitCount: 10
          tierPlan: FREE
          name: Platinum
          attributes: {}
          unitTime: 60000
          timeUnit: min
          quotaPolicyType: REQUESTCOUNT
      properties:
        count:
          description: |
            Number of Tiers returned.
          example: 1
          type: integer
        list:
          items:
            $ref: '#/components/schemas/ThrottlingPolicy'
          type: array
        pagination:
          $ref: '#/components/schemas/Pagination'
      title: Throttling policy list
      type: object
    ThrottlingPolicy:
      example:
        requestCount: 50
        stopOnQuotaReach: true
        displayName: Platinum
        monetizationProperties: {}
        rateLimitTimeUnit: min
        description: Allows 50 request(s) per minute.
        dataUnit: KB
        policyLevel: api
        rateLimitCount: 10
        tierPlan: FREE
        name: Platinum
        attributes: {}
        unitTime: 60000
        timeUnit: min
        quotaPolicyType: REQUESTCOUNT
      properties:
        name:
          example: Platinum
          type: string
        description:
          example: Allows 50 request(s) per minute.
          type: string
        policyLevel:
          enum:
          - subscription
          - api
          example: api
          type: string
        displayName:
          example: Platinum
          type: string
        attributes:
          additionalProperties:
            type: string
          description: |
            Custom attributes added to the policy policy
          example: {}
          type: object
        requestCount:
          description: |
            Maximum number of requests which can be sent within a provided unit time
          example: 50
          format: int64
          type: integer
        dataUnit:
          description: |
            Unit of data allowed to be transfered. Allowed values are "KB", "MB" and "GB"
          example: KB
          type: string
        unitTime:
          example: 60000
          format: int64
          type: integer
        timeUnit:
          example: min
          type: string
        rateLimitCount:
          default: 0
          description: Burst control request count
          example: 10
          type: integer
        rateLimitTimeUnit:
          description: Burst control time unit
          example: min
          type: string
        quotaPolicyType:
          description: Default quota limit type
          enum:
          - REQUESTCOUNT
          - BANDWIDTHVOLUME
          example: REQUESTCOUNT
          type: string
        tierPlan:
          description: |
            This attribute declares whether this policy is available under commercial or free
          enum:
          - FREE
          - COMMERCIAL
          example: FREE
          type: string
        stopOnQuotaReach:
          description: |
            By making this attribute to false, you are capabale of sending requests
            even if the request count exceeded within a unit time
          example: true
          type: boolean
        monetizationProperties:
          additionalProperties:
            type: string
          description: Properties of a tier plan which are related to monetization
          example: {}
          type: object
      required:
      - name
      - requestCount
      - stopOnQuotaReach
      - tierPlan
      - unitTime
      title: Tier
      type: object
    SubscriptionPolicyList:
      example:
        pagination:
          next: next
          total: 10
          offset: 0
          previous: previous
          limit: 1
        count: 1
        list:
        - null
        - null
      properties:
        count:
          description: |
            Number of Tiers returned.
          example: 1
          type: integer
        list:
          description: |
            Array of SubscriptionPolicies
          items:
            $ref: '#/components/schemas/SubscriptionPolicy'
          type: array
        pagination:
          $ref: '#/components/schemas/Pagination'
      title: Subscription policy list
      type: object
    SubscriptionList:
      example:
        pagination:
          next: next
          total: 10
          offset: 0
          previous: previous
          limit: 1
        count: 1
        list:
        - subscriptionStatus: BLOCKED
          throttlingPolicy: Unlimited
          subscriptionId: 01234567-0123-0123-0123-012345678901
          applicationInfo:
            subscriber: admin
            name: CalculatorApp
            subscriptionCount: 0
            description: Sample calculator application
            applicationId: 01234567-0123-0123-0123-012345678901
        - subscriptionStatus: BLOCKED
          throttlingPolicy: Unlimited
          subscriptionId: 01234567-0123-0123-0123-012345678901
          applicationInfo:
            subscriber: admin
            name: CalculatorApp
            subscriptionCount: 0
            description: Sample calculator application
            applicationId: 01234567-0123-0123-0123-012345678901
      properties:
        count:
          description: |
            Number of Subscriptions returned.
          example: 1
          type: integer
        list:
          items:
            $ref: '#/components/schemas/Subscription'
          type: array
        pagination:
          $ref: '#/components/schemas/Pagination'
      title: Subscription List
      type: object
    Subscription:
      example:
        subscriptionStatus: BLOCKED
        throttlingPolicy: Unlimited
        subscriptionId: 01234567-0123-0123-0123-012345678901
        applicationInfo:
          subscriber: admin
          name: CalculatorApp
          subscriptionCount: 0
          description: Sample calculator application
          applicationId: 01234567-0123-0123-0123-012345678901
      properties:
        subscriptionId:
          example: 01234567-0123-0123-0123-012345678901
          type: string
        applicationInfo:
          $ref: '#/components/schemas/ApplicationInfo'
        throttlingPolicy:
          example: Unlimited
          type: string
        subscriptionStatus:
          enum:
          - BLOCKED
          - PROD_ONLY_BLOCKED
          - UNBLOCKED
          - ON_HOLD
          - REJECTED
          - TIER_UPDATE_PENDING
          - DELETE_PENDING
          example: BLOCKED
          type: string
      required:
      - applicationInfo
      - subscriptionId
      - subscriptionStatus
      - throttlingPolicy
      title: Subscription
      type: object
    ThrottlePolicy:
      discriminator:
        propertyName: type
      properties:
        policyId:
          description: Id of policy
          example: 0c6439fd-9b16-3c2e-be6e-1086e0b9aa93
          readOnly: true
          type: string
        policyName:
          description: Name of policy
          example: 30PerMin
          maxLength: 60
          minLength: 1
          type: string
        displayName:
          description: Display name of the policy
          example: 30PerMin
          maxLength: 512
          type: string
        description:
          description: Description of the policy
          example: Allows 30 request per minute
          maxLength: 1024
          type: string
        isDeployed:
          default: false
          description: Indicates whether the policy is deployed successfully or not.
          type: boolean
        type:
          description: Indicates the type of throttle policy
          type: string
      required:
      - policyName
      title: Generic Throttling Policy
      type: object
    GraphQLQuery:
      properties:
        graphQLMaxComplexity:
          description: Maximum Complexity of the GraphQL query
          example: 400
          type: integer
        graphQLMaxDepth:
          description: Maximum Depth of the GraphQL query
          example: 10
          type: integer
      title: GraphQL Query
      type: object
    ThrottleLimitBase:
      properties:
        timeUnit:
          description: Unit of the time. Allowed values are "sec", "min", "hour",
            "day"
          example: min
          type: string
        unitTime:
          description: Time limit that the throttling limit applies.
          example: 10
          type: integer
      required:
      - timeUnit
      - unitTime
      title: Throttle Limit Base
      type: object
    ThrottleLimit:
      properties:
        type:
          description: |
            Type of the throttling limit. Allowed values are "REQUESTCOUNTLIMIT" and "BANDWIDTHLIMIT".
            Please see schemas of "RequestCountLimit" and "BandwidthLimit" throttling limit types in
            Definitions section.
          enum:
          - REQUESTCOUNTLIMIT
          - BANDWIDTHLIMIT
          - EVENTCOUNTLIMIT
          example: REQUESTCOUNTLIMIT
          type: string
        requestCount:
          $ref: '#/components/schemas/RequestCountLimit'
        bandwidth:
          $ref: '#/components/schemas/BandwidthLimit'
        eventCount:
          $ref: '#/components/schemas/EventCountLimit'
      required:
      - type
      title: Throttle Limit
      type: object
    MonetizationInfo:
      properties:
        monetizationPlan:
          description: Flag to indicate the monetization plan
          enum:
          - FIXEDRATE
          - DYNAMICRATE
          example: FixedRate
          type: string
        properties:
          additionalProperties:
            type: string
          description: Map of custom properties related to each monetization plan
          type: object
      required:
      - monetizationPlan
      - properties
      title: API monetization details object
      type: object
    BandwidthLimit:
      allOf:
      - $ref: '#/components/schemas/ThrottleLimitBase'
      - $ref: '#/components/schemas/BandwidthLimit_allOf'
      title: Bandwidth Limit object
    RequestCountLimit:
      allOf:
      - $ref: '#/components/schemas/ThrottleLimitBase'
      - $ref: '#/components/schemas/RequestCountLimit_allOf'
      title: Request Count Limit object
    EventCountLimit:
      allOf:
      - $ref: '#/components/schemas/ThrottleLimitBase'
      - $ref: '#/components/schemas/EventCountLimit_allOf'
      title: Event Count Limit object
    SubscriptionPolicy:
      allOf:
      - $ref: '#/components/schemas/SubscriptionPolicy_allOf'
      title: Subscription Throttling Policy
    CustomAttribute:
      properties:
        name:
          description: Name of the custom attribute
          example: customAttr1
          type: string
        value:
          description: Value of the custom attribute
          example: value1
          type: string
      required:
      - name
      - value
      title: Name-Value pair
      type: object
    SubscriptionThrottlePolicyPermission:
      properties:
        permissionType:
          enum:
          - ALLOW
          - DENY
          example: deny
          type: string
        roles:
          example:
          - Internal/everyone
          items:
            type: string
          type: array
      required:
      - permissionType
      - roles
      title: SubscriptionThrottlePolicyPermission
      type: object
    APIMonetizationUsage:
      example:
        properties:
          key: properties
      properties:
        properties:
          additionalProperties:
            type: string
          description: Map of custom properties related to monetization usage
          type: object
      title: API monetization usage object
      type: object
    APIRevenue:
      example:
        properties:
          key: properties
      properties:
        properties:
          additionalProperties:
            type: string
          description: Map of custom properties related to API revenue
          type: object
      title: API revenue data object
      type: object
    MediationPolicy:
      properties:
        id:
          example: 69ea3fa6-55c6-472e-896d-e449dd34a824
          type: string
        name:
          example: log_in_message
          type: string
        type:
          example: in
          type: string
        shared:
          example: true
          type: boolean
      required:
      - name
      title: Mediation Policy
      type: object
    Error:
      properties:
        code:
          format: int64
          type: integer
        message:
          description: Error message.
          type: string
        description:
          description: |
            A detail description about the error message.
          type: string
        moreInfo:
          description: |
            Preferably an url with more details about the error.
          type: string
        error:
          description: |
            If there are more than one error list them out.
            For example, list out validation errors by each field.
          items:
            $ref: '#/components/schemas/ErrorListItem'
          type: array
      required:
      - code
      - message
      title: Error object returned with 4XX HTTP Status
      type: object
    ErrorListItem:
      example:
        code: code
        description: description
        message: message
      properties:
        code:
          type: string
        message:
          description: |
            Description about individual errors occurred
          type: string
        description:
          description: |
            A detail description about the error message.
          type: string
      required:
      - code
      - message
      title: Description of individual errors that may have occurred during a request.
      type: object
    Environment:
      example:
        endpointURIs:
        - protocol: default
          endpointURI: default
        - protocol: default
          endpointURI: default
        provider: wso2
        showInApiConsole: true
        displayName: Default
        serverUrl: https://localhost:9443/services/
        name: default
        id: id
        additionalProperties:
        - value: wso2
          key: Organization
        - value: wso2
          key: Organization
        type: hybrid
        vhosts:
        - websubHttpPort: 9021
          httpContext: pets
          wssPort: 8099
          httpPort: 80
          wsPort: 9099
          host: mg.wso2.com
          websubHttpsPort: 8021
          httpsPort: 443
        - websubHttpPort: 9021
          httpContext: pets
          wssPort: 8099
          httpPort: 80
          wsPort: 9099
          host: mg.wso2.com
          websubHttpsPort: 8021
          httpsPort: 443
      properties:
        id:
          type: string
        name:
          example: default
          type: string
        displayName:
          example: Default
          type: string
        type:
          example: hybrid
          type: string
        serverUrl:
          example: https://localhost:9443/services/
          type: string
        provider:
          example: wso2
          type: string
        showInApiConsole:
          example: true
          type: boolean
        vhosts:
          items:
            $ref: '#/components/schemas/VHost'
          type: array
        endpointURIs:
          items:
            $ref: '#/components/schemas/GatewayEnvironmentProtocolURI'
          type: array
        additionalProperties:
          items:
            $ref: '#/components/schemas/AdditionalProperty'
          type: array
      required:
      - id
      - name
      - serverUrl
      - showInApiConsole
      - type
      title: Environment
      type: object
    EnvironmentList:
      properties:
        count:
          description: |
            Number of Environments returned.
          example: 1
          type: integer
        list:
          items:
            $ref: '#/components/schemas/Environment'
          type: array
      title: Environment List
      type: object
    AdditionalProperty:
      example:
        value: wso2
        key: Organization
      properties:
        key:
          example: Organization
          type: string
        value:
          example: wso2
          type: string
      title: Additional Gateway Properties
      type: object
    VHost:
      example:
        websubHttpPort: 9021
        httpContext: pets
        wssPort: 8099
        httpPort: 80
        wsPort: 9099
        host: mg.wso2.com
        websubHttpsPort: 8021
        httpsPort: 443
      properties:
        host:
          example: mg.wso2.com
          type: string
        httpContext:
          example: pets
          type: string
        httpPort:
          example: 80
          type: integer
        httpsPort:
          example: 443
          type: integer
        wsPort:
          example: 9099
          type: integer
        wssPort:
          example: 8099
          type: integer
        websubHttpPort:
          example: 9021
          type: integer
        websubHttpsPort:
          example: 8021
          type: integer
      title: Virtual Host
      type: object
    FileInfo:
      example:
        relativePath: apis/01234567-0123-0123-0123-012345678901/thumbnail
        mediaType: image/jpeg
      properties:
        relativePath:
          description: relative location of the file (excluding the base context and
            host of the Publisher API)
          example: apis/01234567-0123-0123-0123-012345678901/thumbnail
          type: string
        mediaType:
          description: media-type of the file
          example: image/jpeg
          type: string
      title: File Information including meta data
      type: object
    APIMaxTps:
      example:
        production: 1000
        sandbox: 1000
      properties:
        production:
          example: 1000
          format: int64
          type: integer
        sandbox:
          example: 1000
          format: int64
          type: integer
      type: object
    APIBusinessInformation:
      properties:
        businessOwner:
          example: businessowner
          maxLength: 120
          type: string
        businessOwnerEmail:
          example: businessowner@wso2.com
          type: string
        technicalOwner:
          example: technicalowner
          maxLength: 120
          type: string
        technicalOwnerEmail:
          example: technicalowner@wso2.com
          type: string
      type: object
    WebsubSubscriptionConfiguration:
      example:
        signingAlgorithm: signingAlgorithm
        enable: false
        signatureHeader: signatureHeader
        secret: secret
      properties:
        enable:
          default: false
          description: Toggle enable WebSub subscription configuration
          type: boolean
        secret:
          description: Secret key to be used for subscription
          type: string
        signingAlgorithm:
          description: The algorithm used for signing
          type: string
        signatureHeader:
          description: The header uses to send the signature
          type: string
      type: object
    APICorsConfiguration:
      description: |
        CORS configuration for the API
      example:
        accessControlAllowOrigins:
        - accessControlAllowOrigins
        - accessControlAllowOrigins
        accessControlAllowCredentials: false
        corsConfigurationEnabled: false
        accessControlAllowHeaders:
        - accessControlAllowHeaders
        - accessControlAllowHeaders
        accessControlAllowMethods:
        - accessControlAllowMethods
        - accessControlAllowMethods
      properties:
        corsConfigurationEnabled:
          default: false
          type: boolean
        accessControlAllowOrigins:
          items:
            type: string
          type: array
        accessControlAllowCredentials:
          default: false
          type: boolean
        accessControlAllowHeaders:
          items:
            type: string
          type: array
        accessControlAllowMethods:
          items:
            type: string
          type: array
      type: object
    Endpoint:
      properties:
        id:
          description: |
            UUID of the Endpoint entry
          example: 01234567-0123-0123-0123-012345678901
          type: string
        name:
          description: |
            name of the Endpoint entry
          example: Endpoint 1
          type: string
        endpointConfig:
          $ref: '#/components/schemas/Endpoint_endpointConfig'
        endpointSecurity:
          $ref: '#/components/schemas/Endpoint_endpointSecurity'
        maxTps:
          description: Endpoint max tps
          example: 1000
          format: int64
          type: integer
        type:
          example: http
          type: string
      title: Endpoints
      type: object
    EndpointConfig:
      properties:
        url:
          description: |
            Service url of the endpoint
          example: http://localhost:8280
          type: string
        timeout:
          description: |
            Time out of the endpoint
          example: "1000"
          type: string
        attributes:
          items:
            $ref: '#/components/schemas/EndpointConfig_attributes'
          type: array
      title: Endpoint Configuration
      type: object
    EndpointList:
      properties:
        count:
          description: |
            Number of Endpoints returned.
          example: 1
          type: integer
        list:
          items:
            $ref: '#/components/schemas/Endpoint'
          type: array
      title: Endpoint List
      type: object
    Scope:
      example:
        displayName: api_view
        bindings:
        - admin
        - Internal/creator
        - Internal/publisher
        name: apim:api_view
        description: This Scope can used to view Apis
        id: 01234567-0123-0123-0123-012345678901
        usageCount: 3
      properties:
        id:
          description: |
            UUID of the Scope. Valid only for shared scopes.
          example: 01234567-0123-0123-0123-012345678901
          readOnly: true
          type: string
        name:
          description: |
            name of Scope
          example: apim:api_view
          maxLength: 255
          minLength: 1
          type: string
        displayName:
          description: |
            display name of Scope
          example: api_view
          maxLength: 255
          type: string
        description:
          description: |
            description of Scope
          example: This Scope can used to view Apis
          maxLength: 512
          type: string
        bindings:
          description: |
            role bindings list of the Scope
          example:
          - admin
          - Internal/creator
          - Internal/publisher
          items:
            type: string
          type: array
        usageCount:
          description: |
            usage count of Scope
          example: 3
          readOnly: true
          type: integer
      required:
      - name
      title: Scope
      type: object
    SharedScopeUsage:
      example:
        usedApiList:
        - usedResourceList:
          - verb: POST
            target: /add
          - verb: POST
            target: /add
          provider: admin
          name: CalculatorAPI
          context: CalculatorAPI
          version: 1.0.0
        - usedResourceList:
          - verb: POST
            target: /add
          - verb: POST
            target: /add
          provider: admin
          name: CalculatorAPI
          context: CalculatorAPI
          version: 1.0.0
        name: apim:api_view
        id: 01234567-0123-0123-0123-012345678901
      properties:
        id:
          description: |
            UUID of the Scope. Valid only for shared scopes.
          example: 01234567-0123-0123-0123-012345678901
          type: string
        name:
          description: |
            name of Scope
          example: apim:api_view
          type: string
        usedApiList:
          description: |
            API list which have used the shared scope
          items:
            $ref: '#/components/schemas/SharedScopeUsedAPIInfo'
          type: array
      required:
      - id
      - name
      title: SharedScopeUsage
      type: object
    SharedScopeUsedAPIInfo:
      example:
        usedResourceList:
        - verb: POST
          target: /add
        - verb: POST
          target: /add
        provider: admin
        name: CalculatorAPI
        context: CalculatorAPI
        version: 1.0.0
      properties:
        name:
          example: CalculatorAPI
          type: string
        context:
          example: CalculatorAPI
          type: string
        version:
          example: 1.0.0
          type: string
        provider:
          description: |
            If the provider value is not given user invoking the api will be used as the provider.
          example: admin
          type: string
        usedResourceList:
          description: |
            Resource list which have used the shared scope within this API
          items:
            $ref: '#/components/schemas/SharedScopeUsedAPIResourceInfo'
          type: array
      required:
      - context
      - name
      - version
      title: API object using shared scope
      type: object
    SharedScopeUsedAPIResourceInfo:
      example:
        verb: POST
        target: /add
      properties:
        target:
          example: /add
          type: string
        verb:
          example: POST
          type: string
      title: API resource object using shared scope
      type: object
    APIScope:
      example:
        shared: true
        scope:
          displayName: api_view
          bindings:
          - admin
          - Internal/creator
          - Internal/publisher
          name: apim:api_view
          description: This Scope can used to view Apis
          id: 01234567-0123-0123-0123-012345678901
          usageCount: 3
      properties:
        scope:
          $ref: '#/components/schemas/Scope'
        shared:
          description: |
            States whether scope is shared. This will not be honored when updating/adding scopes to APIs or when
            adding/updating Shared Scopes.
          example: true
          type: boolean
      required:
      - scope
      title: APIScope
      type: object
    APIOperations:
      example:
        usedProductIds: []
        payloadSchema: payloadSchema
        amznResourceName: amznResourceName
        operationPolicies:
          request:
          - policyVersion: v1
            policyId: policyId
            policyName: policyName
            parameters:
              key: '{}'
          - policyVersion: v1
            policyId: policyId
            policyName: policyName
            parameters:
              key: '{}'
          response:
          - policyVersion: v1
            policyId: policyId
            policyName: policyName
            parameters:
              key: '{}'
          - policyVersion: v1
            policyId: policyId
            policyName: policyName
            parameters:
              key: '{}'
          fault:
          - policyVersion: v1
            policyId: policyId
            policyName: policyName
            parameters:
              key: '{}'
          - policyVersion: v1
            policyId: policyId
            policyName: policyName
            parameters:
              key: '{}'
        verb: POST
        uriMapping: uriMapping
        id: postapiresource
        throttlingPolicy: Unlimited
        scopes: []
        amznResourceTimeout: 0
        authType: Application & Application User
        target: /order/{orderId}
      properties:
        id:
          example: postapiresource
          type: string
        target:
          example: /order/{orderId}
          type: string
        verb:
          example: POST
          type: string
        authType:
          default: Any
          example: Application & Application User
          type: string
        throttlingPolicy:
          example: Unlimited
          type: string
        scopes:
          example: []
          items:
            type: string
          type: array
        usedProductIds:
          example: []
          items:
            type: string
          type: array
        amznResourceName:
          type: string
        amznResourceTimeout:
          type: integer
        payloadSchema:
          type: string
        uriMapping:
          type: string
        operationPolicies:
          $ref: '#/components/schemas/APIOperationPolicies'
      title: Operation
      type: object
    ScopeList:
      example:
        pagination:
          next: next
          total: 10
          offset: 0
          previous: previous
          limit: 1
        count: 1
        list:
        - displayName: api_view
          bindings:
          - admin
          - Internal/creator
          - Internal/publisher
          name: apim:api_view
          description: This Scope can used to view Apis
          id: 01234567-0123-0123-0123-012345678901
          usageCount: 3
        - displayName: api_view
          bindings:
          - admin
          - Internal/creator
          - Internal/publisher
          name: apim:api_view
          description: This Scope can used to view Apis
          id: 01234567-0123-0123-0123-012345678901
          usageCount: 3
      properties:
        count:
          description: |
            Number of Scopes returned.
          example: 1
          type: integer
        list:
          items:
            $ref: '#/components/schemas/Scope'
          type: array
        pagination:
          $ref: '#/components/schemas/Pagination'
      title: Scope List
      type: object
    ExternalStore:
      example:
        endpoint: http://localhost:9764/store
        displayName: UKStore
        id: Store123#
        type: wso2
      properties:
        id:
          description: |
            The external store identifier, which is a unique value.
          example: Store123#
          type: string
        displayName:
          description: |
            The name of the external API Store that is displayed in the Publisher UI.
          example: UKStore
          type: string
        type:
          description: |
            The type of the Store. This can be a WSO2-specific API Store or an external one.
          example: wso2
          type: string
        endpoint:
          description: |
            The endpoint URL of the external store
          example: http://localhost:9764/store
          type: string
      title: External Store
      type: object
    APIExternalStore:
      example:
        lastUpdatedTime: 2019-09-09T13:57:16.229
        id: Store123#
      properties:
        id:
          description: |
            The external store identifier, which is a unique value.
          example: Store123#
          type: string
        lastUpdatedTime:
          description: |
            The recent timestamp which a given API is updated in the external store.
          example: 2019-09-09T13:57:16.229
          type: string
      title: API External Store
      type: object
    APIExternalStoreList:
      example:
        count: 1
        list:
        - lastUpdatedTime: 2019-09-09T13:57:16.229
          id: Store123#
        - lastUpdatedTime: 2019-09-09T13:57:16.229
          id: Store123#
      properties:
        count:
          description: |
            Number of external stores returned.
          example: 1
          type: integer
        list:
          items:
            $ref: '#/components/schemas/APIExternalStore'
          type: array
      title: API External Store List
      type: object
    ExternalStoreList:
      properties:
        count:
          description: |
            Number of external stores returned.
          example: 1
          type: integer
        list:
          items:
            $ref: '#/components/schemas/ExternalStore'
          type: array
      title: External Store List
      type: object
    Certificates:
      description: Representation of a list of certificates
      example:
        pagination:
          next: next
          total: 10
          offset: 0
          previous: previous
          limit: 1
        certificates:
        - endpoint: www.abc.com
          alias: wso2carbon
        - endpoint: www.abc.com
          alias: wso2carbon
        count: 1
      properties:
        count:
          example: 1
          type: integer
        certificates:
          items:
            $ref: '#/components/schemas/CertMetadata'
          type: array
        pagination:
          $ref: '#/components/schemas/Pagination'
      title: Certificates
      type: object
    CertMetadata:
      description: Representation of the details of a certificate
      example:
        endpoint: www.abc.com
        alias: wso2carbon
      properties:
        alias:
          example: wso2carbon
          type: string
        endpoint:
          example: www.abc.com
          type: string
      title: Certificate
      type: object
    CertificateInfo:
      example:
        subject: CN=wso2.com, OU=wso2, O=wso2, L=Colombo, ST=Western, C=LK
        validity:
          from: 12-12-2017
          to: 01-01-2019
        version: V3
        status: Active
      properties:
        status:
          example: Active
          type: string
        validity:
          $ref: '#/components/schemas/CertificateValidity'
        version:
          example: V3
          type: string
        subject:
          example: CN=wso2.com, OU=wso2, O=wso2, L=Colombo, ST=Western, C=LK
          type: string
      title: Certificate information
      type: object
    CertificateValidity:
      example:
        from: 12-12-2017
        to: 01-01-2019
      properties:
        from:
          example: 12-12-2017
          type: string
        to:
          example: 01-01-2019
          type: string
      title: Certificate Valid period
      type: object
    ClientCertificates:
      description: Representation of a list of client certificates
      example:
        pagination:
          next: next
          total: 10
          offset: 0
          previous: previous
          limit: 1
        certificates:
        - tier: Gold
          alias: wso2carbon
          apiId: 64eca60b-2e55-4c38-8603-e9e6bad7d809
        - tier: Gold
          alias: wso2carbon
          apiId: 64eca60b-2e55-4c38-8603-e9e6bad7d809
        count: 1
      properties:
        count:
          example: 1
          type: integer
        certificates:
          items:
            $ref: '#/components/schemas/ClientCertMetadata'
          type: array
        pagination:
          $ref: '#/components/schemas/Pagination'
      title: Client Certificates
      type: object
    ClientCertMetadata:
      description: Meta data of certificate
      example:
        tier: Gold
        alias: wso2carbon
        apiId: 64eca60b-2e55-4c38-8603-e9e6bad7d809
      properties:
        alias:
          example: wso2carbon
          type: string
        apiId:
          example: 64eca60b-2e55-4c38-8603-e9e6bad7d809
          type: string
        tier:
          example: Gold
          type: string
      title: Client certificate meta data
      type: object
    LifecycleState:
      example:
        state: Created
        checkItems:
        - requiredStates: []
          name: Deprecate old versions after publishing the API
          value: false
        - requiredStates: []
          name: Deprecate old versions after publishing the API
          value: false
        availableTransitions:
        - targetState: Published
          event: Publish
        - targetState: Published
          event: Publish
      properties:
        state:
          example: Created
          type: string
        checkItems:
          items:
            $ref: '#/components/schemas/LifecycleState_checkItems'
          type: array
        availableTransitions:
          items:
            $ref: '#/components/schemas/LifecycleState_availableTransitions'
          type: array
      title: Lifecycle State
      type: object
    LifecycleHistory:
      example:
        count: 1
        list:
        - updatedTime: 2019-02-31T23:59:60Z
          postState: Published
          user: admin
          previousState: Created
        - updatedTime: 2019-02-31T23:59:60Z
          postState: Published
          user: admin
          previousState: Created
      properties:
        count:
          example: 1
          type: integer
        list:
          items:
            $ref: '#/components/schemas/LifecycleHistoryItem'
          type: array
      title: Lifecycle history item list
      type: object
    LifecycleHistoryItem:
      example:
        updatedTime: 2019-02-31T23:59:60Z
        postState: Published
        user: admin
        previousState: Created
      properties:
        previousState:
          example: Created
          type: string
        postState:
          example: Published
          type: string
        user:
          example: admin
          type: string
        updatedTime:
          example: 2019-02-31T23:59:60Z
          format: dateTime
          type: string
      title: Lifecycle history item
      type: object
    WorkflowResponse:
      example:
        lifecycleState:
          state: Created
          checkItems:
          - requiredStates: []
            name: Deprecate old versions after publishing the API
            value: false
          - requiredStates: []
            name: Deprecate old versions after publishing the API
            value: false
          availableTransitions:
          - targetState: Published
            event: Publish
          - targetState: Published
            event: Publish
        workflowStatus: APPROVED
        jsonPayload: jsonPayload
      properties:
        workflowStatus:
          description: |
            This attribute declares whether this workflow task is approved or rejected.
          enum:
          - CREATED
          - APPROVED
          - REJECTED
          - REGISTERED
          example: APPROVED
          type: string
        jsonPayload:
          description: |
            Attributes that returned after the workflow execution
          type: string
        lifecycleState:
          $ref: '#/components/schemas/LifecycleState'
      required:
      - workflowStatus
      title: workflow Response
      type: object
    OpenAPIDefinitionValidationResponse:
      example:
        isValid: true
        content: content
        errors:
        - code: code
          description: description
          message: message
        - code: code
          description: description
          message: message
        info:
          endpoints:
          - https://localhost:9443/am/sample/pizzashack/v1/api/
          - https://localhost:9443/am/sample/pizzashack/v1/api/
          name: PetStore
          context: /petstore
          description: A sample API that uses a petstore as an example to demonstrate
            swagger-2.0 specification
          openAPIVersion: 3.0.0
          version: 1.0.0
      properties:
        isValid:
          description: |
            This attribute declares whether this definition is valid or not.
          example: true
          type: boolean
        content:
          description: |
            OpenAPI definition content.
          type: string
        info:
          $ref: '#/components/schemas/OpenAPIDefinitionValidationResponse_info'
        errors:
          description: |
            If there are more than one error list them out.
            For example, list out validation errors by each field.
          items:
            $ref: '#/components/schemas/ErrorListItem'
          type: array
      required:
      - isValid
      title: OpenAPI Definition Validation Response
      type: object
    WSDLValidationResponse:
      example:
        wsdlInfo:
          endpoints:
          - name: StockQuoteSoap
            location: http://www.webservicex.net/stockquote.asmx
          - name: StockQuoteSoap
            location: http://www.webservicex.net/stockquote.asmx
          version: "1.1"
        isValid: true
        errors:
        - code: code
          description: description
          message: message
        - code: code
          description: description
          message: message
      properties:
        isValid:
          description: |
            This attribute declares whether this definition is valid or not.
          example: true
          type: boolean
        errors:
          description: |
            If there are more than one error list them out.
            For example, list out validation errors by each field.
          items:
            $ref: '#/components/schemas/ErrorListItem'
          type: array
        wsdlInfo:
          $ref: '#/components/schemas/WSDLValidationResponse_wsdlInfo'
      required:
      - isValid
      title: WSDL Definition Validation Response
      type: object
    GraphQLValidationResponse:
      example:
        isValid: true
        errorMessage: errorMessage
        graphQLInfo:
          graphQLSchema:
            schemaDefinition: schemaDefinition
            name: admin--HackerNewsAPI.graphql
          operations:
          - usedProductIds: []
            payloadSchema: payloadSchema
            amznResourceName: amznResourceName
            operationPolicies:
              request:
              - policyVersion: v1
                policyId: policyId
                policyName: policyName
                parameters:
                  key: '{}'
              - policyVersion: v1
                policyId: policyId
                policyName: policyName
                parameters:
                  key: '{}'
              response:
              - policyVersion: v1
                policyId: policyId
                policyName: policyName
                parameters:
                  key: '{}'
              - policyVersion: v1
                policyId: policyId
                policyName: policyName
                parameters:
                  key: '{}'
              fault:
              - policyVersion: v1
                policyId: policyId
                policyName: policyName
                parameters:
                  key: '{}'
              - policyVersion: v1
                policyId: policyId
                policyName: policyName
                parameters:
                  key: '{}'
            verb: POST
            uriMapping: uriMapping
            id: postapiresource
            throttlingPolicy: Unlimited
            scopes: []
            amznResourceTimeout: 0
            authType: Application & Application User
            target: /order/{orderId}
          - usedProductIds: []
            payloadSchema: payloadSchema
            amznResourceName: amznResourceName
            operationPolicies:
              request:
              - policyVersion: v1
                policyId: policyId
                policyName: policyName
                parameters:
                  key: '{}'
              - policyVersion: v1
                policyId: policyId
                policyName: policyName
                parameters:
                  key: '{}'
              response:
              - policyVersion: v1
                policyId: policyId
                policyName: policyName
                parameters:
                  key: '{}'
              - policyVersion: v1
                policyId: policyId
                policyName: policyName
                parameters:
                  key: '{}'
              fault:
              - policyVersion: v1
                policyId: policyId
                policyName: policyName
                parameters:
                  key: '{}'
              - policyVersion: v1
                policyId: policyId
                policyName: policyName
                parameters:
                  key: '{}'
            verb: POST
            uriMapping: uriMapping
            id: postapiresource
            throttlingPolicy: Unlimited
            scopes: []
            amznResourceTimeout: 0
            authType: Application & Application User
            target: /order/{orderId}
      properties:
        isValid:
          description: |
            This attribute declares whether this definition is valid or not.
          example: true
          type: boolean
        errorMessage:
          description: |
            This attribute declares the validation error message
          type: string
        graphQLInfo:
          $ref: '#/components/schemas/GraphQLValidationResponse_graphQLInfo'
      required:
      - errorMessage
      - isValid
      title: GraphQL API definition validation Response
      type: object
    ApiEndpointValidationResponse:
      example:
        error: error
        statusMessage: OK
        statusCode: 200
      properties:
        statusCode:
          description: HTTP status code
          example: 200
          type: integer
        statusMessage:
          description: string
          example: OK
          type: string
        error:
          description: |
            If an error occurs, the error message will be set to this property.
            If not, this will remain null.
          type: string
      required:
      - statusCode
      - statusMessage
      title: API Endpoint url validation response
      type: object
    ThreatProtectionPolicyList:
      properties:
        list:
          items:
            $ref: '#/components/schemas/ThreatProtectionPolicy'
          type: array
      title: Threat Protection Policy List
      type: object
    ThreatProtectionPolicy:
      properties:
        uuid:
          description: Policy ID
          type: string
        name:
          description: Name of the policy
          type: string
        type:
          description: Type of the policy
          type: string
        policy:
          description: policy as a json string
          type: string
      required:
      - name
      - policy
      - type
      title: Threat Protection Policy Schema
      type: object
    SearchResultList:
      example:
        pagination:
          next: next
          total: 10
          offset: 0
          previous: previous
          limit: 1
        count: 1
        list:
        - '{}'
        - '{}'
      properties:
        count:
          description: |
            Number of results returned.
          example: 1
          type: integer
        list:
          items:
            type: object
          type: array
        pagination:
          $ref: '#/components/schemas/Pagination'
      title: Unified Search Result List
      type: object
    SearchResult:
      discriminator:
        propertyName: name
      properties:
        id:
          example: 01234567-0123-0123-0123-012345678901
          type: string
        name:
          example: TestAPI
          type: string
        type:
          enum:
          - DOC
          - API
          - APIProduct
          example: API
          type: string
        transportType:
          description: Accepted values are HTTP, WS, SOAPTOREST, GRAPHQL
          type: string
      required:
      - name
      title: Search Result
      type: object
    APISearchResult:
      allOf:
      - $ref: '#/components/schemas/SearchResult'
      - $ref: '#/components/schemas/APISearchResult_allOf'
      title: API Result
    APIProductSearchResult:
      allOf:
      - $ref: '#/components/schemas/SearchResult'
      - $ref: '#/components/schemas/APIProductSearchResult_allOf'
      title: API Result
    APIMonetizationInfo:
      example:
        enabled: true
        properties:
          key: properties
      properties:
        enabled:
          description: Flag to indicate the monetization status
          example: true
          type: boolean
        properties:
          additionalProperties:
            type: string
          description: Map of custom properties related to monetization
          type: object
      required:
      - enabled
      title: API monetization object
      type: object
    DocumentSearchResult:
      allOf:
      - $ref: '#/components/schemas/SearchResult'
      - $ref: '#/components/schemas/DocumentSearchResult_allOf'
      title: Document Result
    MockResponsePayloadList:
      example:
        list:
        - path: /menu
          verb: POST
          content: "var accept = \"\\\"\"+mc.getProperty('AcceptHeader')+\"\\\"\"\
            ;\nvar responseCode = mc.getProperty('query.param.responseCode');\nvar\
            \ responseCodeStr = \"\\\"\"+responseCode+\"\\\"\";\nvar responses = [];\n\
            \nif (!responses[200]) {\n responses [200] = [];\n}\nresponses[200][\"\
            application/json\"] = \n[ {\n  \"price\" : \"string\",\n  \"description\"\
            \ : \"string\",\n  \"name\" : \"string\",\n  \"image\" : \"string\"\n\
            } ]\n\n/*if (!responses[304]) {\n  responses[304] = [];\n}\nresponses[304][\"\
            application/(json or xml)\"] = {}/<>*/\n\nif (!responses[406]) {\n responses\
            \ [406] = [];\n}\nresponses[406][\"application/json\"] = \n{\n  \"message\"\
            \ : \"string\",\n  \"error\" : [ {\n    \"message\" : \"string\",\n  \
            \  \"code\" : 0\n  } ],\n  \"description\" : \"string\",\n  \"code\" :\
            \ 0,\n  \"moreInfo\" : \"string\"\n}\n\nresponses[501] = [];\nresponses[501][\"\
            application/json\"] = {\n\"code\" : 501,\n\"description\" : \"Not Implemented\"\
            }\nresponses[501][\"application/xml\"] = <response><code>501</code><description>Not\
            \ Implemented</description></response>;\n\nif (!responses[responseCode])\
            \ {\n responseCode = 501;\n}\n\nif (responseCode == null) {\n responseCode\
            \ = 200;\n responseCodeStr = \"200\";\n}\n\nif (accept == null || !responses[responseCode][accept])\
            \ {\n accept = \"application/json\";\n}\n\nif (accept === \"application/json\"\
            ) {\n mc.setProperty('CONTENT_TYPE', 'application/json');\n mc.setProperty('HTTP_SC',\
            \ responseCodeStr);\n mc.setPayloadJSON(responses[responseCode][\"application/json\"\
            ]);\n} else if (accept === \"application/xml\") {\n mc.setProperty('CONTENT_TYPE',\
            \ 'application/xml');\n mc.setProperty('HTTP_SC', responseCodeStr);\n\
            \ mc.setPayloadXML(responses[responseCode][\"application/xml\"]);\n}"
        - path: /menu
          verb: POST
          content: "var accept = \"\\\"\"+mc.getProperty('AcceptHeader')+\"\\\"\"\
            ;\nvar responseCode = mc.getProperty('query.param.responseCode');\nvar\
            \ responseCodeStr = \"\\\"\"+responseCode+\"\\\"\";\nvar responses = [];\n\
            \nif (!responses[200]) {\n responses [200] = [];\n}\nresponses[200][\"\
            application/json\"] = \n[ {\n  \"price\" : \"string\",\n  \"description\"\
            \ : \"string\",\n  \"name\" : \"string\",\n  \"image\" : \"string\"\n\
            } ]\n\n/*if (!responses[304]) {\n  responses[304] = [];\n}\nresponses[304][\"\
            application/(json or xml)\"] = {}/<>*/\n\nif (!responses[406]) {\n responses\
            \ [406] = [];\n}\nresponses[406][\"application/json\"] = \n{\n  \"message\"\
            \ : \"string\",\n  \"error\" : [ {\n    \"message\" : \"string\",\n  \
            \  \"code\" : 0\n  } ],\n  \"description\" : \"string\",\n  \"code\" :\
            \ 0,\n  \"moreInfo\" : \"string\"\n}\n\nresponses[501] = [];\nresponses[501][\"\
            application/json\"] = {\n\"code\" : 501,\n\"description\" : \"Not Implemented\"\
            }\nresponses[501][\"application/xml\"] = <response><code>501</code><description>Not\
            \ Implemented</description></response>;\n\nif (!responses[responseCode])\
            \ {\n responseCode = 501;\n}\n\nif (responseCode == null) {\n responseCode\
            \ = 200;\n responseCodeStr = \"200\";\n}\n\nif (accept == null || !responses[responseCode][accept])\
            \ {\n accept = \"application/json\";\n}\n\nif (accept === \"application/json\"\
            ) {\n mc.setProperty('CONTENT_TYPE', 'application/json');\n mc.setProperty('HTTP_SC',\
            \ responseCodeStr);\n mc.setPayloadJSON(responses[responseCode][\"application/json\"\
            ]);\n} else if (accept === \"application/xml\") {\n mc.setProperty('CONTENT_TYPE',\
            \ 'application/xml');\n mc.setProperty('HTTP_SC', responseCodeStr);\n\
            \ mc.setPayloadXML(responses[responseCode][\"application/xml\"]);\n}"
      properties:
        list:
          items:
            $ref: '#/components/schemas/MockResponsePayloadInfo'
          type: array
      title: Mock Response Payload list
      type: object
    MockResponsePayloadInfo:
      example:
        path: /menu
        verb: POST
        content: "var accept = \"\\\"\"+mc.getProperty('AcceptHeader')+\"\\\"\";\n\
          var responseCode = mc.getProperty('query.param.responseCode');\nvar responseCodeStr\
          \ = \"\\\"\"+responseCode+\"\\\"\";\nvar responses = [];\n\nif (!responses[200])\
          \ {\n responses [200] = [];\n}\nresponses[200][\"application/json\"] = \n\
          [ {\n  \"price\" : \"string\",\n  \"description\" : \"string\",\n  \"name\"\
          \ : \"string\",\n  \"image\" : \"string\"\n} ]\n\n/*if (!responses[304])\
          \ {\n  responses[304] = [];\n}\nresponses[304][\"application/(json or xml)\"\
          ] = {}/<>*/\n\nif (!responses[406]) {\n responses [406] = [];\n}\nresponses[406][\"\
          application/json\"] = \n{\n  \"message\" : \"string\",\n  \"error\" : [\
          \ {\n    \"message\" : \"string\",\n    \"code\" : 0\n  } ],\n  \"description\"\
          \ : \"string\",\n  \"code\" : 0,\n  \"moreInfo\" : \"string\"\n}\n\nresponses[501]\
          \ = [];\nresponses[501][\"application/json\"] = {\n\"code\" : 501,\n\"description\"\
          \ : \"Not Implemented\"}\nresponses[501][\"application/xml\"] = <response><code>501</code><description>Not\
          \ Implemented</description></response>;\n\nif (!responses[responseCode])\
          \ {\n responseCode = 501;\n}\n\nif (responseCode == null) {\n responseCode\
          \ = 200;\n responseCodeStr = \"200\";\n}\n\nif (accept == null || !responses[responseCode][accept])\
          \ {\n accept = \"application/json\";\n}\n\nif (accept === \"application/json\"\
          ) {\n mc.setProperty('CONTENT_TYPE', 'application/json');\n mc.setProperty('HTTP_SC',\
          \ responseCodeStr);\n mc.setPayloadJSON(responses[responseCode][\"application/json\"\
          ]);\n} else if (accept === \"application/xml\") {\n mc.setProperty('CONTENT_TYPE',\
          \ 'application/xml');\n mc.setProperty('HTTP_SC', responseCodeStr);\n mc.setPayloadXML(responses[responseCode][\"\
          application/xml\"]);\n}"
      properties:
        path:
          description: path of the resource
          example: /menu
          type: string
        content:
          description: new modified code
          example: "var accept = \"\\\"\"+mc.getProperty('AcceptHeader')+\"\\\"\"\
            ;\nvar responseCode = mc.getProperty('query.param.responseCode');\nvar\
            \ responseCodeStr = \"\\\"\"+responseCode+\"\\\"\";\nvar responses = [];\n\
            \nif (!responses[200]) {\n responses [200] = [];\n}\nresponses[200][\"\
            application/json\"] = \n[ {\n  \"price\" : \"string\",\n  \"description\"\
            \ : \"string\",\n  \"name\" : \"string\",\n  \"image\" : \"string\"\n\
            } ]\n\n/*if (!responses[304]) {\n  responses[304] = [];\n}\nresponses[304][\"\
            application/(json or xml)\"] = {}/<>*/\n\nif (!responses[406]) {\n responses\
            \ [406] = [];\n}\nresponses[406][\"application/json\"] = \n{\n  \"message\"\
            \ : \"string\",\n  \"error\" : [ {\n    \"message\" : \"string\",\n  \
            \  \"code\" : 0\n  } ],\n  \"description\" : \"string\",\n  \"code\" :\
            \ 0,\n  \"moreInfo\" : \"string\"\n}\n\nresponses[501] = [];\nresponses[501][\"\
            application/json\"] = {\n\"code\" : 501,\n\"description\" : \"Not Implemented\"\
            }\nresponses[501][\"application/xml\"] = <response><code>501</code><description>Not\
            \ Implemented</description></response>;\n\nif (!responses[responseCode])\
            \ {\n responseCode = 501;\n}\n\nif (responseCode == null) {\n responseCode\
            \ = 200;\n responseCodeStr = \"200\";\n}\n\nif (accept == null || !responses[responseCode][accept])\
            \ {\n accept = \"application/json\";\n}\n\nif (accept === \"application/json\"\
            ) {\n mc.setProperty('CONTENT_TYPE', 'application/json');\n mc.setProperty('HTTP_SC',\
            \ responseCodeStr);\n mc.setPayloadJSON(responses[responseCode][\"application/json\"\
            ]);\n} else if (accept === \"application/xml\") {\n mc.setProperty('CONTENT_TYPE',\
            \ 'application/xml');\n mc.setProperty('HTTP_SC', responseCodeStr);\n\
            \ mc.setPayloadXML(responses[responseCode][\"application/xml\"]);\n}"
          type: string
        verb:
          example: POST
          type: string
      title: Mock Response Payload info object
      type: object
    ResourcePolicyList:
      example:
        count: 1
        list:
        - httpVerb: get
          resourcePath: checkPhoneNumber
          id: 01234567-0123-0123-0123-012345678901
          content: <header description="SOAPAction" name="SOAPAction" scope="transport"
            value="http://ws.cdyne.com/PhoneVerify/query/CheckPhoneNumber"/>
        - httpVerb: get
          resourcePath: checkPhoneNumber
          id: 01234567-0123-0123-0123-012345678901
          content: <header description="SOAPAction" name="SOAPAction" scope="transport"
            value="http://ws.cdyne.com/PhoneVerify/query/CheckPhoneNumber"/>
      properties:
        list:
          items:
            $ref: '#/components/schemas/ResourcePolicyInfo'
          type: array
        count:
          description: |
            Number of policy resources returned.
          example: 1
          type: integer
      title: Resource policy List
      type: object
    ResourcePolicyInfo:
      example:
        httpVerb: get
        resourcePath: checkPhoneNumber
        id: 01234567-0123-0123-0123-012345678901
        content: <header description="SOAPAction" name="SOAPAction" scope="transport"
          value="http://ws.cdyne.com/PhoneVerify/query/CheckPhoneNumber"/>
      properties:
        id:
          description: |
            UUID of the resource policy registry artifact
          example: 01234567-0123-0123-0123-012345678901
          readOnly: true
          type: string
        httpVerb:
          description: HTTP verb used for the resource path
          example: get
          type: string
        resourcePath:
          description: A string that represents the resource path of the api for the
            related resource policy
          example: checkPhoneNumber
          type: string
        content:
          description: The resource policy content
          example: <header description="SOAPAction" name="SOAPAction" scope="transport"
            value="http://ws.cdyne.com/PhoneVerify/query/CheckPhoneNumber"/>
          type: string
      title: Resource policy Info object with conversion policy resource details.
      type: object
    Settings:
      example:
        devportalUrl: https://localhost:9443/devportal
        defaultAdvancePolicy: defaultAdvancePolicy
        externalStoresEnabled: true
        environment:
        - endpointURIs:
          - protocol: default
            endpointURI: default
          - protocol: default
            endpointURI: default
          provider: wso2
          showInApiConsole: true
          displayName: Default
          serverUrl: https://localhost:9443/services/
          name: default
          id: id
          additionalProperties:
          - value: wso2
            key: Organization
          - value: wso2
            key: Organization
          type: hybrid
          vhosts:
          - websubHttpPort: 9021
            httpContext: pets
            wssPort: 8099
            httpPort: 80
            wsPort: 9099
            host: mg.wso2.com
            websubHttpsPort: 8021
            httpsPort: 443
          - websubHttpPort: 9021
            httpContext: pets
            wssPort: 8099
            httpPort: 80
            wsPort: 9099
            host: mg.wso2.com
            websubHttpsPort: 8021
            httpsPort: 443
        - endpointURIs:
          - protocol: default
            endpointURI: default
          - protocol: default
            endpointURI: default
          provider: wso2
          showInApiConsole: true
          displayName: Default
          serverUrl: https://localhost:9443/services/
          name: default
          id: id
          additionalProperties:
          - value: wso2
            key: Organization
          - value: wso2
            key: Organization
          type: hybrid
          vhosts:
          - websubHttpPort: 9021
            httpContext: pets
            wssPort: 8099
            httpPort: 80
            wsPort: 9099
            host: mg.wso2.com
            websubHttpsPort: 8021
            httpsPort: 443
          - websubHttpPort: 9021
            httpContext: pets
            wssPort: 8099
            httpPort: 80
            wsPort: 9099
            host: mg.wso2.com
            websubHttpsPort: 8021
            httpsPort: 443
        crossTenantSubscriptionEnabled: false
        gatewayTypes:
        - Regular
        - APK
        defaultSubscriptionPolicy: defaultSubscriptionPolicy
        securityAuditProperties: '{}'
        scopes:
        - apim:api_create
        - apim:api_manage
        - apim:api_publish
        monetizationAttributes: []
        authorizationHeader: authorization
        docVisibilityEnabled: false
      properties:
        devportalUrl:
          description: The Developer Portal URL
          example: https://localhost:9443/devportal
          type: string
        environment:
          items:
            $ref: '#/components/schemas/Environment'
          type: array
        gatewayTypes:
          example:
          - Regular
          - APK
          items:
            type: string
          type: array
        scopes:
          example:
          - apim:api_create
          - apim:api_manage
          - apim:api_publish
          items:
            type: string
          type: array
        monetizationAttributes:
          example: []
          items:
            $ref: '#/components/schemas/MonetizationAttribute'
          type: array
        securityAuditProperties:
          properties: {}
          type: object
        externalStoresEnabled:
          description: |
            Is External Stores configuration enabled
          example: true
          type: boolean
        docVisibilityEnabled:
          description: |
            Is Document Visibility configuration enabled
          example: false
          type: boolean
        crossTenantSubscriptionEnabled:
          default: false
          description: |
            Is Cross Tenant Subscriptions Enabled
          example: false
          type: boolean
        defaultAdvancePolicy:
          description: Default Advance Policy.
          type: string
        defaultSubscriptionPolicy:
          description: Default Subscription Policy.
          type: string
        authorizationHeader:
          description: Authorization Header
          example: authorization
          type: string
      title: SettingsDTO
      type: object
    SecurityAuditAttribute:
      properties:
        isGlobal:
          example: false
          type: boolean
        overrideGlobal:
          example: false
          type: boolean
        apiToken:
          example: b1267ytf-b7gc-4aee-924d-ece81241efec
          type: string
        collectionId:
          example: 456ef957-5a79-449f-83y3-9027945d3c60
          type: string
        baseUrl:
          type: string
      title: SecurityAuditAttributeDTO
      type: object
    WSDLInfo:
      example:
        type: WSDL
      properties:
        type:
          description: Indicates whether the WSDL is a single WSDL or an archive in
            ZIP format
          enum:
          - WSDL
          - ZIP
          type: string
      title: WSDL information of the API. This is only available if the API is a SOAP
        API.
      type: object
    Pagination:
      example:
        next: next
        total: 10
        offset: 0
        previous: previous
        limit: 1
      properties:
        offset:
          example: 0
          type: integer
        limit:
          example: 1
          type: integer
        total:
          example: 10
          type: integer
        next:
          description: |
            Link to the next subset of resources qualified.
            Empty if no more resources are to be returned.
          type: string
        previous:
          description: |
            Link to the previous subset of resources qualified.
            Empty if current subset is the first subset returned.
          type: string
      title: Pagination
      type: object
    MonetizationAttribute:
      properties:
        required:
          description: |
            Is attribute required
          example: true
          type: boolean
        name:
          description: |
            Name of the attribute
          type: string
        displayName:
          description: |
            Display name of the attribute
          type: string
        description:
          description: |
            Description of the attribute
          type: string
        hidden:
          description: |
            Is attribute hidden
          type: boolean
        default:
          description: |
            Default value of the attribute
          type: string
      title: Monetization attribute object
      type: object
    Tenant:
      example:
        domain: wso2.com
        status: active
      properties:
        domain:
          description: tenant domain
          example: wso2.com
          type: string
        status:
          description: current status of the tenant active/inactive
          example: active
          type: string
      title: Tenant
      type: object
    TenantList:
      example:
        pagination:
          next: next
          total: 10
          offset: 0
          previous: previous
          limit: 1
        count: 1
        list:
        - domain: wso2.com
          status: active
        - domain: wso2.com
          status: active
      properties:
        count:
          description: |
            Number of tenants returned.
          example: 1
          type: integer
        list:
          items:
            $ref: '#/components/schemas/Tenant'
          type: array
        pagination:
          $ref: '#/components/schemas/Pagination'
      title: Tenant list
      type: object
    AdvertiseInfo:
      example:
        apiOwner: admin
        apiExternalProductionEndpoint: https://localhost:9443/devportal
        apiExternalSandboxEndpoint: https://localhost:9443/devportal
        advertised: true
        vendor: WSO2
        originalDevPortalUrl: https://localhost:9443/devportal
      properties:
        advertised:
          example: true
          type: boolean
        apiExternalProductionEndpoint:
          example: https://localhost:9443/devportal
          type: string
        apiExternalSandboxEndpoint:
          example: https://localhost:9443/devportal
          type: string
        originalDevPortalUrl:
          example: https://localhost:9443/devportal
          type: string
        apiOwner:
          example: admin
          type: string
        vendor:
          default: WSO2
          enum:
          - WSO2
          - AWS
          type: string
      title: API Advertise info object with advertise details
      type: object
    APICategory:
      example:
        name: Finance
        description: Finance related APIs
        id: 01234567-0123-0123-0123-012345678901
      properties:
        id:
          example: 01234567-0123-0123-0123-012345678901
          type: string
        name:
          example: Finance
          type: string
        description:
          example: Finance related APIs
          type: string
      required:
      - name
      title: API Category
      type: object
    APICategoryList:
      example:
        count: 1
        list:
        - name: Finance
          description: Finance related APIs
          id: 01234567-0123-0123-0123-012345678901
        - name: Finance
          description: Finance related APIs
          id: 01234567-0123-0123-0123-012345678901
      properties:
        count:
          description: |
            Number of API categories returned.
          example: 1
          type: integer
        list:
          items:
            $ref: '#/components/schemas/APICategory'
          type: array
      title: API Category List
      type: object
    KeyManagerInfo:
      example:
        displayName: Keymanager1
        name: WSO2 IS
        description: This is a key manager for Developers
        id: 01234567-0123-0123-0123-012345678901
        additionalProperties:
        - '{}'
        - '{}'
        type: IS
        enabled: true
      properties:
        id:
          example: 01234567-0123-0123-0123-012345678901
          type: string
        name:
          example: WSO2 IS
          type: string
        displayName:
          description: |
            display name of Keymanager
          example: Keymanager1
          type: string
        type:
          example: IS
          type: string
        description:
          example: This is a key manager for Developers
          type: string
        enabled:
          example: true
          type: boolean
        additionalProperties:
          items:
            properties: {}
            type: object
          type: array
      required:
      - name
      - type
      title: Key Manager Info
      type: object
    KeyManagerList:
      example:
        count: 1
        list:
        - displayName: Keymanager1
          name: WSO2 IS
          description: This is a key manager for Developers
          id: 01234567-0123-0123-0123-012345678901
          additionalProperties:
          - '{}'
          - '{}'
          type: IS
          enabled: true
        - displayName: Keymanager1
          name: WSO2 IS
          description: This is a key manager for Developers
          id: 01234567-0123-0123-0123-012345678901
          additionalProperties:
          - '{}'
          - '{}'
          type: IS
          enabled: true
      properties:
        count:
          description: |
            Number of Key managers returned.
          example: 1
          type: integer
        list:
          items:
            $ref: '#/components/schemas/KeyManagerInfo'
          type: array
      title: Key Manager List
      type: object
    APIKey:
      example:
        validityTime: 3600
        apikey: eyJoZWxsbyI6IndvcmxkIn0=.eyJ3c28yIjoiYXBpbSJ9.eyJ3c28yIjoic2lnbmF0dXJlIn0=
      properties:
        apikey:
          description: API Key
          example: eyJoZWxsbyI6IndvcmxkIn0=.eyJ3c28yIjoiYXBpbSJ9.eyJ3c28yIjoic2lnbmF0dXJlIn0=
          type: string
        validityTime:
          example: 3600
          format: int32
          type: integer
      title: API Key details to invoke APIs
      type: object
    EnvironmentProperties:
      additionalProperties:
        type: string
      example:
        productionEndpoint: https://localhost:9443/pizzashack/v1/api/
        sandboxEndpoint: https://localhost:9443/pizzashack/v1/api/
      title: Envionment specific API properties request body
      type: object
    AsyncAPISpecificationValidationResponse:
      example:
        isValid: true
        content: content
        errors:
        - code: code
          description: description
          message: message
        - code: code
          description: description
          message: message
        info:
          protocol: WEBSUB
          endpoints:
          - https://localhost:9443/am/sample/pizzashack/v1/api/
          - https://localhost:9443/am/sample/pizzashack/v1/api/
          gatewayVendor: wso2
          asyncTransportProtocols:
          - http
          - http
          name: Streetlights
          context: /streetlights
          description: A sample API that uses a streetlights as an example to demonstrate
            AsyncAPI specifications
          version: 1.0.0
          asyncAPIVersion: "2.0"
      properties:
        isValid:
          description: This attribute declares whether this definition is valid or
            not.
          example: true
          type: boolean
        content:
          description: AsyncAPI specification content
          type: string
        info:
          $ref: '#/components/schemas/AsyncAPISpecificationValidationResponse_info'
        errors:
          description: If there are more than one error list them out. For example,
            list out validation error by each field.
          items:
            $ref: '#/components/schemas/ErrorListItem'
          type: array
      required:
      - isValid
      title: AsyncAPI Specification Validation Response
      type: object
    OperationPolicy:
      example:
        policyVersion: v1
        policyId: policyId
        policyName: policyName
        parameters:
          key: '{}'
      properties:
        policyName:
          type: string
        policyVersion:
          default: v1
          type: string
        policyId:
          type: string
        parameters:
          additionalProperties:
            type: object
          type: object
      required:
      - policyName
      title: API Operation Policy
      type: object
    APIOperationPolicies:
      example:
        request:
        - policyVersion: v1
          policyId: policyId
          policyName: policyName
          parameters:
            key: '{}'
        - policyVersion: v1
          policyId: policyId
          policyName: policyName
          parameters:
            key: '{}'
        response:
        - policyVersion: v1
          policyId: policyId
          policyName: policyName
          parameters:
            key: '{}'
        - policyVersion: v1
          policyId: policyId
          policyName: policyName
          parameters:
            key: '{}'
        fault:
        - policyVersion: v1
          policyId: policyId
          policyName: policyName
          parameters:
            key: '{}'
        - policyVersion: v1
          policyId: policyId
          policyName: policyName
          parameters:
            key: '{}'
      properties:
        request:
          items:
            $ref: '#/components/schemas/OperationPolicy'
          type: array
        response:
          items:
            $ref: '#/components/schemas/OperationPolicy'
          type: array
        fault:
          items:
            $ref: '#/components/schemas/OperationPolicy'
          type: array
      title: API Operation Level Policies
    GatewayPolicyMappings:
      example:
        policyMapping:
          request:
          - policyVersion: v1
            policyId: policyId
            policyName: policyName
            parameters:
              key: '{}'
          - policyVersion: v1
            policyId: policyId
            policyName: policyName
            parameters:
              key: '{}'
          response:
          - policyVersion: v1
            policyId: policyId
            policyName: policyName
            parameters:
              key: '{}'
          - policyVersion: v1
            policyId: policyId
            policyName: policyName
            parameters:
              key: '{}'
          fault:
          - policyVersion: v1
            policyId: policyId
            policyName: policyName
            parameters:
              key: '{}'
          - policyVersion: v1
            policyId: policyId
            policyName: policyName
            parameters:
              key: '{}'
        displayName: item_type_setter
        description: Set header value to the request with item type and response header
          set with served server name
        id: 121223q41-24141-124124124-12414
        appliedGatewayLabels:
        - gatewayLabel_1
        - gatewayLabel_1
      properties:
        id:
          example: 121223q41-24141-124124124-12414
          type: string
        policyMapping:
          $ref: '#/components/schemas/APIOperationPolicies'
        description:
          description: A brief description about the policy mapping
          example: Set header value to the request with item type and response header
            set with served server name
          type: string
        displayName:
          description: Meaningful name to identify the policy mapping
          example: item_type_setter
          type: string
        appliedGatewayLabels:
          items:
            example: gatewayLabel_1
            type: string
          type: array
      required:
      - displayName
      - policyMapping
      title: Gateway Policy Mappings
      type: object
    GatewayPolicyMappingDeploymentInfo:
      example:
        displayName: item_type_setter
        description: Set header value to the request with item type and response header
          set with served server name
        id: 121223q41-24141-124124124-12414
        appliedGatewayLabels:
        - gatewayLabel_1
        - gatewayLabel_1
      properties:
        id:
          example: 121223q41-24141-124124124-12414
          type: string
        description:
          description: A brief description about the policy mapping
          example: Set header value to the request with item type and response header
            set with served server name
          type: string
        displayName:
          description: Meaningful name to identify the policy mapping
          example: item_type_setter
          type: string
        appliedGatewayLabels:
          items:
            example: gatewayLabel_1
            type: string
          type: array
      title: Gateway Policy Mapping and Deployment Information
      type: object
    GatewayPolicyMappingInfo:
      example:
        displayName: item_type_setter
        description: Set header value to the request with item type and response header
          set with served server name
        id: 121223q41-24141-124124124-12414
      properties:
        id:
          example: 121223q41-24141-124124124-12414
          type: string
        description:
          description: A brief description about the policy mapping
          example: Set header value to the request with item type and response header
            set with served server name
          type: string
        displayName:
          description: Meaningful name to identify the policy mapping
          example: item_type_setter
          type: string
      title: Gateway Policy Mapping Information
      type: object
    GatewayPolicyDeployment:
      example:
        gatewayLabel: gatewayLabel_1
        mappingUUID: 01234567-0123-0123-0123-012345678901
        gatewayDeployment: true
      properties:
        gatewayLabel:
          example: gatewayLabel_1
          type: string
        gatewayDeployment:
          example: true
          type: boolean
        mappingUUID:
          example: 01234567-0123-0123-0123-012345678901
          type: string
      required:
      - gatewayDeployment
      - gatewayLabel
      title: Details to map, deploy, undeploy policy mappings to gateways
      type: object
    GatewayPolicyMappingDataList:
      example:
        pagination:
          next: next
          total: 10
          offset: 0
          previous: previous
          limit: 1
        count: 1
        list:
        - displayName: item_type_setter
          description: Set header value to the request with item type and response
            header set with served server name
          id: 121223q41-24141-124124124-12414
          appliedGatewayLabels:
          - gatewayLabel_1
          - gatewayLabel_1
        - displayName: item_type_setter
          description: Set header value to the request with item type and response
            header set with served server name
          id: 121223q41-24141-124124124-12414
          appliedGatewayLabels:
          - gatewayLabel_1
          - gatewayLabel_1
      properties:
        count:
          description: |
            Number of gateway policy mappings returned.
          example: 1
          type: integer
        list:
          items:
            $ref: '#/components/schemas/GatewayPolicyMappingDeploymentInfo'
          type: array
        pagination:
          $ref: '#/components/schemas/Pagination'
      title: Gateway Policy Mapping List
      type: object
    GatewayEnvironmentProtocolURI:
      example:
        protocol: default
        endpointURI: default
      properties:
        protocol:
          example: default
          type: string
        endpointURI:
          example: default
          type: string
      required:
      - endpointURI
      - protocol
      title: Gateway Environment protocols and URIs
      type: object
    OperationPolicyDataList:
      example:
        pagination:
          next: next
          total: 10
          offset: 0
          previous: previous
          limit: 1
        count: 1
        list:
        - supportedApiTypes:
          - REST
          - REST
          policyAttributes:
          - allowedValues:
            - '["GET","POST","PUT"]'
            - '["GET","POST","PUT"]'
            displayName: Header Name
            defaultValue: "true"
            name: headerName
            description: Name of the header to be removed
            type: string
            validationRegex: /^[a-z\s]{0,255}$/i
            required: true
          - allowedValues:
            - '["GET","POST","PUT"]'
            - '["GET","POST","PUT"]'
            displayName: Header Name
            defaultValue: "true"
            name: headerName
            description: Name of the header to be removed
            type: string
            validationRegex: /^[a-z\s]{0,255}$/i
            required: true
          displayName: Remove Header Policy
          supportedGateways:
          - Synapse
          - Synapse
          name: removeHeaderPolicy
          description: With this policy, user can add a new header to the request
          id: 121223q41-24141-124124124-12414
          applicableFlows:
          - in
          - in
          category: Mediation
          version: v1
          isAPISpecific: true
          md5: 121223q41-24141-124124124-12414
        - supportedApiTypes:
          - REST
          - REST
          policyAttributes:
          - allowedValues:
            - '["GET","POST","PUT"]'
            - '["GET","POST","PUT"]'
            displayName: Header Name
            defaultValue: "true"
            name: headerName
            description: Name of the header to be removed
            type: string
            validationRegex: /^[a-z\s]{0,255}$/i
            required: true
          - allowedValues:
            - '["GET","POST","PUT"]'
            - '["GET","POST","PUT"]'
            displayName: Header Name
            defaultValue: "true"
            name: headerName
            description: Name of the header to be removed
            type: string
            validationRegex: /^[a-z\s]{0,255}$/i
            required: true
          displayName: Remove Header Policy
          supportedGateways:
          - Synapse
          - Synapse
          name: removeHeaderPolicy
          description: With this policy, user can add a new header to the request
          id: 121223q41-24141-124124124-12414
          applicableFlows:
          - in
          - in
          category: Mediation
          version: v1
          isAPISpecific: true
          md5: 121223q41-24141-124124124-12414
      properties:
        count:
          description: |
            Number of operation policies returned.
          example: 1
          type: integer
        list:
          items:
            $ref: '#/components/schemas/OperationPolicyData'
          type: array
        pagination:
          $ref: '#/components/schemas/Pagination'
      title: Operation policy List
      type: object
    OperationPolicyImportExportData:
      properties:
        type:
          example: operation_policy_specification
          type: string
        version:
          example: v4.1.0
          type: string
        data:
          $ref: '#/components/schemas/OperationPolicyData'
      title: Operation Policy Import Export Data
      type: object
    OperationPolicyData:
      example:
        supportedApiTypes:
        - REST
        - REST
        policyAttributes:
        - allowedValues:
          - '["GET","POST","PUT"]'
          - '["GET","POST","PUT"]'
          displayName: Header Name
          defaultValue: "true"
          name: headerName
          description: Name of the header to be removed
          type: string
          validationRegex: /^[a-z\s]{0,255}$/i
          required: true
        - allowedValues:
          - '["GET","POST","PUT"]'
          - '["GET","POST","PUT"]'
          displayName: Header Name
          defaultValue: "true"
          name: headerName
          description: Name of the header to be removed
          type: string
          validationRegex: /^[a-z\s]{0,255}$/i
          required: true
        displayName: Remove Header Policy
        supportedGateways:
        - Synapse
        - Synapse
        name: removeHeaderPolicy
        description: With this policy, user can add a new header to the request
        id: 121223q41-24141-124124124-12414
        applicableFlows:
        - in
        - in
        category: Mediation
        version: v1
        isAPISpecific: true
        md5: 121223q41-24141-124124124-12414
      properties:
        category:
          example: Mediation
          type: string
        id:
          example: 121223q41-24141-124124124-12414
          type: string
        name:
          example: removeHeaderPolicy
          type: string
        version:
          example: v1
          type: string
        displayName:
          example: Remove Header Policy
          type: string
        description:
          example: With this policy, user can add a new header to the request
          type: string
        applicableFlows:
          items:
            example: in
            type: string
          type: array
        supportedGateways:
          items:
            example: Synapse
            type: string
          type: array
        supportedApiTypes:
          items:
            example: REST
            type: string
          type: array
        isAPISpecific:
          example: true
          type: boolean
        md5:
          example: 121223q41-24141-124124124-12414
          type: string
        policyAttributes:
          items:
            $ref: '#/components/schemas/OperationPolicySpecAttribute'
          type: array
      title: Operation Policy Data
      type: object
    OperationPolicySpecAttribute:
      example:
        allowedValues:
        - '["GET","POST","PUT"]'
        - '["GET","POST","PUT"]'
        displayName: Header Name
        defaultValue: "true"
        name: headerName
        description: Name of the header to be removed
        type: string
        validationRegex: /^[a-z\s]{0,255}$/i
        required: true
      properties:
        name:
          description: Name of the attibute
          example: headerName
          type: string
        displayName:
          description: Display name of the attibute
          example: Header Name
          type: string
        description:
          description: Description of the attibute
          example: Name of the header to be removed
          type: string
        validationRegex:
          description: UI validation regex for the attibute
          example: /^[a-z\s]{0,255}$/i
          type: string
        type:
          description: Type of the attibute
          example: string
          type: string
        required:
          description: Is this attibute mandetory for the policy
          example: true
          type: boolean
        defaultValue:
          description: Default value for the attribute
          example: "true"
          type: string
        allowedValues:
          description: If the attribute type is enum, this array should contain all
            the possible values for the enum.
          items:
            example: '["GET","POST","PUT"]'
            type: string
          type: array
      title: OperationPolicySpecAttribute
      type: object
    Post_request_body:
      properties:
        content:
          description: |
            Content of the comment
          example: This is a comment
          maxLength: 512
          type: string
        category:
          description: |
            Category of the comment
          example: general
          type: string
      required:
      - content
      title: Post request body
      type: object
    Patch_request_body:
      properties:
        content:
          description: |
            Content of the comment
          example: This is a comment
          maxLength: 512
          type: string
        category:
          description: |
            Category of the comment
          example: general
          type: string
      title: Patch request body
      type: object
    APIInfo_additionalProperties:
      example:
        display: true
        name: name
        value: value
      properties:
        name:
          type: string
        value:
          type: string
        display:
          type: boolean
    APIInfo_additionalPropertiesMap:
      example:
        display: false
        name: name
        value: value
      properties:
        name:
          type: string
        value:
          type: string
        display:
          default: false
          type: boolean
    API_threatProtectionPolicies_list:
      example:
        policyId: policyId
        priority: 0
      properties:
        policyId:
          type: string
        priority:
          type: integer
    API_threatProtectionPolicies:
      example:
        list:
        - policyId: policyId
          priority: 0
        - policyId: policyId
          priority: 0
      properties:
        list:
          items:
            $ref: '#/components/schemas/API_threatProtectionPolicies_list'
          type: array
    API_serviceInfo:
      example:
        outdated: false
        name: PetStore
        version: 1.0.0
        key: PetStore-1.0.0
      properties:
        key:
          example: PetStore-1.0.0
          type: string
        name:
          example: PetStore
          type: string
        version:
          example: 1.0.0
          type: string
        outdated:
          example: false
          type: boolean
    BandwidthLimit_allOf:
      properties:
        dataAmount:
          description: Amount of data allowed to be transfered
          example: 1000
          format: int64
          type: integer
        dataUnit:
          description: Unit of data allowed to be transfered. Allowed values are "KB",
            "MB" and "GB"
          example: KB
          type: string
      required:
      - dataAmount
      - dataUnit
    RequestCountLimit_allOf:
      properties:
        requestCount:
          description: Maximum number of requests allowed
          example: 30
          format: int64
          type: integer
      required:
      - requestCount
    EventCountLimit_allOf:
      properties:
        eventCount:
          description: Maximum number of events allowed
          example: 3000
          format: int64
          type: integer
      required:
      - eventCount
    SubscriptionPolicy_allOf:
      properties:
        policyId:
          description: Id of policy
          example: 1
          type: integer
        uuid:
          description: policy uuid
          example: 0c6439fd-9b16-3c2e-be6e-1086e0b9aa93
          type: string
        policyName:
          description: Name of policy
          example: 30PerMin
          maxLength: 60
          minLength: 1
          type: string
        displayName:
          description: Display name of the policy
          example: 30PerMin
          maxLength: 512
          type: string
        description:
          description: Description of the policy
          example: Allows 30 request per minute
          maxLength: 1024
          type: string
        isDeployed:
          default: false
          description: Indicates whether the policy is deployed successfully or not.
          type: boolean
        tenantId:
          description: Throttling policy tenant domain id
          example: -1234
          type: integer
        tenantDomain:
          description: Throttling policy tenant domain
          example: carbon.super
          type: string
        defaultLimit:
          $ref: '#/components/schemas/ThrottleLimit'
        rateLimitCount:
          description: Burst control request count
          example: 10
          type: integer
        rateLimitTimeUnit:
          description: Burst control time unit
          example: min
          type: string
        subscriberCount:
          description: Number of subscriptions allowed
          example: 10
          type: integer
        customAttributes:
          description: |
            Custom attributes added to the Subscription Throttling Policy
          example: []
          items:
            $ref: '#/components/schemas/CustomAttribute'
          type: array
        stopOnQuotaReach:
          default: false
          description: |
            This indicates the action to be taken when a user goes beyond the allocated quota. If checked, the user's requests will be dropped. If unchecked, the requests will be allowed to pass through.
          type: boolean
        billingPlan:
          description: |
            define whether this is Paid or a Free plan. Allowed values are FREE or COMMERCIAL.
          example: FREE
          type: string
        permissions:
          $ref: '#/components/schemas/SubscriptionThrottlePolicyPermission'
      required:
      - defaultLimit
    Endpoint_endpointConfig:
      properties:
        endpointType:
          enum:
          - SINGLE
          - LOAD_BALANCED
          - FAIL_OVER
          example: FAIL_OVER
          type: string
        list:
          items:
            $ref: '#/components/schemas/EndpointConfig'
          type: array
    Endpoint_endpointSecurity:
      properties:
        enabled:
          example: false
          type: boolean
        type:
          example: basic
          type: string
        username:
          example: basic
          type: string
        password:
          example: basic
          type: string
    EndpointConfig_attributes:
      properties:
        name:
          example: Suspension time
          type: string
        value:
          example: 2s
          type: string
    LifecycleState_checkItems:
      example:
        requiredStates: []
        name: Deprecate old versions after publishing the API
        value: false
      properties:
        name:
          example: Deprecate old versions after publishing the API
          type: string
        value:
          example: false
          type: boolean
        requiredStates:
          example: []
          items:
            type: string
          type: array
    LifecycleState_availableTransitions:
      example:
        targetState: Published
        event: Publish
      properties:
        event:
          example: Publish
          type: string
        targetState:
          example: Published
          type: string
    OpenAPIDefinitionValidationResponse_info:
      description: |
        API definition information
      example:
        endpoints:
        - https://localhost:9443/am/sample/pizzashack/v1/api/
        - https://localhost:9443/am/sample/pizzashack/v1/api/
        name: PetStore
        context: /petstore
        description: A sample API that uses a petstore as an example to demonstrate
          swagger-2.0 specification
        openAPIVersion: 3.0.0
        version: 1.0.0
      properties:
        name:
          example: PetStore
          type: string
        version:
          example: 1.0.0
          type: string
        context:
          example: /petstore
          type: string
        description:
          example: A sample API that uses a petstore as an example to demonstrate
            swagger-2.0 specification
          type: string
        openAPIVersion:
          example: 3.0.0
          type: string
        endpoints:
          description: |
            contains host/servers specified in the OpenAPI file/URL
          items:
            example: https://localhost:9443/am/sample/pizzashack/v1/api/
            type: string
          type: array
    WSDLValidationResponse_wsdlInfo_endpoints:
      example:
        name: StockQuoteSoap
        location: http://www.webservicex.net/stockquote.asmx
      properties:
        name:
          description: Name of the endpoint
          example: StockQuoteSoap
          type: string
        location:
          description: Endpoint URL
          example: http://www.webservicex.net/stockquote.asmx
          type: string
    WSDLValidationResponse_wsdlInfo:
      description: Summary of the WSDL including the basic information
      example:
        endpoints:
        - name: StockQuoteSoap
          location: http://www.webservicex.net/stockquote.asmx
        - name: StockQuoteSoap
          location: http://www.webservicex.net/stockquote.asmx
        version: "1.1"
      properties:
        version:
          description: |
            WSDL version
          example: "1.1"
          type: string
        endpoints:
          description: |
            A list of endpoints the service exposes
          items:
            $ref: '#/components/schemas/WSDLValidationResponse_wsdlInfo_endpoints'
          type: array
    GraphQLValidationResponse_graphQLInfo:
      description: Summary of the GraphQL including the basic information
      example:
        graphQLSchema:
          schemaDefinition: schemaDefinition
          name: admin--HackerNewsAPI.graphql
        operations:
        - usedProductIds: []
          payloadSchema: payloadSchema
          amznResourceName: amznResourceName
          operationPolicies:
            request:
            - policyVersion: v1
              policyId: policyId
              policyName: policyName
              parameters:
                key: '{}'
            - policyVersion: v1
              policyId: policyId
              policyName: policyName
              parameters:
                key: '{}'
            response:
            - policyVersion: v1
              policyId: policyId
              policyName: policyName
              parameters:
                key: '{}'
            - policyVersion: v1
              policyId: policyId
              policyName: policyName
              parameters:
                key: '{}'
            fault:
            - policyVersion: v1
              policyId: policyId
              policyName: policyName
              parameters:
                key: '{}'
            - policyVersion: v1
              policyId: policyId
              policyName: policyName
              parameters:
                key: '{}'
          verb: POST
          uriMapping: uriMapping
          id: postapiresource
          throttlingPolicy: Unlimited
          scopes: []
          amznResourceTimeout: 0
          authType: Application & Application User
          target: /order/{orderId}
        - usedProductIds: []
          payloadSchema: payloadSchema
          amznResourceName: amznResourceName
          operationPolicies:
            request:
            - policyVersion: v1
              policyId: policyId
              policyName: policyName
              parameters:
                key: '{}'
            - policyVersion: v1
              policyId: policyId
              policyName: policyName
              parameters:
                key: '{}'
            response:
            - policyVersion: v1
              policyId: policyId
              policyName: policyName
              parameters:
                key: '{}'
            - policyVersion: v1
              policyId: policyId
              policyName: policyName
              parameters:
                key: '{}'
            fault:
            - policyVersion: v1
              policyId: policyId
              policyName: policyName
              parameters:
                key: '{}'
            - policyVersion: v1
              policyId: policyId
              policyName: policyName
              parameters:
                key: '{}'
          verb: POST
          uriMapping: uriMapping
          id: postapiresource
          throttlingPolicy: Unlimited
          scopes: []
          amznResourceTimeout: 0
          authType: Application & Application User
          target: /order/{orderId}
      properties:
        operations:
          items:
            $ref: '#/components/schemas/APIOperations'
          type: array
        graphQLSchema:
          $ref: '#/components/schemas/GraphQLSchema'
    APISearchResult_allOf:
      properties:
        description:
          description: A brief description about the API
          example: A calculator API that supports basic operations
          type: string
        context:
          description: A string that represents the context of the user's request
          example: CalculatorAPI
          type: string
        contextTemplate:
          description: The templated context of the API
          example: CalculatorAPI/{version}
          type: string
        version:
          description: The version of the API
          example: 1.0.0
          type: string
        provider:
          description: |
            If the provider value is not given, the user invoking the API will be used as the provider.
          example: admin
          type: string
        status:
          description: This describes in which status of the lifecycle the API is
          example: CREATED
          type: string
        thumbnailUri:
          example: /apis/01234567-0123-0123-0123-012345678901/thumbnail
          type: string
        advertiseOnly:
          example: true
          type: boolean
    APIProductSearchResult_allOf:
      properties:
        description:
          description: A brief description about the API
          example: A calculator API that supports basic operations
          type: string
        context:
          description: A string that represents the context of the user's request
          example: CalculatorAPI
          type: string
        version:
          description: The version of the API Product
          example: 1.0.0
          type: string
        provider:
          description: |
            If the provider value is not given, the user invoking the API will be used as the provider.
          example: admin
          type: string
        status:
          description: This describes in which status of the lifecycle the APIPRODUCT
            is
          example: PUBLISHED
          type: string
        thumbnailUri:
          example: /apis/01234567-0123-0123-0123-012345678901/thumbnail
          type: string
    DocumentSearchResult_allOf:
      properties:
        docType:
          enum:
          - HOWTO
          - SAMPLES
          - PUBLIC_FORUM
          - SUPPORT_FORUM
          - API_MESSAGE_FORMAT
          - SWAGGER_DOC
          - OTHER
          example: HOWTO
          type: string
        summary:
          example: Summary of Calculator Documentation
          type: string
        sourceType:
          enum:
          - INLINE
          - URL
          - FILE
          - MARKDOWN
          example: INLINE
          type: string
        sourceUrl:
          type: string
        otherTypeName:
          type: string
        visibility:
          enum:
          - OWNER_ONLY
          - PRIVATE
          - API_LEVEL
          example: API_LEVEL
          type: string
        apiName:
          description: The name of the associated API
          example: TestAPI
          type: string
        apiVersion:
          description: The version of the associated API
          example: 1.0.0
          type: string
        apiProvider:
          example: admin
          type: string
        apiUUID:
          type: string
        associatedType:
          type: string
    AsyncAPISpecificationValidationResponse_info:
      description: API definition information
      example:
        protocol: WEBSUB
        endpoints:
        - https://localhost:9443/am/sample/pizzashack/v1/api/
        - https://localhost:9443/am/sample/pizzashack/v1/api/
        gatewayVendor: wso2
        asyncTransportProtocols:
        - http
        - http
        name: Streetlights
        context: /streetlights
        description: A sample API that uses a streetlights as an example to demonstrate
          AsyncAPI specifications
        version: 1.0.0
        asyncAPIVersion: "2.0"
      properties:
        name:
          example: Streetlights
          type: string
        version:
          example: 1.0.0
          type: string
        context:
          example: /streetlights
          type: string
        description:
          example: A sample API that uses a streetlights as an example to demonstrate
            AsyncAPI specifications
          type: string
        asyncAPIVersion:
          example: "2.0"
          type: string
        protocol:
          example: WEBSUB
          type: string
        endpoints:
          description: contains host/servers specified in the AsyncAPI file/URL
          items:
            example: https://localhost:9443/am/sample/pizzashack/v1/api/
            type: string
          type: array
        gatewayVendor:
          example: wso2
          type: string
        asyncTransportProtocols:
          description: contains available transports for an async API
          items:
            example: http
            type: string
          type: array
  securitySchemes:
    OAuth2Security:
      flows:
        password:
          scopes:
            openid: Authorize access to user details
            apim:api_view: View API
            apim:api_create: Create API
            apim:api_delete: Delete API
            apim:api_publish: Publish API
            apim:api_manage: Manage all API related operations
            apim:subscription_view: View Subscription
            apim:subscription_block: Block Subscription
            apim:subscription_manage: Manage all Subscription related operations
            apim:threat_protection_policy_create: Create threat protection policies
            apim:threat_protection_policy_manage: Update and delete threat protection
              policies
            apim:document_create: Create API documents
            apim:document_manage: Create, update and delete API documents
            apim:api_mediation_policy_manage: View, create, update and remove API
              specific mediation policies
            apim:mediation_policy_view: View mediation policies
            apim:mediation_policy_create: Create mediation policies
            apim:mediation_policy_manage: Update and delete mediation policies
            apim:common_operation_policy_view: View common operation policies
            apim:common_operation_policy_manage: Add, Update and Delete common operation
              policies
            apim:gateway_policy_view: View gateway policies
            apim:gateway_policy_manage: Add, Update and Delete gateway policies
            apim:client_certificates_view: View client certificates
            apim:client_certificates_add: Add client certificates
            apim:client_certificates_update: Update and delete client certificates
            apim:client_certificates_manage: View, create, update and remove client
              certificates
            apim:ep_certificates_view: View backend endpoint certificates
            apim:ep_certificates_add: Add backend endpoint certificates
            apim:ep_certificates_update: Update and delete backend endpoint certificates
            apim:ep_certificates_manage: View, create, update and remove endpoint
              certificates
            apim:publisher_settings: Retrieve store settings
            apim:pub_alert_manage: Get/ subscribe/ configure publisher alerts
            apim:shared_scope_manage: Manage shared scopes
            apim:app_import_export: Import and export applications related operations
            apim:api_import_export: Import and export APIs related operations
            apim:api_product_import_export: Import and export API Products related
              operations
            apim:api_generate_key: Generate Internal Key
            apim:admin: Manage all admin operations
            apim:comment_view: Read permission to comments
            apim:comment_write: Write permission to comments
            apim:comment_manage: Read and Write comments
            apim:tier_view: View throttling policies
            apim:tier_manage: View, update and delete throttling policies
            apim:api_list_view: View, Retrieve API list
            apim:api_definition_view: View, Retrieve API definition
            apim:policies_import_export: Export and import policies related operations
          tokenUrl: https://localhost:9443/oauth2/token
      type: oauth2

