WSO2 APIs API

The APIs API from WSO2 — 9 operation(s) for apis.

OpenAPI Specification

wso2-apis-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: WSO2 API Manager - Admin Advanced Policy (Collection) Advanced Policy (Collection) APIs API
  description: "This document specifies a **RESTful API** for WSO2 **API Manager** - **Admin Portal**.\nPlease see [full OpenAPI Specification](https://raw.githubusercontent.com/wso2/carbon-apimgt/master/components/apimgt/org.wso2.carbon.apimgt.rest.api.admin.v1/src/main/resources/admin-api.yaml) of the API which is written using [OAS 3.0](http://swagger.io/) specification.\n\n# Authentication\nThe Admin REST API is protected using OAuth2 and access control is achieved through scopes. Before you start invoking\nthe the API you need to obtain an access token with the required scopes. This guide will walk you through the steps\nthat you will need to follow to obtain an access token.\nFirst 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\nin the payload. A sample payload is shown below.\n```\n  {\n  \"callbackUrl\":\"www.example.com\",\n  \"clientName\":\"rest_api_admin\",\n  \"owner\":\"admin\",\n  \"grantType\":\"client_credentials password refresh_token\",\n  \"saasApp\":true\n  }\n```\nCreate 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\nbase64 encoded admin username and password.\n**Format of the request**\n```\n  curl -X POST -H \"Authorization: Basic Base64(admin_username:admin_password)\" -H \"Content-Type: application/json\"\n  \\ -d @payload.json https://<host>:<servlet_port>/client-registration/v0.17/register\n```\n**Sample request**\n```\n  curl -X POST -H \"Authorization: Basic YWRtaW46YWRtaW4=\" -H \"Content-Type: application/json\"\n  \\ -d @payload.json https://localhost:9443/client-registration/v0.17/register\n```\nFollowing is a sample response after invoking the above curl.\n```\n{\n\"clientId\": \"fOCi4vNJ59PpHucC2CAYfYuADdMa\",\n\"clientName\": \"rest_api_admin\",\n\"callBackURL\": \"www.example.com\",\n\"clientSecret\": \"a4FwHlq0iCIKVs2MPIIDnepZnYMa\",\n\"isSaasApplication\": true,\n\"appOwner\": \"admin\",\n\"jsonString\": \"{\\\"grant_types\\\":\\\"client_credentials password refresh_token\\\",\\\"redirect_uris\\\":\\\"www.example.com\\\",\\\"client_name\\\":\\\"rest_api_admin\\\"}\",\n\"jsonAppAttribute\": \"{}\",\n\"tokenType\": null\n}\n```\nNote that in a distributed deployment or IS as KM separated environment to invoke RESTful APIs (product APIs), users must generate tokens through API-M Control Plane's token endpoint.\nThe tokens generated using third party key managers, are to manage end-user authentication when accessing APIs.\n\nNext you must use the above client id and secret to obtain the access token.\nWe will be using the password grant type for this, you can use any grant type you desire.\nYou also need to add the proper **scope** when getting the access token. All possible scopes for Admin REST API can be viewed in **OAuth2 Security** section\nof this document and scope for each resource is given in **authorizations** section of resource documentation.\nFollowing is the format of the request if you are using the password grant type.\n```\ncurl -k -d \"grant_type=password&username=<admin_username>&password=<admin_passowrd>&scope=<scopes seperated by space>\"\n\\ -H \"Authorization: Basic base64(cliet_id:client_secret)\"\n\\ https://<host>:<server_port>/oauth2/token\n```\n**Sample request**\n```\ncurl https://localhost:9443/oauth2/token -k \\\n-H \"Authorization: Basic Zk9DaTR2Tko1OVBwSHVjQzJDQVlmWXVBRGRNYTphNEZ3SGxxMGlDSUtWczJNUElJRG5lcFpuWU1h\" \\\n-d \"grant_type=password&username=admin&password=admin&scope=apim:admin apim:tier_view\"\n```\nShown below is a sample response to the above request.\n```\n{\n\"access_token\": \"e79bda48-3406-3178-acce-f6e4dbdcbb12\",\n\"refresh_token\": \"a757795d-e69f-38b8-bd85-9aded677a97c\",\n\"scope\": \"apim:admin apim:tier_view\",\n\"token_type\": \"Bearer\",\n\"expires_in\": 3600\n}\n```\nNow you have a valid access token, which you can use to invoke an API.\nNavigate through the API descriptions to find the required API, obtain an access token as described above and invoke the API with the authentication header.\nIf you use a different authentication mechanism, this process may change.\n\n# Try out in Postman\nIf you want to try-out the embedded postman collection with \"Run in Postman\" option, please follow the guidelines listed below.\n* 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.\n* Make sure you have an API Manager instance up and running.\n* Update the `basepath` parameter to match the hostname and port of the APIM instance.\n\n[![Run in Postman](https://run.pstmn.io/button.svg)](https://app.getpostman.com/run-collection/32294946-71bea2bc-f808-4208-a4f6-861ede6f0434)\n"
  contact:
    name: WSO2
    url: https://wso2.com/api-manager/
    email: architecture@wso2.com
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  version: v4
servers:
- url: https://apis.wso2.com/api/am/admin/v4
tags:
- name: APIs
paths:
  /apis:
    get:
      tags:
      - APIs
      summary: 'Retrieve/Search APIs

        '
      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.

        '
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - name: query
        in: query
        description: '**Search and get all apis in admin portal**.


          You can search by proving a keyword.

          '
        schema:
          type: string
      - $ref: '#/components/parameters/If-None-Match'
      responses:
        200:
          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).

                '
              schema:
                type: string
            Content-Type:
              description: The content type of the body.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResultList'
        304:
          description: 'Not Modified.

            Empty body because the client has already the latest version of the requested resource (Will be supported in future).

            '
          content: {}
        406:
          $ref: '#/components/responses/NotAcceptable'
      security:
      - OAuth2Security:
        - apim:admin
        - apim:api_provider_change
      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"'
      operationId: getAllAPIs
  /apis/{apiId}:
    get:
      tags:
      - APIs
      summary: 'Get Details of an API

        '
      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.


        `X-WSO2-Tenant` header can be used to retrieve an API of 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.


        **NOTE:**

        * This operation does not require an Authorization header by default. But if it is provided, it will be validated and checked for permissions of the user, hence you may be able to see APIs which are restricted for special permissions/roles. \n

        '
      parameters:
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/requestedTenant'
      - $ref: '#/components/parameters/If-None-Match_2'
      responses:
        200:
          description: 'OK.

            Requested API is returned

            '
          headers:
            ETag:
              description: 'Entity Tag of the response resource. Used by caches, or in conditional requests.

                '
              schema:
                type: string
            Last-Modified:
              description: 'Date and time the resource has been modified the last time.

                Used by caches, or in conditional requests.

                '
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/API'
        304:
          description: 'Not Modified.

            Empty body because the client has already the latest version of the requested resource.

            '
          content: {}
        404:
          $ref: '#/components/responses/NotFound'
        406:
          $ref: '#/components/responses/NotAcceptable'
      security:
      - OAuth2Security: []
      x-code-samples:
      - lang: Curl
        source: curl -k "https://localhost:9443/api/am/devportal/v3/apis/c43a325c-260b-4302-81cb-768eafaa3aed"
  /apis/{apiId}/swagger:
    get:
      tags:
      - APIs
      summary: 'Get Swagger Definition

        '
      description: "You can use this operation to retrieve the swagger definition of an API.\n\n `X-WSO2-Tenant` header can be used to retrieve the swagger definition an API of 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.\n\n**NOTE:**\n* This operation does not require an Authorization header by default. But in order to see a restricted API's swagger definition, you need to provide Authorization header.\n"
      parameters:
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/environmentName'
      - $ref: '#/components/parameters/If-None-Match_2'
      - $ref: '#/components/parameters/requestedTenant'
      - $ref: '#/components/parameters/requestedTenant-Q'
      - name: query
        in: query
        description: "**Key Manager Specific Swagger Generation**.\nTo retrieve an OpenAPI Specification (OAS) definition for a specific Key Manager, please specify the Key Manager's ID in your request. \n  \nFor example, by passing the query parameter `kmId=65e30b46-85e4-4788-85b7-b1c3de06b2e0`, you will receive the OAS definition containing all relevant information for the Key Manager associated with that ID.\n  \n**Important:** If you're using a client that does not automatically handle URL encoding (such as `curl`), please ensure that you encode the URL properly.\n"
        schema:
          type: string
      responses:
        200:
          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.

                '
              schema:
                type: string
            Last-Modified:
              description: 'Date and time the resource has been modifed the last time.

                Used by caches, or in conditional requests.

                '
              schema:
                type: string
          content:
            application/json:
              schema:
                type: string
                example: '{ "swagger" : "2.0", "info" : { "version" : "1.0", "title" : "PhoneVerification" }, "host" : "localhost:8243", "basePath" : "/phoneverify/1.0", "schemes" : [ "https", "http" ], "security" : [ { "default" : [ ] } ], "paths" : { "/*" : { "post" : { "consumes" : [ "text/xml", "application/soap+xml" ], "parameters" : [ { "in" : "body", "name" : "SOAP Request", "description" : "SOAP request.", "required" : true, "schema" : { "type" : "string" } }, { "name" : "SOAPAction", "in" : "header", "description" : "SOAPAction header for soap 1.1", "required" : false, "type" : "string" } ], "responses" : { "200" : { "description" : "OK" } }, "security" : [ { "default" : [ ] } ], "x-auth-type" : "Application & Application User", "x-throttling-tier" : "Unlimited" } } }, "securityDefinitions" : { "default" : { "type" : "oauth2", "authorizationUrl" : "https://localhost:8243/authorize", "flow" : "implicit" } } }'
        304:
          description: 'Not Modified.

            Empty body because the client has already the latest version of the requested resource.

            '
          content: {}
        404:
          $ref: '#/components/responses/NotFound'
        406:
          $ref: '#/components/responses/NotAcceptable'
      security:
      - OAuth2Security: []
      x-code-samples:
      - lang: Curl
        source: curl -k "https://localhost:9443/api/am/devportal/v3/apis/c43a325c-260b-4302-81cb-768eafaa3aed/swagger"
  /apis/{apiId}/async-api-specification:
    get:
      tags:
      - APIs
      summary: 'Get async api specification definition

        '
      description: "You can use this operation to retrieve the async api specification of an API.\n\n `X-WSO2-Tenant` header can be used to retrieve the async api specification an API of 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.\n\n**NOTE:**\n* This operation does not require an Authorization header by default. But in order to see a restricted API's swagger definition, you need to provide Authorization header.\n"
      parameters:
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/environmentName'
      - $ref: '#/components/parameters/If-None-Match_2'
      - $ref: '#/components/parameters/requestedTenant'
      responses:
        200:
          description: 'OK.

            Requested async api specification document of the API is returned

            '
          headers:
            ETag:
              description: 'Entity Tag of the response resource. Used by caches, or in conditional requests.

                '
              schema:
                type: string
            Last-Modified:
              description: 'Date and time the resource has been modifed the last time.

                Used by caches, or in conditional requests.

                '
              schema:
                type: string
          content:
            application/json:
              schema:
                type: string
                example: '{"asyncapi": "2.0.0","defaultContentType": "application/json","info": {"title": "Streetlights API","version": "1.0.0","description": "The Smartylighting Streetlights API allows you to remotely manag e the city lights.\n\n### Check out its awesome features:\n\n* Turn a specific streetlight on/off\n* Dim a specific streetlight\n* Receive real-time information about environmental lighting conditions\n","licen se": {"name": "Apache 2.0","url":"https://www.apache.org/licenses/LICENSE-2.0" }},"servers": {"productio n": {"url": "ws://localhost:8080","protocol": "ws"},"sandbox": {"url": "ws://localhost:8080","protocol": "ws"}},"channels": {"smartylighting/streetlights/1/0/event/{streetlightId}/lighting/measured": {"descrip tion": "The topic on which measured values may be produced and consumed.",“publish": {"operationId": "re ceiveLightMeasurement","summary": "Inform about environmental lighting conditions of a particular street light.","traits": [{"$ref": "#/components/operationTraits/kafka"}],"message": {"$ref": "#/components/mes sages/lightMeasured"}},"parameters": {"streetlightId": {"$ref": "#/components/parameters/streetlightId"} }},"smartylighting/streetlights/1/0/action/{streetlightId}/turn/on": {"subscribe": {"operationId": "turn On","traits": [{"$ref": "#/components/operationTraits/kafka"}],"message": {"$ref": "#/components/message s/turnOnOff"}},"parameters": {"streetlightId": {"$ref": "#/components/parameters/streetlightId"}}},"smar tylighting/streetlights/1/0/action/{streetlightId}/turn/off": {"subscribe": {"operationId": "turnOff","t raits": [{"$ref": "#/components/operationTraits/kafka"}],"message": {"$ref": "#/components/messages/turn OnOff"}},"parameters": {"streetlightId": {"$ref": "#/components/parameters/streetlightId"}}},"smartyligh ting/streetlights/1/0/action/{streetlightId}/dim": {"subscribe": {"operationId": "dimLight","traits": [{ "$ref": "#/components/operationTraits/kafka"}],"message": {"$ref": "#/components/messages/dimLight"}},"p arameters": {"streetlightId": {"$ref": "#/components/parameters/streetlightId"}}}},"components": {"schem as": {"lightMeasuredPayload": {"type": "object","properties": {"lumens": {"description": "Light intensit y measured in lumens.","minimum": 0,"type": "integer"},"sentAt": {“$ref": "#/components/schemas/sentAt"} }},"turnOnOffPayload": {"type": "object","properties": {"command": {"description": "Whether to turn on o r off the light.","enum": [true,false],"type": "string"},"sentAt": {"$ref": "#/components/schemas/sentAt "}}},"dimLightPayload": {"type": "object","properties": {"percentage": {"description": "Percentage to wh ich the light should be dimmed to.","maximum": 100,"minimum": 0,"type": "integer"},"sentAt": {"$ref": "# /components/schemas/sentAt"}}},"sentAt": {"format": "date-time","description": "Date and time when the m essage was sent.","type": "string"}},"messages": {"lightMeasured": {"contentType": "application/json","n ame": "lightMeasured","title": "Light measured","summary": "Inform about environmental lighting conditio ns of a particular streetlight.","payload": {"$ref": "#/components/schemas/lightMeasuredPayload"},"trait s": [{"$ref": "#/components/messageTraits/commonHeaders"}]},"turnOnOff": {"name": "turnOnOff","title": " on/off","summary": "Command a particular streetlight to turn the lights on or off.","payload": {"$ref":" #/components/schemas/turnOnOffPayload"},"traits": [{"$ref": "#/components/messageTraits/commonHeaders"}] },"dimLight": {"name": "dimLight","title": "Dim light","summary": "Command a particular streetlight to d im the lights.","payload": {"$ref": "#/components/schemas/dimLightPayload"},"traits": [{"$ref":"#/compon ents/messageTraits/commonHeaders"}]}},"securitySchemes": {"apiKey": {"type": "apiKey","description": "Pr ovide your API key as the user and leave the password empty.","in": "user"},"supportedOauthFlows": {"typ e": "oauth2","description": "Flows to support OAuth 2.0","flows": {"implicit": {"authorizationUrl": "http s://authserver.example/auth","scopes": {"streetlights:on": "Ability to switch lights on","streetlights:o ff": "Ability to switch lights off","streetlights:dim": "Ability to dim the lights"}},"password": {"toke nUrl": "https://authserver.example/token","scopes": {"streetlights:on": "Ability to switch lights on","s treetlights:off": "Ability to switch lights off","streetlights:dim": "Ability to dim the lights"}},"clie ntCredentials": {"tokenUrl": "https://authserver.example/token","scopes": {"streetlights:on": "Ability t o switch lights on","streetlights:off": "Ability to switch lights off","streetlights:dim": "Ability to d im the lights"}},"authorizationCode": {"authorizationUrl": "https://authserver.example/auth","tokenUrl": "https://authserver.example/token","refreshUrl": "https://authserver.example/refresh","scopes": {"street lights:on": "Ability to switch lights on","streetlights:off": "Ability to switch lights off","streetligh ts:dim": "Ability to dim the lights"}}}},"openIdConnectWellKnown": {"type": "openIdConnect","openIdConne ctUrl": "https://authserver.example/.well-known"},"oauth2": {"type": "oauth2","flows": {"implicit": {"aut horizationUrl": "http://localhost:9999","scopes": {},"x-scopes-bindings": {}}}}},"parameters": {"streetl ightId": {"description": "The ID of the streetlight.","schema": {"type": "string"}}},"operationTraits": {"kafka": {"bindings": {"kafka": {"clientId": "my-app-id"}}}},"messageTraits": {"commonHeaders": {"heade rs": {"type": "object","properties": {"my-app-header": {"type": "integer","minimum": 0,"maximum": 100}}} }}}}'
        304:
          description: 'Not Modified.

            Empty body because the client has already the latest version of the requested resource.

            '
          content: {}
        404:
          $ref: '#/components/responses/NotFound'
        406:
          $ref: '#/components/responses/NotAcceptable'
      security:
      - OAuth2Security: []
      x-code-samples:
      - lang: Curl
        source: curl -k "https://localhost:9443/api/am/devportal/v3/apis/c43a325c-260b-4302-81cb-768eafaa3aed/async-api-specification"
  /apis/{apiId}/graphql-schema:
    get:
      tags:
      - APIs
      summary: 'Get GraphQL Definition

        '
      description: "You can use this operation to retrieve the GraphQL schema definition of a GraphQL API.\n\n `X-WSO2-Tenant` header can be used to retrieve the swagger definition an API of 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.\n\n**NOTE:**\n* This operation does not require an Authorization header by default. But in order to see a restricted API's swagger definition, you need to provide Authorization header.\n"
      parameters:
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/If-None-Match_2'
      - $ref: '#/components/parameters/requestedTenant'
      responses:
        200:
          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.

                '
              schema:
                type: string
            Last-Modified:
              description: 'Date and time the resource has been modifed the last time.

                Used by caches, or in conditional requests.

                '
              schema:
                type: string
          content:
            application/json:
              schema:
                type: string
                example: 'directive @cacheControl( maxAge: Int scope: CacheControlScope ) on FIELD_DEFINITION | OBJECT | INTERFACE enum CacheControlScope { PUBLIC PRIVATE }

                  # A `Lift` is a chairlift, gondola, tram, funicular, pulley, rope tow, or other means of ascending a mountain. type Lift { # The unique identifier for a `Lift` (id: "panorama") id: ID! # The name of a `Lift` name: String! # The current status for a `Lift`: `OPEN`, `CLOSED`, `HOLD` status: LiftStatus # The number of people that a `Lift` can hold capacity: Int! # A boolean describing whether a `Lift` is open for night skiing night: Boolean! # The number of feet in elevation that a `Lift` ascends elevationGain: Int! # A list of trails that this `Lift` serves trailAccess: [Trail!]! }

                  # An enum describing the options for `LiftStatus`: `OPEN`, `CLOSED`, `HOLD` enum LiftStatus { OPEN CLOSED HOLD }

                  type Mutation { # Sets a `Lift` status by sending `id` and `status` setLiftStatus(id: ID!, status: LiftStatus!): Lift! # Sets a `Trail` status by sending `id` and `status` setTrailStatus(id: ID!, status: TrailStatus!): Trail! }

                  type Query { # A list of all `Lift` objects allLifts(status: LiftStatus): [Lift!]! # A list of all `Trail` objects allTrails(status: TrailStatus): [Trail!]! # Returns a `Lift` by `id` (id: "panorama") Lift(id: ID!): Lift! # Returns a `Trail` by `id` (id: "old-witch") Trail(id: ID!): Trail! # Returns an `Int` of `Lift` objects with optional `LiftStatus` filter liftCount(status: LiftStatus): Int! # Returns an `Int` of `Trail` objects with optional `TrailStatus` filter trailCount(status: TrailStatus): Int! # Returns a list of `SearchResult` objects based on `term` or `status` search(term: String, status: LiftStatus): [SearchResult!]! }

                  union SearchResult = Lift | Trail type Subscription { # Listens for changes in lift status liftStatusChange: Lift # Listens for changes in trail status trailStatusChange: Trail }

                  # A `Trail` is a run at a ski resort type Trail { id: ID! # The name of a `Trail` name: String! # The current status for a `Trail`: OPEN, CLOSED status: TrailStatus # The difficulty rating for a `Trail` difficulty: String! # A boolean describing whether or not a `Trail` is groomed groomed: Boolean! # A boolean describing whether or not a `Trail` has trees trees: Boolean! # A boolean describing whether or not a `Trail` is open for night skiing night: Boolean! # A list of Lifts that provide access to this `Trail` accessedByLifts: [ Lift! ]! }

                  # An enum describing the options for `TrailStatus`: `OPEN`, `CLOSED` enum TrailStatus { OPEN CLOSED }

                  # The `Upload` scalar type represents a file upload. scalar Upload'
        304:
          description: 'Not Modified.

            Empty body because the client has already the latest version of the requested resource.

            '
          content: {}
        404:
          $ref: '#/components/responses/NotFound'
        406:
          $ref: '#/components/responses/NotAcceptable'
      security:
      - OAuth2Security: []
      x-code-samples:
      - lang: Curl
        source: curl -k "https://localhost:9443/api/am/devportal/v3/apis/c43a325c-260b-4302-81cb-768eafaa3aed/graphql-schema"
  /apis/{apiId}/wsdl:
    get:
      tags:
      - APIs
      summary: Get API WSDL definition
      description: 'This operation can be used to retrieve the WSDL definition of an API.

        '
      operationId: getWSDLOfAPI
      parameters:
      - $ref: '#/components/parameters/formatWsdl'
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/environmentName'
      - $ref: '#/components/parameters/If-None-Match_2'
      - $ref: '#/components/parameters/requestedTenant'
      - $ref: '#/components/parameters/exp'
      - $ref: '#/components/parameters/sig'
      - $ref: '#/components/parameters/requestedTenant-Q'
      responses:
        200:
          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).

                '
              schema:
                type: string
            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).

                '
              schema:
                type: string
          content: {}
        304:
          description: 'Not Modified.

            Empty body because the client has already the latest version of the requested resource (Will be supported in future).

            '
          content: {}
        404:
          $ref: '#/components/responses/NotFound'
        406:
          $ref: '#/components/responses/NotAcceptable'
      security:
      - OAuth2Security: []
      x-code-samples:
      - lang: Curl
        source: curl -k "https://localhost:9443/api/am/devportal/v3/apis/c43a325c-260b-4302-81cb-768eafaa3aed/wsdl"
  /apis/{apiId}/thumbnail:
    get:
      tags:
      - APIs
      summary: Get Thumbnail Image
      description: 'This operation can be used to download a thumbnail image of an API.


        `X-WSO2-Tenant` header can be used to retrive a thumbnail of an API 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.


        **NOTE:**

        * This operation does not require an Authorization header by default. But in order to see a restricted API''s thumbnail, you need to provide Authorization header.

        '
      parameters:
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/requestedTenant'
      - $ref: '#/components/parameters/If-None-Match_2'
      responses:
        200:
          description: 'OK.

            Thumbnail image returned

            '
          headers:
            ETag:
              description: 'Entity Tag of the response resource.

                Used by caches, or in conditional requests.

                '
              schema:
                type: string
            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).

                '
              schema:
                type: string
            Content-Type:
              description: 'The content type of the body.

                '
              schema:
                type: string
          content: {}
        304:
          description: 'Not Modified.

            Empty body because the client has already the latest version of the requested resource.

            '
          content: {}
        404:
          $ref: '#/components/responses/NotFound'
        406:
          $ref: '#/components/responses/NotAcceptable'
      security:
      - OAuth2Security: []
      x-code-samples:
      - lang: Curl
        source: curl -k "https://localhost:9443/api/am/devportal/v3/apis/e93fb282-b456-48fc-8981-003fb89086ae/thumbnail" > image.jpeg
  /apis/{apiId}/subscription-policies:
    get:
      tags:
      - APIs
      summary: 'Get Details of the Subscription Throttling Policies of an API

        '
      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.

        '
      parameters:
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/requestedTenant'
      - $ref: '#/components/parameters/If-None-Match_2'
      responses:
        200:
          description: 'OK.

            Throttling Policy returned

            '
          headers:
            ETag:
              description: 'Entity Tag of the response resource.

                Used by caches, or in conditional requests.

                '
              schema:
                type: string
            Last-Modified:
              description: 'Date and time the resource has been modifed the last time.

                Used by caches, or in conditional requests.

                '
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThrottlingPolicy'
        304:
          description: 'Not Modified.

            Empty body because the client has already the latest version of the requested resource.

            '
          content: {}
        404:
          $ref: '#/components/responses/NotFound'
        406:
          $ref: '#/components/responses/NotAcceptable'
      security:
      - OAuth2Security: []
      x-code-samples:
      - lang: Curl
        source: curl -k "https://localhost:9443/api/am/devportal/v3/apis/268c9e55-3dc1-4f47-82e7-977e5343d077/subscription-policies"
  /apis/{apiId}/generate-definition-url:
    post:
      tags:
      - APIs
      summary: Generate a URL to download a resource for an API
      description: Generate a URL to access an API resource like the WSDL definition.
      operationId: generateDefinitionURL
      parameters:
      - $ref: '#/components/parameters/resourceType'
      - $ref: '#/components/parameters/environmentName'
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/requestedTenant'
      responses:
        '200':
          description: OK. Returns generated download URL as a string.
          content:
            application/json:
              sche

# --- truncated at 32 KB (57 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/wso2/refs/heads/main/openapi/wso2-apis-api-openapi.yml