From 6632a08a2aaaacccac0816574ef3ed28d917b151 Mon Sep 17 00:00:00 2001 From: Lakshmanan Narayanan Date: Wed, 19 Jan 2022 12:10:00 +0530 Subject: [PATCH] Fixing swagger definition validations for API Gateway services. --- .../APIGatewayAdministration.json | 12 +- apigatewayservices/APIGatewayArchive.json | 230 + .../APIGatewayAvailability.json | 23 - .../APIGatewayMonetizationSwagger.json | 5771 +++++++++++++++++ .../APIGatewayServiceManagement.json | 14 +- 5 files changed, 6010 insertions(+), 40 deletions(-) create mode 100644 apigatewayservices/APIGatewayMonetizationSwagger.json diff --git a/apigatewayservices/APIGatewayAdministration.json b/apigatewayservices/APIGatewayAdministration.json index 5ccb832..a107b05 100644 --- a/apigatewayservices/APIGatewayAdministration.json +++ b/apigatewayservices/APIGatewayAdministration.json @@ -3684,7 +3684,7 @@ }, "put" : { "description" : "The method updates the proxyBypassAddresses to bypass the outbound proxy servers. The API request body must contain the payload. In the proxyBypassAddresses field, type the fully qualified host and domain name of each server to which you want the Integration Server to issue requests directly. Type the host name and the domain name exactly as they appear in the URLs the server uses. To enter multiple names, separate each with commas.\r\nYou can use the asterisk (*) to identify several servers with similar names. The asterisk matches any number of characters. For example, if you want to bypass requests made to localhost, www.yahoo.com, home.microsoft.com, and all hosts whose names begin with NYC, you would type:\r\nlocalhost,www.yahoo.com,home.microsoft.com, NYC*.*", - "operationId" : "saveProxyBypass", + "operationId" : "updateProxyBypass", "consumes" : [ "application/json" ], "produces" : [ "application/json" ], "parameters" : [ { @@ -4628,7 +4628,7 @@ "/migration/status" : { "get" : { "description" : "RRetrieves the current status of the migration action which is invoked in API Gateway.", - "operationId" : "migration", + "operationId" : "getMigrationStatus", "produces" : [ "application/json" ], "parameters" : [ { "name" : "action", @@ -5183,7 +5183,7 @@ "/rule/{ruleId}/activate" : { "put" : { "description" : "This REST request is used to activate a rule and this request doesn't require any request body.", - "operationId" : "updateRule", + "operationId" : "activateRule", "consumes" : [ "application/json" ], "produces" : [ "application/json" ], "parameters" : [ { @@ -5225,7 +5225,7 @@ "/rule/{ruleId}/deactivate" : { "put" : { "description" : "This REST request is used to deactivate a rule and it doesn't require any request body.", - "operationId" : "updateRule", + "operationId" : "deactivateRule", "consumes" : [ "application/json" ], "produces" : [ "application/json" ], "parameters" : [ { @@ -6000,7 +6000,7 @@ }, "Ignite" : { "type" : "object", - "properties" : { + "properties" : { "portRange" : { "type" : "integer", "format" : "int32", @@ -8260,4 +8260,4 @@ "description" : "This defines the whitelisting of private IPs configured in the API Gateway." } } -} \ No newline at end of file +} diff --git a/apigatewayservices/APIGatewayArchive.json b/apigatewayservices/APIGatewayArchive.json index 2e0c350..de6569b 100644 --- a/apigatewayservices/APIGatewayArchive.json +++ b/apigatewayservices/APIGatewayArchive.json @@ -330,6 +330,236 @@ "required" : false, "type" : "string", "enum" : [ "true", "false" ] + }, { + "name" : "policies", + "in" : "query", + "description" : "This parameter identifies the policies to be imported. The wildcard \"*\" selects all the policies. \nFor example a single policy can be imported with its id using the following request:\nPOST /rest/apigateway/archive?policies=07b8d7b7-20b7-422e-8464-4b19d405c41a\n\nWhereas, all the policies can be imported using the following request:\nPOST /rest/apigateway/archive?policies=*", + "required" : false, + "type" : "array", + "items" : { + "type" : "string" + }, + "collectionFormat" : "multi", + "x-example" : "policies=07b8d7b7-20b7-422e-8464-4b19d405c41a" + }, { + "name" : "apis", + "in" : "query", + "description" : "This parameter identifies the APIs to be imported. The wildcard \"*\" imports all the APIs. \nFor example a single API can be imported using the following request:\nPOST /rest/apigateway/archive?apis=e2996867-af49-4ac6-98e7-cba48837c13e\n\nWhereas, all the APIs from an archive can be imported using the following request:\nPOST /rest/apigateway/archive?apis=*", + "required" : false, + "type" : "array", + "items" : { + "type" : "string" + }, + "collectionFormat" : "multi", + "x-example" : "apis=e2996867-af49-4ac6-98e7-cba48837c13e" + }, { + "name" : "aliases", + "in" : "query", + "description" : "This parameter identifies the aliases to be imported. \nThe wildcard \"*\" selects all aliases.\nFor example, a single alias can be imported using the following requrest:\nPOST /rest/apigateway/archive?aliases=d1885756-9e38-39b5-87d6-ba937726b02d\n\nWhereas, all the APIs can be imported using the following request:\nPOST /rest/apigateway/archive?alias=*", + "required" : false, + "type" : "array", + "items" : { + "type" : "string" + }, + "collectionFormat" : "multi", + "x-example" : "aliases=d1885756-9e38-39b5-87d6-ba937726b02d" + }, { + "name" : "applications", + "in" : "query", + "description" : "This parameter identifies the applications to be imported. \nThe wildcard \"*\" selects all applications.\nFor example, a single application can be imported using the following requrest:\nPOST /rest/apigateway/archive?applications=d1885756-9e38-39b5-87d6-ba937726b02d\n\nWhereas, all the applications can be imported using the following request:\nPOST /rest/apigateway/archive?applications=*", + "required" : false, + "type" : "array", + "items" : { + "type" : "string" + }, + "collectionFormat" : "multi", + "x-example" : "applications=d1885756-9e38-39b5-87d6-ba937726b02d" + }, { + "name" : "approvalConfigurations", + "in" : "query", + "description" : "This parameter identifies the approval configurations to be imported. \nThe wildcard \"*\" selects all approval configurations.\nFor example, a single approval configuration can be imported using the following request:\nPOST /rest/apigateway/archive?approvalConfigurations=createApplication\n\nWhereas, all the approval configurations can be imported using the following request:\n POST /rest/apigateway/archive?approvalConfigurations=*", + "required" : false, + "type" : "array", + "items" : { + "type" : "string", + "enum" : [ "createApplication", "updateApplication", "registerApplication", "subscribePackage" ] + }, + "collectionFormat" : "multi", + "x-example" : "approvalConfigurations=createApplication" + }, { + "name" : "outboundProxies", + "in" : "query", + "description" : "This parameter identifies the outbound proxy aliases to be imported. outbound proxy aliases are idetified with it's name.\nThe wildcard \"*\" selects all the outbound proxy aliases. \nFor example a single outbound proxy alias can be imported using the following request:\nPOST /rest/apigateway/archive?outboundProxies=testOutboundProxyAlias\n\nWhereas, all the outbound proxy aliases can be imported using the following request:\nPOST /rest/apigateway/archive?outboundProxies=*", + "required" : false, + "type" : "array", + "items" : { + "type" : "string" + }, + "collectionFormat" : "multi", + "x-example" : "outboundProxies=testOutboundProxyAlias" + }, { + "name" : "urlAliases", + "in" : "query", + "description" : "This parameter identifies the URL aliases to be imported. URL aliases are idetified with it's name.\nThe wildcard \"*\" selects all the URL aliases. \nFor example, a single URL alias can be imported using the following request:\nPOST /rest/apigateway/archive?urlAliases=testUrlAlias\n\nWhereas, all the URL aliases can be imported using the following request:\nPOST /rest/apigateway/archive?testUrlAlias=*", + "required" : false, + "type" : "array", + "items" : { + "type" : "string" + }, + "collectionFormat" : "multi", + "x-example" : "urlAliases=testUrlAlias" + }, { + "name" : "keyStores", + "in" : "query", + "description" : "This parameter identifies the keystore aliases to be imported. Keystore aliases are idetified with it's name.\nThe wildcard \"*\" selects all the keystore aliases. \nFor example, a single keystore alias can be imported using the following request:\nPOST /rest/apigateway/archive?keyStores=test_keystore\n\nWhereas, all the keystore aliases can be imported using the following request:\nPOST /rest/apigateway/archive?keyStores=*", + "required" : false, + "type" : "array", + "items" : { + "type" : "string" + }, + "collectionFormat" : "multi", + "x-example" : "keyStores=test_keystore" + }, { + "name" : "trustStores", + "in" : "query", + "description" : "This parameter identifies the truststore aliases to be imported. Truststore aliases are idetified with it's name.\nThe wildcard \"*\" selects all the truststore aliases. \nFor example, a single truststore alias can be imported using the following request:\nPOST /rest/apigateway/archive?trustStores=test_truststore\n\nWhereas, all the truststore aliases can be imported using the following request:\nPOST /rest/apigateway/archive?trustStores=*", + "required" : false, + "type" : "array", + "items" : { + "type" : "string" + }, + "collectionFormat" : "multi", + "x-example" : "trustStores=test_truststore" + }, { + "name" : "JNDIProviderAliases", + "in" : "query", + "description" : "This parameter identifies the JNDI provider aliases to be imported. JNDI provider aliases are idetified with it's name.\nThe wildcard \"*\" selects all the JNDI provider aliases. \nFor example, a single JNDI provider alias can be imported using the following request:\nPOST /rest/apigateway/archive?JNDIProviderAliases=test_jndiProviderAlias\n\nWhereas, all the JNDI provider aliases can be imported using the following request:\nPOST /rest/apigateway/archive?JNDIProviderAliases=*", + "required" : false, + "type" : "array", + "items" : { + "type" : "string" + }, + "collectionFormat" : "multi", + "x-example" : "JNDIProviderAliases=test_jndiProviderAlias" + }, { + "name" : "JMSConnectionAliases", + "in" : "query", + "description" : "This parameter identifies the JMS connection aliases to be imported. JMS connection aliases are idetified with it's name.\nThe wildcard \"*\" selects all the JNDI provider aliases. \nFor example, a single JNDI provider alias can be imported using the following request:\nPOST /rest/apigateway/archive?JMSConnectionAliases=test_jmsConnectionAlias\n\nWhereas, all the JMS connection aliases can be imported using the following request:\nPOST /rest/apigateway/archive?JMSConnectionAliases=*", + "required" : false, + "type" : "array", + "items" : { + "type" : "string" + }, + "collectionFormat" : "multi", + "x-example" : "JMSConnectionAliases=test_jmsConnectionAlias" + }, { + "name" : "JMSTriggers", + "in" : "query", + "description" : "This parameter identifies the JMS triggers to be imported. JMS triggers are idetified with it's name.\nThe wildcard \"*\" selects all the JMS triggers. \nFor example, a single JMS trigger can be imported using the following request:\nPOST /rest/apigateway/archive?JMSTriggers=test_jmsTrigger\n\nWhereas, all the JMS triggers can be imported using the following request:\nPOST /rest/apigateway/archive?JMSTriggers=*", + "required" : false, + "type" : "array", + "items" : { + "type" : "string" + }, + "collectionFormat" : "multi", + "x-example" : "JMSTriggers=test_jmsTrigger" + }, { + "name" : "webserviceEndpointAliases", + "in" : "query", + "description" : "This parameter identifies the 'web service endpoint' aliases to be imported. Web service endpoint aliases are idetified with it's name.\nThe wildcard \"*\" selects all the web service endpoint aliases. \nFor example, a single web service endpoint alias can be imported using the following request:\nPOST /rest/apigateway/archive?webserviceEndpointAliases=test_wsEndpointAlias\n\nWhereas, all the JMS triggers can be imported using the following request:\nPOST /rest/apigateway/archive?webserviceEndpointAliases=*", + "required" : false, + "type" : "array", + "items" : { + "type" : "string" + }, + "collectionFormat" : "multi", + "x-example" : "webserviceEndpointAliases=test_wsEndpointAlias" + }, { + "name" : "users", + "in" : "query", + "description" : "This parameter identifies the users to be imported. \nThe wildcard \"*\" selects all the users. \nFor example, a single user can be imported using the following request:\nPOST /rest/apigateway/archive?users=7a6d3d40-44d8-4ab1-83df-5be63cdbae54\n\nWhereas, all the users can be imported using the following request:\nPOST /rest/apigateway/archive?users=*", + "required" : false, + "type" : "array", + "items" : { + "type" : "string" + }, + "collectionFormat" : "multi", + "x-example" : "users=7a6d3d40-44d8-4ab1-83df-5be63cdbae54" + }, { + "name" : "groups", + "in" : "query", + "description" : "This parameter identifies the groups to be imported. \nThe wildcard \"*\" selects all the groups. \nFor example, a single group can be imported using the following request:\nPOST /rest/apigateway/archive?groups=d6b38ff8-59a8-47bf-9fba-0bdb24ee5b48\n\nWhereas, all the groups can be imported using the following request:\nPOST /rest/apigateway/archive?groups=*", + "required" : false, + "type" : "array", + "items" : { + "type" : "string" + }, + "collectionFormat" : "multi", + "x-example" : "groups=d6b38ff8-59a8-47bf-9fba-0bdb24ee5b48" + }, { + "name" : "accessProfiles", + "in" : "query", + "description" : "This parameter identifies the teams to be imported. \nThe wildcard \"*\" selects all the teams. \nFor example, a single team can be imported using the following request:\nPOST /rest/apigateway/archive?accessProfiles=d6b38ff8-59a8-47bf-9fba-0bdb24ee5b48\n\nWhereas, all the teams can be imported using the following request:\nPOST /rest/apigateway/archive?accessProfiles=*", + "required" : false, + "type" : "array", + "items" : { + "type" : "string" + }, + "collectionFormat" : "multi", + "x-example" : "accessProfiles=836fd806-4845-452f-9d7a-7e619e40a70e" + }, { + "name" : "kerberosSetting", + "in" : "query", + "description" : "This parameter identifies the kerberos configuration to be imported.\nThe kerberos configuration can be imported using the following request:\nPOST /rest/apigateway/archive?kerberosSetting=kerberosSetting", + "required" : false, + "type" : "string", + "enum" : [ "kerberosSetting" ], + "x-example" : "kerberosSetting=kerberosSetting" + }, { + "name" : "plans", + "in" : "query", + "description" : "This parameter identifies the plans to be imported. \nThe wildcard \"*\" selects all the plans. \nFor example, a single plan can be imported using the following request:\nPOST /rest/apigateway/archive?plans=86d58023-be4b-4735-a08f-14e78131ce4a\n\nWhereas, all the plans can be imported using the following request:\nPOST /rest/apigateway/archive?plans=*", + "required" : false, + "type" : "array", + "items" : { + "type" : "string" + }, + "collectionFormat" : "multi", + "x-example" : "plans=86d58023-be4b-4735-a08f-14e78131ce4a" + }, { + "name" : "packages", + "in" : "query", + "description" : "This parameter identifies the packages to be imported. \nThe wildcard \"*\" selects all the packages. \nFor example, a single package can be imported using the following request:\nPOST /rest/apigateway/archive?packages=73c93393-1477-4a99-9e44-c9b3e679de0c\n\nWhereas, all the packages can be imported using the following request:\nPOST /rest/apigateway/archive?packages=*", + "required" : false, + "type" : "array", + "items" : { + "type" : "string" + }, + "collectionFormat" : "multi", + "x-example" : "packages=73c93393-1477-4a99-9e44-c9b3e679de0c" + }, { + "name" : "configurations", + "in" : "query", + "description" : "This parameter identifies the configurations to be imported. \nThe wildcard \"*\" selects all the configurations. \nFor example, a single configuration can be imported using the following request:\nPOST /rest/apigateway/archive?configurations=loadBalancer,customContentTypes\n\nWhereas, all the configurations can be imported using the following request:\nPOST /rest/apigateway/archive?configurations=*", + "required" : false, + "type" : "array", + "items" : { + "type" : "string", + "enum" : [ "loadBalancer", "keystore", "mobileApp", "extended", "samlsso", "misc", "dashboard", "customContentTypes", "errorProcessing", "auditlogDestinationConfig", "gatewayDestinationConfig", "jdbcDestinationConfig", "desDestinationConfig", "elasticsearchDestinationConfig", "snmpDestinationConfig", "emailDestinationConfig", "apiPortalDestinationConfig", "samlIssuer", "logConfig", "passwordRestrictions", "passwordExpiry", "accountLockSettings", "ldapConfig", "settings", "cache", "apiCallBackSettings" ] + }, + "collectionFormat" : "multi", + "x-example" : "configurations=loadBalancer,customContentTypes" + }, { + "name" : "gatewayScopes", + "in" : "query", + "description" : "This parameter identifies the oauth scopes to be imported. \nThe wildcard \"*\" selects all the oauth scopes. \nFor example, a single oauth scope can be imported using the following request:\nPOST /rest/apigateway/archive?gatewayScopes=73c93393-1477-4a99-9e44-c9b3e679de0c\n\nWhereas, all the oauth scopes can be imported using the following request:\nPOST /rest/apigateway/archive?gatewayScopes=*", + "required" : false, + "type" : "array", + "items" : { + "type" : "string" + }, + "collectionFormat" : "multi", + "x-example" : "gatewayScopes=5f388f25-2a57-46b9-b199-9d58fc02a8c1,c98805c4-9c05-47c0-84f0-c0855c0a9032" }, { "name" : "x-HTTP-Method-Override", "in" : "header", diff --git a/apigatewayservices/APIGatewayAvailability.json b/apigatewayservices/APIGatewayAvailability.json index efa34f3..b87e34c 100644 --- a/apigatewayservices/APIGatewayAvailability.json +++ b/apigatewayservices/APIGatewayAvailability.json @@ -23,11 +23,6 @@ }, "schema" : { "$ref" : "#/definitions/HealthCheckAdminResult", - "originalRef" : "#/definitions/HealthCheckAdminResult" - }, - "responseSchema" : { - "$ref" : "#/definitions/HealthCheckAdminResult", - "originalRef" : "#/definitions/HealthCheckAdminResult" } }, "401" : { @@ -47,11 +42,6 @@ "description" : "successful operation", "schema" : { "$ref" : "#/definitions/HealthCheckAllResult", - "originalRef" : "#/definitions/HealthCheckAllResult" - }, - "responseSchema" : { - "$ref" : "#/definitions/HealthCheckAllResult", - "originalRef" : "#/definitions/HealthCheckAllResult" } }, "401" : { @@ -74,11 +64,6 @@ }, "schema" : { "$ref" : "#/definitions/HealthCheckEngineResult", - "originalRef" : "#/definitions/HealthCheckEngineResult" - }, - "responseSchema" : { - "$ref" : "#/definitions/HealthCheckEngineResult", - "originalRef" : "#/definitions/HealthCheckEngineResult" } }, "401" : { @@ -101,11 +86,6 @@ }, "schema" : { "$ref" : "#/definitions/HealthCheckExternalResult", - "originalRef" : "#/definitions/HealthCheckExternalResult" - }, - "responseSchema" : { - "$ref" : "#/definitions/HealthCheckExternalResult", - "originalRef" : "#/definitions/HealthCheckExternalResult" } }, "401" : { @@ -140,15 +120,12 @@ "properties" : { "admin" : { "$ref" : "#/definitions/HealthCheckAdminResult", - "originalRef" : "#/definitions/HealthCheckAdminResult" }, "engine" : { "$ref" : "#/definitions/HealthCheckEngineResult", - "originalRef" : "#/definitions/HealthCheckEngineResult" }, "external" : { "$ref" : "#/definitions/HealthCheckExternalResult", - "originalRef" : "#/definitions/HealthCheckExternalResult" } } }, diff --git a/apigatewayservices/APIGatewayMonetizationSwagger.json b/apigatewayservices/APIGatewayMonetizationSwagger.json new file mode 100644 index 0000000..412880a --- /dev/null +++ b/apigatewayservices/APIGatewayMonetizationSwagger.json @@ -0,0 +1,5771 @@ +{ + "swagger" : "2.0", + "info" : { + "description" : "API gateway monetization service allows API Providers to create plans & packages and associate the packages to different plans. The providers can either publish the packages to API Portal to allow creating subscriptions from portal or directly use the subscriptions APIs in the API Gateway to create and manage subscriptions. Note: It is important to enable the log invocation policy to all the APIs that are used in package to track the transactions usage. Alternatively global policy can be used to associate the log invocation to all the APIs. For more details on the API Monetization, please refer to the API Gateway User Guide", + "version" : "10.11", + "title" : "API Gateway Monetization Service" + }, + "host" : "localhost:5555", + "basePath" : "/{gateway}", + "schemes" : [ "http" ], + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "paths" : { + "/packages" : { + "get" : { + "description" : "To get all package details from API Gateway", + "operationId" : "getAllPackages", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ ], + "responses" : { + "200" : { + "description" : "This returns all the package details.", + "examples" : { + "application/json" : "{\n \"packageResponse\": [\n {\n \"id\": \"5ca87c9f-046d-4f43-bbaa-5039b5443d2d\",\n \"name\": \"GoldPackage\",\n \"description\": \"Gold package contains 10 APIs and 4 plans\",\n \"icon\": \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABRCAIAAAARlBx9AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAPmSURBVHhe7dhNctswDEBhXqe7Lnvv3qK3iOP/uDdox4UEGqIeJQqWZTpVi/nWBt4oM5EdfvbmUnBRrvkY86GG51xwVpxTQdp2KXO3sSe1aBtjwNv2/Icmcy54pO1SEMNcbexJLfrQZBiTOt3aLmXPD5M5F8x4aNp2KXOHybAnVfmhTbc9Nex6+pZDmJj30CbaFg9DxpipMBnGpDSs1LZIGI7264WxjTEQ205DbbFqVhhOfMSDD22g7Z4qmSVjcveGCQvrtTkfF9Y/WyyKwxJIw2RiW6EKy+qLXVkJxLCu7RgGHxc+/eWQkcvDbm3Z/Pr+BZ/+coiBfpiMtg2NtH3CPIEkNRg20fZX5I2FTbd98rxCmKvt0+aVw0Te1rxeoE3h01+uHCasrffqhCqDT3+52JVVKWnrVSkkpfDpL4ee1N1tAp/+Wr9/fEWSmdMmsKAy6UkhyQy0yfdIlAzCvqdCDCBJHdEWvyD72gQuWBCuL0OVkLCmzXoat0FDAW6aDefeJa9qHLUtGwSU4Uon3PeIwbDj8RBiTX9wvQdOz+GgBfXC2io12HbG3U7VYgCPa7DtbHC0H7bWkVcpaeuSDC72w9Y6BsPEOtpYpf63uWFrHUgyXVv8EbeFi/2wtQ4kmdAlJYOL/bC1DiSpQ9M2NLjYD1vryKtae7TF31hwsR+21pFXHQ4NaYs9KVzsh6115FXracur1JJtWFkNksw/0xZ/zVxNm/VE7eBoJ6ysBkkmxJreHHG0E1ZWgySjbfE7ucHRTlhZDZL2jZ2QNoYJHO2EldXkVY39Wtq6pLZKraENSWYVbVmVim3dT0UtHO2EldUgyYTYEye+UONoJ6ysBkkmWE8KRzthZTVIMqts2+5aK2uLVWtq6yU1do01tCHJNG23L+RmL3C3B1ZWgyQTtMReyVI4fRJWVoMkE9ADuL4MK6tBkploEwgowMpqkHTzPt0m0DAGK6tBkti2ptvaL0WuPKysRnssybCt9/Uutd+hJIeV1SBpu40CG1T3n57Qk8LKapBkAk73QJLBymqQZOa0CVQprHweNIyZ2SavcAgTuGBBY391IzbK2bYdeB/N8nDQI2LM/T2pvK3JGCzpJP9PlmrrYu7oEewR7zeBd0OSMWZeWy9muZ5U0pYd7edpY4zg0WXsEYhpvHcCrpwtb2OJ4LmTGCMYo5Ik80hbfNPJX3Y6vHUSSxRLVBbT9+Zvm8pQvNWDJYoligHwlsrbuqfxnBLBDMMSxQDo9ZhN2+ZoELzvLmwwzDAMyDFGSZIJbBC8bAY2GDakeH2OJSrt6WykjWfNwIAUA1I8PccMwxKz6YTrWud6/QMDnAYz3wg70wAAAABJRU5ErkJggg==\",\n \"version\": \"1.1\",\n \"deprecated\": false,\n \"apiIds\": [\n \"fc064e2c-2260-4976-96bd-d3654e823592\"\n ],\n \"planIds\": [\n \"45677822-1ec8-4061-bd2c-cba17e45d4e3\"\n ],\n \"publishedPortals\": [],\n \"policyIds\": [\n \"fec8c89f-f8c1-4b35-a9ac-aa8d189db0e4\"\n ],\n \"creationDate\": 1633366822907,\n \"active\": false\n }\n ]\n}" + }, + "schema" : { + "$ref" : "#/definitions/PackageGetAllResponseContainer" + } + }, + "401" : { + "description" : "This status shows either user didn't provide any user credential or user doesn't have Administrator or API provider access for this API." + } + }, + "security" : [ { + "Basic" : [ ] + } ] + }, + "post" : { + "description" : "This endpoint is used to create a package in API Gateway.", + "operationId" : "createPackage", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "description" : "", + "required" : false, + "schema" : { + "$ref" : "#/definitions/Package" + }, + "x-examples" : { + "application/json" : "{\n \"name\": \"GoldPackage\",\n \"description\": \"Gold package contains 10 APIs and 4 plans\",\n \"version\": \"1.1\",\n \"icon\": \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABRCAIAAAARlBx9AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAPmSURBVHhe7dhNctswDEBhXqe7Lnvv3qK3iOP/uDdox4UEGqIeJQqWZTpVi/nWBt4oM5EdfvbmUnBRrvkY86GG51xwVpxTQdp2KXO3sSe1aBtjwNv2/Icmcy54pO1SEMNcbexJLfrQZBiTOt3aLmXPD5M5F8x4aNp2KXOHybAnVfmhTbc9Nex6+pZDmJj30CbaFg9DxpipMBnGpDSs1LZIGI7264WxjTEQ205DbbFqVhhOfMSDD22g7Z4qmSVjcveGCQvrtTkfF9Y/WyyKwxJIw2RiW6EKy+qLXVkJxLCu7RgGHxc+/eWQkcvDbm3Z/Pr+BZ/+coiBfpiMtg2NtH3CPIEkNRg20fZX5I2FTbd98rxCmKvt0+aVw0Te1rxeoE3h01+uHCasrffqhCqDT3+52JVVKWnrVSkkpfDpL4ee1N1tAp/+Wr9/fEWSmdMmsKAy6UkhyQy0yfdIlAzCvqdCDCBJHdEWvyD72gQuWBCuL0OVkLCmzXoat0FDAW6aDefeJa9qHLUtGwSU4Uon3PeIwbDj8RBiTX9wvQdOz+GgBfXC2io12HbG3U7VYgCPa7DtbHC0H7bWkVcpaeuSDC72w9Y6BsPEOtpYpf63uWFrHUgyXVv8EbeFi/2wtQ4kmdAlJYOL/bC1DiSpQ9M2NLjYD1vryKtae7TF31hwsR+21pFXHQ4NaYs9KVzsh6115FXracur1JJtWFkNksw/0xZ/zVxNm/VE7eBoJ6ysBkkmxJreHHG0E1ZWgySjbfE7ucHRTlhZDZL2jZ2QNoYJHO2EldXkVY39Wtq6pLZKraENSWYVbVmVim3dT0UtHO2EldUgyYTYEye+UONoJ6ysBkkmWE8KRzthZTVIMqts2+5aK2uLVWtq6yU1do01tCHJNG23L+RmL3C3B1ZWgyQTtMReyVI4fRJWVoMkE9ADuL4MK6tBkploEwgowMpqkHTzPt0m0DAGK6tBkti2ptvaL0WuPKysRnssybCt9/Uutd+hJIeV1SBpu40CG1T3n57Qk8LKapBkAk73QJLBymqQZOa0CVQprHweNIyZ2SavcAgTuGBBY391IzbK2bYdeB/N8nDQI2LM/T2pvK3JGCzpJP9PlmrrYu7oEewR7zeBd0OSMWZeWy9muZ5U0pYd7edpY4zg0WXsEYhpvHcCrpwtb2OJ4LmTGCMYo5Ik80hbfNPJX3Y6vHUSSxRLVBbT9+Zvm8pQvNWDJYoligHwlsrbuqfxnBLBDMMSxQDo9ZhN2+ZoELzvLmwwzDAMyDFGSZIJbBC8bAY2GDakeH2OJSrt6WykjWfNwIAUA1I8PccMwxKz6YTrWud6/QMDnAYz3wg70wAAAABJRU5ErkJggg==\",\n \"planIds\": [\n \"45677822-1ec8-4061-bd2c-cba17e45d4e3\"\n ],\n \"apiIds\": [\n \"97a08183-b4c2-462c-92df-fd427efc62f3\"\n ]\n}" + } + } ], + "responses" : { + "201" : { + "description" : "The response code indicates that the package is successfully created. The response contains the id of package created. You can use the /packages/{packageId} to get the package details.", + "examples" : { + "application/json" : "{\n \"packageResponse\": {\n \"id\": \"03cfcdb4-b12c-43e8-80cc-fdf96a4cccc0\",\n \"status\": \"CREATED\",\n \"description\": \"Package Created\"\n }\n}" + }, + "schema" : { + "$ref" : "#/definitions/PackageResponseContainer" + } + }, + "400" : { + "description" : "If the any of the details provided is not sufficient you will get this error.", + "examples" : { + "application/json" : "{\n \"errorDetails\": \"Package name should not be empty or null\"\n}" + } + }, + "401" : { + "description" : "If the REST API invoking user does not exists or doesnt have manage package and plans, then you will get this error", + "examples" : { + "application/json" : "{\n \"errorDetails\": \" The user: xyz123 is not authorized to perform: POST on the resource: packages\"\n}" + } + } + }, + "security" : [ { + "Basic" : [ ] + } ] + } + }, + "/packages/{packageId}" : { + "get" : { + "description" : "To get details for a given package id", + "operationId" : "getPackageById", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "packageId", + "in" : "path", + "description" : "Id of the Package", + "required" : true, + "type" : "string", + "x-example" : "5ca87c9f-046d-4f43-bbaa-5039b5443d2d" + } ], + "responses" : { + "200" : { + "description" : "The response shows the package details for the provided package id. The response contains the associated API and plan details also.", + "examples" : { + "application/json" : "{\n \"packageResponse\": {\n \"id\": \"5ca87c9f-046d-4f43-bbaa-5039b5443d2d\",\n \"name\": \"GoldPackage\",\n \"description\": \"Gold package contains 10 APIs and 4 plans\",\n \"icon\": \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABRCAIAAAARlBx9AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAPmSURBVHhe7dhNctswDEBhXqe7Lnvv3qK3iOP/uDdox4UEGqIeJQqWZTpVi/nWBt4oM5EdfvbmUnBRrvkY86GG51xwVpxTQdp2KXO3sSe1aBtjwNv2/Icmcy54pO1SEMNcbexJLfrQZBiTOt3aLmXPD5M5F8x4aNp2KXOHybAnVfmhTbc9Nex6+pZDmJj30CbaFg9DxpipMBnGpDSs1LZIGI7264WxjTEQ205DbbFqVhhOfMSDD22g7Z4qmSVjcveGCQvrtTkfF9Y/WyyKwxJIw2RiW6EKy+qLXVkJxLCu7RgGHxc+/eWQkcvDbm3Z/Pr+BZ/+coiBfpiMtg2NtH3CPIEkNRg20fZX5I2FTbd98rxCmKvt0+aVw0Te1rxeoE3h01+uHCasrffqhCqDT3+52JVVKWnrVSkkpfDpL4ee1N1tAp/+Wr9/fEWSmdMmsKAy6UkhyQy0yfdIlAzCvqdCDCBJHdEWvyD72gQuWBCuL0OVkLCmzXoat0FDAW6aDefeJa9qHLUtGwSU4Uon3PeIwbDj8RBiTX9wvQdOz+GgBfXC2io12HbG3U7VYgCPa7DtbHC0H7bWkVcpaeuSDC72w9Y6BsPEOtpYpf63uWFrHUgyXVv8EbeFi/2wtQ4kmdAlJYOL/bC1DiSpQ9M2NLjYD1vryKtae7TF31hwsR+21pFXHQ4NaYs9KVzsh6115FXracur1JJtWFkNksw/0xZ/zVxNm/VE7eBoJ6ysBkkmxJreHHG0E1ZWgySjbfE7ucHRTlhZDZL2jZ2QNoYJHO2EldXkVY39Wtq6pLZKraENSWYVbVmVim3dT0UtHO2EldUgyYTYEye+UONoJ6ysBkkmWE8KRzthZTVIMqts2+5aK2uLVWtq6yU1do01tCHJNG23L+RmL3C3B1ZWgyQTtMReyVI4fRJWVoMkE9ADuL4MK6tBkploEwgowMpqkHTzPt0m0DAGK6tBkti2ptvaL0WuPKysRnssybCt9/Uutd+hJIeV1SBpu40CG1T3n57Qk8LKapBkAk73QJLBymqQZOa0CVQprHweNIyZ2SavcAgTuGBBY391IzbK2bYdeB/N8nDQI2LM/T2pvK3JGCzpJP9PlmrrYu7oEewR7zeBd0OSMWZeWy9muZ5U0pYd7edpY4zg0WXsEYhpvHcCrpwtb2OJ4LmTGCMYo5Ik80hbfNPJX3Y6vHUSSxRLVBbT9+Zvm8pQvNWDJYoligHwlsrbuqfxnBLBDMMSxQDo9ZhN2+ZoELzvLmwwzDAMyDFGSZIJbBC8bAY2GDakeH2OJSrt6WykjWfNwIAUA1I8PccMwxKz6YTrWud6/QMDnAYz3wg70wAAAABJRU5ErkJggg==\",\n \"version\": \"1.1\",\n \"deprecated\": false,\n \"publishedPortals\": [],\n \"policyIds\": [\n \"fec8c89f-f8c1-4b35-a9ac-aa8d189db0e4\"\n ],\n \"creationDate\": 1633366822907,\n \"active\": false,\n \"apis\": [\n {\n \"apiDefinition\": {\n \"info\": {\n \"version\": \"1.0\",\n \"title\": \"EchoRestAPI\"\n },\n \"schemes\": [],\n \"security\": [],\n \"paths\": {\n \"/EchoRest\": {\n \"post\": {\n \"responses\": {},\n \"mockedResponses\": {},\n \"mockedConditionsBasedCustomResponsesList\": [],\n \"enabled\": true,\n \"scopes\": [],\n \"requestBody\": {\n \"content\": {},\n \"name\": \"requestBody\"\n }\n },\n \"scopes\": [],\n \"displayName\": \"/EchoRest\",\n \"enabled\": true\n }\n },\n \"securityDefinitions\": {},\n \"definitions\": {},\n \"parameters\": {},\n \"baseUriParameters\": [],\n \"externalDocs\": [],\n \"servers\": [\n {\n \"url\": \"http://localhost:5555/rest/RestNativeService\",\n \"variables\": {}\n }\n ],\n \"components\": {\n \"schemas\": {},\n \"responses\": {},\n \"parameters\": {},\n \"examples\": {},\n \"requestBodies\": {},\n \"headers\": {},\n \"links\": {},\n \"callbacks\": {}\n },\n \"type\": \"rest\"\n },\n \"nativeEndpoint\": [\n {\n \"passSecurityHeaders\": true,\n \"uri\": \"http://localhost:5555/rest/RestNativeService\",\n \"connectionTimeoutDuration\": 0,\n \"alias\": false\n }\n ],\n \"apiName\": \"EchoRestAPI\",\n \"apiVersion\": \"1.0\",\n \"maturityState\": \"Beta\",\n \"isActive\": false,\n \"type\": \"REST\",\n \"owner\": \"Administrator\",\n \"policies\": [\n \"e9355c5e-8a63-4ebd-ab50-87c13257e7a1\"\n ],\n \"tracingEnabled\": false,\n \"scopes\": [],\n \"publishedPortals\": [],\n \"creationDate\": \"2021-10-04 16:59:29 GMT\",\n \"systemVersion\": 1,\n \"gatewayEndpoints\": {},\n \"id\": \"fc064e2c-2260-4976-96bd-d3654e823592\"\n }\n ],\n \"plans\": [\n {\n \"id\": \"45677822-1ec8-4061-bd2c-cba17e45d4e3\",\n \"name\": \"Gold Plan\",\n \"deprecated\": false\n }\n ]\n }\n}" + }, + "schema" : { + "$ref" : "#/definitions/PackageGetResponseContainer" + } + }, + "401" : { + "description" : "This status shows either user didn't provide any user credential or user doesn't have manage packages and plans permission to access the package." + }, + "404" : { + "description" : "The response code indicates that package id specified is not found.", + "examples" : { + "application/json" : "{\n \"packageResponse\": {\n \"status\": \"NOT_FOUND\",\n \"description\": \"Package(s) not found\"\n }\n}" + } + } + }, + "security" : [ { + "Basic" : [ ] + } ] + }, + "put" : { + "description" : "This endpoint is used to update the package metadata and associate or remove APIs and plans. The package can be active while editing any details of the package. If an API is added to an active package then subscribers can start consuming the API with existing key. Similarly if the API is removed, subscribers wont be able to use the removed APIs. Removal of plan is allowed only if the plan does not have any subscribers. You need to republish the package to portal to make the updated changes available in portal.\r\n Please use /package/{packageId}/active or /package/{packageId}/deactivate to activate or deactivate as this endpoint cannot be used to activate or deactivate package.", + "operationId" : "updatePackageByPackageId", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "packageId", + "in" : "path", + "description" : "package id to which the update requests is sent", + "required" : true, + "type" : "string", + "x-example" : "6ecd2e05-2ca9-45cc-8672-3de8743d56f7" + }, { + "in" : "body", + "name" : "body", + "description" : "", + "required" : false, + "schema" : { + "$ref" : "#/definitions/Package" + }, + "x-examples" : { + "application/json" : "{\n \"id\": \"a14283f8-43a7-43a3-b4a4-afcb6e07ae45\",\n \"name\": \"GoldPackage1\",\n \"description\": \"Gold package contains 10 APIs and 4 plans\",\n \"icon\": \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABRCAIAAAARlBx9AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAPmSURBVHhe7dhNctswDEBhXqe7Lnvv3qK3iOP/uDdox4UEGqIeJQqWZTpVi/nWBt4oM5EdfvbmUnBRrvkY86GG51xwVpxTQdp2KXO3sSe1aBtjwNv2/Icmcy54pO1SEMNcbexJLfrQZBiTOt3aLmXPD5M5F8x4aNp2KXOHybAnVfmhTbc9Nex6+pZDmJj30CbaFg9DxpipMBnGpDSs1LZIGI7264WxjTEQ205DbbFqVhhOfMSDD22g7Z4qmSVjcveGCQvrtTkfF9Y/WyyKwxJIw2RiW6EKy+qLXVkJxLCu7RgGHxc+/eWQkcvDbm3Z/Pr+BZ/+coiBfpiMtg2NtH3CPIEkNRg20fZX5I2FTbd98rxCmKvt0+aVw0Te1rxeoE3h01+uHCasrffqhCqDT3+52JVVKWnrVSkkpfDpL4ee1N1tAp/+Wr9/fEWSmdMmsKAy6UkhyQy0yfdIlAzCvqdCDCBJHdEWvyD72gQuWBCuL0OVkLCmzXoat0FDAW6aDefeJa9qHLUtGwSU4Uon3PeIwbDj8RBiTX9wvQdOz+GgBfXC2io12HbG3U7VYgCPa7DtbHC0H7bWkVcpaeuSDC72w9Y6BsPEOtpYpf63uWFrHUgyXVv8EbeFi/2wtQ4kmdAlJYOL/bC1DiSpQ9M2NLjYD1vryKtae7TF31hwsR+21pFXHQ4NaYs9KVzsh6115FXracur1JJtWFkNksw/0xZ/zVxNm/VE7eBoJ6ysBkkmxJreHHG0E1ZWgySjbfE7ucHRTlhZDZL2jZ2QNoYJHO2EldXkVY39Wtq6pLZKraENSWYVbVmVim3dT0UtHO2EldUgyYTYEye+UONoJ6ysBkkmWE8KRzthZTVIMqts2+5aK2uLVWtq6yU1do01tCHJNG23L+RmL3C3B1ZWgyQTtMReyVI4fRJWVoMkE9ADuL4MK6tBkploEwgowMpqkHTzPt0m0DAGK6tBkti2ptvaL0WuPKysRnssybCt9/Uutd+hJIeV1SBpu40CG1T3n57Qk8LKapBkAk73QJLBymqQZOa0CVQprHweNIyZ2SavcAgTuGBBY391IzbK2bYdeB/N8nDQI2LM/T2pvK3JGCzpJP9PlmrrYu7oEewR7zeBd0OSMWZeWy9muZ5U0pYd7edpY4zg0WXsEYhpvHcCrpwtb2OJ4LmTGCMYo5Ik80hbfNPJX3Y6vHUSSxRLVBbT9+Zvm8pQvNWDJYoligHwlsrbuqfxnBLBDMMSxQDo9ZhN2+ZoELzvLmwwzDAMyDFGSZIJbBC8bAY2GDakeH2OJSrt6WykjWfNwIAUA1I8PccMwxKz6YTrWud6/QMDnAYz3wg70wAAAABJRU5ErkJggg==\",\n \"version\": \"1.12\",\n \"deprecated\": false,\n \"publishedPortals\": [],\n \"policyIds\": [\n \"a66add34-99a5-434c-a0d4-bca0c93fe783\"\n ],\n \"active\": false,\n \"apiIds\": [\n \"d89060d9-9d41-4462-a4e9-ca946c8b296f\"\n ],\n \"planIds\": [\n \"153a2ea5-faf4-45a3-9d8f-3e7575ceeff9\",\n \"7aa8fe6c-24f6-4566-8928-f607a60275b6\"\n ]\n}" + } + } ], + "responses" : { + "200" : { + "description" : "The response indicates the successful update of package with provided details. The response payload will have only the status of package update. ", + "examples" : { + "application/json" : "{\n \"packageResponse\": {\n \"id\": \"a14283f8-43a7-43a3-b4a4-afcb6e07ae45\",\n \"status\": \"SUCCESS\",\n \"description\": \"Package Updated\"\n }\n}" + }, + "schema" : { + "$ref" : "#/definitions/PackageResponseContainer" + } + }, + "400" : { + "description" : "The response code indicates that the request provided is not correct or does not have enough information. Check the error message in the response for more details.", + "examples" : { + "application/json" : "{\n \"errorDetails\": \"Package name should not be empty or null\"\n}" + } + }, + "401" : { + "description" : "If the REST API invoking user does not exists or doesnt have manage package and plans, then you will get this error", + "examples" : { + "application/json" : "{\n \"errorDetails\": \" The user: user is not authorized to perform: PUT on the resource: packages\"\n}" + } + }, + "404" : { + "description" : "The response code indicates that package id specified is not found.", + "examples" : { + "application/json" : "{\n \"errorDetails\": \"Package id - a14283f8-43a7-43a3-b4a4-afcb6e07ae451 not found\"\n}" + } + } + }, + "security" : [ { + "Basic" : [ ] + } ] + }, + "delete" : { + "description" : "Deletes package from API gateway. Also deletes the association of plans and APIs to that package.", + "operationId" : "deletePackageById", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "packageId", + "in" : "path", + "description" : "Id of the Package", + "required" : true, + "type" : "string", + "x-example" : "5ca87c9f-046d-4f43-bbaa-5039b5443d2d" + } ], + "responses" : { + "204" : { + "description" : "No Content" + }, + "401" : { + "description" : "This status shows either user didn't provide any user credential or user doesn't have manage packages and plans permission to delete the package." + }, + "404" : { + "description" : "The response code indicates that package id specified is not found.", + "examples" : { + "application/json" : "{\n \"errorDetails\": \" Package '5ca87c9f-046d-4f43-bbaa-5039b5443d2d1' not found.\"\n}" + } + } + }, + "security" : [ { + "Basic" : [ ] + } ] + } + }, + "/packages/{packageId}/activate" : { + "put" : { + "description" : "This endpoint is used to activate the package. Once activated it will insert new Authentication policy for all associated APIs with API key as application identification condition. If the authentication policy already available or added to an API after activating the package, the package will add API key to that authentication policy if it is not there. It also make the condition as OR for application identification condition available in the authentication policy", + "operationId" : "activatePackageByPackageId", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "packageId", + "in" : "path", + "description" : "package id which needs to be activated", + "required" : true, + "type" : "string", + "x-example" : "6ecd2e05-2ca9-45cc-8672-3de8743d56f7" + } ], + "responses" : { + "200" : { + "description" : "The response code indicates that the package activation is successful", + "examples" : { + "application/json" : "{\"packageResponse\": {\n \"id\": \"a14283f8-43a7-43a3-b4a4-afcb6e07ae45\",\n \"status\": \"ACTIVATED\",\n \"description\": \"Package Activated\"\n }\n}" + }, + "schema" : { + "$ref" : "#/definitions/PackageResponseContainer" + } + }, + "400" : { + "description" : "This response code indicates that you are trying to activate an already active package", + "examples" : { + "application/json" : "{\n \"errorDetails\": \"Package id - a14283f8-43a7-43a3-b4a4-afcb6e07ae45 already activated\"\n}" + } + }, + "401" : { + "description" : "If the REST API invoking user does not exists or doesnt have manage package and plans, then you will get this error", + "examples" : { + "application/json" : "{\n \"errorDetails\": \" The user: user is not authorized to perform: PUT on the resource: packages\"\n}" + } + }, + "404" : { + "description" : "The response code indicates that package id specified is not found.", + "examples" : { + "application/json" : "{\n \"errorDetails\": \"Package id - a14283f8-43a7-43a3-b4a4-afcb6e07ae451 not found\"\n}" + } + } + }, + "security" : [ { + "Basic" : [ ] + } ] + } + }, + "/packages/{packageId}/apis" : { + "get" : { + "description" : "To get list of all APIs associated for a given package id", + "operationId" : "getAPIsForPackageById", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "packageId", + "in" : "path", + "description" : "Id of the Package", + "required" : true, + "type" : "string", + "x-example" : "a14283f8-43a7-43a3-b4a4-afcb6e07ae45" + } ], + "responses" : { + "200" : { + "description" : "The response shows the details of all associated plan for the provided package id.", + "examples" : { + "application/json" : "{\n \"packageResponse\": [\n {\n \"id\": \"45677822-1ec8-4061-bd2c-cba17e45d4e3\",\n \"name\": \"Gold Plan\",\n \"version\": \"1.0\",\n \"deprecated\": false,\n \"isProtected\": false,\n \"policies\": [\n \"a95cb03e-9b9d-4364-98e2-8444f2296afa\"\n ],\n \"cost\": {},\n \"quota\": {\n \"enforcementPolicy\": \"8924b1c6-97a9-485d-8be4-f4304b8e1d05\"\n },\n \"customFields\": {},\n \"creationDate\": 1633360083510,\n \"protected\": false\n }\n ]\n}" + }, + "schema" : { + "$ref" : "#/definitions/PackageAPIsResponseContainer" + } + }, + "401" : { + "description" : "This status shows either user didn't provide any user credential or user doesn't have Administrator or API provider access for this API." + }, + "404" : { + "description" : "The response code indicates that package id specified is not found." + } + }, + "security" : [ { + "Basic" : [ ] + } ] + } + }, + "/packages/{packageId}/deactivate" : { + "put" : { + "description" : "This request is used to deactivate the package. Once the package is deactivated, it will remove the authentication policy added or revert the authentication policy to original state in the API. If there are multiple packages associated to an API then the IAM policy will have the behaviour of having API key as application identification condition along with other application identification condition if any selected till last associated package is deactivated.", + "operationId" : "deactivatePackageByPackageId", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "packageId", + "in" : "path", + "description" : "package id which needs to be deactivated", + "required" : true, + "type" : "string", + "x-example" : "6ecd2e05-2ca9-45cc-8672-3de8743d56f7" + } ], + "responses" : { + "200" : { + "description" : "The response code indicates that the package is deactivated successfully", + "examples" : { + "application/json" : "{\n \"packageResponse\": {\n \"id\": \"a14283f8-43a7-43a3-b4a4-afcb6e07ae45\",\n \"status\": \"DEACTIVATED\",\n \"description\": \"Package Deactivated\"\n }\n}" + }, + "schema" : { + "$ref" : "#/definitions/PackageResponseContainer" + } + }, + "400" : { + "description" : "This response code indicates that you are trying to deactivate a package that is already deactivated", + "examples" : { + "application/json" : "{\n \"errorDetails\": \"Package id - a14283f8-43a7-43a3-b4a4-afcb6e07ae45 already deactivated\"\n}" + } + }, + "401" : { + "description" : "If the REST API invoking user does not exists or doesnt have manage package and plans, then you will get this error", + "examples" : { + "application/json" : "{\n \"errorDetails\": \" The user: user is not authorized to perform: PUT on the resource: packages\"\n}" + } + }, + "404" : { + "description" : "The response code indicates that package id specified is not found.", + "examples" : { + "application/json" : "{\n \"errorDetails\": \"Package id - a14283f8-43a7-43a3-b4a4-afcb6e07ae451 not found\"\n}" + } + } + }, + "security" : [ { + "Basic" : [ ] + } ] + } + }, + "/packages/{packageId}/plans" : { + "get" : { + "description" : "To get list of all plans associated to the given package id", + "operationId" : "getPlansForPackageById", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "packageId", + "in" : "path", + "description" : "Id of the Package", + "required" : true, + "type" : "string", + "x-example" : "5ca87c9f-046d-4f43-bbaa-5039b5443d2d" + } ], + "responses" : { + "200" : { + "description" : "The response shows the details of all associated plan for the provided package id.", + "examples" : { + "application/json" : "{\n \"packageResponse\": [\n {\n \"id\": \"45677822-1ec8-4061-bd2c-cba17e45d4e3\",\n \"name\": \"Gold Plan\",\n \"version\": \"1.0\",\n \"deprecated\": false,\n \"isProtected\": false,\n \"policies\": [\n \"a95cb03e-9b9d-4364-98e2-8444f2296afa\"\n ],\n \"cost\": {},\n \"quota\": {\n \"enforcementPolicy\": \"8924b1c6-97a9-485d-8be4-f4304b8e1d05\"\n },\n \"customFields\": {},\n \"creationDate\": 1633360083510,\n \"protected\": false\n }\n ]\n}" + }, + "schema" : { + "$ref" : "#/definitions/PackagePlansResponseContainer" + } + }, + "401" : { + "description" : "This status shows either user didn't provide any user credential or user doesn't have Administrator or API provider access for this API." + }, + "404" : { + "description" : "The response code indicates that package id specified is not found." + } + }, + "security" : [ { + "Basic" : [ ] + } ] + } + }, + "/packages/{packageId}/publish" : { + "put" : { + "description" : "This endpoint is used to publish the packages along with its associated plans to portal. Before publishing the package, the portal configuration should be configured in API gateway. You can use the endpoint /portalGateways to configure the portal configuration. The associated APIs needs to be published before publishing the package.", + "operationId" : "publishPackageByPackageId", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "packageId", + "in" : "path", + "description" : "package id which needs to be published to portal", + "required" : true, + "type" : "string", + "x-example" : "6ecd2e05-2ca9-45cc-8672-3de8743d56f7" + } ], + "responses" : { + "200" : { + "description" : "The response code indicates that the package is published successfully", + "examples" : { + "application/json" : "{\n \"packageResponse\": {\n \"id\": \"a14283f8-43a7-43a3-b4a4-afcb6e07ae45\",\n \"status\": \"PUBLISHED\",\n \"description\": \"Package Published\"\n }\n}" + }, + "schema" : { + "$ref" : "#/definitions/PackageResponseContainer" + } + }, + "400" : { + "description" : "This response code indicates that the failure in publishing package to portal due to portal configuration not available or other missing information required for publishing. Please check the error message for more details", + "examples" : { + "application/json" : "{\n \"errorDetails\": \" Please configure API-Portal in Administration > Destinations section\"\n}" + } + }, + "401" : { + "description" : "If the REST API invoking user does not exists or doesnt have manage package and plans, then you will get this error", + "examples" : { + "application/json" : "{\n \"errorDetails\": \" The user: user is not authorized to perform: PUT on the resource: packages\"\n}" + } + }, + "404" : { + "description" : "The response code indicates that package id specified is not found.", + "examples" : { + "application/json" : "{\n \"errorDetails\": \"Package id - a14283f8-43a7-43a3-b4a4-afcb6e07ae451 not found\"\n}" + } + } + }, + "security" : [ { + "Basic" : [ ] + } ] + } + }, + "/packages/{packageId}/unpublish" : { + "put" : { + "description" : "This endpoint is used to un publish the package and its associated plan from portal. ", + "operationId" : "unPublishPackageByPackageId", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "packageId", + "in" : "path", + "description" : "package id which needs to be unpublished from portal", + "required" : true, + "type" : "string", + "x-example" : "6ecd2e05-2ca9-45cc-8672-3de8743d56f7" + } ], + "responses" : { + "200" : { + "description" : "The response code indicates that the package is unpublished successfully", + "examples" : { + "application/json" : "{\n \"packageResponse\": {\n \"id\": \"a14283f8-43a7-43a3-b4a4-afcb6e07ae45\",\n \"status\": \"UNPUBLISHED\",\n \"description\": \"Package Unpublished\"\n }\n}" + }, + "schema" : { + "$ref" : "#/definitions/PackageResponseContainer" + } + }, + "400" : { + "description" : "The response code indicates that the unpublish is not successful", + "examples" : { + "application/json" : "{\n \"errorDetails\": \" Package 'GoldPackage1' is not published.\"\n}" + } + }, + "401" : { + "description" : "If the REST API invoking user does not exists or doesnt have manage package and plans, then you will get this error", + "examples" : { + "application/json" : "{\n \"errorDetails\": \" The user: user is not authorized to perform: PUT on the resource: packages\"\n}" + } + }, + "404" : { + "description" : "The response code indicates that package id specified is not found.", + "examples" : { + "application/json" : "{\n \"errorDetails\": \"Package id - a14283f8-43a7-43a3-b4a4-afcb6e07ae451 not found\"\n}" + } + } + }, + "security" : [ { + "Basic" : [ ] + } ] + } + }, + "/plans" : { + "get" : { + "description" : "This REST request is used to retrieve list of all plans from API Gateway along with its rate limit and quota as policies. Also it will list down the associated packageIds for each plan in the response. You can use /policies/{policyId} to retrieve the rate limit and quota policy details and /packages/{packageId} to retrieve the package details", + "operationId" : "getAllPlans", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ ], + "responses" : { + "200" : { + "description" : "Ok", + "examples" : { + "application/json" : "{\n \"planResponse\": [\n {\n \"id\": \"b35e2d91-0e9c-4421-a2a9-7abdf5d1c669\",\n \"name\": \"Plan1\",\n \"version\": \"1.0\",\n \"deprecated\": false,\n \"isProtected\": false,\n \"terms\": \"Plan terms\",\n \"license\": \"https://opensource.org/licenses/Apache-2.0\",\n \"policies\": [\n \"2429ece2-96c2-4bd6-b8dc-9c13eedac42f\"\n ],\n \"cost\": {\n \"currency\": null,\n \"value\": \"100USD\",\n \"duration\": null\n },\n \"quota\": {\n \"enforcementPolicy\": \"f6e80784-d82e-491c-abda-d492ee037c2c\"\n },\n \"customFields\": {\n \"customfield1\": [\n {\n \"value\": \"customvalue\",\n \"description\": \"values desription\"\n },\n {\n \"value\": \"customvalue2\",\n \"description\": \"values descripriton2\"\n }\n ],\n \"customfield2\": [\n {\n \"value\": \"field value2\",\n \"description\": \"value description\"\n }\n ]\n },\n \"creationDate\": 1637922489226,\n \"protected\": false,\n \"packageIds\": [\n \"7146dfc3-004b-473a-9ec8-7c206e766d7a\",\n \"8024be38-d2ff-40c1-901a-3291169f6f06\"\n ]\n },\n {\n \"id\": \"12fbf58b-9661-4337-acaa-bb3edbd2b5f2\",\n \"name\": \"Plan2\",\n \"description\": \"This plan does not have any rate limit.\",\n \"version\": \"1.0\",\n \"deprecated\": false,\n \"isProtected\": false,\n \"policies\": [\n \"5590dec3-754c-416d-9e2d-a1ca10c29760\"\n ],\n \"cost\": {\n \"currency\": null,\n \"value\": \"250USD\",\n \"duration\": null\n },\n \"quota\": {\n \"enforcementPolicy\": \"1e50b070-c09b-44e9-8cee-116046c92fa9\"\n },\n \"customFields\": {},\n \"creationDate\": 1637922530140,\n \"modifiedDate\": 1637922547637,\n \"protected\": false,\n \"packageIds\": [\n \"7146dfc3-004b-473a-9ec8-7c206e766d7a\",\n \"8024be38-d2ff-40c1-901a-3291169f6f06\"\n ]\n }\n ]\n}" + }, + "schema" : { + "$ref" : "#/definitions/PlanGetAllResponse" + } + }, + "401" : { + "description" : "This status shows either user didn't provide any user credential or user doesn't have Administrator or API provider access for this API." + } + }, + "security" : [ { + "Basic" : [ ] + } ] + }, + "post" : { + "description" : "This request is used to create the plan. During the creation of plan we can specify meta data of the plans. The rate limit and quota needs to created using a separate rest call to /policyActions. Also they need to be associated to corresponding policies created during the plan.\r\n\r\n You can also enable notifications in quota to trigger some actions such as billing or any other custom actions based on the consumption of an user.\r\n\r\n The notification can be either email or a custom destination. To receive email notification you should configure Email destination. To enable custom destination you need to create custom destination in API gateway. The link https://github.com/SoftwareAG/webmethods-api-gateway/tree/master/docs/articles/features/Custom%20Destinations contains the details on how to configure and use it. If you want to block the consumer after consuming allocated quota you should create throttle policy action as mentioned in the below example associate that to quota policy created for plan. If you want to just notify the destination with blocking the customer then you need to create monitorSLA policy action and associate that to quota policy created for plan.\r\n\r\n If you enable block on breach (throttle policy) you can receive both the policy violation event and monitor event with eventSource field as Enforce-HardLimit in custom destination. Please make sure that custom destination is enabled to receive events for policy violations events. If you dont enable block on breach (monitorSLA) in quota then monitor event with eventSource field as MonitorPolicy is sent to destinations configured. \r\n\r\n Below are the examples to create rate limit in API gateway using endpoint /policyActions and associate it to the policy created for the plan.\r\n\r\n curl -X POST -u 'Administrator:manage' -H 'Accept: application/json' -H 'Content-Type: application/json' http://localhost:5555/rest/apigateway/policyActions -d '{\"policyAction\":{\"names\":[{\"value\":\"Traffic Optimization\",\"locale\":\"en\"}],\"templateKey\":\"throttle\",\"parameters\":[{\"templateKey\":\"throttleRule\",\"parameters\":[{\"templateKey\":\"throttleRuleName\",\"values\":[\"requestCount\"]},{\"templateKey\":\"monitorRuleOperator\",\"values\":[\"GT\"]},{\"templateKey\":\"value\",\"values\":[\"10\"]}]},{\"templateKey\":\"destination\",\"parameters\":[{\"templateKey\":\"destinationType\",\"values\":[\"GATEWAY\"]}]},{\"templateKey\":\"alertInterval\",\"values\":[\"2\"]},{\"templateKey\":\"alertIntervalUnit\",\"values\":[\"minutes\"]},{\"templateKey\":\"alertFrequency\",\"values\":[\"once\"]},{\"templateKey\":\"alertMessage\",\"values\":[\"10 requests in 2 minutes breached for rate limit\"]},{\"templateKey\":\"consumerIds\",\"values\":[\"AnyConsumers\"]}],\"active\":false}}'. \r\n\r\n The above command will create a throttling policy action and its id in the response which you need to associate to the policy using the below example.\r\n curl -X PUT -u 'Administrator:manage' -H 'Accept: application/json' -H 'Content-Type: application/json' http://localhost:5555/rest/apigateway/policies/2429ece2-96c2-4bd6-b8dc-9c13eedac42f -d '{\"policy\":{\"id\":\"2429ece2-96c2-4bd6-b8dc-9c13eedac42f\",\"policyEnforcements\":[{\"enforcements\":[{\"enforcementObjectId\":\"f3753917-30ef-438c-99f5-adcc204ac7b6\",\"order\":null}],\"stageKey\":\"throttle\"}]}}'.\r\n\r\n To create throttle policy for quota use the below example.\r\n\r\ncurl -X POST -u 'Administrator:manage' -H 'Accept: application/json' -H 'Content-Type: application/json' http://localhost:5555/rest/apigateway/policyActions -d '{\"policyAction\":{\"names\":[{\"value\":\"Traffic Optimization\",\"locale\":\"en\"}],\"templateKey\":\"throttle\",\"parameters\":[{\"templateKey\":\"throttleRule\",\"parameters\":[{\"templateKey\":\"throttleRuleName\",\"values\":[\"requestCount\"]},{\"templateKey\":\"monitorRuleOperator\",\"values\":[\"GT\"]},{\"templateKey\":\"value\",\"values\":[\"150\"]}]},{\"templateKey\":\"destination\",\"parameters\":[{\"templateKey\":\"destinationType\",\"values\":[\"GATEWAY\"]}]},{\"templateKey\":\"alertInterval\",\"values\":[\"30\"]},{\"templateKey\":\"alertIntervalUnit\",\"values\":[\"minutes\"]},{\"templateKey\":\"alertFrequency\",\"values\":[\"once\"]},{\"templateKey\":\"alertMessage\",\"values\":[\"150 requests breached in 30 minutes for quota\"]},{\"templateKey\":\"consumerIds\",\"values\":[\"AnyConsumers\"]},{\"templateKey\":\"destination\",\"parameters\":[{\"templateKey\":\"destinationType\",\"values\":[\"SMTP\"]},{\"templateKey\":\"emailTo\",\"values\":[\"abc@xyz.com\"]}]},{\"templateKey\":\"destination\",\"parameters\":[{\"templateKey\":\"destinationType\",\"values\":[\"CUSTOM\"]},{\"templateKey\":\"ids\",\"values\":[\"customDestiantion1\"]}]},{\"templateKey\":\"destination\",\"parameters\":[{\"templateKey\":\"destinationType\",\"values\":[\"DES\"]}]}],\"active\":false}}'.\r\n\r\n To create monitorSLA policy action for quota use the below example.\r\n\r\ncurl -X POST -u 'Administrator:manage' -H 'Accept: application/json' -H 'Content-Type: application/json' http://localhost:5555/rest/apigateway/policyActions -d '{\"policyAction\":{\"names\":[{\"value\":\"Monitor SLA\",\"locale\":\"en\"}],\"templateKey\":\"monitorSLA\",\"parameters\":[{\"templateKey\":\"monitorRules\",\"parameters\":[{\"templateKey\":\"monitorRuleName\",\"values\":[\"requestCount\"]},{\"templateKey\":\"monitorRuleOperator\",\"values\":[\"GT\"]},{\"templateKey\":\"value\",\"values\":[\"120.0\"],\"extendedProperties\":[{\"key\":\"quota\",\"value\":\"150\"},{\"key\":\"notifyPercent\",\"value\":\"80\"}]}]},{\"templateKey\":\"destination\",\"parameters\":[{\"templateKey\":\"destinationType\",\"values\":[\"GATEWAY\"]}]},{\"templateKey\":\"alertInterval\",\"values\":[\"30\"]},{\"templateKey\":\"alertIntervalUnit\",\"values\":[\"minutes\"]},{\"templateKey\":\"alertFrequency\",\"values\":[\"once\"]},{\"templateKey\":\"alertMessage\",\"values\":[\"80% vioalted for quota\"]},{\"templateKey\":\"consumerIds\",\"values\":[\"AnyConsumers\"]},{\"templateKey\":\"destination\",\"parameters\":[{\"templateKey\":\"destinationType\",\"values\":[\"SMTP\"]},{\"templateKey\":\"emailTo\",\"values\":[\"abc@xyz.com\"]}]},{\"templateKey\":\"destination\",\"parameters\":[{\"templateKey\":\"destinationType\",\"values\":[\"CUSTOM\"]},{\"templateKey\":\"ids\",\"values\":[\"customDestiantion1\"]}]},{\"templateKey\":\"destination\",\"parameters\":[{\"templateKey\":\"destinationType\",\"values\":[\"DES\"]}]}],\"active\":false}}'.\r\n\r\n To associate create throttle and monitor policy to quota.\r\n\r\n curl -X PUT -u 'Administrator:manage' -H 'Accept: application/json' -H 'Content-Type: application/json' http://localhost:5555/rest/apigateway/policies/f6e80784-d82e-491c-abda-d492ee037c2c -d {\"policy\":{\"id\":\"f6e80784-d82e-491c-abda-d492ee037c2c\",\"policyEnforcements\":[{\"enforcements\":[{\"enforcementObjectId\":\"2083ce29-8f4a-4e5e-b8bc-cbaaf18e4780\",\"order\":null}],\"stageKey\":\"throttle\"},{\"enforcements\":[{\"enforcementObjectId\":\"7d143518-1058-4f4c-8ee1-66dd75b4c08d\",\"order\":null}],\"stageKey\":\"monitorSLA\"}]}}", + "operationId" : "createPlan", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "description" : "", + "required" : false, + "schema" : { + "$ref" : "#/definitions/Plan" + }, + "x-examples" : { + "application/json" : "{\n \"name\" : \"PlantinumPlan\",\n \"description\" : \"Platinum plan description\",\n \"version\" : \"v1\",\n \"icon\": \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABRCAIAAAARlBx9AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAPmSURBVHhe7dhNctswDEBhXqe7Lnvv3qK3iOP/uDdox4UEGqIeJQqWZTpVi/nWBt4oM5EdfvbmUnBRrvkY86GG51xwVpxTQdp2KXO3sSe1aBtjwNv2/Icmcy54pO1SEMNcbexJLfrQZBiTOt3aLmXPD5M5F8x4aNp2KXOHybAnVfmhTbc9Nex6+pZDmJj30CbaFg9DxpipMBnGpDSs1LZIGI7264WxjTEQ205DbbFqVhhOfMSDD22g7Z4qmSVjcveGCQvrtTkfF9Y/WyyKwxJIw2RiW6EKy+qLXVkJxLCu7RgGHxc+/eWQkcvDbm3Z/Pr+BZ/+coiBfpiMtg2NtH3CPIEkNRg20fZX5I2FTbd98rxCmKvt0+aVw0Te1rxeoE3h01+uHCasrffqhCqDT3+52JVVKWnrVSkkpfDpL4ee1N1tAp/+Wr9/fEWSmdMmsKAy6UkhyQy0yfdIlAzCvqdCDCBJHdEWvyD72gQuWBCuL0OVkLCmzXoat0FDAW6aDefeJa9qHLUtGwSU4Uon3PeIwbDj8RBiTX9wvQdOz+GgBfXC2io12HbG3U7VYgCPa7DtbHC0H7bWkVcpaeuSDC72w9Y6BsPEOtpYpf63uWFrHUgyXVv8EbeFi/2wtQ4kmdAlJYOL/bC1DiSpQ9M2NLjYD1vryKtae7TF31hwsR+21pFXHQ4NaYs9KVzsh6115FXracur1JJtWFkNksw/0xZ/zVxNm/VE7eBoJ6ysBkkmxJreHHG0E1ZWgySjbfE7ucHRTlhZDZL2jZ2QNoYJHO2EldXkVY39Wtq6pLZKraENSWYVbVmVim3dT0UtHO2EldUgyYTYEye+UONoJ6ysBkkmWE8KRzthZTVIMqts2+5aK2uLVWtq6yU1do01tCHJNG23L+RmL3C3B1ZWgyQTtMReyVI4fRJWVoMkE9ADuL4MK6tBkploEwgowMpqkHTzPt0m0DAGK6tBkti2ptvaL0WuPKysRnssybCt9/Uutd+hJIeV1SBpu40CG1T3n57Qk8LKapBkAk73QJLBymqQZOa0CVQprHweNIyZ2SavcAgTuGBBY391IzbK2bYdeB/N8nDQI2LM/T2pvK3JGCzpJP9PlmrrYu7oEewR7zeBd0OSMWZeWy9muZ5U0pYd7edpY4zg0WXsEYhpvHcCrpwtb2OJ4LmTGCMYo5Ik80hbfNPJX3Y6vHUSSxRLVBbT9+Zvm8pQvNWDJYoligHwlsrbuqfxnBLBDMMSxQDo9ZhN2+ZoELzvLmwwzDAMyDFGSZIJbBC8bAY2GDakeH2OJSrt6WykjWfNwIAUA1I8PccMwxKz6YTrWud6/QMDnAYz3wg70wAAAABJRU5ErkJggg==\",\n \"license\": \"https://opensource.org/licenses/Apache-2.0\",\n \"customFields\": {\n \"customfield1\": [\n {\n \"value\": \"customvalue\",\n \"description\": \"values desription\"\n },\n {\n \"value\": \"customvalue2\",\n \"description\": \"values descripriton2\"\n }\n ],\n \"customfield2\": [\n {\n \"value\": \"field value2\",\n \"description\": \"value description\"\n }\n ]\n }\n}" + } + } ], + "responses" : { + "201" : { + "description" : "This response code indicates that plan is successfully created and policies for rate limit and quota also successfully created. You can start to add rate limits and quota for the policies associated to this plan", + "examples" : { + "application/json" : "{\n \"planResponse\": {\n \"id\": \"8c84f0cb-559f-40c8-99d0-43e58c3da4c0\",\n \"name\": \"PlantinumPlan\",\n \"description\": \"Platinum plan description\",\n \"icon\": \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABRCAIAAAARlBx9AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAPmSURBVHhe7dhNctswDEBhXqe7Lnvv3qK3iOP/uDdox4UEGqIeJQqWZTpVi/nWBt4oM5EdfvbmUnBRrvkY86GG51xwVpxTQdp2KXO3sSe1aBtjwNv2/Icmcy54pO1SEMNcbexJLfrQZBiTOt3aLmXPD5M5F8x4aNp2KXOHybAnVfmhTbc9Nex6+pZDmJj30CbaFg9DxpipMBnGpDSs1LZIGI7264WxjTEQ205DbbFqVhhOfMSDD22g7Z4qmSVjcveGCQvrtTkfF9Y/WyyKwxJIw2RiW6EKy+qLXVkJxLCu7RgGHxc+/eWQkcvDbm3Z/Pr+BZ/+coiBfpiMtg2NtH3CPIEkNRg20fZX5I2FTbd98rxCmKvt0+aVw0Te1rxeoE3h01+uHCasrffqhCqDT3+52JVVKWnrVSkkpfDpL4ee1N1tAp/+Wr9/fEWSmdMmsKAy6UkhyQy0yfdIlAzCvqdCDCBJHdEWvyD72gQuWBCuL0OVkLCmzXoat0FDAW6aDefeJa9qHLUtGwSU4Uon3PeIwbDj8RBiTX9wvQdOz+GgBfXC2io12HbG3U7VYgCPa7DtbHC0H7bWkVcpaeuSDC72w9Y6BsPEOtpYpf63uWFrHUgyXVv8EbeFi/2wtQ4kmdAlJYOL/bC1DiSpQ9M2NLjYD1vryKtae7TF31hwsR+21pFXHQ4NaYs9KVzsh6115FXracur1JJtWFkNksw/0xZ/zVxNm/VE7eBoJ6ysBkkmxJreHHG0E1ZWgySjbfE7ucHRTlhZDZL2jZ2QNoYJHO2EldXkVY39Wtq6pLZKraENSWYVbVmVim3dT0UtHO2EldUgyYTYEye+UONoJ6ysBkkmWE8KRzthZTVIMqts2+5aK2uLVWtq6yU1do01tCHJNG23L+RmL3C3B1ZWgyQTtMReyVI4fRJWVoMkE9ADuL4MK6tBkploEwgowMpqkHTzPt0m0DAGK6tBkti2ptvaL0WuPKysRnssybCt9/Uutd+hJIeV1SBpu40CG1T3n57Qk8LKapBkAk73QJLBymqQZOa0CVQprHweNIyZ2SavcAgTuGBBY391IzbK2bYdeB/N8nDQI2LM/T2pvK3JGCzpJP9PlmrrYu7oEewR7zeBd0OSMWZeWy9muZ5U0pYd7edpY4zg0WXsEYhpvHcCrpwtb2OJ4LmTGCMYo5Ik80hbfNPJX3Y6vHUSSxRLVBbT9+Zvm8pQvNWDJYoligHwlsrbuqfxnBLBDMMSxQDo9ZhN2+ZoELzvLmwwzDAMyDFGSZIJbBC8bAY2GDakeH2OJSrt6WykjWfNwIAUA1I8PccMwxKz6YTrWud6/QMDnAYz3wg70wAAAABJRU5ErkJggg==\",\n \"version\": \"v1\",\n \"deprecated\": false,\n \"isProtected\": false,\n \"license\": \"https://opensource.org/licenses/Apache-2.0\",\n \"policies\": [\n \"d68c9f05-c683-4c0e-9cee-e3d7fb8aa482\"\n ],\n \"quota\": {\n \"enforcementPolicy\": \"9a2955ec-478c-482e-a148-4490bd5cdec7\"\n },\n \"customFields\": {\n \"customfield1\": [\n {\n \"value\": \"customvalue\",\n \"description\": \"values desription\"\n },\n {\n \"value\": \"customvalue2\",\n \"description\": \"values descripriton2\"\n }\n ],\n \"customfield2\": [\n {\n \"value\": \"field value2\",\n \"description\": \"value description\"\n }\n ]\n },\n \"creationDate\": 1638162053046,\n \"protected\": false,\n \"status\": \"CREATED\",\n \"message\": \"Plan Created\"\n }\n}" + }, + "schema" : { + "$ref" : "#/definitions/PlanResponseContainer" + } + }, + "400" : { + "description" : "Bad request", + "examples" : { + "application/json" : "{\n \"errorDetails\": \"Plan name should not be empty or null\"\n}" + } + }, + "401" : { + "description" : "This status shows either user didn't provide any user credential or user doesn't have Administrator or manage package and plans access privilege to access this API." + } + }, + "security" : [ { + "Basic" : [ ] + } ] + } + }, + "/plans/{planId}" : { + "get" : { + "description" : "This request is used to retrieve the details of particular plan along with rate limit and quota policy ids along with associated package meta data.", + "operationId" : "getPlanById", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "planId", + "in" : "path", + "description" : "Id of a Plan", + "required" : true, + "type" : "string", + "x-example" : "eb135dfc-6ad4-41a3-9c34-4c005037cb8b" + } ], + "responses" : { + "200" : { + "description" : "To get plan information for the given Plan Id.", + "examples" : { + "application/json" : "{\n \"planResponse\": {\n \"id\": \"b35e2d91-0e9c-4421-a2a9-7abdf5d1c669\",\n \"name\": \"Plan1\",\n \"version\": \"1.0\",\n \"deprecated\": false,\n \"isProtected\": false,\n \"terms\": \"Plan terms\",\n \"license\": \"https://opensource.org/licenses/Apache-2.0\",\n \"policies\": [\n \"2429ece2-96c2-4bd6-b8dc-9c13eedac42f\"\n ],\n \"cost\": {\n \"currency\": null,\n \"value\": \"100USD\",\n \"duration\": null\n },\n \"quota\": {\n \"enforcementPolicy\": \"f6e80784-d82e-491c-abda-d492ee037c2c\"\n },\n \"customFields\": {\n \"customfield1\": [\n {\n \"value\": \"customvalue\",\n \"description\": \"values desription\"\n },\n {\n \"value\": \"customvalue2\",\n \"description\": \"values descripriton2\"\n }\n ],\n \"customfield2\": [\n {\n \"value\": \"field value2\",\n \"description\": \"value description\"\n }\n ]\n },\n \"creationDate\": 1637922489226,\n \"protected\": false,\n \"packages\": [\n {\n \"id\": \"7146dfc3-004b-473a-9ec8-7c206e766d7a\",\n \"name\": \"Package1\",\n \"deprecated\": false,\n \"publishedPortals\": [],\n \"active\": false\n },\n {\n \"id\": \"8024be38-d2ff-40c1-901a-3291169f6f06\",\n \"name\": \"Package2\",\n \"deprecated\": false,\n \"publishedPortals\": [],\n \"active\": false\n }\n ]\n }\n}" + }, + "schema" : { + "$ref" : "#/definitions/PlanGetResponse" + } + }, + "401" : { + "description" : "This status shows either user didn't provide any user credential or user doesn't have Administrator or API provider access for this API." + }, + "404" : { + "description" : "The specified package is not available." + } + }, + "security" : [ { + "Basic" : [ ] + } ] + }, + "put" : { + "description" : "This request is used to update the plan meta data such as name, description, license details. To update the rate limit or quota use the /policies/{policyId} to get the throttling/MSLA policy action id and use /policyActions/{policyActionId} to update the rate limit or quota. To associate or dis associate a package use /packages/{packageId} end point. If the rate limit or quota changes it will be automatically enforced with updated with out re activating the package.", + "operationId" : "updatePlanByPlanId", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "description" : "", + "required" : false, + "schema" : { + "$ref" : "#/definitions/Plan" + }, + "x-examples" : { + "application/json" : "{\n \"description\": \"Premium plan description updated\",\n \"version\": \"v1\",\n \"deprecated\": false,\n \"isProtected\": false,\n \"terms\": \"Plan terms\",\n \"license\": \"https://opensource.org/licenses/Apache-2.0\",\n \"policies\": [\n \"2429ece2-96c2-4bd6-b8dc-9c13eedac42f\"\n ],\n \"cost\": {\n \"currency\": null,\n \"value\": \"100USD\",\n \"duration\": null\n },\n \"quota\": {\n \"enforcementPolicy\": \"f6e80784-d82e-491c-abda-d492ee037c2c\"\n },\n \"customFields\": {\n \"customfield1\": [\n {\n \"value\": \"customvalue\",\n \"description\": \"values desription\"\n },\n {\n \"value\": \"customvalue2\",\n \"description\": \"values descripriton2\"\n }\n ],\n \"customfield2\": [\n {\n \"value\": \"field value2\",\n \"description\": \"value description\"\n }\n ]\n },\n \"protected\": false\n}" + } + }, { + "name" : "planId", + "in" : "path", + "description" : "The id of the plan whose details needs to be updated.", + "required" : true, + "type" : "string", + "x-example" : "eb135dfc-6ad4-41a3-9c34-4c005037cb8b" + } ], + "responses" : { + "200" : { + "description" : "The plan details is successfully updated", + "examples" : { + "application/json" : "{\n \"planResponse\": {\n \"id\": \"b35e2d91-0e9c-4421-a2a9-7abdf5d1c669\",\n \"name\": \"PremiumPlan\",\n \"description\": \"Premium plan description updated\",\n \"version\": \"v1\",\n \"deprecated\": false,\n \"isProtected\": false,\n \"terms\": \"Plan terms\",\n \"license\": \"https://opensource.org/licenses/Apache-2.0\",\n \"policies\": [\n \"2429ece2-96c2-4bd6-b8dc-9c13eedac42f\"\n ],\n \"cost\": {\n \"currency\": null,\n \"value\": \"100USD\",\n \"duration\": null\n },\n \"quota\": {\n \"enforcementPolicy\": \"f6e80784-d82e-491c-abda-d492ee037c2c\"\n },\n \"customFields\": {\n \"customfield1\": [\n {\n \"value\": \"customvalue\",\n \"description\": \"values desription\"\n },\n {\n \"value\": \"customvalue2\",\n \"description\": \"values descripriton2\"\n }\n ],\n \"customfield2\": [\n {\n \"value\": \"field value2\",\n \"description\": \"value description\"\n }\n ]\n },\n \"creationDate\": 1637922489226,\n \"modifiedDate\": 1637944095771,\n \"protected\": false,\n \"status\": \"UPDATED\",\n \"message\": \"Plan Updated\"\n }\n}" + }, + "schema" : { + "$ref" : "#/definitions/PlanGetResponse" + } + }, + "400" : { + "description" : "The error code indicates missing or invalid field in the request", + "examples" : { + "application/json" : "{\n \"errorDetails\": \"Plan name should not be empty or null\"\n}" + } + }, + "401" : { + "description" : "The error code indicates either user credential is not provided or the user is not an administrator or does not have manage packages and plans privilege" + }, + "404" : { + "description" : "The specified package id is not available in API Gateway" + } + }, + "security" : [ { + "Basic" : [ ] + } ] + }, + "delete" : { + "description" : "This request is used to delete the plan by plan id. Before deleting the plan, the plan should removed from all of its associated packages else API gateway will not allow the plan to be deleted. You can use /packages/{packageId} resource dis associate the plan from its corresponding packages. The associated rate limit and quota policy will be deleted automatically when the plan is deleted.", + "operationId" : "deletePlanById", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "planId", + "in" : "path", + "description" : "Id of a Plan", + "required" : true, + "type" : "string", + "x-example" : "eb135dfc-6ad4-41a3-9c34-4c005037cb8b" + } ], + "responses" : { + "204" : { + "description" : "The plan is successfully deleted." + }, + "401" : { + "description" : "This status shows either user didn't provide any user credential or user doesn't have Administrator or manage package and plans access privilege to access this API." + }, + "404" : { + "description" : "The specified package is not available. Either it is not valid or it might have been deleted already." + }, + "500" : { + "description" : "Error occurred while deleting the plan", + "examples" : { + "application/json" : "{\n \"errorDetails\": \" Plan 'Plan1' linked with Package(s) 'Package1,Package2'.\"\n}" + } + } + }, + "security" : [ { + "Basic" : [ ] + } ] + } + }, + "/subscriptions" : { + "get" : { + "description" : "The method retrieves all subscriptions or set of subscriptions for the specified package id and plan id specified. The response will contain the list of application details. The API key inside all the application will be masked even though the API invoker have permission to view the key.", + "operationId" : "getAllSubscriptions", + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "packageId", + "in" : "query", + "description" : "Specify the package id for which the subscription details is requested", + "required" : false, + "type" : "string", + "x-example" : "a17beba9-9701-46c2-aef6-e54d2fefe44c" + }, { + "name" : "planId", + "in" : "query", + "description" : "Specify the plan id for which the subscription details is requested", + "required" : false, + "type" : "string", + "x-example" : "eb135dfc-6ad4-41a3-9c34-4c005037cb8b" + } ], + "responses" : { + "200" : { + "description" : "All the subscription details will be retrieved. The api key will be masked in the response even though the invoker is the owner of some or all of the application.", + "examples" : { + "application/json" : "[\n {\n \"applicationID\": \"923bd0b4-ee59-44be-b13f-85c761e5114c\",\n \"name\": \"Subscription1\",\n \"description\": \"subscribing API1\",\n \"owner\": \"Administrator\",\n \"identifiers\": [],\n \"accessTokens\": {\n \"apiAccessKey\": {\n \"apiAccessKey\": \"********************************\"\n }\n },\n \"creationDate\": \"2021-07-30 05:48:02 GMT\",\n \"lastModified\": \"2021-07-30 08:30:22 GMT\",\n \"lastUpdated\": 1627633822085,\n \"siteURLs\": [],\n \"jsOrigins\": [],\n \"version\": \"1.0\",\n \"packageName\": \"Package2\",\n \"packageId\": \"bf799f44-1479-4af4-a594-065a2c4c23b9\",\n \"planName\": \"Plan2\",\n \"planId\": \"fa1a5343-40e6-41ef-932e-98cd55026ac5\",\n \"provider\": \"APIGateway\",\n \"isSuspended\": false,\n \"authStrategyIds\": [\n \"5530e2ad-3e30-41c4-84b7-55a9b2b79a12\"\n ],\n \"subscription\": true,\n \"shell\": false\n }\n]" + }, + "schema" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/Application" + } + } + }, + "401" : { + "description" : "This status shows either user didn't provide any user credential or user does not exists in API Gateway" + }, + "404" : { + "description" : "This status code shows that the subscription is not available for provided packageId or planId" + } + }, + "security" : [ { + "Basic" : [ ] + } ] + }, + "post" : { + "description" : "This endpoint is used to create subscription for specified package and plan in the request. If the approval is enabled, the response will not contain the API key but the application id will be available to retrieve the API key later. A approval request will be created in API gateway to approve the subscription. Once the request is approved the application will be provided with an API key. Then you can use subscriptions/{applicationId} GET HTTP method to get the API key", + "operationId" : "createSubscription", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "description" : "", + "required" : false, + "schema" : { + "$ref" : "#/definitions/SubscriptionRequest" + }, + "x-examples" : { + "application/json" : "{\"packageId\":\"b40eb752-2f79-4a70-870f-41de7896548d\",\"planId\":\"e802f52d-c7ae-4f24-b7e2-b2ff0c40d778\",\"applicationName\":\"Subscription1\",\"applicationDescription\":\"subscribing API1\",\"requesterId\":\"Administrator\",\"requesterName\":\"Administrator\",\"requesterFirstName\":\"Administrator\",\"requesterLastName\":\"\",\"requestEmail\":\"Administraotr@softwareag.com\",\"requesterComment\":\"Please accept the request for subscribing API1\",\"redirectURIs\":[\"http://redirecturi1\",\"https://redirecturi2\"],\"otherRequesterDetails\":{\"key1\":\"value1\",\"key2\":\"value2\"}}" + } + } ], + "responses" : { + "201" : { + "description" : "The response will display the application details that is created. Generally it will display the api key in the response. If the request and invoker of this api is different then the api key will be masked. Only that user or if team work is enabled any of the team member can view the key by invoking /subscriptions/{applicationId}. If the response doesnt have any information about the key then it might be waiting for approval or auto approved if the invoker have approval permission", + "examples" : { + "application/json" : "{\"applicationID\":\"923bd0b4-ee59-44be-b13f-85c761e5114c\",\"name\":\"Subscription1\",\"description\":\"subscribing API1\",\"owner\":\"Administrator\",\"identifiers\":[],\"accessTokens\":{\"apiAccessKey\":{\"apiAccessKey\":\"ee6f218e-e769-4fa4-80c4-820752c76f09\"}},\"creationDate\":\"2021-07-30 05:48:02 GMT\",\"lastUpdated\":1627624082883,\"siteURLs\":[],\"jsOrigins\":[],\"version\":\"1.0\",\"packageName\":\"Package1\",\"packageId\":\"b40eb752-2f79-4a70-870f-41de7896548d\",\"planName\":\"Plan1\",\"planId\":\"e802f52d-c7ae-4f24-b7e2-b2ff0c40d778\",\"provider\":\"APIGateway\",\"isSuspended\":false,\"authStrategyIds\":[\"5530e2ad-3e30-41c4-84b7-55a9b2b79a12\"],\"primaryNode\":{\"hostId\":\"46fb7722-0ea8-4be6-a4f0-37b1b037a108\",\"replica\":0},\"subscription\":true,\"shell\":false}" + }, + "schema" : { + "$ref" : "#/definitions/Application" + } + }, + "400" : { + "description" : "If the any of the details provided is not sufficient you will get this error.", + "examples" : { + "application/json" : "{\"errorDetails\":\"Application name is needed to create subscription\"}" + } + }, + "401" : { + "description" : "If the REST API invoking user does not exists or doesnt have manage application permission, then you will get this error", + "examples" : { + "application/json" : "{\"errorDetails\":\"The user: nonAdminUser is not authorized to perform: POST on the resource: subscriptions\"}" + } + } + }, + "security" : [ { + "Basic" : [ ] + } ] + } + }, + "/subscriptions/usage" : { + "get" : { + "description" : "This endpoint is used to list the aggregated details of each active subscription for current cycle. This can be used with filters mentioned as query parameter to fine grain the result. For example, if you want to fetch the list of usage of active subscription for package GoldPackage, then you can specify package=GoldPackage in query parameter. The result will contain usage details of subscription belongs to GoldPackage alone. You can either fetch all the records at once or use the from and size query parameter to fetch subset of details. ", + "operationId" : "getAllSubscriptionUsage", + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "name", + "in" : "query", + "description" : "Subscription name to search for usage", + "required" : false, + "type" : "string", + "x-example" : "subscription1" + }, { + "name" : "package", + "in" : "query", + "description" : "Package name to search for usage", + "required" : false, + "type" : "string", + "x-example" : "package1" + }, { + "name" : "plan", + "in" : "query", + "description" : "Plan name to search for usage", + "required" : false, + "type" : "string", + "x-example" : "plan1" + }, { + "name" : "from", + "in" : "query", + "description" : "Starting index number of the usage result to fetch", + "required" : false, + "type" : "integer", + "x-example" : 12 + }, { + "name" : "size", + "in" : "query", + "description" : "Number of results to be fetched for the usage result", + "required" : false, + "type" : "integer", + "x-example" : 12 + }, { + "name" : "count", + "in" : "query", + "description" : "true to get the count for the search or all the usages available", + "required" : false, + "type" : "string", + "default" : "false", + "x-example" : "true", + "enum" : [ "true", "false" ] + } ], + "responses" : { + "200" : { + "description" : "This returns all the usage details of active subscriptions for current cycle after applying the filters if any", + "examples" : { + "application/json" : "[\n {\n \"successCount\": 0,\n \"failureCount\": 0,\n \"planId\": \"fa1a5343-40e6-41ef-932e-98cd55026ac5\",\n \"planName\": \"Plan2\",\n \"packageId\": \"bf799f44-1479-4af4-a594-065a2c4c23b9\",\n \"packageName\": \"Package2\",\n \"applicationId\": \"923bd0b4-ee59-44be-b13f-85c761e5114c\",\n \"applicationName\": \"Subscription1\",\n \"quotaAllowed\": 4,\n \"usedQuota\": 0,\n \"interval\": \"3\",\n \"intervalUnit\": \"minutes\",\n \"startTime\": 1627889239330,\n \"endTime\": 1627889419330,\n \"remainingPeriod\": \"Less than 1 Minute left\",\n \"quota\": \"4 / 3 Minutes\",\n \"remainingPeriodInMillis\": 52738\n }\n]" + }, + "schema" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/Usage" + } + } + }, + "401" : { + "description" : "This indicates that the invoker does not exists in API Gateway" + } + }, + "security" : [ { + "Basic" : [ ] + } ] + } + }, + "/subscriptions/{applicationId}" : { + "get" : { + "description" : "This endpoint is used to fetch the application details of the subscription.", + "operationId" : "getSubscriptionBySubscriptionID", + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "applicationId", + "in" : "path", + "description" : "Application id to view the details of the application", + "required" : true, + "type" : "string", + "x-example" : "923bd0b4-ee59-44be-b13f-85c761e5114c" + } ], + "responses" : { + "200" : { + "description" : "This will return the application details of the subscription. The API access key will be in plain text only when the user or the team if team work enabled have permission to view or manage the application.", + "examples" : { + "application/json" : "{\n \"applicationID\": \"923bd0b4-ee59-44be-b13f-85c761e5114c\",\n \"name\": \"Subscription1\",\n \"description\": \"subscribing API1\",\n \"owner\": \"Administrator\",\n \"identifiers\": [],\n \"accessTokens\": {\n \"apiAccessKey\": {\n \"apiAccessKey\": \"ee6f218e-e769-4fa4-80c4-820752c76f09\"\n }\n },\n \"creationDate\": \"2021-07-30 05:48:02 GMT\",\n \"lastModified\": \"2021-07-30 08:30:22 GMT\",\n \"lastUpdated\": 1627633822085,\n \"siteURLs\": [],\n \"jsOrigins\": [],\n \"version\": \"1.0\",\n \"packageName\": \"Package2\",\n \"packageId\": \"bf799f44-1479-4af4-a594-065a2c4c23b9\",\n \"planName\": \"Plan2\",\n \"planId\": \"fa1a5343-40e6-41ef-932e-98cd55026ac5\",\n \"provider\": \"APIGateway\",\n \"isSuspended\": false,\n \"authStrategyIds\": [\n \"5530e2ad-3e30-41c4-84b7-55a9b2b79a12\"\n ],\n \"subscription\": true,\n \"shell\": false\n}" + }, + "schema" : { + "$ref" : "#/definitions/Application" + } + }, + "401" : { + "description" : "This status shows either user didn't provide any user credential or user does not exists in API Gateway or user doesnt have permission to manage the application", + "examples" : { + "application/json" : "{\n \"errorDetails\": \"User doesn't have permission to manage this application\"\n}" + } + }, + "404" : { + "description" : "This status code shows that the subscription is not available. If team work is enabled, then the application id will be validated for your permission to manage. If not it will show 401 instead of 404 due to restriction.", + "examples" : { + "application/json" : "" + } + } + }, + "security" : [ { + "Basic" : [ ] + } ] + }, + "put" : { + "description" : "This is used switch the subscription from one package and plan to another package and plan combination. If approval is enabled, then the request will return old application detail as response and will create a request for approver to approve the switch. Till the request get approved the user can invoke old package APIs only. After the subscription is switched, the quota for the subscription will be reset and will be able to invoke the new APIs using the same API Key. To get the history of the subscription usage use the /transactionalEvents/_search endpoint", + "operationId" : "updateSubscription", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "description" : "", + "required" : false, + "schema" : { + "$ref" : "#/definitions/SubscriptionUpdateRequest" + }, + "x-examples" : { + "application/json" : "{\n \"newPackageId\" : \"bf799f44-1479-4af4-a594-065a2c4c23b9\",\n \"newPlanId\" : \"fa1a5343-40e6-41ef-932e-98cd55026ac5\",\n \"requesterComment\" : \"Switch subscription from package1, plan1 to package2, plan2\",\n \"requesterName\" : \"Administrator\"\n}" + } + }, { + "name" : "applicationId", + "in" : "path", + "description" : "Application id to update the subscription details", + "required" : true, + "type" : "string", + "x-example" : "923bd0b4-ee59-44be-b13f-85c761e5114c" + } ], + "responses" : { + "200" : { + "description" : "After the subscription is successfully switched to the mentioned new package and plan id the application details will be returned as response. If approval is enabled, the application detail returned will have reference old package and old plan reference, since the request will be triggered and will be pending in the approver queue for approval. After the approval, you can query /subscriptions/{applicationId} GET HTTP method to get the latest application details. If the owner of the application and invoking user is different the API key will be masked in the response.", + "examples" : { + "application/json" : "{\n \"applicationID\": \"923bd0b4-ee59-44be-b13f-85c761e5114c\",\n \"name\": \"Subscription1\",\n \"description\": \"subscribing API1\",\n \"owner\": \"Administrator\",\n \"identifiers\": [],\n \"accessTokens\": {\n \"apiAccessKey\": {\n \"apiAccessKey\": \"ee6f218e-e769-4fa4-80c4-820752c76f09\"\n }\n },\n \"creationDate\": \"2021-07-30 05:48:02 GMT\",\n \"lastModified\": \"2021-07-30 08:30:22 GMT\",\n \"lastUpdated\": 1627633822085,\n \"siteURLs\": [],\n \"jsOrigins\": [],\n \"version\": \"1.0\",\n \"packageName\": \"Package2\",\n \"packageId\": \"bf799f44-1479-4af4-a594-065a2c4c23b9\",\n \"planName\": \"Plan2\",\n \"planId\": \"fa1a5343-40e6-41ef-932e-98cd55026ac5\",\n \"provider\": \"APIGateway\",\n \"isSuspended\": false,\n \"authStrategyIds\": [\n \"5530e2ad-3e30-41c4-84b7-55a9b2b79a12\"\n ],\n \"subscription\": true,\n \"shell\": false\n}" + }, + "schema" : { + "$ref" : "#/definitions/Application" + } + }, + "400" : { + "description" : "If any of the provided details is not valid to enough to make the switch, then this status code will be returned", + "examples" : { + "application/json" : "{\n \"errorDetails\": \"Package Id - bf799f44-1479-4af4-a594-065a2c4c23b9 is not active\"\n}" + } + }, + "401" : { + "description" : "If the REST API invoking user does not exists or doesnt have manage application permission, then this error will be returned", + "examples" : { + "application/json" : "{\n \"errorDetails\": \" The user: subusernonmanageapp is not authorized to perform: PUT on the resource: subscriptions\"\n}" + } + }, + "404" : { + "description" : "If the subscription is not available, then this error will be returned", + "examples" : { + "application/json" : "{\n \"errorDetails\": \"Application Id - 923bd0b4-ee59-44be-b13f-85c761e5114c1 does not exist\"\n}" + } + } + }, + "security" : [ { + "Basic" : [ ] + } ] + }, + "delete" : { + "description" : "This endpoint is used to deleted subscriptions created in API Gateway. If approval is enabled for deletion of subscription then the a request will be created to approve. Till the request get approved the application will be suspended. If the delete request is approved then the application will be deleted and if the delete request is rejected then the application will be resumed from suspend state. ", + "operationId" : "deleteSubscriptionBySubscriptionID", + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "applicationId", + "in" : "path", + "description" : "Application id to delete the application", + "required" : true, + "type" : "string", + "x-example" : "923bd0b4-ee59-44be-b13f-85c761e5114c" + } ], + "responses" : { + "204" : { + "description" : "The response will not have any data and application will be deleted. If approval is enabled, still the response will be same actual deletion but the request for deletion of application will be triggered. In the mean time the application will be suspended and user will not be able to use the application. If the approver rejects the request, the application will be enabled again." + }, + "400" : { + "description" : "If the subscription mentioned to delete is not a subscription then this error will be returned.", + "examples" : { + "application/json" : "{\n \"errorDetails\": \"Application Id - 4a92a5c3-e19e-423f-9064-92c8d0a1a881 is not a subscription\"\n}" + } + }, + "401" : { + "description" : "If the REST API invoking user does not exists or doesnt have manage application permission, then you will get this error", + "examples" : { + "application/json" : "{\n \"errorDetails\": \" The user: nonAdminUser is not authorized to perform: DELETE on the resource: subscriptions\"\n}" + } + }, + "404" : { + "description" : "If the subscription is not available, then this error will be returned", + "examples" : { + "application/json" : "{}" + } + } + }, + "security" : [ { + "Basic" : [ ] + } ] + } + }, + "/subscriptions/{applicationId}/usage" : { + "get" : { + "description" : "This end point is used to fetch the aggregated usage of the application id for current cycle. This will return the usage only if the subscription is active. For the historic or detailed transaction wise usage details use /transactionalEvents/_search API.", + "operationId" : "getUsageBySubscriptionID", + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "applicationId", + "in" : "path", + "description" : "Application id to view the usage details of the application", + "required" : true, + "type" : "string", + "x-example" : "923bd0b4-ee59-44be-b13f-85c761e5114c" + } ], + "responses" : { + "200" : { + "description" : "This return the aggregated usage details of subscription for current cycle", + "examples" : { + "application/json" : "{\n \"successCount\": 0,\n \"failureCount\": 0,\n \"planId\": \"fa1a5343-40e6-41ef-932e-98cd55026ac5\",\n \"planName\": \"Plan2\",\n \"packageId\": \"bf799f44-1479-4af4-a594-065a2c4c23b9\",\n \"packageName\": \"Package2\",\n \"applicationId\": \"923bd0b4-ee59-44be-b13f-85c761e5114c\",\n \"applicationName\": \"Subscription1\",\n \"quotaAllowed\": 4,\n \"usedQuota\": 0,\n \"interval\": \"3\",\n \"intervalUnit\": \"minutes\",\n \"startTime\": 1627888159330,\n \"endTime\": 1627888339330,\n \"remainingPeriod\": \"Less than 1 Minute left\",\n \"quota\": \"4 / 3 Minutes\",\n \"remainingPeriodInMillis\": 35939\n}" + }, + "schema" : { + "$ref" : "#/definitions/Usage" + } + }, + "401" : { + "description" : "This indicates that the invoker does not exists in API Gateway or the invoker doesnt have permission to manage the application. ", + "examples" : { + "application/json" : "" + } + }, + "404" : { + "description" : "This indicates that the application specified is not found or the usage is not available for application", + "examples" : { + "application/json" : "" + } + } + }, + "security" : [ { + "Basic" : [ ] + } ] + } + } + }, + "securityDefinitions" : { + "Basic" : { + "description" : "API Gateway Administrator", + "type" : "basic" + } + }, + "definitions" : { + "API" : { + "type" : "object", + "discriminator" : "type", + "properties" : { + "apiTags" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "description" : { + "type" : "string" + }, + "serviceRegistryDisplayName" : { + "type" : "string" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/Tag" + } + }, + "title" : { + "type" : "string" + }, + "type" : { + "type" : "string" + }, + "uri" : { + "type" : "array", + "uniqueItems" : true, + "items" : { + "type" : "string" + } + }, + "version" : { + "type" : "string" + } + } + }, + "APIAccessKey" : { + "type" : "object", + "properties" : { + "apiAccessKey" : { + "type" : "string", + "description" : "API access key" + }, + "expirationDate" : { + "type" : "string", + "description" : "expiration date of the api key" + }, + "expirationInterval" : { + "type" : "string", + "description" : "expiration interval of the api key" + } + } + }, + "AbstractParameter" : { + "type" : "object", + "properties" : { + "allowEmptyValue" : { + "type" : "boolean", + "description" : "Sets the ability to pass empty-valued parameters. This is valid only for query parameters and allows sending a parameter with an empty value" + }, + "description" : { + "type" : "string", + "description" : "A brief description of the parameter. This could contain examples of use" + }, + "get$ref" : { + "type" : "string", + "description" : "The available paths and operations for the API" + }, + "in" : { + "type" : "string", + "description" : "The location of the parameter. Possible values are \"query\", \"header\", \"path\" or \"cookie\"" + }, + "name" : { + "type" : "string", + "description" : "The name of the parameter. Parameter names are case sensitive" + }, + "required" : { + "type" : "boolean", + "description" : "Determines whether this parameter is mandatory. If the parameter location is \"path\", this property is REQUIRED and its value MUST be true. Otherwise, the property MAY be included and its default value is false" + }, + "vendorExtensions" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + } + } + }, + "ActionImport" : { + "type" : "object", + "properties" : { + "action" : { + "type" : "string" + }, + "enabled" : { + "type" : "boolean" + } + } + }, + "Application" : { + "type" : "object", + "properties" : { + "accessTokens" : { + "$ref" : "#/definitions/ApplicationToken" + }, + "applicationID" : { + "type" : "string", + "description" : "unique identifier of an application" + }, + "authStrategyIds" : { + "type" : "array", + "description" : "Contains a list of JWT/Oauth/OpenID authentication strategy ids associated to the application", + "uniqueItems" : true, + "items" : { + "type" : "string" + } + }, + "contactEmails" : { + "type" : "array", + "description" : "list of email contacts", + "items" : { + "type" : "string" + } + }, + "creationDate" : { + "type" : "string", + "description" : "application creation time" + }, + "customFields" : { + "type" : "object", + "description" : "list of all custom fields", + "additionalProperties" : { + "type" : "object" + } + }, + "description" : { + "type" : "string", + "description" : "description of the application" + }, + "iconbyteArray" : { + "type" : "string", + "description" : "application icon byte array" + }, + "identifiers" : { + "type" : "array", + "description" : "list of all application identifiers", + "items" : { + "$ref" : "#/definitions/ApplicationIdentifier" + } + }, + "isSuspended" : { + "type" : "boolean", + "description" : "holds the suspended state of an application" + }, + "jsOrigins" : { + "type" : "array", + "description" : "list of all javascript origins", + "items" : { + "type" : "string" + } + }, + "lastModified" : { + "type" : "string", + "description" : "last modified time of the application" + }, + "lastUpdated" : { + "type" : "integer", + "format" : "int64", + "description" : "last modified time of the application in milliseconds" + }, + "name" : { + "type" : "string", + "description" : "name of the application" + }, + "owner" : { + "type" : "string", + "description" : "owner of the application" + }, + "primaryNode" : { + "$ref" : "#/definitions/Node" + }, + "shell" : { + "type" : "boolean" + }, + "siteURLs" : { + "type" : "array", + "description" : "list of all site URLs", + "items" : { + "type" : "string" + } + }, + "subscription" : { + "type" : "boolean" + }, + "version" : { + "type" : "string" + } + } + }, + "ApplicationIdentifier" : { + "type" : "object", + "properties" : { + "id" : { + "type" : "string", + "description" : "unique identifier of the application identifier" + }, + "key" : { + "type" : "string", + "description" : "identifier type" + }, + "name" : { + "type" : "string", + "description" : "name of the identifier" + }, + "value" : { + "type" : "array", + "description" : "list of identifier values", + "items" : { + "type" : "string" + } + } + } + }, + "ApplicationToken" : { + "type" : "object", + "properties" : { + "apiAccessKey" : { + "$ref" : "#/definitions/APIAccessKey" + }, + "oauth2Token" : { + "$ref" : "#/definitions/OAuth2Token" + } + } + }, + "ArrayModel" : { + "allOf" : [ { + "$ref" : "#/definitions/Model" + }, { + "type" : "object", + "properties" : { + "items" : { + "$ref" : "#/definitions/Property" + }, + "maxItems" : { + "type" : "integer", + "format" : "int32" + }, + "minItems" : { + "type" : "integer", + "format" : "int32" + } + } + } ] + }, + "ArrayProperty" : { + "allOf" : [ { + "$ref" : "#/definitions/Property" + }, { + "type" : "object", + "properties" : { + "items" : { + "$ref" : "#/definitions/Property" + }, + "maxItems" : { + "type" : "integer", + "format" : "int32" + }, + "minItems" : { + "type" : "integer", + "format" : "int32" + }, + "uniqueItems" : { + "type" : "boolean" + } + } + } ] + }, + "ArraySchema" : { + "allOf" : [ { + "$ref" : "#/definitions/Schema" + }, { + "type" : "object", + "properties" : { + "items" : { + "$ref" : "#/definitions/Schema" + }, + "type" : { + "type" : "string" + } + } + } ] + }, + "BaseIntegerProperty" : { + "allOf" : [ { + "$ref" : "#/definitions/Property" + }, { + "type" : "object", + "properties" : { + "exclusiveMaximum" : { + "type" : "boolean" + }, + "exclusiveMinimum" : { + "type" : "boolean" + }, + "maximum" : { + "type" : "number" + }, + "minimum" : { + "type" : "number" + }, + "multipleOf" : { + "type" : "number" + } + } + } ] + }, + "BodyParameter" : { + "allOf" : [ { + "$ref" : "#/definitions/Parameter" + }, { + "type" : "object", + "properties" : { + "allowEmptyValue" : { + "type" : "boolean", + "description" : "Sets the ability to pass empty-valued parameters. This is valid only for query parameters and allows sending a parameter with an empty value" + }, + "description" : { + "type" : "string", + "description" : "A brief description of the parameter. This could contain examples of use" + }, + "examples" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + } + }, + "get$ref" : { + "type" : "string", + "description" : "The available paths and operations for the API" + }, + "in" : { + "type" : "string", + "description" : "The location of the parameter. Possible values are \"query\", \"header\", \"path\" or \"cookie\"" + }, + "name" : { + "type" : "string", + "description" : "The name of the parameter. Parameter names are case sensitive" + }, + "required" : { + "type" : "boolean", + "description" : "Determines whether this parameter is mandatory. If the parameter location is \"path\", this property is REQUIRED and its value MUST be true. Otherwise, the property MAY be included and its default value is false" + }, + "schema" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/definitions/Model" + } + } + } + } ] + }, + "BooleanProperty" : { + "allOf" : [ { + "$ref" : "#/definitions/Property" + }, { + "type" : "object", + "properties" : { + "enum" : { + "type" : "array", + "items" : { + "type" : "boolean" + } + } + } + } ] + }, + "BooleanSchema" : { + "allOf" : [ { + "$ref" : "#/definitions/Schema" + }, { + "type" : "object", + "properties" : { + "type" : { + "type" : "string" + } + } + } ] + }, + "Callback" : { + "type" : "object", + "properties" : { + "callbacksMap" : { + "type" : "object", + "description" : "A Path Item Object used to define a callback request and expected responses", + "additionalProperties" : { + "$ref" : "#/definitions/Path" + } + }, + "get$ref" : { + "type" : "string" + }, + "vendorExtensions" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + } + } + }, + "Components" : { + "type" : "object", + "properties" : { + "callbacks" : { + "type" : "object", + "description" : "An object to hold reusable callback objects", + "additionalProperties" : { + "$ref" : "#/definitions/Callback" + } + }, + "examples" : { + "type" : "object", + "description" : "An object to hold reusable example objects", + "additionalProperties" : { + "$ref" : "#/definitions/Example" + } + }, + "headers" : { + "type" : "object", + "description" : "An object to hold reusable header objects", + "additionalProperties" : { + "$ref" : "#/definitions/Header" + } + }, + "links" : { + "type" : "object", + "description" : "An object to hold reusable link objects", + "additionalProperties" : { + "$ref" : "#/definitions/Link" + } + }, + "parameters" : { + "type" : "object", + "description" : "An object to hold reusable parameter objects", + "additionalProperties" : { + "$ref" : "#/definitions/Parameter" + } + }, + "requestBodies" : { + "type" : "object", + "description" : "An object to hold reusable requestBody objects", + "additionalProperties" : { + "$ref" : "#/definitions/RequestBody" + } + }, + "responses" : { + "type" : "object", + "description" : "An object to hold reusable response objects", + "additionalProperties" : { + "$ref" : "#/definitions/Response" + } + }, + "schemas" : { + "type" : "object", + "description" : "An object to hold reusable schema objects", + "additionalProperties" : { + "$ref" : "#/definitions/Schema" + } + }, + "securitySchemes" : { + "type" : "object", + "description" : "An object to hold reusable securityScheme objects", + "additionalProperties" : { + "$ref" : "#/definitions/SecurityScheme" + } + }, + "vendorExtensions" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + } + } + }, + "ComposedModel" : { + "allOf" : [ { + "$ref" : "#/definitions/Model" + }, { + "type" : "object", + "properties" : { + "allOf" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/Model" + } + }, + "anyOf" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/Model" + } + }, + "child" : { + "$ref" : "#/definitions/Model" + }, + "interfaces" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/Model" + } + }, + "oneOf" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/Model" + } + }, + "parent" : { + "$ref" : "#/definitions/Model" + } + } + } ] + }, + "ComposedProperty" : { + "allOf" : [ { + "$ref" : "#/definitions/Property" + }, { + "type" : "object", + "properties" : { + "allOf" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/Property" + } + }, + "anyOf" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/Property" + } + }, + "oneOf" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/Property" + } + } + } + } ] + }, + "ComposedSchema" : { + "allOf" : [ { + "$ref" : "#/definitions/Schema" + }, { + "type" : "object", + "properties" : { + "allOf" : { + "type" : "array", + "description" : "Must be valid against all of the subschemas", + "items" : { + "$ref" : "#/definitions/Schema" + } + }, + "anyOf" : { + "type" : "array", + "description" : "Must be valid against any of the subschemas", + "items" : { + "$ref" : "#/definitions/Schema" + } + }, + "oneOf" : { + "type" : "array", + "description" : "Must be valid against exactly one of the subschemas", + "items" : { + "$ref" : "#/definitions/Schema" + } + } + } + } ] + }, + "Contact" : { + "type" : "object", + "properties" : { + "email" : { + "type" : "string", + "description" : "The email address of the contact person/organization" + }, + "name" : { + "type" : "string", + "description" : "The identifying name of the contact person/organization" + }, + "url" : { + "type" : "string", + "description" : "The URL pointing to the contact information" + } + } + }, + "CookieParameter" : { + "allOf" : [ { + "$ref" : "#/definitions/Parameter" + }, { + "type" : "object", + "properties" : { + "_enum" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "allowEmptyValue" : { + "type" : "boolean", + "description" : "Sets the ability to pass empty-valued parameters. This is valid only for query parameters and allows sending a parameter with an empty value" + }, + "allowReserved" : { + "type" : "boolean", + "description" : "Determines whether the parameter value SHOULD allow reserved characters, as defined by RFC3986 :/?#[]@!$&'()*+,;= to be included without percent-encoding. This property only applies to parameters with an in value of query. The default value is false" + }, + "content" : { + "type" : "object", + "description" : "A map containing the representations for the parameter. The key is the media type and the value describes it. The map MUST only contain one entry", + "additionalProperties" : { + "$ref" : "#/definitions/MediaType" + } + }, + "default" : { + "type" : "string" + }, + "deprecated" : { + "type" : "boolean", + "description" : "Determines whether this parameter is mandatory. If the parameter location is \"path\", this property is REQUIRED and its value MUST be true. Otherwise, the property MAY be included and its default value is false" + }, + "description" : { + "type" : "string", + "description" : "A brief description of the parameter. This could contain examples of use" + }, + "examples" : { + "type" : "object", + "description" : "Examples of the media type. Each example SHOULD contain a value in the correct format as specified in the parameter encoding. The examples field is mutually exclusive of the example field. Furthermore, if referencing a schema which contains an example, the examples value SHALL override the example provided by the schema", + "additionalProperties" : { + "$ref" : "#/definitions/Example" + } + }, + "explode" : { + "type" : "boolean", + "description" : "When this is true, parameter values of type array or object generate separate parameters for each value of the array or key-value pair of the map. For other types of parameters this property has no effect. When style is form, the default value is true. For all other styles, the default value is false" + }, + "extendedExample" : { + "type" : "object", + "description" : "Example of the media type. The example SHOULD match the specified schema and encoding properties if present. The example field is mutually exclusive of the examples field. Furthermore, if referencing a schema which contains an example, the example value SHALL override the example provided by the schema. To represent examples of media types that cannot naturally be represented in JSON or YAML, a string value can contain the example with escaping where necessary" + }, + "get$ref" : { + "type" : "string", + "description" : "The available paths and operations for the API" + }, + "in" : { + "type" : "string", + "description" : "The location of the parameter. Possible values are \"query\", \"header\", \"path\" or \"cookie\"" + }, + "name" : { + "type" : "string", + "description" : "The name of the parameter. Parameter names are case sensitive" + }, + "parameterSchema" : { + "$ref" : "#/definitions/Schema" + }, + "required" : { + "type" : "boolean", + "description" : "Determines whether this parameter is mandatory. If the parameter location is \"path\", this property is REQUIRED and its value MUST be true. Otherwise, the property MAY be included and its default value is false" + }, + "style" : { + "type" : "string", + "description" : "Describes how the parameter value will be serialized depending on the type of the parameter value. Default values (based on value of in): for query - form; for path - simple; for header - simple; for cookie - form", + "enum" : [ "MATRIX", "LABEL", "FORM", "SIMPLE", "SPACEDELIMITED", "PIPEDELIMITED", "DEEPOBJECT" ] + }, + "xpath" : { + "$ref" : "#/definitions/Xpath" + } + } + } ] + }, + "Cost" : { + "type" : "object", + "properties" : { + "value" : { + "type" : "string", + "description" : "Cost of the plan." + } + }, + "description" : "Cost details of a plan. It will be used for user information only and wont be enforced." + }, + "DateTimeProperty" : { + "allOf" : [ { + "$ref" : "#/definitions/Property" + }, { + "type" : "object", + "properties" : { + "enum" : { + "type" : "array", + "items" : { + "type" : "object" + } + } + } + } ] + }, + "DecimalProperty" : { + "allOf" : [ { + "$ref" : "#/definitions/Property" + }, { + "type" : "object", + "properties" : { + "exclusiveMaximum" : { + "type" : "boolean" + }, + "exclusiveMinimum" : { + "type" : "boolean" + }, + "maximum" : { + "type" : "number" + }, + "minimum" : { + "type" : "number" + }, + "multipleOf" : { + "type" : "number" + } + } + } ] + }, + "EntitySet" : { + "type" : "object", + "properties" : { + "enabled" : { + "type" : "boolean" + }, + "entityType" : { + "type" : "string" + }, + "parameters" : { + "type" : "object", + "additionalProperties" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + } + } + }, + "EntityType" : { + "type" : "object", + "properties" : { + "methods" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/definitions/MethodParameters" + } + }, + "navigationProperties" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/definitions/EntitySet" + } + }, + "properties" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + } + } + }, + "Example" : { + "type" : "object", + "properties" : { + "description" : { + "type" : "string", + "description" : "Long description for the example" + }, + "externalValue" : { + "type" : "string", + "description" : "A URL that points to the literal example. This provides the capability to reference examples that cannot easily be included in JSON or YAML documents. The value field and externalValue field are mutually exclusive" + }, + "get$ref" : { + "type" : "string" + }, + "summary" : { + "type" : "string", + "description" : "Short description for the example" + }, + "value" : { + "type" : "object", + "description" : "Embedded literal example. The value field and externalValue field are mutually exclusive. To represent examples of media types that cannot naturally represented in JSON or YAML, use a string value to contain the example, escaping where necessary" + }, + "vendorExtensions" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + } + } + }, + "ExternalDocs" : { + "type" : "object", + "properties" : { + "description" : { + "type" : "string", + "description" : "A short description of the target documentation" + }, + "url" : { + "type" : "string", + "description" : "The URL for the target documentation" + }, + "vendorExtensions" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + } + } + }, + "FormParameter" : { + "allOf" : [ { + "$ref" : "#/definitions/Parameter" + }, { + "type" : "object", + "properties" : { + "_enum" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "allowEmptyValue" : { + "type" : "boolean", + "description" : "Sets the ability to pass empty-valued parameters. This is valid only for query parameters and allows sending a parameter with an empty value" + }, + "allowReserved" : { + "type" : "boolean", + "description" : "Determines whether the parameter value SHOULD allow reserved characters, as defined by RFC3986 :/?#[]@!$&'()*+,;= to be included without percent-encoding. This property only applies to parameters with an in value of query. The default value is false" + }, + "content" : { + "type" : "object", + "description" : "A map containing the representations for the parameter. The key is the media type and the value describes it. The map MUST only contain one entry", + "additionalProperties" : { + "$ref" : "#/definitions/MediaType" + } + }, + "default" : { + "type" : "string" + }, + "deprecated" : { + "type" : "boolean", + "description" : "Determines whether this parameter is mandatory. If the parameter location is \"path\", this property is REQUIRED and its value MUST be true. Otherwise, the property MAY be included and its default value is false" + }, + "description" : { + "type" : "string", + "description" : "A brief description of the parameter. This could contain examples of use" + }, + "examples" : { + "type" : "object", + "description" : "Examples of the media type. Each example SHOULD contain a value in the correct format as specified in the parameter encoding. The examples field is mutually exclusive of the example field. Furthermore, if referencing a schema which contains an example, the examples value SHALL override the example provided by the schema", + "additionalProperties" : { + "$ref" : "#/definitions/Example" + } + }, + "explode" : { + "type" : "boolean", + "description" : "When this is true, parameter values of type array or object generate separate parameters for each value of the array or key-value pair of the map. For other types of parameters this property has no effect. When style is form, the default value is true. For all other styles, the default value is false" + }, + "extendedExample" : { + "type" : "object", + "description" : "Example of the media type. The example SHOULD match the specified schema and encoding properties if present. The example field is mutually exclusive of the examples field. Furthermore, if referencing a schema which contains an example, the example value SHALL override the example provided by the schema. To represent examples of media types that cannot naturally be represented in JSON or YAML, a string value can contain the example with escaping where necessary" + }, + "get$ref" : { + "type" : "string", + "description" : "The available paths and operations for the API" + }, + "in" : { + "type" : "string", + "description" : "The location of the parameter. Possible values are \"query\", \"header\", \"path\" or \"cookie\"" + }, + "name" : { + "type" : "string", + "description" : "The name of the parameter. Parameter names are case sensitive" + }, + "parameterSchema" : { + "$ref" : "#/definitions/Schema" + }, + "required" : { + "type" : "boolean", + "description" : "Determines whether this parameter is mandatory. If the parameter location is \"path\", this property is REQUIRED and its value MUST be true. Otherwise, the property MAY be included and its default value is false" + }, + "style" : { + "type" : "string", + "description" : "Describes how the parameter value will be serialized depending on the type of the parameter value. Default values (based on value of in): for query - form; for path - simple; for header - simple; for cookie - form", + "enum" : [ "MATRIX", "LABEL", "FORM", "SIMPLE", "SPACEDELIMITED", "PIPEDELIMITED", "DEEPOBJECT" ] + }, + "xpath" : { + "$ref" : "#/definitions/Xpath" + } + } + } ] + }, + "FunctionImport" : { + "type" : "object", + "properties" : { + "enabled" : { + "type" : "boolean" + }, + "function" : { + "type" : "string" + } + } + }, + "GatewaySchema" : { + "allOf" : [ { + "$ref" : "#/definitions/Schema" + }, { + "type" : "object", + "properties" : { + "schema" : { + "type" : "string" + }, + "type" : { + "type" : "string" + } + } + } ] + }, + "GqlArgument" : { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "name" : { + "type" : "string", + "description" : "Name of the argument" + }, + "value" : { + "$ref" : "#/definitions/GqlValue" + } + } + }, + "GqlArrayValue" : { + "allOf" : [ { + "$ref" : "#/definitions/GqlValue" + }, { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "values" : { + "type" : "array", + "description" : "List of values", + "items" : { + "$ref" : "#/definitions/GqlValue" + } + } + } + } ] + }, + "GqlBooleanValue" : { + "allOf" : [ { + "$ref" : "#/definitions/GqlValue" + }, { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "value" : { + "type" : "boolean", + "description" : "Boolean value" + } + } + } ] + }, + "GqlComment" : { + "type" : "object", + "properties" : { + "content" : { + "type" : "string", + "description" : "Comment value" + } + } + }, + "GqlDescription" : { + "type" : "object", + "properties" : { + "content" : { + "type" : "string", + "description" : "Description value" + } + } + }, + "GqlDirective" : { + "type" : "object", + "properties" : { + "arguments" : { + "type" : "array", + "description" : "List of arguments", + "items" : { + "$ref" : "#/definitions/GqlArgument" + } + }, + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "name" : { + "type" : "string", + "description" : "Name of the directive" + } + } + }, + "GqlDirectiveDefinition" : { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "description" : { + "$ref" : "#/definitions/GqlDescription" + }, + "directiveLocations" : { + "type" : "array", + "description" : "List of directive locations", + "items" : { + "$ref" : "#/definitions/GqlDirectiveLocation" + } + }, + "inputValueDefinitions" : { + "type" : "array", + "description" : "List of input value type definitions", + "items" : { + "$ref" : "#/definitions/GqlInputValueDefinition" + } + }, + "name" : { + "type" : "string", + "description" : "Name of the directive" + } + } + }, + "GqlDirectiveLocation" : { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "name" : { + "type" : "string", + "description" : "Name of the directive location" + } + } + }, + "GqlEnumTypeExtensionDefinition" : { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "description" : { + "$ref" : "#/definitions/GqlDescription" + }, + "directives" : { + "type" : "array", + "description" : "List of directives", + "items" : { + "$ref" : "#/definitions/GqlDirective" + } + }, + "directivesByName" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/definitions/GqlDirective" + } + }, + "enumValueDefinitions" : { + "type" : "array", + "description" : "List of enum value definition", + "items" : { + "$ref" : "#/definitions/GqlEnumValueDefinition" + } + }, + "name" : { + "type" : "string", + "description" : "Name of the enum type definition" + } + } + }, + "GqlEnumValue" : { + "allOf" : [ { + "$ref" : "#/definitions/GqlValue" + }, { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "name" : { + "type" : "string", + "description" : "Name of the enum value" + } + } + } ] + }, + "GqlEnumValueDefinition" : { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "description" : { + "$ref" : "#/definitions/GqlDescription" + }, + "directives" : { + "type" : "array", + "description" : "List of directives", + "items" : { + "$ref" : "#/definitions/GqlDirective" + } + }, + "directivesByName" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/definitions/GqlDirective" + } + }, + "name" : { + "type" : "string", + "description" : "Name of the enum value definition" + } + } + }, + "GqlFieldDefinition" : { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "description" : { + "$ref" : "#/definitions/GqlDescription" + }, + "directives" : { + "type" : "array", + "description" : "List of directives", + "items" : { + "$ref" : "#/definitions/GqlDirective" + } + }, + "directivesByName" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/definitions/GqlDirective" + } + }, + "enabled" : { + "type" : "boolean", + "description" : "Flag to specify if this field is enabled or not" + }, + "inputValueDefinitions" : { + "type" : "array", + "description" : "List of input value type definitions", + "items" : { + "$ref" : "#/definitions/GqlInputValueDefinition" + } + }, + "name" : { + "type" : "string", + "description" : "Name of the field definition" + }, + "type" : { + "$ref" : "#/definitions/GqlType" + } + } + }, + "GqlFloatValue" : { + "allOf" : [ { + "$ref" : "#/definitions/GqlValue" + }, { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "value" : { + "type" : "number", + "description" : "Decimal value" + } + } + } ] + }, + "GqlInputObjectTypeExtensionDefinition" : { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "description" : { + "$ref" : "#/definitions/GqlDescription" + }, + "directives" : { + "type" : "array", + "description" : "List of directives", + "items" : { + "$ref" : "#/definitions/GqlDirective" + } + }, + "directivesByName" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/definitions/GqlDirective" + } + }, + "inputValueDefinitions" : { + "type" : "array", + "description" : "List of input value type definitions", + "items" : { + "$ref" : "#/definitions/GqlInputValueDefinition" + } + }, + "name" : { + "type" : "string", + "description" : "Name of the input object type definition" + } + } + }, + "GqlInputValueDefinition" : { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "defaultValue" : { + "$ref" : "#/definitions/GqlValue" + }, + "description" : { + "$ref" : "#/definitions/GqlDescription" + }, + "directives" : { + "type" : "array", + "description" : "List of directives", + "items" : { + "$ref" : "#/definitions/GqlDirective" + } + }, + "directivesByName" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/definitions/GqlDirective" + } + }, + "name" : { + "type" : "string", + "description" : "Name of the input value definition" + }, + "type" : { + "$ref" : "#/definitions/GqlType" + } + } + }, + "GqlIntValue" : { + "allOf" : [ { + "$ref" : "#/definitions/GqlValue" + }, { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "value" : { + "type" : "integer", + "description" : "Integer value" + } + } + } ] + }, + "GqlInterfaceTypeDefinition" : { + "allOf" : [ { + "$ref" : "#/definitions/GqlTypeDefinition" + }, { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "description" : { + "$ref" : "#/definitions/GqlDescription" + }, + "directives" : { + "type" : "array", + "description" : "List of directives", + "items" : { + "$ref" : "#/definitions/GqlDirective" + } + }, + "fieldDefinitions" : { + "type" : "array", + "description" : "List of field definitions", + "items" : { + "$ref" : "#/definitions/GqlFieldDefinition" + } + }, + "implements" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/GqlType" + } + }, + "name" : { + "type" : "string", + "description" : "Name of the interface type definition" + } + } + } ] + }, + "GqlInterfaceTypeExtensionDefinition" : { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "description" : { + "$ref" : "#/definitions/GqlDescription" + }, + "directives" : { + "type" : "array", + "description" : "List of directives", + "items" : { + "$ref" : "#/definitions/GqlDirective" + } + }, + "directivesByName" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/definitions/GqlDirective" + } + }, + "fieldDefinitions" : { + "type" : "array", + "description" : "List of field definitions", + "items" : { + "$ref" : "#/definitions/GqlFieldDefinition" + } + }, + "implements" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/GqlType" + } + }, + "name" : { + "type" : "string", + "description" : "Name of the interface type definition" + } + } + }, + "GqlListType" : { + "allOf" : [ { + "$ref" : "#/definitions/GqlType" + }, { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "type" : { + "$ref" : "#/definitions/GqlType" + } + } + } ] + }, + "GqlNonNullType" : { + "allOf" : [ { + "$ref" : "#/definitions/GqlType" + }, { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "type" : { + "$ref" : "#/definitions/GqlType" + } + } + } ] + }, + "GqlNullValue" : { + "allOf" : [ { + "$ref" : "#/definitions/GqlValue" + }, { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + } + } + } ] + }, + "GqlObjectField" : { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "name" : { + "type" : "string", + "description" : "Name of the object field" + }, + "value" : { + "$ref" : "#/definitions/GqlValue" + } + } + }, + "GqlObjectTypeExtensionDefinition" : { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "description" : { + "$ref" : "#/definitions/GqlDescription" + }, + "directives" : { + "type" : "array", + "description" : "List of directives", + "items" : { + "$ref" : "#/definitions/GqlDirective" + } + }, + "directivesByName" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/definitions/GqlDirective" + } + }, + "fieldDefinitions" : { + "type" : "array", + "description" : "List of field definitions", + "items" : { + "$ref" : "#/definitions/GqlFieldDefinition" + } + }, + "implements" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/GqlType" + } + }, + "name" : { + "type" : "string", + "description" : "Name of the object type definition" + } + } + }, + "GqlObjectValue" : { + "allOf" : [ { + "$ref" : "#/definitions/GqlValue" + }, { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "objectFields" : { + "type" : "array", + "description" : "List of object fields", + "items" : { + "$ref" : "#/definitions/GqlObjectField" + } + } + } + } ] + }, + "GqlOperationTypeDefinition" : { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "enabled" : { + "type" : "boolean", + "description" : "Flag to specify if this field is enabled or not" + }, + "name" : { + "type" : "string", + "description" : "Name of the operation type definition" + }, + "typeName" : { + "$ref" : "#/definitions/GqlTypeName" + } + } + }, + "GqlSDLDefinitions" : { + "type" : "object", + "properties" : { + "directiveDefinitions" : { + "type" : "object", + "description" : "GraphQL directive definitions", + "additionalProperties" : { + "$ref" : "#/definitions/GqlDirectiveDefinition" + } + }, + "enumTypeExtensions" : { + "type" : "object", + "description" : "GraphQL extended enum type definitions", + "additionalProperties" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/GqlEnumTypeExtensionDefinition" + } + } + }, + "inputObjectTypeExtensions" : { + "type" : "object", + "description" : "GraphQL extended input object type definitions", + "additionalProperties" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/GqlInputObjectTypeExtensionDefinition" + } + } + }, + "interfaceTypeExtensions" : { + "type" : "object", + "description" : "GraphQL extended interface type definitions", + "additionalProperties" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/GqlInterfaceTypeExtensionDefinition" + } + } + }, + "objectTypeExtensions" : { + "type" : "object", + "description" : "GraphQL extended object type definitions", + "additionalProperties" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/GqlObjectTypeExtensionDefinition" + } + } + }, + "scalarTypeExtensions" : { + "type" : "object", + "description" : "GraphQL extended scalar type definitions", + "additionalProperties" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/GqlScalarTypeExtensionDefinition" + } + } + }, + "scalarTypes" : { + "type" : "object", + "description" : "GraphQL scalar type definitions", + "additionalProperties" : { + "$ref" : "#/definitions/GqlScalarTypeDefinition" + } + }, + "schemaDefinition" : { + "$ref" : "#/definitions/GqlSchemaDefinition" + }, + "types" : { + "type" : "object", + "description" : "GraphQL type definitions such as Object type, Union, Interface, etc", + "additionalProperties" : { + "$ref" : "#/definitions/GqlTypeDefinition" + } + }, + "unionTypeExtensions" : { + "type" : "object", + "description" : "GraphQL extended union type definitions", + "additionalProperties" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/GqlUnionTypeExtensionDefinition" + } + } + } + } + }, + "GqlScalarTypeDefinition" : { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "description" : { + "$ref" : "#/definitions/GqlDescription" + }, + "directives" : { + "type" : "array", + "description" : "List of directives", + "items" : { + "$ref" : "#/definitions/GqlDirective" + } + }, + "directivesByName" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/definitions/GqlDirective" + } + }, + "name" : { + "type" : "string", + "description" : "Name of the scalar type definition" + } + } + }, + "GqlScalarTypeExtensionDefinition" : { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "description" : { + "$ref" : "#/definitions/GqlDescription" + }, + "directives" : { + "type" : "array", + "description" : "List of directives", + "items" : { + "$ref" : "#/definitions/GqlDirective" + } + }, + "directivesByName" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/definitions/GqlDirective" + } + }, + "name" : { + "type" : "string", + "description" : "Name of the scalar type definition" + } + } + }, + "GqlSchemaDefinition" : { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "description" : { + "$ref" : "#/definitions/GqlDescription" + }, + "directives" : { + "type" : "array", + "description" : "List of directives", + "items" : { + "$ref" : "#/definitions/GqlDirective" + } + }, + "directivesByName" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/definitions/GqlDirective" + } + }, + "operationTypeDefinitions" : { + "type" : "array", + "description" : "List of operation type definitions", + "items" : { + "$ref" : "#/definitions/GqlOperationTypeDefinition" + } + } + } + }, + "GqlStringValue" : { + "allOf" : [ { + "$ref" : "#/definitions/GqlValue" + }, { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "value" : { + "type" : "string", + "description" : "String value" + } + } + } ] + }, + "GqlType" : { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + } + } + }, + "GqlTypeDefinition" : { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "directives" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/GqlDirective" + } + }, + "directivesByName" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/definitions/GqlDirective" + } + }, + "name" : { + "type" : "string" + } + } + }, + "GqlTypeName" : { + "allOf" : [ { + "$ref" : "#/definitions/GqlType" + }, { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "name" : { + "type" : "string", + "description" : "Type" + } + } + } ] + }, + "GqlUnionTypeExtensionDefinition" : { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "description" : { + "$ref" : "#/definitions/GqlDescription" + }, + "directives" : { + "type" : "array", + "description" : "List of directives", + "items" : { + "$ref" : "#/definitions/GqlDirective" + } + }, + "directivesByName" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/definitions/GqlDirective" + } + }, + "memberTypes" : { + "type" : "array", + "description" : "The list union types", + "items" : { + "$ref" : "#/definitions/GqlType" + } + }, + "name" : { + "type" : "string", + "description" : "Name of the union type definition" + } + } + }, + "GqlValue" : { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + } + } + }, + "GqlVariableReference" : { + "allOf" : [ { + "$ref" : "#/definitions/GqlValue" + }, { + "type" : "object", + "properties" : { + "comments" : { + "type" : "array", + "description" : "List of comments", + "items" : { + "$ref" : "#/definitions/GqlComment" + } + }, + "name" : { + "type" : "string", + "description" : "Name of the variable reference" + } + } + } ] + }, + "GraphQLAPI" : { + "allOf" : [ { + "$ref" : "#/definitions/API" + }, { + "type" : "object", + "properties" : { + "apiTags" : { + "type" : "array", + "description" : "A list of API level tags for API documentation control. Tags can be used for logical grouping of operations by resources or any other qualifier", + "items" : { + "type" : "string" + } + }, + "nativeEndpoints" : { + "type" : "array", + "description" : "Native endpoints", + "items" : { + "$ref" : "#/definitions/NativeEndpoint" + } + }, + "sdlDefinitions" : { + "$ref" : "#/definitions/GqlSDLDefinitions" + }, + "serviceRegistryDisplayName" : { + "type" : "string", + "description" : "The name of the API in service registry when the API is published to a service registry." + }, + "tags" : { + "type" : "array", + "description" : "A list of tags with additional metadata", + "items" : { + "$ref" : "#/definitions/Tag" + } + } + } + } ] + }, + "Header" : { + "type" : "object", + "properties" : { + "_enum" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "allowEmptyValue" : { + "type" : "boolean", + "description" : "Sets the ability to pass empty-valued parameters. This is valid only for query parameters and allows sending a parameter with an empty value" + }, + "allowReserved" : { + "type" : "boolean", + "description" : "Determines whether the parameter value SHOULD allow reserved characters, as defined by RFC3986 :/?#[]@!$&'()*+,;= to be included without percent-encoding. This property only applies to parameters with an in value of query. The default value is false" + }, + "content" : { + "type" : "object", + "description" : "A map containing the representations for the parameter. The key is the media type and the value describes it. The map MUST only contain one entry", + "additionalProperties" : { + "$ref" : "#/definitions/MediaType" + } + }, + "default" : { + "type" : "string" + }, + "deprecated" : { + "type" : "boolean", + "description" : "Determines whether this parameter is mandatory. If the parameter location is \"path\", this property is REQUIRED and its value MUST be true. Otherwise, the property MAY be included and its default value is false" + }, + "description" : { + "type" : "string", + "description" : "A brief description of the parameter. This could contain examples of use" + }, + "examples" : { + "type" : "object", + "description" : "Examples of the media type. Each example SHOULD contain a value in the correct format as specified in the parameter encoding. The examples field is mutually exclusive of the example field. Furthermore, if referencing a schema which contains an example, the examples value SHALL override the example provided by the schema", + "additionalProperties" : { + "$ref" : "#/definitions/Example" + } + }, + "explode" : { + "type" : "boolean", + "description" : "When this is true, parameter values of type array or object generate separate parameters for each value of the array or key-value pair of the map. For other types of parameters this property has no effect. When style is form, the default value is true. For all other styles, the default value is false" + }, + "extendedExample" : { + "type" : "object", + "description" : "Example of the media type. The example SHOULD match the specified schema and encoding properties if present. The example field is mutually exclusive of the examples field. Furthermore, if referencing a schema which contains an example, the example value SHALL override the example provided by the schema. To represent examples of media types that cannot naturally be represented in JSON or YAML, a string value can contain the example with escaping where necessary" + }, + "get$ref" : { + "type" : "string", + "description" : "The available paths and operations for the API" + }, + "in" : { + "type" : "string", + "description" : "The location of the parameter. Possible values are \"query\", \"header\", \"path\" or \"cookie\"" + }, + "name" : { + "type" : "string", + "description" : "The name of the parameter. Parameter names are case sensitive" + }, + "parameterSchema" : { + "$ref" : "#/definitions/Schema" + }, + "required" : { + "type" : "boolean", + "description" : "Determines whether this parameter is mandatory. If the parameter location is \"path\", this property is REQUIRED and its value MUST be true. Otherwise, the property MAY be included and its default value is false" + }, + "style" : { + "type" : "string", + "description" : "Describes how the parameter value will be serialized depending on the type of the parameter value. Default values (based on value of in): for query - form; for path - simple; for header - simple; for cookie - form", + "enum" : [ "MATRIX", "LABEL", "FORM", "SIMPLE", "SPACEDELIMITED", "PIPEDELIMITED", "DEEPOBJECT" ] + }, + "vendorExtensions" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + }, + "xpath" : { + "$ref" : "#/definitions/Xpath" + } + } + }, + "HeaderParameter" : { + "allOf" : [ { + "$ref" : "#/definitions/Parameter" + }, { + "type" : "object", + "properties" : { + "_enum" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "allowEmptyValue" : { + "type" : "boolean", + "description" : "Sets the ability to pass empty-valued parameters. This is valid only for query parameters and allows sending a parameter with an empty value" + }, + "allowReserved" : { + "type" : "boolean", + "description" : "Determines whether the parameter value SHOULD allow reserved characters, as defined by RFC3986 :/?#[]@!$&'()*+,;= to be included without percent-encoding. This property only applies to parameters with an in value of query. The default value is false" + }, + "content" : { + "type" : "object", + "description" : "A map containing the representations for the parameter. The key is the media type and the value describes it. The map MUST only contain one entry", + "additionalProperties" : { + "$ref" : "#/definitions/MediaType" + } + }, + "default" : { + "type" : "string" + }, + "deprecated" : { + "type" : "boolean", + "description" : "Determines whether this parameter is mandatory. If the parameter location is \"path\", this property is REQUIRED and its value MUST be true. Otherwise, the property MAY be included and its default value is false" + }, + "description" : { + "type" : "string", + "description" : "A brief description of the parameter. This could contain examples of use" + }, + "examples" : { + "type" : "object", + "description" : "Examples of the media type. Each example SHOULD contain a value in the correct format as specified in the parameter encoding. The examples field is mutually exclusive of the example field. Furthermore, if referencing a schema which contains an example, the examples value SHALL override the example provided by the schema", + "additionalProperties" : { + "$ref" : "#/definitions/Example" + } + }, + "explode" : { + "type" : "boolean", + "description" : "When this is true, parameter values of type array or object generate separate parameters for each value of the array or key-value pair of the map. For other types of parameters this property has no effect. When style is form, the default value is true. For all other styles, the default value is false" + }, + "extendedExample" : { + "type" : "object", + "description" : "Example of the media type. The example SHOULD match the specified schema and encoding properties if present. The example field is mutually exclusive of the examples field. Furthermore, if referencing a schema which contains an example, the example value SHALL override the example provided by the schema. To represent examples of media types that cannot naturally be represented in JSON or YAML, a string value can contain the example with escaping where necessary" + }, + "get$ref" : { + "type" : "string", + "description" : "The available paths and operations for the API" + }, + "in" : { + "type" : "string", + "description" : "The location of the parameter. Possible values are \"query\", \"header\", \"path\" or \"cookie\"" + }, + "name" : { + "type" : "string", + "description" : "The name of the parameter. Parameter names are case sensitive" + }, + "parameterSchema" : { + "$ref" : "#/definitions/Schema" + }, + "required" : { + "type" : "boolean", + "description" : "Determines whether this parameter is mandatory. If the parameter location is \"path\", this property is REQUIRED and its value MUST be true. Otherwise, the property MAY be included and its default value is false" + }, + "style" : { + "type" : "string", + "description" : "Describes how the parameter value will be serialized depending on the type of the parameter value. Default values (based on value of in): for query - form; for path - simple; for header - simple; for cookie - form", + "enum" : [ "MATRIX", "LABEL", "FORM", "SIMPLE", "SPACEDELIMITED", "PIPEDELIMITED", "DEEPOBJECT" ] + }, + "xpath" : { + "$ref" : "#/definitions/Xpath" + } + } + } ] + }, + "Info" : { + "type" : "object", + "properties" : { + "contact" : { + "$ref" : "#/definitions/Contact" + }, + "description" : { + "type" : "string", + "description" : "A short description of the application" + }, + "license" : { + "$ref" : "#/definitions/Licence" + }, + "termsOfService" : { + "type" : "string", + "description" : "A URL to the Terms of Service for the API" + }, + "title" : { + "type" : "string", + "description" : "The title of the application" + }, + "vendorExtensions" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + }, + "version" : { + "type" : "string", + "description" : "Version of the API" + } + } + }, + "IntegerSchema" : { + "allOf" : [ { + "$ref" : "#/definitions/Schema" + }, { + "type" : "object", + "properties" : { + "default" : { + "$ref" : "#/definitions/Number" + }, + "enum" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/Number" + } + }, + "format" : { + "type" : "string" + }, + "type" : { + "type" : "string" + } + } + } ] + }, + "Licence" : { + "type" : "object", + "properties" : { + "name" : { + "type" : "string", + "description" : "The license name used for the API" + }, + "url" : { + "type" : "string", + "description" : "A URL to the license used for the API" + }, + "vendorExtensions" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + } + } + }, + "Link" : { + "type" : "object", + "properties" : { + "description" : { + "type" : "string", + "description" : "A description of the link" + }, + "get$ref" : { + "type" : "string" + }, + "operationId" : { + "type" : "string", + "description" : "The name of an existing, resolvable OAS operation, as defined with a unique operationId. This field is mutually exclusive of the operationRef field" + }, + "operationRef" : { + "type" : "string", + "description" : "A relative or absolute reference to an OAS operation. This field is mutually exclusive of the operationId field, and MUST point to an Operation Object. Relative operationRef values MAY be used to locate an existing Operation Object in the API definition" + }, + "parameters" : { + "type" : "object", + "description" : "A map representing parameters to pass to an operation as specified with operationId or identified via operationRef. The key is the parameter name to be used, whereas the value can be a constant or an expression to be evaluated and passed to the linked operation. The parameter name can be qualified using the parameter location [{in}.]{name} for operations that use the same parameter name in different locations (e.g. path.id)", + "additionalProperties" : { + "type" : "string" + } + }, + "requestBody" : { + "type" : "string", + "description" : "A literal value or {expression} to use as a request body when calling the target operation" + }, + "vendorExtensions" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + } + } + }, + "MapProperty" : { + "allOf" : [ { + "$ref" : "#/definitions/Property" + }, { + "type" : "object", + "properties" : { + "additionalProperties" : { + "$ref" : "#/definitions/Property" + }, + "maxProperties" : { + "type" : "integer", + "format" : "int32" + }, + "minProperties" : { + "type" : "integer", + "format" : "int32" + } + } + } ] + }, + "MediaType" : { + "type" : "object", + "properties" : { + "example" : { + "type" : "object", + "description" : "Example of the media type. The example object SHOULD be in the correct format as specified by the media type. The example field is mutually exclusive of the examples field. Furthermore, if referencing a schema which contains an example, the example value SHALL override the example provided by the schema" + }, + "examples" : { + "type" : "object", + "description" : "Examples of the media type. Each example object SHOULD match the media type and specified schema if present. The examples field is mutually exclusive of the example field. Furthermore, if referencing a schema which contains an example, the examples value SHALL override the example provided by the schema", + "additionalProperties" : { + "$ref" : "#/definitions/Example" + } + }, + "schema" : { + "$ref" : "#/definitions/Schema" + }, + "vendorExtensions" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + } + } + }, + "MessageFrame" : { + "type" : "object", + "properties" : { + "messageDescription" : { + "type" : "string" + }, + "messagePayload" : { + "type" : "string" + }, + "origin" : { + "type" : "string", + "enum" : [ "Server", "Client" ] + }, + "type" : { + "type" : "string", + "enum" : [ "Binary", "Text" ] + } + } + }, + "MethodParameters" : { + "type" : "object", + "properties" : { + "enabled" : { + "type" : "boolean" + }, + "parameters" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + } + }, + "returnType" : { + "type" : "string" + } + } + }, + "MockedCondition" : { + "type" : "object", + "properties" : { + "conditionName" : { + "type" : "string" + }, + "mockedConditionParameter" : { + "type" : "string", + "enum" : [ "Body", "Header", "QueryParameter" ] + }, + "mockedLevel1Operator" : { + "type" : "string", + "enum" : [ "Equals", "NotEquals", "ContainsKey", "ContainsKeyValue" ] + }, + "mockedLevel2Operator" : { + "type" : "string", + "enum" : [ "Equals", "NotEquals", "Contains", "StartsWith", "EndsWith" ] + }, + "value1" : { + "type" : "string" + }, + "value2" : { + "type" : "string" + } + } + }, + "MockedConditionsBasedCustomResponse" : { + "type" : "object", + "properties" : { + "mockedConditionList" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/MockedCondition" + } + }, + "mockedResponse" : { + "$ref" : "#/definitions/MockedResponse" + } + } + }, + "MockedResponse" : { + "type" : "object", + "properties" : { + "responseBody" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + }, + "responseHeaders" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + }, + "statusCode" : { + "type" : "string" + } + } + }, + "Model" : { + "type" : "object", + "discriminator" : "type", + "properties" : { + "description" : { + "type" : "string" + }, + "example" : { + "type" : "object" + }, + "externalDocs" : { + "$ref" : "#/definitions/ExternalDocs" + }, + "properties" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + }, + "reference" : { + "type" : "string" + }, + "title" : { + "type" : "string" + }, + "type" : { + "type" : "string" + }, + "vendorExtensions" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + } + } + }, + "ModelImpl" : { + "allOf" : [ { + "$ref" : "#/definitions/Model" + }, { + "type" : "object", + "properties" : { + "allowEmptyValue" : { + "type" : "boolean" + }, + "defaultValue" : { + "type" : "object" + }, + "discriminator" : { + "type" : "string" + }, + "enum" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "format" : { + "type" : "string" + }, + "maximum" : { + "type" : "number" + }, + "minimum" : { + "type" : "number" + }, + "name" : { + "type" : "string" + }, + "properties" : { + "type" : "object", + "readOnly" : true, + "additionalProperties" : { + "$ref" : "#/definitions/Property" + } + }, + "required" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "uniqueItems" : { + "type" : "boolean" + }, + "xml" : { + "$ref" : "#/definitions/Xml" + } + } + } ] + }, + "Namespaces" : { + "type" : "object", + "properties" : { + "prefix" : { + "type" : "string" + }, + "uri" : { + "type" : "string" + } + } + }, + "NativeEndpoint" : { + "type" : "object", + "properties" : { + "description" : { + "type" : "string", + "description" : "Endpoint description" + }, + "url" : { + "type" : "string", + "description" : "Endpoint URL value" + } + } + }, + "Node" : { + "type" : "object", + "properties" : { + "hostId" : { + "type" : "string" + }, + "replica" : { + "type" : "integer", + "format" : "int32" + } + } + }, + "Number" : { + "type" : "object" + }, + "NumberSchema" : { + "allOf" : [ { + "$ref" : "#/definitions/Schema" + }, { + "type" : "object", + "properties" : { + "default" : { + "type" : "number", + "description" : "The default value represents what would be assumed by the consumer of the input as the value of the schema if one is not provided. Unlike JSON Schema, the value MUST conform to the defined type for the Schema Object defined at the same level. For example, if type is string, then default can be \"foo\" but cannot be 1" + }, + "enum" : { + "type" : "array", + "items" : { + "type" : "number" + } + }, + "type" : { + "type" : "string" + } + } + } ] + }, + "OAuth2Definition" : { + "type" : "object", + "properties" : { + "authorizationGrants" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "authorizationUrl" : { + "type" : "string" + }, + "description" : { + "type" : "string" + }, + "flow" : { + "type" : "string" + }, + "refreshUrl" : { + "type" : "string" + }, + "scopes" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + }, + "securitySchemeDescriptor" : { + "$ref" : "#/definitions/SecuritySchemeDescriptor" + }, + "tokenUrl" : { + "type" : "string" + }, + "type" : { + "type" : "string" + }, + "vendorExtensions" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + } + } + }, + "OAuth2Token" : { + "type" : "object", + "properties" : { + "clientId" : { + "type" : "string", + "description" : "unique identifier of the oauth2 client" + }, + "clientName" : { + "type" : "string", + "description" : "the name of the client" + }, + "clientSecret" : { + "type" : "string", + "description" : "the client secret" + }, + "expirationInterval" : { + "type" : "string", + "description" : "the expiration interval" + }, + "redirectUris" : { + "type" : "array", + "description" : "list of redirect uris", + "items" : { + "type" : "string" + } + }, + "refreshCount" : { + "type" : "string", + "description" : "number of times an access token can be refreshed" + }, + "scopes" : { + "type" : "array", + "description" : "the scopes associated with the client", + "items" : { + "type" : "string" + } + }, + "type" : { + "type" : "string", + "description" : "type of the oauth2 client" + } + } + }, + "OAuthFlows" : { + "type" : "object", + "properties" : { + "authorizationCode" : { + "$ref" : "#/definitions/OAuth2Definition" + }, + "clientCredentials" : { + "$ref" : "#/definitions/OAuth2Definition" + }, + "implicit" : { + "$ref" : "#/definitions/OAuth2Definition" + }, + "password" : { + "$ref" : "#/definitions/OAuth2Definition" + }, + "vendorExtensions" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + } + } + }, + "ODataAPI" : { + "allOf" : [ { + "$ref" : "#/definitions/API" + }, { + "type" : "object", + "properties" : { + "actionImports" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/definitions/ActionImport" + } + }, + "actions" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/definitions/EntityType" + } + }, + "entitySets" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/definitions/EntitySet" + } + }, + "entityTypes" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/definitions/EntityType" + } + }, + "functionImports" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/definitions/FunctionImport" + } + }, + "functions" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/definitions/EntityType" + } + }, + "metaDataDocument" : { + "type" : "string" + }, + "odataVersion" : { + "type" : "string" + }, + "serviceDocument" : { + "type" : "string" + }, + "serviceRegistryDisplayName" : { + "type" : "string", + "description" : "The name of the API in service registry when the API is published to a service registry." + }, + "serviceRoot" : { + "type" : "string" + }, + "singletons" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/definitions/EntitySet" + } + } + } + } ] + }, + "ObjectProperty" : { + "allOf" : [ { + "$ref" : "#/definitions/Property" + }, { + "type" : "object", + "properties" : { + "properties" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/definitions/Property" + } + } + } + } ] + }, + "ObjectSchema" : { + "allOf" : [ { + "$ref" : "#/definitions/Schema" + }, { + "type" : "object", + "properties" : { + "type" : { + "type" : "string" + } + } + } ] + }, + "Operation" : { + "type" : "object", + "properties" : { + "callbacks" : { + "type" : "object", + "description" : "An optional, string description, intended to apply to all operations in this path", + "additionalProperties" : { + "$ref" : "#/definitions/Callback" + } + }, + "deprecated" : { + "type" : "boolean", + "description" : "Declares this operation to be deprecated. Consumers SHOULD refrain from usage of the declared operation. Default value is false" + }, + "description" : { + "type" : "string", + "description" : "A verbose explanation of the operation behavior" + }, + "enabled" : { + "type" : "boolean" + }, + "externalDocs" : { + "$ref" : "#/definitions/ExternalDocs" + }, + "mockedConditionsBasedCustomResponsesList" : { + "type" : "array", + "description" : "The list of mocked conditions and it's applicable only for mocked APIs", + "items" : { + "$ref" : "#/definitions/MockedConditionsBasedCustomResponse" + } + }, + "mockedResponses" : { + "type" : "object", + "description" : "The list of possible mocked responses as they are returned from executing this operation and it's applicable only for mocked APIs", + "additionalProperties" : { + "$ref" : "#/definitions/MockedResponse" + } + }, + "operationId" : { + "type" : "string", + "description" : "Unique string used to identify the operation. The id MUST be unique among all operations described in the API. The operationId value is case-sensitive" + }, + "parameters" : { + "type" : "array", + "description" : "A list of parameters that are applicable for this operation. If a parameter is already defined at the Path Item, the new definition will override it but can never remove it", + "items" : { + "$ref" : "#/definitions/Parameter" + } + }, + "requestBody" : { + "$ref" : "#/definitions/RequestBody" + }, + "responses" : { + "type" : "object", + "description" : "The list of possible responses as they are returned from executing this operation", + "additionalProperties" : { + "$ref" : "#/definitions/Response" + } + }, + "scopes" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "summary" : { + "type" : "string", + "description" : "A short summary of what the operation does" + }, + "tags" : { + "type" : "array", + "description" : "A list of tags for API documentation control. Tags can be used for logical grouping of operations by resources or any other qualifier", + "items" : { + "type" : "string" + } + }, + "vendorExtensions" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + } + } + }, + "Package" : { + "type" : "object", + "required" : [ "name" ], + "properties" : { + "active" : { + "type" : "boolean" + }, + "apiIds" : { + "type" : "array", + "description" : "List of api ids needs to be associated to package. It can be either provided during the package creation or separately using package update call", + "uniqueItems" : true, + "items" : { + "type" : "string" + } + }, + "creationDate" : { + "type" : "integer", + "format" : "int64", + "description" : "The creation date of package in milli seconds", + "readOnly" : true + }, + "customFields" : { + "type" : "object", + "description" : "This can be used to store additional information needed for a package", + "additionalProperties" : { + "type" : "object" + } + }, + "description" : { + "type" : "string", + "description" : "Description of the package" + }, + "icon" : { + "type" : "string", + "description" : "An inline base64 encoded string representation of icon to be used in package" + }, + "id" : { + "type" : "string", + "description" : "Id of the package. It will be autogenerated for the package on creation", + "readOnly" : true + }, + "modifiedDate" : { + "type" : "integer", + "format" : "int64", + "description" : "The modified date of package in milli seconds. This will be updated for package on update, hot edit, activate and deactivate.", + "readOnly" : true + }, + "name" : { + "type" : "string", + "description" : "Name of the package" + }, + "planIds" : { + "type" : "array", + "description" : "List of plan ids needs to be associated to the package. It can be either provided during the package creation or separately using package update call", + "uniqueItems" : true, + "items" : { + "type" : "string" + } + }, + "policyIds" : { + "type" : "array", + "description" : "Policy id that contains the IAM policy to use for APIs associated to package. It will be created automatically.", + "items" : { + "type" : "string" + } + }, + "publishedPortals" : { + "type" : "array", + "description" : "List of published portal ids of the package.", + "readOnly" : true, + "items" : { + "type" : "string" + } + }, + "tags" : { + "type" : "array", + "description" : "List of tags of the package. Either it can provided during the creation of the package or separately using the package update call", + "items" : { + "type" : "string" + } + }, + "version" : { + "type" : "string", + "description" : "Version of the package created" + } + } + }, + "PackageAPIModel" : { + "type" : "object", + "properties" : { + "apiDescription" : { + "type" : "string" + }, + "apiName" : { + "type" : "string" + }, + "apiVersion" : { + "type" : "string" + }, + "icon" : { + "type" : "string" + }, + "id" : { + "type" : "string" + }, + "isActive" : { + "type" : "boolean" + }, + "systemVersion" : { + "type" : "integer", + "format" : "int64" + }, + "type" : { + "type" : "string" + } + } + }, + "PackageAPIsResponseContainer" : { + "type" : "object", + "properties" : { + "packageResponse" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/PackageAPIModel" + } + } + } + }, + "PackageGetAllResponseContainer" : { + "type" : "object", + "properties" : { + "packageResponse" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/PackageResponse" + } + } + } + }, + "PackageGetResponseContainer" : { + "type" : "object", + "properties" : { + "packageResponse" : { + "$ref" : "#/definitions/PackageResponse" + } + } + }, + "PackagePlanResponse" : { + "type" : "object", + "properties" : { + "description" : { + "type" : "string", + "description" : "Description of action performed on package" + }, + "id" : { + "type" : "string", + "description" : "Id of the package" + }, + "status" : { + "type" : "string", + "description" : "Status of action performed on package", + "enum" : [ "CREATED", "SUCCESS", "ERROR", "UNEXPECTED_ERROR", "NOT_FOUND", "NO_CONTENT", "LOCKED", "UPDATED", "ACTIVATED", "DEACTIVATED", "PUBLISHED", "UNPUBLISHED" ] + } + } + }, + "PackagePlansResponseContainer" : { + "type" : "object", + "properties" : { + "packageResponse" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/Plan" + } + } + } + }, + "PackageResponse" : { + "type" : "object", + "required" : [ "name" ], + "properties" : { + "active" : { + "type" : "boolean" + }, + "apis" : { + "type" : "array", + "description" : "List of api ids needs to be associated to package. It can be either provided during the package creation or separately using package update call", + "uniqueItems" : true, + "items" : { + "$ref" : "#/definitions/API" + } + }, + "creationDate" : { + "type" : "integer", + "format" : "int64", + "description" : "The creation date of package in milli seconds", + "readOnly" : true + }, + "customFields" : { + "type" : "object", + "description" : "This can be used to store additional information needed for a package", + "additionalProperties" : { + "type" : "object" + } + }, + "description" : { + "type" : "string", + "description" : "Description of the package" + }, + "icon" : { + "type" : "string", + "description" : "An inline base64 encoded string representation of icon to be used in package" + }, + "id" : { + "type" : "string", + "description" : "Id of the package. It will be autogenerated for the package on creation", + "readOnly" : true + }, + "modifiedDate" : { + "type" : "integer", + "format" : "int64", + "description" : "The modified date of package in milli seconds. This will be updated for package on update, hot edit, activate and deactivate.", + "readOnly" : true + }, + "name" : { + "type" : "string", + "description" : "Name of the package" + }, + "plans" : { + "type" : "array", + "description" : "List of plan ids needs to be associated to the package. It can be either provided during the package creation or separately using package update call", + "uniqueItems" : true, + "items" : { + "$ref" : "#/definitions/Plan" + } + }, + "policyIds" : { + "type" : "array", + "description" : "Policy id that contains the IAM policy to use for APIs associated to package. It will be created automatically.", + "items" : { + "type" : "string" + } + }, + "publishedPortals" : { + "type" : "array", + "description" : "List of published portal ids of the package.", + "readOnly" : true, + "items" : { + "type" : "string" + } + }, + "tags" : { + "type" : "array", + "description" : "List of tags of the package. Either it can provided during the creation of the package or separately using the package update call", + "items" : { + "type" : "string" + } + }, + "teams" : { + "type" : "array", + "description" : "List of details of associated teams of the package.", + "readOnly" : true, + "items" : { + "$ref" : "#/definitions/Team" + } + }, + "version" : { + "type" : "string", + "description" : "Version of the package created" + } + } + }, + "PackageResponseContainer" : { + "type" : "object", + "properties" : { + "packageResponse" : { + "$ref" : "#/definitions/PackagePlanResponse" + } + } + }, + "Parameter" : { + "type" : "object", + "properties" : { + "_enum" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "allowEmptyValue" : { + "type" : "boolean", + "description" : "Sets the ability to pass empty-valued parameters. This is valid only for query parameters and allows sending a parameter with an empty value" + }, + "allowReserved" : { + "type" : "boolean", + "description" : "Determines whether the parameter value SHOULD allow reserved characters, as defined by RFC3986 :/?#[]@!$&'()*+,;= to be included without percent-encoding. This property only applies to parameters with an in value of query. The default value is false" + }, + "content" : { + "type" : "object", + "description" : "A map containing the representations for the parameter. The key is the media type and the value describes it. The map MUST only contain one entry", + "additionalProperties" : { + "$ref" : "#/definitions/MediaType" + } + }, + "default" : { + "type" : "string" + }, + "deprecated" : { + "type" : "boolean", + "description" : "Determines whether this parameter is mandatory. If the parameter location is \"path\", this property is REQUIRED and its value MUST be true. Otherwise, the property MAY be included and its default value is false" + }, + "description" : { + "type" : "string", + "description" : "A brief description of the parameter. This could contain examples of use" + }, + "examples" : { + "type" : "object", + "description" : "Examples of the media type. Each example SHOULD contain a value in the correct format as specified in the parameter encoding. The examples field is mutually exclusive of the example field. Furthermore, if referencing a schema which contains an example, the examples value SHALL override the example provided by the schema", + "additionalProperties" : { + "$ref" : "#/definitions/Example" + } + }, + "explode" : { + "type" : "boolean", + "description" : "When this is true, parameter values of type array or object generate separate parameters for each value of the array or key-value pair of the map. For other types of parameters this property has no effect. When style is form, the default value is true. For all other styles, the default value is false" + }, + "extendedExample" : { + "type" : "object", + "description" : "Example of the media type. The example SHOULD match the specified schema and encoding properties if present. The example field is mutually exclusive of the examples field. Furthermore, if referencing a schema which contains an example, the example value SHALL override the example provided by the schema. To represent examples of media types that cannot naturally be represented in JSON or YAML, a string value can contain the example with escaping where necessary" + }, + "get$ref" : { + "type" : "string", + "description" : "The available paths and operations for the API" + }, + "in" : { + "type" : "string", + "description" : "The location of the parameter. Possible values are \"query\", \"header\", \"path\" or \"cookie\"" + }, + "name" : { + "type" : "string", + "description" : "The name of the parameter. Parameter names are case sensitive" + }, + "parameterSchema" : { + "$ref" : "#/definitions/Schema" + }, + "required" : { + "type" : "boolean", + "description" : "Determines whether this parameter is mandatory. If the parameter location is \"path\", this property is REQUIRED and its value MUST be true. Otherwise, the property MAY be included and its default value is false" + }, + "style" : { + "type" : "string", + "description" : "Describes how the parameter value will be serialized depending on the type of the parameter value. Default values (based on value of in): for query - form; for path - simple; for header - simple; for cookie - form", + "enum" : [ "MATRIX", "LABEL", "FORM", "SIMPLE", "SPACEDELIMITED", "PIPEDELIMITED", "DEEPOBJECT" ] + }, + "vendorExtensions" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + }, + "xpath" : { + "$ref" : "#/definitions/Xpath" + } + } + }, + "Path" : { + "type" : "object", + "properties" : { + "delete" : { + "$ref" : "#/definitions/Operation" + }, + "description" : { + "type" : "string", + "description" : "An optional, string description, intended to apply to all operations in this path" + }, + "displayName" : { + "type" : "string" + }, + "enabled" : { + "type" : "boolean" + }, + "get" : { + "$ref" : "#/definitions/Operation" + }, + "get$ref" : { + "type" : "string", + "description" : "Allows for an external definition of this path item" + }, + "head" : { + "$ref" : "#/definitions/Operation" + }, + "options" : { + "$ref" : "#/definitions/Operation" + }, + "parameters" : { + "type" : "array", + "description" : "A list of parameters that are applicable for all the operations described under this path. These parameters can be overridden at the operation level, but cannot be removed there", + "items" : { + "type" : "object" + } + }, + "patch" : { + "$ref" : "#/definitions/Operation" + }, + "post" : { + "$ref" : "#/definitions/Operation" + }, + "put" : { + "$ref" : "#/definitions/Operation" + }, + "scopes" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "summary" : { + "type" : "string", + "description" : "An optional, string summary, intended to apply to all operations in this path" + }, + "tags" : { + "type" : "array", + "description" : "A list of path level tags for API documentation control. Tags can be used for logical grouping of operations by resources or any other qualifier", + "items" : { + "type" : "string" + } + }, + "trace" : { + "$ref" : "#/definitions/Operation" + }, + "vendorExtensions" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + } + } + }, + "PathParameter" : { + "allOf" : [ { + "$ref" : "#/definitions/Parameter" + }, { + "type" : "object", + "properties" : { + "_enum" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "allowEmptyValue" : { + "type" : "boolean", + "description" : "Sets the ability to pass empty-valued parameters. This is valid only for query parameters and allows sending a parameter with an empty value" + }, + "allowReserved" : { + "type" : "boolean", + "description" : "Determines whether the parameter value SHOULD allow reserved characters, as defined by RFC3986 :/?#[]@!$&'()*+,;= to be included without percent-encoding. This property only applies to parameters with an in value of query. The default value is false" + }, + "content" : { + "type" : "object", + "description" : "A map containing the representations for the parameter. The key is the media type and the value describes it. The map MUST only contain one entry", + "additionalProperties" : { + "$ref" : "#/definitions/MediaType" + } + }, + "default" : { + "type" : "string" + }, + "deprecated" : { + "type" : "boolean", + "description" : "Determines whether this parameter is mandatory. If the parameter location is \"path\", this property is REQUIRED and its value MUST be true. Otherwise, the property MAY be included and its default value is false" + }, + "description" : { + "type" : "string", + "description" : "A brief description of the parameter. This could contain examples of use" + }, + "examples" : { + "type" : "object", + "description" : "Examples of the media type. Each example SHOULD contain a value in the correct format as specified in the parameter encoding. The examples field is mutually exclusive of the example field. Furthermore, if referencing a schema which contains an example, the examples value SHALL override the example provided by the schema", + "additionalProperties" : { + "$ref" : "#/definitions/Example" + } + }, + "explode" : { + "type" : "boolean", + "description" : "When this is true, parameter values of type array or object generate separate parameters for each value of the array or key-value pair of the map. For other types of parameters this property has no effect. When style is form, the default value is true. For all other styles, the default value is false" + }, + "extendedExample" : { + "type" : "object", + "description" : "Example of the media type. The example SHOULD match the specified schema and encoding properties if present. The example field is mutually exclusive of the examples field. Furthermore, if referencing a schema which contains an example, the example value SHALL override the example provided by the schema. To represent examples of media types that cannot naturally be represented in JSON or YAML, a string value can contain the example with escaping where necessary" + }, + "get$ref" : { + "type" : "string", + "description" : "The available paths and operations for the API" + }, + "in" : { + "type" : "string", + "description" : "The location of the parameter. Possible values are \"query\", \"header\", \"path\" or \"cookie\"" + }, + "name" : { + "type" : "string", + "description" : "The name of the parameter. Parameter names are case sensitive" + }, + "parameterSchema" : { + "$ref" : "#/definitions/Schema" + }, + "required" : { + "type" : "boolean", + "description" : "Determines whether this parameter is mandatory. If the parameter location is \"path\", this property is REQUIRED and its value MUST be true. Otherwise, the property MAY be included and its default value is false" + }, + "style" : { + "type" : "string", + "description" : "Describes how the parameter value will be serialized depending on the type of the parameter value. Default values (based on value of in): for query - form; for path - simple; for header - simple; for cookie - form", + "enum" : [ "MATRIX", "LABEL", "FORM", "SIMPLE", "SPACEDELIMITED", "PIPEDELIMITED", "DEEPOBJECT" ] + }, + "xpath" : { + "$ref" : "#/definitions/Xpath" + } + } + } ] + }, + "Plan" : { + "type" : "object", + "required" : [ "name" ], + "properties" : { + "License" : { + "type" : "string", + "description" : "License of the plan" + }, + "Terms" : { + "type" : "string", + "description" : "Terms of the plan usage as descriptive string" + }, + "cost" : { + "$ref" : "#/definitions/Cost" + }, + "creationDate" : { + "type" : "integer", + "format" : "int64", + "description" : "The creation date of plan in milli seconds", + "readOnly" : true + }, + "customFields" : { + "type" : "object", + "description" : "This can be used to store additional information needed for a plan", + "additionalProperties" : { + "type" : "object" + } + }, + "description" : { + "type" : "string", + "description" : "Description of the plan" + }, + "icon" : { + "type" : "string", + "description" : "An inline base64 encoded string representation of icon to be used in plan" + }, + "id" : { + "type" : "string", + "description" : "Id of the plan. It will be autogenerated for the plan on creation", + "readOnly" : true + }, + "modifiedDate" : { + "type" : "integer", + "format" : "int64", + "description" : "The modified date of plan in milli seconds. This will be updated for plan on update.", + "readOnly" : true + }, + "name" : { + "type" : "string", + "description" : "Name of the plan" + }, + "policies" : { + "type" : "array", + "description" : "Policy that holds the rate limit throttling policy actions. It will created automatically. It can contain zero or more throttling policy action as rate limit policy", + "items" : { + "type" : "string" + } + }, + "protected" : { + "type" : "boolean" + }, + "quota" : { + "$ref" : "#/definitions/Quota" + }, + "tags" : { + "type" : "array", + "description" : "List of tags of the plan", + "items" : { + "type" : "string" + } + }, + "version" : { + "type" : "string", + "description" : "Version of the plan" + } + } + }, + "PlanGetAllResponse" : { + "type" : "object", + "properties" : { + "planResponse" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/Plan" + } + } + } + }, + "PlanGetResponse" : { + "type" : "object", + "properties" : { + "planResponse" : { + "$ref" : "#/definitions/Plan" + } + } + }, + "PlanResponseContainer" : { + "type" : "object", + "properties" : { + "planResponse" : { + "$ref" : "#/definitions/PackagePlanResponse" + } + } + }, + "Property" : { + "type" : "object", + "discriminator" : "type", + "properties" : { + "access" : { + "type" : "string" + }, + "allowEmptyValue" : { + "type" : "boolean" + }, + "description" : { + "type" : "string" + }, + "example" : { + "type" : "object" + }, + "format" : { + "type" : "string" + }, + "name" : { + "type" : "string" + }, + "position" : { + "type" : "integer", + "format" : "int32" + }, + "readOnly" : { + "type" : "boolean" + }, + "required" : { + "type" : "boolean" + }, + "title" : { + "type" : "string" + }, + "type" : { + "type" : "string" + }, + "vendorExtensions" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + }, + "xml" : { + "$ref" : "#/definitions/Xml" + } + } + }, + "QueryParameter" : { + "allOf" : [ { + "$ref" : "#/definitions/Parameter" + }, { + "type" : "object", + "properties" : { + "_enum" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "allowEmptyValue" : { + "type" : "boolean", + "description" : "Sets the ability to pass empty-valued parameters. This is valid only for query parameters and allows sending a parameter with an empty value" + }, + "allowReserved" : { + "type" : "boolean", + "description" : "Determines whether the parameter value SHOULD allow reserved characters, as defined by RFC3986 :/?#[]@!$&'()*+,;= to be included without percent-encoding. This property only applies to parameters with an in value of query. The default value is false" + }, + "content" : { + "type" : "object", + "description" : "A map containing the representations for the parameter. The key is the media type and the value describes it. The map MUST only contain one entry", + "additionalProperties" : { + "$ref" : "#/definitions/MediaType" + } + }, + "default" : { + "type" : "string" + }, + "deprecated" : { + "type" : "boolean", + "description" : "Determines whether this parameter is mandatory. If the parameter location is \"path\", this property is REQUIRED and its value MUST be true. Otherwise, the property MAY be included and its default value is false" + }, + "description" : { + "type" : "string", + "description" : "A brief description of the parameter. This could contain examples of use" + }, + "examples" : { + "type" : "object", + "description" : "Examples of the media type. Each example SHOULD contain a value in the correct format as specified in the parameter encoding. The examples field is mutually exclusive of the example field. Furthermore, if referencing a schema which contains an example, the examples value SHALL override the example provided by the schema", + "additionalProperties" : { + "$ref" : "#/definitions/Example" + } + }, + "explode" : { + "type" : "boolean", + "description" : "When this is true, parameter values of type array or object generate separate parameters for each value of the array or key-value pair of the map. For other types of parameters this property has no effect. When style is form, the default value is true. For all other styles, the default value is false" + }, + "extendedExample" : { + "type" : "object", + "description" : "Example of the media type. The example SHOULD match the specified schema and encoding properties if present. The example field is mutually exclusive of the examples field. Furthermore, if referencing a schema which contains an example, the example value SHALL override the example provided by the schema. To represent examples of media types that cannot naturally be represented in JSON or YAML, a string value can contain the example with escaping where necessary" + }, + "get$ref" : { + "type" : "string", + "description" : "The available paths and operations for the API" + }, + "in" : { + "type" : "string", + "description" : "The location of the parameter. Possible values are \"query\", \"header\", \"path\" or \"cookie\"" + }, + "name" : { + "type" : "string", + "description" : "The name of the parameter. Parameter names are case sensitive" + }, + "parameterSchema" : { + "$ref" : "#/definitions/Schema" + }, + "required" : { + "type" : "boolean", + "description" : "Determines whether this parameter is mandatory. If the parameter location is \"path\", this property is REQUIRED and its value MUST be true. Otherwise, the property MAY be included and its default value is false" + }, + "style" : { + "type" : "string", + "description" : "Describes how the parameter value will be serialized depending on the type of the parameter value. Default values (based on value of in): for query - form; for path - simple; for header - simple; for cookie - form", + "enum" : [ "MATRIX", "LABEL", "FORM", "SIMPLE", "SPACEDELIMITED", "PIPEDELIMITED", "DEEPOBJECT" ] + }, + "xpath" : { + "$ref" : "#/definitions/Xpath" + } + } + } ] + }, + "Quota" : { + "type" : "object", + "properties" : { + "enforcementPolicy" : { + "type" : "string", + "description" : "Policy id holding the information of throttling and monitor policy action to enforce quota limit." + } + } + }, + "RefModel" : { + "allOf" : [ { + "$ref" : "#/definitions/Model" + }, { + "type" : "object", + "properties" : { + "get$ref" : { + "type" : "string" + }, + "refFormat" : { + "type" : "string", + "enum" : [ "URL", "RELATIVE", "INTERNAL" ] + }, + "simpleRef" : { + "type" : "string" + } + } + } ] + }, + "RefParameter" : { + "allOf" : [ { + "$ref" : "#/definitions/Parameter" + }, { + "type" : "object", + "properties" : { + "_enum" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "allowEmptyValue" : { + "type" : "boolean", + "description" : "Sets the ability to pass empty-valued parameters. This is valid only for query parameters and allows sending a parameter with an empty value" + }, + "allowReserved" : { + "type" : "boolean", + "description" : "Determines whether the parameter value SHOULD allow reserved characters, as defined by RFC3986 :/?#[]@!$&'()*+,;= to be included without percent-encoding. This property only applies to parameters with an in value of query. The default value is false" + }, + "content" : { + "type" : "object", + "description" : "A map containing the representations for the parameter. The key is the media type and the value describes it. The map MUST only contain one entry", + "additionalProperties" : { + "$ref" : "#/definitions/MediaType" + } + }, + "default" : { + "type" : "string" + }, + "deprecated" : { + "type" : "boolean", + "description" : "Determines whether this parameter is mandatory. If the parameter location is \"path\", this property is REQUIRED and its value MUST be true. Otherwise, the property MAY be included and its default value is false" + }, + "description" : { + "type" : "string", + "description" : "A brief description of the parameter. This could contain examples of use" + }, + "examples" : { + "type" : "object", + "description" : "Examples of the media type. Each example SHOULD contain a value in the correct format as specified in the parameter encoding. The examples field is mutually exclusive of the example field. Furthermore, if referencing a schema which contains an example, the examples value SHALL override the example provided by the schema", + "additionalProperties" : { + "$ref" : "#/definitions/Example" + } + }, + "explode" : { + "type" : "boolean", + "description" : "When this is true, parameter values of type array or object generate separate parameters for each value of the array or key-value pair of the map. For other types of parameters this property has no effect. When style is form, the default value is true. For all other styles, the default value is false" + }, + "extendedExample" : { + "type" : "object", + "description" : "Example of the media type. The example SHOULD match the specified schema and encoding properties if present. The example field is mutually exclusive of the examples field. Furthermore, if referencing a schema which contains an example, the example value SHALL override the example provided by the schema. To represent examples of media types that cannot naturally be represented in JSON or YAML, a string value can contain the example with escaping where necessary" + }, + "get$ref" : { + "type" : "string", + "description" : "The available paths and operations for the API" + }, + "in" : { + "type" : "string", + "description" : "The location of the parameter. Possible values are \"query\", \"header\", \"path\" or \"cookie\"" + }, + "name" : { + "type" : "string", + "description" : "The name of the parameter. Parameter names are case sensitive" + }, + "parameterSchema" : { + "$ref" : "#/definitions/Schema" + }, + "required" : { + "type" : "boolean", + "description" : "Determines whether this parameter is mandatory. If the parameter location is \"path\", this property is REQUIRED and its value MUST be true. Otherwise, the property MAY be included and its default value is false" + }, + "style" : { + "type" : "string", + "description" : "Describes how the parameter value will be serialized depending on the type of the parameter value. Default values (based on value of in): for query - form; for path - simple; for header - simple; for cookie - form", + "enum" : [ "MATRIX", "LABEL", "FORM", "SIMPLE", "SPACEDELIMITED", "PIPEDELIMITED", "DEEPOBJECT" ] + }, + "xpath" : { + "$ref" : "#/definitions/Xpath" + } + } + } ] + }, + "RefProperty" : { + "allOf" : [ { + "$ref" : "#/definitions/Property" + }, { + "type" : "object", + "properties" : { + "get$ref" : { + "type" : "string" + }, + "refFormat" : { + "type" : "string", + "enum" : [ "URL", "RELATIVE", "INTERNAL" ] + }, + "simpleRef" : { + "type" : "string" + } + } + } ] + }, + "RequestBody" : { + "type" : "object", + "properties" : { + "content" : { + "type" : "object", + "description" : "The content of the request body. The key is a media type or media type range and the value describes it", + "additionalProperties" : { + "$ref" : "#/definitions/MediaType" + } + }, + "description" : { + "type" : "string", + "description" : "A brief description of the request body. This could contain examples of use" + }, + "get$ref" : { + "type" : "string" + }, + "required" : { + "type" : "boolean", + "description" : "Determines if the request body is required in the request. Defaults to false" + }, + "vendorExtensions" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + } + } + }, + "Response" : { + "type" : "object", + "properties" : { + "content" : { + "type" : "object", + "description" : "A map containing descriptions of potential response payloads. The key is a media type or media type range and the value describes it", + "additionalProperties" : { + "$ref" : "#/definitions/MediaType" + } + }, + "description" : { + "type" : "string", + "description" : "A short description of the response" + }, + "get$ref" : { + "type" : "string" + }, + "headersV3" : { + "type" : "object", + "description" : "Maps a header name to its definition. RFC7230 states header names are case insensitive. If a response header is defined with the name \"Content-Type\", it SHALL be ignored", + "additionalProperties" : { + "$ref" : "#/definitions/Header" + } + }, + "links" : { + "type" : "object", + "description" : "A map of operations links that can be followed from the response. The key of the map is a short name for the link, following the naming constraints of the names for Component Objects.", + "additionalProperties" : { + "$ref" : "#/definitions/Link" + } + }, + "vendorExtensions" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + } + } + }, + "RestAPI" : { + "allOf" : [ { + "$ref" : "#/definitions/API" + }, { + "type" : "object", + "properties" : { + "apiTags" : { + "type" : "array", + "description" : "A list of API level tags for API documentation control. Tags can be used for logical grouping of operations by resources or any other qualifier", + "items" : { + "type" : "string" + } + }, + "components" : { + "$ref" : "#/definitions/Components" + }, + "externalDocs" : { + "type" : "array", + "description" : "Additional external documentation", + "items" : { + "$ref" : "#/definitions/ExternalDocs" + } + }, + "info" : { + "$ref" : "#/definitions/Info" + }, + "paths" : { + "type" : "object", + "description" : "The available paths and operations for the API", + "additionalProperties" : { + "$ref" : "#/definitions/Path" + } + }, + "servers" : { + "type" : "array", + "description" : "An array of Server Objects, which provide connectivity information to a target server", + "items" : { + "$ref" : "#/definitions/Server" + } + }, + "serviceRegistryDisplayName" : { + "type" : "string", + "description" : "The name of the API in service registry when the API is published to a service registry." + }, + "tags" : { + "type" : "array", + "description" : "A list of tags with additional metadata", + "items" : { + "$ref" : "#/definitions/Tag" + } + }, + "vendorExtensions" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + } + } + } ] + }, + "RestEnabledPath" : { + "type" : "object", + "properties" : { + "delete" : { + "$ref" : "#/definitions/Operation" + }, + "description" : { + "type" : "string", + "description" : "An optional, string description, intended to apply to all operations in this path" + }, + "displayName" : { + "type" : "string" + }, + "enabled" : { + "type" : "boolean" + }, + "get" : { + "$ref" : "#/definitions/Operation" + }, + "get$ref" : { + "type" : "string", + "description" : "Allows for an external definition of this path item" + }, + "head" : { + "$ref" : "#/definitions/Operation" + }, + "invokePath" : { + "type" : "string" + }, + "name" : { + "type" : "string" + }, + "options" : { + "$ref" : "#/definitions/Operation" + }, + "parameters" : { + "type" : "array", + "description" : "A list of parameters that are applicable for all the operations described under this path. These parameters can be overridden at the operation level, but cannot be removed there", + "items" : { + "type" : "object" + } + }, + "patch" : { + "$ref" : "#/definitions/Operation" + }, + "post" : { + "$ref" : "#/definitions/Operation" + }, + "put" : { + "$ref" : "#/definitions/Operation" + }, + "scopes" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "summary" : { + "type" : "string", + "description" : "An optional, string summary, intended to apply to all operations in this path" + }, + "tags" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "trace" : { + "$ref" : "#/definitions/Operation" + }, + "vendorExtensions" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + } + } + }, + "SOAPAPI" : { + "allOf" : [ { + "$ref" : "#/definitions/API" + }, { + "type" : "object", + "properties" : { + "algorithmSuite" : { + "type" : "string" + }, + "apiTags" : { + "type" : "array", + "description" : "A list of API level tags for API documentation control. Tags can be used for logical grouping of operations by resources or any other qualifier", + "items" : { + "type" : "string" + } + }, + "baseWsdlUri" : { + "type" : "string" + }, + "isRESTInvokeEnabled" : { + "type" : "boolean" + }, + "nativeUri" : { + "type" : "array", + "uniqueItems" : true, + "items" : { + "type" : "string" + } + }, + "operationPolicies" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + } + }, + "operationsInfo" : { + "type" : "array", + "uniqueItems" : true, + "items" : { + "$ref" : "#/definitions/SOAPOperation" + } + }, + "primaryEndpoint" : { + "type" : "object", + "additionalProperties" : { + "type" : "boolean" + } + }, + "rootFileFolder" : { + "type" : "string" + }, + "serviceName" : { + "type" : "string" + }, + "serviceRegistryDisplayName" : { + "type" : "string", + "description" : "The name of the API in service registry when the API is published to a service registry." + }, + "soapToRestConfigurations" : { + "$ref" : "#/definitions/SOAPToRestConfigurations" + }, + "tags" : { + "type" : "array", + "description" : "A list of tags with additional metadata", + "items" : { + "$ref" : "#/definitions/Tag" + } + }, + "wsdl" : { + "type" : "string" + } + } + } ] + }, + "SOAPBinding" : { + "type" : "object", + "properties" : { + "faultMessages" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "inputMessage" : { + "type" : "string" + }, + "interFace" : { + "$ref" : "#/definitions/SOAPInterface" + }, + "name" : { + "type" : "string" + }, + "outputMessage" : { + "type" : "string" + }, + "specifier" : { + "type" : "string" + }, + "type" : { + "type" : "string" + } + } + }, + "SOAPInterface" : { + "type" : "object", + "properties" : { + "name" : { + "type" : "string" + }, + "operations" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/SOAPOperation" + } + } + } + }, + "SOAPOperation" : { + "type" : "object", + "properties" : { + "bindings" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/SOAPBinding" + } + }, + "defined" : { + "type" : "boolean" + }, + "enabled" : { + "type" : "boolean" + }, + "headers" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "isRESTInvokeEnabled" : { + "type" : "boolean" + }, + "mockedConditionsBasedCustomResponsesList" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/MockedConditionsBasedCustomResponse" + } + }, + "mockedResponses" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/definitions/MockedResponse" + } + }, + "name" : { + "type" : "string" + }, + "namespace" : { + "type" : "string" + }, + "restEnabledPath" : { + "$ref" : "#/definitions/RestEnabledPath" + }, + "scopes" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "soapAction" : { + "type" : "string" + }, + "tags" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + } + }, + "SOAPToRestConfigurations" : { + "type" : "object", + "properties" : { + "removeRootElement" : { + "type" : "boolean" + }, + "useDefaultElements" : { + "type" : "boolean" + }, + "useSchemaForTransformation" : { + "type" : "boolean" + } + } + }, + "Schema" : { + "type" : "object", + "discriminator" : "type", + "properties" : { + "additionalProperties" : { + "$ref" : "#/definitions/Schema" + }, + "default" : { + "type" : "object", + "description" : "The default value represents what would be assumed by the consumer of the input as the value of the schema if one is not provided. Unlike JSON Schema, the value MUST conform to the defined type for the Schema Object defined at the same level. For example, if type is string, then default can be \"foo\" but cannot be 1" + }, + "deprecated" : { + "type" : "boolean", + "description" : "Specifies that a schema is deprecated and SHOULD be transitioned out of usage. Default value is false" + }, + "description" : { + "type" : "string", + "description" : "Provide a more lengthy explanation about the purpose of the data described by the schema" + }, + "enum" : { + "type" : "array", + "items" : { + "type" : "object" + } + }, + "example" : { + "type" : "object", + "description" : "A free-form property to include an example of an instance for this schema. To represent examples that cannot be naturally represented in JSON or YAML, a string value can be used to contain the example with escaping where necessary" + }, + "exclusiveMaximum" : { + "type" : "boolean", + "description" : "Indicate whether maximum are exclusive of the value" + }, + "exclusiveMinimum" : { + "type" : "boolean", + "description" : "Indicate whether minimum are exclusive of the value" + }, + "externalDocs" : { + "$ref" : "#/definitions/ExternalDocs" + }, + "format" : { + "type" : "string", + "description" : "The format keyword allows for basic semantic validation on certain kinds of string values that are commonly used" + }, + "get$ref" : { + "type" : "string" + }, + "maxItems" : { + "type" : "integer", + "format" : "int32", + "description" : "The maximum length of the array can be specified" + }, + "maxLength" : { + "type" : "integer", + "format" : "int32", + "description" : "The maximum length of a string can be constrained using the minLength" + }, + "maxProperties" : { + "type" : "integer", + "format" : "int32", + "description" : "The maximum number of properties on an object can be restricted" + }, + "maximum" : { + "type" : "number", + "description" : "Upper limit in the ranges of numbers, (or exclusiveMinimum and exclusiveMaximum for expressing exclusive range)" + }, + "minItems" : { + "type" : "integer", + "format" : "int32", + "description" : "The minimum length of the array can be specified" + }, + "minLength" : { + "type" : "integer", + "format" : "int32", + "description" : "The minimum length of a string can be constrained using the minLength" + }, + "minProperties" : { + "type" : "integer", + "format" : "int32", + "description" : "The minimum number of properties on an object can be restricted" + }, + "minimum" : { + "type" : "number", + "description" : "Lower limit in the ranges of numbers" + }, + "multipleOf" : { + "type" : "number", + "description" : "Numbers can be restricted to a multiple of a given number, using the multipleOf keyword. It may be set to any positive number." + }, + "name" : { + "type" : "string", + "description" : "User defined name for the property" + }, + "not" : { + "$ref" : "#/definitions/Schema" + }, + "nullable" : { + "type" : "boolean", + "description" : "Allows sending a null value for the defined schema. Default value is false" + }, + "pattern" : { + "type" : "string", + "description" : "The pattern keyword is used to restrict a string to a particular regular expression. The regular expression syntax is the one defined in JavaScript (ECMA 262 specifically)" + }, + "properties" : { + "type" : "object", + "description" : "The properties (key-value pairs) on an object are defined using the properties keyword. The value of properties is an object, where each key is the name of a property and each value is of type schema used to validate that property", + "additionalProperties" : { + "$ref" : "#/definitions/Schema" + } + }, + "readOnly" : { + "type" : "boolean", + "description" : "Relevant only for Schema \"properties\" definitions. Declares the property as \"read only\". This means that it MAY be sent as part of a response but SHOULD NOT be sent as part of the request. If the property is marked as readOnly being true and is in the required list, the required will take effect on the response only. A property MUST NOT be marked as both readOnly and writeOnly being true. Default value is false" + }, + "required" : { + "type" : "array", + "description" : "By default, the properties defined by the properties keyword are not required. However, one can provide a list of required properties using the required keyword.\nThe required keyword takes an array of zero or more strings. Each of these strings must be unique.", + "items" : { + "type" : "string" + } + }, + "title" : { + "type" : "string", + "description" : "User defined title for the property" + }, + "type" : { + "type" : "string", + "description" : "It specifies the data type for a schema" + }, + "uniqueItems" : { + "type" : "boolean", + "description" : "A schema can ensure that each of the items in an array is unique. Simply set the uniqueItems keyword to true" + }, + "vendorExtensions" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + }, + "writeOnly" : { + "type" : "boolean", + "description" : "Relevant only for Schema \"properties\" definitions. Declares the property as \"write only\". Therefore, it MAY be sent as part of a request but SHOULD NOT be sent as part of the response. If the property is marked as writeOnly being true and is in the required list, the required will take effect on the request only. A property MUST NOT be marked as both readOnly and writeOnly being true. Default value is false" + }, + "xml" : { + "$ref" : "#/definitions/Xml" + } + } + }, + "SecurityScheme" : { + "type" : "object", + "properties" : { + "bearerFormat" : { + "type" : "string" + }, + "description" : { + "type" : "string" + }, + "flows" : { + "$ref" : "#/definitions/OAuthFlows" + }, + "get$ref" : { + "type" : "string" + }, + "in" : { + "type" : "string", + "enum" : [ "COOKIE", "HEADER", "QUERY" ] + }, + "name" : { + "type" : "string" + }, + "openIdConnectUrl" : { + "type" : "string" + }, + "scheme" : { + "type" : "string" + }, + "type" : { + "type" : "string", + "enum" : [ "APIKEY", "HTTP", "OAUTH2", "OPENIDCONNECT" ] + }, + "vendorExtensions" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + } + } + }, + "SecuritySchemeDescriptor" : { + "type" : "object", + "properties" : { + "headers" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + }, + "queryParameters" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + }, + "responses" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + } + } + }, + "Server" : { + "type" : "object", + "properties" : { + "description" : { + "type" : "string", + "description" : "An optional string describing the host designated by the URL" + }, + "url" : { + "type" : "string", + "description" : "A URL to the target host. This URL supports Server Variables and MAY be relative, to indicate that the host location is relative to the location where the OpenAPI document is being served. Variable substitutions will be made when a variable is named in {brackets}" + }, + "variables" : { + "type" : "object", + "description" : "A map between a variable name and its value. The value is used for substitution in the server's URL template", + "additionalProperties" : { + "$ref" : "#/definitions/ServerVariable" + } + }, + "vendorExtensions" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + } + } + }, + "ServerVariable" : { + "type" : "object", + "properties" : { + "default" : { + "type" : "string" + }, + "description" : { + "type" : "string", + "description" : "An optional description for the server variable" + }, + "enum" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "vendorExtensions" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + } + } + }, + "StringProperty" : { + "allOf" : [ { + "$ref" : "#/definitions/Property" + }, { + "type" : "object", + "properties" : { + "default" : { + "type" : "string" + }, + "enum" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "maxLength" : { + "type" : "integer", + "format" : "int32" + }, + "minLength" : { + "type" : "integer", + "format" : "int32" + }, + "pattern" : { + "type" : "string" + } + } + } ] + }, + "StringSchema" : { + "allOf" : [ { + "$ref" : "#/definitions/Schema" + }, { + "type" : "object", + "properties" : { + "default" : { + "type" : "string", + "description" : "The default value represents what would be assumed by the consumer of the input as the value of the schema if one is not provided. Unlike JSON Schema, the value MUST conform to the defined type for the Schema Object defined at the same level. For example, if type is string, then default can be \"foo\" but cannot be 1" + }, + "enum" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "type" : { + "type" : "string" + } + } + } ] + }, + "StringSchemaModel" : { + "allOf" : [ { + "$ref" : "#/definitions/Model" + }, { + "type" : "object", + "properties" : { + "schema" : { + "type" : "string" + } + } + } ] + }, + "StringSchemaProperty" : { + "allOf" : [ { + "$ref" : "#/definitions/Property" + }, { + "type" : "object", + "properties" : { + "schema" : { + "type" : "string" + } + } + } ] + }, + "SubscriptionRequest" : { + "type" : "object", + "required" : [ "applicationName", "packageId", "planId", "requesterId" ], + "properties" : { + "applicationDescription" : { + "type" : "string", + "description" : "Application description of the subscription requested" + }, + "applicationName" : { + "type" : "string", + "description" : "Application name of the subscription requested" + }, + "otherRequesterDetails" : { + "type" : "object", + "description" : "Any other information to use it in the create subscription approval request", + "additionalProperties" : { + "type" : "string" + } + }, + "packageId" : { + "type" : "string", + "description" : "Package id to which the subscription is requested" + }, + "planId" : { + "type" : "string", + "description" : "Plan id to which the subscription is requested" + }, + "redirectURIs" : { + "type" : "array", + "description" : "Redirect URIs to use in application created for this subscription.", + "items" : { + "type" : "string" + } + }, + "requesterComment" : { + "type" : "string", + "description" : "Requester comment to use in the create subscription approval request." + }, + "requesterEmail" : { + "type" : "string", + "description" : "Email id of the requester to use in the create subscription approval request." + }, + "requesterFirstName" : { + "type" : "string", + "description" : "First name of the requester to use in the create subscription approval request." + }, + "requesterId" : { + "type" : "string", + "description" : "User id of the requester to whom the subscription is requested. This will be used as owner for Application created" + }, + "requesterLastName" : { + "type" : "string", + "description" : "Last name of the requester to use in the create subscription approval request." + }, + "requesterName" : { + "type" : "string", + "description" : "Name of the requester to whom the subscription is requested. This will be used as requester name in create subscription approval request. If not specified the name of the invoking user will be used in approval request" + } + }, + "description" : "This model is used to get the required details to create a subscription for the specified package and plan" + }, + "SubscriptionUpdateRequest" : { + "type" : "object", + "required" : [ "newPlanId" ], + "properties" : { + "newPlanId" : { + "type" : "string", + "description" : "Package id to which the subscription needs to be switched" + }, + "requesterComment" : { + "type" : "string", + "description" : "Requester comment to use in the update subscription approval request." + }, + "requesterName" : { + "type" : "string", + "description" : "Name of the requester to whom the subscription is requested. This will be used as requester name in update subscription approval request. If not specified the name of the invoking user will be used in approval request" + } + } + }, + "Tag" : { + "type" : "object", + "properties" : { + "description" : { + "type" : "string", + "description" : "A short description for the tag" + }, + "externalDocs" : { + "$ref" : "#/definitions/ExternalDocs" + }, + "name" : { + "type" : "string", + "description" : "The name of the tag" + }, + "vendorExtensions" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + } + } + }, + "Team" : { + "type" : "object", + "properties" : { + "id" : { + "type" : "string", + "description" : "Team id" + }, + "name" : { + "type" : "string", + "description" : "Team name" + }, + "source" : { + "type" : "string", + "description" : "The value is to identify whether the team is created from global team assignment or from user or by system", + "enum" : [ "USER", "GLOBAL_ASSIGNMENT", "SYSTEM" ] + } + } + }, + "Usage" : { + "type" : "object", + "properties" : { + "applicationId" : { + "type" : "string", + "description" : "Application id of the subscription", + "readOnly" : true + }, + "applicationName" : { + "type" : "string", + "description" : "Application name of the subscription", + "readOnly" : true + }, + "endTime" : { + "type" : "integer", + "format" : "int64", + "description" : "End time of the subscription in milli seconds for the current interval", + "readOnly" : true + }, + "failureCount" : { + "type" : "integer", + "format" : "int32", + "description" : "This will show the number of failure invokes for the current subscription in the current interval", + "readOnly" : true + }, + "interval" : { + "type" : "string", + "description" : "Interval value of the subscription for current interval", + "readOnly" : true + }, + "intervalUnit" : { + "type" : "string", + "description" : "Interval Unit of the subscription for the current interval", + "readOnly" : true + }, + "packageId" : { + "type" : "string", + "description" : "Package id of the subscription", + "readOnly" : true + }, + "packageName" : { + "type" : "string", + "description" : "Package name of the subscription", + "readOnly" : true + }, + "planId" : { + "type" : "string", + "description" : "Plan id of the subscription", + "readOnly" : true + }, + "planName" : { + "type" : "string", + "description" : "Plan name of the subscription", + "readOnly" : true + }, + "quota" : { + "type" : "string", + "description" : "Quota (number of invokes) of the subscription as text for the current interval", + "readOnly" : true + }, + "quotaAllowed" : { + "type" : "integer", + "format" : "int64", + "description" : "Quota (number of invokes) allowed for the subscription for current interval", + "readOnly" : true + }, + "remainingPeriod" : { + "type" : "string", + "description" : "Remaining period of the subscription as text for the current interval", + "readOnly" : true + }, + "remainingPeriodInMillis" : { + "type" : "integer", + "format" : "int64", + "description" : "Remaining period of the subscription in milli seconds for the current interval", + "readOnly" : true + }, + "restoredIntervalInSeconds" : { + "type" : "integer", + "format" : "int32", + "description" : "This value shows the elapses time of subscription in case of restart of the server. This end time and remaining time will be calculated based on start time, interval and restored interval.", + "readOnly" : true + }, + "startDayOfTheWeek" : { + "type" : "string", + "description" : "Start of the week configured in API gateway", + "readOnly" : true + }, + "startTime" : { + "type" : "integer", + "format" : "int64", + "description" : "Start time of the subscription for current interval in milli seconds", + "readOnly" : true + }, + "successCount" : { + "type" : "integer", + "format" : "int32", + "description" : "This will show the number of successful invokes for the current subscription in the current interval", + "readOnly" : true + }, + "usedQuota" : { + "type" : "integer", + "format" : "int64", + "description" : "Quota (number of invokes) used count for the subscription for current interval", + "readOnly" : true + } + }, + "description" : "This is used to show the current usage of a subscription for the current tenure" + }, + "WebsocketAPI" : { + "allOf" : [ { + "$ref" : "#/definitions/API" + }, { + "type" : "object", + "properties" : { + "externalDocs" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/ExternalDocs" + } + }, + "messages" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/MessageFrame" + } + }, + "nativeUri" : { + "type" : "array", + "uniqueItems" : true, + "items" : { + "type" : "string" + } + }, + "parameters" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/definitions/AbstractParameter" + } + }, + "supportedSubProtocols" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + } + } ] + }, + "Xml" : { + "type" : "object", + "properties" : { + "attribute" : { + "type" : "boolean", + "description" : "Declares whether the property definition translates to an attribute instead of an element. Default value is false" + }, + "name" : { + "type" : "string", + "description" : "Replaces the name of the element/attribute used for the described schema property. When defined within items, it will affect the name of the individual XML elements within the list. When defined alongside type being array (outside the items), it will affect the wrapping element and only if wrapped is true. If wrapped is false, it will be ignored" + }, + "namespace" : { + "type" : "string", + "description" : "The URI of the namespace definition" + }, + "prefix" : { + "type" : "string", + "description" : "The prefix to be used for the name" + }, + "vendorExtensions" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" + } + }, + "wrapped" : { + "type" : "boolean", + "description" : "MAY be used only for an array definition. Signifies whether the array is wrapped (for example, ) or unwrapped (). Default value is false" + } + } + }, + "Xpath" : { + "type" : "object", + "properties" : { + "namespaces" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/Namespaces" + } + }, + "xpath" : { + "type" : "string" + } + } + } + } +} \ No newline at end of file diff --git a/apigatewayservices/APIGatewayServiceManagement.json b/apigatewayservices/APIGatewayServiceManagement.json index 41b59d3..6584735 100644 --- a/apigatewayservices/APIGatewayServiceManagement.json +++ b/apigatewayservices/APIGatewayServiceManagement.json @@ -1544,8 +1544,7 @@ "additionalProperties" : { "type" : "array", "items" : { - "$ref" : "#/definitions/TraceLog", - "originalRef" : "TraceLog" + "$ref" : "#/definitions/TraceLog" } } } @@ -3813,7 +3812,6 @@ "additionalProperties" : { "type" : "array", "items" : { - "originalRef" : "GqlEnumTypeExtensionDefinition", "$ref" : "#/definitions/GqlEnumTypeExtensionDefinition" } } @@ -3824,7 +3822,6 @@ "additionalProperties" : { "type" : "array", "items" : { - "originalRef" : "GqlInputObjectTypeExtensionDefinition", "$ref" : "#/definitions/GqlInputObjectTypeExtensionDefinition" } } @@ -3835,7 +3832,6 @@ "additionalProperties" : { "type" : "array", "items" : { - "originalRef" : "GqlInterfaceTypeExtensionDefinition", "$ref" : "#/definitions/GqlInterfaceTypeExtensionDefinition" } } @@ -3846,7 +3842,6 @@ "additionalProperties" : { "type" : "array", "items" : { - "originalRef" : "GqlObjectTypeExtensionDefinition", "$ref" : "#/definitions/GqlObjectTypeExtensionDefinition" } } @@ -3857,7 +3852,6 @@ "additionalProperties" : { "type" : "array", "items" : { - "originalRef" : "GqlScalarTypeExtensionDefinition", "$ref" : "#/definitions/GqlScalarTypeExtensionDefinition" } } @@ -3885,7 +3879,6 @@ "additionalProperties" : { "type" : "array", "items" : { - "originalRef" : "GqlUnionTypeExtensionDefinition", "$ref" : "#/definitions/GqlUnionTypeExtensionDefinition" } } @@ -4362,8 +4355,7 @@ "additionalProperties" : { "type" : "array", "items" : { - "$ref" : "#/definitions/TraceLog", - "originalRef" : "TraceLog" + "$ref" : "#/definitions/TraceLog" } } } @@ -7161,4 +7153,4 @@ } } } -} \ No newline at end of file +}