swagger: '2.0' ###################################################### # Prolog ###################################################### info: version: "0.10.0" title: "WSO2 API Manager - Publisher API" description: | This document specifies a **RESTful API** for WSO2 **API Manager** - Publisher. It is written with [swagger 2](http://swagger.io/). contact: name: "WSO2" url: "http://wso2.com/products/api-manager/" email: "architecture@wso2.com" license: name: "Apache 2.0" url: "http://www.apache.org/licenses/LICENSE-2.0.html" ###################################################### # The fixed parts of the URLs of the API ###################################################### # The schemes supported by the API schemes: - https # The domain of the API. # This is configured by the customer during deployment. # The given host is just an example. host: apis.wso2.com # The base path of the API. # Will be prefixed to all paths. basePath: /api/am/publisher/v0.10 # The following media types can be passed as input in message bodies of the API. # The actual media type must be specified in the Content-Type header field of the request. # The default is json, i.e. the Content-Type header is not needed to # be set, but supporting it serves extensibility. consumes: - application/json # The following media types may be passed as output in message bodies of the API. # The media type(s) consumable by the requestor is specified in the Accept header field # of the corresponding request. # The actual media type returned will be specfied in the Content-Type header field # of the of the response. # The default of the Accept header is json, i.e. there is not needed to # set the value, but supporting it serves extensibility. produces: - application/json x-wso2-security: apim: x-wso2-scopes: - description: "" roles: admin name: apim:api_view key: apim:api_view - description: "" roles: admin name: apim:api_create key: apim:api_create - description: "" roles: admin name: apim:api_publish key: apim:api_publish - description: "" roles: admin name: apim:tier_view key: apim:tier_view - description: "" roles: admin name: apim:tier_manage key: apim:tier_manage - description: "" roles: admin name: apim:subscription_view key: apim:subscription_view - description: "" roles: admin name: apim:subscription_block key: apim:subscription_block ###################################################### # The "API Collection" resource APIs ###################################################### paths: /apis: #----------------------------------------------------- # Retrieving the list of all APIs qualifying under a given search condition #----------------------------------------------------- get: x-scope: apim:api_view x-wso2-curl: "curl -H \"Authorization: Bearer b0982cd2aacd463ff5f63cd5ebe58f4a\" http://127.0.0.1:9763/api/am/publisher/v0.10/apis" x-wso2-response: "HTTP/1.1 200 OK\nContent-Type: application/json\n\n{\n \"previous\": \"\",\n \"list\": [\n {\n \"provider\": \"admin\",\n \"version\": \"1.0.0\",\n \"description\": \"This sample API provides Account Status Validation\",\n \"name\": \"AccountVal\",\n \"context\": \"/account\",\n \"id\": \"2e81f147-c8a8-4f68-b4f0-69e0e7510b01\",\n \"status\": \"PUBLISHED\"\n },\n {\n \"provider\": \"admin\",\n \"version\": \"1.0.0\",\n \"description\": null,\n \"name\": \"api1\",\n \"context\": \"/api1\",\n \"id\": \"3e22d2fb-277a-4e9e-8c7e-1c0f7f73960e\",\n \"status\": \"PUBLISHED\"\n }\n ],\n \"next\": \"\",\n \"count\": 2\n}" summary: | Get all APIs description: | Get a list of available APIs qualifying under a given search condition. parameters: - $ref : '#/parameters/limit' - $ref : '#/parameters/offset' - name : query in: query 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". Supported attribute modifiers are [**version, context, status, description, subcontext, doc, provider**] If no advanced attribute modifier has been specified, search will match the given query string against API Name. type: string - $ref : "#/parameters/Accept" - $ref : "#/parameters/If-None-Match" tags: - APIs responses: 200: description: | OK. List of qualifying APIs is returned. schema: $ref: '#/definitions/APIList' headers: Content-Type: description: The content type of the body. type: string ETag: description: | Entity Tag of the response resource. Used by caches, or in conditional requests. type: string 304: description: | Not Modified. Empty body because the client has already the latest version of the requested resource. 406: description: | Not Acceptable. The requested media type is not supported schema: $ref: '#/definitions/Error' #----------------------------------------------------- # Create a new API #----------------------------------------------------- post: x-scope: apim:api_create x-wso2-curl: "curl -H \"Authorization: Bearer 40e486e50ce43407181fb4c570d2cac7\" -H \"Content-Type: application/json\" -X POST -d @data.json http://127.0.0.1:9763/api/am/publisher/v0.10/apis" x-wso2-request: "{\n \"sequences\": [],\n \"tiers\": [\n \"Bronze\",\n \"Gold\"\n ],\n \"thumbnailUrl\": null,\n \"visibility\": \"PUBLIC\",\n \"visibleRoles\": [],\n \"visibleTenants\": [],\n \"cacheTimeout\": 300,\n \"endpointConfig\": \"{\\\"production_endpoints\\\":{\\\"url\\\":\\\" http://ws.cdyne.com/phoneverify/phoneverify.asmx\\\",\\\"config\\\":null},\\\"endpoint_type\\\":\\\"http\\\"}\",\n \"subscriptionAvailability\": null,\n \"subscriptionAvailableTenants\": [],\n \"destinationStatsEnabled\": \"Disabled\",\n \"apiDefinition\": \"{\\\"paths\\\":{\\\"\\/*\\\":{\\\"get\\\":{\\\"x-auth-type\\\":\\\"Application\\\",\\\"x-throttling-tier\\\":\\\"Unlimited\\\",\\\"responses\\\":{\\\"200\\\":{\\\"description\\\":\\\"OK\\\"}}}}},\\\"x-wso2-security\\\":{\\\"apim\\\":{\\\"x-wso2-scopes\\\":[]}},\\\"swagger\\\":\\\"2.0\\\",\\\"info\\\":{\\\"title\\\":\\\"PhoneVerification\\\",\\\"description\\\":\\\"Verify a phone number\\\",\\\"contact\\\":{\\\"email\\\":\\\"xx@ee.com\\\",\\\"name\\\":\\\"xx\\\"},\\\"version\\\":\\\"1.0.0\\\"}}\",\n \"responseCaching\": \"Disabled\",\n \"isDefaultVersion\": true,\n \"gatewayEnvironments\": \"Production and Sandbox\",\n \"businessInformation\": {\n \"technicalOwner\": \"xx\",\n \"technicalOwnerEmail\": \"ggg@ww.com\",\n \"businessOwner\": \"xx\",\n \"businessOwnerEmail\": \"xx@ee.com\"\n },\n \"transport\": [\n \"http\",\n \"https\"\n ],\n \"tags\": [\n \"phone\",\n \"multimedia\",\n \"mobile\"\n ],\n \"provider\": \"admin\",\n \"version\": \"1.0.0\",\n \"description\": \"Verify a phone number\",\n \"name\": \"PhoneVerification\",\n \"context\": \"/phoneverify\"\n}" x-wso2-response: "HTTP/1.1 201 Created\nLocation: http://localhost:9763/api/am/publisher/v0.10/apis/890a4f4d-09eb-4877-a323-57f6ce2ed79b\nContent-Type: application/json\n\n{\n \"sequences\": [],\n \"tiers\": [\n \"Bronze\",\n \"Gold\"\n ],\n \"thumbnailUrl\": null,\n \"visibility\": \"PUBLIC\",\n \"visibleRoles\": [],\n \"visibleTenants\": [],\n \"cacheTimeout\": 300,\n \"endpointConfig\": \"{\\\"production_endpoints\\\":{\\\"url\\\":\\\" http://ws.cdyne.com/phoneverify/phoneverify.asmx\\\",\\\"config\\\":null},\\\"endpoint_type\\\":\\\"http\\\"}\",\n \"subscriptionAvailability\": null,\n \"subscriptionAvailableTenants\": [],\n \"destinationStatsEnabled\": \"Disabled\",\n \"apiDefinition\": \"{\\\"paths\\\":{\\\"\\/*\\\":{\\\"get\\\":{\\\"x-auth-type\\\":\\\"Application\\\",\\\"x-throttling-tier\\\":\\\"Unlimited\\\",\\\"responses\\\":{\\\"200\\\":{\\\"description\\\":\\\"OK\\\"}}}}},\\\"x-wso2-security\\\":{\\\"apim\\\":{\\\"x-wso2-scopes\\\":[]}},\\\"swagger\\\":\\\"2.0\\\",\\\"info\\\":{\\\"title\\\":\\\"PhoneVerification\\\",\\\"description\\\":\\\"Verify a phone number\\\",\\\"contact\\\":{\\\"email\\\":\\\"xx@ee.com\\\",\\\"name\\\":\\\"xx\\\"},\\\"version\\\":\\\"1.0.0\\\"}}\",\n \"responseCaching\": \"Disabled\",\n \"isDefaultVersion\": true,\n \"gatewayEnvironments\": \"Production and Sandbox\",\n \"businessInformation\": {\n \"technicalOwner\": \"xx\",\n \"technicalOwnerEmail\": \"ggg@ww.com\",\n \"businessOwner\": \"xx\",\n \"businessOwnerEmail\": \"xx@ee.com\"\n },\n \"transport\": [\n \"http\",\n \"https\"\n ],\n \"tags\": [\n \"phone\",\n \"multimedia\",\n \"mobile\"\n ],\n \"provider\": \"admin\",\n \"version\": \"1.0.0\",\n \"description\": \"Verify a phone number\",\n \"name\": \"PhoneVerification\",\n \"context\": \"/phoneverify\",\n \"id\": \"890a4f4d-09eb-4877-a323-57f6ce2ed79b\",\n \"status\": \"CREATED\"\n}" summary: Create a new API description: | Create a new API parameters: - in: body name: body description: | API object that needs to be added required: true schema: $ref: '#/definitions/API' - $ref: '#/parameters/Content-Type' tags: - APIs responses: 201: description: | Created. Successful response with the newly created object as entity in the body. Location header contains URL of newly created entity. schema: $ref: '#/definitions/API' headers: Location: description: | The URL of the newly created resource. type: string Content-Type: description: | The content type of the body. type: string ETag: description: | Entity Tag of the response resource. Used by caches, or in conditional request type: string 400: description: | Bad Request. Invalid request or validation error. schema: $ref: '#/definitions/Error' 415: description: | Unsupported Media Type. The entity of the request was in a not supported format. schema: $ref: '#/definitions/Error' ###################################################### # The "Individual API" resource APIs ###################################################### /apis/{apiId}: #----------------------------------------------------- # Retrieve the details of an API definition #----------------------------------------------------- get: x-scope: apim:api_view x-wso2-curl: "curl -H \"Authorization: Bearer b0982cd2aacd463ff5f63cd5ebe58f4a\" http://127.0.0.1:9763/api/am/publisher/v0.10/apis/890a4f4d-09eb-4877-a323-57f6ce2ed79b" x-wso2-response: "HTTP/1.1 200 OK\nDate: Mon, 22 Feb 2016 13:27:08 GMT\nContent-Type: application/json\nTransfer-Encoding: chunked\nServer: WSO2 Carbon Server\n\n{\n \"sequences\": [],\n \"tiers\": [\n \"Bronze\",\n \"Gold\"\n ],\n \"thumbnailUrl\": null,\n \"visibility\": \"PUBLIC\",\n \"visibleRoles\": [],\n \"visibleTenants\": [],\n \"cacheTimeout\": 300,\n \"endpointConfig\": \"{\\\"production_endpoints\\\":{\\\"url\\\":\\\" http://ws.cdyne.com/phoneverify/phoneverify.asmx\\\",\\\"config\\\":null},\\\"endpoint_type\\\":\\\"http\\\"}\",\n \"subscriptionAvailability\": null,\n \"subscriptionAvailableTenants\": [],\n \"destinationStatsEnabled\": \"Disabled\",\n \"apiDefinition\": \"{\\\"paths\\\":{\\\"\\/*\\\":{\\\"get\\\":{\\\"x-auth-type\\\":\\\"Application\\\",\\\"x-throttling-tier\\\":\\\"Unlimited\\\",\\\"responses\\\":{\\\"200\\\":{\\\"description\\\":\\\"OK\\\"}}}}},\\\"x-wso2-security\\\":{\\\"apim\\\":{\\\"x-wso2-scopes\\\":[]}},\\\"swagger\\\":\\\"2.0\\\",\\\"info\\\":{\\\"title\\\":\\\"PhoneVerification\\\",\\\"description\\\":\\\"Verify a phone number\\\",\\\"contact\\\":{\\\"email\\\":\\\"xx@ee.com\\\",\\\"name\\\":\\\"xx\\\"},\\\"version\\\":\\\"1.0.0\\\"}}\",\n \"responseCaching\": \"Disabled\",\n \"isDefaultVersion\": false,\n \"gatewayEnvironments\": \"Production and Sandbox\",\n \"businessInformation\": {\n \"technicalOwner\": \"xx\",\n \"technicalOwnerEmail\": \"ggg@ww.com\",\n \"businessOwner\": \"xx\",\n \"businessOwnerEmail\": \"xx@ee.com\"\n },\n \"transport\": [\n \"http\",\n \"https\"\n ],\n \"tags\": [\n \"phone\",\n \"multimedia\",\n \"mobile\"\n ],\n \"provider\": \"admin\",\n \"version\": \"1.0.0\",\n \"description\": \"Verify a phone number\",\n \"name\": \"PhoneVerification\",\n \"context\": \"/phoneverify\",\n \"id\": \"890a4f4d-09eb-4877-a323-57f6ce2ed79b\",\n \"status\": \"PUBLISHED\"\n}" summary: Get API details description: | Get details of an API parameters: - $ref: '#/parameters/apiId' - $ref: '#/parameters/Accept' - $ref: '#/parameters/If-None-Match' - $ref: '#/parameters/If-Modified-Since' tags: - APIs responses: 200: description: | OK. Requested API is returned headers: Content-Type: description: | The content type of the body. type: string ETag: description: | Entity Tag of the response resource. Used by caches, or in conditional requests. type: string Last-Modified: description: | Date and time the resource has been modifed the last time. Used by caches, or in conditional requests. type: string schema: $ref: '#/definitions/API' 304: description: | Not Modified. Empty body because the client has already the latest version of the requested resource. 404: description: | Not Found. Requested API does not exist. schema: $ref: '#/definitions/Error' 406: description: | Not Acceptable. The requested media type is not supported schema: $ref: '#/definitions/Error' #----------------------------------------------------- # Update the definition of an API #----------------------------------------------------- put: x-scope: apim:api_create x-wso2-curl: "curl -H \"Authorization: Bearer b0982cd2aacd463ff5f63cd5ebe58f4a\" -H \"Content-Type: application/json\" -X PUT -d @data.json http://127.0.0.1:9763/api/am/publisher/v0.10/apis/6fb74674-4ab8-4b52-9886-f9a376985060" x-wso2-request: "{\n \"sequences\": [],\n \"tiers\": [\n \"Bronze\",\n \"Gold\"\n ],\n \"thumbnailUrl\": null,\n \"visibility\": \"PUBLIC\",\n \"visibleRoles\": [],\n \"visibleTenants\": [],\n \"cacheTimeout\": 300,\n \"endpointConfig\": \"{\\\"production_endpoints\\\":{\\\"url\\\":\\\" http://ws.cdyne.com/phoneverify/phoneverify.asmx\\\",\\\"config\\\":null},\\\"endpoint_type\\\":\\\"http\\\"}\",\n \"subscriptionAvailability\": null,\n \"subscriptionAvailableTenants\": [],\n \"destinationStatsEnabled\": \"Disabled\",\n \"apiDefinition\": \"{\\\"paths\\\":{\\\"\\/*\\\":{\\\"get\\\":{\\\"x-auth-type\\\":\\\"Application\\\",\\\"x-throttling-tier\\\":\\\"Unlimited\\\",\\\"responses\\\":{\\\"200\\\":{\\\"description\\\":\\\"OK\\\"}}}}},\\\"x-wso2-security\\\":{\\\"apim\\\":{\\\"x-wso2-scopes\\\":[]}},\\\"swagger\\\":\\\"2.0\\\",\\\"info\\\":{\\\"title\\\":\\\"PhoneVerification\\\",\\\"description\\\":\\\"Verify a phone number\\\",\\\"contact\\\":{\\\"email\\\":\\\"xx@ee.com\\\",\\\"name\\\":\\\"xx\\\"},\\\"version\\\":\\\"2.0.0\\\"}}\",\n \"responseCaching\": \"Disabled\",\n \"isDefaultVersion\": false,\n \"gatewayEnvironments\": \"Production and Sandbox\",\n \"businessInformation\": {\n \"technicalOwner\": \"xx\",\n \"technicalOwnerEmail\": \"ggg@ww.com\",\n \"businessOwner\": \"xx\",\n \"businessOwnerEmail\": \"xx@ee.com\"\n },\n \"transport\": [\n \"http\",\n \"https\"\n ],\n \"tags\": [\n \"phone\",\n \"multimedia\",\n \"verification\",\n \"mobile\"\n ],\n \"provider\": \"admin\",\n \"version\": \"2.0.0\",\n \"description\": \"Use this API to verify a phone number\",\n \"name\": \"PhoneVerification\",\n \"context\": \"/phoneverify\",\n \"id\": \"6fb74674-4ab8-4b52-9886-f9a376985060\",\n \"status\": \"CREATED\"\n}" x-wso2-response: "HTTP/1.1 200 OK\nDate: Mon, 22 Feb 2016 13:31:35 GMT\nContent-Type: application/json\nTransfer-Encoding: chunked\nServer: WSO2 Carbon Server\n\n{\n \"sequences\": [],\n \"tiers\": [\n \"Bronze\",\n \"Gold\"\n ],\n \"thumbnailUrl\": null,\n \"visibility\": \"PUBLIC\",\n \"visibleRoles\": [],\n \"visibleTenants\": [],\n \"cacheTimeout\": 300,\n \"endpointConfig\": \"{\\\"production_endpoints\\\":{\\\"url\\\":\\\" http://ws.cdyne.com/phoneverify/phoneverify.asmx\\\",\\\"config\\\":null},\\\"endpoint_type\\\":\\\"http\\\"}\",\n \"subscriptionAvailability\": null,\n \"subscriptionAvailableTenants\": [],\n \"destinationStatsEnabled\": \"Disabled\",\n \"apiDefinition\": \"{\\\"paths\\\":{\\\"\\/*\\\":{\\\"get\\\":{\\\"x-auth-type\\\":\\\"Application\\\",\\\"x-throttling-tier\\\":\\\"Unlimited\\\",\\\"responses\\\":{\\\"200\\\":{\\\"description\\\":\\\"OK\\\"}}}}},\\\"x-wso2-security\\\":{\\\"apim\\\":{\\\"x-wso2-scopes\\\":[]}},\\\"swagger\\\":\\\"2.0\\\",\\\"info\\\":{\\\"title\\\":\\\"PhoneVerification\\\",\\\"description\\\":\\\"Verify a phone number\\\",\\\"contact\\\":{\\\"email\\\":\\\"xx@ee.com\\\",\\\"name\\\":\\\"xx\\\"},\\\"version\\\":\\\"2.0.0\\\"}}\",\n \"responseCaching\": \"Disabled\",\n \"isDefaultVersion\": false,\n \"gatewayEnvironments\": \"Production and Sandbox\",\n \"businessInformation\": {\n \"technicalOwner\": \"xx\",\n \"technicalOwnerEmail\": \"ggg@ww.com\",\n \"businessOwner\": \"xx\",\n \"businessOwnerEmail\": \"xx@ee.com\"\n },\n \"transport\": [\n \"http\",\n \"https\"\n ],\n \"tags\": [\n \"phone\",\n \"multimedia\",\n \"verification\",\n \"mobile\"\n ],\n \"provider\": \"admin\",\n \"version\": \"2.0.0\",\n \"description\": \"Use this API to verify a phone number\",\n \"name\": \"PhoneVerification\",\n \"context\": \"/phoneverify\",\n \"id\": \"6fb74674-4ab8-4b52-9886-f9a376985060\",\n \"status\": \"CREATED\"\n}" summary: Update an existing API description: | Update an existing API parameters: - $ref: '#/parameters/apiId' - in: body name: body description: | API object that needs to be added required: true schema: $ref: '#/definitions/API' - $ref: '#/parameters/Content-Type' - $ref: '#/parameters/If-Match' - $ref: '#/parameters/If-Unmodified-Since' tags: - APIs responses: 200: description: | OK. Successful response with updated API object schema: $ref: '#/definitions/API' headers: Location: description: | The URL of the newly created resource. type: string Content-Type: description: | The content type of the body. type: string ETag: description: | Entity Tag of the response resource. Used by caches, or in conditional request. type: string Last-Modified: description: | Date and time the resource has been modifed the last time. Used by caches, or in conditional requests. type: string 400: description: | Bad Request. Invalid request or validation error schema: $ref: '#/definitions/Error' 403: description: | Forbidden. The request must be conditional but no condition has been specified. schema: $ref: '#/definitions/Error' 404: description: | Not Found. The resource to be updated does not exist. schema: $ref: '#/definitions/Error' 412: description: | Precondition Failed. The request has not been performed because one of the preconditions is not met. schema: $ref: '#/definitions/Error' #----------------------------------------------------- # Delete the definition of an API #----------------------------------------------------- delete: x-scope: apim:api_create x-wso2-curl: "curl -H \"Authorization: Bearer b0982cd2aacd463ff5f63cd5ebe58f4a\" -X DELETE http://127.0.0.1:9763/api/am/publisher/v0.10/apis/6fb74674-4ab8-4b52-9886-f9a376985060" x-wso2-response: "HTTP/1.1 200 OK" summary: Delete API description: | Delete an existing API parameters: - $ref: '#/parameters/apiId' - $ref: '#/parameters/If-Match' - $ref: '#/parameters/If-Unmodified-Since' tags: - APIs responses: 200: description: | OK. Resource successfully deleted. 403: description: | Forbidden. The request must be conditional but no condition has been specified. schema: $ref: '#/definitions/Error' 404: description: | Not Found. Resource to be deleted does not exist. schema: $ref: '#/definitions/Error' 412: description: | Precondition Failed. The request has not been performed because one of the preconditions is not met. schema: $ref: '#/definitions/Error' ################################################################ # The swagger resource of "Individual API" resource APIs ################################################################ /apis/{apiId}/swagger: #----------------------------------------------------- # Retrieve the API swagger definition #----------------------------------------------------- get: x-scope: apim:api_view x-wso2-curl: "curl -H \"Authorization: Bearer b0982cd2aacd463ff5f63cd5ebe58f4a\" http://127.0.0.1:9763/api/am/publisher/v0.10/apis/890a4f4d-09eb-4877-a323-57f6ce2ed79b/swagger" x-wso2-response: "HTTP/1.1 200 OK\nContent-Type: application/json\nContent-Length: 329\n\n{\n \"paths\": {\"/*\": {\"get\": {\n \"x-auth-type\": \"Application\",\n \"x-throttling-tier\": \"Unlimited\",\n \"responses\": {\"200\": {\"description\": \"OK\"}}\n }}},\n \"x-wso2-security\": {\"apim\": {\"x-wso2-scopes\": []}},\n \"swagger\": \"2.0\",\n \"info\": {\n \"title\": \"PhoneVerification\",\n \"description\": \"Verify a phone number\",\n \"contact\": {\n \"email\": \"xx@ee.com\",\n \"name\": \"xx\"\n },\n \"version\": \"1.0.0\"\n }\n}" summary: Get API Definition description: | Get the swagger of an API parameters: - $ref: '#/parameters/apiId' - $ref: '#/parameters/Accept' - $ref: '#/parameters/If-None-Match' - $ref: '#/parameters/If-Modified-Since' tags: - APIs responses: 200: description: | OK. Requested swagger document of the API is returned headers: Content-Type: description: | The content type of the body. type: string ETag: description: | Entity Tag of the response resource. Used by caches, or in conditional requests. type: string Last-Modified: description: | Date and time the resource has been modifed the last time. Used by caches, or in conditional requests. type: string 304: description: | Not Modified. Empty body because the client has already the latest version of the requested resource. 404: description: | Not Found. Requested API does not exist. schema: $ref: '#/definitions/Error' 406: description: | Not Acceptable. The requested media type is not supported schema: $ref: '#/definitions/Error' #----------------------------------------------------- # Update the API swagger definition #----------------------------------------------------- put: consumes: - multipart/form-data x-scope: apim:api_create x-wso2-curl: "curl -k -H \"Authorization:Bearer b0982cd2aacd463ff5f63cd5ebe58f4a\" -F apiDefinition=\"{\\\"paths\\\":{\\\"\\/*\\\":{\\\"get\\\":{\\\"x-auth-type\\\":\\\"Application\\\",\\\"x-throttling-tier\\\":\\\"Unlimited\\\",\\\"responses\\\":{\\\"200\\\":{\\\"description\\\":\\\"OK\\\"}}}}},\\\"x-wso2-security\\\":{\\\"apim\\\":{\\\"x-wso2-scopes\\\":[]}},\\\"swagger\\\":\\\"2.0\\\",\\\"info\\\":{\\\"title\\\":\\\"PhoneVerification\\\",\\\"description\\\":\\\"Verify a phone number\\\",\\\"contact\\\":{\\\"email\\\":\\\"xx@ee.com\\\",\\\"name\\\":\\\"xx\\\"},\\\"version\\\":\\\"1.0.0\\\"}}\" -X PUT \"http://127.0.0.1:9763/api/am/publisher/v0.10/apis/890a4f4d-09eb-4877-a323-57f6ce2ed79b/swagger\"" x-wso2-request: "{\n \"paths\": {\n \"\\/*\": {\n \"get\": {\n \"x-auth-type\": \"Application\",\n \"x-throttling-tier\": \"Unlimited\",\n \"responses\": {\n \"200\": {\n \"description\": \"OK\"\n }\n }\n }\n }\n },\n \"x-wso2-security\": {\n \"apim\": {\n \"x-wso2-scopes\": []\n }\n },\n \"swagger\": \"2.0\",\n \"info\": {\n \"title\": \"PhoneVerification\",\n \"description\": \"Verify a phone number\",\n \"contact\": {\n \"email\": \"xx@ee.com\",\n \"name\": \"xx\"\n },\n \"version\": \"1.0.0\"\n }\n}" x-wso2-response: "HTTP/1.1 200 OK\nContent-Type: application/json\n\n{\n \"paths\": {\"/*\": {\"get\": {\n \"x-auth-type\": \"Application\",\n \"x-throttling-tier\": \"Unlimited\",\n \"responses\": {\"200\": {\"description\": \"OK\"}}\n }}},\n \"x-wso2-security\": {\"apim\": {\"x-wso2-scopes\": []}},\n \"swagger\": \"2.0\",\n \"info\": {\n \"title\": \"PhoneVerification\",\n \"description\": \"Verify a phone number\",\n \"contact\": {\n \"email\": \"xx@ee.com\",\n \"name\": \"xx\"\n },\n \"version\": \"1.0.0\"\n }\n}" summary: Update API Definition description: | Update an existing swagger definition of an API parameters: - $ref: '#/parameters/apiId' - in: formData name: apiDefinition description: Swagger definition of the API type: string required: true - $ref: '#/parameters/Content-Type' - $ref: '#/parameters/If-Match' - $ref: '#/parameters/If-Unmodified-Since' tags: - APIs responses: 200: description: | OK. Successful response with updated Swagger definition headers: Location: description: | The URL of the newly created resource. type: string Content-Type: description: | The content type of the body. type: string ETag: description: | Entity Tag of the response resource. Used by caches, or in conditional request. type: string Last-Modified: description: | Date and time the resource has been modifed the last time. Used by caches, or in conditional requests. type: string 400: description: | Bad Request. Invalid request or validation error schema: $ref: '#/definitions/Error' 403: description: | Forbidden. The request must be conditional but no condition has been specified. schema: $ref: '#/definitions/Error' 404: description: | Not Found. The resource to be updated does not exist. schema: $ref: '#/definitions/Error' 412: description: | Precondition Failed. The request has not been performed because one of the preconditions is not met. schema: $ref: '#/definitions/Error' ################################################################ # The thumbnail resource of "Individual API" resource APIs ################################################################ /apis/{apiId}/thumbnail: #------------------------------------------------------------------------------------------------- # Downloads a thumbnail image of an API #------------------------------------------------------------------------------------------------- get: x-scope: apim:api_view x-wso2-curl: "curl -H \"Authorization: Bearer d34baf74-3f02-3929-814e-88b27f750ba9\" http://127.0.0.1:9763/api/am/publisher/v0.10/apis/29c9ec3d-f590-467e-83e6-96d43517080f/thumbnail > image.jpg" x-wso2-response: "HTTP/1.1 200 OK\r\nContent-Type: image/jpeg\r\n\r\n[image content]" summary: Get the thumbnail image description: | Downloads a thumbnail image of an API parameters: - $ref: '#/parameters/apiId' - $ref: '#/parameters/Accept' - $ref: '#/parameters/If-None-Match' - $ref: '#/parameters/If-Modified-Since' tags: - APIs responses: 200: description: | OK. Thumbnail image returned headers: Content-Type: description: | The content type of the body. type: string ETag: description: | Entity Tag of the response resource. Used by caches, or in conditional requests. type: string Last-Modified: description: | Date and time the resource has been modifed the last time. Used by caches, or in conditional reuquests. type: string 304: description: | Not Modified. Empty body because the client has already the latest version of the requested resource. 404: description: | Not Found. Requested Document does not exist. schema: $ref: '#/definitions/Error' 406: description: | Not Acceptable. The requested media type is not supported schema: $ref: '#/definitions/Error' #---------------------------------------------------------------------------- # Upload a thumbnail image to a certain API #---------------------------------------------------------------------------- post: consumes: - multipart/form-data x-scope: apim:api_create x-wso2-curl: "curl -X POST -H \"Authorization: Bearer d34baf74-3f02-3929-814e-88b27f750ba9\" http://127.0.0.1:9763/api/am/publisher/v0.10/apis/29c9ec3d-f590-467e-83e6-96d43517080f/thumbnail -F file=@image.jpg" x-wso2-response: "HTTP/1.1 201 Created\r\nLocation: http://localhost:9763/api/am/publisher/v0.10/apis/29c9ec3d-f590-467e-83e6-96d43517080f/thumbnail\r\nContent-Type: application/json\r\n\r\n{\r\n \"relativePath\": \"/apis/29c9ec3d-f590-467e-83e6-96d43517080f/thumbnail\",\r\n \"mediaType\": \"image/jpeg\"\r\n}" summary: Upload a thumbnail image description: | Upload a thumbnail image to an API. parameters: - $ref: '#/parameters/apiId' - in: formData name: file description: Image to upload type: file required: true - $ref: '#/parameters/Content-Type' - $ref: '#/parameters/If-Match' - $ref: '#/parameters/If-Unmodified-Since' tags: - APIs responses: 200: description: | OK. Image updated schema: $ref : '#/definitions/FileInfo' headers: Location: description: | The URL of the uploaded thumbnail image of the API. type: string Content-Type: description: | The content type of the body. type: string ETag: description: | Entity Tag of the response resource. Used by caches, or in conditional request. type: string Last-Modified: description: | Date and time the resource has been modifed the last time. Used by caches, or in conditional reuquests. type: string 400: description: | Bad Request. Invalid request or validation error. schema: $ref: '#/definitions/Error' 404: description: | Not Found. The resource to be updated does not exist. schema: $ref: '#/definitions/Error' 412: description: | Precondition Failed. The request has not been performed because one of the preconditions is not met. schema: $ref: '#/definitions/Error' ###################################################### # The "Copy API" Processing Function resource API ###################################################### /apis/copy-api: #----------------------------------------------------- # Create a new API based on an already existing one #----------------------------------------------------- post: x-scope: apim:api_create x-wso2-curl: "curl -H \"Authorization: Bearer b0982cd2aacd463ff5f63cd5ebe58f4a\" -X POST \"http://127.0.0.1:9763/api/am/publisher/v0.10/apis/copy-api?apiId=890a4f4d-09eb-4877-a323-57f6ce2ed79b&newVersion=2.0.0\"" x-wso2-response: "HTTP/1.1 201 Created\nLocation: http://localhost:9763/api/am/publisher/v0.10/apis/6fb74674-4ab8-4b52-9886-f9a376985060\nContent-Type: application/json\n\n{\n \"sequences\": [],\n \"tiers\": [\n \"Bronze\",\n \"Gold\"\n ],\n \"thumbnailUrl\": null,\n \"visibility\": \"PUBLIC\",\n \"visibleRoles\": [],\n \"visibleTenants\": [],\n \"cacheTimeout\": 300,\n \"endpointConfig\": \"{\\\"production_endpoints\\\":{\\\"url\\\":\\\" http://ws.cdyne.com/phoneverify/phoneverify.asmx\\\",\\\"config\\\":null},\\\"endpoint_type\\\":\\\"http\\\"}\",\n \"subscriptionAvailability\": null,\n \"subscriptionAvailableTenants\": [],\n \"destinationStatsEnabled\": \"Disabled\",\n \"apiDefinition\": \"{\\\"paths\\\":{\\\"\\/*\\\":{\\\"get\\\":{\\\"x-auth-type\\\":\\\"Application\\\",\\\"x-throttling-tier\\\":\\\"Unlimited\\\",\\\"responses\\\":{\\\"200\\\":{\\\"description\\\":\\\"OK\\\"}}}}},\\\"x-wso2-security\\\":{\\\"apim\\\":{\\\"x-wso2-scopes\\\":[]}},\\\"swagger\\\":\\\"2.0\\\",\\\"info\\\":{\\\"title\\\":\\\"PhoneVerification\\\",\\\"description\\\":\\\"Verify a phone number\\\",\\\"contact\\\":{\\\"email\\\":\\\"xx@ee.com\\\",\\\"name\\\":\\\"xx\\\"},\\\"version\\\":\\\"2.0.0\\\"}}\",\n \"responseCaching\": \"Disabled\",\n \"isDefaultVersion\": true,\n \"gatewayEnvironments\": \"Production and Sandbox\",\n \"businessInformation\": {\n \"technicalOwner\": \"xx\",\n \"technicalOwnerEmail\": \"ggg@ww.com\",\n \"businessOwner\": \"xx\",\n \"businessOwnerEmail\": \"xx@ee.com\"\n },\n \"transport\": [\n \"http\",\n \"https\"\n ],\n \"tags\": [\n \"phone\",\n \"multimedia\",\n \"mobile\"\n ],\n \"provider\": \"admin\",\n \"version\": \"2.0.0\",\n \"description\": \"Verify a phone number\",\n \"name\": \"PhoneVerification\",\n \"context\": \"/phoneverify\",\n \"id\": \"6fb74674-4ab8-4b52-9886-f9a376985060\",\n \"status\": \"CREATED\"\n}" summary: Copy API description: | Create a new API by copying an existing API parameters: - name: newVersion description: Version of the new API. type: string in: query required: true - $ref: '#/parameters/apiId-Q' tags: - APIs responses: 201: 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. type: string 400: description: | Bad Request. Invalid request or validation error schema: $ref: '#/definitions/Error' 404: description: | Not Found. API to copy does not exist. schema: $ref: '#/definitions/Error' ###################################################### # The "Change Lifecycle" Processing Function resource API ###################################################### /apis/change-lifecycle: #----------------------------------------------------- # Change the lifecycle of an API #----------------------------------------------------- post: x-scope: apim:api_publish x-wso2-curl: "curl -H \"Authorization: Bearer b0982cd2aacd463ff5f63cd5ebe58f4a\" -X POST \"http://127.0.0.1:9763/api/am/publisher/v0.10/apis/change-lifecycle?apiId=890a4f4d-09eb-4877-a323-57f6ce2ed79b&action=Publish\"" x-wso2-response: "HTTP/1.1 200 OK" summary: Change API Status description: | Change the lifecycle of an API parameters: - name: action description: | The action to demote or promote the state of the API. Supported actions are [ **Publish, Deploy as a Prototype, Demote to Created, Demote to Prototyped, Block, Deprecate, Re-Publish, Retire **] in: query type: string required: true enum: - Publish - Deploy as a Prototype - Demote to Created - Demote to Prototyped - Block - Deprecate - Re-Publish - Retire - name: lifecycleChecklist description: | You can specify additional checklist items by using an **"attribute:"** modifier. Eg: "Deprecate Old Versions: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. Supported checklist items are as follows. 1. **Deprecate Old Versions**: Setting this to true will deprecate older versions of a particular API when it is promoted to Published state from Created state. 2. **Require Re-Subscription**: If you set this to true, users need to re subscribe to the API although they may have subscribed to an older version. type: string in: query - $ref: '#/parameters/apiId-Q' - $ref: '#/parameters/If-Match' - $ref: '#/parameters/If-Unmodified-Since' tags: - APIs responses: 200: description: | OK. Lifecycle changed successfully. headers: ETag: description: | Entity Tag of the changed API. Used by caches, or in conditional request. type: string Last-Modified: description: | Date and time the API lifecycle has been modified the last time. Used by caches, or in conditional requests. type: string 400: description: | Bad Request. Invalid request or validation error schema: $ref: '#/definitions/Error' 404: description: | Not Found. Requested API does not exist. schema: $ref: '#/definitions/Error' 412: description: | Precondition Failed. The request has not been performed because one of the preconditions is not met. schema: $ref: '#/definitions/Error' ###################################################### # The "Document Collection" resource APIs ###################################################### /apis/{apiId}/documents: #----------------------------------------------------- # Retrieve the documents associated with an API that qualify under a search condition #----------------------------------------------------- get: x-scope: apim:api_view x-wso2-curl: "curl -H \"Authorization: Bearer b0982cd2aacd463ff5f63cd5ebe58f4a\" \"http://127.0.0.1:9763/api/am/publisher/v0.10/apis/890a4f4d-09eb-4877-a323-57f6ce2ed79b/documents\"" x-wso2-response: "HTTP/1.1 200 OK\nContent-Type: application/json\n\n{\n \"previous\": \"\",\n \"list\": [\n {\n \"visibility\": \"API_LEVEL\",\n \"sourceType\": \"INLINE\",\n \"sourceUrl\": null,\n \"otherTypeName\": null,\n \"documentId\": \"0bcb7f05-599d-4e1a-adce-5cb89bfe58d5\",\n \"summary\": \"This is a sample documentation for v1.0.0\",\n \"name\": \"PhoneVerification API Documentation\",\n \"type\": \"HOWTO\"\n },\n {\n \"visibility\": \"API_LEVEL\",\n \"sourceType\": \"URL\",\n \"sourceUrl\": \"http://wiki.cdyne.com/index.php/Phone_Verification\",\n \"otherTypeName\": null,\n \"documentId\": \"4145df31-04f1-440c-8d08-68952874622c\",\n \"summary\": \"This is the URL for online documentation\",\n \"name\": \"Online Documentation\",\n \"type\": \"SAMPLES\"\n }\n ],\n \"next\": \"\",\n \"count\": 2\n}" summary: Get API Documents description: | Get a list of documents belonging to an API. parameters: - $ref: '#/parameters/apiId' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/Accept' - $ref: '#/parameters/If-None-Match' tags: - API Document responses: 200: description: | OK. Document list is returned. schema: $ref: '#/definitions/DocumentList' headers: Content-Type: description: | The content type of the body. type: string ETag: description: | Entity Tag of the response resource. Used by caches, or in conditional requests. type: string 304: description: | Not Modified. Empty body because the client has already the latest version of the requested resource. 404: description: | Not Found. Requested API does not exist. schema: $ref: '#/definitions/Error' 406: description: | Not Acceptable. The requested media type is not supported schema: $ref: '#/definitions/Error' #----------------------------------------------------- # Add a document to a certain API #----------------------------------------------------- post: x-scope: apim:api_create x-wso2-curl: "curl -H \"Authorization: Bearer cdcc8cf6016ed10620edf3a1d3c5ef2b\" -H \"Content-Type: application/json\" -X POST -d @data.json \"http://127.0.0.1:9763/api/am/publisher/v0.10/apis/96077508-fd01-4fae-bc64-5de0e2baf43c/documents\"" x-wso2-request: "{\n \"visibility\": \"API_LEVEL\",\n \"sourceType\": \"INLINE\",\n \"sourceUrl\": null,\n \"otherTypeName\": null,\n \"summary\": \"This is a sample documentation\",\n \"name\": \"Introduction to PhoneVerification API\",\n \"type\": \"HOWTO\"\n}" x-wso2-response: "HTTP/1.1 201 Created\nLocation: http://localhost:9763/api/am/publisher/v0.10/apis/890a4f4d-09eb-4877-a323-57f6ce2ed79b/documents/ffd5790d-b7a9-4cb6-b76a-f8b83ecdd058\nContent-Type: application/json\n\n{\n \"visibility\": \"API_LEVEL\",\n \"sourceType\": \"INLINE\",\n \"sourceUrl\": null,\n \"otherTypeName\": null,\n \"documentId\": \"ffd5790d-b7a9-4cb6-b76a-f8b83ecdd058\",\n \"summary\": \"This is a sample documentation\",\n \"name\": \"Introduction to PhoneVerification API\",\n \"type\": \"HOWTO\"\n}" summary: Add a new document description: | Add a new document to an API parameters: - $ref: '#/parameters/apiId' - in: body name: body description: | Document object that needs to be added required: true schema: $ref: '#/definitions/Document' - $ref: '#/parameters/Content-Type' tags: - API Document responses: 201: description: | Created. Successful response with the newly created Document object as entity in the body. Location header contains URL of newly added document. schema: $ref: '#/definitions/Document' headers: Location: description: | Location to the newly created Document. type: string Content-Type: description: | The content type of the body. type: string ETag: description: | Entity Tag of the response resource. Used by caches, or in conditional request. type: string 400: description: | Bad Request. Invalid request or validation error schema: $ref: '#/definitions/Error' 415: description: | Unsupported media type. The entity of the request was in a not supported format. ###################################################### # The "Individual Document" resource APIs ###################################################### '/apis/{apiId}/documents/{documentId}': #----------------------------------------------------- # Retrieve a particular document of a certain API #----------------------------------------------------- get: x-scope: apim:api_view x-wso2-curl: "curl -H \"Authorization: Bearer b0982cd2aacd463ff5f63cd5ebe58f4a\" \"http://127.0.0.1:9763/api/am/publisher/v0.10/apis/890a4f4d-09eb-4877-a323-57f6ce2ed79b/documents/0bcb7f05-599d-4e1a-adce-5cb89bfe58d5\"" x-wso2-response: "HTTP/1.1 200 OK\nContent-Type: application/json\n\n{\n \"visibility\": \"API_LEVEL\",\n \"sourceType\": \"INLINE\",\n \"sourceUrl\": null,\n \"otherTypeName\": null,\n \"documentId\": \"0bcb7f05-599d-4e1a-adce-5cb89bfe58d5\",\n \"summary\": \"This is a sample documentation\",\n \"name\": \"PhoneVerification API Documentation\",\n \"type\": \"HOWTO\"\n}" summary: Get an API Document description: | Get a particular document associated with an API. parameters: - $ref: '#/parameters/apiId' - $ref: '#/parameters/documentId' - $ref: '#/parameters/Accept' - $ref: '#/parameters/If-None-Match' - $ref: '#/parameters/If-Modified-Since' tags: - API Document responses: 200: description: | OK. Document returned. schema: $ref: '#/definitions/Document' headers: Content-Type: description: | The content type of the body. type: string ETag: description: | Entity Tag of the response resource. Used by caches, or in conditional requests. type: string Last-Modified: description: | Date and time the resource has been modifed the last time. Used by caches, or in conditional reuquests. type: string 304: description: | Not Modified. Empty body because the client has already the latest version of the requested resource. 404: description: | Not Found. Requested Document does not exist. schema: $ref: '#/definitions/Error' 406: description: | Not Acceptable. The requested media type is not supported schema: $ref: '#/definitions/Error' #----------------------------------------------------- # Update a particular document of a certain API #----------------------------------------------------- put: x-scope: apim:api_create x-wso2-curl: "curl -k -H \"Authorization:Bearer b0982cd2aacd463ff5f63cd5ebe58f4a\" -H \"Content-Type: application/json\" -X PUT -d data.json \"http://127.0.0.1:9763/api/am/publisher/v0.10/apis/96077508-fd01-4fae-bc64-5de0e2baf43c/documents/0bcb7f05-599d-4e1a-adce-5cb89bfe58d5\"" x-wso2-request: "{\n \"visibility\": \"API_LEVEL\",\n \"sourceType\": \"INLINE\",\n \"sourceUrl\": null,\n \"otherTypeName\": null,\n \"documentId\": \"0bcb7f05-599d-4e1a-adce-5cb89bfe58d5\",\n \"summary\": \"This is a sample documentation for v1.0.0\",\n \"name\": \"PhoneVerification API Documentation\",\n \"type\": \"HOWTO\"\n}" x-wso2-response: "HTTP/1.1 200 OK\nContent-Type: application/json\n\n{\n \"visibility\": \"API_LEVEL\",\n \"sourceType\": \"INLINE\",\n \"sourceUrl\": null,\n \"otherTypeName\": null,\n \"documentId\": \"0bcb7f05-599d-4e1a-adce-5cb89bfe58d5\",\n \"summary\": \"This is a sample documentation for v1.0.0\",\n \"name\": \"PhoneVerification API Documentation\",\n \"type\": \"HOWTO\"\n}" summary: Update an API Document description: | Update document details. parameters: - $ref: '#/parameters/apiId' - $ref: '#/parameters/documentId' - in: body name: body description: | Document object that needs to be added required: true schema: $ref: '#/definitions/Document' - $ref: '#/parameters/Content-Type' - $ref: '#/parameters/If-Match' - $ref: '#/parameters/If-Unmodified-Since' tags: - API Document responses: 200: description: | OK. Document updated schema: $ref: '#/definitions/Document' headers: Location: description: | The URL of the updated document. type: string Content-Type: description: | The content type of the body. type: string ETag: description: | Entity Tag of the response resource. Used by caches, or in conditional request. type: string Last-Modified: description: | Date and time the resource has been modifed the last time. Used by caches, or in conditional reuquests. type: string 400: description: | Bad Request. Invalid request or validation error. schema: $ref: '#/definitions/Error' 404: description: | Not Found. The resource to be updated does not exist. schema: $ref: '#/definitions/Error' 412: description: | Precondition Failed. The request has not been performed because one of the preconditions is not met. schema: $ref: '#/definitions/Error' #----------------------------------------------------- # Delete a particular document of a certain API #----------------------------------------------------- delete: x-scope: apim:api_create x-wso2-curl: "curl -H \"Authorization: Bearer b0982cd2aacd463ff5f63cd5ebe58f4a\" -X DELETE http://127.0.0.1:9763/api/am/publisher/v0.10/apis/890a4f4d-09eb-4877-a323-57f6ce2ed79b/documents/ffd5790d-b7a9-4cb6-b76a-f8b83ecdd058" x-wso2-response: "HTTP/1.1 200 OK" summary: Delete an API Document description: | Delete a document of an API parameters: - $ref: '#/parameters/apiId' - $ref: '#/parameters/documentId' - $ref: '#/parameters/If-Match' - $ref: '#/parameters/If-Unmodified-Since' tags: - API Document responses: 200: description: | OK. Resource successfully deleted. 404: description: | Not Found. Resource to be deleted does not exist. schema: $ref: '#/definitions/Error' 412: description: | Precondition Failed. The request has not been performed because one of the preconditions is not met. schema: $ref: '#/definitions/Error' ################################################################ # The content resource of "Individual Document" resource APIs ################################################################ '/apis/{apiId}/documents/{documentId}/content': #------------------------------------------------------------------------------------------------- # Downloads a FILE type document/get the inline content or source url of a certain document #------------------------------------------------------------------------------------------------- get: x-scope: apim:api_view x-wso2-curl: "curl -k -H \"Authorization:Bearer b0982cd2aacd463ff5f63cd5ebe58f4a\" \"http://127.0.0.1:9763/api/am/publisher/v0.10/apis/890a4f4d-09eb-4877-a323-57f6ce2ed79b/documents/daf732d3-bda2-46da-b381-2c39d901ea61/content\" > sample.pdf" x-wso2-response: "HTTP/1.1 200 OK\nContent-Disposition: attachment; filename=\"sample.pdf\"\nContent-Type: application/octet-stream\nContent-Length: 7802\n\n%PDF-1.4\n%äüöß\n2 0 obj\n<>\nstream\n..\n>>\nstartxref\n7279\n%%EOF" summary: Get document content description: | Downloads a FILE type document/get the inline content or source url of a certain document. parameters: - $ref: '#/parameters/apiId' - $ref: '#/parameters/documentId' - $ref: '#/parameters/Accept' - $ref: '#/parameters/If-None-Match' - $ref: '#/parameters/If-Modified-Since' tags: - API Document responses: 200: description: | OK. File or inline content returned. headers: Content-Type: description: | The content type of the body. type: string ETag: description: | Entity Tag of the response resource. Used by caches, or in conditional requests. type: string Last-Modified: description: | Date and time the resource has been modifed the last time. Used by caches, or in conditional reuquests. type: string 303: description: | See Other. Source can be retrived from the URL specified at the Location header. headers: Location: description: | The Source URL of the document. type: string 304: description: | Not Modified. Empty body because the client has already the latest version of the requested resource. 404: description: | Not Found. Requested Document does not exist. schema: $ref: '#/definitions/Error' 406: description: | Not Acceptable. The requested media type is not supported schema: $ref: '#/definitions/Error' #---------------------------------------------------------------------------- # Upload a file or add inline content to a document of a certain API #---------------------------------------------------------------------------- post: consumes: - multipart/form-data x-scope: apim:api_create x-wso2-curl: "curl -k -H \"Authorization:Bearer b0982cd2aacd463ff5f63cd5ebe58f4a\" -F file=@\"sample.pdf\" -X POST \"http://127.0.0.1:9763/api/am/publisher/v0.10/apis/890a4f4d-09eb-4877-a323-57f6ce2ed79b/documents/daf732d3-bda2-46da-b381-2c39d901ea61/content\"" x-wso2-response: "HTTP/1.1 201 Created\nLocation: http://localhost:9763/api/am/publisher/v0.10/apis/890a4f4d-09eb-4877-a323-57f6ce2ed79b/documents/daf732d3-bda2-46da-b381-2c39d901ea61/content\nContent-Type: application/json\n\n{\n \"visibility\":\"API_LEVEL\",\n \"sourceType\":\"FILE\",\n \"sourceUrl\":null,\n \"otherTypeName\":null,\n \"documentId\":\"daf732d3-bda2-46da-b381-2c39d901ea61\",\n \"summary\":\"This is a sample documentation pdf\",\n \"name\":\"Introduction to PhoneVerification API PDF\",\n \"type\":\"HOWTO\"\n}" summary: Update API document content. description: | Upload a file to a document or add inline content to the document. 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. Only one of **file** or **inlineContent** can be specified at one time. parameters: - $ref: '#/parameters/apiId' - $ref: '#/parameters/documentId' - in: formData name: file description: Document to upload type: file required: false - in: formData name: inlineContent description: Inline content of the document type: string required: false - $ref: '#/parameters/Content-Type' - $ref: '#/parameters/If-Match' - $ref: '#/parameters/If-Unmodified-Since' tags: - API Document responses: 200: description: | OK. Document updated schema: $ref: '#/definitions/Document' headers: Location: description: | The URL of the updated content of the document. type: string Content-Type: description: | The content type of the body. type: string ETag: description: | Entity Tag of the response resource. Used by caches, or in conditional request. type: string Last-Modified: description: | Date and time the resource has been modifed the last time. Used by caches, or in conditional reuquests. type: string 400: description: | Bad Request. Invalid request or validation error. schema: $ref: '#/definitions/Error' 404: description: | Not Found. The resource to be updated does not exist. schema: $ref: '#/definitions/Error' 412: description: | Precondition Failed. The request has not been performed because one of the preconditions is not met. schema: $ref: '#/definitions/Error' ###################################################### # The "Individual Application" resource APIs ###################################################### '/applications/{applicationId}': #----------------------------------------------------- # Retrieve the details about a certain application #----------------------------------------------------- get: x-scope: apim:api_create x-wso2-curl: "curl -H \"Authorization: Bearer b0982cd2aacd463ff5f63cd5ebe58f4a\" http://127.0.0.1:9763/api/am/publisher/v0.10/applications/896658a0-b4ee-4535-bbfa-806c894a4015" x-wso2-response: "HTTP/1.1 200 OK\nContent-Type: application/json\n\n{\n \"groupId\": \"\",\n \"subscriber\": \"admin\",\n \"throttlingTier\": \"Unlimited\",\n \"applicationId\": \"896658a0-b4ee-4535-bbfa-806c894a4015\",\n \"description\": null,\n \"name\": \"DefaultApplication\"\n}" summary: Get Application description: | Get application details parameters: - $ref: '#/parameters/applicationId' - $ref: '#/parameters/Accept' - $ref: '#/parameters/If-None-Match' - $ref: '#/parameters/If-Modified-Since' tags: - Applications responses: 200: description: | OK. Application returned. schema: $ref: '#/definitions/Application' headers: Content-Type: description: | The content type of the body. type: string ETag: description: | Entity Tag of the response resource. Used by caches, or in conditional requests. type: string Last-Modified: description: | Date and time the resource has been modifed the last time. Used by caches, or in conditional reuquests. type: string 304: description: | Not Modified. Empty body because the client has already the latest version of the requested resource. 404: description: | Not Found. Requested application does not exist. schema: $ref: '#/definitions/Error' 406: description: | Not Acceptable. The requested media type is not supported schema: $ref: '#/definitions/Error' ###################################################### # The "Subscription Collection" resource APIs ###################################################### /subscriptions: #----------------------------------------------------- # Retrieve all subscriptions of a certain API #----------------------------------------------------- get: x-scope: apim:subscription_view x-wso2-curl: "curl -H \"Authorization: Bearer b0982cd2aacd463ff5f63cd5ebe58f4a\" \"http://127.0.0.1:9763/api/am/publisher/v0.10/subscriptions?apiId=890a4f4d-09eb-4877-a323-57f6ce2ed79b\"" x-wso2-response: "HTTP/1.1 200 OK\nContent-Type: application/json\n \n{\n \"previous\": \"\",\n \"list\": [\n {\n \"subscriptionId\": \"64eca60b-2e55-4c38-8603-e9e6bad7d809\",\n \"tier\": \"Gold\",\n \"apiIdentifier\": \"admin-PhoneVerification-1.0.0\",\n \"applicationId\": \"896658a0-b4ee-4535-bbfa-806c894a4015\",\n \"status\": \"UNBLOCKED\"\n },\n {\n \"subscriptionId\": \"7ac22c34-8745-4cfe-91e0-262c50b2f2e3\",\n \"tier\": \"Gold\",\n \"apiIdentifier\": \"admin-PhoneVerification-1.0.0\",\n \"applicationId\": \"367a2361-8db5-4140-8133-c6c8dc7fa0c4\",\n \"status\": \"UNBLOCKED\"\n }\n ],\n \"next\": \"\",\n \"count\": 2\n}" summary: Get All Subscriptions description: | Get subscription list. The API Identifier and corresponding Application Identifier the subscriptions of which are to be returned are passed as parameters. parameters: - $ref: '#/parameters/apiId-Q' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/Accept' - $ref: '#/parameters/If-None-Match' tags: - Subscriptions responses: 200: description: | OK. Subscription list returned. schema: $ref: '#/definitions/SubscriptionList' headers: Content-Type: description: | The content type of the body. type: string ETag: description: | Entity Tag of the response resource. Used by caches, or in conditional requests. type: string 304: description: | Not Modified. Empty body because the client has already the latest version of the requested resource. 406: description: | Not Acceptable. The requested media type is not supported schema: $ref: '#/definitions/Error' ###################################################### # The "Individual Subscription" resource APIs ###################################################### '/subscriptions/{subscriptionId}': #----------------------------------------------------- # Retrieve a certain subscription #----------------------------------------------------- get: x-scope: apim:subscription_view x-wso2-curl: "curl -H \"Authorization: Bearer b0982cd2aacd463ff5f63cd5ebe58f4a\" http://127.0.0.1:9763/api/am/publisher/v0.10/subscriptions/64eca60b-2e55-4c38-8603-e9e6bad7d809" x-wso2-response: "HTTP/1.1 200 OK\nContent-Type: application/json\n\n{\n \"subscriptionId\": \"64eca60b-2e55-4c38-8603-e9e6bad7d809\",\n \"tier\": \"Gold\",\n \"apiIdentifier\": \"admin-PhoneVerification-1.0.0\",\n \"applicationId\": \"896658a0-b4ee-4535-bbfa-806c894a4015\",\n \"status\": \"UNBLOCKED\"\n}" summary: Get a Subscription description: | Get subscription details parameters: - $ref: '#/parameters/subscriptionId' - $ref: '#/parameters/Accept' - $ref: '#/parameters/If-None-Match' - $ref: '#/parameters/If-Modified-Since' tags: - Subscriptions responses: 200: description: | OK. Subscription returned schema: $ref: '#/definitions/Subscription' headers: Content-Type: description: The content type of the body. type: string ETag: description: 'Entity Tag of the response resource. Used by caches, or in conditional requests.' type: string Last-Modified: description: 'Date and time the resource has been modifed the last time. Used by caches, or in conditional reuquests.' type: string '304': description: | Not Modified. Empty body because the client has already the latest version of the requested resource. '404': description: | Not Found. Requested Subscription does not exist. schema: $ref: '#/definitions/Error' ###################################################### # The "Block Subscription" Processing Function resource API ###################################################### /subscriptions/block-subscription: #----------------------------------------------------- # Block a certain subscription #----------------------------------------------------- post: x-scope: apim:subscription_block x-wso2-curl: "curl -H \"Authorization: Bearer b0982cd2aacd463ff5f63cd5ebe58f4a\" -X POST \"http://127.0.0.1:9763/api/am/publisher/v0.10/subscriptions/block-subscription?subscriptionId=64eca60b-2e55-4c38-8603-e9e6bad7d809&blockState=PROD_ONLY_BLOCKED\"" x-wso2-response: "HTTP/1.1 200 OK\nContent-Type: application/json\n \n{\n \"subscriptionId\": \"64eca60b-2e55-4c38-8603-e9e6bad7d809\",\n \"tier\": \"Gold\",\n \"apiIdentifier\": \"admin-PhoneVerification-1.0.0\",\n \"applicationId\": \"896658a0-b4ee-4535-bbfa-806c894a4015\",\n \"status\": \"PROD_ONLY_BLOCKED\"\n}" summary: Block a subscription parameters: - $ref: '#/parameters/subscriptionId-Q' - name: blockState in: query description: | Subscription block state. type: string required: true enum: - BLOCKED - PROD_ONLY_BLOCKED - $ref: '#/parameters/If-Match' - $ref: '#/parameters/If-Unmodified-Since' description: | Block a subscription. tags: - Subscriptions responses: 200: description: | OK. Subscription was blocked successfully. headers: ETag: description: | Entity Tag of the blocked subscription. Used by caches, or in conditional request. type: string Last-Modified: description: | Date and time the subscription has been blocked. Used by caches, or in conditional requests. type: string 400: description: | Bad Request. Invalid request or validation error schema: $ref: '#/definitions/Error' 404: description: | Not Found. Requested subscription does not exist. schema: $ref: '#/definitions/Error' 412: description: | Precondition Failed. The request has not been performed because one of the preconditions is not met. schema: $ref: '#/definitions/Error' ###################################################### # The "Unblock Subscription" Processing Function resource API ###################################################### /subscriptions/unblock-subscription: #----------------------------------------------------- # Unblock a certain subscription #----------------------------------------------------- post: x-scope: apim:subscription_block x-wso2-curl: "curl -H \"Authorization: Bearer b0982cd2aacd463ff5f63cd5ebe58f4a\" -X POST \"http://127.0.0.1:9763/api/am/publisher/v0.10/subscriptions/unblock-subscription?subscriptionId=64eca60b-2e55-4c38-8603-e9e6bad7d809\"" x-wso2-response: "HTTP/1.1 200 OK\nContent-Type: application/json\n\n{\n \"subscriptionId\": \"64eca60b-2e55-4c38-8603-e9e6bad7d809\",\n \"tier\": \"Gold\",\n \"apiIdentifier\": \"admin-PhoneVerification-1.0.0\",\n \"applicationId\": \"896658a0-b4ee-4535-bbfa-806c894a4015\",\n \"status\": \"UNBLOCKED\"\n} " summary: Unblock a Subscription parameters: - $ref: '#/parameters/subscriptionId-Q' - $ref: '#/parameters/If-Match' - $ref: '#/parameters/If-Unmodified-Since' description: | Unblock a subscription. tags: - Subscriptions responses: 200: description: | OK. Subscription was unblocked successfully. headers: ETag: description: | Entity Tag of the unblocked subscription. Used by caches, or in conditional request. type: string Last-Modified: description: | Date and time the subscription has been unblocked. Used by caches, or in conditional requests. type: string 400: description: | Bad Request. Invalid request or validation error schema: $ref: '#/definitions/Error' 404: description: | Not Found. Requested subscription does not exist. schema: $ref: '#/definitions/Error' 412: description: | Precondition Failed. The request has not been performed because one of the preconditions is not met. schema: $ref: '#/definitions/Error' ###################################################### # The "Tier Collection" resource APIs ###################################################### '/tiers/{tierLevel}': #----------------------------------------------------- # Retrieve the list of all available tiers #----------------------------------------------------- get: x-scope: apim:tier_view x-wso2-curl: "curl -H \"Authorization: Bearer b0982cd2aacd463ff5f63cd5ebe58f4a\" http://127.0.0.1:9763/api/am/publisher/v0.10/tiers/api" x-wso2-response: "HTTP/1.1 200 OK\nContent-Type: application/json\n\n\n{\n \"previous\": \"\",\n \"list\": [\n {\n \"unitTime\": 60000,\n \"tierPlan\": \"FREE\",\n \"tierLevel\": \"api\",\n \"stopOnQuotaReach\": true,\n \"requestCount\": 1,\n \"description\": \"Allows 1 request(s) per minute.\",\n \"name\": \"Bronze\",\n \"attributes\": {}\n },\n {\n \"unitTime\": 60000,\n \"tierPlan\": \"FREE\",\n \"tierLevel\": \"api\",\n \"stopOnQuotaReach\": true,\n \"requestCount\": 20,\n \"description\": \"Allows 20 request(s) per minute.\",\n \"name\": \"Gold\",\n \"attributes\": {}\n },\n {\n \"unitTime\": 60000,\n \"tierPlan\": \"FREE\",\n \"tierLevel\": \"api\",\n \"stopOnQuotaReach\": true,\n \"requestCount\": 5,\n \"description\": \"Allows 5 request(s) per minute.\",\n \"name\": \"Silver\",\n \"attributes\": {}\n },\n {\n \"unitTime\": 0,\n \"tierPlan\": null,\n \"tierLevel\": \"api\",\n \"stopOnQuotaReach\": true,\n \"requestCount\": 0,\n \"description\": \"Allows unlimited requests\",\n \"name\": \"Unlimited\",\n \"attributes\": {}\n }\n ],\n \"next\": \"\",\n \"count\": 4\n}" summary: List Tiers description: | Get available tiers parameters: - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/tierLevel' - $ref: '#/parameters/Accept' - $ref: '#/parameters/If-None-Match' tags: - Tiers responses: 200: description: | OK. List of tiers returned. schema: $ref: '#/definitions/TierList' headers: Content-Type: description: The content type of the body. type: string ETag: description: | Entity Tag of the response resource. Used by caches, or in conditional requests. type: string 304: description: | Not Modified. Empty body because the client has already the latest version of the requested resource. 406: description: | Not Acceptable. The requested media type is not supported schema: $ref: '#/definitions/Error' #----------------------------------------------------- # Create a new tier #----------------------------------------------------- post: x-scope: apim:tier_manage x-wso2-curl: "curl -H \"Authorization: Bearer b0982cd2aacd463ff5f63cd5ebe58f4a\" -H \"Content-Type: application/json\" -X POST -d @data.json \"http://127.0.0.1:9763/api/am/publisher/v0.10/tiers/api\"" x-wso2-request: "{\n \"unitTime\": 60000,\n \"tierPlan\": \"FREE\",\n \"tierLevel\": \"api\",\n \"stopOnQuotaReach\": true,\n \"requestCount\": 5,\n \"description\": \"Allows 5 request(s) per minute.\",\n \"name\": \"Low\",\n \"attributes\": {\n \"a\":10,\n \"b\":30\n }\n}" x-wso2-response: "HTTP/1.1 201 Created\nLocation: http://localhost:9763/api/am/publisher/v0.10/tiers/Low\nContent-Type: application/json\n\n{\n \"unitTime\": 60000,\n \"tierPlan\": \"FREE\",\n \"tierLevel\": \"api\",\n \"stopOnQuotaReach\": true,\n \"requestCount\": 5,\n \"description\": \"Allows 5 request(s) per minute.\",\n \"name\": \"Low\",\n \"attributes\": {\n \"b\": \"30\",\n \"a\": \"10\"\n }\n}" summary: Add a new Tier description: | Add a new tier parameters: - in: body name: body description: | Tier object that should to be added required: true schema: $ref: '#/definitions/Tier' - $ref: '#/parameters/tierLevel' - $ref: '#/parameters/Content-Type' tags: - Tiers responses: 201: description: | Created. Successful response with the newly created object as entity in the body. Location header contains URL of newly created entity. schema: $ref: '#/definitions/Tier' headers: Location: description: | Location of the newly created tier. type: string Content-Type: description: | The content type of the body. type: string ETag: description: | Entity Tag of the response resource. Used by caches, or in conditional request' type: string 400: description: | Bad Request. Invalid request or validation error schema: $ref: '#/definitions/Error' 415: description: | Unsupported media type. The entity of the request was in a not supported format. ###################################################### # The "Individual Tier" resource APIs ###################################################### '/tiers/{tierLevel}/{tierName}': #----------------------------------------------------- # Retrieve a certain tier #----------------------------------------------------- get: x-scope: apim:tier_view x-wso2-curl: "curl -H \"Authorization: Bearer b0982cd2aacd463ff5f63cd5ebe58f4a\" http://127.0.0.1:9763/api/am/publisher/v0.10/tiers/api/Bronze" x-wso2-response: "HTTP/1.1 200 OK\nContent-Type: application/json\n\n{\n \"unitTime\": 60000,\n \"tierPlan\": \"FREE\",\n \"tierLevel\": \"api\",\n \"stopOnQuotaReach\": true,\n \"requestCount\": 1,\n \"description\": \"Allows 1 request(s) per minute.\",\n \"name\": \"Bronze\",\n \"attributes\": {}\n}" summary: Get a Tier description: | Get tier details parameters: - $ref: '#/parameters/tierName' - $ref: '#/parameters/tierLevel' - $ref: '#/parameters/Accept' - $ref: '#/parameters/If-None-Match' - $ref: '#/parameters/If-Modified-Since' tags: - Tiers responses: 200: description: | OK. Tier returned schema: $ref: '#/definitions/Tier' headers: Content-Type: description: | The content type of the body. type: string ETag: description: | Entity Tag of the response resource. Used by caches, or in conditional requests. type: string Last-Modified: description: | Date and time the resource has been modifed the last time. Used by caches, or in conditional reuquests. type: string 304: description: | Not Modified. Empty body because the client has already the latest version of the requested resource. 404: description: | Not Found. Requested Tier does not exist. schema: $ref: '#/definitions/Error' 406: description: | Not Acceptable. The requested media type is not supported. schema: $ref: '#/definitions/Error' #----------------------------------------------------- # Update a certain tier #----------------------------------------------------- put: x-scope: apim:tier_manage x-wso2-curl: "curl -H \"Authorization: Bearer b0982cd2aacd463ff5f63cd5ebe58f4a\" -H \"Content-Type: application/json\" -X PUT -d @data.json \"http://127.0.0.1:9763/api/am/publisher/v0.10/tiers/api/Low\"" x-wso2-request: "{\n \"unitTime\": 60000,\n \"tierPlan\": \"FREE\",\n \"tierLevel\": \"api\",\n \"stopOnQuotaReach\": true,\n \"requestCount\": 10,\n \"description\": \"Allows 10 request(s) per minute.\",\n \"name\": \"Low\",\n \"attributes\": {\n \"a\": \"30\",\n \"b\": \"10\",\n \"c\": \"20\"\n }\n}\n" x-wso2-response: "HTTP/1.1 200 OK\nContent-Type: application/json\n\n{\n \"unitTime\": 60000,\n \"tierPlan\": \"FREE\",\n \"tierLevel\": \"api\",\n \"stopOnQuotaReach\": true,\n \"requestCount\": 10,\n \"description\": \"Allows 10 request(s) per minute.\",\n \"name\": \"Low\",\n \"attributes\": {\n \"b\": \"10\",\n \"c\": \"20\",\n \"a\": \"30\"\n }\n}" summary: Update a Tier description: | Update tier details parameters: - $ref: '#/parameters/tierName' - in: body name: body description: | Tier object that needs to be modified required: true schema: $ref: '#/definitions/Tier' - $ref: '#/parameters/tierLevel' - $ref: '#/parameters/Content-Type' - $ref: '#/parameters/If-Match' - $ref: '#/parameters/If-Unmodified-Since' tags: - Tiers responses: 200: description: | OK. Subscription updated. schema: $ref: '#/definitions/Tier' headers: Location: description: | The URL of the newly created resource. type: string Content-Type: description: | The content type of the body. type: string ETag: description: | Entity Tag of the response resource. Used by caches, or in conditional request. type: string Last-Modified: description: | Date and time the resource has been modifed the last time. Used by caches, or in conditional reuquests. type: string 400: description: | Bad Request. Invalid request or validation error. schema: $ref: '#/definitions/Error' 404: description: | Not Found. The resource to be updated does not exist. schema: $ref: '#/definitions/Error' 412: description: | Precondition Failed. The request has not been performed because one of the preconditions is not met. schema: $ref: '#/definitions/Error' #----------------------------------------------------- # Delete a certain tier #----------------------------------------------------- delete: x-scope: apim:tier_manage x-wso2-curl: "curl -H \"Authorization: Bearer b0982cd2aacd463ff5f63cd5ebe58f4a\" -X POST \"http://127.0.0.1:9763/api/am/publisher/v0.10/tiers/api/Low\"" x-wso2-response: "HTTP/1.1 200 OK" summary: Delete a Tier description: | Remove a tier parameters: - $ref: '#/parameters/tierName' - $ref: '#/parameters/tierLevel' - $ref: '#/parameters/If-Match' - $ref: '#/parameters/If-Unmodified-Since' tags: - Tiers responses: 200: description: | OK. Resource successfully deleted. 404: description: | Not Found. Resource to be deleted does not exist. schema: $ref: '#/definitions/Error' 412: description: | Precondition Failed. The request has not been performed because one of the preconditions is not met. schema: $ref: '#/definitions/Error' ###################################################### # The "Update Permission" Processing Function resource API ###################################################### '/tiers/update-permission': #----------------------------------------------------- # Update the permission of a certain tier #----------------------------------------------------- post: x-scope: apim:tier_manage x-wso2-curl: "curl -H \"Authorization: Bearer b0982cd2aacd463ff5f63cd5ebe58f4a\" -H \"Content-Type: application/json\" -X POST -d @data.json \"http://127.0.0.1:9763/api/am/publisher/v0.10/tiers/update-permission?tierName=Bronze&tierLevel=api\"" x-wso2-request: "{\n \"permissionType\":\"deny\",\n \"roles\": [\"Internal/everyone\",\"admin\"]\n}" x-wso2-response: "HTTP/1.1 200 OK" summary: Update Tier Permission description: | Update tier permission parameters: - $ref: '#/parameters/tierName-Q' - $ref: '#/parameters/tierLevel-Q' - $ref: '#/parameters/If-Match' - $ref: '#/parameters/If-Unmodified-Since' - in: body name: permissions schema: $ref: '#/definitions/TierPermission' tags: - Tiers responses: 200: description: | OK. Successfully updated tier permissions schema: type: array items: $ref: '#/definitions/Tier' headers: ETag: description: | Entity Tag of the modified tier. Used by caches, or in conditional request. type: string Last-Modified: description: | Date and time the tier has been modified. Used by caches, or in conditional requests. type: string 400: description: | Bad Request. Invalid request or validation error. schema: $ref: '#/definitions/Error' 403: description: | Forbidden. The request must be conditional but no condition has been specified. schema: $ref: '#/definitions/Error' 404: description: | Not Found. Requested tier does not exist. schema: $ref: '#/definitions/Error' 412: description: | Precondition Failed. The request has not been performed because one of the preconditions is not met. schema: $ref: '#/definitions/Error' ###################################################### # The "Environment Collection" resource API ###################################################### /environments: #----------------------------------------------------- # Retrieve the list of environments configured for a certain API #----------------------------------------------------- get: x-scope: apim:api_view x-wso2-curl: "curl -H \"Authorization: Bearer b0982cd2aacd463ff5f63cd5ebe58f4a\" \"http://127.0.0.1:9763/api/am/publisher/v0.10/environments\"" x-wso2-response: "HTTP/1.1 200 OK\nContent-Type: application/json\n\n{\n \"list\": [ {\n \"showInApiConsole\": true,\n \"serverUrl\": \"https://192.168.56.1:9444//services/\",\n \"endpoints\": {\n \"http\": \"http://192.168.56.1:8281\",\n \"https\": \"https://192.168.56.1:8244\"\n },\n \"name\": \"Production and Sandbox\",\n \"type\": \"hybrid\"\n }],\n \"count\": 1\n}" summary: Get gateway environments description: | Get a list of gateway environments configured previously. parameters: - in: query name: apiId description: | Will return environment list for the provided API. type: string tags: - Environments responses: 200: description: | OK. Environment list is returned. schema: $ref: '#/definitions/EnvironmentList' headers: Content-Type: description: | The content type of the body. type: string ETag: description: | Entity Tag of the response resource. Used by caches, or in conditional requests. type: string 304: description: | Not Modified. Empty body because the client has already the latest version of the requested resource. 404: description: | Not Found. Requested API does not exist. schema: $ref: '#/definitions/Error' ###################################################### # Parameters - required by some of the APIs above ###################################################### parameters: # API Identifier # Specified as part of the path expression apiId: name: apiId in: path 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 ID. Should be formatted as **provider-name-version**. required: true type: string # API Identifier # Specified as part of the query string apiId-Q: name: apiId in: query 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**. required: true type: string # Document Identifier # Specified as part of the path expression documentId: name: documentId in: path description: | **Document Identifier** required: true type: string # Application Identifier # Specified as part of the path expression applicationId: name: applicationId in: path description: | **Application Identifier** consisting of the UUID of the Application. required: true type: string # Subscription Identifier # Specified as part of the path expression subscriptionId: name: subscriptionId in: path description: | Subscription Id required: true type: string # Subscription Identifier # Specified as part of the query string subscriptionId-Q: name: subscriptionId in: query description: | Subscription Id required: true type: string # Tier Name # Specified as part of the path expression tierName: name: tierName in: path description: | Tier name required: true type: string # Tier Name # Specified as part of the query string tierName-Q: name: tierName in: query description: | Name of the tier required: true type: string # Tier Type # Specified as part of the path expression tierLevel: name: tierLevel in: path description: | List API or Application or Resource type tiers. type: string enum: - api - application - resource required: true # Tier Type # Specified as part of the query string tierLevel-Q: name: tierLevel in: query description: | List API or Application or Resource type tiers. type: string enum: - api - application - resource required: true # Used for pagination: # The maximum number of resoures to be returned by a GET limit: name: limit in: query description: | Maximum size of resource array to return. default: 25 type: integer # Used for pagination: # The order number of an instance in a qualified set of resoures # at which to start to return the next batch of qualified resources offset: name: offset in: query description: | Starting point within the complete list of items qualified. default: 0 type: integer # The HTTP Accept header Accept: name: Accept in: header description: | Media types acceptable for the response. Default is JSON. default: JSON type: string # The HTTP Content-Type header Content-Type: name: Content-Type in: header description: | Media type of the entity in the body. Default is JSON. default: JSON required: true type : string # The HTTP If-None-Match header # Used to avoid retrieving data that are already cached If-None-Match: name: If-None-Match in: header description: | Validator for conditional requests; based on the ETag of the formerly retrieved variant of the resourec. type : string # The HTTP If-Modified-Since header # Used to avoid retrieving data that are already cached If-Modified-Since: name: If-Modified-Since in: header description: | Validator for conditional requests; based on Last Modified header of the formerly retrieved variant of the resource. type: string # The HTTP If-Match header # Used to avoid concurrent updates If-Match: name: If-Match in: header description: | Validator for conditional requests; based on ETag. type: string # The HTTP If-Unmodified-Since header # Used to avoid concurrent updates If-Unmodified-Since: name: If-Unmodified-Since in: header description: | Validator for conditional requests; based on Last Modified header. type: string ###################################################### # The resources used by some of the APIs above within the message body ###################################################### definitions: #----------------------------------------------------- # The API List resource #----------------------------------------------------- APIList: title: API List properties: count: type: integer description: | Number of APIs returned. example: 1 next: type: string description: | Link to the next subset of resources qualified. Empty if no more resources are to be returned. example: "/apis?limit=1&offset=2&query=" previous: type: string description: | Link to the previous subset of resources qualified. Empty if current subset is the first subset returned. example: "/apis?limit=1&offset=0&query=" list: type: array items: $ref: '#/definitions/APIInfo' #----------------------------------------------------- # The API Info resource #----------------------------------------------------- APIInfo: title: API Info object with basic API details. properties: id: type: string example: 01234567-0123-0123-0123-012345678901 name: type: string example: CalculatorAPI description: type: string example: A calculator API that supports basic operations context: type: string example: CalculatorAPI version: type: string example: 1.0.0 provider: description: | If the provider value is not given, the user invoking the API will be used as the provider. type: string example: admin status: type: string example: CREATED #----------------------------------------------------- # The API resource #----------------------------------------------------- API: title: API object required: - name - context - version - apiDefinition - tiers - isDefaultVersion - transport - endpointConfig - visibility properties: id: type: string description: | UUID of the api registry artifact example: 01234567-0123-0123-0123-012345678901 name: type: string example: CalculatorAPI description: type: string example: A calculator API that supports basic operations context: type: string example: CalculatorAPI version: type: string example: 1.0.0 provider: description: | If the provider value is not given user invoking the api will be used as the provider. type: string example: admin apiDefinition: description: | Swagger definition of the API which contains details about URI templates and scopes type: string example: "{\"paths\":{\"\\/substract\":{\"get\":{\"x-auth-type\":\"Application & Application User\",\"x-throttling-tier\":\"Unlimited\",\"parameters\":[{\"name\":\"x\",\"required\":true,\"type\":\"string\",\"in\":\"query\"},{\"name\":\"y\",\"required\":true,\"type\":\"string\",\"in\":\"query\"}],\"responses\":{\"200\":{}}}},\"\\/add\":{\"get\":{\"x-auth-type\":\"Application & Application User\",\"x-throttling-tier\":\"Unlimited\",\"parameters\":[{\"name\":\"x\",\"required\":true,\"type\":\"string\",\"in\":\"query\"},{\"name\":\"y\",\"required\":true,\"type\":\"string\",\"in\":\"query\"}],\"responses\":{\"200\":{}}}}},\"swagger\":\"2.0\",\"info\":{\"title\":\"CalculatorAPI\",\"version\":\"1.0.0\"}}" wsdlUri: description: | WSDL URL if the API is based on a WSDL endpoint type: string example: "http://www.webservicex.com/globalweather.asmx?wsdl" status: type: string example: CREATED responseCaching: type: string example: Disabled cacheTimeout: type: integer example: 300 destinationStatsEnabled: type: string example: Disabled isDefaultVersion: type: boolean example: false transport: description: | Supported transports for the API (http and/or https). type: array items: type: string example: ["http","https"] tags: type: array items: type: string example: ["substract","add"] tiers: type: array items: type: string example: ["Unlimited"] maxTps: properties: production: type: integer format: int64 example: 1000 sandbox: type: integer format: int64 example: 1000 thumbnailUri: type: string example: "/apis/01234567-0123-0123-0123-012345678901/thumbnail" visibility: type: string enum: - PUBLIC - PRIVATE - RESTRICTED - CONTROLLED example: PUBLIC visibleRoles: type: array items: type: string example: [] visibleTenants: type: array items: type: string example: [] endpointConfig: type: string example: "{\"production_endpoints\":{\"url\":\"http://localhost:9763/am/sample/calculator/v1/api\",\"config\":null},\"implementation_status\":\"managed\",\"endpoint_type\":\"http\"}" endpointSecurity: properties: type: type: string example: basic enum: - basic - digest username: type: string example: admin password: type: string example: password gatewayEnvironments: description: | Comma separated list of gateway environments. type: string example: Production and Sandbox sequences: type: array items: $ref: '#/definitions/Sequence' example: [] subscriptionAvailability: type: string enum: - current_tenant - all_tenants - specific_tenants example: current_tenant subscriptionAvailableTenants: type: array items: type: string example: [] businessInformation: properties: businessOwner: type: string example: businessowner businessOwnerEmail: type: string example: businessowner@wso2.com technicalOwner: type: string example: technicalowner technicalOwnerEmail: type: string example: technicalowner@wso2.com corsConfiguration: description: | CORS configuration for the API properties: corsConfigurationEnabled: type: boolean default: false accessControlAllowOrigins: type: array items: type: string accessControlAllowCredentials: type: boolean default: false accessControlAllowHeaders: type: array items: type: string accessControlAllowMethods: type: array items: type: string #----------------------------------------------------- # The Application resource #----------------------------------------------------- Application: title: Application required: - name - throttlingTier properties: applicationId: type: string example: 01234567-0123-0123-0123-012345678901 name: type: string example: CalculatorApp subscriber: type: string example: admin throttlingTier: type: string example: Unlimited description: type: string example: Sample calculator application groupId: type: string example: "" #----------------------------------------------------- # The Document List resource #----------------------------------------------------- DocumentList: title: Document List properties: count: type: integer description: | Number of Documents returned. example: 1 next: type: string description: | Link to the next subset of resources qualified. Empty if no more resources are to be returned. example: "/apis/01234567-0123-0123-0123-012345678901/documents?limit=1&offset=2" previous: type: string description: | Link to the previous subset of resources qualified. Empty if current subset is the first subset returned. example: "/apis/01234567-0123-0123-0123-012345678901/documents?limit=1&offset=0" list: type: array items: $ref: '#/definitions/Document' #----------------------------------------------------- # The Document resource #----------------------------------------------------- Document: title: Document required: - name - type - sourceType - visibility properties: documentId: type: string example: 01234567-0123-0123-0123-012345678901 name: type: string example: CalculatorDoc type: type: string enum: - HOWTO - SAMPLES - PUBLIC_FORUM - SUPPORT_FORUM - API_MESSAGE_FORMAT - SWAGGER_DOC - OTHER example: HOWTO summary: type: string example: "Summary of Calculator Documentation" sourceType: type: string enum: - INLINE - URL - FILE example: INLINE sourceUrl: type: string example: "" otherTypeName: type: string example: "" visibility: type: string enum: - OWNER_ONLY - PRIVATE - API_LEVEL example: API_LEVEL #----------------------------------------------------- # The Tier List resource #----------------------------------------------------- TierList: title: Tier List properties: count: type: integer description: | Number of Tiers returned. example: 1 next: type: string description: | Link to the next subset of resources qualified. Empty if no more resources are to be returned. example: "/tiers/api?limit=1&offset=2" previous: type: string description: | Link to the previous subset of resources qualified. Empty if current subset is the first subset returned. example: "/tiers/api?limit=1&offset=0" list: type: array items: $ref: '#/definitions/Tier' #----------------------------------------------------- # The Tier resource #----------------------------------------------------- Tier: title: Tier required: - name - tierPlan - requestCount - unitTime - stopOnQuotaReach properties: name: type: string example: Platinum description: type: string example: "Allows 50 request(s) per minute." tierLevel: type: string enum: - api - application - resource example: api attributes: description: | Custom attributes added to the tier policy type: object additionalProperties: type: string example: {} requestCount: description: | Maximum number of requests which can be sent within a provided unit time type: integer format: int64 example: 50 unitTime: type: integer format: int64 example: 60000 timeUnit: type: string example: "min" tierPlan: description: | This attribute declares whether this tier is available under commercial or free type: string enum: - FREE - COMMERCIAL example: FREE stopOnQuotaReach: description: | By making this attribute to false, you are capabale of sending requests even if the request count exceeded within a unit time type: boolean example: true #----------------------------------------------------- # The Tier Permission resource #----------------------------------------------------- TierPermission: title: tierPermission required: - permissionType - roles properties: permissionType: type: string enum: - allow - deny example: deny roles: type: array items: type: string example: ["Internal/everyone"] #----------------------------------------------------- # The Subscription List resource #----------------------------------------------------- SubscriptionList: title: Subscription List properties: count: type: integer description: | Number of Subscriptions returned. example: 1 next: type: string description: | Link to the next subset of resources qualified. Empty if no more resources are to be returned. example: "/subscriptions?limit=1&offset=2&apiId=01234567-0123-0123-0123-012345678901&groupId=" previous: type: string description: | Link to the previous subset of resources qualified. Empty if current subset is the first subset returned. example: "/subscriptions?limit=1&offset=0&apiId=01234567-0123-0123-0123-012345678901&groupId=" list: type: array items: $ref: '#/definitions/Subscription' #----------------------------------------------------- # The Subscription resource #----------------------------------------------------- Subscription: title: Subscription required: - applicationId - apiIdentifier - tier properties: subscriptionId: type: string example: 01234567-0123-0123-0123-012345678901 applicationId: type: string example: 01234567-0123-0123-0123-012345678901 apiIdentifier: type: string example: 01234567-0123-0123-0123-012345678901 tier: type: string example: Unlimited status: type: string enum: - BLOCKED - PROD_ONLY_BLOCKED - UNBLOCKED - ON_HOLD - REJECTED example: UNBLOCKED #----------------------------------------------------- # The Sequence resource #----------------------------------------------------- Sequence: title: Sequence required: - name properties: name: type: string example: log_in_message config: type: string example: "" type: type: string example: in #----------------------------------------------------- # The Error resource #----------------------------------------------------- Error: title: Error object returned with 4XX HTTP status required: - code - message properties: code: type: integer format: int64 message: type: string description: Error message. description: type: string description: | A detail description about the error message. moreInfo: type: string description: | Preferably an url with more details about the error. error: type: array description: | If there are more than one error list them out. For example, list out validation errors by each field. items: $ref: '#/definitions/ErrorListItem' #----------------------------------------------------- # The Error List Item resource #----------------------------------------------------- ErrorListItem: title: Description of individual errors that may have occurred during a request. required: - code - message properties: code: type: string message: type: string description: | Description about individual errors occurred #----------------------------------------------------- # The Environment resource #----------------------------------------------------- Environment: title: Environment required: - name - type - serverUrl - endpoints - showInApiConsole properties: name: type: string example: Production and Sandbox type: type: string example: hybrid serverUrl: type: string example: "https://localhost:9443//services/" showInApiConsole: type: boolean example: true endpoints: $ref: '#/definitions/EnvironmentEndpoints' #----------------------------------------------------- # The Environment List resource #----------------------------------------------------- EnvironmentList: title: Environment List properties: count: type: integer description: | Number of Environments returned. example: 1 list: type: array items: $ref: '#/definitions/Environment' #----------------------------------------------------- # The Environment Endpoint resource #----------------------------------------------------- EnvironmentEndpoints : title: Environment Endpoints properties: http: type: string description: HTTP environment URL example: "http://localhost:8280" https: type: string description: HTTPS environment URL example: "https://localhost:8244" #----------------------------------------------------- # The File Information resource #----------------------------------------------------- FileInfo : title: File Information including meta data properties: relativePath: type: string description: relative location of the file (excluding the base context and host of the Publisher API) example: "apis/01234567-0123-0123-0123-012345678901/thumbnail" mediaType: type: string description: media-type of the file example: "image/jpeg"