PAPI Swagger File 4.5

Download this sample Swagger JSON file describing the current Portal API from
apip45
Download this sample Swagger JSON file describing the current Portal API from Swagger File.
For more information about the Swagger (OpenAPI) specification, see the Swagger website.
none
{ "swagger": "2.0", "info": { "version": "4.5", "title": "Portal API" }, "host": "PAPI_Portal_TSSG:9443", "basePath": "/TENANT_API_NAME", "schemes": [ "https" ], "consumes": [], "produces": [ "application/json;charset=UTF-8" ], "paths": { "/AccountPlans": { "get": { "tags": [ "AccountPlans" ], "summary": "Returns a list of all Account Plans.", "operationId": "getAccountPlans", "description": "Returns a list of all Account Plans.\n\nAll organizations should have an account plan. You can use an account plan to give organizations access to private APIs in addition to all the public APIs. You can also use an account plan to limit the number of times an organization's applications can hit your APIs per proxy. An organization cannot exceed the limits regardless of how the hits are divided among the organization's applications and your APIs per proxy. An account plan can have a quota, a rate limit, both, or neither. The quota specifies the maximum number of hits per day or month per proxy. The rate limit specifies the maximum number of hits per second. For example, a basic account plan could limit an organization to 1,000 hits per day per proxy and one hit per second. A premium account plan could have unlimited hits per day per proxy and 100 hits per second.", "consumes": [], "produces": [], "parameters": [], "responses": { "200": { "description": "An array containing all the Account Plans within the system.", "schema": { "$ref": "#/definitions/AccountPlans" }, "examples": { "application/json": [ { "Uuid": "00000001-9362-11e3-b742-000drahcir00", "RateLimit": 1, "Description": "The Bronze plan is the default Account Plan automatically assigned by the system to all new organizations. This plan imposes restrictive quotas and rate limits.", "DefaultPlan": true, "Name": "Bronze Account Plan", "OrganizationUsage": "0", "Quota": 100, "QuotaInterval": "DAY", "ApiIds": { "results": [] } }, { "Uuid": "3df56119-506b-46b0-9ba7-0287fc7576c8", "RateLimit": 100, "Description": "", "DefaultPlan": false, "Name": "Diamond Plan", "OrganizationUsage": "0", "Quota": 100, "QuotaInterval": "DAY", "ApiIds": { "results": [ "e82a748e-b9ee-4717-ac90-dd211c4b1de2" ] } }, { "Uuid": "71ec8a37-9362-11e3-b742-000c2911a4db", "RateLimit": null, "Description": "This is a sample plan that you can use to assigned to internal developers and other employees. This plan imposes no quotas or rate limits.", "DefaultPlan": false, "Name": "Internal Plan", "OrganizationUsage": "1", "Quota": null, "QuotaInterval": null, "ApiIds": { "results": [ "3aa68269-3a8c-4567-9e0f-3e9fa3368553", "b0ca4200-bee0-4264-a41c-e2a8b2d81d84" ] } } ] } } } }, "post": { "tags": [ "AccountPlans" ], "summary": "Create an Account Plan", "operationId": "createAccountPlan", "description": "Create a new Account Plan that API publishers can use to limit the total usage of all applications and APIs under an organization. Enter a unique name and a public description for the plan. Quota information and rate limit are optional and are applied per proxy. Referencing an API UUID in the payload will result in a thrown exception.", "produces": [ "text/plain;charset=UTF-8" ], "consumes": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "body", "in": "body", "description": "Creates an Account Plan.", "required": true, "schema": { "$ref": "#/definitions/AccountPlanPost" } } ], "responses": { "201": { "description": "", "schema": { "$ref": "#/definitions/AccountPlanFull" }, "examples": { "application/json": { "Uuid": "{{GENERATED_GUID}}", "Name": "Silver Account Plan", "Description": "This is a Silver Account Plan", "RateLimit": 200, "Quota": 200, "QuotaInterval": "DAY", "ApiIds": { "results": [ "f28714f9-a0c9-49e7-a6e3-6f20726e69fa" ] } } } }, "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/AccountPlans('{uuid}')": { "get": { "tags": [ "AccountPlans" ], "summary": "Returns a specific Account Plan.", "operationId": "getAccountPlan", "description": "Returns a specific Account Plan.", "consumes": [], "produces": [], "parameters": [ { "name": "uuid", "description": "The UUID of the Account Plan to return.", "in": "path", "required": true, "type": "string" } ], "responses": { "200": { "description": "The Account Plan found with the UUID specified.", "schema": { "$ref": "#/definitions/AccountPlanFull" }, "examples": { "application/json": { "Uuid": "3df56119-506b-46b0-9ba7-0287fc7576c8", "RateLimit": 100, "Description": "", "DefaultPlan": false, "Name": "Diamond Plan", "OrganizationUsage": "0", "Quota": 100, "QuotaInterval": "DAY", "ApiIds": { "results": [ "e82a748e-b9ee-4717-ac90-dd211c4b1de2" ] } } } }, "404": { "$ref": "#/responses/NotFound" } } }, "delete": { "tags": [ "AccountPlans" ], "summary": "Delete an existing account plan", "description": "Delete an existing account plan. If the account plan is used by an organization then it cannot be deleted.", "operationId": "deleteAccountPlan", "produces": [], "consumes": [], "parameters": [ { "name": "uuid", "description": "The UUID of the account plan to be deleted.", "in": "path", "required": true, "type": "string" } ], "responses": { "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } }, "put": { "tags": [ "AccountPlans" ], "summary": "Update a specific Account Plan.", "operationId": "updateAccountPlan", "description": "Update a specific Account Plan. If updating an existing Account Plan with APIs associated, please ensure the old API uuids associated with the Account Plan are referenced or an exception will be thrown.", "consumes": [ "application/json;charset=UTF-8" ], "produces": [ "text/plain;charset=UTF-8" ], "parameters": [ { "name": "uuid", "description": "The UUID of the Account Plan to update.", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "description": "Provides the values needed to update an Account Plan.", "required": true, "schema": { "$ref": "#/definitions/AccountPlanPut" } } ], "responses": { "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/ApiEulas": { "get": { "tags": [ "ApiEulas" ], "summary": "List all End-User Licence Agreements that can be applied to APIs.", "operationId": "getApiEulas", "description": "List all End-User Licence Agreements that can be applied to APIs. In the API Portal, when Organization Administrators add an API to their organization, they must agree to the EULA. All APIs published on the API Portal need an API EULA. So, before Administrators can add an API, an Administrator or API Owner must add a EULA to the API Portal. If the API Portal does not have the correct API EULA, an Administrator or API Owner must add the EULA. Alternatively, they can edit an API EULA that is not assigned to an API that is associated with an organization.", "consumes": [], "produces": [], "parameters": [], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/ApiEulas" }, "examples": { "application/json": [ { "Uuid": "c9406345-eb76-11e3-b0cd-000nosaj86a8", "Name": "Standard EULA", "ApiUsage": "2", "ApplicationUsage": "2", "Content": "<span>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\n minim veniam, quis nostrud exercitation ullamco laboris nisi ut\n aliquip ex ea commodo consequat. Duis aute irure dolor in\n reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla\n pariatur. Excepteur sint occaecat cupidatat non proident, sunt in\n culpa qui officia deserunt mollit anim id est laborum.</span>", "PossibleActions": { "results": [] } }, { "Uuid": "18cde0ac-0fde-4737-816a-8bb6420a1860", "Name": "My new EULA", "ApiUsage": "0", "ApplicationUsage": "0", "Content": "<span>Sed ut perspiciatis unde omnis iste natus error sit voluptatem\n accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae\n ab illo inventore veritatis et quasi architecto beatae vitae dicta\n sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit\n aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos\n qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui\n dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed\n quia non numquam eius modi tempora incidunt ut labore et dolore magnam\n aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum\n exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex\n ea commodi consequatur?</span>", "PossibleActions": { "results": [ "DELETE", "EDIT" ] } } ] } } } }, "post": { "tags": [ "ApiEulas" ], "summary": "Create an API Eula", "operationId": "createApiEula", "description": "Create a specific End-User Licence Agreement that can be applied to APIs.", "produces": [], "consumes": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "body", "in": "body", "description": "Creates an API EULA.", "required": true, "schema": { "type": "object", "description": "Request", "example": { "Name": "Test Eula", "Content": "Test Eula", "Uuid": "{{GENERATED_GUID}}" } } } ], "responses": { "201": { "description": "", "schema": { "$ref": "#/definitions/ApiEulas" }, "examples": { "application/json": { "Name": "API Eula Name", "Content": "Your API Eula content. Can be HTML but will be XSS protected causing a 400 bad request error.", "Uuid": "{{GENERATED_GUID}}" } } }, "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/ApiEulas('{uuid}')": { "get": { "tags": [ "ApiEulas" ], "summary": "Get a specific End-User Licence Agreement that can be applied to APIs.", "operationId": "getApiEula", "description": "Get a specific End-User Licence Agreement that can be applied to APIs.", "consumes": [], "produces": [], "parameters": [ { "name": "uuid", "description": "The UUID of the End-User Licence Agreement to return.", "in": "path", "required": true, "type": "string" } ], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/ApiEula" }, "examples": { "application/json": { "Uuid": "c9406345-eb76-11e3-b0cd-000nosaj86a8", "Name": "Standard EULA", "ApiUsage": "2", "ApplicationUsage": "2", "Content": "<span>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\n minim veniam, quis nostrud exercitation ullamco laboris nisi ut\n aliquip ex ea commodo consequat. Duis aute irure dolor in\n reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla\n pariatur. Excepteur sint occaecat cupidatat non proident, sunt in\n culpa qui officia deserunt mollit anim id est laborum.</span>", "PossibleActions": { "results": [ "DELETE", "EDIT" ] } } } }, "404": { "$ref": "#/responses/NotFound" } } }, "put": { "tags": [ "ApiEulas" ], "summary": "Update an existing API EULA.", "description": "Update an existing API EULA.", "operationId": "updateApiEulas", "produces": [ "text/plain;charset=UTF-8" ], "consumes": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "uuid", "description": "The UUID of the API EULA to update.", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "description": "Update an existing API EULA.", "required": true, "schema": { "$ref": "#/definitions/ApiEulaPut" } } ], "responses": { "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } }, "delete": { "tags": [ "ApiEulas" ], "summary": "Delete an existing API EULA", "description": "Delete an existing API EULA. If API EULA is used by an API then it cannot be deleted.", "operationId": "deleteApiEulas", "produces": [], "consumes": [], "parameters": [ { "name": "uuid", "description": "The UUID of the API EULA to delete.", "in": "path", "required": true, "type": "string" } ], "responses": { "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/api-management/0.1/permissions/apis/{apiUuid}": { "get": { "tags": [ "Api Permissions" ], "summary": "Get all user UUIDs with permission to manage this API", "operationId": "getApiUserPermissionsUsingGET", "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "apiUuid", "in": "path", "description": "uuid of api", "required": true, "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "$ref": "#/definitions/ReferenceDto" } } }, "400": { "description": "Bad Request" }, "500": { "description": "Server Failure" } }, "deprecated": false }, "put": { "tags": [ "Api Permissions" ], "summary": "Save an API User Permission", "operationId": "saveUsingPUT_1", "consumes": [ "application/json" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "in": "body", "name": "userUuids", "description": "uuids of users to give permission to", "required": true, "schema": { "type": "array", "items": { "$ref": "#/definitions/ReferenceDto" } } }, { "name": "apiUuid", "in": "path", "description": "uuid of api", "required": true, "type": "string" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "500": { "description": "Server Failure" } }, "deprecated": false } }, "/api-management/0.1/permissions/apis/{uuid}/available-users":{ "get":{ "tags":[ "Apis" ], "summary":"Get all Users that have permission to manage this api.", "operationId":"getAllAvailableUsersUsingGET", "consumes":[ "application/json" ], "produces":[ "application/json;charset=UTF-8" ], "parameters":[ { "name":"uuid", "in":"path", "description":"uuid", "required":true, "type":"string" } ], "responses":{ "200":{ "description":"OK", "schema":{ "type":"array", "items":{ "$ref":"#/definitions/UserDto" } } }, "400":{ "description":"Bad Request" }, "500":{ "description":"Server Failure" } }, "deprecated":false } }, "/api-management/1.0/api-groups": { "get": { "tags": [ "ApiGroups" ], "summary": "Return list of API Groups", "operationId": "getApiGroups", "description": "List of API Groups.", "consumes": [], "produces": [], "parameters": [], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/ApiGroups" }, "examples": { "application/json": [ { "uuid": "a689fa99-1402-4634-93ac-98b730c79b83", "name": "group1", "status": "ENABLED", "description": "testing description" }, { "uuid": "2bd6fcae-c490-43dd-a2fc-c77645497402", "name": "group2", "status": "ENABLED", "description": "testing description" } ] } } } }, "post": { "tags": [ "ApiGroups" ], "summary": "Create an API Group", "operationId": "createApiGroup", "description": "Create an API Group.", "produces": [], "consumes": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "body", "in": "body", "description": "Creates an API Group.", "required": true, "schema": { "type": "object", "description": "Request", "example": { "name": "test name", "status": "ENABLED", "description": "testing description" } } } ], "responses": { "201": { "description": "", "schema": { "$ref": "#/definitions/ApiGroup" }, "examples": { "application/json": { "name": "test name", "status": "ENABLED", "description": "testing description" } } }, "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/api-management/1.0/api-groups/{uuid}": { "get": { "tags": [ "ApiGroups" ], "summary": "Return a Single API Group", "operationId": "getApiGroup", "description": "Returns the API Group with the specified UUID.", "consumes": [], "produces": [], "parameters": [ { "name": "uuid", "description": "The UUID of the API Group to return.", "in": "path", "required": true, "type": "string" } ], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/ApiGroup" }, "examples": { "application/json": { "uuid": "ae7af4e7-11a7-4691-8b84-be60e304e304", "name": "test", "status": "ENABLED", "description": "testing description" } } }, "404": { "$ref": "#/responses/NotFound" } } }, "put": { "tags": [ "ApiGroups" ], "summary": "Update an existing API Group.", "description": "Updates the group with the specified UUID. All mandatory group attributes (eg. name, status, etc) are required in the payload. If an optional group attribute (eg. description) was set on the group, but it is not provided in the payload, then it will be reset to empty.", "operationId": "updateApiGroup", "produces": [ "text/plain;charset=UTF-8" ], "consumes": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "uuid", "description": "The UUID of the API Group to update.", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "description": "Update an existing API Group.", "required": true, "schema": { "$ref": "#/definitions/ApiGroupPut" } } ], "responses": { "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } }, "delete": { "tags": [ "ApiGroups" ], "summary": "Delete an existing API Group", "description": "Delete an existing API Group. If API Group is used by an Application then it cannot be deleted.", "operationId": "deleteApiGroup", "produces": [], "consumes": [], "parameters": [ { "name": "uuid", "description": "The UUID of the API Group to delete.", "in": "path", "required": true, "type": "string" } ], "responses": { "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/api-management/1.0/api-groups/{uuid}/apis": { "get": { "tags": [ "ApiGroups" ], "summary": "Returns APIs of an API Group", "operationId": "getApiGroupApiMapping", "description": "Returns a list of API references which have been associated with the specified API Group.", "consumes": [], "produces": [], "parameters": [ { "name": "uuid", "description": "The UUID of the API Group associated with the APIs to return.", "in": "path", "required": true, "type": "string" } ], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/ApiGroupApis" }, "examples": { "application/json": [ { "uuid": "bb071bc2-5e59-4f86-85d1-2e4851603adc" }, { "uuid": "2bd6fcae-c490-43dd-a2fc-c77645497402" } ] } }, "404": { "$ref": "#/responses/NotFound" } } }, "put": { "tags": [ "ApiGroups" ], "summary": "Associate APIs with the specified API Group.", "description": "Associate APIs with the specified API Group. The previous API associations will be removed if not present in payload.", "operationId": "updateApiGroupApiMapping", "produces": [ "text/plain;charset=UTF-8" ], "consumes": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "uuid", "description": "The UUID of the API Group to associate the provided APIs with.", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "description": "List of API references to associate with the specified API Group.", "required": true, "schema": { "$ref": "#/definitions/ApiGroupApis" } } ], "responses": { "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/api-management/1.0/api-plans": { "get": { "tags": [ "ApiPlans" ], "summary": "Get All API Plans", "description": "All API Plans will be retrieved.", "operationId": "getApiPlansUsingGET_1", "consumes": [ "application/json" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/ApiPlans" }, "examples": { "application/json": { "totalPages": 1, "pageSize": 20, "currentPage": 0, "totalElements": 1, "results": [ { "uuid": "fc917586-808d-4a86-bd96-098cf495e0f9", "quotaInterval": null, "description": "", "name": "1111", "rateLimit": null, "quota": null } ], "_links": { "self": { "href": "/api-management/1.0/api-plans?page=0&size=20" } } } } }, "400": { "$ref": "#/responses/InvalidUuid" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } }, "post": { "tags": [ "ApiPlans" ], "summary": "Create an API Plan", "description": "Create an API Plan that controls how APIs can be consumed by developers within an organization. The API Plan comprises rate limit and/or quota information, along with the public or private APIs that these controls apply to. You can choose which organizations the API Plan applies to, allowing you to set custom access limits per organization for the the same APIs.", "operationId": "createApiPlanUsingPOST", "consumes": [ "application/json" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "in": "body", "name": "body", "description": "Creates an API Plan.", "required": true, "schema": { "$ref": "#/definitions/ApiPlan1.0Create" } } ], "responses": { "201": { "description": "", "schema": { "$ref": "#/definitions/ApiPlan1.0Create" }, "examples": { "application/json": { "uuid": "7d90b568-4820-4cfc-9f7a-626643fcc4ed", "quotaInterval": "DAY", "description": "2", "name": "Basic plan", "rateLimit": 10, "quota": 1000000000 } } }, "400": { "$ref": "#/responses/InvalidUuid" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/api-management/1.0/api-plans/count": { "get": { "tags": [ "ApiPlans" ], "summary": "Get The number of API Plans", "description": "Get The number of API Plans", "operationId": "getNumberOfApiPlansUsingGET", "consumes": [ "application/json" ], "produces": [ "application/json;charset=UTF-8" ], "responses": { "200": { "description": "Success", "schema": { "type": "integer", "format": "int64" } }, "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/api-management/1.0/api-plans/{uuid}": { "get": { "tags": [ "ApiPlans" ], "summary": "Get Specific API Plan by UUID", "description": "Get Specific API Plan by UUID", "operationId": "getApiPlanUsingGET_1", "consumes": [ "application/json" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "uuid", "in": "path", "description": "The UUID of the API Plan to return.", "required": true, "type": "string" } ], "responses": { "200": { "description": "Success", "schema": { "$ref": "#/definitions/ApiPlan1.0Full" }, "examples": { "application/json": { "uuid": "7d90b568-4820-4cfc-9f7a-626643fcc4ed", "quotaInterval": "DAY", "description": "sample plan", "name": "sampe plan name", "rateLimit": 10, "quota": 1000000000, "_links": { "self": { "href": "/api-management/1.0/api-plans/7d90b568-4820-4cfc-9f7a-626643fcc4ed" } } } } }, "400": { "$ref": "#/responses/InvalidUuid" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } }, "put": { "tags": [ "ApiPlans" ], "summary": "Updates an API Plan", "description": "Updates the API Plan associated with the given UUID", "operationId": "updateApiPlanUsingPUT", "consumes": [ "application/json" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "in": "body", "name": "body", "description": "Update an existing API Plan.", "required": true, "schema": { "example": { "uuid": "7d90b568-4820-4cfc-9f7a-626643fcc4ed", "quotaInterval": "DAY", "description": "desc", "name": "API Plan Name", "rateLimit": 10, "quota": 1000000000, "_links": { "self": { "href": "/api-management/1.0/api-plans/7d90b568-4820-4cfc-9f7a-626643fcc4ed" } } } } }, { "name": "uuid", "in": "path", "description": "The UUID of the API Plan", "required": true, "type": "string" } ], "responses": { "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } }, "delete": { "tags": [ "ApiPlans" ], "summary": "Deletes a specific API Plan by UUID", "operationId": "deleteApiPlanUsingDELETE_1", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "name": "uuid", "in": "path", "description": "The UUID of the API Plan", "required": true, "type": "string" } ], "responses": { "204": { "description": "Deleted" }, "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/api-management/1.0/api-plans/{uuid}/apis": { "get": { "tags": [ "ApiPlans" ], "summary": "Get All Associated API of API Plan", "description": "All APIs associated with the specified API Plan will be retrieved.", "operationId": "getAllApiPlanApisUsingGET_1", "consumes": [ "application/json" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "uuid", "description": "The UUID of the API Plan associated with the APIs to return.", "in": "path", "required": true, "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/ApiReferences" }, "examples": { "application/json": [ { "uuid": "bb071bc2-5e59-4f86-85d1-2e4851603acc" }, { "uuid": "2bd6fcae-c490-43dd-a2fc-c77645497682" } ] } }, "400": { "$ref": "#/responses/BadRequest" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/api-management/0.1/api-plans/{plan-uuid}/api/{api-uuid}": { "get": { "tags": [ "ApiPlans" ], "summary": "Returns status of the association between an API with the API Plan.", "description": "Returns status of the association between an API with the API Plan.", "operationId": "getApiPlanApiUsingGET_1", "consumes": [ "application/json" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "plan-uuid", "in": "path", "description": "The UUID of API Plan", "required": true, "type": "string" }, { "name": "api-uuid", "in": "path", "description": "The UUID of the API", "required": true, "type": "string" } ], "responses": { "200": { "description": "Success", "schema": { "type": "integer", "format": "int64" } }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } }, "put": { "tags": [ "ApiPlans" ], "summary": "Update a specific API Plan to be associated with an API.", "description": "Update a specific API Plan to be associated with an API.", "operationId": "updateApiPlanApiUsingPUT_1", "consumes": [ "application/json" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "plan-uuid", "in": "path", "description": "The UUID of the API Plan", "required": true, "type": "string" }, { "name": "api-uuid", "in": "path", "description": "The UUID of the API", "required": true, "type": "string" } ], "responses": { "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } }, "delete": { "tags": [ "ApiPlans" ], "summary": "Delete the association between a specific API Plan and an API.", "description": "Delete the association between a specific API Plan and an API.", "operationId": "deleteApiPlanApiUsingDELETE_1", "consumes": [ "application/json" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "plan-uuid", "in": "path", "description": "The UUID of the API Plan", "required": true, "type": "string" }, { "name": "api-uuid", "in": "path", "description": "The UUID of the API", "required": true, "type": "string" } ], "responses": { "204": { "description": "Deleted" }, "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/api-management/0.1/api-plans/{uuid}/organization/{orguuid}": { "get": { "tags": [ "ApiPlans" ], "summary": "Check if the specific Organization is associated with an API Plan", "description": "Check if the specific Organization is associated with an API Plan", "operationId": "getApiPlanOrgUsingGET_1", "consumes": [ "application/json" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "uuid", "in": "path", "description": "The UUID of the API Plan", "required": true, "type": "string" }, { "name": "orguuid", "in": "path", "description": "The UUID of the organization", "required": true, "type": "string" } ], "responses": { "204": { "description": "Success" }, "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } }, "put": { "tags": [ "ApiPlans" ], "summary": "Update a specific API Plan to be associated with an Organization", "description": "Update a specific API Plan to be associated with an Organization", "operationId": "putApiPlanOrgUsingPUT", "consumes": [ "application/json" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "uuid", "in": "path", "description": "The API UUID.", "required": true, "type": "string" }, { "name": "orguuid", "in": "path", "description": "The UUID of the organization.", "required": true, "type": "string" } ], "responses": { "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } }, "delete": { "tags": [ "ApiPlans" ], "summary": "Delete the association between a specific API Plan and an Organization", "description": "Delete the association between a specific API Plan and an Organization", "operationId": "deleteApiPlanOrgUsingDELETE", "consumes": [ "application/json" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "uuid", "in": "path", "description": "The UUID of API Plan", "required": true, "type": "string" }, { "name": "orguuid", "in": "path", "description": "The UUID of organization", "required": true, "type": "string" } ], "responses": { "200": { "description": "Deleted" }, "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/api-management/0.1/api-plans/{uuid}/organizations": { "get": { "tags": [ "ApiPlans" ], "summary": "Get all organizations associated with the specific API Plan", "description": "Get all organizations associated with the specific API Plan", "operationId": "getAllApiPlanOrgsUsingGET_1", "consumes": [ "application/json" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "uuid", "in": "path", "description": "The UUID of API Plan", "required": true, "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/ApiPlanOrganizations" }, "examples": { "application/json": [ { "uuid": "bb071bc2-5e59-4f86-85d1-2e4851708acc" }, { "uuid": "2bd6fcae-c490-43dd-a2fc-c77845497922" } ] } }, "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/api-management/1.0/apis": { "get": { "tags": [ "Apis" ], "summary": "List all APIs in the system.", "operationId": "getApis1.0", "description": "List all APIs in the system. You can add your API with additional data such as Version, API End-User License Agreement, Visibility (Public or Private). You can also set-up your Proxy Configuration using Proxy URL, Location of API and Policy Entities. You can add multiple Policy Entities which may have multiple Policy Template Arguments. Lastly, you can set-up your API Metadata by using a descriptor file and uploading it, by setting the Authentication (None, API Key or OAuth2) and adding a Public and/or Private Description.", "consumes": [], "produces": [], "parameters": [], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/ApisGet" }, "examples": { "application/json": { "totalPages": 1, "pageSize": 20, "currentPage": 1, "totalElements": 8, "result": [ { "uuid": "8c26150c-5ca4-4e9d-8d57-ebdedb1cd115", "name": "api1 name", "description": "api1 sample description", "portalStatus": "ENABLED", "accessStatus": "PUBLIC", "specFilename": "my_spec.json", "apiEulaUuid": "c9406345-eb76-11e3-b0cd-000nosaj86a8", "createTs": 1578566842958, "modifyTs": 0, "ssgServiceType": "REST", "applicationUsage": 0, "tags": [ "testTag1" ] } ], "_links": { "self": { "href": "/api-management/1.0/apis?page=0&size=20" } } } } }, "400": { "$ref": "#/responses/InvalidParameters" }, "500": { "$ref": "#/responses/InternalServerError" } } }, "post": { "tags": [ "Apis" ], "summary": "Create an API", "description": "Creates a REST or SOAP API in an INCOMPLETE state. Before an API can be published which changes it to ENABLED, it needs to have at least one policy entity, any required custom fields defined and if it's a SOAP API it needs a WSDL asset attached. The required fields are name, apiServiceType (REST or SOAP), version, apiEulaUuid, accessStatus (PUBLIC or PRIVATE), ssgUrl, authenticationType (NONE, OAUTH2 or API_KEY), authenticationParameters and locationUrl. Optional parameters are description and privateDescription.", "operationId": "createUsingPOST", "consumes": [ "application/json" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "in": "body", "name": "apiDto", "description": "apiDto", "required": true, "schema": { "$ref": "#/definitions/ApiDto" } } ], "responses": { "201": { "description": "Success", "schema": { "$ref": "#/definitions/ApiDto" } }, "400": { "description": "Bad Request" }, "500": { "description": "Server Failure" } }, "deprecated": false } }, "/api-management/1.0/apis/{uuid}": { "get": { "tags": [ "Apis" ], "summary": "Returns a single API.", "operationId": "getApi1.0", "description": "Returns a single API with the specified UUID.", "consumes": [], "produces": [], "parameters": [ { "name": "uuid", "description": "The UUID of the API to return.", "in": "path", "required": true, "type": "string" } ], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/ApiGet" }, "examples": { "application/json": { "uuid": "8c26150c-5ca4-4e9d-8d57-ebdedb1cd115", "name": "my api", "portalStatus": "ENABLED", "accessStatus": "PUBLIC", "publishedByPortal": false, "description": "sample public description", "privateDescription": "sample private description", "apiEulaUuid": "c9406345-eb76-11e3-b0cd-000nosaj86a8", "version": 2, "ssgUrl": "ca", "specFilename": "url", "specFilesize": null, "locationUrl": "ca.com", "authenticationType": "NONE", "authenticationParameter": {}, "managingOrgUuid": "79fa6b9b-18ad-4b29-8694-78a0237e9545", "createTs": 1524775123511, "modifyTs": 1524786901289, "customFieldValues": [ { "uuid": "a0c38c63-dd82-41b2-987c-3cc2a063fea5", "customFieldUuid": "6d0a1735-3821-4516-a8ad-aa6961d882ae", "value": "Sample custom field description." } ], "policyEntities": [ { "policyEntityUuid": "cc9a43a5-d67c-4e86-81c4-f0ca58b93a1b", "policyTemplateArguments": [ { "name": "smtpServer", "value": "ca.com" }, { "name": "sslEnabled", "value": true }, { "name": "sla", "value": 200 }, { "name": "email", "value": "admin@test.com" } ] } ], "possibleStatuses": { "results": [ "DISABLED", "DEPRECATED" ] }, "_links": { "self": { "href": "/api-management/1.0/apis/8c26150c-5ca4-4e9d-8d57-ebdedb1cd115" }, "apiUsage": { "href": "/api-management/1.0/apis/8c26150c-5ca4-4e9d-8d57-ebdedb1cd115/usage" }, "policyEntities": { "href": "/api-management/1.0/apis/8c26150c-5ca4-4e9d-8d57-ebdedb1cd115/policy-entities" }, "customFields": { "href": "/api-management/1.0/apis/8c26150c-5ca4-4e9d-8d57-ebdedb1cd115/custom-fields" }, "assets": { "href": "/api-management/1.0/apis/8c26150c-5ca4-4e9d-8d57-ebdedb1cd115/assets" }, "tags": { "href": "/api-management/1.0/apis/8c26150c-5ca4-4e9d-8d57-ebdedb1cd115/tags" } } } } }, "400": { "$ref": "#/responses/InvalidUuid" }, "404": { "$ref": "#/responses/NotFoundEntity" }, "500": { "$ref": "#/responses/InternalServerError" } } }, "put": { "tags": [ "Apis" ], "summary": "Update an API", "description": "Update the main API details. The required fields are name, apiServiceType (REST or SOAP), version, apiEulaUuid, accessStatus (PUBLIC or PRIVATE), ssgUrl, authenticationType (NONE, OAUTH2 or API_KEY), authenticationParameters and locationUrl. Optional parameters are description and privateDescription.", "operationId": "updateUsingPUT", "consumes": [ "application/json" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "in": "body", "name": "apiDto", "description": "apiDto", "required": true, "schema": { "$ref": "#/definitions/ApiDto" } }, { "name": "uuid", "in": "path", "description": "uuid", "required": true, "type": "string" } ], "responses": { "204": { "description": "Success" }, "400": { "description": "Bad Request" }, "500": { "description": "Server Failure" } }, "deprecated": false }, "delete": { "tags": [ "Apis" ], "summary": "Deletes the API.", "description": "Deletes the API. An API must be disabled and not have any Applications using it to be deletable.", "operationId": "deleteApiUsingDELETE", "produces": [ "*/*" ], "parameters": [ { "name": "uuid", "in": "path", "description": "uuid", "required": true, "type": "string" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" } }, "deprecated": false } }, "/api-management/1.0/apis/{uuid}/custom-fields": { "get": { "tags": [ "Apis" ], "summary": "Get an API's custom field values", "operationId": "getApiCustomFieldValuesUsingGET", "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "uuid", "in": "path", "description": "uuid", "required": true, "type": "string" } ], "responses": { "200": { "description": "No Content", "schema": { "type": "array", "items": { "$ref": "#/definitions/CustomFieldValueDto" } } }, "404": { "description": "API doesn't exist" }, "500": { "description": "Server Failure" } }, "deprecated": false }, "put": { "tags": [ "Apis" ], "summary": "Save an API's custom field values", "description": "Save an API's custom field values. Only required custom fields are required. The required values for a custom field are its customFieldUuid and value.", "operationId": "saveApiCustomFieldValueUsingPUT", "consumes": [ "application/json" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "uuid", "in": "path", "description": "uuid", "required": true, "type": "string" }, { "in": "body", "name": "customFieldValues", "description": "customFieldValues", "required": true, "schema": { "type": "array", "items": { "$ref": "#/definitions/CustomFieldValueDto" } } }, { "name": "uuid", "in": "query", "required": false, "type": "string" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "404": { "description": "API doesn't exist" }, "500": { "description": "Server Failure" } }, "deprecated": false } }, "/api-management/1.0/apis/{uuid}/policy-entities": { "get": { "tags": [ "Apis" ], "summary": "Get All Policy entities of associated API", "description": "All Policy entities associated with the specified API will be retrieved.", "operationId": "getAllApiPolicyEntitiesUsingGET", "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "uuid", "in": "path", "description": "uuid", "required": true, "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "$ref": "#/definitions/ApiPolicyEntityDto" } } }, "404": { "description": "Not Found" }, "500": { "description": "Server Failure" } }, "deprecated": false }, "put": { "tags": [ "Apis" ], "summary": "Save an API Policy entities", "description": "Save an API Policy entities. At least one Policy Entity must be provided. A Policy Entity's required fields are policyEntityUuid and any required policyTemplateArguments. A Policy Template Argument needs to have a name and value specified.", "operationId": "saveUsingPUT", "consumes": [ "application/json" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "uuid", "in": "path", "description": "uuid", "required": true, "type": "string" }, { "in": "body", "name": "policyEntities", "description": "policyEntities", "required": true, "schema": { "type": "array", "items": { "$ref": "#/definitions/ApiPolicyEntityDto" } } }, { "name": "uuid", "in": "query", "required": false, "type": "string" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "500": { "description": "Server Failure" } }, "deprecated": false } }, "/api-management/1.0/apis/{apiUuid}/assets": { "get": { "tags": [ "Apis" ], "summary": "Get the assets linked to the API.", "description": "Get the assets linked to the API. A REST API can have an optionally specified WADL, or Swagger JSON file. A SOAP API must have a WSDL specified for it.", "operationId": "getAllAssetsUsingGET", "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "apiUuid", "in": "path", "description": "apiUuid", "required": true, "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "$ref": "#/definitions/apiAsset" } } }, "404": { "description": "Not Found" }, "500": { "description": "Server Failure" } }, "deprecated": false }, "post" : { "tags": [ "Apis" ], "summary": "Manage the assets for an API.", "description": "Manage the assets for an API by uploading a file in a multipart form request. This API can also be optionally used to delete an asset by providing 'filesToDelete' with its data being the UUID of the asset although unnecessary. A REST API can have an optionally specified WADL, or Swagger JSON file. A SOAP API must have a WSDL specified for it as well as any optional XSDs.", "operationId": "postApiAssetUsingPOST", "consumes": [ "multipart/form-data" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "apiUuid", "in": "path", "description": "apiUuid", "required": true, "type": "string" }, { "name": "files", "in": "formData", "type": "file", "description": "The Asset to upload. A REST API can have an optionally specified WADL, or Swagger JSON file. A SOAP API must have a WSDL specified for it as well as any optional XSDs." }, { "name": "filesToDelete", "in": "formData", "type": "string", "description": "The UUID of file to delete. Multiple UUIDs can be provided in separate parts." } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "500": { "description": "Server Failure" } }, "deprecated": false } }, "/api-management/1.0/apis/{apiUuid}/assets/wsdl": { "get": { "tags": [ "Apis" ], "summary": "Get an API's WSDL.", "description": "If this is a SOAP API, its WSDL asset will be returned.", "operationId": "getWsdlWithContentUsingGET", "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "apiUuid", "in": "path", "description": "apiUuid", "required": true, "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/apiAsset" } } }, "deprecated": false } }, "/api-management/1.0/apis/{apiUuid}/assets/{uuid}/file": { "get": { "tags": [ "Apis" ], "summary": "Download the asset file linked to the API.", "operationId": "getAssetFileUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "apiUuid", "in": "path", "description": "apiUuid", "required": true, "type": "string" }, { "name": "uuid", "in": "path", "description": "uuid", "required": true, "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/ResponseEntity" } }, "404": { "description": "Not Found" }, "500": { "description": "Server Failure" } }, "deprecated": false } }, "/api-management/1.0/apis/{uuid}/publish": { "put": { "tags": [ "Apis" ], "summary": "Publish an API", "description": "Publish an API changing its state from INCOMPLETE to ENABLED. To publish an API it needs any required Custom Field values, at least one Policy Entity and if it's a SOAP API it needs a WSDL asset.", "operationId": "publishApiUsingPUT", "consumes": [ "application/json" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "uuid", "in": "path", "description": "uuid", "required": true, "type": "string" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "404": { "description": "Not Found" }, "500": { "description": "Server Failure" } }, "deprecated": false } }, "/api-management/1.0/apis/{uuid}/usage": { "get": { "tags": [ "Apis" ], "summary": "Returns the usage of an API", "operationId": "getApiUsage", "description": "Return the api group usage, direct and indirect application usage. If the api uuid does not exist, return 0 for all of the 3 usages.", "consumes": [], "produces": [], "parameters": [ { "name": "uuid", "in": "path", "description": "The API UUID.", "required": true, "type": "string" } ], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/ApiUsage" }, "examples": { "application/json": { "apiGroupUsage": 1, "directAppUsage": 1, "indirectAppUsage": 1 } } }, "400": { "$ref": "#/responses/InvalidUuid" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/api-management/1.0/apis/{apiUuid}/organizations": { "get": { "tags": [ "Api Organizations" ], "summary": "Get all associated Organization entities of an API", "description": "All Organization entities associated with the specified API will be retrieved.", "operationId": "getAllApiOrganizationEntitiesUsingGET", "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "apiUuid", "in": "path", "description": "apiUuid", "required": true, "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "type": "string" } } }, "404": { "description": "Not Found" }, "500": { "description": "Server Failure" } }, "deprecated": false }, "put": { "tags": [ "Api Organizations" ], "summary": "Post API Organization.", "operationId": "PUTApiOrganizations", "consumes": [ "application/json" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "apiUuid", "in": "path", "description": "apiUuid", "required": true, "type": "string" }, { "in": "body", "name": "organizationUuids", "description": "organizationUuids", "required": true, "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "500": { "description": "Server Failure" } }, "deprecated": false } }, "/api-management/1.0/apis/{apiUuid}/tags": { "get": { "tags": [ "Api Tags" ], "summary": "Get all tags associated with an API", "description": "Fetches all tags associated with an API.", "operationId": "getAssociatedApiTags", "consumes": [], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "apiUuid", "in": "path", "description": "apiUuid", "required": true, "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/ApiTags" }, "examples": { "application/json": [ { "name": "tag1", "uuid": "a689fa99-1402-4634-93ac-98b730c79b83" }, { "name": "tag2", "uuid": "2bd6fcae-c490-43dd-a2fc-c77645497402" } ] } }, "400": { "description": "Bad Request" }, "500": { "description": "Server Failure" } } }, "put": { "tags": [ "Api Tags" ], "summary": "Associate Tag entities to API", "description": "Associates list of tags to the specified API. An empty payload will disassociate all the existing tags.", "operationId": "associateTagsToApi", "consumes": [ "application/json;charset=UTF-8" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "apiUuid", "in": "path", "description": "apiUuid", "required": true, "type": "string" }, { "in": "body", "name": "tagNames", "description": "List of tags", "required": true, "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "Ok", "schema": { "$ref": "#/definitions/ApiTags" }, "examples": { "application/json": [ { "name": "tag1", "uuid": "a689fa99-1402-4634-93ac-98b730c79b83" }, { "name": "tag2", "uuid": "2bd6fcae-c490-43dd-a2fc-c77645497402" } ] } }, "400": { "description": "Bad Request" }, "500": { "description": "Server Failure" } } } }, "/tags": { "get": { "tags": [ "Tags" ], "summary": "Get all tags", "description": "Fetches the list of tags.", "operationId": "getTags", "consumes": [], "produces": [ "application/json;charset=UTF-8" ], "parameters": [], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/ApiTags" }, "examples": { "application/json": [ { "name": "tag1", "uuid": "a689fa99-1402-4634-93ac-98b730c79b83" }, { "name": "tag2", "uuid": "2bd6fcae-c490-43dd-a2fc-c77645497402" } ] } }, "400": { "description": "Bad Request" }, "500": { "description": "Server Failure" } } }, "post": { "tags": [ "Tags" ], "summary": "Create Tags", "description": "Creates one or more tags", "operationId": "createTags", "consumes": [ "application/json;charset=UTF-8" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "in": "body", "name": "tagNames", "description": "List of tag entities", "required": true, "schema": { "$ref": "#/definitions/TagsPost" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/ApiTags" }, "examples": { "application/json": [ { "name": "tag1", "uuid": "a689fa99-1402-4634-93ac-98b730c79b83" }, { "name": "tag2", "uuid": "2bd6fcae-c490-43dd-a2fc-c77645497402" } ] } }, "400": { "description": "Bad Request" }, "500": { "description": "Server Failure" } } } }, "/api-management/1.0/apis/{uuid}/bundle": { "get": { "tags": [ "Apis" ], "summary": "Retrieve XML representation of API", "description": "Get an XML representation of the API that can be used with RESTMAN on CA API Gateway to deploy or un-deploy the API", "operationId": "getApiBundleUsingGET", "consumes": [ "application/json" ], "produces": [ "application/xml" ], "parameters": [ { "name": "uuid", "in": "path", "description": "The API UUID.", "required": true, "type": "string" }, { "name": "type", "in": "query", "description": "The type of bundle to retrieve. Allowable values: ['delete', 'create']", "required": false, "type": "string" } ], "responses": { "200": { "description": "Success", "schema": { "type": "string" } } } } }, "/api-management/1.0/applications": { "get": { "tags": [ "Applications" ], "summary": "Returns a list of all Applications.", "operationId": "getApplications", "description": "Returns a list of all Applications.\n Mostly Organization Administrators and Developers work with applications in the API Portal. However, working with applications also helps Administrators and API Owners test their APIs and the API Portal. All users except Developers can add applications to the API Portal. After you add an application, the API Proxy generates a unique API key and shared secret for the application. Later, the developers must add the API key to the application so that the application can use the APIs. If the application uses OAuth, the developers must also add the shared secret to the application.", "consumes": [], "produces": [], "parameters": [], "responses": { "200": { "description": "An array containing all the Applications within the system.", "schema": { "$ref": "#/definitions/ApplicationsGet" }, "examples": { "application/json": { "totalPage": 1, "pageSize": 20, "currentPage": 0, "totalElements": 7, "results": [ { "uuid": "6fdc50fc-9a39-4a0c-bb7e-57fb2d4374ff", "name": "app one", "status": "ENABLED", "organizationUuid": "4c35f9cd-8eb2-11e3-ae6b-000c2911a4db", "organizationName": "Sample Org", "disabledByType": null } ], "_links": { "self": { "href": "/api-management/1.0/applications?page=0&size=20" } } } } }, "400": { "$ref": "#/responses/InvalidParameters" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/Applications": { "post": { "tags": [ "Applications" ], "summary": "Create an Application", "operationId": "createApplication", "description": "Creates an Application. All users except Developers can add applications to the API Portal. After you add an application, if no API key, secret and/or MAG master key is supplied, the API Proxy generates a unique API key, shared secret, and/or MAG master key for the application. Later, the developers must add the API key to the application so that the application can use the APIs. If the application uses OAuth, the developers must also add the shared secret to the application.", "produces": [ "text/plain;charset=UTF-8" ], "consumes": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "body", "in": "body", "description": "Creates an Application.", "required": true, "schema": { "$ref": "#/definitions/ApplicationCreate" } } ], "responses": { "201": { "description": "Application Created" }, "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/Applications('{uuid}')": { "get": { "tags": [ "Applications" ], "summary": "Returns a single Application.", "operationId": "getApplication", "description": "Returns a single Application.", "consumes": [], "produces": [], "parameters": [ { "name": "uuid", "description": "The UUID of the application to return.", "in": "path", "required": true, "type": "string" } ], "responses": { "200": { "description": "An object describing a single Application.", "schema": { "$ref": "#/definitions/Application" }, "examples": { "application/json": { "Uuid": "6fdc50fc-9a39-4a0c-bb7e-57fb2d4374ff", "Name": "my app", "OrganizationUuid": "4c35f9cd-8eb2-11e3-ae6b-000c2911a4db", "OrganizationName": "Sample Org", "Description": "desc", "Status": "ENABLED", "DisabledByType": null, "OauthScope": null, "OauthCallbackUrl": null, "ApiKey": "l7xx67167af2f7b1417480cc5824a298c7f2", "KeySecret": "aee5f76d3b43420eb24129af3a66b62a", "MagMasterKey": "99e78c83-02d6-4c8b-8e55-eb0db53ae789", "MagScope": null, "OauthType": null, "Reason": null, "ApiIds": { "results": [ "e82a748e-b9ee-4717-ac90-dd211c4b1de2" ] }, "ApiApiPlanIds": { "results": [ { "ApiUuid": "1e544644-7e3a-402c-9b50-f1af4a77bbbf", "ApiPlanUuid": "c79636bc-8c50-4157-94b3-6c799da35388" }, { "ApiUuid": "1e544644-7e3a-402c-9b50-f1af4a77bbbf", "ApiPlanUuid": "c79636bc-8c50-4157-94b3-6c799da35389" } ] }, "ApiGroupIds": { "results": [ "8b2f796e-2d3f-482c-85d7-30420109f170" ] }, "CustomFieldValues": { "results": [ { "CustomFieldUuid": "20af5924-85b6-417b-809f-648e3ec18320", "EntityUuid": "6fdc50fc-9a39-4a0c-bb7e-57fb2d4374ff", "Uuid": "9aa55c41-2551-4e0d-b331-364296da4d41", "Value": "value 1" } ] } } } }, "404": { "$ref": "#/responses/NotFound" } } }, "put": { "tags": [ "Applications" ], "summary": "Update an Application", "operationId": "updateApplication", "description": "Update a specific Application.", "consumes": [ "application/json;charset=UTF-8" ], "produces": [ "text/plain;charset=UTF-8" ], "parameters": [ { "name": "uuid", "description": "The UUID of the Application to update.", "in": "path", "required": true, "type": "string" }, { "name": "body", "description": "Provides the values needed to update an Application object.", "in": "body", "required": true, "schema": { "$ref": "#/definitions/ApplicationUpdate" } } ], "responses": { "200": { "description": "An object describing updating a single Application.", "schema": { "$ref": "#/definitions/Application" }, "examples": { "application/json": { "Uuid": "6fdc50fc-9a39-4a0c-bb7e-57fb2d4374ff", "Name": "my app", "OrganizationUuid": "4c35f9cd-8eb2-11e3-ae6b-000c2911a4db", "OrganizationName": "Sample Org", "Description": "desc", "Status": "ENABLED", "DisabledByType": null, "OauthScope": null, "OauthCallbackUrl": null, "ApiKey": "l7xx67167af2f7b1417480cc5824a298c7f2", "KeySecret": "aee5f76d3b43420eb24129af3a66b62a", "MagMasterKey": "99e78c83-02d6-4c8b-8e55-eb0db53ae789", "MagScope": null, "OauthType": null, "Reason": null, "ApiIds": { "results": [ "e82a748e-b9ee-4717-ac90-dd211c4b1de2" ] }, "ApiApiPlanIds": { "results": [ { "ApiUuid": "e82a748e-b9ee-4717-ac90-dd211c4b1de2", "ApiPlanUuid": "c79636bc-8c50-4157-94b3-6c799da35388" } ] }, "ApiGroupIds": { "results": [ "8b2f796e-2d3f-482c-85d7-30420109f170" ] }, "CustomFieldValues": { "results": [ { "CustomFieldUuid": "20af5924-85b6-417b-809f-648e3ec18320", "EntityUuid": "6fdc50fc-9a39-4a0c-bb7e-57fb2d4374ff", "Uuid": "9aa55c41-2551-4e0d-b331-364296da4d41", "Value": "value 1" } ] } } } }, "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } }, "delete": { "tags": [ "Applications" ], "summary": "Delete a specific Application.", "operationId": "deleteApplication", "description": "Delete a specific Application.", "consumes": [ "application/json;charset=UTF-8" ], "produces": [ "text/plain;charset=UTF-8" ], "parameters": [ { "name": "uuid", "description": "The UUID of the Application to delete.", "in": "path", "required": true, "type": "string" } ], "responses": { "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/tenant-admin/1.0/audits": { "get": { "tags": [ "Auditing" ], "summary": "Return a filtered list of Audit logs", "description": "Returns a filtered and sorted list of Audit Log entries.", "operationId": "getAudits", "produces": [ "application/json" ], "parameters": [ { "name": "startTs", "in": "query", "description": "The oldest time (in milliseconds) for which to retrieve audits. If not specified retrieves all up to endTs (if specified). If neither startTs or endTs is specified, return all records", "required": false, "type": "integer" }, { "name": "endTs", "in": "query", "description": "The most recent time (in milliseconds) for which to retrieve audits. If not specified, retrieves all from startTs (if specified) to current time", "required": false, "type": "integer" }, { "name": "entityType", "in": "query", "description": "The entityType, if specified will return only the type specified, if available. Examples: API, Application, Organization, AccountPlan, User", "required": false, "type": "string" }, { "name": "entityName", "in": "query", "description": "The name of the entity, if specified will return only audit events for specific entity names", "required": false, "type": "string" }, { "name": "action", "in": "query", "description": "The action which caused the audit event, if specified will return only audit events for action. Examples: Created, Updated, Deleted", "required": false, "type": "string" }, { "name": "userName", "in": "query", "description": "The userName of the user who initiated the event, if specified will return only audit events for this userName.", "required": false, "type": "string" }, { "name": "page", "in": "query", "description": "The zero-based page number of results being requested", "required": false, "type": "integer" }, { "name": "size", "in": "query", "description": "The number of records to return per request", "required": false, "type": "integer" } ], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/AuditsGet" }, "examples": { "application/json": [ { "totalPages": 1, "pageSize": 10, "currentPage": 0, "totalElements": 1, "results": [ { "actionTs": 1539124331969, "entityType": "LOGIN", "entityName": "admin", "action": "LOGIN_SUCCESS", "userName": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36", "tenantId": "apim", "simplifiedUserAgent": "Chrome" } ], "_links": { "self": { "href": "/tenant-admin/1.0/audits?page=0&size=10" } } }, { "totalPages": 2, "pageSize": 10, "currentPage": 0, "totalElements": 13, "results": [ { "actionTs": 1539125492337, "entityType": "Application", "entityName": "app6", "action": "Created", "userName": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36", "tenantId": "apim", "simplifiedUserAgent": "Chrome" }, { "actionTs": 1539125475157, "entityType": "Application", "entityName": "app5", "action": "Created", "userName": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36", "tenantId": "apim", "simplifiedUserAgent": "Chrome" }, { "actionTs": 1539125433628, "entityType": "Application", "entityName": "app3", "action": "Created", "userName": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36", "tenantId": "apim", "simplifiedUserAgent": "Chrome" }, { "actionTs": 1539125418331, "entityType": "Application", "entityName": "app2", "action": "Created", "userName": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36", "tenantId": "apim", "simplifiedUserAgent": "Chrome" }, { "actionTs": 1539125401952, "entityType": "Application", "entityName": "app1", "action": "Created", "userName": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36", "tenantId": "apim", "simplifiedUserAgent": "Chrome" }, { "actionTs": 1539125367276, "entityType": "Api", "entityName": "api5", "action": "Created", "userName": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36", "tenantId": "apim", "simplifiedUserAgent": "Chrome" }, { "actionTs": 1539125340597, "entityType": "Api", "entityName": "api4", "action": "Created", "userName": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36", "tenantId": "apim", "simplifiedUserAgent": "Chrome" }, { "actionTs": 1539125295038, "entityType": "Api", "entityName": "api3", "action": "Created", "userName": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36", "tenantId": "apim", "simplifiedUserAgent": "Chrome" }, { "actionTs": 1539125268551, "entityType": "Api", "entityName": "api2", "action": "Created", "userName": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36", "tenantId": "apim", "simplifiedUserAgent": "Chrome" }, { "actionTs": 1539125237210, "entityType": "Api", "entityName": "api1", "action": "Created", "userName": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36", "tenantId": "apim", "simplifiedUserAgent": "Chrome" } ], "_links": { "self": { "href": "/tenant-admin/1.0/audits?page=0&size=10" }, "nextPage": { "href": "/tenant-admin/1.0/audits?page=1&size=10" }, "lastPage": { "href": "/tenant-admin/1.0/audits?page=1&size=10" } } } ] } }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/tenant-admin/1.0/audits/export": { "get": { "tags": [ "Auditing" ], "summary": "Export a list of Audit logs", "description": "Export a sorted list of Audit Log entries.", "operationId": "getAuditsExport", "produces": [ "application/octet-stream" ], "parameters": [ { "name": "startTs", "in": "query", "description": "The oldest time (in milliseconds) for which to retrieve audits (NOTE: startTs/endTs can be no more than 90 days apart).", "required": true, "type": "integer" }, { "name": "endTs", "in": "query", "description": "The most recent time (in milliseconds) for which to retrieve audits (NOTE: startTs/endTs can be no more than 90 days apart).", "required": true, "type": "integer" }, { "name": "format", "in": "query", "description": "Document format", "required": true, "type": "string", "enum": [ "csv", "json" ] }, { "name": "Accept", "in": "header", "description": "Accept Header", "required": true, "type": "string", "enum": [ "application/octet-stream" ] } ], "responses": { "200": { "description": "", "schema": { "type": "file" }, "examples": { "application/json": [ { "results": [ { "actionTs": 1539118455499, "entityType": "Api Eula", "entityName": "eula test update", "action": "Deleted", "userName": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36", "tenantId": "apim", "simplifiedUserAgent": "Chrome" }, { "actionTs": 1539118440784, "entityType": "Application", "entityName": "app_update", "action": "Updated", "userName": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36", "tenantId": "apim", "simplifiedUserAgent": "Chrome" }, { "actionTs": 1539118418084, "entityType": "Api", "entityName": "test_api_update", "action": "Created", "userName": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36", "tenantId": "apim", "simplifiedUserAgent": "Chrome" } ] } ] } }, "500": { "$ref": "#/responses/InternalServerError" }, "400": { "$ref": "#/responses/BadRequest" } } } }, "/CustomFields": { "get": { "tags": [ "CustomFields" ], "summary": "List all Custom Fields with their names, description, statuses, input type and required/optional state.", "operationId": "getCustomFields", "description": "List all Custom Fields with their names, description, statuses, input type and required/optional state. Input type contains the Single-Select Dropdown and Text. There must be at least one option for the Single-Select Dropdown input type.\n Custom Fields provide additional metadata for APIs and Applications. For each API or Application, you can assign the same or different values.", "consumes": [], "produces": [], "parameters": [], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/CustomFields" }, "examples": { "application/json": [ { "Name": "cf", "Uuid": "e18bec62-c731-4dac-825c-35f57b12a971", "Status": "ENABLED", "Required": true, "Description": "", "Type": "SINGLE_SELECT", "EntityType": "API", "OptionsList": { "results": [ { "Value": "a", "Ordinal": 0 } ] } } ] } } } }, "post": { "tags": [ "CustomFields" ], "summary": "Create a custom field record", "description": "Create a custom field record", "operationId": "addCustomField", "consumes": [ "application/json;charset=UTF-8" ], "produces": [], "parameters": [ { "name": "body", "in": "body", "description": "Provides the values needed to set up the CustomField object.", "required": true, "schema": { "$ref": "#/definitions/CustomFieldPost" } } ], "responses": { "201": { "description": "An object describing a single newly created Custom Field.", "schema": { "$ref": "#/definitions/CustomField" }, "examples": { "application/json": { "Name": "cf", "Uuid": "e18bec62-c731-4dac-825c-35f57b12a971", "Status": "ENABLED", "Required": true, "Description": "", "Type": "SINGLE_SELECT", "EntityType": "API", "OptionsList": { "results": [ { "Value": "a", "Ordinal": 0 } ] } } } }, "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/CustomFields('{uuid}')": { "get": { "tags": [ "CustomFields" ], "summary": "Returns a specific Custom Field.", "operationId": "getCustomField", "description": "Returns a specific Custom Field.", "consumes": [], "produces": [], "parameters": [ { "name": "uuid", "description": "The UUID of the Custom Field to return.", "in": "path", "required": true, "type": "string" } ], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/CustomFields" }, "examples": { "application/json": { "Name": "cf", "Uuid": "e18bec62-c731-4dac-825c-35f57b12a971", "Status": "ENABLED", "Required": true, "Description": "", "Type": "SINGLE_SELECT", "EntityType": "API", "OptionsList": { "results": [ { "Value": "a", "Ordinal": 0 } ] } } } }, "404": { "$ref": "#/responses/NotFound" } } }, "delete": { "tags": [ "CustomFields" ], "summary": "Delete an existing CustomField record", "description": "Delete an existing CustomField record.", "operationId": "deleteCustomField", "produces": [], "consumes": [], "parameters": [ { "name": "uuid", "description": "The UUID of the CustomField to delete.", "in": "path", "required": true, "type": "string" } ], "responses": { "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } }, "put": { "tags": [ "CustomFields" ], "summary": "Update an existing custom field record", "description": "Update a custom field record", "operationId": "updateCustomField", "consumes": [ "application/json;charset=UTF-8" ], "produces": [], "parameters": [ { "name": "uuid", "description": "The UUID of the CustomField to update.", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "description": "Provides the values needed to set up the CustomField object.", "required": true, "schema": { "$ref": "#/definitions/CustomFieldPut" } } ], "responses": { "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/tenant-admin/1.0/organizations": { "get": { "tags": [ "Organizations" ], "summary": "Returns a list of all Organizations.", "operationId": "getOrganizations", "description": "Returns a list of all Organizations.\n You use organizations to group and manage related developers. API Owners can also view the list of organizations. When you register a developer, you assign the developer to an organization. So before you can register a developer from a new organization, add the organization to the API Portal.\n You assign an account plan to each organization. You can use account plans to limit how much the applications developed by an organization's developers can use the API. You can also use account plans to give some organizations access to private APIs.", "consumes": [], "produces": [], "parameters": [], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/Organizations" }, "examples": { "application/json": { "totalPages": 1, "pageSize": 20, "currentPage": 0, "totalElements": 2, "results": [ { "uuid": "05b8d611-c3e9-446c-8f0e-7ccea55435d6", "tenantId": "apim", "name": "organization one", "description": "This is a sample organization description", "status": "ENABLED", "accountPlanUuid": "00000001-9362-11e3-b742-000drahcir00" } ], "_links": { "self": { "href": "/tenant-admin/1.0/organizations?page=0&size=20" } } } } }, "400": { "$ref": "#/responses/InvalidParameters" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/tenant-admin/1.0/organizations/{uuid}": { "get": { "tags": [ "Organizations" ], "summary": "Returns an organization.", "operationId": "getOrganization", "description": "Returns an Organization with the specified UUID.", "consumes": [], "produces": [], "parameters": [ { "name": "uuid", "description": "The UUID of the organization to return.", "in": "path", "required": true, "type": "string" } ], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/OrganizationGet" }, "examples": { "application/json": { "uuid": "05b8d611-c3e9-446c-8f0e-7ccea55435d6", "tenantId": "apim", "name": "test organization", "description": "This is a sample organization.", "status": "ENABLED", "accountPlanUuid": "2b0636b5-ec27-407a-b825-e8061421efdf" } } }, "400": { "$ref": "#/responses/InvalidUuid" }, "404": { "$ref": "#/responses/NotFoundEntity" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/Organizations": { "post": { "tags": [ "Organizations" ], "summary": "Create a new organization", "operationId": "createOrganization", "description": "Create a new organization", "produces": [], "consumes": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "body", "in": "body", "description": "Creates an Organization based on the request body parameters. Name, AccountPlanUuid and Uuid fields are required. The Description field can be left empty.", "required": true, "schema": { "$ref": "#/definitions/OrganizationBasic" } } ], "responses": { "201": { "description": "An object describing a single newly created Organization.", "schema": { "$ref": "#/definitions/Organization" }, "examples": { "application/json": { "Uuid": "05b8d611-c3e9-446c-8f0e-7ccea55435d6", "Description": "", "AccountPlanName": "Bronze Account Plan", "ApplicationUsage": "0", "Name": "testorganization", "Status": "ENABLED", "AccountPlanUuid": "00000001-9362-11e3-b742-000drahcir00", "PrivateApiUsage": "0", "UserUsage": "0", "PrivateAppUsage": "0" } } }, "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/Organizations('{uuid}')": { "delete": { "tags": [ "Organizations" ], "summary": "Delete an existing organization", "description": "Delete an existing organization. If the organization is associated with any applications, users, private APIs, or account plans, then it cannot be deleted.", "operationId": "deleteOrganization", "produces": [], "consumes": [], "parameters": [ { "name": "uuid", "description": "The UUID of the organization to be deleted.", "in": "path", "required": true, "type": "string" } ], "responses": { "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } }, "put": { "tags": [ "Organizations" ], "summary": "Update an existing organization.", "description": "Update an existing organization.", "operationId": "updateOrganization", "consumes": [ "application/json;charset=UTF-8" ], "produces": [], "parameters": [ { "name": "uuid", "description": "The UUID of the organization to be updated.", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "description": "Provides the values needed to set up the organization object.", "required": true, "schema": { "$ref": "#/definitions/OrganizationBasic" } } ], "responses": { "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/Users": { "get": { "deprecated": true, "tags": [ "Deprecated" ], "summary": "Returns a list of all Users", "description": "The /v2/users endpoint is the new version to be used and the old /users endpoint is deprecated. If you PUT or POST with the /users endpoint, this endpoint will not function correctly and the response will be a 400. Returns a list of all Users.\n All registered users of the API Portal have a role. The functionality available to users depends on their role. The API Portal has two role categories: publisher roles and developer roles. The publisher roles are Administrator and API Owner. The developer roles are Organization Administrator and Developer. Organization Administrators can perform the same account management tasks for their organization members. However, Organization Administrators can add users belongs to his Organization. Before developers can use APIs published on the API Portal, they need developer accounts.\n You can add user account to the API Portal. If the Notify User check box is set to true, the API Portal sends an email to the user. The email message contains an activation token in a URL.\n When users register for a developer account(Developer type > Org Admin role), the API Portal sends them an account activation email. The account is then pending. To finish the self-registration process, users click the account activation link in the email and complete the Account Setup form. Users must complete the Account Setup form before the account activation token expires.\n When the User's Status is REGISTRATION_INIT, Administrators can resend the account activation email. This function helps when users cannot find, or mistakenly delete, the email. Pending accounts do not show the user's name.\n Administrators can delete pending developer accounts. When you delete pending accounts, the API Portal deletes the user records and revokes the account activation tokens.", "operationId": "getUsers", "consumes": [], "produces": [], "parameters": [], "responses": { "200": { "description": "An array containing all the Users within the system.", "schema": { "$ref": "#/definitions/Users" }, "examples": { "application/json": [ { "Uuid": "c30eadd7-c088-4df0-b3c4-92d8d28b5501", "FirstName": "Test", "LastName": "User", "FullName": "Test User", "Username": "test.user", "Email": "testuser@example.com", "RoleUuid": "00000006-0006-0006-0006-000000000006", "RoleName": "developers", "RoleDescription": "Developer", "RoleType": "EXTERNAL", "OrganizationUuid": "4c35f9cd-8eb2-11e3-ae6b-000c2911a4db", "OrganizationName": "Sample Org", "Locale": "en", "Status": "ENABLED" } ] } } } }, "post": { "deprecated": true, "tags": [ "Deprecated" ], "summary": "Create a new User", "description": "The /v2/users endpoint is the new version to be used and the old /users endpoint is deprecated. If you PUT or POST with the /users endpoint, this endpoint will not function correctly and the response will be a 400. Create a new User", "operationId": "createUser", "consumes": [ "application/json;charset=UTF-8" ], "produces": [], "parameters": [ { "name": "body", "in": "body", "description": "Provides the values needed to set up the User object.", "required": true, "schema": { "$ref": "#/definitions/UserPost" } } ], "responses": { "201": { "description": "An object describing a single newly created User.", "schema": { "$ref": "#/definitions/User" }, "examples": { "application/json": { "Uuid": "c30eadd7-c088-4df0-b3c4-92d8d28b5501", "FirstName": "Test", "LastName": "User", "FullName": "Test User", "Username": "testuser", "Email": "test.user@example.com", "RoleUuid": "00000006-0006-0006-0006-000000000006", "RoleName": "developers", "RoleDescription": "Developer", "RoleType": "EXTERNAL", "OrganizationUuid": "4c35f9cd-8eb2-11e3-ae6b-000c2911a4db", "OrganizationName": "Sample Org", "ChangePassword": false, "OldPassword": null, "NewPassword": null, "NotifyUser": false, "Locale": "en", "Status": "ENABLED" } } }, "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/Users('{uuid}')": { "get": { "deprecated": true, "tags": [ "Deprecated" ], "summary": "Returns a single User", "description": "The /v2/users endpoint is the new version to be used and the old /Users('{uuid}') endpoint is deprecated. If you PUT or POST with the /users endpoint, this endpoint will not function correctly and the response will be a 400. Returns a single User", "operationId": "getUser", "consumes": [], "produces": [], "parameters": [ { "name": "uuid", "description": "The UUID of the application to return.", "in": "path", "required": true, "type": "string" } ], "responses": { "200": { "description": "An object describing a single User.", "schema": { "$ref": "#/definitions/User" }, "examples": { "application/json": { "Uuid": "c30eadd7-c088-4df0-b3c4-92d8d28b5501", "FirstName": "Test", "LastName": "User", "FullName": "Test User", "Username": "testuser", "Email": "test.user@example.com", "RoleUuid": "00000006-0006-0006-0006-000000000006", "RoleName": "developers", "RoleDescription": "Developer", "RoleType": "EXTERNAL", "OrganizationUuid": "4c35f9cd-8eb2-11e3-ae6b-000c2911a4db", "OrganizationName": "Sample Org", "Locale": "en", "Status": "ENABLED" } } }, "404": { "$ref": "#/responses/NotFound" } } }, "put": { "deprecated": true, "tags": [ "Deprecated" ], "summary": "Update an existing User record", "description": "The /v2/users endpoint is the new version to be used and the old /Users('{uuid}') endpoint is deprecated. If you PUT or POST with the /users endpoint, this endpoint will not function correctly and the response will be a 400. Update an existing User record", "operationId": "updateUser", "consumes": [ "application/json;charset=UTF-8" ], "produces": [], "parameters": [ { "name": "uuid", "description": "The UUID of the User to update.", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "description": "Provides the values needed to set up the User object.", "required": true, "schema": { "$ref": "#/definitions/UserPut" } } ], "responses": { "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } }, "delete": { "deprecated": true, "tags": [ "Deprecated" ], "summary": "Delete an existing User record", "description": "The /v2/users endpoint is the new version to be used and the old /Users('{uuid}') endpoint is deprecated. If you PUT or POST with the /users endpoint, this endpoint will not function correctly and the response will be a 400. Delete an existing User record. There are some limitations on what Users may be deleted. Specifically, the current User cannot be deleted and, if there is only one Organization Admin assigned to a particular Organization, that User cannot be deleted.", "operationId": "deleteUser", "produces": [], "consumes": [], "parameters": [ { "name": "uuid", "description": "The UUID of the User to delete.", "in": "path", "required": true, "type": "string" } ], "responses": { "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/v2/users": { "get": { "tags": [ "Users" ], "summary": "Returns a list of all Users based on the request parameters.", "description": "Returns a list of all Users.\n All registered users of the API Portal have a role. The functionality available to users depends on their role. The API Portal has two role categories: publisher roles and developer roles. The publisher roles are Administrator and API Owner. The developer roles are Organization Administrator and Developer. Organization Administrators can perform the same account management tasks for their organization members. However, Organization Administrators can add users belongs to his Organization. Before developers can use APIs published on the API Portal, they need developer accounts.\n You can add user account to the API Portal. If the Notify User check box is set to true, the API Portal sends an email to the user. The email message contains an activation token in a URL.\n When users register for a developer account(Developer type > Org Admin role), the API Portal sends them an account activation email. The account is then pending. To finish the self-registration process, users click the account activation link in the email and complete the Account Setup form. Users must complete the Account Setup form before the account activation token expires.\n When the User's Status is REGISTRATION_INIT, Administrators can resend the account activation email. This function helps when users cannot find, or mistakenly delete, the email. Pending accounts do not show the user's name.\n Administrators can delete pending developer accounts. When you delete pending accounts, the API Portal deletes the user records and revokes the account activation tokens.", "operationId": "getUsersV2", "consumes": [], "produces": [], "parameters": [ { "name": "username", "in": "query", "description": "String which uniquely identifies a user", "required": false, "type": "string" }, { "name": "roleUuids", "in": "query", "description": "Comma separated role UUIDs to filter the user list", "required": false, "type": "string" }, { "name": "orgUuids", "in": "query", "description": "Comma separated organisation UUIDs to filter the user list", "required": false, "type": "string" }, { "name": "status", "in": "query", "description": "Comma separated Status(es) on which users will be filtered, options are \"ENABLED\", \"LOCKED\", \"DISABLED\", \"REGISTRATION_INIT\", \"REGISTRATION_PENDING_APPROVAL\". \n Ex: ENABLED,LOCKED,DISABLED", "required": false, "type": "string" }, { "name": "count", "in": "query", "description": "If set to true, returns only the count of users that match the filters", "required": false, "type": "boolean" }, { "name": "offset", "in": "query", "description": "Skips the provided number of users from the user list.", "required": false, "type": "integer" }, { "name": "limit", "in": "query", "description": "Restricts the number of users to be fetched", "required": false, "type": "integer" }, { "name": "sortBy", "in": "query", "description": "A parameter on which users would be ordered. Allowed Values: username, firstName, lastName, email, status", "required": false, "type": "string" }, { "name": "sortOrder", "in": "query", "description": "Order i.e. in ascending/descending. Allowed Values: ASC, DESC", "required": false, "enum": [ "ASC", "DESC" ], "type": "string" }, { "name": "search", "in": "query", "description": "A parameter to signify the search intent of the API, search works when the parameter is true.", "required": false, "type": "boolean" }, { "name": "field", "in": "query", "description": "The field name to search upon, allowed values are name and email. This parameter works with search value true only", "required": false, "enum": [ "name", "email" ], "type": "string" }, { "name": "query", "in": "query", "description": "String used to do a match against users' name or email. This string must be URI-encoded. This parameter works with search value true only", "required": false, "type": "string" } ], "responses": { "200": { "description": "An object with total user count and the list of all the Users.", "schema": { "$ref": "#/definitions/UsersGetV2" }, "examples": { "application/json": { "count": 4, "list": [ { "uuid": "29678b6a-2d8c-4dd3-8532-af971ac56301", "username": "admin", "firstName": "Administrator", "lastName": "Portal", "email": "apimnoreply@ca.com", "locale": "en", "status": "ENABLED", "tenantId": "apim", "authConfigUuid": "DEFAULT", "access": [ { "roleUuid": "00000001-0001-0001-0001-000000000001", "_links": { "self": { "href": "/v2/role-mappings/d9eeaed7-076f-4449-ba3b-ca57541741c6" } } } ], "_links": { "self": { "href": "/v2/users/29678b6a-2d8c-4dd3-8532-af971ac56301" }, "roleMappings": { "href": "/v2/role-mappings?userUuids=29678b6a-2d8c-4dd3-8532-af971ac56301" } } }, { "uuid": "156d323c-80c7-4e00-b092-4aeb9f116679", "username": "apiowners0054", "firstName": "apiowners0054", "lastName": "apiowners0054", "email": "apiowners0054@ca.com", "locale": "en", "status": "REGISTRATION_INIT", "tenantId": "apim", "authConfigUuid": "DEFAULT", "access": [ { "roleUuid": "00000004-0004-0004-0004-000000000004", "_links": { "self": { "href": "/v2/role-mappings/0c9597cb-ecb0-493e-8135-2dd4dab565a7" } } } ], "_links": { "self": { "href": "/v2/users/156d323c-80c7-4e00-b092-4aeb9f116679" }, "roleMappings": { "href": "/v2/role-mappings?userUuids=156d323c-80c7-4e00-b092-4aeb9f116679" } } }, { "uuid": "320de79b-5e33-4d47-91d2-f9ba7c789615", "username": "apiowners0159", "firstName": "apiowners0159", "lastName": "apiowners0159", "email": "apiowners0159@ca.com", "locale": "en", "status": "ENABLED", "tenantId": "apim", "authConfigUuid": "DEFAULT", "access": [ { "uuid": "0a6b7ec2-5c83-4c5f-b999-851da7191316", "roleUuid": "00000004-0004-0004-0004-000000000004", "_links": { "self": { "href": "/v2/role-mappings/0a6b7ec2-5c83-4c5f-b999-851da7191316" } } } ], "_links": { "self": { "href": "/v2/users/320de79b-5e33-4d47-91d2-f9ba7c789615" }, "roleMappings": { "href": "/v2/role-mappings?userUuids=320de79b-5e33-4d47-91d2-f9ba7c789615" } } }, { "uuid": "0c0d8dc7-b899-477b-8bd5-b665aaad1b01", "username": "apiowners0189", "firstName": "apiowners0189", "lastName": "apiowners0189", "email": "apiowners0189@ca.com", "locale": "en", "status": "ENABLED", "tenantId": "apim", "authConfigUuid": "DEFAULT", "access": [ { "uuid": "2f502992-0789-4918-a69f-a50b86ef22a2", "roleUuid": "00000004-0004-0004-0004-000000000004", "_links": { "self": { "href": "/v2/role-mappings/2f502992-0789-4918-a69f-a50b86ef22a2" } } } ], "_links": { "self": { "href": "/v2/users/0c0d8dc7-b899-477b-8bd5-b665aaad1b01" }, "roleMappings": { "href": "/v2/role-mappings?userUuids=0c0d8dc7-b899-477b-8bd5-b665aaad1b01" } } } ], "_links": { "self": { "href": "/v2/users?sortBy=username&sortOrder=DESC&roleUuids=00000001-0001-0001-0001-000000000001,00000004-0004-0004-0004-000000000004&status=ENABLED,REGISTRATION_INIT&offset=0&limit=20" }, "next": { "href": "/v2/users?sortBy=username&sortOrder=DESC&roleUuids=00000001-0001-0001-0001-000000000001,00000004-0004-0004-0004-000000000004&status=ENABLED,REGISTRATION_INIT&offset=20&limit=20" } } } } }, "400": { "$ref": "#/responses/BadRequest" }, "500": { "$ref": "#/responses/InternalServerError" } } }, "post": { "tags": [ "Users" ], "summary": "Create a new User", "description": "Create a new User", "operationId": "createUserV2", "consumes": [ "application/json;charset=UTF-8" ], "produces": [], "parameters": [ { "name": "body", "in": "body", "description": "Provides the values needed to set up the User object.", "required": true, "schema": { "$ref": "#/definitions/UserPostV2" } } ], "responses": { "201": { "description": "An object describing a single newly created User.", "schema": { "$ref": "#/definitions/UserV2" }, "examples": { "application/json": { "username": "adminuser", "firstName": "Admin", "lastName": "User", "status": "ENABLED", "locale": "en", "email": "adminuser@ca.com", "password": "************", "access": [ { "roleUuid": "00000001-0001-0001-0001-000000000001" } ] } } }, "400": { "$ref": "#/responses/BadRequest" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/v2/users/{uuid}": { "get": { "tags": [ "Users" ], "summary": "Returns a single User", "description": "Returns a single User", "operationId": "getUserV2", "consumes": [], "produces": [], "parameters": [ { "name": "uuid", "description": "The UUID of the User to return.", "in": "path", "required": true, "type": "string" } ], "responses": { "200": { "description": "An object describing a single User.", "schema": { "$ref": "#/definitions/UserV2" }, "examples": { "application/json": { "uuid": "97bb272c-e228-4f65-bd60-4a8c8a0e5936", "username": "adminuser", "firstName": "Test", "lastName": "Administrator", "email": "adminuser@ca.com", "locale": "en", "status": "ENABLED", "tenantId": "apim", "authConfigUuid": "DEFAULT", "access": [ { "roleUuid": "00000001-0001-0001-0001-000000000001", "_links": { "self": { "href": "/v2/role-mappings/d9eeaed7-076f-4449-ba3b-ca57541741c6" } } } ], "_links": { "self": { "href": "/v2/users/97bb272c-e228-4f65-bd60-4a8c8a0e5936" }, "roleMappings": { "href": "/v2/role-mappings?userUuids=97bb272c-e228-4f65-bd60-4a8c8a0e5936" } } } } }, "400": { "$ref": "#/responses/BadRequest" }, "500": { "$ref": "#/responses/InternalServerError" } } }, "put": { "tags": [ "Users" ], "summary": "Update an existing User record", "description": "Update an existing User record", "operationId": "updateUserV2", "consumes": [ "application/json;charset=UTF-8" ], "produces": [], "parameters": [ { "name": "uuid", "description": "The UUID of the User to update.", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "description": "Provides the values needed to set up the User object.", "required": true, "schema": { "$ref": "#/definitions/UserPutV2" } } ], "responses": { "201": { "description": "An object describing updated User details.", "schema": { "$ref": "#/definitions/UserV2" }, "examples": { "application/json": { "username": "adminuser", "firstName": "Admin", "lastName": "User", "status": "ENABLED", "locale": "en", "email": "adminuser@ca.com", "access": [ { "roleUuid": "00000001-0001-0001-0001-000000000001" } ] } } }, "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } }, "delete": { "tags": [ "Users" ], "summary": "Delete an existing User record", "description": "Delete an existing User record.", "operationId": "deleteUserV2", "produces": [], "consumes": [], "parameters": [ { "name": "uuid", "description": "The UUID of the User to delete.", "in": "path", "required": true, "type": "string" } ], "responses": { "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/v2/role-mappings": { "get": { "tags": [ "Role Mappings" ], "summary": "Returns a list of all Role Mappings based on the request parameters.", "description": "Returns a list of all Role Mappings based on the request parameters.", "operationId": "getRoleMappings", "consumes": [], "produces": [], "parameters": [ { "name": "userUuids", "in": "query", "description": "Comma separated user UUIDs to filter the user-org-role mappings list", "required": false, "type": "string" }, { "name": "roleUuids", "in": "query", "description": "Comma separated role UUIDs to filter the user-org-role mappings list", "required": false, "type": "string" }, { "name": "orgUuids", "in": "query", "description": "Comma separated organisation UUIDs to filter the user-org-role mappings list", "required": false, "type": "string" }, { "name": "offset", "in": "query", "description": "Skips the provided number of Role Mappings from the list.", "required": false, "type": "integer" }, { "name": "limit", "in": "query", "description": "Restricts the number of Role Mappings to be fetched", "required": false, "type": "integer" } ], "responses": { "200": { "description": "An object with total User-Org-Role association count and the list of all the User-Org-Role associations.", "schema": { "$ref": "#/definitions/RoleMappingsGet" }, "examples": { "application/json": { "count": 3, "list": [ { "uuid": "38d3ed84-1578-4c91-9670-54d6fa1e26b3", "userUuid": "97bb272c-e228-4f65-bd60-4a8c8a0e5936", "orgUuid": "0f7a1dfe-6efb-4d9a-b506-fc8bf37c2175", "roleUuid": "00000005-0005-0005-0005-000000000005", "_links": { "self": { "href": "/v2/role-mappings/38d3ed84-1578-4c91-9670-54d6fa1e26b3" }, "user": { "href": "/v2/users/97bb272c-e228-4f65-bd60-4a8c8a0e5936" } } }, { "uuid": "b6c348d3-2040-4868-8589-fa62c586cbb6", "userUuid": "97bb272c-e228-4f65-bd60-4a8c8a0e5936", "orgUuid": "7e76127f-a5d8-412f-bdaa-7a9391786743", "roleUuid": "00000006-0006-0006-0006-000000000006", "_links": { "self": { "href": "/v2/role-mappings/b6c348d3-2040-4868-8589-fa62c586cbb6" }, "user": { "href": "/v2/users/97bb272c-e228-4f65-bd60-4a8c8a0e5936" } } }, { "uuid": "0d9442e7-7139-4ab2-8ad5-019222f0ed05", "userUuid": "44e9c483-e228-4f65-bd60-4a8c8a0e5936", "orgUuid": "157a1231-6efb-4d9a-b506-fc8bf37c2882", "roleUuid": "00000006-0006-0006-0006-000000000006", "_links": { "self": { "href": "/v2/role-mappings/0d9442e7-7139-4ab2-8ad5-019222f0ed05" }, "user": { "href": "/v2/users/44e9c483-e228-4f65-bd60-4a8c8a0e5936" } } } ], "_links": { "self": { "href": "/v2/role-mappings?limit=20&offset=0" }, "next": { "href": "/v2/role-mappings?limit=20&offset=20" } } } } }, "400": { "$ref": "#/responses/BadRequest" }, "500": { "$ref": "#/responses/InternalServerError" } } }, "post": { "tags": [ "Role Mappings" ], "summary": "Create a new association between the user, organisation and role", "description": "This api will create an association between the user, organisation and role provided via request body", "operationId": "createRoleMappings", "consumes": [ "application/json;charset=UTF-8" ], "produces": [], "parameters": [ { "name": "body", "in": "body", "description": "Provides the values needed to set up the User-Org-Role association.", "required": true, "schema": { "$ref": "#/definitions/RoleMappingBasic" } } ], "responses": { "201": { "description": "An object describing a single newly created User.", "schema": { "$ref": "#/definitions/RoleMapping" }, "examples": { "application/json": { "uuid": "38d3ed84-1578-4c91-9670-54d6fa1e26b3", "userUuid": "97bb272c-e228-4f65-bd60-4a8c8a0e5936", "orgUuid": "0f7a1dfe-6efb-4d9a-b506-fc8bf37c2175", "roleUuid": "00000005-0005-0005-0005-000000000005", "_links": { "self": { "href": "/v2/role-mappings/38d3ed84-1578-4c91-9670-54d6fa1e26b3" }, "user": { "href": "/v2/users/97bb272c-e228-4f65-bd60-4a8c8a0e5936" } } } } }, "400": { "$ref": "#/responses/BadRequest" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/v2/role-mappings/{roleMappingUuid}": { "get": { "tags": [ "Role Mappings" ], "summary": "Returns a single Role Mapping", "description": "Returns a single Role Mapping", "operationId": "getRoleMapping", "consumes": [], "produces": [], "parameters": [ { "name": "roleMappingUuid", "description": "The UUID of the ROLE MAPPING resource which needs to be fetched.", "in": "path", "required": true, "type": "string" } ], "responses": { "200": { "description": "An object describing a User-Org-Role association.", "schema": { "$ref": "#/definitions/RoleMapping" }, "examples": { "application/json": { "uuid": "38d3ed84-1578-4c91-9670-54d6fa1e26b3", "userUuid": "97bb272c-e228-4f65-bd60-4a8c8a0e5936", "orgUuid": "0f7a1dfe-6efb-4d9a-b506-fc8bf37c2175", "roleUuid": "00000005-0005-0005-0005-000000000005", "_links": { "self": { "href": "/v2/role-mappings/38d3ed84-1578-4c91-9670-54d6fa1e26b3" }, "user": { "href": "/v2/users/97bb272c-e228-4f65-bd60-4a8c8a0e5936" } } } } }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } }, "put": { "tags": [ "Role Mappings" ], "summary": "Update an existing Role Mapping record", "description": "Update an existing Role Mapping record", "operationId": "updateRoleMapping", "consumes": [ "application/json;charset=UTF-8" ], "produces": [], "parameters": [ { "name": "roleMappingUuid", "description": "The UUID associated to the User-Org-Role mapping.", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "description": "Provides the values needed to set up the User-Org-Role association.", "required": true, "schema": { "$ref": "#/definitions/RoleMappingBasic" } } ], "responses": { "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } }, "delete": { "tags": [ "Role Mappings" ], "summary": "Delete an existing Role Mapping record", "description": "Delete an existing Role Mapping record.", "operationId": "deleteRoleMapping", "produces": [], "consumes": [], "parameters": [ { "name": "roleMappingUuid", "description": "The UUID associated to the User-Org-Role mapping.", "in": "path", "required": true, "type": "string" } ], "responses": { "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/Requests": { "get": { "tags": [ "Requests" ], "summary": "Returns a list of all Developer Requests.", "operationId": "getRequests", "description": "Returns a list of Developer Requests.There are two possible request types that developers can create. Registration Requests originate from individuals seeking to register an Organization and associated Admin User. Application Requests originate from developers who want a key for their application. Listing and viewing Developer Requests is restricted to those users with an Administrator or API Owner role. Administrators can list and view both Registration and Application Requests while API owners can only list and view Application Requests", "consumes": [], "produces": [], "parameters": [], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/Requests" }, "examples": { "application/json": [ { "Action": null, "EntityUuid": "79fc6f4c-5cd5-4cfd-a811-5a71daaf53e9", "OrganizationName": "SampleOrg", "OrganizationUuid": "6276d779-ee21-409a-b59f-445dad682f73", "Payload": null, "PreviousState": null, "Reason": null, "RequestStatus": "PENDING", "RequestType": "APPLICATION", "Uuid": "aa9b4340-249f-4b6f-9416-20b2efeaa57b" }, { "Action": null, "EntityUuid": "bde6f229-cd1e-4f22-99f6-2e43abb6859f", "OrganizationName": "New Organization", "OrganizationUuid": "7c4497c1-3455-4b05-9230-2368d11c73ef", "Payload": null, "PreviousState": null, "Reason": null, "RequestStatus": "PENDING", "RequestType": "REGISTRATION", "Uuid": "8768cdbc-a817-4f69-aa1c-7ef47df0ec68" }, { "Action": null, "EntityUuid": "cd848045-77d0-40b2-bbef-e2437a477955", "OrganizationName": "SampleOrg1", "OrganizationUuid": "6276d779-ee21-409a-b59f-445dad682f73", "Payload": null, "PreviousState": null, "Reason": "One of the APIs you have requested access to requires manager approval.", "RequestStatus": "REJECTED", "RequestType": "APPLICATION", "Uuid": "f37a3026-e250-4834-9052-071576606aaa" } ] } } } } }, "/Requests('{uuid}')": { "get": { "tags": [ "Requests" ], "summary": "Get a specific Request.", "operationId": "getRequest", "description": "Get a specific Request.", "consumes": [], "produces": [], "parameters": [ { "name": "uuid", "description": "The UUID of the request to return.", "in": "path", "required": true, "type": "string" } ], "responses": { "200": { "description": "An object describing a single Request.", "schema": { "$ref": "#/definitions/Request" }, "examples": { "application/json": { "Action": null, "EntityUuid": "cd848045-77d0-40b2-bbef-e2437a477955", "OrganizationName": "SampleOrg1", "OrganizationUuid": "6276d779-ee21-409a-b59f-445dad682f73", "Payload": null, "PreviousState": null, "Reason": "You are requesting access to a deprecated API", "RequestStatus": "REJECTED", "RequestType": "APPLICATION", "Uuid": "f37a3026-e250-4834-9052-071576606aaa" } } }, "404": { "$ref": "#/responses/NotFound" } } }, "put": { "tags": [ "Requests" ], "summary": "Update a specific Request.", "operationId": "updateRequest", "description": "Update a specific Request. Support for updating a Request is provided to allow authorized users to accept or reject a Request. A Request can be accepted by setting the Action field to 'ACCEPT' and by optionally setting the Reason field to provide an explanation for the approval. A Request can be rejected by setting the Action field to 'REJECT' and by further setting the Reason field to provide a required explanation as to why the request was rejected. Updates to other fields will be ignored.", "consumes": [ "application/json;charset=UTF-8" ], "produces": [], "parameters": [ { "name": "uuid", "description": "The UUID of the request to return.", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "description": "Provides the values needed to update the Request.", "required": true, "schema": { "$ref": "#/definitions/Request" } } ], "responses": { "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" } } } }, "/search/query": { "get": { "tags": [ "Search" ], "summary": "search", "operationId": "getSearch", "description": " Search for portal entities by keyword", "consumes": [ "application/json" ], "produces": [ "application/json" ], "parameters": [ { "name": "searchFilter", "in": "query", "description": "Query for search", "required": true, "type": "string" }, { "name": "searchType", "in": "query", "description": "Entity to search", "required": true, "type": "string", "enum": [ "ALL", "API", "APPLICATION", "CQ" ] }, { "name": "page", "in": "query", "description": "Page result to view. Page 1 is the first page", "required": false, "type": "integer" }, { "name": "size", "in": "query", "description": "The number of results page. Defaults to 10", "required": false, "type": "integer" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/Search" }, "examples": { "application/json": { "last": true, "numberOfElements": 1, "totalElements": 1, "totalPages": 1, "maxElementsPerPage": 3, "content": [ { "uuid": "3c1a3777-a06b-4665-9a7e-e7e559c02bc4", "name": "portal authorization api (apim)", "description": "provides access to portal rbac apis for programmatically interacting with your portal", "accessStatus": "PRIVATE", "orgs": "0841c287-56d6-4d16-9aaf-60173d3074d3", "type": "API", "score": "0.08453174", "link": "/admin/app/api-catalog#list/name/portal authorization api (apim)", "portalStatus": "ENABLED" } ], "number": 0 } } } } } }, "/search/autosuggest": { "get": { "tags": [ "Search" ], "summary": "autosuggest", "operationId": "getAutoSuggest", "description": " AutoSuggests by keyword", "consumes": [ "application/json" ], "produces": [ "application/json" ], "parameters": [ { "name": "q", "in": "query", "description": "Query for autosuggest", "required": true, "type": "string" }, { "name": "top", "in": "query", "description": "Number of suggestions. Defaults to 5", "required": false, "type": "integer" }, { "name": "type", "in": "query", "description": "Entity being searched", "required": true, "type": "string", "enum": [ "API" ] } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/Search" }, "examples": { "application/json": { "top": 5, "found": 1, "type": "API", "suggestions": [ { "term": "Local", "field": "name" } ] } } } } } }, "/Settings('{input}')": { "get": { "tags": [ "Settings" ], "summary": "Returns the value of a given portal setting by its name", "description": "Returns the value of a given portal setting by its name.\n The following settings can be retrieved using this method:\n GOOGLE_ANALYTICS_ID: Google Analytics tracking is enabled in the Portal when providing the Google Analytics code via this setting, Values (e.g. Google Analytics ID e.g. UA-XXXXX-XX);\n ACTIVATE_MSSO: Enables/disables Portal-based support for MAG Mobile Single Sign On clients. Values (true, false);\n APPLICATION_REQUEST_WORKFLOW: Enables/disables approval process when creating applications, Values (ENABLED, DISABLED);\n EDIT_APPLICATION_REQUEST_WORKFLOW: Enables/disables approval process when editing applications, Values (ENABLED, DISABLED);\n APP_EDIT_WF_EXCLUDE_PROPS: Allows to specify a list of fields that users can change without requiring approval process when editing applications, Values (e.g. {\"Fields\":[\"Name\",\"Description\",\"Status\"],\"CustomFields\":[\"MyCustomField\",\"AnotherCustomField\"]}); \nThe CustomFields object array values matches the actual name of the Custom Field.\nEXT_USER_DASHBOARD_URI: Returns the URI of the Dashboard seen by external users (e.g. \"/app/mydashboard.html\")\nFEATURE_FLAG_INTEGRATION_ENGINE: Enables/disables integrations in the Portal. \nPerform a GET request to retrieve the Uuid for the setting. Then call a PUT request to enable the integration. E.g. {\"Name\": \"FEATURE_FLAG_INTEGRATION_ENGINE\",\"Uuid\":\"<GENERATED_UUID>\",\"Value\": \"true\"}", "operationId": "getSetting", "consumes": [], "produces": [], "parameters": [ { "name": "input", "description": "Name of the setting", "in": "path", "required": true, "type": "string" } ], "responses": { "200": { "description": "An object describing a single Setting.", "schema": { "$ref": "#/definitions/Setting" }, "examples": { "application/json": { "Uuid": "4f33be8f-186a-11e6-8d57-000c295530e4", "Name": "ACTIVATE_MSSO", "Value": "false" } } }, "404": { "$ref": "#/responses/NotFound" } } }, "put": { "tags": [ "Settings" ], "summary": "Updates the value of a given portal setting by its name or uuid", "description": "Updates the value of a given portal setting by its name or uuid.\n The following settings can be retrieved using this method:\n GOOGLE_ANALYTICS_ID: Google Analytics tracking is enabled in the Portal when providing the Google Analytics code via this setting, Values (e.g. Google Analytics ID e.g. UA-XXXXX-XX);\n ACTIVATE_MSSO: Enables/disables Portal-based support for MAG Mobile Single Sign On clients. Values (true, false);\n APPLICATION_REQUEST_WORKFLOW: Enables/disables approval process when creating applications, Values (ENABLED, DISABLED);\n EDIT_APPLICATION_REQUEST_WORKFLOW: Enables/disables approval process when editing applications, Values (ENABLED, DISABLED);\n APP_EDIT_WF_EXCLUDE_PROPS: Allows to specify a list of fields that users can change without requiring approval process when editing applications, Values (e.g. {\"Fields\":[\"Name\",\"Description\",\"Status\"],\"CustomFields\":[\"MyCustomField\",\"AnotherCustomField\"]});\nThe CustomFields object array values must match the actual name of the Custom Field. The minimum json structure is {\\\"Fields\\\":[],\\\"CustomFields\\\":[]}.\nEXT_USER_DASHBOARD_URI: Updates the URI of the Dashboard seen by external users (e.g. \"/admin/app/dashboard.html\")\nFEATURE_FLAG_INTEGRATION_ENGINE: Enables/disables integrations in the Portal. \nPerform a GET request to retrieve the Uuid for the setting. Then call a PUT request to enable the integration. E.g. {\"Name\": \"FEATURE_FLAG_INTEGRATION_ENGINE\",\"Uuid\":\"<GENERATED_UUID>\",\"Value\": \"true\"}", "operationId": "updateSetting", "consumes": [ "application/json;charset=UTF-8" ], "produces": [], "parameters": [ { "name": "input", "description": "Name of the setting", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "description": "Provides the values needed to set up the Setting object.", "required": true, "schema": { "$ref": "#/definitions/Setting" } } ], "responses": { "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/developerRoleTypes": { "get": { "tags": [ "Users" ], "summary": "List All Developer Role Types", "operationId": "getDeveloperRoleTypes", "description": "List All Developer Role Types. The developer roles are Organization Administrator and Developer. Each developer organization needs at least one Organization Administrator. An Organization Administrator can be an application developer. The devorgadministrators or the Organization Administrator role can: test and Explore APIs, edit user accounts, reset user passwords, edit your user profile, add applications, edit applications. The developers or Developer role can: test and explore APIs, edit your user profile and edit applications.;\nEXT_USER_DASHBOARD_URI: Updates the URI of the Dashboard seen by external users (e.g. \"/admin/app/dashboard.html\")", "consumes": [], "produces": [], "parameters": [], "responses": { "200": { "description": "A list of all valid developer role types in the system.", "schema": { "$ref": "#/definitions/RoleTypes" }, "examples": { "application/json": { "developerRoleTypes": [ { "uuid": "00000005-0005-0005-0005-000000000005", "name": "devorgadministrators" }, { "uuid": "00000006-0006-0006-0006-000000000006", "name": "developers" } ] } } } } } }, "/publisherRoleTypes": { "get": { "tags": [ "Users" ], "summary": "List All Publisher Role Types", "operationId": "getPublisherRoleTypes", "description": "List All Publisher Role Types. The portaladministrators or Administrator role can do everything in the API Portal: customize the API Portal, add and edit API EULAs, publish and edit APIs, test and explore APIs, add and edit account plans, add and edit developer organizations, add users, edit user accounts, edit your user profile, add applications and edit applications. The API Portal needs at least one Administrator. The apiowners or API Owner role can add and edit API EULAs, publish and edit APIs, test and explore APIs, edit his profile, add applications and edit applications. ", "consumes": [], "produces": [], "parameters": [], "responses": { "200": { "description": "A list of all valid publisher role types in the system.", "schema": { "$ref": "#/definitions/RoleTypes" }, "examples": { "application/json": { "publisherRoleTypes": [ { "uuid": "00000001-0001-0001-0001-000000000001", "name": "portaladministrators" }, { "uuid": "00000004-0004-0004-0004-000000000004", "name": "apiowners" } ] } } } } } }, "/languages": { "get": { "tags": [ "Users" ], "summary": "List All languages", "operationId": "getLanguages", "description": "List All languages. Only English is the supported language type.", "consumes": [], "produces": [], "parameters": [], "responses": { "200": { "description": "A list of all language codes in the system.", "schema": { "$ref": "#/definitions/Languages" }, "examples": { "application/json": { "languages": [ { "uuid": "en", "name": "en" } ] } } } } } }, "/policyTemplates": { "get": { "tags": [ "Apis" ], "summary": "Returns a list of all Policy Templates.", "operationId": "getPolicyTemplates", "description": "Returns a list of all Policy Templates.\n Policy templates allow you to create simple policies for the API such as authentication details. Policy Templates are required to publish an API.", "consumes": [], "produces": [], "parameters": [], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/PolicyTemplates" }, "examples": { "application/json": { "policyTemplates": [ { "uuid": "72093738-871a-45bd-b114-ad3a61893ac0", "encassId": "e7a1c1c4e504ff21d29611f9ff85463b", "name": "Standard Policy Template - API Key", "description": "This policy template applies an API Key check to all API access calls. NOTE: API Key authentication is not considered a secure authentication method. The use of this policy template is recommended for testing purposes only.", "policyGuid": "5a1aa929-3c23-40f4-8558-146a916fe7bb", "fragmentDetails": { "hasRouting": true, "parsedPolicyDetails": "" }, "arguments": [ { "name": "debugMode", "type": "boolean", "label": "Debug Mode" }, { "name": "email", "type": "string", "label": "Email (SLA notifications will be sent to this address)" }, { "name": "sla", "type": "int", "label": "SLA (ms)" }, { "name": "smtpServer", "type": "string", "label": "SMTP Server (your email gateway)" }, { "name": "sslEnabled", "type": "boolean", "label": "SSL" } ], "default": true }, { "uuid": "172594b6-18ba-4b0c-8d61-807db457e81d", "encassId": "4c5453d9a34fa56f13df266ac9483439", "name": "Standard Policy Template - No Auth", "description": "This policy template applies NO authentication checks. The use of this policy template is recommended for testing purposes only, or for proxying third-party APIs (such as Twitter) which have their own authentication requirements.", "policyGuid": "166942f6-ba87-40a7-a1b3-02f00fd9152b", "fragmentDetails": { "hasRouting": true, "parsedPolicyDetails": "" }, "arguments": [ { "name": "debugMode", "type": "boolean", "label": "Debug Mode" }, { "name": "email", "type": "string", "label": "Email (SLA notifications will be sent to this address)" }, { "name": "sla", "type": "int", "label": "SLA (ms)" }, { "name": "smtpServer", "type": "string", "label": "SMTP Server (your email gateway)" }, { "name": "sslEnabled", "type": "boolean", "label": "SSL" } ], "default": false }, { "uuid": "2e69dcfb-2302-4959-b43c-1931a152b8e4", "encassId": "4c5453d9a34fa56f13df266ac9483568", "name": "Standard Policy Template - OAuth 2.0", "description": "This policy template applies an OAuth 2 check to all API access calls, and is appropriate for both two- and three-legged OAuth implementations. The following grant types are supported: Implicit, Client Credentials, Resource Owner Password Credentials, and Authorization Code.", "policyGuid": "549dfaca-1026-4c22-a38f-08bcde5153cb", "fragmentDetails": { "hasRouting": true, "parsedPolicyDetails": "" }, "arguments": [ { "name": "debugMode", "type": "boolean", "label": "Debug Mode" }, { "name": "email", "type": "string", "label": "Email (SLA notifications will be sent to this address)" }, { "name": "sla", "type": "int", "label": "SLA (ms)" }, { "name": "smtpServer", "type": "string", "label": "SMTP Server (your email gateway)" }, { "name": "sslEnabled", "type": "boolean", "label": "SSL" } ], "default": false } ] } } } } } }, "/deployments/1.0/apis/{apiUuid}/proxies": { "get": { "tags": [ "ApiDeployments" ], "summary": "Returns the list of proxies where the API is deployed", "description": "Returns the list of proxies where the API is deployed.", "operationId": "getApiDeploymentsUsingGET_1", "consumes": [ "application/json" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "apiUuid", "in": "path", "description": "The API UUID.", "required": true, "type": "string" } ], "responses": { "200": { "description": "Success", "schema": { "type": "array", "items": { "$ref": "#/definitions/ApiDeployDto" } } }, "400": { "description": "Bad request due to a validation error." }, "404": { "description": "Entity not found" } } }, "post": { "tags": [ "ApiDeployments" ], "summary": "Triggers the deployment of the API to the proxy", "description": "The API will be deployed to the specified proxy.", "operationId": "createApiDeploymentUsingPOST_1", "consumes": [ "application/json;charset=UTF-8" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "apiUuid", "in": "path", "description": "The API UUID.", "required": true, "type": "string" }, { "in": "body", "name": "apiDeployCreateDto", "description": "The API deployment to create.", "required": false, "schema": { "$ref": "#/definitions/ApiDeployCreateDto" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/ApiDeployDto" } }, "400": { "description": "Bad request due to a validation error." }, "404": { "description": "Entity not found" } } } }, "/deployments/1.0/apis/{apiUuid}/proxies/{proxyUuid}": { "get": { "tags": [ "ApiDeployments" ], "summary": "Retrieves API's deployment details for the given proxy", "description": "Retrieves API's deployment details for the specified proxy.", "operationId": "getApiDeploymentUsingGET_1", "consumes": [ "application/json" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "apiUuid", "in": "path", "description": "The API UUID.", "required": true, "type": "string" }, { "name": "proxyUuid", "in": "path", "description": "The proxy UUID.", "required": true, "type": "string" } ], "responses": { "200": { "description": "Success", "schema": { "$ref": "#/definitions/ApiDeployDto" } }, "400": { "description": "Bad request due to a validation error." }, "404": { "description": "Entity not found" } } }, "put": { "tags": [ "ApiDeployments" ], "summary": "Updates API's deployment status for a proxy", "description": "Updates the specified API's deployment status and message for the specified proxy.", "operationId": "updateApiDeploymentUsingPUT", "consumes": [ "application/json;charset=UTF-8" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "apiUuid", "in": "path", "description": "The API UUID.", "required": true, "type": "string" }, { "name": "proxyUuid", "in": "path", "description": "The proxy UUID.", "required": true, "type": "string" }, { "in": "body", "name": "apiDeployUpdateDto", "description": "The updated API deployment.", "required": false, "schema": { "$ref": "#/definitions/ApiDeployUpdateDto" } } ], "responses": { "200": { "description": "Success", "schema": { "$ref": "#/definitions/ApiDeployDto" } }, "400": { "description": "Bad request due to a validation error." }, "404": { "description": "Entity not found" } } }, "delete": { "tags": [ "ApiDeployments" ], "summary": "Un-deploys the API from the proxy", "description": "Un-deploys the specified API from the specified proxy.", "operationId": "deleteApiDeploymentUsingDELETE_1", "consumes": [ "application/json" ], "produces": [ "application/json" ], "parameters": [ { "name": "apiUuid", "in": "path", "description": "The API UUID.", "required": true, "type": "string" }, { "name": "proxyUuid", "in": "path", "description": "The proxy UUID.", "required": true, "type": "string" } ], "responses": { "204": { "description": "Success" }, "400": { "description": "Bad request due to a validation error." }, "404": { "description": "Entity not found" } } } }, "/deployments/0.1/proxies/{uuid}/deployment-type": { "get": { "tags": [ "Proxies" ], "summary": "Returns the deployment types for the proxy.", "operationId": "getDeploymentTypesUsingGET_1", "consumes": [ "application/json" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "uuid", "in": "path", "description": "The proxy UUID to update.", "required": true, "type": "string" } ], "responses": { "200": { "description": "Success", "schema": { "$ref": "#/definitions/DeploymentTypesDto" } } }, "deprecated": false } }, "/deployments/0.1/proxies/{uuid}/deployment-type/{entity}":{ "put":{ "tags":[ "Proxies" ], "summary":"Updates the deployment type for the proxy.", "operationId":"updateDeploymentTypeUsingPUT", "consumes":[ "application/json" ], "produces":[ "application/json;charset=UTF-8" ], "parameters":[ { "name":"uuid", "in":"path", "description":"The proxy UUID to update.", "required":true, "type":"string" }, { "name":"entity", "in":"path", "description":"The proxy deployment type to update.", "required":true, "type":"string" }, { "in":"body", "name":"body", "description":"The updated proxy deployment type.", "required":true, "schema":{ "$ref":"#/definitions/EntityDeploymentTypeDto" } } ], "responses":{ "204":{ "description":"No Content" } }, "deprecated":false } }, "/deployments/1.0/api-keys/{apiKey}/proxies":{ "get":{ "tags":[ "Api Key Deployments" ], "summary":"Returns the list of proxies and the API key's deployment details, including status, message, and where the API key is deployed.", "description":"Returns the list of proxies and the API key's deployment details, including status, message, and where the API key is deployed.", "operationId":"getApiKeyDeploymentsUsingGET_1", "consumes":[ "application/json" ], "produces":[ "application/json;charset=UTF-8" ], "parameters":[ { "name":"apiKey", "in":"path", "description":"The API Key.", "required":true, "type":"string" } ], "responses":{ "200":{ "description":"Success", "schema":{ "type":"array", "items":{ "$ref":"#/definitions/ApiKeyDeploymentDto" } } }, "400":{ "description":"Bad request due to a validation error." }, "404":{ "description":"Entity not found" } }, "deprecated":false }, "post":{ "tags":[ "Api Key Deployments" ], "summary":"Deploys the API key to the proxy.", "description":"The API Key will be deployed to the specified proxy.", "operationId":"createApiKeyDeploymentUsingPOST_1", "consumes":[ "application/json" ], "produces":[ "application/json;charset=UTF-8" ], "parameters":[ { "name":"apiKey", "in":"path", "description":"The API Key.", "required":true, "type":"string" }, { "in":"body", "name":"apiDeploymentCreateDto", "description":"The API deployment to create.", "required":true, "schema":{ "$ref":"#/definitions/ApiDeploymentCreateDto" } } ], "responses":{ "201":{ "description":"Created", "schema":{ "$ref":"#/definitions/ApiKeyDeploymentDto" } }, "400":{ "description":"Bad request due to a validation error." }, "404":{ "description":"Entity not found" } }, "deprecated":false } }, "/deployments/1.0/api-keys/{apiKey}/proxies/{proxyUuid}":{ "get":{ "tags":[ "Api Key Deployments" ], "summary":"Returns the API key's deployment details (status, message, and where the API key is deployed) for the proxy.", "description":"Retrieves API Key's deployment details for the given proxy.", "operationId":"getApiKeyDeploymentUsingGET_1", "consumes":[ "application/json" ], "produces":[ "application/json;charset=UTF-8" ], "parameters":[ { "name":"apiKey", "in":"path", "description":"The API Key.", "required":true, "type":"string" }, { "name":"proxyUuid", "in":"path", "description":"The proxy UUID.", "required":true, "type":"string" } ], "responses":{ "200":{ "description":"Success", "schema":{ "$ref":"#/definitions/ApiKeyDeploymentDto" } }, "400":{ "description":"Bad request due to a validation error." }, "404":{ "description":"Entity not found" } }, "deprecated":false }, "put":{ "tags":[ "Api Key Deployments" ], "summary":"Updates the API key's deployment details (status, message, and where the API key is deployed) for the proxy.", "description":"Updates the specified API key's deployment status and message for the specified proxy.", "operationId":"updateApiKeyDeploymentUsingPUT_1", "consumes":[ "application/json" ], "produces":[ "application/json;charset=UTF-8" ], "parameters":[ { "name":"apiKey", "in":"path", "description":"The API Key.", "required":true, "type":"string" }, { "name":"proxyUuid", "in":"path", "description":"The proxy UUID.", "required":true, "type":"string" }, { "in":"body", "name":"apiDeploymentUpdateDto", "description":"The updated API deployment.", "required":true, "schema":{ "$ref":"#/definitions/ApiDeploymentUpdateDto" } } ], "responses":{ "200":{ "description":"Success", "schema":{ "$ref":"#/definitions/ApiKeyDeploymentDto" } }, "400":{ "description":"Bad request due to a validation error." }, "404":{ "description":"Entity not found" } }, "deprecated":false }, "delete":{ "tags":[ "Api Key Deployments" ], "summary":"Undeploys the API key from the proxy.", "description":"Un-deploys the specified API Key from the specified proxy.", "operationId":"deleteApiKeyDeploymentUsingDELETE_1", "consumes":[ "application/json" ], "produces":[ "application/json;charset=UTF-8" ], "parameters":[ { "name":"apiKey", "in":"path", "description":"The API Key.", "required":true, "type":"string" }, { "name":"proxyUuid", "in":"path", "description":"The proxy UUID.", "required":true, "type":"string" } ], "responses":{ "400":{ "description":"Bad request due to a validation error." }, "204":{ "description":"Success" }, "404":{ "description":"Entity not found" } }, "deprecated":false } }, "/deployments/1.0/proxies": { "get": { "tags": [ "Proxies" ], "summary": "Returns the list of all proxies associated with the Portal", "description": "Returns the list of all proxies associated with the Portal. Proxies with an enrollment status of pending are ready to be enrolled with the Portal using the enrollment url returned. Active proxies have already been enrolled and are ready to use.", "operationId": "getProxiesUsingGET_1", "consumes": [ "application/json" ], "produces": [ "application/json;charset=UTF-8" ], "responses": { "200": { "description": "Success", "schema": { "type": "array", "items": { "$ref": "#/definitions/proxy" } } } } }, "post": { "tags": [ "Proxies" ], "summary": "Creates an enrollment URL for a proxy", "description": "A proxy is a runtime environment where APIs, Applications, and Account Plans are deployed. Proxies are initially created in a pending state with a new enrollment URL. Each proxy has a deployment type setting which can be set as AUTOMATIC, ON_DEMAND or MANUAL. A proxy with a pending status is ready to be enrolled with the Portal. Once enrolled a proxy transitions to an active state and is ready to use.", "operationId": "createProxyUsingPOST", "consumes": [ "application/json;charset=UTF-8" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "in": "body", "name": "body", "description": "The proxy to create.", "required": true, "schema": { "$ref": "#/definitions/ProxyDeployCreateDto" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/proxy" } }, "400": { "description": "Bad request due to a validation error." } } } }, "/deployments/1.0/proxies/{uuid}": { "get": { "tags": [ "Proxies" ], "summary": "Returns a specific proxy", "description": "Returns details about the specified proxy. A proxy with an enrollment status of pending is ready to be enrolled with the Portal using the enrollment url returned. An active proxy is enrolled and ready to use.", "operationId": "getProxyUsingGET", "consumes": [ "application/json" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "uuid", "in": "path", "description": "The proxy UUID to get.", "required": true, "type": "string" } ], "responses": { "200": { "description": "Success", "schema": { "$ref": "#/definitions/proxy" } }, "404": { "description": "Entity not found" } } }, "put": { "tags": [ "Proxies" ], "summary": "Update a specific proxy", "description": "Active proxies can be updated to change their name and/or deployment type setting.", "operationId": "updateProxyUsingPUT", "consumes": [ "application/json;charset=UTF-8" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "uuid", "in": "path", "description": "The proxy UUID to update.", "required": true, "type": "string" }, { "in": "body", "name": "body", "description": "The updated proxy.", "required": true, "schema": { "$ref": "#/definitions/ProxyDeployUpdateDto" } } ], "responses": { "200": { "description": "Success", "schema": { "$ref": "#/definitions/proxy" } }, "400": { "description": "Bad request due to a validation error." }, "404": { "description": "Entity not found" } } }, "delete": { "tags": [ "Proxies" ], "summary": "Delete a specific proxy", "description": "A proxy can be deleted which will prevent any entities from being deployed to it essentially breaking its connection to the Portal. The last proxy enrolled with the Portal cannot be deleted.", "operationId": "deleteProxyUsingDELETE", "consumes": [ "application/json" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "uuid", "in": "path", "description": "The proxy UUID to delete.", "required": true, "type": "string" } ], "responses": { "204": { "description": "Success" }, "404": { "description": "Entity not found" } } } }, "/deployments/1.0/proxies/{uuid}/organizations": { "get": { "tags": [ "Proxies" ], "summary": "Organizations assigned to a proxy", "description": "Returns all organizations assigned to a specific proxy.", "operationId": "getProxyOrganizationsUsingGET", "consumes": [ "application/json" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "uuid", "in": "path", "description": "The proxy UUID to get.", "required": true, "type": "string" } ], "responses": { "200": { "description": "Success", "schema": { "type": "array", "items": { "$ref": "#/definitions/ReferenceDto" } } }, "404": { "description": "Entity not found" } } }, "put": { "tags": [ "Proxies" ], "summary": "Update organization assignment to a specific proxy.", "description": "When an organization is assigned to a proxy, the organization's publishers are able to deploy the API they own or manage to that specific proxy.", "operationId": "updateProxyOrganizationUsingPUT", "consumes": [ "application/json;charset=UTF-8" ], "produces": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "uuid", "in": "path", "description": "The proxy UUID to update.", "required": true, "type": "string" }, { "in": "body", "name": "body", "description": "The updated proxy organization assignment.", "required": true, "schema": { "type": "array", "items": { "$ref": "#/definitions/ReferenceDto" } } } ], "responses": { "204": { "description": "Success" }, "400": { "description": "Bad request due to a validation error." }, "404": { "description": "Entity not found" } } } }, "/branding/1.0/themes": { "get": { "tags": [ "Themes" ], "summary": "Get a theme", "description": "Returns the settings for the applied theme on the tenant. If the organization id is provided in the GET request, the applied theme on the given organization is returned.", "operationId": "getTheme", "consumes": [], "produces": [], "parameters": [ { "name": "APIM-OrgUuid", "in": "header", "description": "The UUID of the Organization to return", "required": false, "type": "string" } ], "responses": { "200": { "description": "An array containing theme related settings.", "schema": { "$ref": "#/definitions/ThemeGet" }, "examples": { "application/json": [ { "logo": "data:image/png;base64,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", "favicon": "data:image/vnd.microsoft.icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAABILAAASCwAAAAAAAAAAAAD/////////////////////////////////////////////////////////////////////////////////////////////////////+/v7//T09P/39/f///////7+/v/39/f/9fX1//39/f///////Pz8//z8/P/+/v7////////////5+fn/urq6/2tra/9NTU3/WFhY/6Kiov+goKD/V1dX/05OTv+Ghob/u7u7/3Fxcf9wcHD/wcHB/9PT0//8/Pz/l5eX/xUVFf8AAAD/AAAA/wsLC/9BQUH/Dg4O/wEBAf8cHBz/Hh4e/yEhIf8EBAT/EBAQ/7Ozs//g4OD/y8vL/yQkJP8AAAD/Hx8f/4aGhv+VlZX/Pj4+/wAAAP9AQED/1dXV/8bGxv8zMzP/AAAA/xEREf/ExMT//////4eHh/8FBQX/AAAA/3l5ef//////+fn5/15eXv8AAAD/QkJC/+Hh4f//////hoaG/wAAAP8RERH/xMTE//////9nZ2f/AAAA/wQEBP+cnJz///////////+9vb3/Kioq/wQEBP82Njb/e3t7/1ZWVv8AAAD/ERER/8TExP//////cXFx/wAAAP8EBAT/m5ub////////////+Pj4/8bGxv99fX3/UFBQ/zk5Of8eHh7/AAAA/xEREf/Dw8P//////6Kiov8MDAz/AAAA/21tbf/6+vr/8/Pz/39/f/9MTEz/hoaG/+np6f/t7e3/cXFx/wAAAP8RERH/xcXF///////n5+f/R0dH/wAAAP8TExP/ZWVl/2BgYP8NDQ3/BQUF/0VFRf9jY2P/b29v/x8fH/8AAAD/IyMj/9ra2v///////////83Nzf9HR0f/CwsL/wAAAP8AAAD/ERER/1tbW/9DQ0P/AgIC/wAAAP8DAwP/GBgY/4yMjP/7+/v/////////////////6urq/7Kysv+SkpL/lZWV/76+vv/w8PD/zc3N/56env+Pj4//mZmZ/8fHx//4+Pj/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", "siteTitle": "Layer7 API Developer Portal", "lastUpdated": 1501784674317, "color": { "siteTitle": "#48575F", "pageTitle": "#48575F", "background": "#F7F7F7", "bodyText": "#48575F", "link": "#09AEEF", "linkHover": "rgba(9, 174, 239, .5)", "smallText": "#48575F", "borderColor": "#D8D8D8", "primaryButtonBackground": "#09AEEF", "primaryButtonText": "#FFFFFF", "primaryButtonHover": "rgba(9, 174, 239, .5)", "headerBackground": "#FFFFFF", "headerLink": "#09AEEF", "footerBackground": "#48575F", "footerText": "#FFFFFF", "footerLink": "#09AEEF" }, "typography": { "siteTitle": "CA Sans Light", "pageTitle": "CA Sans Light", "bodyText": "Clear Sans", "smallText": "Clear Sans", "footerText": "Clear Sans", "buttonText": "Clear Sans", "custom": [] }, "fontSize": { "siteTitle": "30px", "pageTitle": "25px", "bodyText": "14px", "smallText": "12px", "footerText": "14px", "buttonText": "16px" }, "display": { "versionNumber": true, "copyright": true, "cookieConsent": { "enabled": false, "message": "", "position": "bottom", "theme": "dark" } }, "images": { "backgroundFooterUri": "", "backgroundHeaderUri": "" }, "label": { "service.publish.nav.manageapi.title": "APIs", "service.publish.nav.apps.title": "Apps", "service.publish.nav.apicatalog.title": "API Catalog", "service.publish.nav.apiexplorer.title": "API Explorer" } } ] } } } }, "put": { "tags": [ "Themes" ], "summary": "Update a theme", "description": "Updates a theme by providing the settings to suit your preference. If the organization id is provided in the PUT request, the theme is updated for the given organization.", "operationId": "updateTheme", "consumes": [ "application/json;charset=UTF-8" ], "parameters": [ { "name": "APIM-OrgUuid", "in": "header", "description": "The UUID of the Organization to update", "required": false, "type": "string" }, { "name": "body", "in": "body", "description": "Provides the values needed to set up the Theme object.", "required": true, "schema": { "$ref": "#/definitions/ThemePut" } } ], "responses": { "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/branding/1.0/themes/reset": { "post": { "tags": [ "Themes" ], "summary": "Reset a theme", "description": "Resets a theme to tenant theme If the organization id is provided, otherwise the POST request will reset the theme settings to default theme.", "operationId": "resetTheme", "produces": [], "parameters": [ { "name": "APIM-OrgUuid", "in": "header", "description": "The UUID of the Organization to reset", "required": false, "type": "string" } ], "responses": { "400": { "$ref": "#/responses/BadRequest" }, "404": { "$ref": "#/responses/NotFound" }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/custom/1.0/pages": { "get": { "tags": [ "Pages" ], "summary": "Return all custom pages", "description": "Return all custom page assignments.", "operationId": "getPages", "produces": [ "application/json" ], "parameters": [], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/CustomPageGet" }, "examples": { "application/json": [ { "uuid": "97ea4668-5c51-47d1-bb8a-6e5de05af144", "name": "home", "pageType": "HOME", "uri": "site/en_us/home.html", "pageKey": "home.page.key.x" } ] } }, "500": { "$ref": "#/responses/InternalServerError" } } } }, "/custom/1.0/pages/assign": { "post": { "tags": [ "Pages" ], "summary": "Update custom page assignments", "description": "Updates page assignments. Create, update, and delete custom page assignments based on the supplied payload.", "operationId": "postPages", "consumes": [ "application/json" ], "produces": [], "parameters": [ { "in": "body", "name": "body", "description": "The page assignment to update.", "required": true, "schema": { "$ref": "#/definitions/CustomPageUpdate" } } ], "responses": { "204": { "description": "Success" }, "400": { "description": "Bad request due to a validation error." }, "500": { "$ref": "#/responses/InternalServerError" } } } } }, "definitions": { "AccountPlans": { "type": "array", "items": { "$ref": "#/definitions/AccountPlanFull" } }, "AccountPlanRequest": { "allOf": [ { "$ref": "#/definitions/AccountPlanBasic" }, { "type": "object", "properties": { "Description": { "type": "string", "maxLength": 65000 }, "RateLimit": { "type": "integer", "minimum": 1, "maximum": 2000000000, "description": "The number of requests per second this Account Plan will support. If this rate is surpassed, requests will be rejected with a 400 response and appropriate error message. Specify this value as null if you do not want rate limiting thus allowing an unlimited number of requests per second." }, "Quota": { "type": "integer", "minimum": 1, "maximum": 2000000000, "description": "The number of requests allowed per proxy for this Account Plan based on the interval specified via QuotaInterval. Specify this value as null if you do not want quota limiting thus allowing an unlimited number of requests per proxy." }, "QuotaInterval": { "type": "string", "enum": [ "DAY", "MONTH" ], "description": "The interval for which the quota is applied per proxy and can only be either day or month. This value is required if one is also specified for Quota." } } } ] }, "AccountPlanFull": { "allOf": [ { "$ref": "#/definitions/AccountPlanRequest" }, { "type": "object", "properties": { "DefaultPlan": { "type": "boolean", "description": "Denotes this plan as the default plan. The default plan cannot be changed nor can there be more than one." }, "OrganizationUsage": { "type": "integer", "description": "The number of Organizations that have this Account Plan assigned to them." } } } ] }, "AccountPlanPost": { "allOf": [ { "$ref": "#/definitions/AccountPlanRequest" }, { "example": { "Uuid": "{{GENERATED_GUID}}", "Name": "Premium Account Plan", "Description": "This is a Premium Account Plan", "RateLimit": 100, "Quota": 300000, "QuotaInterval": "DAY" } } ] }, "AccountPlanPut": { "allOf": [ { "$ref": "#/definitions/AccountPlanRequest" }, { "example": { "Uuid": "UUID_Account_Plan", "Name": "Premium Account Plan", "Description": "This is an for the Premium Account Plan. The rate and limit has been increased now.", "RateLimit": 120, "Quota": 400000, "QuotaInterval": "DAY" } } ] }, "AccountPlanBasic": { "type": "object", "required": [ "Uuid", "Name" ], "properties": { "Uuid": { "type": "string", "description": "Unique key for this entity which conforms to the UUID standard according to RFC 4122." }, "Name": { "type": "string", "description": "Name of Account Plan must be unique.", "maxLength": 50 } } }, "ApiEulas": { "type": "array", "items": { "$ref": "#/definitions/ApiEula" } }, "ApiEula": { "allOf": [ { "$ref": "#/definitions/ApiEulaBasic" }, { "type": "object", "properties": { "ApiUsage": { "type": "integer", "description": "The number of APIs that have this End-User Licence Agreement applied to them." }, "ApplicationUsage": { "type": "integer", "description": "The number of Applications that are affected by this End-User Licence Agreement through the APIs they access." }, "PossibleActions": { "type": "string", "enum": [ "DELETE", "EDIT" ], "description": "A list of actions that the logged-in user may perform on the EULA. A EULA cannot be edited if an associated API is being used by an application. A EULA cannot be deleted if it is associated with an API." } } } ] }, "ApiEulaPut": { "allOf": [ { "$ref": "#/definitions/ApiEula" }, { "example": { "Uuid": "00613e59-d02a-44ce-a546-5006487b7922", "Name": "Test Eula Name updated", "Content": "Test Eula Content updated" } } ] }, "ApiEulaBasic": { "type": "object", "required": [ "Uuid", "Name", "Content" ], "properties": { "Uuid": { "type": "string", "description": "Unique key for this entity which conforms to the UUID standard according to RFC 4122." }, "Name": { "type": "string", "description": "Name of End-User Licence Agreement which must be unique.", "maxLength": 50 }, "Content": { "type": "string", "description": "The HTML content of the End-User Licence Agreement. This contains the text that an end-user must agree to in order to access any API that has this EULA applied to it." } } }, "ApiGroups": { "type": "array", "items": { "$ref": "#/definitions/ApiGroup" }, "xml": { "name": "ApiGroups" } }, "ApiGroup": { "type": "object", "required": [ "uuid", "name", "status" ], "properties": { "uuid": { "type": "string", "description": "Unique key for this entity which conforms to the UUID standard according to RFC 4122." }, "name": { "type": "string", "description": "Name of API Group which must be unique.", "maxLength": 255 }, "status": { "type": "string", "enum": [ "ENABLED", "DISABLED" ], "description": "Status of API Group." }, "description": { "type": "string", "description": "Description of API Group.", "maxLength": 255 } } }, "ApiGroupPut": { "allOf": [ { "$ref": "#/definitions/ApiGroup" }, { "example": { "uuid": "ae7af4e7-11a7-4691-8b84-be60e304e304", "name": "test", "status": "ENABLED", "description": "testing description" } } ] }, "ApiGroupApis": { "type": "array", "items": { "$ref": "#/definitions/ApiGroupApi" }, "example": [ { "uuid": "bb071bc2-5e59-4f86-85d1-2e4851603adc" }, { "uuid": "2bd6fcae-c490-43dd-a2fc-c77645497402" } ], "xml": { "name": "ApiGroupApi" } }, "ApiGroupApi": { "type": "object", "required": [ "uuid" ], "properties": { "uuid": { "type": "string", "description": "The UUID of the API to associate with the specified group." } } }, "Apis": { "type": "array", "items": { "$ref": "#/definitions/Api" }, "xml": { "name": "Apis" } }, "Api": { "description": "A representation of an API", "allOf": [ { "$ref": "#/definitions/ApiBasic" }, { "type": "object", "properties": { "Description": { "type": "string", "maxLength": 65000, "description": "Description of the API. Developers see only the public description. Ensure that the public description includes any information that developers require to use the API, such as its authentication requirements." }, "PrivateDescription": { "type": "string", "maxLength": 65000, "description": "The private description of the API." }, "PublishedByPortal": { "type": "boolean", "description": "Indicates whether the API was published via the portal (true) or the gateway (false)." }, "PortalStatus": { "type": "string", "enum": [ "ENABLED", "DISABLED", "DEPRECATED" ], "description": "Indicates the status of the API. Applications that use an enabled API can still use the API when it is deprecated. However, you cannot add a deprecated API to an application. It sets the PortalStatus to ENABLED when created for the first time." }, "AuthenticationParameters": { "type": "string", "description": "The escaped JSON string containing the values to be pre-populated in the API Explorer Authentication side-bar" }, "SsgServiceType": { "type": "string", "enum": [ "REST", "SOAP" ], "description": "Indicates the type of the API." }, "SpecFilename": { "type": "string", "description": "Specifies the filename of the Swagger or WADL file that documents the API. If SpecFilename is specified, SpecContent should be specified as well." }, "SpecContent": { "type": "string", "description": "Specifies the type of the specification file (ie Swagger, WADL, Json). The API needs a specification file so that developers can use the API Explorer to understand the API. If SpecContent is specified, SpecFilename should be specified as well." }, "SpecFilesize": { "type": "integer", "description": "The size of the specification file in bytes (1048576)" }, "OrganizationUsage": { "type": "integer", "description": "The number of organizations that have applications that consume this API." }, "ApplicationUsage": { "type": "integer", "description": "The number of applications that consume this API." }, "InSync": { "type": "integer", "description": "Indicates that the version of this API on the portal and on the gateway are the same." }, "Pending": { "type": "integer", "description": "Indicates that the version of this API on the portal has been recently changed and has not yet synced with the version on the gateway yet." }, "ServiceDisruption": { "type": "integer", "description": "Indicates that the version of this API on the portal and the gateway were modified independently and cannot be synced in their current state." }, "CustomFieldValues": { "uniqueItems": true, "description": "Custom Fields add additional metadata to the API. If a Custom Field is required, you must put a value in it when creating or changing an API.", "type": "object", "required": [ "result" ], "properties": { "results": { "type": "array", "items": { "$ref": "#/definitions/CustomFieldValue" } } } }, "PolicyTemplateArguments": { "type": "array", "uniqueItems": true, "items": { "type": "string" }, "description": "Additional fields that are part of the Policy Template. The default fields are debugMode, email, sla, smtpServer and sslEnabled" }, "PossibleStatuses": { "type": "array", "uniqueItems": true, "items": { "type": "string", "enum": [ "DISABLED", "DEPRECATED", "ENABLED" ] }, "description": "The API statuses that you can switch to." } } } ] }, "ApiBasic": { "type": "object", "required": [ "Uuid", "Name", "Version", "ApiEulaUuid", "AccessStatus", "ApiLocationUrl", "SsgUrl", "PolicyTemplateUuid", "AuthenticationType" ], "properties": { "Uuid": { "type": "string", "description": "Unique key for this entity which conforms to the UUID standard according to RFC 4122." }, "Name": { "type": "string", "description": "Name of API which must be unique.", "maxLength": 255 }, "Version": { "type": "string", "description": "The published version of the API. If not specified, it sets the Version to 1.0", "maxLength": 50 }, "ApiEulaUuid": { "type": "string", "description": "The uuid of the End-User License Agreement applied to the API. The EULA of an API currently used by an application/s cannot be changed" }, "AccessStatus": { "type": "string", "enum": [ "PUBLIC", "PRIVATE" ], "description": "Indicates whether the API is public or private. A private API is only available to organizations that have it in their account plan. public APIs are public and available to all organizations. You cannot change the AccessStatus if an application is using the API. If not specified, it sets the default AccessStatus to PRIVATE." }, "SsgUrl": { "type": "string", "description": "The proxy URL. Developers use this URL in their applications to send requests to the API. The SsgUrl must be unique. Only applies if the API is portal published. Once created, it cannot be changed. The proxy URL for Portal Published APIs does not require the / in the beginning and * at the end since those are created in the Gateway. For Gateway Published APIs, the / in the beginning and the * at the end is present in the proxy URL since the value gets set as part of the sync." }, "PolicyTemplateUuid": { "type": "string", "description": "The uuid of the Policy Template applied to the API. Only applies if the API is portal published." }, "AuthenticationType": { "type": "string", "description": "Specifies the Authentication type (for API Explorer usage)." }, "ApiLocationUrl": { "type": "string", "description": "Application calls are forwarded to this url. The url must be valid." }, "OrgUuid": { "type": "string", "description": "The uuid of the Organization that owns this API. It is optional and can be modified." } }, "example": { "Name": "apiName2", "Version": "2", "ApiEulaUuid": "c9406345-eb76-11e3-b0cd-000nosaj86a8", "PrivateDescription": "", "AccessStatus": "PUBLIC", "Description": "", "SsgUrl": "proxyUrl1", "PolicyTemplateUuid": "72093738-871a-45bd-b114-ad3a61893ac0", "PolicyTemplateArguments": { "results": [ { "PolicyTemplateUuid": "72093738-871a-45bd-b114-ad3a61893ac0", "ApiUuid": "{{GENERATED_UUID}}", "Name": "debugMode", "Value": "false", "Label": "Debug Mode", "Type": "boolean" }, { "PolicyTemplateUuid": "72093738-871a-45bd-b114-ad3a61893ac0", "ApiUuid": "{{GENERATED_UUID}}", "Name": "sslEnabled", "Value": "false", "Label": "SSL", "Type": "boolean" } ] }, "AuthenticationType": "NONE", "AuthenticationParameters": "{}", "CustomFieldValues": { "results": [ { "Uuid": "{{GENERATED_UUID}}", "EntityUuid": "{{GENERATED_UUID}}", "CustomFieldUuid": "ad3d5f44-133a-44f3-8c10-0e7305feedf0", "Value": "option1" } ] }, "ApiLocationUrl": "here.com", "SpecContent": "data:;base64,ew0KICAic3dhZ2dlciI6ICIyLjAiLA0KICAiaW5mbyI6IHsNCiAgICAidmVyc2lvbiI6ICIxLjAuMCIsDQogICAgInRpdGxlIjogIlN3YWdnZXIgUGV0c3RvcmUiLA0KICAgICJkZXNjcmlwdGlvbiI6ICJBIHNhbXBsZSBBUEkgdGhhdCB1c2VzIGEgcGV0c3RvcmUgYXMgYW4gZXhhbXBsZSB0byBkZW1vbnN0cmF0ZSBmZWF0dXJlcyBpbiB0aGUgc3dhZ2dlci0yLjAgc3BlY2lmaWNhdGlvbiIsDQogICAgInRlcm1zT2ZTZXJ2aWNlIjogImh0dHA6Ly9zd2FnZ2VyLmlvL3Rlcm1zLyIsDQogICAgImNvbnRhY3QiOiB7DQogICAgICAibmFtZSI6ICJTd2FnZ2VyIEFQSSBUZWFtIg0KICAgIH0sDQogICAgImxpY2Vuc2UiOiB7DQogICAgICAibmFtZSI6ICJNSVQiDQogICAgfQ0KICB9LA0KICAiaG9zdCI6ICJwZXRzdG9yZS5zd2FnZ2VyLmlvIiwNCiAgImJhc2VQYXRoIjogIi9hcGkiLA0KICAic2NoZW1lcyI6IFsNCiAgICAiaHR0cCINCiAgXSwNCiAgImNvbnN1bWVzIjogWw0KICAgICJhcHBsaWNhdGlvbi9qc29uIg0KICBdLA0KICAicHJvZHVjZXMiOiBbDQogICAgImFwcGxpY2F0aW9uL2pzb24iDQogIF0sDQogICJwYXRocyI6IHsNCiAgICAiL3BldHMiOiB7DQogICAgICAiZ2V0Ijogew0KICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBhbGwgcGV0cyBmcm9tIHRoZSBzeXN0ZW0gdGhhdCB0aGUgdXNlciBoYXMgYWNjZXNzIHRvIiwNCiAgICAgICAgInByb2R1Y2VzIjogWw0KICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIg0KICAgICAgICBdLA0KICAgICAgICAicmVzcG9uc2VzIjogew0KICAgICAgICAgICIyMDAiOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQSBsaXN0IG9mIHBldHMuIiwNCiAgICAgICAgICAgICJzY2hlbWEiOiB7DQogICAgICAgICAgICAgICJ0eXBlIjogImFycmF5IiwNCiAgICAgICAgICAgICAgIml0ZW1zIjogew0KICAgICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvUGV0Ig0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICB9DQogICAgfQ0KICB9LA0KICAiZGVmaW5pdGlvbnMiOiB7DQogICAgIlBldCI6IHsNCiAgICAgICJ0eXBlIjogIm9iamVjdCIsDQogICAgICAicmVxdWlyZWQiOiBbDQogICAgICAgICJpZCIsDQogICAgICAgICJuYW1lIg0KICAgICAgXSwNCiAgICAgICJwcm9wZXJ0aWVzIjogew0KICAgICAgICAiaWQiOiB7DQogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsDQogICAgICAgICAgImZvcm1hdCI6ICJpbnQ2NCINCiAgICAgICAgfSwNCiAgICAgICAgIm5hbWUiOiB7DQogICAgICAgICAgInR5cGUiOiAic3RyaW5nIg0KICAgICAgICB9LA0KICAgICAgICAidGFnIjogew0KICAgICAgICAgICJ0eXBlIjogInN0cmluZyINCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0NCiAgfQ0KfQ==", "SpecFilename": "swagger.json", "SpecFilesize": 1438, "OrgUuid": "4c35f9cd-8eb2-11e3-ae6b-000c2911a4db", "Uuid": "{{GENERATED_GUID}}" } }, "ApiUpdate": { "type": "object", "required": [ "Uuid", "Name", "Version", "PublishedByPortal", "ApiEulaUuid", "AccessStatus", "PortalStatus", "ApiLocationUrl", "SsgUrl", "PolicyTemplateUuid", "AuthenticationType" ], "properties": { "Uuid": { "type": "string", "description": "Unique key for this entity which conforms to the UUID standard according to RFC 4122. Change this UUID to the API UUID you want to update." }, "Name": { "type": "string", "description": "Name of API which must be unique.", "maxLength": 255 }, "Version": { "type": "string", "description": "The published version of the API.", "maxLength": 50 }, "PublishedByPortal": { "type": "boolean", "description": "Indicates whether the API was published via the portal (true) or the gateway (false)." }, "ApiEulaUuid": { "type": "string", "description": "The uuid of the End-User License Agreement applied to the API. The EULA of an API currently used by an application/s cannot be changed" }, "AccessStatus": { "type": "string", "enum": [ "PUBLIC", "PRIVATE" ], "description": "Indicates whether the API is public or private. A private API is only available to organizations that have it in their account plan. public APIs are public and available to all organizations. You cannot change the AccessStatus if an application is using the API." }, "PortalStatus": { "type": "string", "enum": [ "ENABLED", "DISABLED", "DEPRECATED" ], "description": "Indicates the status of the API. Applications that use an enabled API can still use the API when it is deprecated. However, you cannot add a deprecated API to an application." }, "SsgUrl": { "type": "string", "description": "The proxy URL. Developers use this URL in their applications to send requests to the API. The SsgUrl must be unique. Only applies if the API is portal published. Once created, it cannot be changed. The proxy URL for Portal Published APIs does not require the / in the beginning and * at the end since those are created in the Gateway. For Gateway Published APIs, the / in the beginning and the * at the end is present in the proxy URL since the value gets set as part of the sync." }, "PolicyTemplateUuid": { "type": "string", "description": "The uuid of the Policy Template applied to the API. Only applies if the API is portal published." }, "OrgUuid": { "type": "string", "description": "The uuid of the Organization that owns this API. It is optional and can be modified." }, "AuthenticationType": { "type": "string", "description": "Specifies the Authentication type (for API Explorer usage). Only applies if the API is portal published. You can choose a different AuthenticationType or change the values with the existing AuthenticationType." }, "ApiLocationUrl": { "type": "string", "description": "Application calls are forwarded to this url. The url must be valid. Only applies if the API is portal published." } }, "example": { "Uuid": "UUID_OF_API", "Name": "apiName2", "Version": "2", "PublishedByPortal": true, "ApiEulaUuid": "c9406345-eb76-11e3-b0cd-000nosaj86a8", "PrivateDescription": "", "PortalStatus": "ENABLED", "AccessStatus": "PUBLIC", "Description": "", "SsgUrl": "proxyUrl1", "PolicyTemplateUuid": "72093738-871a-45bd-b114-ad3a61893ac0", "PolicyTemplateArguments": { "results": [ { "PolicyTemplateUuid": "72093738-871a-45bd-b114-ad3a61893ac0", "ApiUuid": "{{GENERATED_UUID}}", "Name": "debugMode", "Value": "false", "Label": "Debug Mode", "Type": "boolean" }, { "PolicyTemplateUuid": "72093738-871a-45bd-b114-ad3a61893ac0", "ApiUuid": "{{GENERATED_UUID}}", "Name": "sslEnabled", "Value": "false", "Label": "SSL", "Type": "boolean" } ] }, "AuthenticationType": "NONE", "AuthenticationParameters": "{}", "CustomFieldValues": { "results": [] }, "ApiLocationUrl": "here.com", "SpecContent": "data:;base64,ew0KICAic3dhZ2dlciI6ICIyLjAiLA0KICAiaW5mbyI6IHsNCiAgICAidmVyc2lvbiI6ICIxLjAuMCIsDQogICAgInRpdGxlIjogIlN3YWdnZXIgUGV0c3RvcmUiLA0KICAgICJkZXNjcmlwdGlvbiI6ICJBIHNhbXBsZSBBUEkgdGhhdCB1c2VzIGEgcGV0c3RvcmUgYXMgYW4gZXhhbXBsZSB0byBkZW1vbnN0cmF0ZSBmZWF0dXJlcyBpbiB0aGUgc3dhZ2dlci0yLjAgc3BlY2lmaWNhdGlvbiIsDQogICAgInRlcm1zT2ZTZXJ2aWNlIjogImh0dHA6Ly9zd2FnZ2VyLmlvL3Rlcm1zLyIsDQogICAgImNvbnRhY3QiOiB7DQogICAgICAibmFtZSI6ICJTd2FnZ2VyIEFQSSBUZWFtIg0KICAgIH0sDQogICAgImxpY2Vuc2UiOiB7DQogICAgICAibmFtZSI6ICJNSVQiDQogICAgfQ0KICB9LA0KICAiaG9zdCI6ICJwZXRzdG9yZS5zd2FnZ2VyLmlvIiwNCiAgImJhc2VQYXRoIjogIi9hcGkiLA0KICAic2NoZW1lcyI6IFsNCiAgICAiaHR0cCINCiAgXSwNCiAgImNvbnN1bWVzIjogWw0KICAgICJhcHBsaWNhdGlvbi9qc29uIg0KICBdLA0KICAicHJvZHVjZXMiOiBbDQogICAgImFwcGxpY2F0aW9uL2pzb24iDQogIF0sDQogICJwYXRocyI6IHsNCiAgICAiL3BldHMiOiB7DQogICAgICAiZ2V0Ijogew0KICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBhbGwgcGV0cyBmcm9tIHRoZSBzeXN0ZW0gdGhhdCB0aGUgdXNlciBoYXMgYWNjZXNzIHRvIiwNCiAgICAgICAgInByb2R1Y2VzIjogWw0KICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIg0KICAgICAgICBdLA0KICAgICAgICAicmVzcG9uc2VzIjogew0KICAgICAgICAgICIyMDAiOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQSBsaXN0IG9mIHBldHMuIiwNCiAgICAgICAgICAgICJzY2hlbWEiOiB7DQogICAgICAgICAgICAgICJ0eXBlIjogImFycmF5IiwNCiAgICAgICAgICAgICAgIml0ZW1zIjogew0KICAgICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvUGV0Ig0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICB9DQogICAgfQ0KICB9LA0KICAiZGVmaW5pdGlvbnMiOiB7DQogICAgIlBldCI6IHsNCiAgICAgICJ0eXBlIjogIm9iamVjdCIsDQogICAgICAicmVxdWlyZWQiOiBbDQogICAgICAgICJpZCIsDQogICAgICAgICJuYW1lIg0KICAgICAgXSwNCiAgICAgICJwcm9wZXJ0aWVzIjogew0KICAgICAgICAiaWQiOiB7DQogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsDQogICAgICAgICAgImZvcm1hdCI6ICJpbnQ2NCINCiAgICAgICAgfSwNCiAgICAgICAgIm5hbWUiOiB7DQogICAgICAgICAgInR5cGUiOiAic3RyaW5nIg0KICAgICAgICB9LA0KICAgICAgICAidGFnIjogew0KICAgICAgICAgICJ0eXBlIjogInN0cmluZyINCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0NCiAgfQ0KfQ==", "SpecFilename": "swagger.json", "SpecFilesize": 1438, "OrgUuid": "4c35f9cd-8eb2-11e3-ae6b-000c2911a4db" } }, "ApisGet": { "type": "object", "allOf": [ { "$ref": "#/definitions/ListBasic" }, { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/definitions/ApiGetBasic" } } } }, { "$ref": "#/definitions/LinksBasic" } ] }, "ApiReferences": { "type": "array", "description": "An array of API UUIDs", "items": { "$ref": "#/definitions/ApiReference" }, "example": [ { "uuid": "bb071bc2-5e59-4f86-85d1-2e4851603adc" }, { "uuid": "2bd6fcae-c490-43dd-a2fc-c77645497402" } ], "xml": { "name": "ApiPlanOrganization" } }, "ApiReference": { "type": "object", "required": [ "uuid" ], "properties": { "uuid": { "type": "string" } } }, "ApiPlan1.0Create": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "description": "Name of API Plan", "maxLength": 50 }, "description": { "type": "string", "description": "API Plan detail description", "maxLength": 500 }, "rateLimit": { "type": "integer", "description": "Throughput per proxy. Do not set if there is no limit", "minimum": 1, "maximum": 2000000000 }, "quota": { "type": "integer", "description": "Quota per proxy. Do not set if there is no limit", "minimum": 1, "maximum": 2000000000 }, "quotaInterval": { "type": "string", "description": "The interval determines when the quota will be reset", "enum": [ "DAY", "MONTH" ] } } }, "ApiPlan1.0Full": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "description": "Name of API Plan", "maxLength": 50 }, "description": { "type": "string", "description": "API Plan detail description", "maxLength": 500 }, "rateLimit": { "type": "integer", "description": "Throughput per proxy. Do not set if there is no limit", "minimum": 1, "maximum": 2000000000 }, "quota": { "type": "integer", "description": "Quota per proxy. Do not set if there is no limit", "minimum": 1, "maximum": 2000000000 }, "quotaInterval": { "type": "string", "description": "The interval determines when the quota will be reset", "enum": [ "DAY", "MONTH" ] } }, "example": { "uuid": "7d90b568-4820-4cfc-9f7a-626643fcc4ed", "quotaInterval": "DAY", "description": "desc", "name": "API Plan Name", "rateLimit": 10, "quota": 1000000000, "_links": { "self": { "href": "/api-management/1.0/api-plans/7d90b568-4820-4cfc-9f7a-626643fcc4ed" } } } }, "ApiGetBasic": { "description": "A representation of an API using Get", "type": "object", "properties": { "uuid": { "type": "string", "description": "Unique key for this entity which conforms to the UUID standard according to RFC 4122." }, "name": { "type": "string", "description": "Name of API which must be unique.", "maxLength": 255 }, "description": { "type": "string", "description": "Description of the API. Developers see only the public description. Ensure that the public description includes any information that developers require to use the API, such as its authentication requirements.", "maxLength": 65000 }, "accessStatus": { "type": "string", "description": "Indicates whether the API is public or private. A private API is only available to organizations that have it in their account plan. public APIs are public and available to all organizations. You cannot change the AccessStatus if an application is using the API. If not specified, it sets the default AccessStatus to PRIVATE.", "enum": [ "PUBLIC", "PRIVATE" ] }, "specFilename": { "type": "string", "description": "Specifies the filename of the Swagger or WADL file that documents the API. If SpecFilename is specified, SpecContent should be specified as well." }, "managingOrgUuid": { "type": "string", "description": "The uuid of the managing organization that the API belongs to.The organization can be changed." }, "apiEulaUuid": { "type": "string", "description": "The uuid of the End-User License Agreement applied to the API. The EULA of an API currently used by an application/s cannot be change" }, "createTs": { "type": "integer", "description": "The time that the api is created." }, "modifyTs": { "type": "integer", "description": "The time that the api is last modified." }, "ssgServiceType": { "type": "string", "description": "Indicates the type of the API.", "enum": [ "REST", "SOAP" ] }, "applicationUsage": { "type": "integer", "description": "The number of applications that consume this API." }, "tags": { "type": "array", "description": "List of API tags.", "items": { "type": "string" } } } }, "ApiGet": { "type": "object", "allOf": [ { "$ref": "#/definitions/ApiGetBasic" }, { "type": "object", "properties": { "portalStatus": { "type": "string", "description": "Indicates the status of the API. Applications that use an enabled API can still use the API when it is deprecated. However, you cannot add a deprecated API to an application. It sets the PortalStatus to ENABLED when created for the first time.", "enum": [ "ENABLED", "DISABLED", "DEPRECATED" ] }, "publishedByPortal": { "type": "boolean", "description": "Indicates whether the API was published via the portal (true) or the gateway (false)." }, "privateDescription": { "type": "string", "description": "The private description of the API.", "maxLength": 65000 }, "version": { "type": "string", "description": "The published version of the API. If not specified, it sets the Version to 1.0", "maxLength": 50 }, "ssgUrl": { "type": "string", "description": "The proxy URL. Developers use this URL in their applications to send requests to the API. The SsgUrl must be unique. Only applies if the API is portal published. Once created, it cannot be changed. The proxy URL for Portal Published APIs does not require the / in the beginning and * at the end since those are created in the Gateway. For Gateway Published APIs, the / in the beginning and the * at the end is present in the proxy URL since the value gets set as part of the sync." }, "specFilesize": { "type": "integer", "description": "The size of the specification file in bytes (1048576)" }, "locationUrl": { "type": "string", "description": "Application calls are forwarded to this url. The url must be valid." }, "authenticationType": { "type": "string", "description": "Specifies the authentication type (for API Explorer usage)." }, "authenticationParameters": { "type": "string", "description": "The escaped JSON string containing the values to be pre-populated in the API Explorer Authentication side-bar" }, "createTs": { "type": "integer", "description": "The time that the api is created." }, "modifyTs": { "type": "integer", "description": "The time that the api is last modified." }, "policyEntities": { "type": "array", "items": { "type": "object", "properties": { "policyEntityUuid": { "type": "string", "description": "The uuid of the Policy Entity applied to this API or Application instance." }, "policyTemplateArguments": { "type": "array", "description": "Additional fields that are part of the Policy Template. The default fields are debugMode, email, sla, smtpServer and sslEnabled.", "items": { "type": "object", "properties": { "name": { "type": "string" }, "value": { "type": "string" } } } } } } }, "customFieldValues": { "description": "Custom Fields add additional metadata to the API. If a Custom Field is required, you must put a value in it when creating or changing an API.", "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string" }, "customFieldUuid": { "type": "string", "description": "The uuid of the Custom Field entity applied to this API or Application instance." }, "value": { "type": "string" } } } }, "possibleStatuses": { "type": "array", "description": "The API statuses that you can switch to.", "items": { "type": "string", "enum": [ "DISABLED", "DEPRECATED", "ENABLED" ] } } } }, { "$ref": "#/definitions/LinksApi" } ] }, "ApiUsage": { "type": "object", "properties": { "apiGroupUsage": { "type": "integer", "description": "The number of api groups that use the api" }, "directAppUsage": { "type": "integer", "description": "The number of apps that directly use the api" }, "indirectAppUsage": { "type": "integer", "description": "The number of apps that indirectly (via apigroups) use the api" } } }, "TagsPost": { "type": "array", "description": "Single/Multiple Tag Names.", "items": { "$ref": "#/definitions/TagRequest" }, "example": [ { "name": "string" }, { "name": "string" } ] }, "TagRequest": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string" } } }, "ApiTags": { "type": "array", "description": "An array of tags", "items": { "$ref": "#/definitions/ApiTag" }, "example": [ { "name": "tag1", "uuid": "a689fa99-1402-4634-93ac-98b730c79b83" }, { "name": "tag2", "uuid": "2bd6fcae-c490-43dd-a2fc-c77645497402" } ] }, "ApiTag": { "type": "object", "required": [ "name", "uuid" ], "properties": { "name": { "type": "string" }, "uuid": { "type": "string" } } }, "Api2.0s": { "type": "array", "items": { "$ref": "#/definitions/Api2.0" } }, "Api2.0": { "allOf": [ { "$ref": "#/definitions/Api2.0Basic" }, { "type": "object", "properties": { "Description": { "type": "string", "description": "Description of the API. Developers see only the public description. Ensure that the public description includes any information that developers require to use the API, such as its authentication requirements.", "maxLength": 65000 }, "PrivateDescription": { "type": "string", "description": "The private description of the API.", "maxLength": 65000 }, "PublishedByPortal": { "type": "boolean", "description": "Indicates whether the API was published via the portal (true) or the gateway (false)." }, "PortalStatus": { "type": "string", "description": "Indicates the status of the API. Applications that use an enabled API can still use the API when it is deprecated. However, you cannot add a deprecated API to an application. It sets the PortalStatus to ENABLED when created for the first time.", "enum": [ "ENABLED", "DISABLED", "DEPRECATED" ] }, "AuthenticationParameters": { "type": "string", "description": "The escaped JSON string containing the values to be pre-populated in the API Explorer Authentication side-bar" }, "SsgServiceType": { "type": "string", "description": "Indicates the type of the API.", "enum": [ "REST", "SOAP" ] }, "SpecFilename": { "type": "string", "description": "Specifies the filename of the Swagger or WADL file that documents the API. If SpecFilename is specified, SpecContent should be specified as well." }, "SpecContent": { "type": "string", "description": "Specifies the type of the specification file (ie Swagger, WADL, Json). The API needs a specification file so that developers can use the API Explorer to understand the API. If SpecContent is specified, SpecFilename should be specified as well." }, "SpecFilesize": { "type": "integer", "description": "The size of the specification file in bytes (1048576)" }, "OrganizationUsage": { "type": "integer", "description": "The number of organizations that have applications that consume this API." }, "ApplicationUsage": { "type": "integer", "description": "The number of applications that consume this API." }, "InSync": { "type": "integer", "description": "Indicates that the version of this API on the portal and on the gateway are the same." }, "Pending": { "type": "integer", "description": "Indicates that the version of this API on the portal has been recently changed and has not yet synced with the version on the gateway yet." }, "ServiceDisruption": { "type": "integer", "description": "Indicates that the version of this API on the portal and the gateway were modified independently and cannot be synced in their current state." }, "CustomFieldValues": { "description": "Custom Fields add additional metadata to the API. If a Custom Field is required, you must put a value in it when creating or changing an API.", "type": "object", "required": [ "result" ], "properties": { "results": { "type": "array", "items": { "$ref": "#/definitions/CustomFieldValue" } } } }, "PossibleStatuses": { "type": "array", "description": "The API statuses that you can switch to.", "items": { "type": "string", "enum": [ "DISABLED", "DEPRECATED", "ENABLED" ] } } } } ], "description": "A representation of an Api2.0" }, "Api2.0Basic": { "type": "object", "required": [ "AccessStatus", "ApiEulaUuid", "ApiLocationUrl", "AuthenticationType", "Name", "SsgUrl", "Uuid", "Version", "PolicyEntities" ], "properties": { "Uuid": { "type": "string", "description": "Unique key for this entity which conforms to the UUID standard according to RFC 4122." }, "Name": { "type": "string", "description": "Name of API which must be unique.", "maxLength": 255 }, "Version": { "type": "string", "description": "The published version of the API. If not specified, it sets the Version to 1.0", "maxLength": 50 }, "ApiEulaUuid": { "type": "string", "description": "The uuid of the End-User License Agreement applied to the API. The EULA of an API currently used by an application/s cannot be changed" }, "AccessStatus": { "type": "string", "description": "Indicates whether the API is public or private. A private API is only available to organizations that have it in their account plan. public APIs are public and available to all organizations. You cannot change the AccessStatus if an application is using the API. If not specified, it sets the default AccessStatus to PRIVATE.", "enum": [ "PUBLIC", "PRIVATE" ] }, "SsgUrl": { "type": "string", "description": "The proxy URL. Developers use this URL in their applications to send requests to the API. The SsgUrl must be unique. Only applies if the API is portal published. Once created, it cannot be changed. The proxy URL for Portal Published APIs does not require the / in the beginning and * at the end since those are created in the Gateway. For Gateway Published APIs, the / in the beginning and the * at the end is present in the proxy URL since the value gets set as part of the sync." }, "AuthenticationType": { "type": "string", "description": "Specifies the Authentication type (for API Explorer usage)." }, "ApiLocationUrl": { "type": "string", "description": "Application calls are forwarded to this url. The url must be valid." }, "OrgUuid": { "type": "string", "description": "The uuid of the Organization that owns this API. It is optional and can be modified." }, "PolicyEntities": { "type": "array", "description": "Multiple Policy Entities may be assigned which may contain multiple PolicyTemplateArguments.", "items": { "$ref": "#/definitions/PolicyEntity" } } }, "example": { "Name": "apiName2", "Version": "2", "ApiEulaUuid": "c9406345-eb76-11e3-b0cd-000nosaj86a8", "PrivateDescription": "", "AccessStatus": "PUBLIC", "Description": "", "SsgUrl": "proxyUrl1", "PolicyEntities": { "results": [ { "PolicyEntityUuid": "72093738-871a-45bd-b114-ad3a61893ac0", "PolicyTemplateArguments": { "results": [ { "Type": "boolean", "ApiUuid": "{{GENERATED_GUID}}", "Label": "Debug Mode", "Value": "true", "PolicyTemplateUuid": "72093738-871a-45bd-b114-ad3a61893ac0", "Name": "debugMode" }, { "Type": "string", "ApiUuid": "{{GENERATED_GUID}}", "Label": "Email (SLA notifications will be sent to this address)", "Value": "Test Value 311719", "PolicyTemplateUuid": "72093738-871a-45bd-b114-ad3a61893ac0", "Name": "email" }, { "Type": "int", "ApiUuid": "{{GENERATED_GUID}}", "Label": "SLA (ms)", "Value": "411928", "PolicyTemplateUuid": "72093738-871a-45bd-b114-ad3a61893ac0", "Name": "sla" }, { "Type": "string", "ApiUuid": "{{GENERATED_GUID}}", "Label": "SMTP Server (your email gateway)", "Value": "Test Value 202774", "PolicyTemplateUuid": "72093738-871a-45bd-b114-ad3a61893ac0", "Name": "smtpServer" }, { "Type": "boolean", "ApiUuid": "{{GENERATED_GUID}}", "Label": "SSL", "Value": "false", "PolicyTemplateUuid": "72093738-871a-45bd-b114-ad3a61893ac0", "Name": "sslEnabled" } ] } }, { "PolicyEntityUuid": "172594b6-18ba-4b0c-8d61-807db457e81d", "PolicyTemplateArguments": { "results": [ { "Type": "boolean", "ApiUuid": "{{GENERATED_GUID}}", "Label": "Debug Mode", "Value": "false", "PolicyTemplateUuid": "172594b6-18ba-4b0c-8d61-807db457e81d", "Name": "debugMode" }, { "Type": "string", "ApiUuid": "{{GENERATED_GUID}}", "Label": "Email (SLA notifications will be sent to this address)", "Value": "Test Value 888266", "PolicyTemplateUuid": "172594b6-18ba-4b0c-8d61-807db457e81d", "Name": "email" }, { "Type": "int", "ApiUuid": "{{GENERATED_GUID}}", "Label": "SLA (ms)", "Value": "414353", "PolicyTemplateUuid": "172594b6-18ba-4b0c-8d61-807db457e81d", "Name": "sla" }, { "Type": "string", "ApiUuid": "{{GENERATED_GUID}}", "Label": "SMTP Server (your email gateway)", "Value": "Test Value 414571", "PolicyTemplateUuid": "172594b6-18ba-4b0c-8d61-807db457e81d", "Name": "smtpServer" }, { "Type": "boolean", "ApiUuid": "{{GENERATED_GUID}}", "Label": "SSL", "Value": "true", "PolicyTemplateUuid": "172594b6-18ba-4b0c-8d61-807db457e81d", "Name": "sslEnabled" } ] } } ] }, "AuthenticationType": "NONE", "AuthenticationParameters": "{}", "CustomFieldValues": { "results": [ { "Uuid": "{{GENERATED_UUID}}", "EntityUuid": "{{GENERATED_UUID}}", "CustomFieldUuid": "ad3d5f44-133a-44f3-8c10-0e7305feedf0", "Value": "option1" } ] }, "ApiLocationUrl": "here.com", "SpecContent": "data:;base64,ew0KICAic3dhZ2dlciI6ICIyLjAiLA0KICAiaW5mbyI6IHsNCiAgICAidmVyc2lvbiI6ICIxLjAuMCIsDQogICAgInRpdGxlIjogIlN3YWdnZXIgUGV0c3RvcmUiLA0KICAgICJkZXNjcmlwdGlvbiI6ICJBIHNhbXBsZSBBUEkgdGhhdCB1c2VzIGEgcGV0c3RvcmUgYXMgYW4gZXhhbXBsZSB0byBkZW1vbnN0cmF0ZSBmZWF0dXJlcyBpbiB0aGUgc3dhZ2dlci0yLjAgc3BlY2lmaWNhdGlvbiIsDQogICAgInRlcm1zT2ZTZXJ2aWNlIjogImh0dHA6Ly9zd2FnZ2VyLmlvL3Rlcm1zLyIsDQogICAgImNvbnRhY3QiOiB7DQogICAgICAibmFtZSI6ICJTd2FnZ2VyIEFQSSBUZWFtIg0KICAgIH0sDQogICAgImxpY2Vuc2UiOiB7DQogICAgICAibmFtZSI6ICJNSVQiDQogICAgfQ0KICB9LA0KICAiaG9zdCI6ICJwZXRzdG9yZS5zd2FnZ2VyLmlvIiwNCiAgImJhc2VQYXRoIjogIi9hcGkiLA0KICAic2NoZW1lcyI6IFsNCiAgICAiaHR0cCINCiAgXSwNCiAgImNvbnN1bWVzIjogWw0KICAgICJhcHBsaWNhdGlvbi9qc29uIg0KICBdLA0KICAicHJvZHVjZXMiOiBbDQogICAgImFwcGxpY2F0aW9uL2pzb24iDQogIF0sDQogICJwYXRocyI6IHsNCiAgICAiL3BldHMiOiB7DQogICAgICAiZ2V0Ijogew0KICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBhbGwgcGV0cyBmcm9tIHRoZSBzeXN0ZW0gdGhhdCB0aGUgdXNlciBoYXMgYWNjZXNzIHRvIiwNCiAgICAgICAgInByb2R1Y2VzIjogWw0KICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIg0KICAgICAgICBdLA0KICAgICAgICAicmVzcG9uc2VzIjogew0KICAgICAgICAgICIyMDAiOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQSBsaXN0IG9mIHBldHMuIiwNCiAgICAgICAgICAgICJzY2hlbWEiOiB7DQogICAgICAgICAgICAgICJ0eXBlIjogImFycmF5IiwNCiAgICAgICAgICAgICAgIml0ZW1zIjogew0KICAgICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvUGV0Ig0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICB9DQogICAgfQ0KICB9LA0KICAiZGVmaW5pdGlvbnMiOiB7DQogICAgIlBldCI6IHsNCiAgICAgICJ0eXBlIjogIm9iamVjdCIsDQogICAgICAicmVxdWlyZWQiOiBbDQogICAgICAgICJpZCIsDQogICAgICAgICJuYW1lIg0KICAgICAgXSwNCiAgICAgICJwcm9wZXJ0aWVzIjogew0KICAgICAgICAiaWQiOiB7DQogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsDQogICAgICAgICAgImZvcm1hdCI6ICJpbnQ2NCINCiAgICAgICAgfSwNCiAgICAgICAgIm5hbWUiOiB7DQogICAgICAgICAgInR5cGUiOiAic3RyaW5nIg0KICAgICAgICB9LA0KICAgICAgICAidGFnIjogew0KICAgICAgICAgICJ0eXBlIjogInN0cmluZyINCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0NCiAgfQ0KfQ==", "SpecFilename": "swagger.json", "SpecFilesize": 1438, "OrgUuid": "4c35f9cd-8eb2-11e3-ae6b-000c2911a4db", "Uuid": "{{GENERATED_GUID}}" } }, "Api2.0Update": { "type": "object", "required": [ "AccessStatus", "ApiEulaUuid", "ApiLocationUrl", "AuthenticationType", "Name", "PolicyEntities", "PortalStatus", "PublishedByPortal", "SsgUrl", "Uuid", "Version" ], "properties": { "Uuid": { "type": "string", "description": "Unique key for this entity which conforms to the UUID standard according to RFC 4122. Change this UUID to the API UUID you want to update." }, "Name": { "type": "string", "description": "Name of API which must be unique.", "maxLength": 255 }, "Version": { "type": "string", "description": "The published version of the API.", "maxLength": 50 }, "PublishedByPortal": { "type": "boolean", "description": "Indicates whether the API was published via the portal (true) or the gateway (false)." }, "ApiEulaUuid": { "type": "string", "description": "The uuid of the End-User License Agreement applied to the API. The EULA of an API currently used by an application/s cannot be changed" }, "AccessStatus": { "type": "string", "description": "Indicates whether the API is public or private. A private API is only available to organizations that have it in their account plan. public APIs are public and available to all organizations. You cannot change the AccessStatus if an application is using the API.", "enum": [ "PUBLIC", "PRIVATE" ] }, "PortalStatus": { "type": "string", "description": "Indicates the status of the API. Applications that use an enabled API can still use the API when it is deprecated. However, you cannot add a deprecated API to an application.", "enum": [ "ENABLED", "DISABLED", "DEPRECATED" ] }, "SsgUrl": { "type": "string", "description": "The proxy URL. Developers use this URL in their applications to send requests to the API. The SsgUrl must be unique. Only applies if the API is portal published. Once created, it cannot be changed. The proxy URL for Portal Published APIs does not require the / in the beginning and * at the end since those are created in the Gateway. For Gateway Published APIs, the / in the beginning and the * at the end is present in the proxy URL since the value gets set as part of the sync." }, "OrgUuid": { "type": "string", "description": "The uuid of the Organization that owns this API. It is optional and can be modified." }, "AuthenticationType": { "type": "string", "description": "Specifies the Authentication type (for API Explorer usage). Only applies if the API is portal published. You can choose a different AuthenticationType or change the values with the existing AuthenticationType." }, "ApiLocationUrl": { "type": "string", "description": "Application calls are forwarded to this url. The url must be valid. Only applies if the API is portal published." }, "PolicyEntities": { "type": "array", "description": "Multiple Policy Entities may be assigned which may contain multiple Policy Arguments.", "items": { "$ref": "#/definitions/PolicyEntity" } } }, "example": { "Uuid": "UUID_OF_API", "Name": "apiName2", "Version": "2", "PublishedByPortal": true, "ApiEulaUuid": "c9406345-eb76-11e3-b0cd-000nosaj86a8", "PrivateDescription": "", "PortalStatus": "ENABLED", "AccessStatus": "PUBLIC", "Description": "", "SsgUrl": "proxyUrl1", "PolicyEntities": { "results": [ { "PolicyEntityUuid": "72093738-871a-45bd-b114-ad3a61893ac0", "PolicyTemplateArguments": { "results": [ { "Type": "boolean", "ApiUuid": "{{GENERATED_GUID}}", "Label": "Debug Mode", "Value": "true", "PolicyTemplateUuid": "72093738-871a-45bd-b114-ad3a61893ac0", "Name": "debugMode" } ] } } ] }, "AuthenticationType": "NONE", "AuthenticationParameters": "{}", "CustomFieldValues": { "results": [] }, "ApiLocationUrl": "here.com", "SpecContent": "data:;base64,ew0KICAic3dhZ2dlciI6ICIyLjAiLA0KICAiaW5mbyI6IHsNCiAgICAidmVyc2lvbiI6ICIxLjAuMCIsDQogICAgInRpdGxlIjogIlN3YWdnZXIgUGV0c3RvcmUiLA0KICAgICJkZXNjcmlwdGlvbiI6ICJBIHNhbXBsZSBBUEkgdGhhdCB1c2VzIGEgcGV0c3RvcmUgYXMgYW4gZXhhbXBsZSB0byBkZW1vbnN0cmF0ZSBmZWF0dXJlcyBpbiB0aGUgc3dhZ2dlci0yLjAgc3BlY2lmaWNhdGlvbiIsDQogICAgInRlcm1zT2ZTZXJ2aWNlIjogImh0dHA6Ly9zd2FnZ2VyLmlvL3Rlcm1zLyIsDQogICAgImNvbnRhY3QiOiB7DQogICAgICAibmFtZSI6ICJTd2FnZ2VyIEFQSSBUZWFtIg0KICAgIH0sDQogICAgImxpY2Vuc2UiOiB7DQogICAgICAibmFtZSI6ICJNSVQiDQogICAgfQ0KICB9LA0KICAiaG9zdCI6ICJwZXRzdG9yZS5zd2FnZ2VyLmlvIiwNCiAgImJhc2VQYXRoIjogIi9hcGkiLA0KICAic2NoZW1lcyI6IFsNCiAgICAiaHR0cCINCiAgXSwNCiAgImNvbnN1bWVzIjogWw0KICAgICJhcHBsaWNhdGlvbi9qc29uIg0KICBdLA0KICAicHJvZHVjZXMiOiBbDQogICAgImFwcGxpY2F0aW9uL2pzb24iDQogIF0sDQogICJwYXRocyI6IHsNCiAgICAiL3BldHMiOiB7DQogICAgICAiZ2V0Ijogew0KICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBhbGwgcGV0cyBmcm9tIHRoZSBzeXN0ZW0gdGhhdCB0aGUgdXNlciBoYXMgYWNjZXNzIHRvIiwNCiAgICAgICAgInByb2R1Y2VzIjogWw0KICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIg0KICAgICAgICBdLA0KICAgICAgICAicmVzcG9uc2VzIjogew0KICAgICAgICAgICIyMDAiOiB7DQogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQSBsaXN0IG9mIHBldHMuIiwNCiAgICAgICAgICAgICJzY2hlbWEiOiB7DQogICAgICAgICAgICAgICJ0eXBlIjogImFycmF5IiwNCiAgICAgICAgICAgICAgIml0ZW1zIjogew0KICAgICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvUGV0Ig0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICB9DQogICAgfQ0KICB9LA0KICAiZGVmaW5pdGlvbnMiOiB7DQogICAgIlBldCI6IHsNCiAgICAgICJ0eXBlIjogIm9iamVjdCIsDQogICAgICAicmVxdWlyZWQiOiBbDQogICAgICAgICJpZCIsDQogICAgICAgICJuYW1lIg0KICAgICAgXSwNCiAgICAgICJwcm9wZXJ0aWVzIjogew0KICAgICAgICAiaWQiOiB7DQogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsDQogICAgICAgICAgImZvcm1hdCI6ICJpbnQ2NCINCiAgICAgICAgfSwNCiAgICAgICAgIm5hbWUiOiB7DQogICAgICAgICAgInR5cGUiOiAic3RyaW5nIg0KICAgICAgICB9LA0KICAgICAgICAidGFnIjogew0KICAgICAgICAgICJ0eXBlIjogInN0cmluZyINCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0NCiAgfQ0KfQ==", "SpecFilename": "swagger.json", "SpecFilesize": 1438, "OrgUuid": "4c35f9cd-8eb2-11e3-ae6b-000c2911a4db" } }, "ApplicationsGet": { "type": "object", "allOf": [ { "$ref": "#/definitions/ListBasic" }, { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/definitions/ApplicationGet" } } } }, { "$ref": "#/definitions/LinksBasic" } ] }, "ApplicationGet": { "type": "object", "properties": { "uuid": { "type": "string", "description": "Unique key for this entity which conforms to the UUID standard according to RFC 4122." }, "name": { "type": "string", "description": "Name of Application which must be unique.", "maxLength": 50 }, "status": { "type": "string", "enum": [ "ENABLED", "DISABLED" ] }, "organizationUuid": { "type": "string", "description": "The uuid of the Organization that owns this Application. Once added into an application, it cannot be changed." }, "organizationName": { "type": "string", "description": "The name of the organization that the application belongs to." } } }, "Applications": { "type": "array", "items": { "$ref": "#/definitions/Application" }, "xml": { "name": "Applications" } }, "ApplicationUpdate": { "allOf": [ { "$ref": "#/definitions/Application" }, { "type": "object", "required": [ "OrganizationName", "Status" ], "properties": { "OrganizationName": { "type": "string", "description": "The name of the Organization that owns this Application. Once added into an application, it cannot be changed." }, "Status": { "type": "string", "enum": [ "ENABLED", "DISABLED" ], "description": "Indicates whether the Application is currently active or not. A disabled Application cannot be used to access APIs." } } }, { "example": { "Uuid": "UUID_OF_APP", "Name": "my updated app", "OrganizationUuid": "4c35f9cd-8eb2-11e3-ae6b-000c2911a4db", "Description": "Public description of my new app, now updated", "Status": "ENABLED", "OauthScope": "", "OauthCallbackUrl": "https://myportal.dev.ca.com/admin/oauthCallback", "OauthType": "confidential", "MagScope": "oob", "ApiKey": "l7xx67167af2f7b1417480cc5824a298c7f2", "KeySecret": "aee5f76d3b43420eb24129af3a66b62a", "MagMasterKey": "99e78c83-02d6-4c8b-8e55-eb0db53ae789", "ApiIds": { "results": [ "1e544644-7e3a-402c-9b50-f1af4a77bbbf", "538f3e7c-6e17-47a6-9903-1dcee3e3d3f3" ] }, "ApiApiPlanIds": { "results": [ { "ApiUuid": "1e544644-7e3a-402c-9b50-f1af4a77bbbf", "ApiPlanUuid": "c79636bc-8c50-4157-94b3-6c799da35388" }, { "ApiUuid": "538f3e7c-6e17-47a6-9903-1dcee3e3d3f3", "ApiPlanUuid": "c79636bc-8c50-4157-94b3-6c799da35388" } ] }, "ApiGroupIds": { "results": [ "8b2f796e-2d3f-482c-85d7-30420109f170" ] }, "CustomFieldValues": { "results": [ { "Uuid": "6d0a1735-3821-4516-a8ad-aa6961d882ae", "EntityUuid": "UUID_OF_APP", "CustomFieldUuid": "ad3d5f44-133a-44f3-8c10-0e7305feedf2", "Value": "Staging" } ] } } } ], "xml": { "name": "ApplicationUpdate" } }, "ApplicationCreate": { "allOf": [ { "$ref": "#/definitions/Application" }, { "type": "object", "required": [ "OrganizationName" ], "properties": { "OrganizationName": { "type": "string", "description": "The name of the Organization that owns this Application. Once added into an application, it cannot be changed." } } }, { "example": { "Uuid": "{{GENERATED_GUID}}", "Name": "my new app", "OrganizationUuid": "4c35f9cd-8eb2-11e3-ae6b-000c2911a4db", "Description": "Public description of my new app", "ApiKey": "l70851d2cb5af6413e84270af7bfa3bbb2", "KeySecret": "863ec9da07f04214ba444f0a8cd7f546", "OauthScope": "", "OauthCallbackUrl": "", "MagMasterKey": "66003f84-824e-45cd-8c3a-48693cc60ba5", "MagScope": "oob", "OauthType": "", "ApiIds": { "results": [ "1e544644-7e3a-402c-9b50-f1af4a77bbbf" ] }, "ApiApiPlanIds": { "results": [ { "ApiUuid": "1e544644-7e3a-402c-9b50-f1af4a77bbbf", "ApiPlanUuid": "c79636bc-8c50-4157-94b3-6c799da35388" }, { "ApiUuid": "1e544644-7e3a-402c-9b50-f1af4a77bbbf", "ApiPlanUuid": "c79636bc-8c50-4157-94b3-6c799da35389" } ] }, "ApiGroupIds": { "results": [ "8b2f796e-2d3f-482c-85d7-30420109f170" ] }, "CustomFieldValues": { "results": [ { "Uuid": "{{GENERATED_UUID}}", "EntityUuid": "{{GENERATED_UUID}}", "CustomFieldUuid": "ad3d5f44-133a-44f3-8c10-0e7305feedf2", "Value": "Staging" } ] } } } ], "xml": { "name": "ApplicationCreate" } }, "Application": { "type": "object", "required": [ "Uuid", "Name", "OrganizationUuid" ], "properties": { "Uuid": { "type": "string", "description": "Unique key for this entity which conforms to the UUID standard according to RFC 4122." }, "Name": { "type": "string", "description": "Name of Application which must be unique.", "maxLength": 50 }, "OrganizationName": { "type": "string", "description": "The name of the Organization that owns this Application. Once added into an application, it cannot be changed." }, "OrganizationUuid": { "type": "string", "description": "The uuid of the Organization that owns this Application. Once added into an application, it cannot be changed." }, "Description": { "type": "string", "maxLength": 65000 }, "Status": { "type": "string", "enum": [ "ENABLED", "DISABLED" ], "description": "Indicates whether the Application is currently active or not. A disabled Application cannot be used to access APIs." }, "DisabledByType": { "type": "string", "enum": [ "INTERNAL", "EXTERNAL" ], "description": "If the Application has been set to a DISABLED status, this property identifies the type of the user who change the status." }, "OauthScope": { "type": "string", "description": "If you enter multiple scope values, separate them with spaces.", "maxLength": 255 }, "OauthCallbackUrl": { "type": "string", "description": "If you enter multiple callback URLs, separate them with commas.", "maxLength": 255 }, "ApiKey": { "type": "string", "description": "The API Proxy generates a unique API key after adding an application. Later, the developers must add the API key to the application so that the application can use the APIs. Once added into an application, it cannot be changed." }, "KeySecret": { "type": "string", "description": "A key between the Application and it's containing API/APIs. Once added into an application, it cannot be changed." }, "MagMasterKey": { "type": "string", "description": "The API Proxy generates a unique Master client key to be used for Mobile SSO feature in the Mobile Access Gateway after adding an application. Later, the developers must add this key to the MAG SDK application so that the application can use the APIs. Once added into an application, it cannot be changed." }, "MagScope": { "type": "string", "description": "The MAG scope field is for scope or feature to be enabled with the Mobile SSO authentication. If you enter multiple scope values, separate them with spaces.", "maxLength": 1024 }, "OauthType": { "type": "string", "enum": [ "null", "public", "confidential" ], "description": "The OAuth 2.0 client type this Application conforms to. Set the type to Public or Confidential, depending on the OAuth requirements of the APIs." }, "Reason": { "type": "string" }, "ApiIds": { "description": "A list of API Ids that this Application uses. An Application should have at least one API or API Group attached to it. Only APIs that are enabled can be added into an Application. ", "type": "object", "required": [ "result" ], "properties": { "results": { "type": "array", "items": { "type": "string" } } } }, "ApiApiPlanIds": { "description": "A list of association of API Ids and API Plan Ids. An Application should have at least one API which may associated with API Plan. Only APIs that are enabled can be added into an Application. ", "type": "object", "required": [ "result" ], "properties": { "results": { "$ref": "#/definitions/ApiPlanApis" } } }, "ApiGroupIds": { "description": "A list of API Group Ids that this Application uses. An Application should have at least one API or API Group attached to it. Only API group that are enabled and contains all enabled APIs in same Organization as Application can be added into an Application. ", "type": "object", "required": [ "result" ], "properties": { "results": { "type": "array", "items": { "type": "string" } } } }, "CustomFieldValues": { "uniqueItems": true, "description": "Custom Fields add additional metadata to the Application. If a Custom Field is required, you must put a value in it when creating or changing an Application.", "type": "object", "required": [ "result" ], "properties": { "results": { "type": "array", "items": { "$ref": "#/definitions/CustomFieldValue" } } } } } }, "CustomFields": { "type": "array", "items": { "$ref": "#/definitions/CustomField" }, "xml": { "name": "CustomFields" } }, "CustomField": { "type": "object", "required": [ "Uuid", "Name", "Type", "Status", "EntityType", "Required", "OptionsList" ], "properties": { "Uuid": { "type": "string", "description": "Unique key for this entity which conforms to the UUID standard according to RFC 4122." }, "Name": { "type": "string", "description": "Name of Custom Field which must be unique. Only supports alphanumerical characters and spaces.", "maxLength": 50 }, "Status": { "type": "string", "enum": [ "ENABLED", "DISABLED" ], "description": "Indicates if the Custom Field is active. A disabled Custom Field cannot be applied to an API or Application." }, "Required": { "type": "boolean", "description": "Indicates if the Custom Field must have a value or not if it has been added to an API or Application." }, "Description": { "type": "string", "maxLength": 65000 }, "Type": { "type": "string", "enum": [ "SINGLE_SELECT", "TEXT" ], "description": "The type of values that are allowed for the Custom Field. SINGLE_SELECT indicates that the value must be one specified in the OptionsList property. TEXT has a maximum of 5000 characters." }, "EntityType": { "type": "string", "description": "The Entity Type that the Custom Field belongs to which is API or APPLICATION." }, "OptionsList": { "type": "object", "description": "A list of valid values for the Custom Field when Type is set to SINGLE_SELECT. At least one option should be supplied. The maximum length of the value is 255 characters" } } }, "CustomFieldPut": { "allOf": [ { "$ref": "#/definitions/CustomField" }, { "example": { "Name": "cf", "Uuid": "e18bec62-c731-4dac-825c-35f57b12a971", "Status": "ENABLED", "Required": true, "Description": "", "Type": "SINGLE_SELECT", "EntityType": "API", "OptionsList": { "results": [ { "Value": "a", "Ordinal": 0 } ] } } } ] }, "CustomFieldPost": { "allOf": [ { "$ref": "#/definitions/CustomField" }, { "example": { "Uuid": "{{GENERATED_GUID}}", "Name": "cf", "Status": "ENABLED", "Required": true, "Description": "", "Type": "SINGLE_SELECT", "EntityType": "API", "OptionsList": { "results": [ { "Value": "a", "Ordinal": 0 } ] } } } ] }, "CustomFieldValue": { "type": "object", "title": "Custom Field Value", "required": [ "Uuid", "CustomFieldUuid", "EntityUuid", "value" ], "properties": { "Uuid": { "type": "string" }, "CustomFieldUuid": { "type": "string", "description": "The uuid of the Custom Field entity applied to this API or Application instance." }, "EntityUuid": { "type": "string", "description": "The uuid of this API or Application. Used to reference the API or Application instance from the Custom Field instance." }, "value": { "type": "string", "description": "The value applied to this Custom Field instance." } } }, "Languages": { "type": "array", "items": { "$ref": "#/definitions/Language" }, "xml": { "name": "Languages" }, "description": "A list of language names and codes available." }, "Language": { "type": "object", "properties": { "Uuid": { "type": "string", "description": "Unique key for this entity which conforms to the UUID standard according to RFC 4122." }, "name": { "type": "string", "maxLength": 50, "description": "The human-readible name of the Language." } } }, "ListBasic": { "type": "object", "required": [ "totalPages", "pageSize", "currentPage", "totalElements" ], "properties": { "totalPages": { "type": "integer" }, "pageSize": { "type": "integer" }, "currentPage": { "type": "integer" }, "totalElements": { "type": "integer" } } }, "LinksApi": { "type": "object", "properties": { "_links": { "$ref": "#/definitions/LinksApisBody" } } }, "LinksApisBody": { "type": "object", "allOf": [ { "$ref": "#/definitions/LinkBasicBody" }, { "type": "object", "properties": { "apiUsage": { "type": "object", "properties": { "href": { "type": "string" } } } } } ] }, "LinksBasic": { "type": "object", "properties": { "_links": { "$ref": "#/definitions/LinkBasicBody" } } }, "LinkBasicBody": { "type": "object", "properties": { "self": { "type": "object", "properties": { "href": { "type": "string" } } } } }, "Organizations": { "type": "object", "xml": { "name": "Organizations" }, "allOf": [ { "$ref": "#/definitions/ListBasic" }, { "type": "object", "properties": { "result": { "$ref": "#/definitions/OrganizationList" } } }, { "$ref": "#/definitions/LinksBasic" } ] }, "OrganizationList": { "type": "array", "items": { "$ref": "#/definitions/OrganizationGet" } }, "OrganizationGet": { "type": "object", "properties": { "uuid": { "type": "string", "description": "Unique key for this entity which conforms to the UUID standard according to RFC 4122." }, "tenantId": { "type": "string", "description": "the tenantId that the organization belongs to." }, "name": { "type": "string", "description": "Name of the Organization must be unique.", "maxLength": 50 }, "description": { "type": "string", "maxLength": 65000 }, "status": { "type": "string", "description": "The status of an organization." }, "accountPlanUuid": { "type": "string", "description": "The Account Plan assigned to the Organization." } } }, "Organization": { "description": "A representation of an Organization", "allOf": [ { "$ref": "#/definitions/OrganizationBasic" }, { "type": "object", "properties": { "ApplicationUsage": { "type": "integer", "description": "The number of Applications that are owned by this Organization." }, "PrivateApiUsage": { "type": "integer", "description": "The number of Private APIs that the account plan of the organization has." }, "UserUsage": { "type": "integer", "description": "The number of Users that are assigned to this Organization." }, "PrivateAppUsage": { "type": "integer", "description": "The number of Private APIs used by an Application in the Organization. If no private app is in use, then it is safe to change the account plan." }, "Status": { "type": "string", "enum": [ "ENABLED", "DISABLED" ], "description": "Indicates if the Organization is active. A disabled Organization cannot have new Users or Applications assigned to it." } } } ] }, "OrganizationBasic": { "type": "object", "required": [ "Uuid", "Name", "AccountPlanUuid", "Status" ], "properties": { "Uuid": { "type": "string", "description": "Unique key for this entity which conforms to the UUID standard according to RFC 4122." }, "Name": { "type": "string", "description": "Name of the Organization must be unique.", "maxLength": 50 }, "Description": { "type": "string", "maxLength": 65000 }, "AccountPlanUuid": { "type": "string", "description": "The Account Plan assigned to the Organization." }, "Status": { "type": "string", "description": "The status of an organization." } }, "example": { "Name": "testorganization", "AccountPlanUuid": "00000001-9362-11e3-b742-000drahcir00", "Description": "testorganization", "Uuid": "{{GENERATED_GUID}}", "Status": "ENABLED" } }, "PolicyEntity": { "type": "object", "title": "Policy Entity", "required": [ "PolicyEntityUuid" ], "properties": { "Uuid": { "type": "string" }, "PolicyEntityUuid": { "type": "string", "description": "The Uuid of the Policy Entity applied to this API or Application instance." }, "PolicyTemplateArguments": { "type": "array", "description": "Additional fields that are part of the Policy Template. The default fields are debugMode, email, sla, smtpServer and sslEnabled.", "items": { "$ref": "#/definitions/PolicyTemplateArguments" } } } }, "PolicyTemplates": { "type": "object", "properties": { "Uuid": { "type": "string", "description": "Unique key for this entity which conforms to the UUID standard according to RFC 4122." }, "encassId": { "type": "string", "description": "The encapsulation assertion ID of the policy template in the gateway" }, "name": { "type": "string", "description": "Name of Policy Template which must be unique.", "maxLength": 50 }, "description": { "type": "string" }, "policyGuid": { "type": "string", "description": "The policy GUID of the policy template in the gateway." }, "fragmentDetails": { "$ref": "#/definitions/PolicyTemplateFragmentDetails" }, "arguments": { "type": "array", "items": { "$ref": "#/definitions/PolicyTemplateArguments" } } }, "xml": { "name": "PolicyTemplates" } }, "PolicyTemplateArguments": { "type": "object", "title": "Policy Template Arguments", "properties": { "name": { "type": "string" }, "type": { "type": "string", "description": "type of the parameter (e.g. string, boolean, int)" }, "label": { "type": "string" }, "ApiPolicyEntityXrefUuid": { "type": "string" }, "ApiUuid": { "type": "string" }, "Value": { "type": "string" }, "PolicyTemplateUuid": { "type": "string" }, "Uuid": { "type": "string" } } }, "PolicyTemplateFragmentDetails": { "type": "object", "title": "Policy Template Fragment Details", "properties": { "hasRouting": { "type": "boolean" }, "parsedPolicyDetails": { "type": "string" } } }, "Requests": { "type": "array", "items": { "$ref": "#/definitions/Request" }, "xml": { "name": "Requests" } }, "Request": { "type": "object", "properties": { "Action": { "type": "string", "enum": [ "ACCEPT", "REJECT" ], "description": "Provides Administrators and API Owners with the ability to accept or reject a Developer Request" }, "EntityUuid": { "type": "string", "description": "The uuid of the resource that the Developer Request is being made for. For Registration Requests, this identifies an Organization Admin User that will have been created as part of the request process. For an Application Request this identifies an Application that will have been created as part of the request process. In both cases the associated resource cannot be used until the Developer Request has been approved. For Registration Requests the requesting user will also need to complete the registration process" }, "OrganizationName": { "type": "string", "description": "The name of the associated Organization" }, "OrganizationUuid": { "type": "string", "description": "The Uuid of the associated Organization" }, "Payload": { "type": "string", "description": "Applicable for Application Requests that are created when a developer makes changes to an existing application. This JSON formatted attribute provides a full representation of the Application with the proposed changes. The changes are only applied to the Application if the Developer Request is approved" }, "PreviousState": { "type": "string", "description": "Applicable for Application Requests that are created when a developer makes changes to an existing application. Identifies the last know state of the application before the changes were made" }, "Reason": { "type": "string", "description": "Provides an explanation as to why a Developer Request was rejected" }, "RequestStatus": { "type": "string", "description": "The current status of the Developer Request", "enum": [ "PENDING", "ACCEPTED", "REJECTED", "REJECT_CONFIRMED" ] }, "RequestType": { "type": "string", "description": "The type of Developer Request", "enum": [ "REGISTRATION", "APPLICATION" ] }, "Uuid": { "type": "string", "description": "The Uuid of the Developer Request" } } }, "Search": { "allOf": [ { "$ref": "#/definitions/SearchBasic" }, { "type": "object", "properties": { "pageNumber": { "type": "integer", "description": "Current page number" }, "last": { "type": "boolean", "description": "true if this is the last page of search results" }, "numberOfElements": { "type": "integer", "description": "Number of elements being shown on the current page" }, "totalElements": { "type": "integer", "description": "Total number of elements that match" }, "maxElementsPerPage": { "type": "integer", "description": "The limit being applied to the current page" }, "totalPages": { "type": "integer", "description": "Total number of result pages" } } } ] }, "SearchBasic": { "type": "object", "properties": { "Uuid": { "type": "string", "description": "Unique key for this entity which conforms to the UUID standard according to RFC 4122." } } }, "RoleTypes": { "type": "array", "items": { "$ref": "#/definitions/RoleType" } }, "RoleType": { "type": "object", "properties": { "Uuid": { "type": "string", "description": "Unique key for this entity which conforms to the UUID standard according to RFC 4122." }, "name": { "type": "string", "description": "Name of RoleType which must be unique.", "maxLength": 50 } } }, "Users": { "type": "array", "items": { "$ref": "#/definitions/User" }, "xml": { "name": "Users" } }, "UserPost": { "allOf": [ { "$ref": "#/definitions/UserBasic" }, { "example": { "Uuid": "{{GENERATED_GUID}}", "FirstName": "Test", "LastName": "User", "Username": "testuser", "Email": "test.user@example.com", "RoleUuid": "00000005-0005-0005-0005-000000000005", "OrganizationUuid": "4c35f9cd-8eb2-11e3-ae6b-000c2911a4db", "NotifyUser": true, "Locale": "en" } } ] }, "UserPut": { "allOf": [ { "$ref": "#/definitions/UserBasic" }, { "type": "object", "required": [ "Status" ], "properties": { "Status": { "type": "string", "enum": [ "ENABLED", "DISABLED", "LOCKED", "REGISTRATION_INIT" ], "description": "Whether this User account is active or not. Users with a status of DISABLED cannot logon to the portal. Users get a LOCKED status when they try to log into the portal using the same username and an incorrect password 5 times. Users who received a LOCKED status can be changed by an admin to an enabled or disabled state. They can also reset their password using the reset password link on the main page to change their status back to ENABLED. The REGISTRATION_INIT status indicates that the user needs to register themselves in order to be an ENABLED user." } } }, { "example": { "Uuid": "UUID_OF_USER", "FirstName": "Test", "LastName": "User", "Username": "testuser", "Email": "test.user@example.com", "RoleUuid": "00000005-0005-0005-0005-000000000005", "OrganizationUuid": "4c35f9cd-8eb2-11e3-ae6b-000c2911a4db", "NotifyUser": true, "Locale": "en", "Status": "ENABLED" } } ] }, "User": { "description": "A representation of a User including password and derived values", "allOf": [ { "$ref": "#/definitions/UserBasic" }, { "type": "object", "properties": { "Fullname": { "type": "string", "description": "The User's full name (First and Last name fields upon creation)." }, "RoleName": { "type": "string", "description": "Name of the role assigned to the User: portaladministrators, acctmanagers, busmanagers, apiowners, devorgadministrators, developers, webadministrators and devops. " }, "RoleDescription": { "type": "string" }, "RoleType": { "type": "string", "enum": [ "INTERNAL", "EXTERNAL" ], "description": "Whether the User is assigned to the tenant (INTERNAL) or a third-party organization (EXTERNAL)." }, "OrganizationName": { "type": "string", "description": "Name of the Organization the User is assigned to, if any. Org Admin and Developer roles must belong to an Organization." }, "Status": { "type": "string", "enum": [ "ENABLED", "DISABLED", "LOCKED", "REGISTRATION_INIT" ], "description": "Whether this User account is active or not. Users with a status of DISABLED cannot logon to the portal. Users get a LOCKED status when they try to log into the portal using the same username and an incorrect password 5 times. Users who received a LOCKED status can be changed by an admin to an enabled or disabled state. They can also reset their password using the reset password link on the main page to change their status back to ENABLED. The REGISTRATION_INIT status indicates that the user needs to register themselves in order to be an ENABLED user." } } } ] }, "UserBasic": { "type": "object", "required": [ "Uuid", "FirstName", "LastName", "Username", "Email", "RoleUuid", "NotifyUser", "Locale" ], "properties": { "Uuid": { "type": "string", "description": "Unique key for this entity which conforms to the UUID standard according to RFC 4122." }, "FirstName": { "type": "string", "description": "The User's first name.", "maxLength": 60 }, "LastName": { "type": "string", "description": "The User's last name.", "maxLength": 60 }, "Username": { "type": "string", "description": "The unique username that the User will use to logon to the portal. It must not contain spaces.", "maxLength": 60 }, "Email": { "type": "string", "description": "The User's email address.", "maxLength": 254 }, "RoleUuid": { "type": "string", "description": "The uuid of the RoleType that this User has been assigned." }, "OrganizationUuid": { "type": "string", "description": "The uuid of the Organization that this User belongs to, if any. The Org Admin and Developer user must belong to an Organization." }, "NotifyUser": { "type": "boolean", "description": "Indicates whether the User was / will be sent an email which contains an activation link for their user account." }, "Locale": { "type": "string", "description": "The language that this user will see the portal translated into." } } }, "UsersGetV2": { "type": "object", "properties": { "count": { "type": "integer", "description": "Total number of users matching the provided filters" }, "list": { "type": "array", "description": "List of users matching the provided filters", "items": { "$ref": "#/definitions/UserV2" } }, "_links": { "type": "array", "items": { "$ref": "#/definitions/HateoasAuthenticatorLink" } } } }, "UserV2": { "type": "object", "allOf": [ { "$ref": "#/definitions/UserGetBasicV2" }, { "type": "object", "properties": { "access": { "type": "array", "description": "List of role mappings for the user. Contains following attributes : orgUuid, roleUuid", "items": { "$ref": "#/definitions/UserAccess" } }, "_links": { "type": "object", "$ref": "#/definitions/UserResourceLinksBasic" } } } ] }, "UserGetBasicV2": { "type": "object", "properties": { "uuid": { "type": "string", "description": "The uuid which identifies the user uniquely" }, "username": { "type": "string", "description": "Unique string that is associated with the user" }, "firstName": { "type": "string", "description": "First name of the user" }, "lastName": { "type": "string", "description": "Last name of the user" }, "email": { "type": "string", "description": "Email of the user" }, "locale": { "type": "string", "description": "Locale the user supports" }, "status": { "type": "string", "enum": [ "ENABLED", "LOCKED", "DISABLED", "REGISTRATION_INIT", "REGISTRATION_PENDING_APPROVAL" ], "description": "Status of the user" }, "tenantId": { "type": "string", "description": "Tenant id for which the user is created" }, "authConfigUuid": { "type": "string", "description": "Uuid of the authentication scheme for which the user is created" } } }, "UserAccessList": { "type": "array", "items": { "$ref": "#/definitions/UserAccess" } }, "UserAccess": { "type": "object", "properties": { "uuid": { "type": "string", "description": "The uuid which identifies the role mapping" }, "roleUuid": { "type": "string", "description": "The uuid which identifies the role" }, "orgUuid": { "type": "string", "description": "The uuid which identifies the organization the user is assinged to" }, "_links": { "$ref": "#/definitions/LinksBasic" } } }, "HateoasAuthenticatorLink": { "type": "object", "description": "A HateoasLink consists of a link title and an href. The link title describes what the href link refers to - for example - a link_title of 'self' will include an href to a link that can be used to reference the requested object, essentially it is a requested object's reference to itself", "properties": { "self": { "type": "object", "properties": { "href": { "type": "string", "description": "The link that can be used to access the current item in view" } } }, "prev": { "type": "object", "properties": { "href": { "type": "string", "description": "The link that can be used to access the previous page from the current page when viewing a list of items" } } }, "next": { "type": "object", "properties": { "href": { "type": "string", "description": "The link that can be used to access the next page from the current page when viewing a list of items" } } } } }, "UserResourceLinksBasic": { "type": "object", "description": "A HateoasLink consists of a link title and an href. The link title describes what the href link refers to - for example - a link_title of 'self' will include an href to a link that can be used to reference the requested object, essentially it is a requested object's reference to itself", "properties": { "self": { "type": "object", "properties": { "href": { "type": "string", "description": "The link that can be used to access the current user details" } } }, "roleMappings": { "type": "object", "properties": { "href": { "type": "string", "description": "The link that can be used to access the details of users access" } } } } }, "UserPostV2": { "type": "object", "properties": { "username": { "type": "string", "description": "Login identifier. This value should be unique for every user" }, "firstName": { "type": "string", "description": "First name of user" }, "lastName": { "type": "string", "description": "Last name of user" }, "email": { "type": "string", "description": "Email ID of user" }, "status": { "type": "string", "description": "Status of the user", "enum": [ "ENABLED" ] }, "locale": { "type": "string", "description": "Language the user created to support", "enum": [ "en" ] }, "password": { "type": "string", "description": "Set account password" }, "authConfigUuid": { "type": "string", "description": "Unique identifier of the authentication scheme to which the user belongs" } }, "required": [ "username", "firstName", "lastName", "email", "status", "locale", "password", "authConfigUuid" ] }, "UserPutV2": { "type": "object", "properties": { "username": { "type": "string", "description": "Login identifier. This value should be unique for every user" }, "firstName": { "type": "string", "description": "First name of user" }, "lastName": { "type": "string", "description": "Last name of user" }, "email": { "type": "string", "description": "Email ID of user" }, "status": { "type": "string", "description": "Status of the user", "enum": [ "DISABLED", "ENABLED" ] } }, "required": [ "firstName", "lastName", "email", "status" ] }, "RoleMappingsGet": { "type": "object", "properties": { "count": { "type": "integer", "description": "Total number of users matching the provided filters" }, "list": { "type": "array", "description": "List of users matching the provided filters", "items": { "$ref": "#/definitions/RoleMapping" } }, "_links": { "type": "array", "items": { "$ref": "#/definitions/HateoasAuthenticatorLink" } } } }, "RoleMapping": { "type": "object", "allOf": [ { "type": "object", "$ref": "#/definitions/RoleMappingBasic" }, { "properties": { "uuid": { "type": "string", "description": "The uuid which identifies the role mapping" }, "_links": { "type": "object", "$ref": "#/definitions/UserRoleMappingLink" } } } ] }, "RoleMappingBasic": { "type": "object", "properties": { "userUuid": { "type": "string", "description": "The uuid which identifies the user uniquely" }, "roleUuid": { "type": "string", "description": "The uuid which identifies the role" }, "orgUuid": { "type": "string", "description": "The uuid of the organization the user will belong to. It is mandatory only for developer type users i.e. users with roles 00000005-0005-0005-0005-000000000005,00000006-0006-0006-0006-000000000006" } }, "required": [ "userUuid", "roleUuid" ] }, "UserRoleMappingLink": { "type": "object", "description": "A HateoasLink consists of a link title and an href. The link title describes what the href link refers to - for example - a link_title of 'self' will include an href to a link that can be used to reference the requested object, essentially it is a requested object's reference to itself", "properties": { "self": { "type": "object", "properties": { "href": { "type": "string", "description": "The link that can be used to fetch the current role mapping details" } } }, "user": { "type": "object", "properties": { "href": { "type": "string", "description": "The link that can be used to access the user details associated with the role mapping" } } } } }, "Setting": { "type": "object", "required": [ "Uuid", "Name", "Value" ], "properties": { "Uuid": { "type": "string", "description": "Unique key for this entity which conforms to the UUID standard according to RFC 4122." }, "Name": { "type": "string", "enum": [ "GOOGLE_ANALYTICS_ID", "ACTIVATE_MSSO", "EDIT_APPLICATION_REQUEST_WORKFLOW", "APP_EDIT_WF_EXCLUDE_PROPS", "APPLICATION_REQUEST_WORKFLOW" ], "description": "Setting Name.\n\n Supported names at this time: \n GOOGLE_ANALYTICS_ID: google analytics account id;\n ACTIVATE_MSSO: enable/disable single signon. Values (true, false);\n APPLICATION_REQUEST_WORKFLOW: enable/disable new applications approval workflow, Values (ENABLED, DISABLED);\n EDIT_APPLICATION_REQUEST_WORKFLOW: enable/disable existing applications approval workflow, Values (ENABLED, DISABLED);\n APP_EDIT_WF_EXCLUDE_PROPS: workflow excluded fields, Sample ({\"Fields\":[\"Name\",\"Description\",\"Status\"],\"CustomFields\":[\"MyCustomField\",\"AnotherCustomField\"]});", "maxLength": 80 }, "Value": { "type": "string", "description": "Setting Value.", "maxLength": 65000 } }, "example": { "Uuid": "UUID_OF_SETTING", "Name": "GOOGLE_ANALYTICS_ID", "Value": "VALUE_OF_SETTING" } }, "SpecContent": { "type": "object", "properties": { "swagger": { "type": "string", "description": "version of swagger file" } }, "example": { "swagger": "2.0" } }, "ThemeBasic": { "description": "A representation of a Theme.", "type": "object", "required": [ "logo", "favicon", "siteTitle", "color", "typography", "fontSize", "display" ], "properties": { "logo": { "type": "string", "description": "Base64 string of portal logo.", "maxLength": 716800 }, "favicon": { "type": "string", "description": "Base64 string of portal favicon.", "maxLength": 716800 }, "siteTitle": { "type": "string" }, "color": { "type": "object", "required": [ "siteTitle", "pageTitle", "background", "bodyText", "link", "linkHover", "smallText", "borderColor", "primaryButtonBackground", "primaryButtonText", "primaryButtonHover", "headerBackground", "headerLink", "footerBackground", "footerText", "footerLink" ], "properties": { "siteTitle": { "type": "string" }, "pageTitle": { "type": "string" }, "background": { "type": "string" }, "bodyText": { "type": "string" }, "link": { "type": "string" }, "linkHover": { "type": "string" }, "smallText": { "type": "string" }, "borderColor": { "type": "string" }, "primaryButtonBackground": { "type": "string" }, "primaryButtonText": { "type": "string" }, "primaryButtonHover": { "type": "string" }, "headerBackground": { "type": "string" }, "headerLink": { "type": "string" }, "footerBackground": { "type": "string" }, "footerText": { "type": "string" }, "footerLink": { "type": "string" } } }, "typography": { "type": "object", "required": [ "siteTitle", "pageTitle", "bodyText", "smallText", "footerText", "buttonText" ], "properties": { "siteTitle": { "type": "string" }, "pageTitle": { "type": "string" }, "bodyText": { "type": "string" }, "smallText": { "type": "string" }, "footerText": { "type": "string" }, "buttonText": { "type": "string" } } }, "fontSize": { "type": "object", "required": [ "siteTitle", "pageTitle", "bodyText", "smallText", "footerText", "buttonText" ], "properties": { "siteTitle": { "type": "string" }, "pageTitle": { "type": "string" }, "bodyText": { "type": "string" }, "smallText": { "type": "string" }, "footerText": { "type": "string" }, "buttonText": { "type": "string" } } }, "display": { "type": "object", "properties": { "versionNumber": { "type": "boolean" }, "copyright": { "type": "boolean" }, "cookieConsent": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "message": { "type": "string" }, "position": { "type": "string" }, "theme": { "type": "string" } } } } }, "label": { "type": "object", "description": "Custom menu label.", "properties": { "service.publish.nav.manageapi.title": { "type": "string" }, "service.publish.nav.apps.title": { "type": "string" }, "service.publish.nav.apicatalog.title": { "type": "string" }, "service.publish.nav.apiexplorer.title": { "type": "string" } } } } }, "ThemeFontGetDto": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string" }, "ttfUri": { "type": "string" }, "woffUri": { "type": "string" }, "woff2Uri": { "type": "string" }, "eotUri": { "type": "string" }, "otfUri": { "type": "string" } } }, "ThemeFontPutDto": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string" }, "ttfFile": { "type": "string" }, "woffFile": { "type": "string" }, "woff2File": { "type": "string" }, "eotFile": { "type": "string" }, "otfFile": { "type": "string" } } }, "ThemeGet": { "allOf": [ { "$ref": "#/definitions/ThemeBasic" }, { "type": "object", "properties": { "typography": { "type": "object", "properties": { "custom": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/ThemeFontGetDto" } } } }, "images": { "type": "object", "properties": { "backgroundFooterUri": { "type": "string", "description": "Uri to background footer image" }, "backgroundHeaderUri": { "type": "string", "description": "Uri to background header image" } } } } } ] }, "ThemePut": { "allOf": [ { "$ref": "#/definitions/ThemeBasic" }, { "type": "object", "properties": { "typography": { "type": "object", "properties": { "custom": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/ThemeFontPutDto" } } } }, "images": { "type": "object", "properties": { "backgroundFooter": { "type": "string", "description": "base64Uri encoded file. Null if not uploading" }, "backgroundHeader": { "type": "string", "description": "base64Uri encoded file. Null if not uploading" } } } } } ] }, "LongerError": { "type": "object", "properties": { "error": { "$ref": "#/definitions/LongErrorBody" } } }, "LongErrorBody": { "type": "object", "properties": { "code": { "type": "string" }, "message": { "$ref": "#/definitions/Message" }, "detail": { "$ref": "#/definitions/LongErrorBodyDetail" } } }, "LongErrorBodyDetail": { "type": "object", "allOf": [ { "$ref": "#/definitions/ErrorDetail" }, { "$ref": "#/definitions/ValidationErrors" } ] }, "error": { "type": "object", "properties": { "error": { "$ref": "#/definitions/ErrorBody" } } }, "ErrorBody": { "type": "object", "properties": { "code": { "type": "string" }, "message": { "$ref": "#/definitions/Message" } } }, "Message": { "type": "object", "properties": { "lang": { "type": "string" }, "value": { "type": "string" } } }, "ErrorDetail": { "type": "object", "properties": { "errorCode": { "type": "string" }, "devErrorMessage": { "type": "string" }, "userErrorMessage": { "type": "string" }, "userErrorKey": { "type": "string" } } }, "ValidationErrors": { "type": "object", "properties": { "validationErrors": { "type": "array", "items": { "type": "object", "properties": { "field": { "type": "string" }, "error": { "type": "string" }, "key": { "type": "string" } } } } } }, "ErrorEntity": { "allOf": [ { "$ref": "#/definitions/ErrorBody" }, { "type": "object", "properties": { "detail": { "$ref": "#/definitions/ErrorDetail" } } } ] }, "ProxyDeployCreateDto": { "type": "object", "required": [ "deploymentType", "name" ], "properties": { "deploymentType": { "type": "string", "description": "deployment type for the proxy", "enum": [ "AUTOMATIC", "ON_DEMAND", "MANUAL" ] }, "name": { "type": "string", "description": "name of the proxy" }, "uuid": { "type": "string" } } }, "proxy": { "type": "object", "required": [ "deploymentType", "enrollmentStatus", "name" ], "properties": { "deploymentType": { "type": "string", "description": "The deployment type for the proxy.", "enum": [ "AUTOMATIC", "ON_DEMAND", "MANUAL" ] }, "enrollmentStatus": { "type": "string", "description": "The current enrollment status." }, "enrollmentUrl": { "type": "string", "description": "The enrollment URL for the proxy, only available if proxy is in status PENDING." }, "name": { "type": "string", "description": "The name of the proxy." }, "uuid": { "type": "string", "description": "The UUID of the proxy." } } }, "apiGroup": { "type": "object", "required": [ "name", "status" ], "properties": { "description": { "type": "string" }, "name": { "type": "string" }, "status": { "type": "string" }, "uuid": { "type": "string" } } }, "ApiDeployUpdateDto": { "type": "object", "required": [ "status" ], "properties": { "message": { "type": "string", "description": "The API deployment message which can be used to communicate details relating to the status of the deployment." }, "status": { "type": "string", "description": "The status of API deployment.", "enum": [ "DEPLOYED", "PENDING_DEPLOYMENT", "ERROR", "PENDING_UNDEPLOYMENT" ] } } }, "ProxyDeployUpdateDto": { "type": "object", "required": [ "deploymentType", "name" ], "properties": { "deploymentType": { "type": "string", "description": "The deployment type for the proxy.", "enum": [ "AUTOMATIC", "ON_DEMAND", "MANUAL" ] }, "name": { "type": "string", "description": "The name of the proxy." } } }, "ApiDeployDto": { "type": "object", "properties": { "apiUuid": { "type": "string", "description": "The UUID of the API for the deployment." }, "lastTimeDeployed": { "type": "integer", "format": "int64", "description": "The timestamp of last attempted API deployment." }, "message": { "type": "string", "description": "The API deployment message which can be used to communicate details relating to the status of the deployment." }, "proxyName": { "type": "string", "description": "The name of the proxy for the deployment." }, "proxyUuid": { "type": "string", "description": "The UUID of the proxy for the deployment." }, "status": { "type": "string", "description": "The status of API deployment.", "enum": [ "DEPLOYED", "PENDING_DEPLOYMENT", "ERROR", "PENDING_UNDEPLOYMENT" ] } } }, "ApiDeployCreateDto": { "type": "object", "properties": { "proxyUuid": { "type": "string", "description": "The UUID of the proxy for the deployment." } } }, "CustomPageBase": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the custom page." }, "pageType": { "type": "string", "description": "Unique type of custom page.", "enum": [ "HOME" ] }, "uri": { "type": "string", "description": "The URI to the custom page." }, "pageKey": { "type": "string", "description": "Key of the Custom page key to provide additional identification besides the name." } } }, "CustomPageWithUuid": { "allOf": [ { "type": "object", "properties": { "uuid": { "type": "string", "description": "Unique key for this entity which conforms to the UUID standard according to RFC 4122." } } }, { "$ref": "#/definitions/CustomPageBase" } ] }, "CustomPageUpdate": { "type": "array", "items": { "$ref": "#/definitions/CustomPageBase" } }, "CustomPageGet": { "type": "array", "items": { "$ref": "#/definitions/CustomPageWithUuid" } }, "AuditsGet": { "type": "object", "properties": { "totalPages": { "type": "integer", "description": "The total number of pages in the resultset" }, "pageSize": { "type": "integer", "description": "" }, "currentPage": { "type": "integer", "description": "" }, "totalElements": { "type": "integer", "description": "" }, "results": { "type": "array", "items": { "$ref": "#/definitions/AuditEvent" } }, "_links": { "type": "array", "items": { "$ref": "#/definitions/HateoasLink" } } } }, "AuditEvent": { "type": "object", "properties": { "tenantId": { "type": "string", "description": "The tenantId for the audit event" }, "entityType": { "type": "string", "description": "The type of entity that was created, updated or deleted" }, "entityName": { "type": "string", "description": "The name of the entity that was created, updated or deleted" }, "action": { "type": "string", "description": "The action that was performed on the entity" }, "userName": { "type": "string", "description": "The User who initiated the create, update or delete on the entity" }, "userAgent": { "type": "string", "description": "The browser or agent that made the API call to make the modification to entity" }, "actionTs": { "type": "string", "description": "The timestamp in milliseconds when the entity was created, updated or deleted." }, "entityUuid": { "type": "string", "description": "UUID of the entity that was created, updated or deleted." }, "simplifiedUserAgent": { "type": "string", "description": "A simplified user agent string representing most commonly used browsers or agents." } } }, "ApiPlans": { "type": "array", "items": { "$ref": "#/definitions/ApiPlan1.0Create" }, "xml": { "name": "ApiPlans" } }, "ApiPlanOrganizations": { "type": "array", "description": "An array of organization UUIDs", "items": { "$ref": "#/definitions/ApiPlanOrganization" }, "example": [ { "uuid": "bb071bc2-5e59-4f86-85d1-2e4851603adc" }, { "uuid": "2bd6fcae-c490-43dd-a2fc-c77645497402" } ], "xml": { "name": "ApiPlanOrganization" } }, "ApiPlanOrganization": { "type": "object", "required": [ "uuid" ], "properties": { "uuid": { "type": "string", "description": "The uuid of the Organization to associate with the specified API Plan." } } }, "ApiPlanApis": { "type": "array", "items": { "$ref": "#/definitions/ApiPlanApi" }, "xml": { "name": "ApiPlanApi" } }, "ApiPlanApi": { "type": "object", "required": [ "ApiUuid", "ApiPlanUuid" ], "properties": { "ApiUuid": { "type": "string", "description": "The uuid of the API to associate with the specified API Plan." }, "ApiPlanUuid": { "type": "string", "description": "The uuid of the API Plan." } } }, "HateoasLink": { "type": "object", "description": "A HateoasLink consists of a link title and an href. The link title describes what the href link refers to - for example - a link_title of 'self' will include an href to a link that can be used to reference the requested object, essentially it is a requested object's reference to itself", "properties": { "self": { "type": "object", "properties": { "href": { "type": "string", "description": "The link that can be used to access the current item in view" } } }, "firstPage": { "type": "object", "properties": { "href": { "type": "string", "description": "The link that can be used to access the first page in the list of items" } } }, "prevPage": { "type": "object", "properties": { "href": { "type": "string", "description": "The link that can be used to access the previous page from the current page when viewing a list of items" } } }, "lastPage": { "type": "object", "properties": { "href": { "type": "string", "description": "The link that can be used to access the last page in the list of items" } } } } }, "ApiPolicyEntityDto": { "type": "object", "properties": { "policyEntityUuid": { "type": "string" }, "policyTemplateArguments": { "type": "array", "items": { "$ref": "#/definitions/ApiPolicyTemplateXrefDto" } } }, "example": [ { "policyEntityUuid": "72093738-871a-45bd-b114-ad3a61893ac0", "policyTemplateArguments": [ { "name": "debugMode", "value": "true" } ] }, { "policyEntityUuid": "3b6d02e7-4368-4d2f-940f-444f8b016124", "policyTemplateArguments": [ { "name": "quotaMaxHitsPerDay", "value": "300" } ] } ], "title": "ApiPolicyEntityDto" }, "ApiPolicyTemplateXrefDto": { "type": "object", "properties": { "name": { "type": "string" }, "value": { "type": "string" } }, "title": "ApiPolicyTemplateXrefDto" }, "ApiDto": { "type": "object", "properties": { "accessStatus": { "type": "string" }, "apiEulaUuid": { "type": "string" }, "apiServiceType": { "type": "string" }, "authenticationParameters": { "type": "string" }, "authenticationType": { "type": "string" }, "description": { "type": "string" }, "links": { "type": "array", "items": { "$ref": "#/definitions/Link" } }, "locationUrl": { "type": "string" }, "name": { "type": "string" }, "portalStatus": { "type": "string" }, "privateDescription": { "type": "string" }, "publishedByPortal": { "type": "boolean" }, "restricted": { "type": "boolean" }, "specFilename": { "type": "string" }, "specFilesize": { "type": "integer", "format": "int64" }, "ssgUrl": { "type": "string" }, "type": { "type": "string" }, "uuid": { "type": "string" }, "version": { "type": "string" }, "managingOrgUuid" : { "type" : "string" } }, "title": "ApiDto", "example": { "name": "Swagger Petstore", "apiServiceType": "REST", "portalStatus": "ENABLED", "accessStatus": "PUBLIC", "description": "sample public description", "privateDescription": "sample private description", "apiEulaUuid": "c9406345-eb76-11e3-b0cd-000nosaj86a8", "version": 1, "ssgUrl": "petstore-proxy", "locationUrl": "http://petstore.swagger.io/v2", "authenticationType": "APIKEY", "authenticationParameters": "{\"ApiKeyType\":\"query\"}", "managingOrgUuid": "172594b6-18ba-4b0c-8d61-807db457e81d" } }, "ApiGetDto": { "type": "object", "properties": { "accessStatus": { "type": "string" }, "apiEulaUuid": { "type": "string" }, "apiServiceType": { "type": "string" }, "authenticationParameters": { "type": "string" }, "authenticationType": { "type": "string" }, "createTs": { "type": "integer", "format": "int64" }, "customFieldValues": { "type": "array", "items": { "$ref": "#/definitions/CustomFieldValueDto" } }, "description": { "type": "string" }, "links": { "type": "array", "xml": { "name": "link", "namespace": "http://www.w3.org/2005/Atom", "attribute": false, "wrapped": false }, "items": { "$ref": "#/definitions/Link" } }, "locationUrl": { "type": "string" }, "modifyTs": { "type": "integer", "format": "int64" }, "name": { "type": "string" }, "policyEntities": { "type": "array", "items": { "$ref": "#/definitions/ApiPolicyEntityDto" } }, "portalStatus": { "type": "string" }, "possibleStatuses": { "type": "array", "items": { "type": "string", "enum": [ "NEW", "ENABLED", "DISABLED", "DEPRECATED", "DELETED", "INCOMPLETE", "PENDING_BUNDLE", "PENDING_DELETE" ] } }, "privateDescription": { "type": "string" }, "publishedByPortal": { "type": "boolean" }, "restricted": { "type": "boolean" }, "specFilename": { "type": "string" }, "specFilesize": { "type": "integer", "format": "int64" }, "ssgUrl": { "type": "string" }, "type": { "type": "string" }, "uuid": { "type": "string" }, "version": { "type": "string" } }, "title": "ApiGetDto" }, "ApiListItemDto": { "type": "object", "properties": { "accessStatus": { "type": "string", "enum": [ "PUBLIC", "PRIVATE" ] }, "apiEulaUuid": { "type": "string" }, "applicationUsage": { "type": "integer", "format": "int64" }, "availableOrgs": { "type": "array", "items": { "type": "string" } }, "createTs": { "type": "integer", "format": "int64" }, "description": { "type": "string" }, "modifyTs": { "type": "integer", "format": "int64" }, "name": { "type": "string" }, "portalStatus": { "type": "string", "enum": [ "NEW", "ENABLED", "DISABLED", "DEPRECATED", "DELETED", "INCOMPLETE", "PENDING_BUNDLE", "PENDING_DELETE" ] }, "specFilename": { "type": "string" }, "ssgServiceType": { "type": "string", "enum": [ "ApiServiceType[name: REST]", "ApiServiceType[name: SOAP]" ] }, "type": { "type": "string", "enum": [ "BASIC", "ADVANCED" ] }, "uuid": { "type": "string" }, "version": { "type": "string" } }, "title": "ApiListItemDto" }, "CustomFieldValueDto": { "type": "object", "properties": { "customFieldUuid": { "type": "string" }, "value": { "type": "string" } }, "example": [ { "customFieldUuid": "0566952a-b66f-4a2e-8729-4801ec44afec", "value": "value 1" }, { "customFieldUuid": "0566952a-b66f-4a2e-8729-4801ec44aabc", "value": "value 2" } ], "title": "CustomFieldValueDto" }, "DeploymentTypesDto":{ "type":"object", "properties":{ "api":{ "type":"string", "enum":[ "AUTOMATIC", "ON_DEMAND", "MANUAL" ] } } }, "EntityDeploymentTypeDto":{ "type":"object", "required":[ "type" ], "properties":{ "type":{ "type":"string", "description":"The deployment type for the proxy." } } }, "ApiKeyDeploymentDto":{ "type":"object", "properties":{ "apiKey":{ "type":"string" }, "applicationUuid":{ "type":"string" }, "lastTimeDeployed":{ "type":"integer", "format":"int64" }, "message":{ "type":"string" }, "proxyName":{ "type":"string" }, "proxyUuid":{ "type":"string" }, "status":{ "type":"string" } } }, "ApiDeploymentCreateDto":{ "type":"object", "properties":{ "proxyUuid":{ "type":"string", "description":"The UUID of the proxy for the deployment." } } }, "ApiDeploymentUpdateDto":{ "type":"object", "required":[ "status" ], "properties":{ "message":{ "type":"string", "description":"The API deployment message which can be used to communicate details relating to the status of the deployment." }, "status":{ "type":"string", "description":"The status of API deployment.", "enum":[ "DEPLOYED", "PENDING_DEPLOYMENT", "ERROR", "PENDING_UNDEPLOYMENT" ] } } }, "Link": { "type": "object", "properties": { "href": { "type": "string", "xml": { "name": "href", "attribute": true, "wrapped": false } }, "rel": { "type": "string", "xml": { "name": "rel", "attribute": true, "wrapped": false } }, "templated": { "type": "boolean" } }, "title": "Link", "xml": { "name": "link", "namespace": "http://www.w3.org/2005/Atom", "attribute": false, "wrapped": false } }, "apiAsset": { "type": "object", "required": [ "content", "type", "uuid" ], "properties": { "content": { "description": "The content of the asset.", "$ref": "#/definitions/InputStream" }, "links": { "type": "array", "xml": { "name": "link", "namespace": "http://www.w3.org/2005/Atom", "attribute": false, "wrapped": false }, "items": { "$ref": "#/definitions/Link" } }, "name": { "type": "string", "description": "The file name." }, "type": { "type": "string", "description": "The asset type." }, "uuid": { "type": "string", "description": "UUID of the API asset." } }, "title": "apiAsset" }, "InputStream": { "type": "object", "title": "InputStream" }, "ResponseEntity": { "type": "object", "properties": { "body": { "type": "object" }, "statusCode": { "type": "string", "enum": [ "100", "101", "102", "103", "200", "201", "202", "203", "204", "205", "206", "207", "208", "226", "300", "301", "302", "303", "304", "305", "307", "308", "400", "401", "402", "403", "404", "405", "406", "407", "408", "409", "410", "411", "412", "413", "414", "415", "416", "417", "418", "419", "420", "421", "422", "423", "424", "426", "428", "429", "431", "451", "500", "501", "502", "503", "504", "505", "506", "507", "508", "509", "510", "511" ] }, "statusCodeValue": { "type": "integer", "format": "int32" } }, "title": "ResponseEntity" }, "ReferenceDto": { "type": "object", "properties": { "uuid": { "type": "string" } }, "title": "ReferenceDto" }, "UserDto": { "type":"object", "properties":{ "name":{ "type":"string" } } } }, "responses": { "BadRequest": { "description": "Bad Request due to a validation error.", "schema": { "$ref": "#/definitions/error" }, "examples": { "application/json;charset=UTF-8": { "error": { "code": "BadRequestException", "message": { "lang": "en-US", "value": "The request could not be completed due to data input errors." } } } } }, "InvalidUuid": { "description": "Bad Request due to Invalid Uuid.", "schema": { "$ref": "#/definitions/LongerError" }, "examples": { "application/json;charset=UTF-8": { "error": { "code": "ValidationException", "message": { "lang": "en", "value": "The request could not be completed due to data input errors." }, "detail": { "errorCode": 483, "devErrorMessage": "The request could not be completed due to data input errors.", "userErrorMessage": "The request could not be completed due to data input error.", "userErrorKey": "error.validation.entity", "validationErrors": [ { "field": "path_variable_uuid", "error": "Value is not a valid UUID.", "key": "Value is not a valid UUID." } ] } } } } }, "InvalidParameters": { "description": "Bad Request due to Invalid Parameters.", "schema": { "$ref": "#/definitions/LongerError" }, "examples": { "application/json;charset=UTF-8": { "error": { "code": "ValidationException", "message": { "lang": "en", "value": "The request could not be completed due to data input errors." }, "detail": { "errorCode": 483, "devErrorMessage": "The request could not be completed due to data input errors.", "userErrorMessage": "The request could not be completed due to data input error.", "userErrorKey": "error.validation.entity", "validationErrors": [ { "field": "portalStatus", "error": "Invalid value. This is not permitted.", "key": "Invalid value. This is not permitted." } ] } } } } }, "NotFoundEntity": { "description": "Entity not Found", "schema": { "$ref": "#/definitions/ErrorEntity" }, "examples": { "application/json;charset=UTF-8": { "error": { "code": "ValidationException", "message": { "lang": "en", "value": "3e1c39af-e051-50ab-8cea-50ae886041bd not found." }, "detail": { "errorCode": 505, "devErrorMessage": "3e1c39af-e051-50ab-8cea-50ae886041bd not found.", "userErrorMessage": "3e1c39af-e051-50ab-8cea-50ae886041bd not found.", "userErrorKey": "error.resource.not.found" } } } } }, "NotFound": { "description": "Entity not found", "schema": { "$ref": "#/definitions/error" }, "examples": { "error": { "code": "NotFoundException", "message": { "lang": "en-US", "value": "Not Found" } } } }, "InternalServerError": { "description": "Internal Server Error. Certain fields are missing from the request.", "schema": { "$ref": "#/definitions/error" }, "examples": { "application/json;charset=UTF-8": { "error": { "code": "ServerErrorException", "message": { "lang": "en-US", "value": "Internal Server Error" } } } } } }, "tags": [ { "name": "AccountPlans", "description": "Account Plan operations" }, { "name": "ApiDeployments", "description": "API Deployment operations" }, { "name": "ApiEulas", "description": "API End User License Agreement operations" }, { "name": "ApiGroups", "description": "API Group operations" }, { "name": "ApiPlans", "description": "API Plan operations" }, { "name": "Apis", "description": "API operations" }, { "name": "Api Organizations", "description": "Manage organizations of an API" }, { "name": "Api Permissions", "description": "Manage user permissions of an API" }, { "name": "Api Tags", "description": "Manage tags of an API" }, { "name": "Api Key Deployments", "description": "Manage API key deployments" }, { "name": "Applications", "description": "Application operations" }, { "name": "Auditing", "description": "View and filter audit logs" }, { "name": "CustomFields", "description": "Custom Field operations" }, { "name": "Organizations", "description": "Organization operations" }, { "name": "Pages", "description": "Custom Page operations" }, { "name": "Proxies", "description": "Proxy operations" }, { "name": "Requests", "description": "Request operations" }, { "name": "Role Mappings", "description": "Manage the association between the user, organisation and role" }, { "name": "Search", "description": "Search services" }, { "name": "Settings", "description": "Settings operations" }, { "name": "Tags", "description": "Tag operations" }, { "name": "Themes", "description": "Theme operations" }, { "name": "Users", "description": "User operations" }, { "name": "Deprecated", "description": "Deprecated APIs" } ] }