{ "openapi": "3.0.0", "externalDocs": { "description": "See documentation for Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference" }, "info": { "title": "Akamai: API Endpoint Definition API", "version": "2", "license": { "name": "Apache 2.0", "url": "https://www.apache.org/licenses/LICENSE-2.0.html" } }, "paths": { "/categories": { "post": { "description": "Creates a category that you can use to tag endpoints. The request's `apiCategoryName` needs to be unique per account.", "operationId": "post-category", "summary": "Create a category", "tags": [ "Categories" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/post-category" }, "requestBody": { "required": true, "content": { "application/json": { "example": { "apiCategoryDescription": "The applications related to the Sales department.", "apiCategoryName": "Sales" }, "schema": { "additionalProperties": false, "description": "Contains information about an endpoint category.", "type": "object", "required": [ "apiCategoryName" ], "properties": { "apiCategoryDescription": { "description": "The description of the category that you may use to tag related endpoints. If you specify `null` or an empty string in the request, the JSON response doesn't include this field.", "example": "{{apiCategoryDescription}}", "type": "string" }, "apiCategoryId": { "description": "The unique identifier for the category.", "example": "{{apiCategoryId}}", "type": "integer" }, "apiCategoryName": { "description": "The unique-per-account name of the category. Any empty value reflects back as an `__UNCATEGORIZED__` keyword.", "example": "{{apiCategoryName}}", "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the category.", "example": "{{createDate}}", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the category.", "example": "{{createdBy}}", "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "example": "{{link}}", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "example": "{{lockVersion}}", "type": "number" }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the category.", "example": "{{updateDate}}", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the category.", "example": "{{updatedBy}}", "type": "string" }, "usageCount": { "description": "The number of endpoints that share the category.", "example": "{{usageCount}}", "type": "integer" } }, "x-akamai": { "file-path": "schemas/categoryDto.yaml" } } } } }, "responses": { "201": { "description": "New resource successfully created.", "content": { "application/json": { "example": { "apiCategoryDescription": "The applications related to the Sales department.", "apiCategoryId": 9902, "apiCategoryName": "Sales", "createDate": "2019-06-17T12:40:14+0000", "link": "/api-definitions/v2/categories/9902", "lockVersion": 0, "updateDate": "2019-06-17T12:40:14+0000" }, "schema": { "additionalProperties": false, "description": "Contains information about an endpoint category.", "type": "object", "required": [ "apiCategoryName" ], "properties": { "apiCategoryDescription": { "description": "The description of the category that you may use to tag related endpoints. If you specify `null` or an empty string in the request, the JSON response doesn't include this field.", "type": "string" }, "apiCategoryId": { "description": "The unique identifier for the category.", "type": "integer" }, "apiCategoryName": { "description": "The unique-per-account name of the category. Any empty value reflects back as an `__UNCATEGORIZED__` keyword.", "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the category.", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the category.", "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "type": "number" }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the category.", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the category.", "type": "string" }, "usageCount": { "description": "The number of endpoints that share the category.", "type": "integer" } }, "x-akamai": { "file-path": "schemas/categoryDto.yaml" } } } }, "headers": { "Location": { "description": "Relative URL for created API endpoint category.", "schema": { "type": "string" } } } }, "400": { "description": "Some of user input is invalid.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "get": { "description": "Lists all categories available to tag endpoints and optionally indicates the number of endpoints tagged under each category.", "operationId": "get-categories", "summary": "List categories", "tags": [ "Categories" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/get-categories" }, "responses": { "200": { "description": "The response lists unique categories, or an empty list if there are none.", "content": { "application/json": { "schema": { "description": "The collection of endpoint categories.", "type": "array", "items": { "additionalProperties": false, "description": "Contains information about an endpoint category.", "type": "object", "required": [ "apiCategoryName" ], "properties": { "apiCategoryDescription": { "description": "The description of the category that you may use to tag related endpoints. If you specify `null` or an empty string in the request, the JSON response doesn't include this field.", "type": "string" }, "apiCategoryId": { "description": "The unique identifier for the category.", "type": "integer" }, "apiCategoryName": { "description": "The unique-per-account name of the category. Any empty value reflects back as an `__UNCATEGORIZED__` keyword.", "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the category.", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the category.", "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "type": "number" }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the category.", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the category.", "type": "string" }, "usageCount": { "description": "The number of endpoints that share the category.", "type": "integer" } }, "x-akamai": { "file-path": "schemas/categoryDto.yaml" } }, "x-akamai": { "file-path": "schemas/categoryDtos.yaml" } }, "example": [ { "apiCategoryDescription": "The applications related to the IT department.", "apiCategoryId": 9903, "apiCategoryName": "IT", "createDate": "2019-06-17T12:42:42+0000", "createdBy": "mrossi", "link": "/api-definitions/v1/api-categories/9903", "lockVersion": 0, "updateDate": "2019-06-17T12:42:42+0000", "updatedBy": "bookstore_admin" }, { "apiCategoryDescription": "The applications for internal use only.", "apiCategoryId": 9904, "apiCategoryName": "Internal", "createDate": "2019-06-17T12:43:11+0000", "createdBy": "mrossi", "link": "/api-definitions/v1/api-categories/9904", "lockVersion": 0, "updateDate": "2019-06-17T12:43:11+0000", "updatedBy": "bookstore_admin" }, { "apiCategoryDescription": "The applications related to the Sales department.", "apiCategoryId": 9902, "apiCategoryName": "Sales", "createDate": "2019-06-17T12:40:14+0000", "createdBy": "tyamada", "link": "/api-definitions/v1/api-categories/9902", "lockVersion": 0, "updateDate": "2019-06-17T12:40:14+0000", "updatedBy": "bookstore_admin" } ] } } }, "403": { "description": "You don't have permission to retrieve API endpoint category list.", "content": { "application/problem+json": { "example": { "detail": "You don't have access to the endpoint.", "instance": "https://problems.luna.akamaiapis.net/api-defintions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Unauthorized Access/Action", "type": "https://problems.luna.akamaiapis.net/api-defintions/error-types/UNAUTHORIZED" }, "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "Whether the response should include the `usageCount` data indicating the number of endpoints under a category, `false` by default.", "example": "{{withUsageInfo}}", "in": "query", "name": "withUsageInfo", "required": true, "schema": { "default": false, "type": "boolean" }, "x-akamai": { "file-path": "parameters/withUsageInfo-query.yaml" } }, { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] } }, "/categories/{apiCategoryId}": { "get": { "description": "Returns a specific category that you can use to tag endpoints.", "operationId": "get-category", "summary": "Get a category", "tags": [ "Categories" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/get-category" }, "responses": { "200": { "description": "Response data shows the category.", "content": { "application/json": { "example": { "apiCategoryDescription": "The applications related to the Sales department.", "apiCategoryId": 9902, "apiCategoryName": "Sales", "createDate": "2019-06-17T12:40:14+0000", "link": "/api-definitions/v2/categories/9902", "lockVersion": 0, "updateDate": "2019-06-17T12:40:14+0000" }, "schema": { "additionalProperties": false, "description": "Contains information about an endpoint category.", "type": "object", "required": [ "apiCategoryName" ], "properties": { "apiCategoryDescription": { "description": "The description of the category that you may use to tag related endpoints. If you specify `null` or an empty string in the request, the JSON response doesn't include this field.", "type": "string" }, "apiCategoryId": { "description": "The unique identifier for the category.", "type": "integer" }, "apiCategoryName": { "description": "The unique-per-account name of the category. Any empty value reflects back as an `__UNCATEGORIZED__` keyword.", "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the category.", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the category.", "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "type": "number" }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the category.", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the category.", "type": "string" }, "usageCount": { "description": "The number of endpoints that share the category.", "type": "integer" } }, "x-akamai": { "file-path": "schemas/categoryDto.yaml" } } } } }, "403": { "description": "You don't have permission to get the API endpoint category.", "content": { "application/problem+json": { "example": { "detail": "You don't have access to the endpoint.", "instance": "https://problems.luna.akamaiapis.net/api-defintions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Unauthorized Access/Action", "type": "https://problems.luna.akamaiapis.net/api-defintions/error-types/UNAUTHORIZED" }, "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "404": { "description": "The API endpoint category doesn't exist.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "put": { "description": "Updates a category's description or unique name.", "operationId": "put-category", "summary": "Edit a category", "tags": [ "Categories" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/put-category" }, "requestBody": { "required": true, "content": { "application/json": { "example": { "apiCategoryDescription": "The applications related to the Sales department.", "apiCategoryId": 9902, "apiCategoryName": "Sales", "createDate": "2019-06-17T12:40:14+0000", "link": "/api-definitions/v2/categories/9902", "lockVersion": 0, "updateDate": "2019-06-17T12:40:14+0000" }, "schema": { "additionalProperties": false, "description": "Contains information about an endpoint category.", "type": "object", "required": [ "apiCategoryName" ], "properties": { "apiCategoryDescription": { "description": "The description of the category that you may use to tag related endpoints. If you specify `null` or an empty string in the request, the JSON response doesn't include this field.", "example": "{{apiCategoryDescription}}", "type": "string" }, "apiCategoryId": { "description": "The unique identifier for the category.", "example": "{{apiCategoryId}}", "readOnly": true, "type": "integer" }, "apiCategoryName": { "description": "The unique-per-account name of the category. Any empty value reflects back as an `__UNCATEGORIZED__` keyword.", "example": "{{apiCategoryName}}", "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the category.", "example": "{{createDate}}", "format": "date-time", "readOnly": true, "type": "string" }, "createdBy": { "description": "The identifier for the user who created the category.", "example": "{{createdBy}}", "readOnly": true, "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "example": "{{link}}", "readOnly": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "example": "{{lockVersion}}", "readOnly": true, "type": "number" }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the category.", "example": "{{updateDate}}", "format": "date-time", "readOnly": true, "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the category.", "example": "{{updatedBy}}", "readOnly": true, "type": "string" }, "usageCount": { "description": "The number of endpoints that share the category.", "example": "{{usageCount}}", "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/categoryDtoPut.yaml" } } } } }, "responses": { "200": { "description": "The response shows the updated category.", "content": { "application/json": { "example": { "apiCategoryDescription": "The applications related to the Sales department.", "apiCategoryId": 9902, "apiCategoryName": "Sales", "createDate": "2019-06-17T12:40:14+0000", "link": "/api-definitions/v2/categories/9902", "lockVersion": 0, "updateDate": "2019-06-17T12:40:14+0000" }, "schema": { "additionalProperties": false, "description": "Contains information about an endpoint category.", "type": "object", "required": [ "apiCategoryName" ], "properties": { "apiCategoryDescription": { "description": "The description of the category that you may use to tag related endpoints. If you specify `null` or an empty string in the request, the JSON response doesn't include this field.", "type": "string" }, "apiCategoryId": { "description": "The unique identifier for the category.", "type": "integer" }, "apiCategoryName": { "description": "The unique-per-account name of the category. Any empty value reflects back as an `__UNCATEGORIZED__` keyword.", "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the category.", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the category.", "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "type": "number" }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the category.", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the category.", "type": "string" }, "usageCount": { "description": "The number of endpoints that share the category.", "type": "integer" } }, "x-akamai": { "file-path": "schemas/categoryDto.yaml" } } } } }, "400": { "description": "Some of the request input is invalid.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "403": { "description": "You don't have permission to edit API endpoint category.", "content": { "application/problem+json": { "example": { "detail": "You don't have access to the endpoint.", "instance": "https://problems.luna.akamaiapis.net/api-defintions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Unauthorized Access/Action", "type": "https://problems.luna.akamaiapis.net/api-defintions/error-types/UNAUTHORIZED" }, "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "delete": { "description": "Removes an unassigned category. If you assigned the category to at least one endpoint, the operation returns a 403 error.", "operationId": "delete-category", "summary": "Delete a category", "tags": [ "Categories" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/delete-category" }, "responses": { "204": { "description": "Category successfully deleted.", "content": { "*/*": {} } }, "403": { "description": "You don't have permission to edit the API endpoint category.", "content": { "application/problem+json": { "example": { "detail": "You don't have access to the endpoint.", "instance": "https://problems.luna.akamaiapis.net/api-defintions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Unauthorized Access/Action", "type": "https://problems.luna.akamaiapis.net/api-defintions/error-types/UNAUTHORIZED" }, "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the category.", "example": "{{apiCategoryId}}", "in": "path", "name": "apiCategoryId", "required": true, "schema": { "type": "integer" }, "x-akamai": { "file-path": "parameters/apiCategoryId-path.yaml" } } ] }, "/contracts/groups": { "get": { "description": "You provision each API endpoint within the context of your contract with Akamai and a Control Center portal group. The response objects encapsulate pairings of contract and group identifiers available within the scope of the user who provisioned the API token, as described in [Get started](https://techdocs.akamai.com/api-definitions/reference/api-get-started).", "operationId": "get-contracts-groups", "summary": "List contracts and groups", "tags": [ "Contracts and groups" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/get-contracts-groups" }, "responses": { "200": { "description": "The response lists combined contracts and groups you can use for API definitions.", "content": { "application/json": { "schema": { "description": "The collection of pairings of contracts and groups under which you provision the security and delivery settings for an endpoint.", "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a pairing of contract and group under which you provision the security and delivery settings for an endpoint.", "type": "object", "properties": { "acgId": { "description": "The unique identifier for the pairing of contract and group.", "type": "string" }, "contractId": { "description": "The unique identifier for the Akamai contract within the pairing.", "type": "string" }, "displayName": { "description": "The descriptive name for the pairing of contract and group.", "type": "string" }, "groupId": { "description": "The unique identifier for the group within the pairing.", "type": "number" } }, "x-akamai": { "file-path": "schemas/aCGPickerRow.yaml" } }, "x-akamai": { "file-path": "schemas/aCGPickerRows.yaml" } }, "example": [ { "acgId": "3-1Cgoa", "contractId": "K-0N7RAK7", "displayName": "Bookstore Users", "groupId": 58220 }, { "acgId": "3-1Cgoa.G75683", "contractId": "C-0N7RAC7", "displayName": "Bookstore Users - Developers", "groupId": 75683 } ] } } }, "403": { "description": "You don't have permission to edit the API endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] } }, "/contracts/{contractId}/groups/{groupId}/hosts": { "get": { "description": "Lists all hostnames through which API consumers can access an endpoint service under a given contract and group pairing. You can use Property Manager (or [PAPI](https://techdocs.akamai.com/property-mgr/reference/api)) to create new hostnames to make available to users.", "operationId": "get-contract-group-hosts", "summary": "List hostnames", "tags": [ "Contracts and groups" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/get-contract-group-hosts" }, "responses": { "200": { "description": "The response lists hosts for the contract and group.", "content": { "application/json": { "example": [ "bookstore.api.akamai.com", "bookstore2.api.akamai.com" ], "schema": { "description": "The collection of hostnames assigned to an endpoint.", "type": "array", "items": { "type": "string" }, "x-akamai": { "file-path": "schemas/hostsSchema.yaml" } } } } }, "403": { "description": "You don't have permission to read the API endpoint for the specified contract and group.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the group.", "example": "{{groupId}}", "in": "path", "name": "groupId", "required": true, "schema": { "type": "integer" }, "x-akamai": { "file-path": "parameters/groupId-path.yaml" } }, { "description": "The unique identifier for the contract.", "example": "{{contractId}}", "in": "path", "name": "contractId", "required": true, "schema": { "type": "string" }, "x-akamai": { "file-path": "parameters/contractId-path.yaml" } } ] }, "/contracts/{contractId}/groups/{groupId}/hostsAcgs": { "get": { "description": "Lists all hostnames through which API consumers can access an endpoint service under a given contract and group pairing. Returns each hostname together with the access control group where the hostname is registered. You can use Property Manager (or [PAPI](https://techdocs.akamai.com/property-mgr/reference/api)) to create new hostnames to make available to users.", "operationId": "get-contract-group-hosts-acgs", "summary": "List hostnames with access control groups", "tags": [ "Contracts and groups" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/get-contract-group-hosts-acgs" }, "responses": { "200": { "description": "Response data lists hosts for the contract and group.", "content": { "application/json": { "schema": { "description": "The collection of hostnames assigned to an endpoint.", "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a hostname and access control group where the hostname is registered.", "type": "object", "properties": { "acgId": { "description": "The unique identifier for the access control group where the hostname is registered.", "type": "string" }, "contractId": { "description": "The unique identifier for the Akamai contract within the access control group.", "type": "string" }, "hostname": { "description": "The hostname that may receive traffic for an endpoint.", "type": "string" } }, "x-akamai": { "file-path": "schemas/acgsHost.yaml" } }, "x-akamai": { "file-path": "schemas/acgsHosts.yaml" } }, "example": [ { "acgId": "WAA-3-1AINU1T", "contractId": "C-0N7RAC71", "hostname": "www.bookstore.api.akamai.com" }, { "acgId": "WAA-3-WNNG6F", "contractId": "K-0N7RAK71", "hostname": "www.bookstore2.api.akamai.com" } ] } } }, "403": { "description": "You don't have permission to read the API endpoint for the specified contract and group.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the group.", "example": "{{groupId}}", "in": "path", "name": "groupId", "required": true, "schema": { "type": "integer" }, "x-akamai": { "file-path": "parameters/groupId-path.yaml" } }, { "description": "The unique identifier for the contract.", "example": "{{contractId}}", "in": "path", "name": "contractId", "required": true, "schema": { "type": "string" }, "x-akamai": { "file-path": "parameters/contractId-path.yaml" } } ] }, "/endpoints": { "post": { "description": "Creates the first version of an API endpoint configuration. You can specify the new endpoint's full set of resources. Alternatively, you can create them later either by modifying the endpoint object, or separately with the [Create a resource](https://techdocs.akamai.com/api-definitions/reference/post-resource) operation. The endpoint's name needs to be unique within an account.", "operationId": "post-endpoints", "summary": "Register an endpoint", "tags": [ "Endpoints" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/post-endpoints" }, "requestBody": { "required": true, "content": { "application/json": { "example": { "apiEndPointName": "Bookstore API", "apiEndPointScheme": "http/https", "apiGatewayEnabled": true, "basePath": "/bookstore", "consumeType": "any", "contractId": "C-0N7RAC71", "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.", "groupId": 44681, "isGraphQL": false, "lockVersion": 0, "apiCategoryIds": [ 2, 7 ], "apiEndPointHosts": [ "bookstore.api.akamai.com" ], "akamaiSecurityRestrictions": { "MAX_BODY_SIZE": 61056, "MAX_DOC_DEPTH": 64, "MAX_ELEMENT_NAME_LENGTH": 256, "MAX_INTEGER_VALUE": 9999, "MAX_JSONXML_ELEMENT": 1032, "MAX_STRING_LENGTH": 8192, "POSITIVE_SECURITY_ENABLED": 1 }, "securityScheme": { "securitySchemeType": "apikey", "securitySchemeDetail": { "apiKeyLocation": "header", "apiKeyName": "apikey" } }, "apiResources": [ { "apiResourceName": "books", "description": "A book item within the bookstore API.", "resourcePath": "/books/{bookId}", "apiResourceMethods": [ { "apiResourceMethod": "GET", "apiParameters": [ { "apiParameterLocation": "path", "apiParameterName": "bookId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterRestriction": null, "apiParameterType": "string", "array": false, "response": false } ] }, { "apiResourceMethod": "POST", "apiParameters": [ { "apiParameterLocation": "path", "apiParameterName": "bookId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterType": "string", "array": false, "response": false, "apiParameterRestriction": { "lengthRestriction": { "lengthMax": 15, "lengthMin": 3 } } } ] } ] } ] }, "schema": { "additionalProperties": false, "description": "Contains information about an endpoint and its associated resources.", "type": "object", "required": [ "apiEndPointName", "apiEndPointHosts", "groupId", "contractId", "lockVersion" ], "properties": { "akamaiSecurityRestrictions": { "additionalProperties": false, "description": "Contains information about the Kona Site Defender security restrictions that you apply to an API. Note that you should only include these details in your requests if you're a Kona Site Defender customer.", "nullable": true, "type": "object", "properties": { "ALLOW_ONLY_SPEC_UNDEFINED_METHODS": { "description": "Whether the API allows requests on undefined resources, but only for specific methods. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_BODY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in body. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_COOKIE_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in cookies. These booleans override members in the Method object. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_HEADER_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in header. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_DELETE": { "description": "Whether the API allows requests on undefined resources using the DELETE method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_GET": { "description": "Whether the API allows requests on undefined resources using the GET method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_HEAD": { "description": "Whether the API allows requesting undefined resources using HEAD method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_OPTIONS": { "description": "Whether the API allows requesting undefined resources using OPTIONS method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PATCH": { "description": "Whether the API allows requesting undefined resources using PATCH method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_POST": { "description": "Whether the API allows requests on undefined resources using the POST method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PUT": { "description": "Whether the API allows requests on undefined resources using the PUT method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_PARAMS": { "description": "Whether the API allows requesting with undefined parameters. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_QUERY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in query string. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_RESOURCES": { "description": "Whether the API allows requests on undefined resources. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_SPEC_PARAMS": { "description": "Whether the API allows requesting undefined resources, but only for specific locations. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "MAX_BODY_SIZE": { "description": "The maximum allowed size of a request body.", "nullable": true, "type": "integer" }, "MAX_DOC_DEPTH": { "description": "The maximum depth of nested data elements allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_ELEMENT_NAME_LENGTH": { "description": "The maximum length of an XML element name or JSON object key name allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_INTEGER_VALUE": { "description": "The maximum integer value allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_JSONXML_ELEMENT": { "description": "The maximum number of XML elements, JSON object keys, or array items allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_STRING_LENGTH": { "description": "The maximum length of any string value in a request body.", "nullable": true, "type": "integer" }, "POSITIVE_SECURITY_ENABLED": { "description": "Whether to enforce the API request body and resource constraints as allowlists in your KSD security policies. Either `1` for enabled security constraints, or `0` for disabled.", "type": "integer", "enum": [ 0, 1 ] }, "POSITIVE_SECURITY_VERSION": { "description": "Whether to create the API with API Protection 2 or above. Either `1`, `2` for enabled API Protection 2, or `null` for the legacy API.", "nullable": true, "type": "integer", "enum": [ 1, 2 ] }, "RESPONSE_RESTRICTIONS_ENABLED": { "description": "When set to `1`, the API allows for responses with undefined parameters in the response body. Otherwise the value is `0`.", "type": "integer", "enum": [ 0, 1 ] } } }, "apiCategoryIds": { "description": "The category identifiers that apply to the endpoint. The value is `null` for uncategorized endpoints.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "apiEndPointHosts": { "description": "The hostnames that may receive traffic for the endpoint. You need at least one hostname before activating the endpoint.", "minItems": 1, "type": "array", "items": { "type": "string" } }, "apiEndPointId": { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "nullable": true, "readOnly": true, "type": "integer" }, "apiEndPointLocked": { "description": "Whether the endpoint version is read-only.", "example": "{{apiEndPointLocked}}", "nullable": true, "readOnly": true, "type": "boolean" }, "apiEndPointName": { "description": "The name of the endpoint, unique within the account.", "example": "{{apiEndPointName}}", "type": "string" }, "apiEndPointScheme": { "description": "The URL scheme to which the endpoint may respond, either `http`, `https`, or `http/https` for both.", "example": "{{apiEndPointScheme}}", "nullable": true, "type": "string", "enum": [ "http", "https", "http/https" ] }, "apiEndPointVersion": { "description": "The unique identifier for the endpoint version.", "example": "{{apiEndPointVersion}}", "nullable": true, "readOnly": true, "type": "integer" }, "apiGatewayEnabled": { "default": true, "description": "Whether the API Gateway product should be enabled for the endpoint. If `null`, the member is set to `true`.", "example": "{{apiGatewayEnabled}}", "nullable": true, "type": "boolean" }, "apiResources": { "description": "The list of resources assigned to the endpoint.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a resource assigned to an endpoint.", "type": "object", "required": [ "apiResourceName", "resourcePath" ], "properties": { "apiResourceClonedFromId": { "description": "For cloned resources, the unique identifier for the source resource.", "nullable": true, "type": "integer" }, "apiResourceId": { "description": "The unique identifier for the resource.", "type": "integer" }, "apiResourceLogicId": { "description": "The unique identifier for the resource across all endpoint versions.", "type": "integer" }, "apiResourceMethodNameLists": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "type": "string" } }, "apiResourceMethods": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "additionalProperties": false, "description": "Contains information about an HTTP method to which a resource may respond.", "type": "object", "required": [ "apiResourceMethod" ], "properties": { "apiParameters": { "description": "The list of parameter objects assigned to the method.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a method's parameter.", "type": "object", "required": [ "apiParameterName", "apiParameterType", "apiParameterRequired", "apiParameterLocation" ], "properties": { "apiChildParameters": { "description": "The collection of child JSON members or XML elements for JSON or XML body type parameters.", "type": "array", "items": { "description": "A further nested endpoint object.", "type": "object", "x-akamai": { "file-path": "schemas/apiParameterDto-nested.yaml" } } }, "apiParamLogicId": { "description": "The unique identifier for the parameter across all endpoint versions.", "readOnly": true, "type": "integer" }, "apiParameterContentType": { "description": "The content type of the parameter. Only applicable for top level body parameters.", "type": "string", "enum": [ "json", "xml", "urlencoded", "json/xml", "any", "none" ] }, "apiParameterId": { "description": "The unique identifier for the parameter.", "readOnly": true, "type": "integer" }, "apiParameterLocation": { "description": "The location of the parameter in an HTTP request, either `query`, `header`, `path`, `cookie`, or `body` for a JSON or XML body type parameter.", "type": "string", "enum": [ "query", "body", "header", "path", "cookie" ] }, "apiParameterName": { "description": "The name of the parameter. If the corresponding `apiParameterLocation` is `path`, ensure that this value matches the parameter name you specified in the `resourcePath`.", "type": "string" }, "apiParameterNotes": { "description": "The description to clarify the parameter's function. If you specify an empty string in the request or omit this member from the object, the JSON response reflects it as `null`.", "nullable": true, "type": "string" }, "apiParameterRequired": { "description": "Specifies whether the API user needs to specify the parameter. If the corresponding `apiParameterLocation` is `path`, set this member to `true`.", "type": "boolean" }, "apiParameterRestriction": { "additionalProperties": false, "description": "Contains information about restrictions and XML representation rules specified for the parameter.", "nullable": true, "type": "object", "properties": { "arrayRestriction": { "additionalProperties": false, "description": "Contains information about array restrictions for array type parameters. Define this object only if you enabled the corresponding `array` member.", "nullable": true, "type": "object", "properties": { "collectionFormat": { "default": "csv", "description": "The format of the array that specifies how you separated array values, either the default `csv` for comma separated values, `ssv` for space separated values, `tsv` for tab separated values, `pipes` for pipe separated values, or `multi` for several parameter instances instead of several values for a single instance.", "type": "string", "enum": [ "csv", "ssv", "tsv", "pipes", "multi" ] }, "maxItems": { "description": "The maximum allowed number of array items.", "type": "integer" }, "minItems": { "description": "The minimum allowed number of array items.", "type": "integer" }, "uniqueItems": { "description": "Whether the array contains only unique items.", "type": "boolean" } } }, "lengthRestriction": { "additionalProperties": false, "description": "Contains information about length restrictions for string type parameters.", "nullable": true, "type": "object", "properties": { "lengthMax": { "description": "The maximum allowed number of characters in the string.", "nullable": true, "type": "integer" }, "lengthMin": { "description": "The minimum allowed number of characters in the string.", "nullable": true, "type": "integer" } } }, "numberRangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for number type parameters.", "nullable": true, "type": "object", "properties": { "numberRangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "number" }, "numberRangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "number" } } }, "rangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for integer type parameters.", "nullable": true, "type": "object", "properties": { "rangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "integer" }, "rangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "integer" } } }, "responseRestriction": { "additionalProperties": false, "type": "object", "properties": { "maxBodySize": { "description": "Limit how large the response body can be before tripping the firewall action. The default is `SIZE_6K`. You can choose `SIZE_8K`, `SIZE_12K`, or `NO_LIMIT`, which allows a response of any size.", "type": "string", "enum": [ "SIZE_6K", "SIZE_8K", "SIZE_12K", "NO_LIMIT" ] }, "statusCodes": { "description": "The response status codes to match to a particular response body format. A `null` or empty value means the response body definition applies to any response body.", "nullable": true, "type": "array", "items": { "type": "integer" } } } }, "xmlConversionRule": { "additionalProperties": false, "description": "Contains information about an XML representation of a JSON-encoded parameter.", "nullable": true, "type": "object", "properties": { "attribute": { "default": false, "description": "Whether the parameter should be represented as an attribute.", "type": "boolean" }, "name": { "description": "The name of the parameter in XML. By default, the XML name is the same as the parameter name specified in the API definition.", "type": "string" }, "namespace": { "description": "The XML namespace.", "type": "string" }, "prefix": { "description": "The prefix for the XML namespace.", "type": "string" }, "wrapped": { "default": false, "description": "Whether the parameter should be wrapped in a parent XML element.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/xmlRestrictionDto.yaml" } } } }, "apiParameterType": { "description": "The data type of the parameter, either `string`, `integer`, `number`, `boolean`, or `json/xml` for JSON or XML objects.", "type": "string", "enum": [ "string", "integer", "number", "boolean", "json/xml" ] }, "apiResourceMethParamId": { "description": "The unique identifier for the parameter's parent method.", "nullable": true, "readOnly": true, "type": "integer" }, "array": { "description": "Whether the parameter can express more than one value. This member is only applicable for `apiChildParameters` that you can specify if the corresponding `apiParameterLocation` is `body` and the `apiParameterType` is `json/xml`. If you enable this, also define the `arrayRestriction` member.", "type": "boolean" }, "pathParamLocationId": { "description": "The index of a segment that includes a path parameter in a resource path. For example, given a path `\\books\\{bookId}`, the `books` segment has index `0`, and the path parameter `{bookId}` has index `1`.", "nullable": true, "type": "number" }, "response": { "description": "Whether the parameter is within a response type.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiParameterDto.yaml" } } }, "apiResourceMethod": { "description": "The core HTTP method to which the resource may respond, either `GET`, `PUT`, `POST`, `DELETE`, `HEAD`, `PATCH`, or `OPTIONS`.", "type": "string", "enum": [ "GET", "PUT", "POST", "DELETE", "HEAD", "PATCH", "OPTIONS" ] }, "apiResourceMethodId": { "description": "The unique identifier for the resource's allowed method.", "nullable": true, "readOnly": true, "type": "integer" }, "apiResourceMethodLogicId": { "description": "The unique identifier for the resource's method across all endpoint versions.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiMethodParametersDto.yaml" } } }, "apiResourceName": { "description": "The name of the resource.", "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the resource.", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the resource.", "type": "string" }, "description": { "description": "The description to clarify the resource's function within the API. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "type": "number" }, "private": { "description": "Whether the resource is private. API consumers can access private resources only if they identify with an appropriate API key.", "type": "boolean" }, "resourcePath": { "description": "The URL path relative to the hostnames on which the resource resides. When entering a resource path, you can use curly brackets (`{}`) to define path parameters (for example, `/path/{pathparam}`). If you decide to do so, ensure that the value of the `apiParameterName` member in the corresponding parameter definition matches the name that you specified in the resource path.", "type": "string" }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the resource.", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the resource.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiResourceMethParamsDto.yaml" } } }, "apiSource": { "description": "Specifies if the API's data comes from `API_DISCOVERY` or was provided by the `USER`.", "example": "{{apiSource}}", "nullable": true, "type": "string", "enum": [ "USER", "API_DISCOVERY" ] }, "apiVersionInfo": { "additionalProperties": false, "description": "Contains information about a major API version. This refers to REST API versioning and is a different concept than the endpoint configuration versions you create at Akamai.", "nullable": true, "type": "object", "required": [ "location" ], "properties": { "location": { "description": "The location of the API version value in an incoming request. Either `HEADER`, `BASE_PATH`, or `QUERY` parameter.", "type": "string", "enum": [ "HEADER", "BASE_PATH", "QUERY" ] }, "parameterName": { "description": "The name of the header or query parameter that includes the API version value. This is applicable only if the corresponding `location` member is either `HEADER` or `QUERY`.", "type": "string" }, "value": { "description": "The expected API version value in an incoming request.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiVersionInfo.yaml" } }, "availableActions": { "description": "The collection of available actions that you can perform on the endpoint depending on its versions' activation status. For possible values, see [Endpoint.availableActions values](#enumvalues2).", "minItems": 0, "nullable": true, "readOnly": true, "type": "array", "items": { "type": "string", "enum": [ "DELETE", "CLONE_ENDPOINT", "COMPARE_ENDPOINT", "COMPARE_AAG_SETTINGS", "COMPARE_RAPID_SETTINGS", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING", "ACTIVATE_ON_PRODUCTION", "DEACTIVATE_ON_STAGING", "DEACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "SHOW_ENDPOINT" ] } }, "basePath": { "description": "The URL path that serves as a root prefix for all resources' `resourcePath` values. This is `/` if empty. Don't append a `/` character to the path. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "example": "{{basePath}}", "minLength": 0, "nullable": true, "type": "string" }, "caseSensitive": { "description": "Whether the URLs and parameters within the endpoint are case sensitive.", "example": "{{caseSensitive}}", "nullable": true, "type": "boolean" }, "clonedFromVersion": { "description": "For cloned endpoints, the unique identifier for the source endpoint version.", "example": "{{clonedFromVersion}}", "nullable": true, "readOnly": true, "type": "integer" }, "consumeType": { "description": "The content type the endpoint exchanges, either `json`, `xml`, `urlencoded`, `json/xml/urlencoded`, `json/urlencoded`, `json/xml`, or `xml/urlencoded` for multi-format APIs, `any`, or `none`. A `null` value is the same as a `none` string.", "example": "{{consumeType}}", "nullable": true, "type": "string", "enum": [ "none", "json", "xml", "json/xml", "any", "urlencoded", "json/urlencoded", "xml/urlencoded", "json/xml/urlencoded" ] }, "contractId": { "description": "The unique identifier for the contract with Akamai under which you provisioned security and delivery settings for this API.", "example": "{{contractId}}", "nullable": true, "readOnly": true, "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the endpoint.", "example": "{{createDate}}", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "createdBy": { "description": "The identifier for the user who created the endpoint.", "example": "{{createdBy}}", "nullable": true, "readOnly": true, "type": "string" }, "description": { "description": "The description of the endpoint. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "example": "{{description}}", "nullable": true, "type": "string" }, "discoveredPiiIds": { "description": "The collection of personally identifiable information (PII) in your API parameters discovered by the network.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "endpointHidden": { "description": "Specifies whether the endpoint is hidden. You cannot activate or delete versions of a hidden endpoint. If you want to do so, you first need to reveal the endpoint by running the [Show an endpoint](https://techdocs.akamai.com/api-definitions/reference/post-endpoint-show) operation.", "example": "{{endpointHidden}}", "nullable": true, "readOnly": true, "type": "boolean" }, "groupId": { "description": "The unique identifier for the group in Control Center under which you provisioned security and delivery settings for this API.", "example": "{{groupId}}", "nullable": true, "readOnly": true, "type": "integer" }, "isGraphQL": { "description": "Whether the endpoint uses GraphQL to deliver structured content to clients.", "example": "{{isGraphQL}}", "type": "boolean" }, "lockVersion": { "description": "The identifier for the last modification of an endpoint version, used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "example": "{{lockVersion}}", "readOnly": true, "type": "integer" }, "matchPathSegmentParam": { "default": true, "description": "Whether or not to include path segment parameters in match criteria, like the `jsessionid` portion of `/ssocookie;jsessionid=434343`.", "example": "{{matchPathSegmentParam}}", "nullable": true, "type": "boolean" }, "positiveConstrainsEnabled": { "description": "Specifies whether the KSD firewall policies are enabled for the endpoint.", "example": "{{positiveConstrainsEnabled}}", "nullable": true, "type": "boolean" }, "productionStatus": { "description": "The version activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "example": "{{productionStatus}}", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "productionVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the production network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "protectedByApiKey": { "description": "Whether you enabled API key protection for the endpoint version by making the version private.", "example": "{{protectedByApiKey}}", "readOnly": true, "type": "boolean" }, "responseConstraintsEnabled": { "description": "Specifies whether response constraints are enforced for the endpoint. Note that if you enable response constraints but don't define the constraints, it behaves as if disabled.", "example": "{{responseConstraintsEnabled}}", "nullable": true, "readOnly": true, "type": "boolean" }, "securityScheme": { "additionalProperties": false, "description": "Contains information about the key with which users may access the endpoint.", "nullable": true, "type": "object", "properties": { "securitySchemeDetail": { "additionalProperties": false, "description": "Contains information about the location of the API key.", "type": "object", "properties": { "apiKeyLocation": { "description": "The location of the API key in incoming requests, either `cookie`, `header`, or `query` parameter.", "type": "string", "enum": [ "cookie", "header", "query" ] }, "apiKeyName": { "description": "The name of the header, query parameter, or cookie where you located the API key.", "type": "string" } } }, "securitySchemeType": { "description": "The type of security scheme implemented for the endpoint. The only valid value is `apikey`.", "type": "string", "enum": [ "apikey" ] } } }, "source": { "additionalProperties": false, "description": "Contains information about the import file used to create the endpoint.", "nullable": true, "readOnly": true, "type": "object", "properties": { "apiVersion": { "description": "The major version of the API defined in the import file.", "nullable": true, "readOnly": true, "type": "string" }, "specificationVersion": { "description": "The version of the import file's specification.", "example": "3.0.0", "nullable": true, "readOnly": true, "type": "string" }, "type": { "description": "The specification of the import file you uploaded to create the endpoint version. Either `SWAGGER` or `RAML`.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "SWAGGER", "RAML" ] } }, "x-akamai": { "file-path": "schemas/apiEndpointSourceDto.yaml" } }, "stagingStatus": { "description": "The version activation status on the staging network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "example": "{{stagingStatus}}", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "stagingVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the staging network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the endpoint.", "example": "{{updateDate}}", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the endpoint.", "example": "{{updatedBy}}", "nullable": true, "readOnly": true, "type": "string" }, "versionHidden": { "description": "Specifies whether the endpoint version is hidden. You cannot activate or delete hidden versions. If you want to do so, you first need to reveal the version by running the [Show a version](https://techdocs.akamai.com/api-definitions/reference/post-version-show) operation.", "example": "{{versionHidden}}", "nullable": true, "readOnly": true, "type": "boolean" }, "versionNumber": { "description": "The endpoint version number.", "example": "{{versionNumber}}", "nullable": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointWithResourceDto-recurse.yaml" } } } } }, "responses": { "201": { "description": "New resource successfully created.", "content": { "application/json": { "example": { "akamaiSecurityRestrictions": null, "apiEndPointId": 492375, "apiEndPointLocked": false, "apiEndPointName": "Bookstore API", "apiEndPointScheme": "http/https", "apiEndPointVersion": 574127, "apiGatewayEnabled": true, "basePath": "/bookstore", "caseSensitive": true, "clonedFromVersion": null, "consumeType": "any", "contractId": "C-0N7RAC71", "createDate": "2019-06-12T13:06:52+0000", "createdBy": "jkowalski", "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.", "endpointHidden": false, "graphQL": false, "groupId": 44681, "isGraphQL": false, "lockVersion": 0, "positiveConstrainsEnabled": null, "productionStatus": null, "protectedByApiKey": true, "responseConstraintsEnabled": false, "source": null, "stagingStatus": null, "updateDate": "2019-06-12T13:06:52+0000", "updatedBy": "bookstore_admin", "versionHidden": false, "versionNumber": 1, "apiCategoryIds": [ 2, 7 ], "apiEndPointHosts": [ "bookstore.api.akamai.com" ], "availableActions": [ "DELETE", "CLONE_ENDPOINT", "ACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING" ], "discoveredPiiIds": [ 455976 ], "productionVersion": { "lastError": null, "status": null, "timestamp": null, "versionNumber": null }, "securityScheme": { "securitySchemeType": "apikey", "securitySchemeDetail": { "apiKeyLocation": "header", "apiKeyName": "apikey" } }, "stagingVersion": { "lastError": null, "status": null, "timestamp": null, "versionNumber": null }, "apiResources": [ { "apiResourceClonedFromId": null, "apiResourceId": 2926712, "apiResourceLogicId": 118435, "apiResourceName": "books", "createDate": "2019-06-12T13:06:52+0000", "createdBy": "jperez", "description": "A book item within the bookstore API.", "link": null, "lockVersion": 0, "private": false, "resourcePath": "/books/{bookId}", "updateDate": "2019-06-12T13:06:52+0000", "updatedBy": "bookstore_admin", "apiResourceMethods": [ { "apiResourceMethod": "GET", "apiResourceMethodId": 341591, "apiResourceMethodLogicId": 184404, "apiParameters": [ { "apiParamLogicId": 578116, "apiParameterId": 1212945, "apiParameterLocation": "path", "apiParameterName": "bookId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterRestriction": null, "apiParameterType": "string", "apiResourceMethParamId": 494448, "array": false, "pathParamLocationId": null, "response": false, "apiChildParameters": [] } ] }, { "apiResourceMethod": "POST", "apiResourceMethodId": 341592, "apiResourceMethodLogicId": 184405, "apiParameters": [ { "apiParamLogicId": 578117, "apiParameterId": 1212946, "apiParameterLocation": "path", "apiParameterName": "bookId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterType": "string", "apiResourceMethParamId": 494449, "array": false, "pathParamLocationId": null, "apiChildParameters": [], "apiParameterRestriction": { "apiParameterType": "json", "array": true, "numberRangeRestriction": null, "rangeRestriction": null, "response": true, "xmlConversionRule": null, "arrayRestriction": { "maxItems": 200, "minItems": 100 }, "responseRestriction": { "maxBodySize": "SIZE_6K", "statusCodes": [ 200, 201 ] } } } ] } ] } ] }, "schema": { "additionalProperties": false, "description": "Contains information about an endpoint and its associated resources.", "type": "object", "required": [ "apiEndPointName", "apiEndPointHosts", "groupId", "contractId", "lockVersion" ], "properties": { "akamaiSecurityRestrictions": { "additionalProperties": false, "description": "Contains information about the Kona Site Defender security restrictions that you apply to an API. Note that you should only include these details in your requests if you're a Kona Site Defender customer.", "nullable": true, "type": "object", "properties": { "ALLOW_ONLY_SPEC_UNDEFINED_METHODS": { "description": "Whether the API allows requests on undefined resources, but only for specific methods. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_BODY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in body. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_COOKIE_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in cookies. These booleans override members in the Method object. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_HEADER_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in header. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_DELETE": { "description": "Whether the API allows requests on undefined resources using the DELETE method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_GET": { "description": "Whether the API allows requests on undefined resources using the GET method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_HEAD": { "description": "Whether the API allows requesting undefined resources using HEAD method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_OPTIONS": { "description": "Whether the API allows requesting undefined resources using OPTIONS method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PATCH": { "description": "Whether the API allows requesting undefined resources using PATCH method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_POST": { "description": "Whether the API allows requests on undefined resources using the POST method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PUT": { "description": "Whether the API allows requests on undefined resources using the PUT method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_PARAMS": { "description": "Whether the API allows requesting with undefined parameters. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_QUERY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in query string. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_RESOURCES": { "description": "Whether the API allows requests on undefined resources. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_SPEC_PARAMS": { "description": "Whether the API allows requesting undefined resources, but only for specific locations. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "MAX_BODY_SIZE": { "description": "The maximum allowed size of a request body.", "nullable": true, "type": "integer" }, "MAX_DOC_DEPTH": { "description": "The maximum depth of nested data elements allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_ELEMENT_NAME_LENGTH": { "description": "The maximum length of an XML element name or JSON object key name allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_INTEGER_VALUE": { "description": "The maximum integer value allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_JSONXML_ELEMENT": { "description": "The maximum number of XML elements, JSON object keys, or array items allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_STRING_LENGTH": { "description": "The maximum length of any string value in a request body.", "nullable": true, "type": "integer" }, "POSITIVE_SECURITY_ENABLED": { "description": "Whether to enforce the API request body and resource constraints as allowlists in your KSD security policies. Either `1` for enabled security constraints, or `0` for disabled.", "type": "integer", "enum": [ 0, 1 ] }, "POSITIVE_SECURITY_VERSION": { "description": "Whether to create the API with API Protection 2 or above. Either `1`, `2` for enabled API Protection 2, or `null` for the legacy API.", "nullable": true, "type": "integer", "enum": [ 1, 2 ] }, "RESPONSE_RESTRICTIONS_ENABLED": { "description": "When set to `1`, the API allows for responses with undefined parameters in the response body. Otherwise the value is `0`.", "type": "integer", "enum": [ 0, 1 ] } } }, "apiCategoryIds": { "description": "The category identifiers that apply to the endpoint. The value is `null` for uncategorized endpoints.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "apiEndPointHosts": { "description": "The hostnames that may receive traffic for the endpoint. You need at least one hostname before activating the endpoint.", "minItems": 1, "type": "array", "items": { "type": "string" } }, "apiEndPointId": { "description": "The unique identifier for the endpoint.", "nullable": true, "readOnly": true, "type": "integer" }, "apiEndPointLocked": { "description": "Whether the endpoint version is read-only.", "nullable": true, "readOnly": true, "type": "boolean" }, "apiEndPointName": { "description": "The name of the endpoint, unique within the account.", "type": "string" }, "apiEndPointScheme": { "description": "The URL scheme to which the endpoint may respond, either `http`, `https`, or `http/https` for both.", "nullable": true, "type": "string", "enum": [ "http", "https", "http/https" ] }, "apiEndPointVersion": { "description": "The unique identifier for the endpoint version.", "nullable": true, "readOnly": true, "type": "integer" }, "apiGatewayEnabled": { "default": true, "description": "Whether the API Gateway product should be enabled for the endpoint. If `null`, the member is set to `true`.", "nullable": true, "type": "boolean" }, "apiResources": { "description": "The list of resources assigned to the endpoint.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a resource assigned to an endpoint.", "type": "object", "required": [ "apiResourceName", "resourcePath" ], "properties": { "apiResourceClonedFromId": { "description": "For cloned resources, the unique identifier for the source resource.", "nullable": true, "type": "integer" }, "apiResourceId": { "description": "The unique identifier for the resource.", "type": "integer" }, "apiResourceLogicId": { "description": "The unique identifier for the resource across all endpoint versions.", "type": "integer" }, "apiResourceMethodNameLists": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "type": "string" } }, "apiResourceMethods": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "additionalProperties": false, "description": "Contains information about an HTTP method to which a resource may respond.", "type": "object", "required": [ "apiResourceMethod" ], "properties": { "apiParameters": { "description": "The list of parameter objects assigned to the method.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a method's parameter.", "type": "object", "required": [ "apiParameterName", "apiParameterType", "apiParameterRequired", "apiParameterLocation" ], "properties": { "apiChildParameters": { "description": "The collection of child JSON members or XML elements for JSON or XML body type parameters.", "type": "array", "items": { "description": "A further nested endpoint object.", "type": "object", "x-akamai": { "file-path": "schemas/apiParameterDto-nested.yaml" } } }, "apiParamLogicId": { "description": "The unique identifier for the parameter across all endpoint versions.", "readOnly": true, "type": "integer" }, "apiParameterContentType": { "description": "The content type of the parameter. Only applicable for top level body parameters.", "type": "string", "enum": [ "json", "xml", "urlencoded", "json/xml", "any", "none" ] }, "apiParameterId": { "description": "The unique identifier for the parameter.", "readOnly": true, "type": "integer" }, "apiParameterLocation": { "description": "The location of the parameter in an HTTP request, either `query`, `header`, `path`, `cookie`, or `body` for a JSON or XML body type parameter.", "type": "string", "enum": [ "query", "body", "header", "path", "cookie" ] }, "apiParameterName": { "description": "The name of the parameter. If the corresponding `apiParameterLocation` is `path`, ensure that this value matches the parameter name you specified in the `resourcePath`.", "type": "string" }, "apiParameterNotes": { "description": "The description to clarify the parameter's function. If you specify an empty string in the request or omit this member from the object, the JSON response reflects it as `null`.", "nullable": true, "type": "string" }, "apiParameterRequired": { "description": "Specifies whether the API user needs to specify the parameter. If the corresponding `apiParameterLocation` is `path`, set this member to `true`.", "type": "boolean" }, "apiParameterRestriction": { "additionalProperties": false, "description": "Contains information about restrictions and XML representation rules specified for the parameter.", "nullable": true, "type": "object", "properties": { "arrayRestriction": { "additionalProperties": false, "description": "Contains information about array restrictions for array type parameters. Define this object only if you enabled the corresponding `array` member.", "nullable": true, "type": "object", "properties": { "collectionFormat": { "default": "csv", "description": "The format of the array that specifies how you separated array values, either the default `csv` for comma separated values, `ssv` for space separated values, `tsv` for tab separated values, `pipes` for pipe separated values, or `multi` for several parameter instances instead of several values for a single instance.", "type": "string", "enum": [ "csv", "ssv", "tsv", "pipes", "multi" ] }, "maxItems": { "description": "The maximum allowed number of array items.", "type": "integer" }, "minItems": { "description": "The minimum allowed number of array items.", "type": "integer" }, "uniqueItems": { "description": "Whether the array contains only unique items.", "type": "boolean" } } }, "lengthRestriction": { "additionalProperties": false, "description": "Contains information about length restrictions for string type parameters.", "nullable": true, "type": "object", "properties": { "lengthMax": { "description": "The maximum allowed number of characters in the string.", "nullable": true, "type": "integer" }, "lengthMin": { "description": "The minimum allowed number of characters in the string.", "nullable": true, "type": "integer" } } }, "numberRangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for number type parameters.", "nullable": true, "type": "object", "properties": { "numberRangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "number" }, "numberRangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "number" } } }, "rangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for integer type parameters.", "nullable": true, "type": "object", "properties": { "rangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "integer" }, "rangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "integer" } } }, "responseRestriction": { "additionalProperties": false, "type": "object", "properties": { "maxBodySize": { "description": "Limit how large the response body can be before tripping the firewall action. The default is `SIZE_6K`. You can choose `SIZE_8K`, `SIZE_12K`, or `NO_LIMIT`, which allows a response of any size.", "type": "string", "enum": [ "SIZE_6K", "SIZE_8K", "SIZE_12K", "NO_LIMIT" ] }, "statusCodes": { "description": "The response status codes to match to a particular response body format. A `null` or empty value means the response body definition applies to any response body.", "nullable": true, "type": "array", "items": { "type": "integer" } } } }, "xmlConversionRule": { "additionalProperties": false, "description": "Contains information about an XML representation of a JSON-encoded parameter.", "nullable": true, "type": "object", "properties": { "attribute": { "default": false, "description": "Whether the parameter should be represented as an attribute.", "type": "boolean" }, "name": { "description": "The name of the parameter in XML. By default, the XML name is the same as the parameter name specified in the API definition.", "type": "string" }, "namespace": { "description": "The XML namespace.", "type": "string" }, "prefix": { "description": "The prefix for the XML namespace.", "type": "string" }, "wrapped": { "default": false, "description": "Whether the parameter should be wrapped in a parent XML element.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/xmlRestrictionDto.yaml" } } } }, "apiParameterType": { "description": "The data type of the parameter, either `string`, `integer`, `number`, `boolean`, or `json/xml` for JSON or XML objects.", "type": "string", "enum": [ "string", "integer", "number", "boolean", "json/xml" ] }, "apiResourceMethParamId": { "description": "The unique identifier for the parameter's parent method.", "nullable": true, "readOnly": true, "type": "integer" }, "array": { "description": "Whether the parameter can express more than one value. This member is only applicable for `apiChildParameters` that you can specify if the corresponding `apiParameterLocation` is `body` and the `apiParameterType` is `json/xml`. If you enable this, also define the `arrayRestriction` member.", "type": "boolean" }, "pathParamLocationId": { "description": "The index of a segment that includes a path parameter in a resource path. For example, given a path `\\books\\{bookId}`, the `books` segment has index `0`, and the path parameter `{bookId}` has index `1`.", "nullable": true, "type": "number" }, "response": { "description": "Whether the parameter is within a response type.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiParameterDto.yaml" } } }, "apiResourceMethod": { "description": "The core HTTP method to which the resource may respond, either `GET`, `PUT`, `POST`, `DELETE`, `HEAD`, `PATCH`, or `OPTIONS`.", "type": "string", "enum": [ "GET", "PUT", "POST", "DELETE", "HEAD", "PATCH", "OPTIONS" ] }, "apiResourceMethodId": { "description": "The unique identifier for the resource's allowed method.", "nullable": true, "readOnly": true, "type": "integer" }, "apiResourceMethodLogicId": { "description": "The unique identifier for the resource's method across all endpoint versions.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiMethodParametersDto.yaml" } } }, "apiResourceName": { "description": "The name of the resource.", "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the resource.", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the resource.", "type": "string" }, "description": { "description": "The description to clarify the resource's function within the API. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "type": "number" }, "private": { "description": "Whether the resource is private. API consumers can access private resources only if they identify with an appropriate API key.", "type": "boolean" }, "resourcePath": { "description": "The URL path relative to the hostnames on which the resource resides. When entering a resource path, you can use curly brackets (`{}`) to define path parameters (for example, `/path/{pathparam}`). If you decide to do so, ensure that the value of the `apiParameterName` member in the corresponding parameter definition matches the name that you specified in the resource path.", "type": "string" }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the resource.", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the resource.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiResourceMethParamsDto.yaml" } } }, "apiSource": { "description": "Specifies if the API's data comes from `API_DISCOVERY` or was provided by the `USER`.", "nullable": true, "type": "string", "enum": [ "USER", "API_DISCOVERY" ] }, "apiVersionInfo": { "additionalProperties": false, "description": "Contains information about a major API version. This refers to REST API versioning and is a different concept than the endpoint configuration versions you create at Akamai.", "nullable": true, "type": "object", "required": [ "location" ], "properties": { "location": { "description": "The location of the API version value in an incoming request. Either `HEADER`, `BASE_PATH`, or `QUERY` parameter.", "type": "string", "enum": [ "HEADER", "BASE_PATH", "QUERY" ] }, "parameterName": { "description": "The name of the header or query parameter that includes the API version value. This is applicable only if the corresponding `location` member is either `HEADER` or `QUERY`.", "type": "string" }, "value": { "description": "The expected API version value in an incoming request.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiVersionInfo.yaml" } }, "availableActions": { "description": "The collection of available actions that you can perform on the endpoint depending on its versions' activation status. For possible values, see [Endpoint.availableActions values](#enumvalues2).", "minItems": 0, "nullable": true, "readOnly": true, "type": "array", "items": { "type": "string", "enum": [ "DELETE", "CLONE_ENDPOINT", "COMPARE_ENDPOINT", "COMPARE_AAG_SETTINGS", "COMPARE_RAPID_SETTINGS", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING", "ACTIVATE_ON_PRODUCTION", "DEACTIVATE_ON_STAGING", "DEACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "SHOW_ENDPOINT" ] } }, "basePath": { "description": "The URL path that serves as a root prefix for all resources' `resourcePath` values. This is `/` if empty. Don't append a `/` character to the path. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "minLength": 0, "nullable": true, "type": "string" }, "caseSensitive": { "description": "Whether the URLs and parameters within the endpoint are case sensitive.", "nullable": true, "type": "boolean" }, "clonedFromVersion": { "description": "For cloned endpoints, the unique identifier for the source endpoint version.", "nullable": true, "readOnly": true, "type": "integer" }, "consumeType": { "description": "The content type the endpoint exchanges, either `json`, `xml`, `urlencoded`, `json/xml/urlencoded`, `json/urlencoded`, `json/xml`, or `xml/urlencoded` for multi-format APIs, `any`, or `none`. A `null` value is the same as a `none` string.", "nullable": true, "type": "string", "enum": [ "none", "json", "xml", "json/xml", "any", "urlencoded", "json/urlencoded", "xml/urlencoded", "json/xml/urlencoded" ] }, "contractId": { "description": "The unique identifier for the contract with Akamai under which you provisioned security and delivery settings for this API.", "nullable": true, "readOnly": true, "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the endpoint.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "createdBy": { "description": "The identifier for the user who created the endpoint.", "nullable": true, "readOnly": true, "type": "string" }, "description": { "description": "The description of the endpoint. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "nullable": true, "type": "string" }, "discoveredPiiIds": { "description": "The collection of personally identifiable information (PII) in your API parameters discovered by the network.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "endpointHidden": { "description": "Specifies whether the endpoint is hidden. You cannot activate or delete versions of a hidden endpoint. If you want to do so, you first need to reveal the endpoint by running the [Show an endpoint](https://techdocs.akamai.com/api-definitions/reference/post-endpoint-show) operation.", "nullable": true, "readOnly": true, "type": "boolean" }, "groupId": { "description": "The unique identifier for the group in Control Center under which you provisioned security and delivery settings for this API.", "nullable": true, "readOnly": true, "type": "integer" }, "isGraphQL": { "description": "Whether the endpoint uses GraphQL to deliver structured content to clients.", "type": "boolean" }, "lockVersion": { "description": "The identifier for the last modification of an endpoint version, used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "readOnly": true, "type": "integer" }, "matchPathSegmentParam": { "default": true, "description": "Whether or not to include path segment parameters in match criteria, like the `jsessionid` portion of `/ssocookie;jsessionid=434343`.", "nullable": true, "type": "boolean" }, "positiveConstrainsEnabled": { "description": "Specifies whether the KSD firewall policies are enabled for the endpoint.", "nullable": true, "type": "boolean" }, "productionStatus": { "description": "The version activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "productionVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the production network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "protectedByApiKey": { "description": "Whether you enabled API key protection for the endpoint version by making the version private.", "readOnly": true, "type": "boolean" }, "responseConstraintsEnabled": { "description": "Specifies whether response constraints are enforced for the endpoint. Note that if you enable response constraints but don't define the constraints, it behaves as if disabled.", "nullable": true, "readOnly": true, "type": "boolean" }, "securityScheme": { "additionalProperties": false, "description": "Contains information about the key with which users may access the endpoint.", "nullable": true, "type": "object", "properties": { "securitySchemeDetail": { "additionalProperties": false, "description": "Contains information about the location of the API key.", "type": "object", "properties": { "apiKeyLocation": { "description": "The location of the API key in incoming requests, either `cookie`, `header`, or `query` parameter.", "type": "string", "enum": [ "cookie", "header", "query" ] }, "apiKeyName": { "description": "The name of the header, query parameter, or cookie where you located the API key.", "type": "string" } } }, "securitySchemeType": { "description": "The type of security scheme implemented for the endpoint. The only valid value is `apikey`.", "type": "string", "enum": [ "apikey" ] } } }, "source": { "additionalProperties": false, "description": "Contains information about the import file used to create the endpoint.", "nullable": true, "readOnly": true, "type": "object", "properties": { "apiVersion": { "description": "The major version of the API defined in the import file.", "nullable": true, "readOnly": true, "type": "string" }, "specificationVersion": { "description": "The version of the import file's specification.", "example": "3.0.0", "nullable": true, "readOnly": true, "type": "string" }, "type": { "description": "The specification of the import file you uploaded to create the endpoint version. Either `SWAGGER` or `RAML`.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "SWAGGER", "RAML" ] } }, "x-akamai": { "file-path": "schemas/apiEndpointSourceDto.yaml" } }, "stagingStatus": { "description": "The version activation status on the staging network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "stagingVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the staging network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the endpoint.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the endpoint.", "nullable": true, "readOnly": true, "type": "string" }, "versionHidden": { "description": "Specifies whether the endpoint version is hidden. You cannot activate or delete hidden versions. If you want to do so, you first need to reveal the version by running the [Show a version](https://techdocs.akamai.com/api-definitions/reference/post-version-show) operation.", "nullable": true, "readOnly": true, "type": "boolean" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointWithResourceDto-recurse.yaml" } } } }, "headers": { "Location": { "description": "Relative URL for the created API endpoint.", "schema": { "type": "string" } } } }, "400": { "description": "Invalid data input.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "403": { "description": "The system denies user access to the contract and group.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "get": { "description": "Lists the available API endpoints, with results optionally paginated, sorted, and filtered. If no endpoints are available, the operation responds with an empty array.", "operationId": "get-endpoints", "summary": "List endpoints", "tags": [ "Endpoints" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/get-endpoints" }, "responses": { "200": { "description": "Lists API Endpoints you can access.", "content": { "application/json": { "example": { "page": 8, "pageSize": 1, "totalSize": 15, "apiEndPoints": [ { "apiEndPointId": 574127, "apiEndPointLocked": false, "apiEndPointName": "Bookstore API Premium", "apiEndPointScheme": "http/https", "basePath": "/bookstore-premium", "clonedFromVersion": 1, "consumeType": "any", "contractId": "K-0N7RAK71", "createDate": "2019-06-12T13:06:52+0000", "createdBy": "jsmith", "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.", "endpointHidden": true, "groupId": 44681, "positiveConstrainsEnabled": true, "protectedByApiKey": true, "responseConstraintsEnabled": true, "updateDate": "2019-06-12T13:06:52+0000", "updatedBy": "bookstore_admin", "versionHidden": true, "versionNumber": 2, "apiCategoryIds": [], "apiEndPointHosts": [ "bookstore.api.akamai.com" ], "availableActions": [ "CLONE_ENDPOINT", "SHOW_ENDPOINT", "COMPARE_ENDPOINT", "ACTIVATE_ON_STAGING", "ACTIVATE_ON_PRODUCTION" ], "pii": { "types": [ "PERSONAL_EMAIL" ] }, "productionVersion": { "status": null, "versionNumber": null }, "stagingVersion": { "status": null, "versionNumber": null }, "apiResourceBaseInfo": [ { "apiResourceClonedFromId": null, "apiResourceId": 2926712, "apiResourceLogicId": 118435, "apiResourceName": "/books/{bookId}", "createDate": "2019-06-12T13:06:52+0000", "createdBy": "tyamada", "description": "A book item within the bookstore API.", "link": null, "lockVersion": 0, "private": false, "resourcePath": "/books/{bookId}", "updateDate": "2019-06-12T13:06:52+0000", "updatedBy": "bookstore_admin" } ] } ], "links": [ { "href": "/api-definitions/v2/endpoints?pageSize=2&page=8", "rel": "self" }, { "href": "/api-definitions/v2/endpoints?pageSize=2&page=9", "rel": "next" }, { "href": "/api-definitions/v2/endpoints?pageSize=2&page=7", "rel": "previous" } ] }, "schema": { "additionalProperties": false, "description": "Contains information about a collection of requested endpoints.", "type": "object", "properties": { "apiEndPoints": { "description": "The collection of the returned endpoint objects.", "type": "array", "items": { "additionalProperties": false, "type": "object", "required": [ "apiEndPointName" ], "properties": { "apiCategoryIds": { "description": "The category identifiers that apply to this endpoint. The value is `null` for uncategorized endpoints.", "type": "array", "items": { "type": "integer" } }, "apiEndPointHosts": { "description": "The hostnames that may receive traffic for the endpoint. You need at least one hostname to activate the endpoint.", "type": "array", "items": { "type": "string" } }, "apiEndPointId": { "description": "The unique identifier for the endpoint.", "type": "integer" }, "apiEndPointLocked": { "description": "Whether the endpoint version is read-only.", "type": "boolean" }, "apiEndPointName": { "description": "The name of the endpoint, unique within the account.", "type": "string" }, "apiEndPointScheme": { "description": "The URL scheme to which the endpoint may respond, either `http`, `https`, or `http/https` for both.", "type": "string", "enum": [ "http", "https", "http/https" ] }, "apiEndPointVersion": { "description": "The unique identifier for the endpoint version.", "type": "integer" }, "apiResourceBaseInfo": { "description": "The collection of resource objects assigned to the endpoint.", "type": "array", "items": { "additionalProperties": false, "type": "object", "properties": { "apiResourceClonedFromId": { "description": "For cloned resources, the unique identifier for the source resource.", "nullable": true, "type": "integer" }, "apiResourceId": { "description": "The unique identifier for the resource.", "type": "integer" }, "apiResourceLogicId": { "description": "The unique identifier for the resource across different endpoint versions.", "type": "integer" }, "apiResourceName": { "description": "The name of the resource.", "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the resource.", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the resource.", "type": "string" }, "description": { "description": "The description to clarify the resource's function within the API. If you specify an empty string in the request or omit this member from the object, the JSON response reflects it as `null`.", "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier for the last modification of an endpoint version, used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "type": "integer" }, "resourcePath": { "description": "The URL path relative to the hostnames on which the resource resides.", "type": "string" }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the resource.", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the resource.", "type": "string" } } } }, "apiVersionInfo": { "additionalProperties": false, "description": "Contains information about a major API version. This refers to REST API versioning and is a different concept than the endpoint configuration versions you create at Akamai.", "nullable": true, "type": "object", "required": [ "location" ], "properties": { "location": { "description": "The location of the API version value in an incoming request. Either `HEADER`, `BASE_PATH`, or `QUERY` parameter.", "type": "string", "enum": [ "HEADER", "BASE_PATH", "QUERY" ] }, "parameterName": { "description": "The name of the header or query parameter that includes the API version value. This is applicable only if the corresponding `location` member is either `HEADER` or `QUERY`.", "type": "string" }, "value": { "description": "The expected API version value in an incoming request.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiVersionInfo.yaml" } }, "availableActions": { "description": "The collection of available actions that you can perform on the endpoint depending on its versions' activation status.", "type": "array", "items": { "type": "string", "enum": [ "DELETE", "CLONE_ENDPOINT", "COMPARE_ENDPOINT", "COMPARE_AAG_SETTINGS", "COMPARE_RAPID_SETTINGS", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING", "ACTIVATE_ON_PRODUCTION", "DEACTIVATE_ON_STAGING", "DEACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "SHOW_ENDPOINT" ] } }, "basePath": { "description": "The URL path that serves as a root prefix for all resources' `resourcePath` values. This is `/` if empty. Don't append a `/` character to the path. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "type": "string" }, "caseSensitive": { "description": "Whether the URLs and parameters within the endpoint are case sensitive.", "type": "boolean" }, "clonedFromVersion": { "description": "For cloned endpoints, the unique identifier for the source endpoint version.", "type": "integer" }, "consumeType": { "description": "The content type the endpoint exchanges, either `json`, `xml`, `json/xml` for dual-format APIs, `any`, or `none`.", "type": "string", "enum": [ "none", "json", "xml", "json/xml", "any" ] }, "contractId": { "description": "The unique identifier for the contract with Akamai under which you provisioned security and delivery settings for this API.", "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the endpoint.", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the resource.", "type": "string" }, "description": { "description": "The description of the endpoint. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "type": "string" }, "endpointHidden": { "description": "Indicates whether the endpoint is hidden. You can't activate or delete versions of a hidden endpoint. If you want to do so, you first need to reveal the endpoint by running the [Show an endpoint](https://techdocs.akamai.com/api-definitions/reference/post-endpoint-show) operation.", "type": "boolean" }, "groupId": { "description": "The unique identifier for the group in the Control Center portal under which you activated security and delivery settings for this API.", "type": "integer" }, "isGraphQL": { "description": "Whether the endpoint uses GraphQL to deliver structured content to clients.", "type": "boolean" }, "lockVersion": { "description": "The identifier for the last modification of an endpoint version, used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "type": "integer" }, "pii": { "additionalProperties": false, "description": "Personally identifiable information. See (API concepts)[ref:api-concepts] for more information.", "type": "object", "properties": { "types": { "description": "The PII type. Either `PERSONAL_EMAIL` or `CREDIT_OR_DEBIT_CARD_NUMBER`.", "type": "array", "items": { "type": "string", "enum": [ "PERSONAL_EMAIL", "CREDIT_OR_DEBIT_CARD_NUMBER" ] } } } }, "positiveConstrainsEnabled": { "description": "Enables Kona Site Defender (KSD) firewall policies for the endpoint.", "type": "boolean" }, "productionVersion": { "description": "Contains information about an endpoint version's activation status on the production network.", "type": "object" }, "responseConstraintsEnabled": { "description": "Enables Kona Site Defender (KSD) firewall policies for the responses.", "type": "boolean" }, "source": { "description": "Contains information about the import file used to create the endpoint.", "nullable": true, "type": "object" }, "stagingVersion": { "description": "Contains information about an endpoint version's activation status on the staging network.", "type": "object" }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the endpoint.", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the resource.", "type": "string" }, "versionHidden": { "description": "Indicates whether the endpoint version is hidden. You cannot activate or delete hidden versions. If you want to do so, you first need to reveal the version by running the [Show a version](https://techdocs.akamai.com/api-definitions/reference/post-version-show) operation.", "type": "boolean" }, "versionNumber": { "description": "The endpoint version number.", "type": "integer" } } } }, "page": { "description": "The number of the current page with results.", "minimum": 1, "type": "integer" }, "pageSize": { "description": "The number of endpoints on each page with results.", "type": "integer" }, "totalSize": { "description": "The total number of endpoints available in the returned set.", "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointListDto.yaml" } } } } }, "403": { "description": "You don't have permission to retrieve API endpoint list.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "Whether to return only endpoints with personally identifiable information (PII).", "example": "{{piiOnly}}", "in": "query", "name": "piiOnly", "required": false, "schema": { "example": false, "type": "boolean" }, "x-akamai": { "file-path": "parameters/pii-query.yaml" } }, { "description": "The page number index, starting at the default value of `1`.", "example": "{{page}}", "in": "query", "name": "page", "schema": { "default": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/page-query.yaml" } }, { "description": "The number of endpoints on each page of results, `25` by default.", "example": "{{pageSize}}", "in": "query", "name": "pageSize", "schema": { "default": 25, "type": "integer" }, "x-akamai": { "file-path": "parameters/pageSize-query.yaml" } }, { "description": "Filters endpoints by the specified `apiCategoryName`, including the `__UNCATEGORIZED__` keyword.", "example": "{{category}}", "in": "query", "name": "category", "schema": { "type": "string" }, "x-akamai": { "file-path": "parameters/category-query.yaml" } }, { "description": "The search query substring criteria matching the endpoint's name, description, `basePath`, `apiCategoryName`, and `resourcePath`.", "example": "{{contains}}", "in": "query", "name": "contains", "schema": { "type": "string" }, "x-akamai": { "file-path": "parameters/contains-query.yaml" } }, { "description": "__Enum__ The field to sort endpoints by, either the API `name` (corresponding to the `apiEndPointName` member) or `updateDate`.", "example": "{{sortBy}}", "in": "query", "name": "sortBy", "schema": { "default": "name", "type": "string", "enum": [ "name", "updateDate" ] }, "x-akamai": { "file-path": "parameters/sortBy-query.yaml" } }, { "description": "__Enum__ The sort order, either `desc` for descending or the default `asc` for ascending.", "example": "{{sortOrder}}", "in": "query", "name": "sortOrder", "schema": { "type": "string", "enum": [ "asc", "desc" ] }, "x-akamai": { "file-path": "parameters/sortOrder-query.yaml" } }, { "description": "__Enum__ The preference for selecting the endpoint version to return. By default the API returns the `LAST_UPDATED` version. If you set the preference to `ACTIVATED_FIRST`, the API first attempts to return the version currently active on the production network. If such version doesn't exist, the API attempts to return the version currently active on the staging network. If both of these checks fail, the API returns the last updated version.", "example": "{{versionPreference}}", "in": "query", "name": "versionPreference", "schema": { "type": "string", "enum": [ "ACTIVATED_FIRST", "LAST_UPDATED" ] }, "x-akamai": { "file-path": "parameters/versionPreference-query.yaml" } }, { "description": "__Enum__ The type of endpoints to return based on their visibility status. By default the API returns `ALL` endpoints. You can instead decide to return `ONLY_VISIBLE` endpoints, or `ONLY_HIDDEN` endpoints. Run the [Show an endpoint](https://techdocs.akamai.com/api-definitions/reference/post-endpoint-show) and [Hide an endpoint](https://techdocs.akamai.com/api-definitions/reference/post-endpoint-hide) operations to control which endpoints are listed.", "example": "{{show}}", "in": "query", "name": "show", "schema": { "type": "string", "enum": [ "ALL", "ONLY_VISIBLE", "ONLY_HIDDEN" ] }, "x-akamai": { "file-path": "parameters/show-query.yaml" } }, { "description": "Filters endpoints to a specific contract. You need to specify this along with a `groupId`.", "example": "{{contractId}}", "in": "query", "name": "contractId", "schema": { "type": "string" }, "x-akamai": { "file-path": "parameters/contractId-query.yaml" } }, { "description": "Filters endpoints to a specific group. You need to specify this along with a `contractId`.", "example": "{{groupId}}", "in": "query", "name": "groupId", "schema": { "type": "integer" }, "x-akamai": { "file-path": "parameters/groupId-query.yaml" } }, { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] } }, "/endpoints/cloneEndpoint": { "post": { "description": "Creates an endpoint as a clone from the specified source endpoint ID and version.", "operationId": "post-endpoint-clone", "summary": "Clone an endpoint", "tags": [ "Endpoints" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/post-endpoint-clone" }, "requestBody": { "required": true, "content": { "application/json": { "example": { "apiEndPointId": 492375, "apiEndPointName": "Bookstore API Premium", "apiGatewayEnabled": true, "basePath": "/bookstore-premium", "contractId": "K-0N7RAK7", "groupId": 44680, "versionNumber": 1, "apiEndPointHosts": [ "bookstore.api.akamai.com" ] }, "schema": { "additionalProperties": false, "description": "Contains information about an endpoint to clone.", "type": "object", "required": [ "contractId", "groupId", "apiEndPointName", "basePath", "apiEndPointHosts" ], "properties": { "apiEndPointHosts": { "description": "The hostnames that may receive traffic for the endpoint. You need at least one hostname before activating the endpoint.", "type": "array", "items": { "type": "string" } }, "apiEndPointId": { "description": "The unique identifier for the endpoint. For the clone operation, this is the ID of the source endpoint.", "example": "{{apiEndPointId}}", "type": "integer" }, "apiEndPointName": { "description": "The name of the endpoint, unique within the account.", "example": "{{apiEndPointName}}", "type": "string" }, "basePath": { "description": "The URL path that serves as a root prefix for all resources' `resourcePath` values for the endpoint. This is `/` if empty. Don't append a `/` character to the path.", "example": "{{basePath}}", "minLength": 0, "type": "string" }, "contractId": { "description": "The unique identifier for the contract with Akamai under which you provisioned security and delivery settings for this API.", "example": "{{contractId}}", "type": "string" }, "groupId": { "description": "The unique identifier for the group in Control Center under which you provisioned security and delivery settings for this API.", "example": "{{groupId}}", "type": "integer" }, "versionNumber": { "description": "The endpoint version number. For the clone operation, this is the source endpoint version number.", "example": "{{versionNumber}}", "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointCloneDto.yaml" } } } } }, "responses": { "200": { "description": "Created API Endpoint.", "content": { "application/json": { "example": { "akamaiSecurityRestrictions": null, "apiEndPointId": 492375, "apiEndPointLocked": false, "apiEndPointName": "Bookstore API Premium", "apiEndPointScheme": "http/https", "apiEndPointVersion": 574127, "basePath": "/bookstore-premium", "caseSensitive": true, "clonedFromVersion": 1, "consumeType": "any", "contractId": "K-0N7RAK71", "createDate": "2019-06-12T13:06:52+0000", "createdBy": "jkowalski", "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.", "endpointHidden": false, "graphQL": false, "groupId": 44681, "isGraphQL": false, "lockVersion": 2, "positiveConstrainsEnabled": null, "productionStatus": null, "protectedByApiKey": true, "source": null, "stagingStatus": null, "updateDate": "2019-06-12T13:06:52+0000", "updatedBy": "bookstore_admin", "versionHidden": false, "versionNumber": 2, "apiCategoryIds": [ 2, 7 ], "apiEndPointHosts": [ "bookstore.api.akamai.com" ], "availableActions": [ "DELETE", "CLONE_ENDPOINT", "ACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING" ], "productionVersion": { "lastError": null, "status": null, "timestamp": null, "versionNumber": null }, "securityScheme": { "securitySchemeType": "apikey", "securitySchemeDetail": { "apiKeyLocation": "header", "apiKeyName": "apikey" } }, "stagingVersion": { "lastError": null, "status": null, "timestamp": null, "versionNumber": null }, "apiResources": [ { "apiResourceClonedFromId": null, "apiResourceId": 2926712, "apiResourceLogicId": 118435, "apiResourceName": "books", "createDate": "2019-06-12T13:06:52+0000", "createdBy": "jkowalski", "description": "A book item within the bookstore API.", "link": null, "lockVersion": 2, "private": false, "resourcePath": "/books/{bookId}", "updateDate": "2019-06-12T13:06:52+0000", "updatedBy": "bookstore_admin", "apiResourceMethods": [ { "apiResourceMethod": "GET", "apiResourceMethodId": 341591, "apiResourceMethodLogicId": 184404, "apiParameters": [ { "apiParamLogicId": 578116, "apiParameterId": 1212945, "apiParameterLocation": "path", "apiParameterName": "bookId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterRestriction": null, "apiParameterType": "string", "apiResourceMethParamId": 494448, "array": false, "pathParamLocationId": null, "apiChildParameters": [] } ] }, { "apiResourceMethod": "POST", "apiResourceMethodId": 341592, "apiResourceMethodLogicId": 184405, "apiParameters": [ { "apiParamLogicId": 578117, "apiParameterContentType": "json", "apiParameterId": 1212946, "apiParameterLocation": "body", "apiParameterName": "books", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterType": "string", "apiResourceMethParamId": 494449, "array": true, "pathParamLocationId": null, "apiChildParameters": [], "apiParameterRestriction": { "arrayRestriction": null, "numberRangeRestriction": null, "rangeRestriction": null, "xmlConversionRule": null, "lengthRestriction": { "lengthMax": 15, "lengthMin": 3 } } } ] } ] } ] }, "schema": { "additionalProperties": false, "description": "Contains information about an endpoint and its associated resources.", "type": "object", "required": [ "apiEndPointName", "apiEndPointHosts", "groupId", "contractId", "lockVersion" ], "properties": { "akamaiSecurityRestrictions": { "additionalProperties": false, "description": "Contains information about the Kona Site Defender security restrictions that you apply to an API. Note that you should only include these details in your requests if you're a Kona Site Defender customer.", "nullable": true, "type": "object", "properties": { "ALLOW_ONLY_SPEC_UNDEFINED_METHODS": { "description": "Whether the API allows requests on undefined resources, but only for specific methods. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_BODY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in body. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_COOKIE_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in cookies. These booleans override members in the Method object. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_HEADER_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in header. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_DELETE": { "description": "Whether the API allows requests on undefined resources using the DELETE method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_GET": { "description": "Whether the API allows requests on undefined resources using the GET method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_HEAD": { "description": "Whether the API allows requesting undefined resources using HEAD method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_OPTIONS": { "description": "Whether the API allows requesting undefined resources using OPTIONS method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PATCH": { "description": "Whether the API allows requesting undefined resources using PATCH method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_POST": { "description": "Whether the API allows requests on undefined resources using the POST method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PUT": { "description": "Whether the API allows requests on undefined resources using the PUT method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_PARAMS": { "description": "Whether the API allows requesting with undefined parameters. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_QUERY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in query string. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_RESOURCES": { "description": "Whether the API allows requests on undefined resources. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_SPEC_PARAMS": { "description": "Whether the API allows requesting undefined resources, but only for specific locations. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "MAX_BODY_SIZE": { "description": "The maximum allowed size of a request body.", "nullable": true, "type": "integer" }, "MAX_DOC_DEPTH": { "description": "The maximum depth of nested data elements allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_ELEMENT_NAME_LENGTH": { "description": "The maximum length of an XML element name or JSON object key name allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_INTEGER_VALUE": { "description": "The maximum integer value allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_JSONXML_ELEMENT": { "description": "The maximum number of XML elements, JSON object keys, or array items allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_STRING_LENGTH": { "description": "The maximum length of any string value in a request body.", "nullable": true, "type": "integer" }, "POSITIVE_SECURITY_ENABLED": { "description": "Whether to enforce the API request body and resource constraints as allowlists in your KSD security policies. Either `1` for enabled security constraints, or `0` for disabled.", "type": "integer", "enum": [ 0, 1 ] }, "POSITIVE_SECURITY_VERSION": { "description": "Whether to create the API with API Protection 2 or above. Either `1`, `2` for enabled API Protection 2, or `null` for the legacy API.", "nullable": true, "type": "integer", "enum": [ 1, 2 ] }, "RESPONSE_RESTRICTIONS_ENABLED": { "description": "When set to `1`, the API allows for responses with undefined parameters in the response body. Otherwise the value is `0`.", "type": "integer", "enum": [ 0, 1 ] } } }, "apiCategoryIds": { "description": "The category identifiers that apply to the endpoint. The value is `null` for uncategorized endpoints.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "apiEndPointHosts": { "description": "The hostnames that may receive traffic for the endpoint. You need at least one hostname before activating the endpoint.", "minItems": 1, "type": "array", "items": { "type": "string" } }, "apiEndPointId": { "description": "The unique identifier for the endpoint.", "nullable": true, "readOnly": true, "type": "integer" }, "apiEndPointLocked": { "description": "Whether the endpoint version is read-only.", "nullable": true, "readOnly": true, "type": "boolean" }, "apiEndPointName": { "description": "The name of the endpoint, unique within the account.", "type": "string" }, "apiEndPointScheme": { "description": "The URL scheme to which the endpoint may respond, either `http`, `https`, or `http/https` for both.", "nullable": true, "type": "string", "enum": [ "http", "https", "http/https" ] }, "apiEndPointVersion": { "description": "The unique identifier for the endpoint version.", "nullable": true, "readOnly": true, "type": "integer" }, "apiGatewayEnabled": { "default": true, "description": "Whether the API Gateway product should be enabled for the endpoint. If `null`, the member is set to `true`.", "nullable": true, "type": "boolean" }, "apiResources": { "description": "The list of resources assigned to the endpoint.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a resource assigned to an endpoint.", "type": "object", "required": [ "apiResourceName", "resourcePath" ], "properties": { "apiResourceClonedFromId": { "description": "For cloned resources, the unique identifier for the source resource.", "nullable": true, "type": "integer" }, "apiResourceId": { "description": "The unique identifier for the resource.", "type": "integer" }, "apiResourceLogicId": { "description": "The unique identifier for the resource across all endpoint versions.", "type": "integer" }, "apiResourceMethodNameLists": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "type": "string" } }, "apiResourceMethods": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "additionalProperties": false, "description": "Contains information about an HTTP method to which a resource may respond.", "type": "object", "required": [ "apiResourceMethod" ], "properties": { "apiParameters": { "description": "The list of parameter objects assigned to the method.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a method's parameter.", "type": "object", "required": [ "apiParameterName", "apiParameterType", "apiParameterRequired", "apiParameterLocation" ], "properties": { "apiChildParameters": { "description": "The collection of child JSON members or XML elements for JSON or XML body type parameters.", "type": "array", "items": { "description": "A further nested endpoint object.", "type": "object", "x-akamai": { "file-path": "schemas/apiParameterDto-nested.yaml" } } }, "apiParamLogicId": { "description": "The unique identifier for the parameter across all endpoint versions.", "readOnly": true, "type": "integer" }, "apiParameterContentType": { "description": "The content type of the parameter. Only applicable for top level body parameters.", "type": "string", "enum": [ "json", "xml", "urlencoded", "json/xml", "any", "none" ] }, "apiParameterId": { "description": "The unique identifier for the parameter.", "readOnly": true, "type": "integer" }, "apiParameterLocation": { "description": "The location of the parameter in an HTTP request, either `query`, `header`, `path`, `cookie`, or `body` for a JSON or XML body type parameter.", "type": "string", "enum": [ "query", "body", "header", "path", "cookie" ] }, "apiParameterName": { "description": "The name of the parameter. If the corresponding `apiParameterLocation` is `path`, ensure that this value matches the parameter name you specified in the `resourcePath`.", "type": "string" }, "apiParameterNotes": { "description": "The description to clarify the parameter's function. If you specify an empty string in the request or omit this member from the object, the JSON response reflects it as `null`.", "nullable": true, "type": "string" }, "apiParameterRequired": { "description": "Specifies whether the API user needs to specify the parameter. If the corresponding `apiParameterLocation` is `path`, set this member to `true`.", "type": "boolean" }, "apiParameterRestriction": { "additionalProperties": false, "description": "Contains information about restrictions and XML representation rules specified for the parameter.", "nullable": true, "type": "object", "properties": { "arrayRestriction": { "additionalProperties": false, "description": "Contains information about array restrictions for array type parameters. Define this object only if you enabled the corresponding `array` member.", "nullable": true, "type": "object", "properties": { "collectionFormat": { "default": "csv", "description": "The format of the array that specifies how you separated array values, either the default `csv` for comma separated values, `ssv` for space separated values, `tsv` for tab separated values, `pipes` for pipe separated values, or `multi` for several parameter instances instead of several values for a single instance.", "type": "string", "enum": [ "csv", "ssv", "tsv", "pipes", "multi" ] }, "maxItems": { "description": "The maximum allowed number of array items.", "type": "integer" }, "minItems": { "description": "The minimum allowed number of array items.", "type": "integer" }, "uniqueItems": { "description": "Whether the array contains only unique items.", "type": "boolean" } } }, "lengthRestriction": { "additionalProperties": false, "description": "Contains information about length restrictions for string type parameters.", "nullable": true, "type": "object", "properties": { "lengthMax": { "description": "The maximum allowed number of characters in the string.", "nullable": true, "type": "integer" }, "lengthMin": { "description": "The minimum allowed number of characters in the string.", "nullable": true, "type": "integer" } } }, "numberRangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for number type parameters.", "nullable": true, "type": "object", "properties": { "numberRangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "number" }, "numberRangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "number" } } }, "rangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for integer type parameters.", "nullable": true, "type": "object", "properties": { "rangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "integer" }, "rangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "integer" } } }, "responseRestriction": { "additionalProperties": false, "type": "object", "properties": { "maxBodySize": { "description": "Limit how large the response body can be before tripping the firewall action. The default is `SIZE_6K`. You can choose `SIZE_8K`, `SIZE_12K`, or `NO_LIMIT`, which allows a response of any size.", "type": "string", "enum": [ "SIZE_6K", "SIZE_8K", "SIZE_12K", "NO_LIMIT" ] }, "statusCodes": { "description": "The response status codes to match to a particular response body format. A `null` or empty value means the response body definition applies to any response body.", "nullable": true, "type": "array", "items": { "type": "integer" } } } }, "xmlConversionRule": { "additionalProperties": false, "description": "Contains information about an XML representation of a JSON-encoded parameter.", "nullable": true, "type": "object", "properties": { "attribute": { "default": false, "description": "Whether the parameter should be represented as an attribute.", "type": "boolean" }, "name": { "description": "The name of the parameter in XML. By default, the XML name is the same as the parameter name specified in the API definition.", "type": "string" }, "namespace": { "description": "The XML namespace.", "type": "string" }, "prefix": { "description": "The prefix for the XML namespace.", "type": "string" }, "wrapped": { "default": false, "description": "Whether the parameter should be wrapped in a parent XML element.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/xmlRestrictionDto.yaml" } } } }, "apiParameterType": { "description": "The data type of the parameter, either `string`, `integer`, `number`, `boolean`, or `json/xml` for JSON or XML objects.", "type": "string", "enum": [ "string", "integer", "number", "boolean", "json/xml" ] }, "apiResourceMethParamId": { "description": "The unique identifier for the parameter's parent method.", "nullable": true, "readOnly": true, "type": "integer" }, "array": { "description": "Whether the parameter can express more than one value. This member is only applicable for `apiChildParameters` that you can specify if the corresponding `apiParameterLocation` is `body` and the `apiParameterType` is `json/xml`. If you enable this, also define the `arrayRestriction` member.", "type": "boolean" }, "pathParamLocationId": { "description": "The index of a segment that includes a path parameter in a resource path. For example, given a path `\\books\\{bookId}`, the `books` segment has index `0`, and the path parameter `{bookId}` has index `1`.", "nullable": true, "type": "number" }, "response": { "description": "Whether the parameter is within a response type.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiParameterDto.yaml" } } }, "apiResourceMethod": { "description": "The core HTTP method to which the resource may respond, either `GET`, `PUT`, `POST`, `DELETE`, `HEAD`, `PATCH`, or `OPTIONS`.", "type": "string", "enum": [ "GET", "PUT", "POST", "DELETE", "HEAD", "PATCH", "OPTIONS" ] }, "apiResourceMethodId": { "description": "The unique identifier for the resource's allowed method.", "nullable": true, "readOnly": true, "type": "integer" }, "apiResourceMethodLogicId": { "description": "The unique identifier for the resource's method across all endpoint versions.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiMethodParametersDto.yaml" } } }, "apiResourceName": { "description": "The name of the resource.", "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the resource.", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the resource.", "type": "string" }, "description": { "description": "The description to clarify the resource's function within the API. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "type": "number" }, "private": { "description": "Whether the resource is private. API consumers can access private resources only if they identify with an appropriate API key.", "type": "boolean" }, "resourcePath": { "description": "The URL path relative to the hostnames on which the resource resides. When entering a resource path, you can use curly brackets (`{}`) to define path parameters (for example, `/path/{pathparam}`). If you decide to do so, ensure that the value of the `apiParameterName` member in the corresponding parameter definition matches the name that you specified in the resource path.", "type": "string" }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the resource.", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the resource.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiResourceMethParamsDto.yaml" } } }, "apiSource": { "description": "Specifies if the API's data comes from `API_DISCOVERY` or was provided by the `USER`.", "nullable": true, "type": "string", "enum": [ "USER", "API_DISCOVERY" ] }, "apiVersionInfo": { "additionalProperties": false, "description": "Contains information about a major API version. This refers to REST API versioning and is a different concept than the endpoint configuration versions you create at Akamai.", "nullable": true, "type": "object", "required": [ "location" ], "properties": { "location": { "description": "The location of the API version value in an incoming request. Either `HEADER`, `BASE_PATH`, or `QUERY` parameter.", "type": "string", "enum": [ "HEADER", "BASE_PATH", "QUERY" ] }, "parameterName": { "description": "The name of the header or query parameter that includes the API version value. This is applicable only if the corresponding `location` member is either `HEADER` or `QUERY`.", "type": "string" }, "value": { "description": "The expected API version value in an incoming request.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiVersionInfo.yaml" } }, "availableActions": { "description": "The collection of available actions that you can perform on the endpoint depending on its versions' activation status. For possible values, see [Endpoint.availableActions values](#enumvalues2).", "minItems": 0, "nullable": true, "readOnly": true, "type": "array", "items": { "type": "string", "enum": [ "DELETE", "CLONE_ENDPOINT", "COMPARE_ENDPOINT", "COMPARE_AAG_SETTINGS", "COMPARE_RAPID_SETTINGS", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING", "ACTIVATE_ON_PRODUCTION", "DEACTIVATE_ON_STAGING", "DEACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "SHOW_ENDPOINT" ] } }, "basePath": { "description": "The URL path that serves as a root prefix for all resources' `resourcePath` values. This is `/` if empty. Don't append a `/` character to the path. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "minLength": 0, "nullable": true, "type": "string" }, "caseSensitive": { "description": "Whether the URLs and parameters within the endpoint are case sensitive.", "nullable": true, "type": "boolean" }, "clonedFromVersion": { "description": "For cloned endpoints, the unique identifier for the source endpoint version.", "nullable": true, "readOnly": true, "type": "integer" }, "consumeType": { "description": "The content type the endpoint exchanges, either `json`, `xml`, `urlencoded`, `json/xml/urlencoded`, `json/urlencoded`, `json/xml`, or `xml/urlencoded` for multi-format APIs, `any`, or `none`. A `null` value is the same as a `none` string.", "nullable": true, "type": "string", "enum": [ "none", "json", "xml", "json/xml", "any", "urlencoded", "json/urlencoded", "xml/urlencoded", "json/xml/urlencoded" ] }, "contractId": { "description": "The unique identifier for the contract with Akamai under which you provisioned security and delivery settings for this API.", "nullable": true, "readOnly": true, "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the endpoint.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "createdBy": { "description": "The identifier for the user who created the endpoint.", "nullable": true, "readOnly": true, "type": "string" }, "description": { "description": "The description of the endpoint. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "nullable": true, "type": "string" }, "discoveredPiiIds": { "description": "The collection of personally identifiable information (PII) in your API parameters discovered by the network.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "endpointHidden": { "description": "Specifies whether the endpoint is hidden. You cannot activate or delete versions of a hidden endpoint. If you want to do so, you first need to reveal the endpoint by running the [Show an endpoint](https://techdocs.akamai.com/api-definitions/reference/post-endpoint-show) operation.", "nullable": true, "readOnly": true, "type": "boolean" }, "groupId": { "description": "The unique identifier for the group in Control Center under which you provisioned security and delivery settings for this API.", "nullable": true, "readOnly": true, "type": "integer" }, "isGraphQL": { "description": "Whether the endpoint uses GraphQL to deliver structured content to clients.", "type": "boolean" }, "lockVersion": { "description": "The identifier for the last modification of an endpoint version, used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "readOnly": true, "type": "integer" }, "matchPathSegmentParam": { "default": true, "description": "Whether or not to include path segment parameters in match criteria, like the `jsessionid` portion of `/ssocookie;jsessionid=434343`.", "nullable": true, "type": "boolean" }, "positiveConstrainsEnabled": { "description": "Specifies whether the KSD firewall policies are enabled for the endpoint.", "nullable": true, "type": "boolean" }, "productionStatus": { "description": "The version activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "productionVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the production network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "protectedByApiKey": { "description": "Whether you enabled API key protection for the endpoint version by making the version private.", "readOnly": true, "type": "boolean" }, "responseConstraintsEnabled": { "description": "Specifies whether response constraints are enforced for the endpoint. Note that if you enable response constraints but don't define the constraints, it behaves as if disabled.", "nullable": true, "readOnly": true, "type": "boolean" }, "securityScheme": { "additionalProperties": false, "description": "Contains information about the key with which users may access the endpoint.", "nullable": true, "type": "object", "properties": { "securitySchemeDetail": { "additionalProperties": false, "description": "Contains information about the location of the API key.", "type": "object", "properties": { "apiKeyLocation": { "description": "The location of the API key in incoming requests, either `cookie`, `header`, or `query` parameter.", "type": "string", "enum": [ "cookie", "header", "query" ] }, "apiKeyName": { "description": "The name of the header, query parameter, or cookie where you located the API key.", "type": "string" } } }, "securitySchemeType": { "description": "The type of security scheme implemented for the endpoint. The only valid value is `apikey`.", "type": "string", "enum": [ "apikey" ] } } }, "source": { "additionalProperties": false, "description": "Contains information about the import file used to create the endpoint.", "nullable": true, "readOnly": true, "type": "object", "properties": { "apiVersion": { "description": "The major version of the API defined in the import file.", "nullable": true, "readOnly": true, "type": "string" }, "specificationVersion": { "description": "The version of the import file's specification.", "example": "3.0.0", "nullable": true, "readOnly": true, "type": "string" }, "type": { "description": "The specification of the import file you uploaded to create the endpoint version. Either `SWAGGER` or `RAML`.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "SWAGGER", "RAML" ] } }, "x-akamai": { "file-path": "schemas/apiEndpointSourceDto.yaml" } }, "stagingStatus": { "description": "The version activation status on the staging network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "stagingVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the staging network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the endpoint.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the endpoint.", "nullable": true, "readOnly": true, "type": "string" }, "versionHidden": { "description": "Specifies whether the endpoint version is hidden. You cannot activate or delete hidden versions. If you want to do so, you first need to reveal the version by running the [Show a version](https://techdocs.akamai.com/api-definitions/reference/post-version-show) operation.", "nullable": true, "readOnly": true, "type": "boolean" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointWithResourceDto-recurse.yaml" } } } }, "headers": { "Location": { "description": "Relative URL for the cloned API endpoint.", "schema": { "type": "string" } } } }, "400": { "description": "Some of user input is invalid.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "403": { "description": "You don't have access to the endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "404": { "description": "The API endpoint is not found.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] } }, "/endpoints/files": { "post": { "description": "Imports an API definition file and creates a new endpoint based on the file contents. You can run this operation in two ways. To POST JSON data, see [Make a JSON request to register an endpoint from an API definition file](https://techdocs.akamai.com/api-definitions/reference/endpoint-request-json). To make a form request using these parameters, see [Make a form request to register an endpoint from an API definition file](https://techdocs.akamai.com/api-definitions/reference/endpoint-request-form).", "operationId": "post-endpoints-file", "summary": "Register an endpoint from an API definition file", "tags": [ "Endpoints" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/post-endpoints-file" }, "requestBody": { "required": true, "content": { "application/json": { "example": { "contractId": "C-0N7RAC71", "groupId": 44681, "importFileContent": "ewogICJzd2FnZ2VyIjogIjIuMCIsCiAgImluZm8iOiB7CiAgICAidmVyc2lvbiI6ICIxLjAuMCIsCiAgICAidGl0bGUiOiAiQm9va3N0b3JlIEFQSSIsCiAgICAiZGVzY3JpcHRpb24iOiAiQW4gQVBJIGZvciBib29rc3RvcmUgdXNlcnMgYWxsb3dpbmcgdGhlbSB0byByZXRyaWV2ZSBib29rIGl0ZW1zLCBhZGQgbmV3IGl0ZW1zIChhZG1pbiB1c2VycyksIGFuZCBtb2RpZnkgZXhpc3RpbmcgaXRlbXMuIgogIH0sCiAgImhvc3QiOiAiYm9va3N0b3JlLmFwaS5ha2FtYWkuY29tIiwKICAic2NoZW1lcyI6IFsKICAgICJodHRwIiwKICAgICJodHRwcyIKICBdLAogICJzZWN1cml0eURlZmluaXRpb25zIjogewogICAgImFwaV9rZXkiOiB7CiAgICAgICJ0eXBlIjogImFwaUtleSIsCiAgICAgICJuYW1lIjogImFwaUtleSIsCiAgICAgICJpbiI6ICJoZWFkZXIiCiAgICB9CiAgfSwKICAiYmFzZVBhdGgiOiAiL2Jvb2tzdG9yZSIsCiAgInBhdGhzIjogewogICAgIi9ib29rcyI6IHsKICAgICAgImdldCI6IHsKICAgICAgICAiZGVzY3JpcHRpb24iOiAiTGlzdHMgYWxsIGJvb2sgaXRlbXMuIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAiZ2V0Qm9va3MiLAogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInJlc3BvbnNlcyI6IHsKICAgICAgICAgICIyMDAiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCb29rIHJlc3BvbnNlLiIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAiYXJyYXkiLAogICAgICAgICAgICAgICJpdGVtcyI6IHsKICAgICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvYm9vayIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0sCiAgICAgICJwb3N0IjogewogICAgICAgICJkZXNjcmlwdGlvbiI6ICJDcmVhdGVzIGEgYm9vayBpdGVtIGluIHRoZSBib29rc3RvcmUuIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAicG9zdEJvb2siLAogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInBhcmFtZXRlcnMiOiBbewogICAgICAgICAgIm5hbWUiOiAiYm9vayIsCiAgICAgICAgICAiaW4iOiAiYm9keSIsCiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQSBib29rIHRvIGFkZCB0byB0aGUgYm9va3N0b3JlLiIsCiAgICAgICAgICAicmVxdWlyZWQiOiB0cnVlLAogICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9uZXdCb29rIgogICAgICAgICAgfQogICAgICAgIH1dLAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjAwIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQm9vayByZXNwb25zZS4iLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9ib29rIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgIi9ib29rcy97aWR9IjogewogICAgICAiZ2V0IjogewogICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIGEgYm9vayBpdGVtLiIsCiAgICAgICAgIm9wZXJhdGlvbklkIjogImdldEJvb2siLAogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInBhcmFtZXRlcnMiOiBbewogICAgICAgICAgIm5hbWUiOiAiaWQiLAogICAgICAgICAgImluIjogInBhdGgiLAogICAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgc3BlY2lmaWMgSUQgb2YgYSBib29rIGl0ZW0gdG8gcmV0dXJuLiIsCiAgICAgICAgICAicmVxdWlyZWQiOiB0cnVlLAogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIKICAgICAgICB9XSwKICAgICAgICAicmVzcG9uc2VzIjogewogICAgICAgICAgIjIwMCI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJvb2sgcmVzcG9uc2UuIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvYm9vayIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwKICAgICAgImRlbGV0ZSI6IHsKICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGVsZXRlcyBhIGJvb2sgaXRlbSBmcm9tIHRoZSBib29rc3RvcmUuIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAiZGVsZXRlQm9vayIsCiAgICAgICAgInByb2R1Y2VzIjogWwogICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgXSwKICAgICAgICAicGFyYW1ldGVycyI6IFt7CiAgICAgICAgICAibmFtZSI6ICJpZCIsCiAgICAgICAgICAiaW4iOiAicGF0aCIsCiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQSBzcGVjaWZpYyBJRCBvZiBhIGJvb2sgaXRlbSB0byBkZWxldGUuIiwKICAgICAgICAgICJyZXF1aXJlZCI6IHRydWUsCiAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIgogICAgICAgIH1dLAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjA0IjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQm9vayBkZWxldGVkIgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfQogIH0KfQ==", "importFileFormat": "swagger", "importFileSource": "BODY_BASE64" }, "schema": { "additionalProperties": false, "description": "Contains information about an API definition file to import.", "type": "object", "required": [ "importFileFormat", "importFileSource" ], "properties": { "contractId": { "description": "The unique identifier for the contract under which to provision the endpoint.", "example": "{{contractId}}", "type": "string" }, "groupId": { "description": "The unique identifier for the group under which to provision the endpoint.", "example": "{{groupId}}", "type": "number" }, "importFileContent": { "description": "The content of the API definition file encoded in Base64 (see [RFC 4648](https://tools.ietf.org/html/rfc4648) for details). Specify this only if you set the corresponding `importFileSource` to `BODY_BASE64`.", "example": "{{importFileContent}}", "type": "string" }, "importFileFormat": { "description": "The format of the API definition file, either `raml` or `swagger`. You cam import RAML 0.8 files and Swagger 2.0 or 3.0 files.", "example": "{{importFileFormat}}", "type": "string", "enum": [ "swagger", "raml" ] }, "importFileSource": { "description": "The location of the API definition file, either `URL` if you store the file on the web, or `BODY_BASE64` if you encode the file contents in the request body.", "example": "{{importFileSource}}", "type": "string", "enum": [ "URL", "BODY_BASE64" ] }, "importUrl": { "description": "The URL from which to get the API definition file. Specify this only if you set the corresponding `importFileSource` to `URL`.", "example": "{{importUrl}}", "type": "string" }, "root": { "description": "If the import file located at the `importUrl` is a ZIP archive, this identifies the API definition's filename within the archive.", "example": "{{root}}", "type": "string" } }, "x-akamai": { "file-path": "schemas/importFileDto.yaml" } } } } }, "responses": { "201": { "description": "New resource successfully created.", "content": { "application/json": { "example": { "akamaiSecurityRestrictions": null, "apiEndPointId": 492375, "apiEndPointLocked": false, "apiEndPointName": "Bookstore API", "apiEndPointScheme": "http/https", "apiGatewayEnabled": true, "basePath": "/bookstore", "caseSensitive": true, "clonedFromVersion": 1, "consumeType": "any", "contractId": "C-0N7RAC7", "createDate": "2019-06-12T13:06:52+0000", "createdBy": "szhang", "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.", "endpointHidden": false, "graphQL": false, "groupId": 44681, "isGraphQL": false, "lockVersion": 2, "positiveConstrainsEnabled": null, "productionStatus": null, "protectedByApiKey": true, "responseConstraintsEnabled": false, "source": null, "stagingStatus": null, "updateDate": "2019-06-12T13:06:52+0000", "updatedBy": "bookstore_admin", "versionHidden": false, "versionNumber": 1, "apiCategoryIds": [ 2, 7 ], "apiEndPointHosts": [ "bookstore.api.akamai.com" ], "availableActions": [ "DELETE", "CLONE_ENDPOINT", "ACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING" ], "productionVersion": { "lastError": null, "status": null, "timestamp": null, "versionNumber": null }, "securityScheme": { "securitySchemeType": "apikey", "securitySchemeDetail": { "apiKeyLocation": "header", "apiKeyName": "apikey" } }, "stagingVersion": { "lastError": null, "status": null, "timestamp": null, "versionNumber": null }, "apiResources": [ { "apiResourceClonedFromId": null, "apiResourceId": 2926712, "apiResourceLogicId": 118435, "apiResourceName": "books", "createDate": "2019-06-12T13:06:52+0000", "createdBy": "jperez", "description": "A book item within the bookstore API.", "link": null, "lockVersion": 2, "private": false, "resourcePath": "/books/{bookId}", "updateDate": "2019-06-12T13:06:52+0000", "updatedBy": "bookstore_admin", "apiResourceMethods": [ { "apiResourceMethod": "GET", "apiResourceMethodId": 341591, "apiResourceMethodLogicId": 184404, "apiParameters": [ { "apiParamLogicId": 578116, "apiParameterId": 1212945, "apiParameterLocation": "path", "apiParameterName": "bookId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterRestriction": null, "apiParameterType": "string", "apiResourceMethParamId": 494448, "array": false, "pathParamLocationId": null, "response": false, "apiChildParameters": [] } ] }, { "apiResourceMethod": "POST", "apiResourceMethodId": 341592, "apiResourceMethodLogicId": 184405, "apiParameters": [ { "apiParamLogicId": 578117, "apiParameterId": 1212946, "apiParameterLocation": "path", "apiParameterName": "bookId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterType": "string", "apiResourceMethParamId": 494449, "array": false, "pathParamLocationId": null, "response": false, "apiChildParameters": [], "apiParameterRestriction": { "arrayRestriction": null, "numberRangeRestriction": null, "rangeRestriction": null, "xmlConversionRule": null, "lengthRestriction": { "lengthMax": 15, "lengthMin": 3 } } } ] } ] } ] }, "schema": { "additionalProperties": false, "description": "Contains information about an endpoint and its associated resources.", "type": "object", "required": [ "apiEndPointName", "apiEndPointHosts", "groupId", "contractId", "lockVersion" ], "properties": { "akamaiSecurityRestrictions": { "additionalProperties": false, "description": "Contains information about the Kona Site Defender security restrictions that you apply to an API. Note that you should only include these details in your requests if you're a Kona Site Defender customer.", "nullable": true, "type": "object", "properties": { "ALLOW_ONLY_SPEC_UNDEFINED_METHODS": { "description": "Whether the API allows requests on undefined resources, but only for specific methods. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_BODY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in body. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_COOKIE_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in cookies. These booleans override members in the Method object. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_HEADER_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in header. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_DELETE": { "description": "Whether the API allows requests on undefined resources using the DELETE method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_GET": { "description": "Whether the API allows requests on undefined resources using the GET method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_HEAD": { "description": "Whether the API allows requesting undefined resources using HEAD method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_OPTIONS": { "description": "Whether the API allows requesting undefined resources using OPTIONS method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PATCH": { "description": "Whether the API allows requesting undefined resources using PATCH method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_POST": { "description": "Whether the API allows requests on undefined resources using the POST method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PUT": { "description": "Whether the API allows requests on undefined resources using the PUT method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_PARAMS": { "description": "Whether the API allows requesting with undefined parameters. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_QUERY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in query string. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_RESOURCES": { "description": "Whether the API allows requests on undefined resources. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_SPEC_PARAMS": { "description": "Whether the API allows requesting undefined resources, but only for specific locations. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "MAX_BODY_SIZE": { "description": "The maximum allowed size of a request body.", "nullable": true, "type": "integer" }, "MAX_DOC_DEPTH": { "description": "The maximum depth of nested data elements allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_ELEMENT_NAME_LENGTH": { "description": "The maximum length of an XML element name or JSON object key name allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_INTEGER_VALUE": { "description": "The maximum integer value allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_JSONXML_ELEMENT": { "description": "The maximum number of XML elements, JSON object keys, or array items allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_STRING_LENGTH": { "description": "The maximum length of any string value in a request body.", "nullable": true, "type": "integer" }, "POSITIVE_SECURITY_ENABLED": { "description": "Whether to enforce the API request body and resource constraints as allowlists in your KSD security policies. Either `1` for enabled security constraints, or `0` for disabled.", "type": "integer", "enum": [ 0, 1 ] }, "POSITIVE_SECURITY_VERSION": { "description": "Whether to create the API with API Protection 2 or above. Either `1`, `2` for enabled API Protection 2, or `null` for the legacy API.", "nullable": true, "type": "integer", "enum": [ 1, 2 ] }, "RESPONSE_RESTRICTIONS_ENABLED": { "description": "When set to `1`, the API allows for responses with undefined parameters in the response body. Otherwise the value is `0`.", "type": "integer", "enum": [ 0, 1 ] } } }, "apiCategoryIds": { "description": "The category identifiers that apply to the endpoint. The value is `null` for uncategorized endpoints.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "apiEndPointHosts": { "description": "The hostnames that may receive traffic for the endpoint. You need at least one hostname before activating the endpoint.", "minItems": 1, "type": "array", "items": { "type": "string" } }, "apiEndPointId": { "description": "The unique identifier for the endpoint.", "nullable": true, "readOnly": true, "type": "integer" }, "apiEndPointLocked": { "description": "Whether the endpoint version is read-only.", "nullable": true, "readOnly": true, "type": "boolean" }, "apiEndPointName": { "description": "The name of the endpoint, unique within the account.", "type": "string" }, "apiEndPointScheme": { "description": "The URL scheme to which the endpoint may respond, either `http`, `https`, or `http/https` for both.", "nullable": true, "type": "string", "enum": [ "http", "https", "http/https" ] }, "apiEndPointVersion": { "description": "The unique identifier for the endpoint version.", "nullable": true, "readOnly": true, "type": "integer" }, "apiGatewayEnabled": { "default": true, "description": "Whether the API Gateway product should be enabled for the endpoint. If `null`, the member is set to `true`.", "nullable": true, "type": "boolean" }, "apiResources": { "description": "The list of resources assigned to the endpoint.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a resource assigned to an endpoint.", "type": "object", "required": [ "apiResourceName", "resourcePath" ], "properties": { "apiResourceClonedFromId": { "description": "For cloned resources, the unique identifier for the source resource.", "nullable": true, "type": "integer" }, "apiResourceId": { "description": "The unique identifier for the resource.", "type": "integer" }, "apiResourceLogicId": { "description": "The unique identifier for the resource across all endpoint versions.", "type": "integer" }, "apiResourceMethodNameLists": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "type": "string" } }, "apiResourceMethods": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "additionalProperties": false, "description": "Contains information about an HTTP method to which a resource may respond.", "type": "object", "required": [ "apiResourceMethod" ], "properties": { "apiParameters": { "description": "The list of parameter objects assigned to the method.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a method's parameter.", "type": "object", "required": [ "apiParameterName", "apiParameterType", "apiParameterRequired", "apiParameterLocation" ], "properties": { "apiChildParameters": { "description": "The collection of child JSON members or XML elements for JSON or XML body type parameters.", "type": "array", "items": { "description": "A further nested endpoint object.", "type": "object", "x-akamai": { "file-path": "schemas/apiParameterDto-nested.yaml" } } }, "apiParamLogicId": { "description": "The unique identifier for the parameter across all endpoint versions.", "readOnly": true, "type": "integer" }, "apiParameterContentType": { "description": "The content type of the parameter. Only applicable for top level body parameters.", "type": "string", "enum": [ "json", "xml", "urlencoded", "json/xml", "any", "none" ] }, "apiParameterId": { "description": "The unique identifier for the parameter.", "readOnly": true, "type": "integer" }, "apiParameterLocation": { "description": "The location of the parameter in an HTTP request, either `query`, `header`, `path`, `cookie`, or `body` for a JSON or XML body type parameter.", "type": "string", "enum": [ "query", "body", "header", "path", "cookie" ] }, "apiParameterName": { "description": "The name of the parameter. If the corresponding `apiParameterLocation` is `path`, ensure that this value matches the parameter name you specified in the `resourcePath`.", "type": "string" }, "apiParameterNotes": { "description": "The description to clarify the parameter's function. If you specify an empty string in the request or omit this member from the object, the JSON response reflects it as `null`.", "nullable": true, "type": "string" }, "apiParameterRequired": { "description": "Specifies whether the API user needs to specify the parameter. If the corresponding `apiParameterLocation` is `path`, set this member to `true`.", "type": "boolean" }, "apiParameterRestriction": { "additionalProperties": false, "description": "Contains information about restrictions and XML representation rules specified for the parameter.", "nullable": true, "type": "object", "properties": { "arrayRestriction": { "additionalProperties": false, "description": "Contains information about array restrictions for array type parameters. Define this object only if you enabled the corresponding `array` member.", "nullable": true, "type": "object", "properties": { "collectionFormat": { "default": "csv", "description": "The format of the array that specifies how you separated array values, either the default `csv` for comma separated values, `ssv` for space separated values, `tsv` for tab separated values, `pipes` for pipe separated values, or `multi` for several parameter instances instead of several values for a single instance.", "type": "string", "enum": [ "csv", "ssv", "tsv", "pipes", "multi" ] }, "maxItems": { "description": "The maximum allowed number of array items.", "type": "integer" }, "minItems": { "description": "The minimum allowed number of array items.", "type": "integer" }, "uniqueItems": { "description": "Whether the array contains only unique items.", "type": "boolean" } } }, "lengthRestriction": { "additionalProperties": false, "description": "Contains information about length restrictions for string type parameters.", "nullable": true, "type": "object", "properties": { "lengthMax": { "description": "The maximum allowed number of characters in the string.", "nullable": true, "type": "integer" }, "lengthMin": { "description": "The minimum allowed number of characters in the string.", "nullable": true, "type": "integer" } } }, "numberRangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for number type parameters.", "nullable": true, "type": "object", "properties": { "numberRangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "number" }, "numberRangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "number" } } }, "rangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for integer type parameters.", "nullable": true, "type": "object", "properties": { "rangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "integer" }, "rangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "integer" } } }, "responseRestriction": { "additionalProperties": false, "type": "object", "properties": { "maxBodySize": { "description": "Limit how large the response body can be before tripping the firewall action. The default is `SIZE_6K`. You can choose `SIZE_8K`, `SIZE_12K`, or `NO_LIMIT`, which allows a response of any size.", "type": "string", "enum": [ "SIZE_6K", "SIZE_8K", "SIZE_12K", "NO_LIMIT" ] }, "statusCodes": { "description": "The response status codes to match to a particular response body format. A `null` or empty value means the response body definition applies to any response body.", "nullable": true, "type": "array", "items": { "type": "integer" } } } }, "xmlConversionRule": { "additionalProperties": false, "description": "Contains information about an XML representation of a JSON-encoded parameter.", "nullable": true, "type": "object", "properties": { "attribute": { "default": false, "description": "Whether the parameter should be represented as an attribute.", "type": "boolean" }, "name": { "description": "The name of the parameter in XML. By default, the XML name is the same as the parameter name specified in the API definition.", "type": "string" }, "namespace": { "description": "The XML namespace.", "type": "string" }, "prefix": { "description": "The prefix for the XML namespace.", "type": "string" }, "wrapped": { "default": false, "description": "Whether the parameter should be wrapped in a parent XML element.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/xmlRestrictionDto.yaml" } } } }, "apiParameterType": { "description": "The data type of the parameter, either `string`, `integer`, `number`, `boolean`, or `json/xml` for JSON or XML objects.", "type": "string", "enum": [ "string", "integer", "number", "boolean", "json/xml" ] }, "apiResourceMethParamId": { "description": "The unique identifier for the parameter's parent method.", "nullable": true, "readOnly": true, "type": "integer" }, "array": { "description": "Whether the parameter can express more than one value. This member is only applicable for `apiChildParameters` that you can specify if the corresponding `apiParameterLocation` is `body` and the `apiParameterType` is `json/xml`. If you enable this, also define the `arrayRestriction` member.", "type": "boolean" }, "pathParamLocationId": { "description": "The index of a segment that includes a path parameter in a resource path. For example, given a path `\\books\\{bookId}`, the `books` segment has index `0`, and the path parameter `{bookId}` has index `1`.", "nullable": true, "type": "number" }, "response": { "description": "Whether the parameter is within a response type.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiParameterDto.yaml" } } }, "apiResourceMethod": { "description": "The core HTTP method to which the resource may respond, either `GET`, `PUT`, `POST`, `DELETE`, `HEAD`, `PATCH`, or `OPTIONS`.", "type": "string", "enum": [ "GET", "PUT", "POST", "DELETE", "HEAD", "PATCH", "OPTIONS" ] }, "apiResourceMethodId": { "description": "The unique identifier for the resource's allowed method.", "nullable": true, "readOnly": true, "type": "integer" }, "apiResourceMethodLogicId": { "description": "The unique identifier for the resource's method across all endpoint versions.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiMethodParametersDto.yaml" } } }, "apiResourceName": { "description": "The name of the resource.", "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the resource.", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the resource.", "type": "string" }, "description": { "description": "The description to clarify the resource's function within the API. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "type": "number" }, "private": { "description": "Whether the resource is private. API consumers can access private resources only if they identify with an appropriate API key.", "type": "boolean" }, "resourcePath": { "description": "The URL path relative to the hostnames on which the resource resides. When entering a resource path, you can use curly brackets (`{}`) to define path parameters (for example, `/path/{pathparam}`). If you decide to do so, ensure that the value of the `apiParameterName` member in the corresponding parameter definition matches the name that you specified in the resource path.", "type": "string" }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the resource.", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the resource.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiResourceMethParamsDto.yaml" } } }, "apiSource": { "description": "Specifies if the API's data comes from `API_DISCOVERY` or was provided by the `USER`.", "nullable": true, "type": "string", "enum": [ "USER", "API_DISCOVERY" ] }, "apiVersionInfo": { "additionalProperties": false, "description": "Contains information about a major API version. This refers to REST API versioning and is a different concept than the endpoint configuration versions you create at Akamai.", "nullable": true, "type": "object", "required": [ "location" ], "properties": { "location": { "description": "The location of the API version value in an incoming request. Either `HEADER`, `BASE_PATH`, or `QUERY` parameter.", "type": "string", "enum": [ "HEADER", "BASE_PATH", "QUERY" ] }, "parameterName": { "description": "The name of the header or query parameter that includes the API version value. This is applicable only if the corresponding `location` member is either `HEADER` or `QUERY`.", "type": "string" }, "value": { "description": "The expected API version value in an incoming request.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiVersionInfo.yaml" } }, "availableActions": { "description": "The collection of available actions that you can perform on the endpoint depending on its versions' activation status. For possible values, see [Endpoint.availableActions values](#enumvalues2).", "minItems": 0, "nullable": true, "readOnly": true, "type": "array", "items": { "type": "string", "enum": [ "DELETE", "CLONE_ENDPOINT", "COMPARE_ENDPOINT", "COMPARE_AAG_SETTINGS", "COMPARE_RAPID_SETTINGS", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING", "ACTIVATE_ON_PRODUCTION", "DEACTIVATE_ON_STAGING", "DEACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "SHOW_ENDPOINT" ] } }, "basePath": { "description": "The URL path that serves as a root prefix for all resources' `resourcePath` values. This is `/` if empty. Don't append a `/` character to the path. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "minLength": 0, "nullable": true, "type": "string" }, "caseSensitive": { "description": "Whether the URLs and parameters within the endpoint are case sensitive.", "nullable": true, "type": "boolean" }, "clonedFromVersion": { "description": "For cloned endpoints, the unique identifier for the source endpoint version.", "nullable": true, "readOnly": true, "type": "integer" }, "consumeType": { "description": "The content type the endpoint exchanges, either `json`, `xml`, `urlencoded`, `json/xml/urlencoded`, `json/urlencoded`, `json/xml`, or `xml/urlencoded` for multi-format APIs, `any`, or `none`. A `null` value is the same as a `none` string.", "nullable": true, "type": "string", "enum": [ "none", "json", "xml", "json/xml", "any", "urlencoded", "json/urlencoded", "xml/urlencoded", "json/xml/urlencoded" ] }, "contractId": { "description": "The unique identifier for the contract with Akamai under which you provisioned security and delivery settings for this API.", "nullable": true, "readOnly": true, "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the endpoint.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "createdBy": { "description": "The identifier for the user who created the endpoint.", "nullable": true, "readOnly": true, "type": "string" }, "description": { "description": "The description of the endpoint. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "nullable": true, "type": "string" }, "discoveredPiiIds": { "description": "The collection of personally identifiable information (PII) in your API parameters discovered by the network.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "endpointHidden": { "description": "Specifies whether the endpoint is hidden. You cannot activate or delete versions of a hidden endpoint. If you want to do so, you first need to reveal the endpoint by running the [Show an endpoint](https://techdocs.akamai.com/api-definitions/reference/post-endpoint-show) operation.", "nullable": true, "readOnly": true, "type": "boolean" }, "groupId": { "description": "The unique identifier for the group in Control Center under which you provisioned security and delivery settings for this API.", "nullable": true, "readOnly": true, "type": "integer" }, "isGraphQL": { "description": "Whether the endpoint uses GraphQL to deliver structured content to clients.", "type": "boolean" }, "lockVersion": { "description": "The identifier for the last modification of an endpoint version, used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "readOnly": true, "type": "integer" }, "matchPathSegmentParam": { "default": true, "description": "Whether or not to include path segment parameters in match criteria, like the `jsessionid` portion of `/ssocookie;jsessionid=434343`.", "nullable": true, "type": "boolean" }, "positiveConstrainsEnabled": { "description": "Specifies whether the KSD firewall policies are enabled for the endpoint.", "nullable": true, "type": "boolean" }, "productionStatus": { "description": "The version activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "productionVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the production network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "protectedByApiKey": { "description": "Whether you enabled API key protection for the endpoint version by making the version private.", "readOnly": true, "type": "boolean" }, "responseConstraintsEnabled": { "description": "Specifies whether response constraints are enforced for the endpoint. Note that if you enable response constraints but don't define the constraints, it behaves as if disabled.", "nullable": true, "readOnly": true, "type": "boolean" }, "securityScheme": { "additionalProperties": false, "description": "Contains information about the key with which users may access the endpoint.", "nullable": true, "type": "object", "properties": { "securitySchemeDetail": { "additionalProperties": false, "description": "Contains information about the location of the API key.", "type": "object", "properties": { "apiKeyLocation": { "description": "The location of the API key in incoming requests, either `cookie`, `header`, or `query` parameter.", "type": "string", "enum": [ "cookie", "header", "query" ] }, "apiKeyName": { "description": "The name of the header, query parameter, or cookie where you located the API key.", "type": "string" } } }, "securitySchemeType": { "description": "The type of security scheme implemented for the endpoint. The only valid value is `apikey`.", "type": "string", "enum": [ "apikey" ] } } }, "source": { "additionalProperties": false, "description": "Contains information about the import file used to create the endpoint.", "nullable": true, "readOnly": true, "type": "object", "properties": { "apiVersion": { "description": "The major version of the API defined in the import file.", "nullable": true, "readOnly": true, "type": "string" }, "specificationVersion": { "description": "The version of the import file's specification.", "example": "3.0.0", "nullable": true, "readOnly": true, "type": "string" }, "type": { "description": "The specification of the import file you uploaded to create the endpoint version. Either `SWAGGER` or `RAML`.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "SWAGGER", "RAML" ] } }, "x-akamai": { "file-path": "schemas/apiEndpointSourceDto.yaml" } }, "stagingStatus": { "description": "The version activation status on the staging network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "stagingVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the staging network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the endpoint.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the endpoint.", "nullable": true, "readOnly": true, "type": "string" }, "versionHidden": { "description": "Specifies whether the endpoint version is hidden. You cannot activate or delete hidden versions. If you want to do so, you first need to reveal the version by running the [Show a version](https://techdocs.akamai.com/api-definitions/reference/post-version-show) operation.", "nullable": true, "readOnly": true, "type": "boolean" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointWithResourceDto-recurse.yaml" } } } }, "headers": { "Location": { "description": "Relative URL for the newly created API endpoint.", "schema": { "type": "string" } } } }, "400": { "description": "Some of the file input data is invalid.", "content": { "application/json": { "example": { "apiEndpointDetails": { "akamaiSecurityRestrictions": null, "apiCategoryIds": null, "apiEndPointId": null, "apiEndPointLocked": null, "apiEndPointName": "Bookstore API", "apiEndPointScheme": "http/https", "apiProtectVersion": null, "basePath": "/bookstore", "clonedFromVersion": null, "consumeType": "any", "contractId": null, "createDate": null, "createdBy": null, "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.", "groupId": null, "lockVersion": -1, "productionStatus": null, "productionVersion": null, "protectedByApiKey": false, "securityScheme": null, "stagingStatus": null, "stagingVersion": null, "updateDate": null, "updatedBy": null, "versionNumber": null, "apiEndPointHosts": [ "bookstore.api.akamai.com" ], "apiResources": [] }, "problems": [ { "detail": "The object instance has properties which are not allowed by the schema: [\"unrecognizable\"]", "domain": "validation", "keyword": "additionalProperties", "level": "error", "pointer": "/paths/books/post", "title": "Invalid schema", "type": "/api-definitions/error-types/IMPORT-INVALID-SCHEMA" } ] }, "schema": { "additionalProperties": false, "description": "Contains information about a result of an import operation, including endpoint details and a list of potential issues.", "type": "object", "properties": { "apiEndpointDetails": { "additionalProperties": false, "description": "Contains information about the imported endpoint.", "type": "object", "required": [ "apiEndPointName", "apiEndPointHosts", "groupId", "contractId", "lockVersion" ], "properties": { "akamaiSecurityRestrictions": { "additionalProperties": false, "description": "Contains information about the Kona Site Defender security restrictions that you apply to an API. Note that you should only include these details in your requests if you're a Kona Site Defender customer.", "nullable": true, "type": "object", "properties": { "ALLOW_ONLY_SPEC_UNDEFINED_METHODS": { "description": "Whether the API allows requests on undefined resources, but only for specific methods. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_BODY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in body. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_COOKIE_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in cookies. These booleans override members in the Method object. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_HEADER_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in header. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_DELETE": { "description": "Whether the API allows requests on undefined resources using the DELETE method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_GET": { "description": "Whether the API allows requests on undefined resources using the GET method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_HEAD": { "description": "Whether the API allows requesting undefined resources using HEAD method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_OPTIONS": { "description": "Whether the API allows requesting undefined resources using OPTIONS method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PATCH": { "description": "Whether the API allows requesting undefined resources using PATCH method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_POST": { "description": "Whether the API allows requests on undefined resources using the POST method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PUT": { "description": "Whether the API allows requests on undefined resources using the PUT method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_PARAMS": { "description": "Whether the API allows requesting with undefined parameters. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_QUERY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in query string. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_RESOURCES": { "description": "Whether the API allows requests on undefined resources. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_SPEC_PARAMS": { "description": "Whether the API allows requesting undefined resources, but only for specific locations. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "MAX_BODY_SIZE": { "description": "The maximum allowed size of a request body.", "nullable": true, "type": "integer" }, "MAX_DOC_DEPTH": { "description": "The maximum depth of nested data elements allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_ELEMENT_NAME_LENGTH": { "description": "The maximum length of an XML element name or JSON object key name allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_INTEGER_VALUE": { "description": "The maximum integer value allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_JSONXML_ELEMENT": { "description": "The maximum number of XML elements, JSON object keys, or array items allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_STRING_LENGTH": { "description": "The maximum length of any string value in a request body.", "nullable": true, "type": "integer" }, "POSITIVE_SECURITY_ENABLED": { "description": "Whether to enforce the API request body and resource constraints as allowlists in your KSD security policies. Either `1` for enabled security constraints, or `0` for disabled.", "type": "integer", "enum": [ 0, 1 ] }, "POSITIVE_SECURITY_VERSION": { "description": "Whether to create the API with API Protection 2 or above. Either `1`, `2` for enabled API Protection 2, or `null` for the legacy API.", "nullable": true, "type": "integer", "enum": [ 1, 2 ] }, "RESPONSE_RESTRICTIONS_ENABLED": { "description": "When set to `1`, the API allows for responses with undefined parameters in the response body. Otherwise the value is `0`.", "type": "integer", "enum": [ 0, 1 ] } } }, "apiCategoryIds": { "description": "The category identifiers that apply to the endpoint. The value is `null` for uncategorized endpoints.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "apiEndPointHosts": { "description": "The hostnames that may receive traffic for the endpoint. You need at least one hostname before activating the endpoint.", "minItems": 1, "type": "array", "items": { "type": "string" } }, "apiEndPointId": { "description": "The unique identifier for the endpoint.", "nullable": true, "readOnly": true, "type": "integer" }, "apiEndPointLocked": { "description": "Whether the endpoint version is read-only.", "nullable": true, "readOnly": true, "type": "boolean" }, "apiEndPointName": { "description": "The name of the endpoint, unique within the account.", "type": "string" }, "apiEndPointScheme": { "description": "The URL scheme to which the endpoint may respond, either `http`, `https`, or `http/https` for both.", "nullable": true, "type": "string", "enum": [ "http", "https", "http/https" ] }, "apiEndPointVersion": { "description": "The unique identifier for the endpoint version.", "nullable": true, "readOnly": true, "type": "integer" }, "apiGatewayEnabled": { "default": true, "description": "Whether the API Gateway product should be enabled for the endpoint. If `null`, the member is set to `true`.", "nullable": true, "type": "boolean" }, "apiResources": { "description": "The list of resources assigned to the endpoint.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a resource assigned to an endpoint.", "type": "object", "required": [ "apiResourceName", "resourcePath" ], "properties": { "apiResourceClonedFromId": { "description": "For cloned resources, the unique identifier for the source resource.", "nullable": true, "type": "integer" }, "apiResourceId": { "description": "The unique identifier for the resource.", "type": "integer" }, "apiResourceLogicId": { "description": "The unique identifier for the resource across all endpoint versions.", "type": "integer" }, "apiResourceMethodNameLists": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "type": "string" } }, "apiResourceMethods": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "additionalProperties": false, "description": "Contains information about an HTTP method to which a resource may respond.", "type": "object", "required": [ "apiResourceMethod" ], "properties": { "apiParameters": { "description": "The list of parameter objects assigned to the method.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a method's parameter.", "type": "object", "required": [ "apiParameterName", "apiParameterType", "apiParameterRequired", "apiParameterLocation" ], "properties": { "apiChildParameters": { "description": "The collection of child JSON members or XML elements for JSON or XML body type parameters.", "type": "array", "items": { "description": "A further nested endpoint object.", "type": "object", "x-akamai": { "file-path": "schemas/apiParameterDto-nested.yaml" } } }, "apiParamLogicId": { "description": "The unique identifier for the parameter across all endpoint versions.", "readOnly": true, "type": "integer" }, "apiParameterContentType": { "description": "The content type of the parameter. Only applicable for top level body parameters.", "type": "string", "enum": [ "json", "xml", "urlencoded", "json/xml", "any", "none" ] }, "apiParameterId": { "description": "The unique identifier for the parameter.", "readOnly": true, "type": "integer" }, "apiParameterLocation": { "description": "The location of the parameter in an HTTP request, either `query`, `header`, `path`, `cookie`, or `body` for a JSON or XML body type parameter.", "type": "string", "enum": [ "query", "body", "header", "path", "cookie" ] }, "apiParameterName": { "description": "The name of the parameter. If the corresponding `apiParameterLocation` is `path`, ensure that this value matches the parameter name you specified in the `resourcePath`.", "type": "string" }, "apiParameterNotes": { "description": "The description to clarify the parameter's function. If you specify an empty string in the request or omit this member from the object, the JSON response reflects it as `null`.", "nullable": true, "type": "string" }, "apiParameterRequired": { "description": "Specifies whether the API user needs to specify the parameter. If the corresponding `apiParameterLocation` is `path`, set this member to `true`.", "type": "boolean" }, "apiParameterRestriction": { "additionalProperties": false, "description": "Contains information about restrictions and XML representation rules specified for the parameter.", "nullable": true, "type": "object", "properties": { "arrayRestriction": { "additionalProperties": false, "description": "Contains information about array restrictions for array type parameters. Define this object only if you enabled the corresponding `array` member.", "nullable": true, "type": "object", "properties": { "collectionFormat": { "default": "csv", "description": "The format of the array that specifies how you separated array values, either the default `csv` for comma separated values, `ssv` for space separated values, `tsv` for tab separated values, `pipes` for pipe separated values, or `multi` for several parameter instances instead of several values for a single instance.", "type": "string", "enum": [ "csv", "ssv", "tsv", "pipes", "multi" ] }, "maxItems": { "description": "The maximum allowed number of array items.", "type": "integer" }, "minItems": { "description": "The minimum allowed number of array items.", "type": "integer" }, "uniqueItems": { "description": "Whether the array contains only unique items.", "type": "boolean" } } }, "lengthRestriction": { "additionalProperties": false, "description": "Contains information about length restrictions for string type parameters.", "nullable": true, "type": "object", "properties": { "lengthMax": { "description": "The maximum allowed number of characters in the string.", "nullable": true, "type": "integer" }, "lengthMin": { "description": "The minimum allowed number of characters in the string.", "nullable": true, "type": "integer" } } }, "numberRangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for number type parameters.", "nullable": true, "type": "object", "properties": { "numberRangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "number" }, "numberRangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "number" } } }, "rangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for integer type parameters.", "nullable": true, "type": "object", "properties": { "rangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "integer" }, "rangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "integer" } } }, "responseRestriction": { "additionalProperties": false, "type": "object", "properties": { "maxBodySize": { "description": "Limit how large the response body can be before tripping the firewall action. The default is `SIZE_6K`. You can choose `SIZE_8K`, `SIZE_12K`, or `NO_LIMIT`, which allows a response of any size.", "type": "string", "enum": [ "SIZE_6K", "SIZE_8K", "SIZE_12K", "NO_LIMIT" ] }, "statusCodes": { "description": "The response status codes to match to a particular response body format. A `null` or empty value means the response body definition applies to any response body.", "nullable": true, "type": "array", "items": { "type": "integer" } } } }, "xmlConversionRule": { "additionalProperties": false, "description": "Contains information about an XML representation of a JSON-encoded parameter.", "nullable": true, "type": "object", "properties": { "attribute": { "default": false, "description": "Whether the parameter should be represented as an attribute.", "type": "boolean" }, "name": { "description": "The name of the parameter in XML. By default, the XML name is the same as the parameter name specified in the API definition.", "type": "string" }, "namespace": { "description": "The XML namespace.", "type": "string" }, "prefix": { "description": "The prefix for the XML namespace.", "type": "string" }, "wrapped": { "default": false, "description": "Whether the parameter should be wrapped in a parent XML element.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/xmlRestrictionDto.yaml" } } } }, "apiParameterType": { "description": "The data type of the parameter, either `string`, `integer`, `number`, `boolean`, or `json/xml` for JSON or XML objects.", "type": "string", "enum": [ "string", "integer", "number", "boolean", "json/xml" ] }, "apiResourceMethParamId": { "description": "The unique identifier for the parameter's parent method.", "nullable": true, "readOnly": true, "type": "integer" }, "array": { "description": "Whether the parameter can express more than one value. This member is only applicable for `apiChildParameters` that you can specify if the corresponding `apiParameterLocation` is `body` and the `apiParameterType` is `json/xml`. If you enable this, also define the `arrayRestriction` member.", "type": "boolean" }, "pathParamLocationId": { "description": "The index of a segment that includes a path parameter in a resource path. For example, given a path `\\books\\{bookId}`, the `books` segment has index `0`, and the path parameter `{bookId}` has index `1`.", "nullable": true, "type": "number" }, "response": { "description": "Whether the parameter is within a response type.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiParameterDto.yaml" } } }, "apiResourceMethod": { "description": "The core HTTP method to which the resource may respond, either `GET`, `PUT`, `POST`, `DELETE`, `HEAD`, `PATCH`, or `OPTIONS`.", "type": "string", "enum": [ "GET", "PUT", "POST", "DELETE", "HEAD", "PATCH", "OPTIONS" ] }, "apiResourceMethodId": { "description": "The unique identifier for the resource's allowed method.", "nullable": true, "readOnly": true, "type": "integer" }, "apiResourceMethodLogicId": { "description": "The unique identifier for the resource's method across all endpoint versions.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiMethodParametersDto.yaml" } } }, "apiResourceName": { "description": "The name of the resource.", "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the resource.", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the resource.", "type": "string" }, "description": { "description": "The description to clarify the resource's function within the API. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "type": "number" }, "private": { "description": "Whether the resource is private. API consumers can access private resources only if they identify with an appropriate API key.", "type": "boolean" }, "resourcePath": { "description": "The URL path relative to the hostnames on which the resource resides. When entering a resource path, you can use curly brackets (`{}`) to define path parameters (for example, `/path/{pathparam}`). If you decide to do so, ensure that the value of the `apiParameterName` member in the corresponding parameter definition matches the name that you specified in the resource path.", "type": "string" }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the resource.", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the resource.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiResourceMethParamsDto.yaml" } } }, "apiSource": { "description": "Specifies if the API's data comes from `API_DISCOVERY` or was provided by the `USER`.", "nullable": true, "type": "string", "enum": [ "USER", "API_DISCOVERY" ] }, "apiVersionInfo": { "additionalProperties": false, "description": "Contains information about a major API version. This refers to REST API versioning and is a different concept than the endpoint configuration versions you create at Akamai.", "nullable": true, "type": "object", "required": [ "location" ], "properties": { "location": { "description": "The location of the API version value in an incoming request. Either `HEADER`, `BASE_PATH`, or `QUERY` parameter.", "type": "string", "enum": [ "HEADER", "BASE_PATH", "QUERY" ] }, "parameterName": { "description": "The name of the header or query parameter that includes the API version value. This is applicable only if the corresponding `location` member is either `HEADER` or `QUERY`.", "type": "string" }, "value": { "description": "The expected API version value in an incoming request.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiVersionInfo.yaml" } }, "availableActions": { "description": "The collection of available actions that you can perform on the endpoint depending on its versions' activation status. For possible values, see [Endpoint.availableActions values](#enumvalues2).", "minItems": 0, "nullable": true, "readOnly": true, "type": "array", "items": { "type": "string", "enum": [ "DELETE", "CLONE_ENDPOINT", "COMPARE_ENDPOINT", "COMPARE_AAG_SETTINGS", "COMPARE_RAPID_SETTINGS", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING", "ACTIVATE_ON_PRODUCTION", "DEACTIVATE_ON_STAGING", "DEACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "SHOW_ENDPOINT" ] } }, "basePath": { "description": "The URL path that serves as a root prefix for all resources' `resourcePath` values. This is `/` if empty. Don't append a `/` character to the path. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "minLength": 0, "nullable": true, "type": "string" }, "caseSensitive": { "description": "Whether the URLs and parameters within the endpoint are case sensitive.", "nullable": true, "type": "boolean" }, "clonedFromVersion": { "description": "For cloned endpoints, the unique identifier for the source endpoint version.", "nullable": true, "readOnly": true, "type": "integer" }, "consumeType": { "description": "The content type the endpoint exchanges, either `json`, `xml`, `urlencoded`, `json/xml/urlencoded`, `json/urlencoded`, `json/xml`, or `xml/urlencoded` for multi-format APIs, `any`, or `none`. A `null` value is the same as a `none` string.", "nullable": true, "type": "string", "enum": [ "none", "json", "xml", "json/xml", "any", "urlencoded", "json/urlencoded", "xml/urlencoded", "json/xml/urlencoded" ] }, "contractId": { "description": "The unique identifier for the contract with Akamai under which you provisioned security and delivery settings for this API.", "nullable": true, "readOnly": true, "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the endpoint.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "createdBy": { "description": "The identifier for the user who created the endpoint.", "nullable": true, "readOnly": true, "type": "string" }, "description": { "description": "The description of the endpoint. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "nullable": true, "type": "string" }, "discoveredPiiIds": { "description": "The collection of personally identifiable information (PII) in your API parameters discovered by the network.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "endpointHidden": { "description": "Specifies whether the endpoint is hidden. You cannot activate or delete versions of a hidden endpoint. If you want to do so, you first need to reveal the endpoint by running the [Show an endpoint](https://techdocs.akamai.com/api-definitions/reference/post-endpoint-show) operation.", "nullable": true, "readOnly": true, "type": "boolean" }, "groupId": { "description": "The unique identifier for the group in Control Center under which you provisioned security and delivery settings for this API.", "nullable": true, "readOnly": true, "type": "integer" }, "isGraphQL": { "description": "Whether the endpoint uses GraphQL to deliver structured content to clients.", "type": "boolean" }, "lockVersion": { "description": "The identifier for the last modification of an endpoint version, used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "readOnly": true, "type": "integer" }, "matchPathSegmentParam": { "default": true, "description": "Whether or not to include path segment parameters in match criteria, like the `jsessionid` portion of `/ssocookie;jsessionid=434343`.", "nullable": true, "type": "boolean" }, "positiveConstrainsEnabled": { "description": "Specifies whether the KSD firewall policies are enabled for the endpoint.", "nullable": true, "type": "boolean" }, "productionStatus": { "description": "The version activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "productionVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the production network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "protectedByApiKey": { "description": "Whether you enabled API key protection for the endpoint version by making the version private.", "readOnly": true, "type": "boolean" }, "responseConstraintsEnabled": { "description": "Specifies whether response constraints are enforced for the endpoint. Note that if you enable response constraints but don't define the constraints, it behaves as if disabled.", "nullable": true, "readOnly": true, "type": "boolean" }, "securityScheme": { "additionalProperties": false, "description": "Contains information about the key with which users may access the endpoint.", "nullable": true, "type": "object", "properties": { "securitySchemeDetail": { "additionalProperties": false, "description": "Contains information about the location of the API key.", "type": "object", "properties": { "apiKeyLocation": { "description": "The location of the API key in incoming requests, either `cookie`, `header`, or `query` parameter.", "type": "string", "enum": [ "cookie", "header", "query" ] }, "apiKeyName": { "description": "The name of the header, query parameter, or cookie where you located the API key.", "type": "string" } } }, "securitySchemeType": { "description": "The type of security scheme implemented for the endpoint. The only valid value is `apikey`.", "type": "string", "enum": [ "apikey" ] } } }, "source": { "additionalProperties": false, "description": "Contains information about the import file used to create the endpoint.", "nullable": true, "readOnly": true, "type": "object", "properties": { "apiVersion": { "description": "The major version of the API defined in the import file.", "nullable": true, "readOnly": true, "type": "string" }, "specificationVersion": { "description": "The version of the import file's specification.", "example": "3.0.0", "nullable": true, "readOnly": true, "type": "string" }, "type": { "description": "The specification of the import file you uploaded to create the endpoint version. Either `SWAGGER` or `RAML`.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "SWAGGER", "RAML" ] } }, "x-akamai": { "file-path": "schemas/apiEndpointSourceDto.yaml" } }, "stagingStatus": { "description": "The version activation status on the staging network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "stagingVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the staging network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the endpoint.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the endpoint.", "nullable": true, "readOnly": true, "type": "string" }, "versionHidden": { "description": "Specifies whether the endpoint version is hidden. You cannot activate or delete hidden versions. If you want to do so, you first need to reveal the version by running the [Show a version](https://techdocs.akamai.com/api-definitions/reference/post-version-show) operation.", "nullable": true, "readOnly": true, "type": "boolean" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointWithResourceDto-recurse.yaml" } }, "problems": { "description": "The list of problems that occurred during the import, such as schema errors or unsupported property warnings.", "type": "array", "items": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } }, "x-akamai": { "file-path": "schemas/importResult.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] } }, "/endpoints/user-entitlements": { "get": { "description": "Lists user entitlements based on your assigned permissions. It helps you determine if your user identity assigned to the API client can run various other operations to modify data. See [Get started](https://techdocs.akamai.com/api-definitions/reference/api-get-started) for details on setting up the API client with the appropriate level of access. This operation's array values include `API_READ` for read-only access, `API_WRITE` for modifying the existing endpoint versions, `API_VERSIONING` for version management, `API_FEATURES` for access to Kona Site Defender security features, `AAG_FEATURES` for access to delivery features, and `API_PURPOSE` for access to resource purpose settings. Note that the `API_FEATURES` permission is only available for Kona Site Defender customers, and the `API_PURPOSE` permission is for Bot Manager customers.", "operationId": "get-user-entitlements", "summary": "List user entitlements", "tags": [ "Endpoints" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/get-user-entitlements" }, "responses": { "200": { "description": "Set of entitlements.", "content": { "application/json": { "example": [ "API_READ", "API_WRITE", "API_VERSIONING", "API_FEATURES" ], "schema": { "description": "The collection of user entitlements based on the assigned permissions, either `API_READ` for read-only access, `API_WRITE` for edit access, `API_VERSIONING` for access to version management, `API_FEATURES` for access to KSD features, `AAG_FEATURES` for access to delivery settings, or `API_PURPOSE` for access to resource purpose settings.", "type": "array", "items": { "type": "string", "enum": [ "API_READ", "API_WRITE", "API_VERSIONING", "API_FEATURES", "AAG_FEATURES", "API_PURPOSE" ] }, "x-akamai": { "file-path": "schemas/userEntitlementsDto.yaml" } } } } }, "403": { "description": "You don't have access to the endpoint.", "content": { "application/problem+json": { "example": { "detail": "You don't have access to the endpoint.", "instance": "https://problems.luna.akamaiapis.net/api-defintions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "status": 403, "title": "Unauthorized Access/Action", "type": "https://problems.luna.akamaiapis.net/api-defintions/error-types/UNAUTHORIZED" }, "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] } }, "/endpoints/verify-secure-connection": { "post": { "description": "Verifies that provided hostnames are signed with a provided certificate chain. This ensures that edge servers can connect to the hostnames securely. The response is a map of hostnames to connection status values. For the list of available connection status values and their descriptions, see Connection status values. You can use the response information when setting up JWKS in the [Edit JWT settings](https://techdocs.akamai.com/api-definitions/reference/put-jwt-settings) operation.", "operationId": "post-endpoints-verify-secure-connection", "summary": "Verify secure connection", "tags": [ "Endpoints" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/post-endpoints-verify-secure-connection" }, "requestBody": { "required": true, "content": { "application/json": { "example": { "hosts": [ "bookstore.api.akamai.com", "bookstore2.api.akamai.com:8443", "bookstore-premium.api.akamai.com" ], "certChain": { "content": "-----BEGIN CERTIFICATE-----\nMIIFsDCCA5igAwIBAgIJAL7HIonYis0aMA0GCSqGSIb3DQEBCwUAMG0xCzAJBgNV\nBAYTAlVTMREwDwYDVQQIDAhyYXBpZHppazERMA8GA1UEBwwIcmFwaWR6aWsxETAP\nBgNVBAoMCHJhcGlkemlrMREwDwYDVQQLDAhyYXBpZHppazESMBAGA1UEAwwJbG9j\nYWxob3N0MB4XDTE5MDYxMTE0MzI0NloXDTI0MDYwOTE0MzI0NlowbTELMAkGA1UE\nBhMCVVMxETAPBgNVBAgMCHJhcGlkemlrMREwDwYDVQQHDAhyYXBpZHppazERMA8G\nA1UECgwIcmFwaWR6aWsxETAPBgNVBAsMCHJhcGlkemlrMRIwEAYDVQQDDAlsb2Nh\nbGhvc3QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCua7kn9yrkpMMH\nT18yzPFK9LBPk4GzMX0BZfEi2jzKKoc00BtoU/zeS9ewj+2IdIoHa19GE7qnnMux\nkbwm6GNkFt4rzJsQ5ruMSKEqzd4I81HDmS5s2X3o4ZqYWVHAx/rqsh5EIt5qAjq4\njebXeMuhlnkx6jMs+4+ZFfATVvOJ78VnUGUheNTcTGgCvxU7ZZ3+IZubJ6BVdJjC\nwxM30eroVF3efX4HrRXhLtatQtxjX6g2qOUfFiuNNLcgx+4NPqbKpecqyUbopt18\n72MmohKy+YfVEk7OFWLyNPoL237KCznkCGwcQYrXTJzDVAN4NqQEo513nIHEC89F\nX/WomZWwLKVyQpiA1z/jUdYnSzsrPSuA+oP1WmfwVjtxeiwB7Asy/d/5OmOtID+a\nzT41irl1Dp5F6mgAI8CZ1LnzYIlvJAQS9+cpLG9rsyYDRr5+78TebiqP02CrRj9S\nstoam6WG21Z9fJ/aPKJ0ZQHkpXuHDy6RHJro+2wk0coWOyNT0UH6/7kuKHjEGaAG\nBXjElxZ8pJySwYXeeD5gmimQKPE/us1BD2jk0KWYxnwJ+jM4S7RipgTSGsy3Nw42\nvKnKw6FwOIoQqwTkiNF+p7EsjeciO09zLecXxlh3p8WREEZU5NICmGL7xItdD+7I\nVr/tn3XNbuSUu0IqdbhO19JoNXG/UwIDAQABo1MwUTAdBgNVHQ4EFgQUcXwqRZUC\nj9+VsyCfy4oIMN9u1V0wHwYDVR0jBBgwFoAUcXwqRZUCj9+VsyCfy4oIMN9u1V0w\nDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAQgWlrEW+K3fCMO9K\n2TuxY6ruXbdekRv+nw+weXe9+GLlyvEFxktYTE/cN8pHrKOG6F/ea+CCHW4xenVp\npchFI8zPQ8kDEDUUrPaQLbw9kzXKLZwUs+KMZXEZJInxWrr1mWeP+lVSf6f4hwNd\nfvJ8SOPe3/IAE0C79JaclzYE3ErfTlBeouQ09jXbeHc0VvodFp7XcmIMA9e5zIzu\nCU1QOa1LRrn5+TI41BbjKypMl8EE7ZEoyWRj4sMQGfuh9/kmu9ZPINJ79/j22vZG\nVj72jKoIu01qI0esfL7GcE9gd9eWhDRuBYNCAfXWK7xvMwYIxeLgP9LJoeBCVMV+\n7k1AHGpgU4UYveu71VCUIlGIaL1t/DKHi8SqDaKV2eImurPp90eLWAU1V6b+UG5/\n+HoUI8Kd5KgfPprv4AKKOTse04xbFDehvgCpQpcwzoV0h2AQtHhsN65dXfO3XPnR\nYQka7OQcEJS/gLXl7FIcpfkNyvi8ompHVSGTnAEB4qAwazz3FWe6r7qbqty2n0Ye\nNTkylMbBMFpMZrP4BP6YFf3BnkzjFcffHvtVGGUbyebQazc+5HyZycabEhekETeS\nLUOCwFWH68wXI23eU5Z7mKAI+rwhqVuJZPzZFUWfNhj7Pt/aby+7SIZAQ9YCR2lk\n6IUdRIpisR9k478g/4pQYly6yN4=\n-----END CERTIFICATE-----", "name": "bookstore_cert.pem" } }, "schema": { "additionalProperties": false, "description": "Contains the hostnames and certificate chain for secure connection verification.", "type": "object", "required": [ "hosts", "certChain" ], "properties": { "certChain": { "additionalProperties": false, "description": "Contains information about a PEM file with the certificate to use for verification of hostnames included in the corresponding `hosts` member.", "type": "object", "properties": { "content": { "description": "The contents of the PEM file that includes the certificate.", "type": "string" }, "name": { "description": "The name of the PEM file that includes the certificate.", "type": "string" } } }, "hosts": { "description": "The list of HTTPS hostnames to verify. Each hostname must be digitally signed with the certificate chain described in the corresponding `certChain` field. If your hostname uses a different port for secure connections than the default 443, you can indicate it after a colon.", "type": "array", "items": { "type": "string" } } }, "x-akamai": { "file-path": "schemas/verifySecureConnectionDto.yaml" } } } } }, "responses": { "200": { "description": "The map of hostnames to verification statuses.", "content": { "application/json": { "example": { "bookstore-premium.api.akamai.com": { "detail": "The common name in the hostname certificate doesn't correspond to the common name in the hostname. Ensure that both entities refer to the same common name.", "title": "CN_MISMATCH_ERROR" }, "bookstore.api.akamai.com": { "detail": "The hostname is signed with the provided certificate chain and API Gateway can establish a secure connection.", "title": "OK" } }, "schema": { "description": "Contains information about each hostname to verify and its corresponding connection status.", "type": "object", "x-akamai": { "file-path": "schemas/verifySecureConnectionDto-response.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] } }, "/endpoints/{apiEndPointId}": { "delete": { "description": "Removes an endpoint configuration from API Gateway if none of the endpoint's versions are active or pending activation on the staging or production network.", "operationId": "delete-endpoint", "summary": "Delete an endpoint", "tags": [ "Endpoints" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/delete-endpoint" }, "responses": { "204": { "description": "Resource successfully deleted.", "content": { "*/*": {} } }, "403": { "description": "You don't have access to the endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "404": { "description": "The API endpoint is not found.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "in": "path", "name": "apiEndPointId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/apiEndPointId-path.yaml" } } ] }, "/endpoints/{apiEndPointId}/hide": { "post": { "description": "Hides an endpoint and all its versions. You can only hide an endpoint with no active versions on the staging or production network. You can't activate or delete versions of a hidden endpoint. A hidden endpoint appears in the [List endpoints](https://techdocs.akamai.com/api-definitions/reference/get-endpoints) operation's response object by default, or when you set the operation's `show` query parameter to `ONLY_HIDDEN`. Running this operation affects the endpoint listing in the API Definitions user interface.", "operationId": "post-endpoint-hide", "summary": "Hide an endpoint", "tags": [ "Endpoints" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/post-endpoint-hide" }, "responses": { "200": { "description": "Operation succeeded.", "content": { "application/json": { "example": { "akamaiSecurityRestrictions": null, "apiEndPointId": 492375, "apiEndPointLocked": false, "apiEndPointName": "Bookstore API", "apiEndPointScheme": "http/https", "apiGatewayEnabled": true, "basePath": "/bookstore", "caseSensitive": true, "clonedFromVersion": 1, "consumeType": "any", "contractId": "K-0N7RAK71", "createDate": "2019-06-12T13:06:52+0000", "createdBy": "jsmith", "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.", "endpointHidden": false, "graphQL": false, "groupId": 44681, "isGraphQL": false, "lockVersion": 2, "positiveConstrainsEnabled": null, "productionStatus": null, "protectedByApiKey": true, "responseConstraintsEnabled": false, "source": null, "stagingStatus": null, "updateDate": "2019-06-12T13:06:52+0000", "updatedBy": "bookstore_admin", "versionHidden": false, "versionNumber": 1, "apiCategoryIds": [ 2, 7 ], "apiEndPointHosts": [ "bookstore.api.akamai.com" ], "availableActions": [ "DELETE", "CLONE_ENDPOINT", "ACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING" ], "productionVersion": { "lastError": null, "status": null, "timestamp": null, "versionNumber": null }, "securityScheme": { "securitySchemeType": "apikey", "securitySchemeDetail": { "apiKeyLocation": "header", "apiKeyName": "apikey" } }, "stagingVersion": { "lastError": null, "status": null, "timestamp": null, "versionNumber": null }, "apiResources": [ { "apiResourceClonedFromId": null, "apiResourceId": 2926712, "apiResourceLogicId": 118435, "apiResourceName": "books", "createDate": "2019-06-12T13:06:52+0000", "createdBy": "szhang", "description": "A book item within the bookstore API.", "link": null, "lockVersion": 2, "private": false, "resourcePath": "/books/{bookId}", "updateDate": "2019-06-12T13:06:52+0000", "updatedBy": "bookstore_admin", "apiResourceMethods": [ { "apiResourceMethod": "GET", "apiResourceMethodId": 341591, "apiResourceMethodLogicId": 184404, "apiParameters": [ { "apiParamLogicId": 578116, "apiParameterId": 1212945, "apiParameterLocation": "path", "apiParameterName": "bookId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterRestriction": null, "apiParameterType": "string", "apiResourceMethParamId": 494448, "array": false, "pathParamLocationId": null, "response": false, "apiChildParameters": [] } ] }, { "apiResourceMethod": "POST", "apiResourceMethodId": 341592, "apiResourceMethodLogicId": 184405, "apiParameters": [ { "apiParamLogicId": 578117, "apiParameterId": 1212946, "apiParameterLocation": "path", "apiParameterName": "bookId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterType": "string", "apiResourceMethParamId": 494449, "array": false, "pathParamLocationId": null, "response": false, "apiChildParameters": [], "apiParameterRestriction": { "arrayRestriction": null, "numberRangeRestriction": null, "rangeRestriction": null, "xmlConversionRule": null, "lengthRestriction": { "lengthMax": 15, "lengthMin": 3 } } } ] } ] } ] }, "schema": { "additionalProperties": false, "description": "Contains information about an endpoint and its associated resources.", "type": "object", "required": [ "apiEndPointName", "apiEndPointHosts", "groupId", "contractId", "lockVersion" ], "properties": { "akamaiSecurityRestrictions": { "additionalProperties": false, "description": "Contains information about the Kona Site Defender security restrictions that you apply to an API. Note that you should only include these details in your requests if you're a Kona Site Defender customer.", "nullable": true, "type": "object", "properties": { "ALLOW_ONLY_SPEC_UNDEFINED_METHODS": { "description": "Whether the API allows requests on undefined resources, but only for specific methods. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_BODY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in body. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_COOKIE_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in cookies. These booleans override members in the Method object. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_HEADER_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in header. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_DELETE": { "description": "Whether the API allows requests on undefined resources using the DELETE method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_GET": { "description": "Whether the API allows requests on undefined resources using the GET method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_HEAD": { "description": "Whether the API allows requesting undefined resources using HEAD method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_OPTIONS": { "description": "Whether the API allows requesting undefined resources using OPTIONS method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PATCH": { "description": "Whether the API allows requesting undefined resources using PATCH method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_POST": { "description": "Whether the API allows requests on undefined resources using the POST method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PUT": { "description": "Whether the API allows requests on undefined resources using the PUT method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_PARAMS": { "description": "Whether the API allows requesting with undefined parameters. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_QUERY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in query string. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_RESOURCES": { "description": "Whether the API allows requests on undefined resources. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_SPEC_PARAMS": { "description": "Whether the API allows requesting undefined resources, but only for specific locations. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "MAX_BODY_SIZE": { "description": "The maximum allowed size of a request body.", "nullable": true, "type": "integer" }, "MAX_DOC_DEPTH": { "description": "The maximum depth of nested data elements allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_ELEMENT_NAME_LENGTH": { "description": "The maximum length of an XML element name or JSON object key name allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_INTEGER_VALUE": { "description": "The maximum integer value allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_JSONXML_ELEMENT": { "description": "The maximum number of XML elements, JSON object keys, or array items allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_STRING_LENGTH": { "description": "The maximum length of any string value in a request body.", "nullable": true, "type": "integer" }, "POSITIVE_SECURITY_ENABLED": { "description": "Whether to enforce the API request body and resource constraints as allowlists in your KSD security policies. Either `1` for enabled security constraints, or `0` for disabled.", "type": "integer", "enum": [ 0, 1 ] }, "POSITIVE_SECURITY_VERSION": { "description": "Whether to create the API with API Protection 2 or above. Either `1`, `2` for enabled API Protection 2, or `null` for the legacy API.", "nullable": true, "type": "integer", "enum": [ 1, 2 ] }, "RESPONSE_RESTRICTIONS_ENABLED": { "description": "When set to `1`, the API allows for responses with undefined parameters in the response body. Otherwise the value is `0`.", "type": "integer", "enum": [ 0, 1 ] } } }, "apiCategoryIds": { "description": "The category identifiers that apply to the endpoint. The value is `null` for uncategorized endpoints.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "apiEndPointHosts": { "description": "The hostnames that may receive traffic for the endpoint. You need at least one hostname before activating the endpoint.", "minItems": 1, "type": "array", "items": { "type": "string" } }, "apiEndPointId": { "description": "The unique identifier for the endpoint.", "nullable": true, "readOnly": true, "type": "integer" }, "apiEndPointLocked": { "description": "Whether the endpoint version is read-only.", "nullable": true, "readOnly": true, "type": "boolean" }, "apiEndPointName": { "description": "The name of the endpoint, unique within the account.", "type": "string" }, "apiEndPointScheme": { "description": "The URL scheme to which the endpoint may respond, either `http`, `https`, or `http/https` for both.", "nullable": true, "type": "string", "enum": [ "http", "https", "http/https" ] }, "apiEndPointVersion": { "description": "The unique identifier for the endpoint version.", "nullable": true, "readOnly": true, "type": "integer" }, "apiGatewayEnabled": { "default": true, "description": "Whether the API Gateway product should be enabled for the endpoint. If `null`, the member is set to `true`.", "nullable": true, "type": "boolean" }, "apiResources": { "description": "The list of resources assigned to the endpoint.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a resource assigned to an endpoint.", "type": "object", "required": [ "apiResourceName", "resourcePath" ], "properties": { "apiResourceClonedFromId": { "description": "For cloned resources, the unique identifier for the source resource.", "nullable": true, "type": "integer" }, "apiResourceId": { "description": "The unique identifier for the resource.", "type": "integer" }, "apiResourceLogicId": { "description": "The unique identifier for the resource across all endpoint versions.", "type": "integer" }, "apiResourceMethodNameLists": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "type": "string" } }, "apiResourceMethods": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "additionalProperties": false, "description": "Contains information about an HTTP method to which a resource may respond.", "type": "object", "required": [ "apiResourceMethod" ], "properties": { "apiParameters": { "description": "The list of parameter objects assigned to the method.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a method's parameter.", "type": "object", "required": [ "apiParameterName", "apiParameterType", "apiParameterRequired", "apiParameterLocation" ], "properties": { "apiChildParameters": { "description": "The collection of child JSON members or XML elements for JSON or XML body type parameters.", "type": "array", "items": { "description": "A further nested endpoint object.", "type": "object", "x-akamai": { "file-path": "schemas/apiParameterDto-nested.yaml" } } }, "apiParamLogicId": { "description": "The unique identifier for the parameter across all endpoint versions.", "readOnly": true, "type": "integer" }, "apiParameterContentType": { "description": "The content type of the parameter. Only applicable for top level body parameters.", "type": "string", "enum": [ "json", "xml", "urlencoded", "json/xml", "any", "none" ] }, "apiParameterId": { "description": "The unique identifier for the parameter.", "readOnly": true, "type": "integer" }, "apiParameterLocation": { "description": "The location of the parameter in an HTTP request, either `query`, `header`, `path`, `cookie`, or `body` for a JSON or XML body type parameter.", "type": "string", "enum": [ "query", "body", "header", "path", "cookie" ] }, "apiParameterName": { "description": "The name of the parameter. If the corresponding `apiParameterLocation` is `path`, ensure that this value matches the parameter name you specified in the `resourcePath`.", "type": "string" }, "apiParameterNotes": { "description": "The description to clarify the parameter's function. If you specify an empty string in the request or omit this member from the object, the JSON response reflects it as `null`.", "nullable": true, "type": "string" }, "apiParameterRequired": { "description": "Specifies whether the API user needs to specify the parameter. If the corresponding `apiParameterLocation` is `path`, set this member to `true`.", "type": "boolean" }, "apiParameterRestriction": { "additionalProperties": false, "description": "Contains information about restrictions and XML representation rules specified for the parameter.", "nullable": true, "type": "object", "properties": { "arrayRestriction": { "additionalProperties": false, "description": "Contains information about array restrictions for array type parameters. Define this object only if you enabled the corresponding `array` member.", "nullable": true, "type": "object", "properties": { "collectionFormat": { "default": "csv", "description": "The format of the array that specifies how you separated array values, either the default `csv` for comma separated values, `ssv` for space separated values, `tsv` for tab separated values, `pipes` for pipe separated values, or `multi` for several parameter instances instead of several values for a single instance.", "type": "string", "enum": [ "csv", "ssv", "tsv", "pipes", "multi" ] }, "maxItems": { "description": "The maximum allowed number of array items.", "type": "integer" }, "minItems": { "description": "The minimum allowed number of array items.", "type": "integer" }, "uniqueItems": { "description": "Whether the array contains only unique items.", "type": "boolean" } } }, "lengthRestriction": { "additionalProperties": false, "description": "Contains information about length restrictions for string type parameters.", "nullable": true, "type": "object", "properties": { "lengthMax": { "description": "The maximum allowed number of characters in the string.", "nullable": true, "type": "integer" }, "lengthMin": { "description": "The minimum allowed number of characters in the string.", "nullable": true, "type": "integer" } } }, "numberRangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for number type parameters.", "nullable": true, "type": "object", "properties": { "numberRangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "number" }, "numberRangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "number" } } }, "rangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for integer type parameters.", "nullable": true, "type": "object", "properties": { "rangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "integer" }, "rangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "integer" } } }, "responseRestriction": { "additionalProperties": false, "type": "object", "properties": { "maxBodySize": { "description": "Limit how large the response body can be before tripping the firewall action. The default is `SIZE_6K`. You can choose `SIZE_8K`, `SIZE_12K`, or `NO_LIMIT`, which allows a response of any size.", "type": "string", "enum": [ "SIZE_6K", "SIZE_8K", "SIZE_12K", "NO_LIMIT" ] }, "statusCodes": { "description": "The response status codes to match to a particular response body format. A `null` or empty value means the response body definition applies to any response body.", "nullable": true, "type": "array", "items": { "type": "integer" } } } }, "xmlConversionRule": { "additionalProperties": false, "description": "Contains information about an XML representation of a JSON-encoded parameter.", "nullable": true, "type": "object", "properties": { "attribute": { "default": false, "description": "Whether the parameter should be represented as an attribute.", "type": "boolean" }, "name": { "description": "The name of the parameter in XML. By default, the XML name is the same as the parameter name specified in the API definition.", "type": "string" }, "namespace": { "description": "The XML namespace.", "type": "string" }, "prefix": { "description": "The prefix for the XML namespace.", "type": "string" }, "wrapped": { "default": false, "description": "Whether the parameter should be wrapped in a parent XML element.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/xmlRestrictionDto.yaml" } } } }, "apiParameterType": { "description": "The data type of the parameter, either `string`, `integer`, `number`, `boolean`, or `json/xml` for JSON or XML objects.", "type": "string", "enum": [ "string", "integer", "number", "boolean", "json/xml" ] }, "apiResourceMethParamId": { "description": "The unique identifier for the parameter's parent method.", "nullable": true, "readOnly": true, "type": "integer" }, "array": { "description": "Whether the parameter can express more than one value. This member is only applicable for `apiChildParameters` that you can specify if the corresponding `apiParameterLocation` is `body` and the `apiParameterType` is `json/xml`. If you enable this, also define the `arrayRestriction` member.", "type": "boolean" }, "pathParamLocationId": { "description": "The index of a segment that includes a path parameter in a resource path. For example, given a path `\\books\\{bookId}`, the `books` segment has index `0`, and the path parameter `{bookId}` has index `1`.", "nullable": true, "type": "number" }, "response": { "description": "Whether the parameter is within a response type.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiParameterDto.yaml" } } }, "apiResourceMethod": { "description": "The core HTTP method to which the resource may respond, either `GET`, `PUT`, `POST`, `DELETE`, `HEAD`, `PATCH`, or `OPTIONS`.", "type": "string", "enum": [ "GET", "PUT", "POST", "DELETE", "HEAD", "PATCH", "OPTIONS" ] }, "apiResourceMethodId": { "description": "The unique identifier for the resource's allowed method.", "nullable": true, "readOnly": true, "type": "integer" }, "apiResourceMethodLogicId": { "description": "The unique identifier for the resource's method across all endpoint versions.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiMethodParametersDto.yaml" } } }, "apiResourceName": { "description": "The name of the resource.", "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the resource.", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the resource.", "type": "string" }, "description": { "description": "The description to clarify the resource's function within the API. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "type": "number" }, "private": { "description": "Whether the resource is private. API consumers can access private resources only if they identify with an appropriate API key.", "type": "boolean" }, "resourcePath": { "description": "The URL path relative to the hostnames on which the resource resides. When entering a resource path, you can use curly brackets (`{}`) to define path parameters (for example, `/path/{pathparam}`). If you decide to do so, ensure that the value of the `apiParameterName` member in the corresponding parameter definition matches the name that you specified in the resource path.", "type": "string" }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the resource.", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the resource.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiResourceMethParamsDto.yaml" } } }, "apiSource": { "description": "Specifies if the API's data comes from `API_DISCOVERY` or was provided by the `USER`.", "nullable": true, "type": "string", "enum": [ "USER", "API_DISCOVERY" ] }, "apiVersionInfo": { "additionalProperties": false, "description": "Contains information about a major API version. This refers to REST API versioning and is a different concept than the endpoint configuration versions you create at Akamai.", "nullable": true, "type": "object", "required": [ "location" ], "properties": { "location": { "description": "The location of the API version value in an incoming request. Either `HEADER`, `BASE_PATH`, or `QUERY` parameter.", "type": "string", "enum": [ "HEADER", "BASE_PATH", "QUERY" ] }, "parameterName": { "description": "The name of the header or query parameter that includes the API version value. This is applicable only if the corresponding `location` member is either `HEADER` or `QUERY`.", "type": "string" }, "value": { "description": "The expected API version value in an incoming request.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiVersionInfo.yaml" } }, "availableActions": { "description": "The collection of available actions that you can perform on the endpoint depending on its versions' activation status. For possible values, see [Endpoint.availableActions values](#enumvalues2).", "minItems": 0, "nullable": true, "readOnly": true, "type": "array", "items": { "type": "string", "enum": [ "DELETE", "CLONE_ENDPOINT", "COMPARE_ENDPOINT", "COMPARE_AAG_SETTINGS", "COMPARE_RAPID_SETTINGS", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING", "ACTIVATE_ON_PRODUCTION", "DEACTIVATE_ON_STAGING", "DEACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "SHOW_ENDPOINT" ] } }, "basePath": { "description": "The URL path that serves as a root prefix for all resources' `resourcePath` values. This is `/` if empty. Don't append a `/` character to the path. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "minLength": 0, "nullable": true, "type": "string" }, "caseSensitive": { "description": "Whether the URLs and parameters within the endpoint are case sensitive.", "nullable": true, "type": "boolean" }, "clonedFromVersion": { "description": "For cloned endpoints, the unique identifier for the source endpoint version.", "nullable": true, "readOnly": true, "type": "integer" }, "consumeType": { "description": "The content type the endpoint exchanges, either `json`, `xml`, `urlencoded`, `json/xml/urlencoded`, `json/urlencoded`, `json/xml`, or `xml/urlencoded` for multi-format APIs, `any`, or `none`. A `null` value is the same as a `none` string.", "nullable": true, "type": "string", "enum": [ "none", "json", "xml", "json/xml", "any", "urlencoded", "json/urlencoded", "xml/urlencoded", "json/xml/urlencoded" ] }, "contractId": { "description": "The unique identifier for the contract with Akamai under which you provisioned security and delivery settings for this API.", "nullable": true, "readOnly": true, "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the endpoint.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "createdBy": { "description": "The identifier for the user who created the endpoint.", "nullable": true, "readOnly": true, "type": "string" }, "description": { "description": "The description of the endpoint. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "nullable": true, "type": "string" }, "discoveredPiiIds": { "description": "The collection of personally identifiable information (PII) in your API parameters discovered by the network.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "endpointHidden": { "description": "Specifies whether the endpoint is hidden. You cannot activate or delete versions of a hidden endpoint. If you want to do so, you first need to reveal the endpoint by running the [Show an endpoint](https://techdocs.akamai.com/api-definitions/reference/post-endpoint-show) operation.", "nullable": true, "readOnly": true, "type": "boolean" }, "groupId": { "description": "The unique identifier for the group in Control Center under which you provisioned security and delivery settings for this API.", "nullable": true, "readOnly": true, "type": "integer" }, "isGraphQL": { "description": "Whether the endpoint uses GraphQL to deliver structured content to clients.", "type": "boolean" }, "lockVersion": { "description": "The identifier for the last modification of an endpoint version, used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "readOnly": true, "type": "integer" }, "matchPathSegmentParam": { "default": true, "description": "Whether or not to include path segment parameters in match criteria, like the `jsessionid` portion of `/ssocookie;jsessionid=434343`.", "nullable": true, "type": "boolean" }, "positiveConstrainsEnabled": { "description": "Specifies whether the KSD firewall policies are enabled for the endpoint.", "nullable": true, "type": "boolean" }, "productionStatus": { "description": "The version activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "productionVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the production network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "protectedByApiKey": { "description": "Whether you enabled API key protection for the endpoint version by making the version private.", "readOnly": true, "type": "boolean" }, "responseConstraintsEnabled": { "description": "Specifies whether response constraints are enforced for the endpoint. Note that if you enable response constraints but don't define the constraints, it behaves as if disabled.", "nullable": true, "readOnly": true, "type": "boolean" }, "securityScheme": { "additionalProperties": false, "description": "Contains information about the key with which users may access the endpoint.", "nullable": true, "type": "object", "properties": { "securitySchemeDetail": { "additionalProperties": false, "description": "Contains information about the location of the API key.", "type": "object", "properties": { "apiKeyLocation": { "description": "The location of the API key in incoming requests, either `cookie`, `header`, or `query` parameter.", "type": "string", "enum": [ "cookie", "header", "query" ] }, "apiKeyName": { "description": "The name of the header, query parameter, or cookie where you located the API key.", "type": "string" } } }, "securitySchemeType": { "description": "The type of security scheme implemented for the endpoint. The only valid value is `apikey`.", "type": "string", "enum": [ "apikey" ] } } }, "source": { "additionalProperties": false, "description": "Contains information about the import file used to create the endpoint.", "nullable": true, "readOnly": true, "type": "object", "properties": { "apiVersion": { "description": "The major version of the API defined in the import file.", "nullable": true, "readOnly": true, "type": "string" }, "specificationVersion": { "description": "The version of the import file's specification.", "example": "3.0.0", "nullable": true, "readOnly": true, "type": "string" }, "type": { "description": "The specification of the import file you uploaded to create the endpoint version. Either `SWAGGER` or `RAML`.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "SWAGGER", "RAML" ] } }, "x-akamai": { "file-path": "schemas/apiEndpointSourceDto.yaml" } }, "stagingStatus": { "description": "The version activation status on the staging network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "stagingVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the staging network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the endpoint.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the endpoint.", "nullable": true, "readOnly": true, "type": "string" }, "versionHidden": { "description": "Specifies whether the endpoint version is hidden. You cannot activate or delete hidden versions. If you want to do so, you first need to reveal the version by running the [Show a version](https://techdocs.akamai.com/api-definitions/reference/post-version-show) operation.", "nullable": true, "readOnly": true, "type": "boolean" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointWithResourceDto-recurse.yaml" } } } } }, "400": { "description": "Invalid data input.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "403": { "description": "You don't have access to the endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "in": "path", "name": "apiEndPointId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/apiEndPointId-path.yaml" } } ] }, "/endpoints/{apiEndPointId}/show": { "post": { "description": "Reveals a hidden endpoint and all its versions. A revealed endpoint appears in the [List endpoints](https://techdocs.akamai.com/api-definitions/reference/get-endpoints) operation's response object by default, or when you set the operation's `show` query parameter to `ONLY_VISIBLE`. Running this operation affects the endpoint listing in the API Definitions user interface.", "operationId": "post-endpoint-show", "summary": "Show an endpoint", "tags": [ "Endpoints" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/post-endpoint-show" }, "responses": { "200": { "description": "Operation succeeded.", "content": { "application/json": { "example": { "akamaiSecurityRestrictions": null, "apiEndPointId": 492375, "apiEndPointLocked": false, "apiEndPointName": "Bookstore API", "apiEndPointScheme": "http/https", "apiGatewayEnabled": true, "basePath": "/bookstore", "caseSensitive": true, "clonedFromVersion": 1, "consumeType": "any", "contractId": "C-0N7RAC7", "createDate": "2019-06-12T13:06:52+0000", "createdBy": "adevi", "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.", "endpointHidden": false, "graphQL": false, "groupId": 44681, "isGraphQL": false, "lockVersion": 2, "positiveConstrainsEnabled": null, "productionStatus": null, "protectedByApiKey": true, "responseConstraintsEnabled": false, "source": null, "stagingStatus": null, "updateDate": "2019-06-12T13:06:52+0000", "updatedBy": "bookstore_admin", "versionHidden": false, "versionNumber": 1, "apiCategoryIds": [ 2, 7 ], "apiEndPointHosts": [ "bookstore.api.akamai.com" ], "availableActions": [ "DELETE", "CLONE_ENDPOINT", "ACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING" ], "productionVersion": { "lastError": null, "status": null, "timestamp": null, "versionNumber": null }, "securityScheme": { "securitySchemeType": "apikey", "securitySchemeDetail": { "apiKeyLocation": "header", "apiKeyName": "apikey" } }, "stagingVersion": { "lastError": null, "status": null, "timestamp": null, "versionNumber": null }, "apiResources": [ { "apiResourceClonedFromId": null, "apiResourceId": 2926712, "apiResourceLogicId": 118435, "apiResourceName": "books", "createDate": "2019-06-12T13:06:52+0000", "createdBy": "jperez", "description": "A book item within the bookstore API.", "link": null, "lockVersion": 2, "private": false, "resourcePath": "/books/{bookId}", "updateDate": "2019-06-12T13:06:52+0000", "updatedBy": "bookstore_admin", "apiResourceMethods": [ { "apiResourceMethod": "GET", "apiResourceMethodId": 341591, "apiResourceMethodLogicId": 184404, "apiParameters": [ { "apiParamLogicId": 578116, "apiParameterId": 1212945, "apiParameterLocation": "path", "apiParameterName": "bookId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterRestriction": null, "apiParameterType": "string", "apiResourceMethParamId": 494448, "array": false, "pathParamLocationId": null, "response": false, "apiChildParameters": [] } ] }, { "apiResourceMethod": "POST", "apiResourceMethodId": 341592, "apiResourceMethodLogicId": 184405, "apiParameters": [ { "apiParamLogicId": 578117, "apiParameterId": 1212946, "apiParameterLocation": "path", "apiParameterName": "bookId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterType": "string", "apiResourceMethParamId": 494449, "array": false, "pathParamLocationId": null, "response": false, "apiChildParameters": [], "apiParameterRestriction": { "arrayRestriction": null, "numberRangeRestriction": null, "rangeRestriction": null, "xmlConversionRule": null, "lengthRestriction": { "lengthMax": 15, "lengthMin": 3 } } } ] } ] } ] }, "schema": { "additionalProperties": false, "description": "Contains information about an endpoint and its associated resources.", "type": "object", "required": [ "apiEndPointName", "apiEndPointHosts", "groupId", "contractId", "lockVersion" ], "properties": { "akamaiSecurityRestrictions": { "additionalProperties": false, "description": "Contains information about the Kona Site Defender security restrictions that you apply to an API. Note that you should only include these details in your requests if you're a Kona Site Defender customer.", "nullable": true, "type": "object", "properties": { "ALLOW_ONLY_SPEC_UNDEFINED_METHODS": { "description": "Whether the API allows requests on undefined resources, but only for specific methods. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_BODY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in body. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_COOKIE_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in cookies. These booleans override members in the Method object. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_HEADER_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in header. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_DELETE": { "description": "Whether the API allows requests on undefined resources using the DELETE method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_GET": { "description": "Whether the API allows requests on undefined resources using the GET method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_HEAD": { "description": "Whether the API allows requesting undefined resources using HEAD method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_OPTIONS": { "description": "Whether the API allows requesting undefined resources using OPTIONS method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PATCH": { "description": "Whether the API allows requesting undefined resources using PATCH method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_POST": { "description": "Whether the API allows requests on undefined resources using the POST method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PUT": { "description": "Whether the API allows requests on undefined resources using the PUT method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_PARAMS": { "description": "Whether the API allows requesting with undefined parameters. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_QUERY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in query string. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_RESOURCES": { "description": "Whether the API allows requests on undefined resources. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_SPEC_PARAMS": { "description": "Whether the API allows requesting undefined resources, but only for specific locations. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "MAX_BODY_SIZE": { "description": "The maximum allowed size of a request body.", "nullable": true, "type": "integer" }, "MAX_DOC_DEPTH": { "description": "The maximum depth of nested data elements allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_ELEMENT_NAME_LENGTH": { "description": "The maximum length of an XML element name or JSON object key name allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_INTEGER_VALUE": { "description": "The maximum integer value allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_JSONXML_ELEMENT": { "description": "The maximum number of XML elements, JSON object keys, or array items allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_STRING_LENGTH": { "description": "The maximum length of any string value in a request body.", "nullable": true, "type": "integer" }, "POSITIVE_SECURITY_ENABLED": { "description": "Whether to enforce the API request body and resource constraints as allowlists in your KSD security policies. Either `1` for enabled security constraints, or `0` for disabled.", "type": "integer", "enum": [ 0, 1 ] }, "POSITIVE_SECURITY_VERSION": { "description": "Whether to create the API with API Protection 2 or above. Either `1`, `2` for enabled API Protection 2, or `null` for the legacy API.", "nullable": true, "type": "integer", "enum": [ 1, 2 ] }, "RESPONSE_RESTRICTIONS_ENABLED": { "description": "When set to `1`, the API allows for responses with undefined parameters in the response body. Otherwise the value is `0`.", "type": "integer", "enum": [ 0, 1 ] } } }, "apiCategoryIds": { "description": "The category identifiers that apply to the endpoint. The value is `null` for uncategorized endpoints.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "apiEndPointHosts": { "description": "The hostnames that may receive traffic for the endpoint. You need at least one hostname before activating the endpoint.", "minItems": 1, "type": "array", "items": { "type": "string" } }, "apiEndPointId": { "description": "The unique identifier for the endpoint.", "nullable": true, "readOnly": true, "type": "integer" }, "apiEndPointLocked": { "description": "Whether the endpoint version is read-only.", "nullable": true, "readOnly": true, "type": "boolean" }, "apiEndPointName": { "description": "The name of the endpoint, unique within the account.", "type": "string" }, "apiEndPointScheme": { "description": "The URL scheme to which the endpoint may respond, either `http`, `https`, or `http/https` for both.", "nullable": true, "type": "string", "enum": [ "http", "https", "http/https" ] }, "apiEndPointVersion": { "description": "The unique identifier for the endpoint version.", "nullable": true, "readOnly": true, "type": "integer" }, "apiGatewayEnabled": { "default": true, "description": "Whether the API Gateway product should be enabled for the endpoint. If `null`, the member is set to `true`.", "nullable": true, "type": "boolean" }, "apiResources": { "description": "The list of resources assigned to the endpoint.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a resource assigned to an endpoint.", "type": "object", "required": [ "apiResourceName", "resourcePath" ], "properties": { "apiResourceClonedFromId": { "description": "For cloned resources, the unique identifier for the source resource.", "nullable": true, "type": "integer" }, "apiResourceId": { "description": "The unique identifier for the resource.", "type": "integer" }, "apiResourceLogicId": { "description": "The unique identifier for the resource across all endpoint versions.", "type": "integer" }, "apiResourceMethodNameLists": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "type": "string" } }, "apiResourceMethods": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "additionalProperties": false, "description": "Contains information about an HTTP method to which a resource may respond.", "type": "object", "required": [ "apiResourceMethod" ], "properties": { "apiParameters": { "description": "The list of parameter objects assigned to the method.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a method's parameter.", "type": "object", "required": [ "apiParameterName", "apiParameterType", "apiParameterRequired", "apiParameterLocation" ], "properties": { "apiChildParameters": { "description": "The collection of child JSON members or XML elements for JSON or XML body type parameters.", "type": "array", "items": { "description": "A further nested endpoint object.", "type": "object", "x-akamai": { "file-path": "schemas/apiParameterDto-nested.yaml" } } }, "apiParamLogicId": { "description": "The unique identifier for the parameter across all endpoint versions.", "readOnly": true, "type": "integer" }, "apiParameterContentType": { "description": "The content type of the parameter. Only applicable for top level body parameters.", "type": "string", "enum": [ "json", "xml", "urlencoded", "json/xml", "any", "none" ] }, "apiParameterId": { "description": "The unique identifier for the parameter.", "readOnly": true, "type": "integer" }, "apiParameterLocation": { "description": "The location of the parameter in an HTTP request, either `query`, `header`, `path`, `cookie`, or `body` for a JSON or XML body type parameter.", "type": "string", "enum": [ "query", "body", "header", "path", "cookie" ] }, "apiParameterName": { "description": "The name of the parameter. If the corresponding `apiParameterLocation` is `path`, ensure that this value matches the parameter name you specified in the `resourcePath`.", "type": "string" }, "apiParameterNotes": { "description": "The description to clarify the parameter's function. If you specify an empty string in the request or omit this member from the object, the JSON response reflects it as `null`.", "nullable": true, "type": "string" }, "apiParameterRequired": { "description": "Specifies whether the API user needs to specify the parameter. If the corresponding `apiParameterLocation` is `path`, set this member to `true`.", "type": "boolean" }, "apiParameterRestriction": { "additionalProperties": false, "description": "Contains information about restrictions and XML representation rules specified for the parameter.", "nullable": true, "type": "object", "properties": { "arrayRestriction": { "additionalProperties": false, "description": "Contains information about array restrictions for array type parameters. Define this object only if you enabled the corresponding `array` member.", "nullable": true, "type": "object", "properties": { "collectionFormat": { "default": "csv", "description": "The format of the array that specifies how you separated array values, either the default `csv` for comma separated values, `ssv` for space separated values, `tsv` for tab separated values, `pipes` for pipe separated values, or `multi` for several parameter instances instead of several values for a single instance.", "type": "string", "enum": [ "csv", "ssv", "tsv", "pipes", "multi" ] }, "maxItems": { "description": "The maximum allowed number of array items.", "type": "integer" }, "minItems": { "description": "The minimum allowed number of array items.", "type": "integer" }, "uniqueItems": { "description": "Whether the array contains only unique items.", "type": "boolean" } } }, "lengthRestriction": { "additionalProperties": false, "description": "Contains information about length restrictions for string type parameters.", "nullable": true, "type": "object", "properties": { "lengthMax": { "description": "The maximum allowed number of characters in the string.", "nullable": true, "type": "integer" }, "lengthMin": { "description": "The minimum allowed number of characters in the string.", "nullable": true, "type": "integer" } } }, "numberRangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for number type parameters.", "nullable": true, "type": "object", "properties": { "numberRangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "number" }, "numberRangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "number" } } }, "rangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for integer type parameters.", "nullable": true, "type": "object", "properties": { "rangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "integer" }, "rangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "integer" } } }, "responseRestriction": { "additionalProperties": false, "type": "object", "properties": { "maxBodySize": { "description": "Limit how large the response body can be before tripping the firewall action. The default is `SIZE_6K`. You can choose `SIZE_8K`, `SIZE_12K`, or `NO_LIMIT`, which allows a response of any size.", "type": "string", "enum": [ "SIZE_6K", "SIZE_8K", "SIZE_12K", "NO_LIMIT" ] }, "statusCodes": { "description": "The response status codes to match to a particular response body format. A `null` or empty value means the response body definition applies to any response body.", "nullable": true, "type": "array", "items": { "type": "integer" } } } }, "xmlConversionRule": { "additionalProperties": false, "description": "Contains information about an XML representation of a JSON-encoded parameter.", "nullable": true, "type": "object", "properties": { "attribute": { "default": false, "description": "Whether the parameter should be represented as an attribute.", "type": "boolean" }, "name": { "description": "The name of the parameter in XML. By default, the XML name is the same as the parameter name specified in the API definition.", "type": "string" }, "namespace": { "description": "The XML namespace.", "type": "string" }, "prefix": { "description": "The prefix for the XML namespace.", "type": "string" }, "wrapped": { "default": false, "description": "Whether the parameter should be wrapped in a parent XML element.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/xmlRestrictionDto.yaml" } } } }, "apiParameterType": { "description": "The data type of the parameter, either `string`, `integer`, `number`, `boolean`, or `json/xml` for JSON or XML objects.", "type": "string", "enum": [ "string", "integer", "number", "boolean", "json/xml" ] }, "apiResourceMethParamId": { "description": "The unique identifier for the parameter's parent method.", "nullable": true, "readOnly": true, "type": "integer" }, "array": { "description": "Whether the parameter can express more than one value. This member is only applicable for `apiChildParameters` that you can specify if the corresponding `apiParameterLocation` is `body` and the `apiParameterType` is `json/xml`. If you enable this, also define the `arrayRestriction` member.", "type": "boolean" }, "pathParamLocationId": { "description": "The index of a segment that includes a path parameter in a resource path. For example, given a path `\\books\\{bookId}`, the `books` segment has index `0`, and the path parameter `{bookId}` has index `1`.", "nullable": true, "type": "number" }, "response": { "description": "Whether the parameter is within a response type.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiParameterDto.yaml" } } }, "apiResourceMethod": { "description": "The core HTTP method to which the resource may respond, either `GET`, `PUT`, `POST`, `DELETE`, `HEAD`, `PATCH`, or `OPTIONS`.", "type": "string", "enum": [ "GET", "PUT", "POST", "DELETE", "HEAD", "PATCH", "OPTIONS" ] }, "apiResourceMethodId": { "description": "The unique identifier for the resource's allowed method.", "nullable": true, "readOnly": true, "type": "integer" }, "apiResourceMethodLogicId": { "description": "The unique identifier for the resource's method across all endpoint versions.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiMethodParametersDto.yaml" } } }, "apiResourceName": { "description": "The name of the resource.", "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the resource.", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the resource.", "type": "string" }, "description": { "description": "The description to clarify the resource's function within the API. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "type": "number" }, "private": { "description": "Whether the resource is private. API consumers can access private resources only if they identify with an appropriate API key.", "type": "boolean" }, "resourcePath": { "description": "The URL path relative to the hostnames on which the resource resides. When entering a resource path, you can use curly brackets (`{}`) to define path parameters (for example, `/path/{pathparam}`). If you decide to do so, ensure that the value of the `apiParameterName` member in the corresponding parameter definition matches the name that you specified in the resource path.", "type": "string" }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the resource.", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the resource.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiResourceMethParamsDto.yaml" } } }, "apiSource": { "description": "Specifies if the API's data comes from `API_DISCOVERY` or was provided by the `USER`.", "nullable": true, "type": "string", "enum": [ "USER", "API_DISCOVERY" ] }, "apiVersionInfo": { "additionalProperties": false, "description": "Contains information about a major API version. This refers to REST API versioning and is a different concept than the endpoint configuration versions you create at Akamai.", "nullable": true, "type": "object", "required": [ "location" ], "properties": { "location": { "description": "The location of the API version value in an incoming request. Either `HEADER`, `BASE_PATH`, or `QUERY` parameter.", "type": "string", "enum": [ "HEADER", "BASE_PATH", "QUERY" ] }, "parameterName": { "description": "The name of the header or query parameter that includes the API version value. This is applicable only if the corresponding `location` member is either `HEADER` or `QUERY`.", "type": "string" }, "value": { "description": "The expected API version value in an incoming request.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiVersionInfo.yaml" } }, "availableActions": { "description": "The collection of available actions that you can perform on the endpoint depending on its versions' activation status. For possible values, see [Endpoint.availableActions values](#enumvalues2).", "minItems": 0, "nullable": true, "readOnly": true, "type": "array", "items": { "type": "string", "enum": [ "DELETE", "CLONE_ENDPOINT", "COMPARE_ENDPOINT", "COMPARE_AAG_SETTINGS", "COMPARE_RAPID_SETTINGS", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING", "ACTIVATE_ON_PRODUCTION", "DEACTIVATE_ON_STAGING", "DEACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "SHOW_ENDPOINT" ] } }, "basePath": { "description": "The URL path that serves as a root prefix for all resources' `resourcePath` values. This is `/` if empty. Don't append a `/` character to the path. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "minLength": 0, "nullable": true, "type": "string" }, "caseSensitive": { "description": "Whether the URLs and parameters within the endpoint are case sensitive.", "nullable": true, "type": "boolean" }, "clonedFromVersion": { "description": "For cloned endpoints, the unique identifier for the source endpoint version.", "nullable": true, "readOnly": true, "type": "integer" }, "consumeType": { "description": "The content type the endpoint exchanges, either `json`, `xml`, `urlencoded`, `json/xml/urlencoded`, `json/urlencoded`, `json/xml`, or `xml/urlencoded` for multi-format APIs, `any`, or `none`. A `null` value is the same as a `none` string.", "nullable": true, "type": "string", "enum": [ "none", "json", "xml", "json/xml", "any", "urlencoded", "json/urlencoded", "xml/urlencoded", "json/xml/urlencoded" ] }, "contractId": { "description": "The unique identifier for the contract with Akamai under which you provisioned security and delivery settings for this API.", "nullable": true, "readOnly": true, "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the endpoint.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "createdBy": { "description": "The identifier for the user who created the endpoint.", "nullable": true, "readOnly": true, "type": "string" }, "description": { "description": "The description of the endpoint. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "nullable": true, "type": "string" }, "discoveredPiiIds": { "description": "The collection of personally identifiable information (PII) in your API parameters discovered by the network.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "endpointHidden": { "description": "Specifies whether the endpoint is hidden. You cannot activate or delete versions of a hidden endpoint. If you want to do so, you first need to reveal the endpoint by running the [Show an endpoint](https://techdocs.akamai.com/api-definitions/reference/post-endpoint-show) operation.", "nullable": true, "readOnly": true, "type": "boolean" }, "groupId": { "description": "The unique identifier for the group in Control Center under which you provisioned security and delivery settings for this API.", "nullable": true, "readOnly": true, "type": "integer" }, "isGraphQL": { "description": "Whether the endpoint uses GraphQL to deliver structured content to clients.", "type": "boolean" }, "lockVersion": { "description": "The identifier for the last modification of an endpoint version, used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "readOnly": true, "type": "integer" }, "matchPathSegmentParam": { "default": true, "description": "Whether or not to include path segment parameters in match criteria, like the `jsessionid` portion of `/ssocookie;jsessionid=434343`.", "nullable": true, "type": "boolean" }, "positiveConstrainsEnabled": { "description": "Specifies whether the KSD firewall policies are enabled for the endpoint.", "nullable": true, "type": "boolean" }, "productionStatus": { "description": "The version activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "productionVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the production network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "protectedByApiKey": { "description": "Whether you enabled API key protection for the endpoint version by making the version private.", "readOnly": true, "type": "boolean" }, "responseConstraintsEnabled": { "description": "Specifies whether response constraints are enforced for the endpoint. Note that if you enable response constraints but don't define the constraints, it behaves as if disabled.", "nullable": true, "readOnly": true, "type": "boolean" }, "securityScheme": { "additionalProperties": false, "description": "Contains information about the key with which users may access the endpoint.", "nullable": true, "type": "object", "properties": { "securitySchemeDetail": { "additionalProperties": false, "description": "Contains information about the location of the API key.", "type": "object", "properties": { "apiKeyLocation": { "description": "The location of the API key in incoming requests, either `cookie`, `header`, or `query` parameter.", "type": "string", "enum": [ "cookie", "header", "query" ] }, "apiKeyName": { "description": "The name of the header, query parameter, or cookie where you located the API key.", "type": "string" } } }, "securitySchemeType": { "description": "The type of security scheme implemented for the endpoint. The only valid value is `apikey`.", "type": "string", "enum": [ "apikey" ] } } }, "source": { "additionalProperties": false, "description": "Contains information about the import file used to create the endpoint.", "nullable": true, "readOnly": true, "type": "object", "properties": { "apiVersion": { "description": "The major version of the API defined in the import file.", "nullable": true, "readOnly": true, "type": "string" }, "specificationVersion": { "description": "The version of the import file's specification.", "example": "3.0.0", "nullable": true, "readOnly": true, "type": "string" }, "type": { "description": "The specification of the import file you uploaded to create the endpoint version. Either `SWAGGER` or `RAML`.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "SWAGGER", "RAML" ] } }, "x-akamai": { "file-path": "schemas/apiEndpointSourceDto.yaml" } }, "stagingStatus": { "description": "The version activation status on the staging network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "stagingVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the staging network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the endpoint.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the endpoint.", "nullable": true, "readOnly": true, "type": "string" }, "versionHidden": { "description": "Specifies whether the endpoint version is hidden. You cannot activate or delete hidden versions. If you want to do so, you first need to reveal the version by running the [Show a version](https://techdocs.akamai.com/api-definitions/reference/post-version-show) operation.", "nullable": true, "readOnly": true, "type": "boolean" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointWithResourceDto-recurse.yaml" } } } } }, "400": { "description": "Invalid data input.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "403": { "description": "You don't have access to the endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "in": "path", "name": "apiEndPointId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/apiEndPointId-path.yaml" } } ] }, "/endpoints/{apiEndPointId}/versions": { "get": { "description": "Returns versions of an endpoint, with results optionally paginated, sorted, and filtered.", "operationId": "get-endpoint-versions", "summary": "List versions", "tags": [ "Versions" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/get-endpoint-versions" }, "responses": { "200": { "description": "Lists API endpoint versions you have access to in this account.", "content": { "application/json": { "example": { "apiEndPointId": 492375, "apiEndPointName": "Bookstore API", "page": 1, "pageSize": 25, "totalSize": 50, "apiVersions": [ { "apiEndPointVersionId": 599104, "basePath": "/bookstore2", "basedOn": 1, "createDate": "2019-06-17T07:22:29+0000", "createdBy": "mrossi", "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.", "hidden": false, "isVersionLocked": false, "lockVersion": 2, "productionDate": null, "productionStatus": null, "stagingDate": null, "stagingStatus": null, "updateDate": "2019-06-17T07:23:11+0000", "updatedBy": "bookstore_admin", "versionNumber": 2, "availableActions": [ "ACTIVATE_ON_PRODUCTION", "VIEW_AAG_SETTINGS", "COMPARE_RAPID_SETTINGS", "EDIT_AAG_SETTINGS", "HIDE_VERSION", "CLONE_VERSION", "EDIT_ENDPOINT_DEFINITION", "COMPARE_ENDPOINT", "RESOURCES", "ACTIVATE_ON_STAGING", "DELETE" ] }, { "apiEndPointVersionId": 574127, "basePath": "/bookstore", "basedOn": null, "createDate": "2019-06-12T13:06:52+0000", "createdBy": "szhang", "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.", "hidden": false, "isVersionLocked": false, "lockVersion": 0, "productionDate": null, "productionStatus": null, "stagingDate": null, "stagingStatus": null, "updateDate": "2019-06-12T13:06:52+0000", "updatedBy": "bookstore_admin", "versionNumber": 1, "availableActions": [ "VIEW_AAG_SETTINGS", "EDIT_AAG_SETTINGS", "EDIT_ENDPOINT_DEFINITION", "DELETE", "ACTIVATE_ON_STAGING", "COMPARE_RAPID_SETTINGS", "ACTIVATE_ON_PRODUCTION", "COMPARE_ENDPOINT", "CLONE_VERSION", "RESOURCES", "HIDE_VERSION" ] } ] }, "schema": { "additionalProperties": false, "description": "Contains information about all versions of an endpoint.", "type": "object", "required": [ "apiEndpointId" ], "properties": { "apiEndPointId": { "description": "The unique identifier for the endpoint.", "type": "integer" }, "apiEndPointName": { "description": "The name of the endpoint, unique within the account.", "type": "string" }, "apiVersions": { "description": "Contains information about each endpoint version within a collection.", "type": "array", "items": { "additionalProperties": false, "type": "object", "required": [ "lockVersion", "versionNumber" ], "properties": { "apiEndPointVersionId": { "description": "The unique identifier for the endpoint version.", "type": "integer" }, "availableActions": { "description": "The collection of available actions that you can perform on the version depending on the version's activation status.", "type": "array", "items": { "type": "string", "enum": [ "CLONE_ENDPOINT", "CLONE_VERSION", "DELETE", "RESOURCES", "COMPARE_ENDPOINT", "COMPARE_AAG_SETTINGS", "COMPARE_RESOURCE_PURPOSES", "COMPARE_RAPID_SETTINGS", "VIEW_AAG_SETTINGS", "EDIT_AAG_SETTINGS", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING", "ACTIVATE_ON_PRODUCTION", "DEACTIVATE_ON_STAGING", "DEACTIVATE_ON_PRODUCTION", "HIDE_VERSION", "SHOW_VERSION" ] } }, "basePath": { "description": "The URL path that serves as a root prefix for all resources' `resourcePath` values. This is `/` if empty. Don't append a `/` character to the path. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "type": "string" }, "basedOn": { "description": "For cloned versions, the unique identifier for the source version.", "nullable": true, "type": "integer" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the endpoint version.", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the version.", "type": "string" }, "description": { "description": "The description of the endpoint version. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "type": "string" }, "hidden": { "description": "Indicates whether the endpoint version is hidden. You cannot activate or delete hidden versions. If you want to do so, you first need to reveal the version by running the [Show a version](https://techdocs.akamai.com/api-definitions/reference/post-version-show) operation.", "type": "boolean" }, "isVersionLocked": { "description": "Whether the endpoint version is read-only.", "type": "boolean" }, "lockVersion": { "description": "The identifier for the last modification of an endpoint version, used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "type": "integer" }, "productionDate": { "description": "The ISO 6801 timestamp indicating when you activated the endpoint version on the production network.", "format": "date-time", "nullable": true, "type": "string" }, "productionStatus": { "description": "The version activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "stagingDate": { "description": "The ISO 6801 timestamp indicating when you activated the endpoint version on the staging network.", "format": "date-time", "nullable": true, "type": "string" }, "stagingStatus": { "description": "The version activation status on the staging network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the endpoint version.", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the version.", "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "type": "integer" } } } }, "page": { "default": 1, "description": "The number of the current page with results.", "minimum": 1, "type": "integer" }, "pageSize": { "default": 2147483647, "description": "The number of endpoint versions on each page with results.", "type": "integer" }, "totalSize": { "description": "The total number of endpoint versions available in the returned set.", "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionListDto.yaml" } } } } }, "403": { "description": "You don't have permission to retrieve the API endpoint versions list.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "The page number index, starting at the default value of `1`.", "example": "{{page}}", "in": "query", "name": "page", "schema": { "default": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/page-query.yaml" } }, { "description": "The number of endpoint versions on each page of results.", "example": "{{pageSize}}", "in": "query", "name": "pageSize", "schema": { "default": 2147483647, "example": 50, "type": "integer" } }, { "description": "__Enum__ The field to sort endpoint versions by.", "example": "{{sortBy}}", "in": "query", "name": "sortBy", "schema": { "default": "versionNumber", "example": "updateDate", "type": "string", "enum": [ "versionNumber", "description", "updateDate", "updatedBy", "basedOn", "stagingStatus", "productionStatus" ] } }, { "description": "__Enum__ The sort order, either `asc` for ascending or the default `desc` for descending.", "example": "{{sortOrder}}", "in": "query", "name": "sortOrder", "schema": { "default": "desc", "example": "desc", "type": "string", "enum": [ "asc", "desc" ] } }, { "description": "__Enum__ The type of endpoint versions to return based on their visibility status. By default the API returns `ALL` endpoint version. You can instead decide to return `ONLY_VISIBLE` endpoint versions, or `ONLY_HIDDEN` endpoint versions. Run the [Show a version](https://techdocs.akamai.com/api-definitions/reference/post-version-show) and [Hide a version](https://techdocs.akamai.com/api-definitions/reference/post-endpoint-version-hide) operations to control which endpoint versions are listed.", "example": "{{show}}", "in": "query", "name": "show", "schema": { "default": "ALL", "example": "ONLY_VISIBLE", "type": "string", "enum": [ "ALL", "ONLY_VISIBLE", "ONLY_HIDDEN" ] } }, { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "in": "path", "name": "apiEndPointId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/apiEndPointId-path.yaml" } } ] }, "/endpoints/{apiEndPointId}/versions/{versionNumber}": { "get": { "description": "Returns a summary for a specific endpoint version. The summary is for purely informational purposes, and you shouldn't use this operation's response in the corresponding [Edit a version](https://techdocs.akamai.com/api-definitions/reference/put-endpoint-version) PUT request. For the PUT request, use the response object of [Get a version](https://techdocs.akamai.com/api-definitions/reference/get-endpoint-version-resource).", "operationId": "get-endpoint-version", "summary": "Get a version summary", "tags": [ "Versions" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/get-endpoint-version" }, "responses": { "200": { "description": "API Endpoint version summary defined by API Endpoint ID and Version Number.", "content": { "application/json": { "example": { "apiVersionId": 574127, "basePath": "/bookstore", "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.", "hidden": false, "productionStatus": "ACTIVE", "source": null, "stagingStatus": "ACTIVE", "apiCategoryIds": [], "apiEndPointHosts": [ "bookstore.api.akamai.com" ], "apiResourceNames": [ "book", "user", "magazine" ], "availableActions": [ "ACTIVATE_ON_STAGING", "VIEW_AAG_SETTINGS", "ACTIVATE_ON_PRODUCTION", "COMPARE_RAPID_SETTINGS", "DELETE", "HIDE_VERSION", "CLONE_VERSION", "EDIT_AAG_SETTINGS", "EDIT_ENDPOINT_DEFINITION", "RESOURCES", "COMPARE_ENDPOINT" ] }, "schema": { "additionalProperties": false, "description": "Contains summary information about a specific endpoint version.", "type": "object", "properties": { "apiCategoryIds": { "description": "The category identifiers that apply to the endpoint. The value is `null` for uncategorized endpoints.", "type": "array", "items": { "type": "integer" } }, "apiEndPointHosts": { "description": "The hostname strings that may receive traffic for the endpoint.", "type": "array", "items": { "type": "string" } }, "apiEndPointVersionId": { "description": "The unique identifier for the endpoint version.", "type": "integer" }, "apiResourceNames": { "description": "The collection of resource names defined for the endpoint. The value is `null` for endpoints without any resources.", "type": "array", "items": { "type": "string" } }, "availableActions": { "description": "The collection of available actions that you can perform on the version depending on the version's activation status.", "type": "array", "items": { "type": "string", "enum": [ "CLONE_ENDPOINT", "CLONE_VERSION", "DELETE", "RESOURCES", "COMPARE_ENDPOINT", "COMPARE_AAG_SETTINGS", "COMPARE_RAPID_SETTINGS", "COMPARE_RESOURCE_PURPOSES", "VIEW_AAG_SETTINGS", "EDIT_AAG_SETTINGS", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING", "ACTIVATE_ON_PRODUCTION", "DEACTIVATE_ON_STAGING", "DEACTIVATE_ON_PRODUCTION", "HIDE_VERSION", "SHOW_VERSION" ] } }, "basePath": { "description": "The URL path that serves as a root prefix for all resources' `resourcePath` values. This is `/` if empty. Do not append a `/` character to the path. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "type": "string" }, "description": { "description": "The description of the endpoint.", "type": "string" }, "productionStatus": { "description": "The version activation status in the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated in this network.", "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "stagingStatus": { "description": "The version activation status in the staging network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated in this network.", "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] } }, "x-akamai": { "file-path": "schemas/apiVersionSummaryDto.yaml" } } } } }, "403": { "description": "You don't have access to the endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "404": { "description": "The API endpoint is not found.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "put": { "description": "Updates details about an endpoint version that has never been activated on the staging or production network. You can configure the endpoint's security settings and other top-level metadata, or modify the endpoint's entire set of resources as an alternative to separate calls to [Edit a resource](https://techdocs.akamai.com/api-definitions/reference/put-version-resource). Note that the corresponding [Get a version](https://techdocs.akamai.com/api-definitions/reference/get-endpoint-version-resource) operation you need to run to GET the data uses a different URL.", "operationId": "put-endpoint-version", "summary": "Edit a version", "tags": [ "Versions" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/put-endpoint-version" }, "requestBody": { "required": true, "content": { "application/json": { "example": { "akamaiSecurityRestrictions": null, "apiEndPointId": 492375, "apiEndPointLocked": false, "apiEndPointName": "Bookstore API", "apiEndPointScheme": "http/https", "apiEndPointVersion": 574127, "apiGatewayEnabled": true, "basePath": "/bookstore", "caseSensitive": true, "clonedFromVersion": null, "consumeType": "any", "contractId": "K-0N7RAK7", "createDate": "2019-06-12T13:06:52+0000", "createdBy": "alfulani", "description": "An API for bookstore users allowing them to retrieve book items and modify existing items.", "endpointHidden": false, "graphQL": false, "groupId": 44681, "isGraphQL": false, "lockVersion": 0, "positiveConstrainsEnabled": true, "productionStatus": null, "protectedByApiKey": true, "responseConstraintsEnabled": false, "source": null, "stagingStatus": null, "updateDate": "2019-06-12T13:06:55+0000", "updatedBy": "bookstore_admin", "versionHidden": false, "versionNumber": 1, "apiCategoryIds": [], "apiEndPointHosts": [ "bookstore.api.akamai.com" ], "availableActions": [ "DELETE", "CLONE_ENDPOINT", "ACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING" ], "discoveredPiiIds": [ 455976 ], "productionVersion": { "lastError": null, "status": null, "timestamp": null, "versionNumber": null }, "securityScheme": { "securitySchemeType": "apikey", "securitySchemeDetail": { "apiKeyLocation": "header", "apiKeyName": "apikey" } }, "stagingVersion": { "lastError": null, "status": null, "timestamp": null, "versionNumber": null }, "apiResources": [ { "apiResourceClonedFromId": null, "apiResourceId": 2926712, "apiResourceLogicId": 118435, "apiResourceName": "books", "createDate": "2019-06-12T13:06:52+0000", "createdBy": "szhang", "description": "A book item within the bookstore API.", "link": null, "lockVersion": 0, "private": false, "resourcePath": "/books/{bookId}", "updateDate": "2019-06-12T13:06:52+0000", "updatedBy": "bookstore_admin", "apiResourceMethods": [ { "apiResourceMethod": "GET", "apiResourceMethodId": 341591, "apiResourceMethodLogicId": 184404, "apiParameters": [ { "apiParamLogicId": 578116, "apiParameterId": 1212945, "apiParameterLocation": "path", "apiParameterName": "bookId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterRestriction": null, "apiParameterType": "string", "apiResourceMethParamId": 494448, "array": false, "pathParamLocationId": 3, "response": false, "apiChildParameters": [] } ] }, { "apiResourceMethod": "POST", "apiResourceMethodId": 341592, "apiResourceMethodLogicId": 184405, "apiParameters": [ { "apiParamLogicId": 578117, "apiParameterId": 1212946, "apiParameterLocation": "path", "apiParameterName": "bookId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterType": "string", "apiResourceMethParamId": 494449, "array": false, "pathParamLocationId": 3, "response": false, "apiChildParameters": [], "apiParameterRestriction": { "apiParameterType": "json", "array": true, "numberRangeRestriction": null, "rangeRestriction": null, "xmlConversionRule": null, "arrayRestriction": { "maxItems": 200, "minItems": 100 }, "responseRestriction": { "maxBodySize": "SIZE_6K", "statusCodes": [ 200, 201 ] } } } ] } ] } ] }, "schema": { "additionalProperties": false, "description": "Contains information about an endpoint and its associated resources.", "type": "object", "required": [ "apiEndPointName", "apiEndPointHosts", "groupId", "contractId", "lockVersion" ], "properties": { "akamaiSecurityRestrictions": { "additionalProperties": false, "description": "Contains information about the Kona Site Defender security restrictions that you apply to an API. Note that you should only include these details in your requests if you're a Kona Site Defender customer.", "nullable": true, "type": "object", "properties": { "ALLOW_ONLY_SPEC_UNDEFINED_METHODS": { "description": "Whether the API allows requests on undefined resources, but only for specific methods. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_BODY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in body. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_COOKIE_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in cookies. These booleans override members in the Method object. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_HEADER_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in header. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_DELETE": { "description": "Whether the API allows requests on undefined resources using the DELETE method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_GET": { "description": "Whether the API allows requests on undefined resources using the GET method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_HEAD": { "description": "Whether the API allows requesting undefined resources using HEAD method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_OPTIONS": { "description": "Whether the API allows requesting undefined resources using OPTIONS method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PATCH": { "description": "Whether the API allows requesting undefined resources using PATCH method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_POST": { "description": "Whether the API allows requests on undefined resources using the POST method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PUT": { "description": "Whether the API allows requests on undefined resources using the PUT method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_PARAMS": { "description": "Whether the API allows requesting with undefined parameters. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_QUERY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in query string. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_RESOURCES": { "description": "Whether the API allows requests on undefined resources. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_SPEC_PARAMS": { "description": "Whether the API allows requesting undefined resources, but only for specific locations. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "MAX_BODY_SIZE": { "description": "The maximum allowed size of a request body.", "nullable": true, "type": "integer" }, "MAX_DOC_DEPTH": { "description": "The maximum depth of nested data elements allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_ELEMENT_NAME_LENGTH": { "description": "The maximum length of an XML element name or JSON object key name allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_INTEGER_VALUE": { "description": "The maximum integer value allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_JSONXML_ELEMENT": { "description": "The maximum number of XML elements, JSON object keys, or array items allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_STRING_LENGTH": { "description": "The maximum length of any string value in a request body.", "nullable": true, "type": "integer" }, "POSITIVE_SECURITY_ENABLED": { "description": "Whether to enforce the API request body and resource constraints as allowlists in your KSD security policies. Either `1` for enabled security constraints, or `0` for disabled.", "type": "integer", "enum": [ 0, 1 ] }, "POSITIVE_SECURITY_VERSION": { "description": "Whether to create the API with API Protection 2 or above. Either `1`, `2` for enabled API Protection 2, or `null` for the legacy API.", "nullable": true, "type": "integer", "enum": [ 1, 2 ] }, "RESPONSE_RESTRICTIONS_ENABLED": { "description": "When set to `1`, the API allows for responses with undefined parameters in the response body. Otherwise the value is `0`.", "type": "integer", "enum": [ 0, 1 ] } } }, "apiCategoryIds": { "description": "The category identifiers that apply to the endpoint. The value is `null` for uncategorized endpoints.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "apiEndPointHosts": { "description": "The hostnames that may receive traffic for the endpoint. You need at least one hostname before activating the endpoint.", "minItems": 1, "type": "array", "items": { "type": "string" } }, "apiEndPointId": { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "nullable": true, "readOnly": true, "type": "integer" }, "apiEndPointLocked": { "description": "Whether the endpoint version is read-only.", "example": "{{apiEndPointLocked}}", "nullable": true, "readOnly": true, "type": "boolean" }, "apiEndPointName": { "description": "The name of the endpoint, unique within the account.", "example": "{{apiEndPointName}}", "type": "string" }, "apiEndPointScheme": { "description": "The URL scheme to which the endpoint may respond, either `http`, `https`, or `http/https` for both.", "example": "{{apiEndPointScheme}}", "nullable": true, "type": "string", "enum": [ "http", "https", "http/https" ] }, "apiEndPointVersion": { "description": "The unique identifier for the endpoint version.", "example": "{{apiEndPointVersion}}", "nullable": true, "readOnly": true, "type": "integer" }, "apiGatewayEnabled": { "default": true, "description": "Whether the API Gateway product should be enabled for the endpoint. If `null`, the member is set to `true`.", "example": "{{apiGatewayEnabled}}", "nullable": true, "type": "boolean" }, "apiResources": { "description": "The list of resources assigned to the endpoint.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a resource assigned to an endpoint.", "type": "object", "required": [ "apiResourceName", "resourcePath" ], "properties": { "apiResourceClonedFromId": { "description": "For cloned resources, the unique identifier for the source resource.", "nullable": true, "type": "integer" }, "apiResourceId": { "description": "The unique identifier for the resource.", "type": "integer" }, "apiResourceLogicId": { "description": "The unique identifier for the resource across all endpoint versions.", "type": "integer" }, "apiResourceMethodNameLists": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "type": "string" } }, "apiResourceMethods": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "additionalProperties": false, "description": "Contains information about an HTTP method to which a resource may respond.", "type": "object", "required": [ "apiResourceMethod" ], "properties": { "apiParameters": { "description": "The list of parameter objects assigned to the method.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a method's parameter.", "type": "object", "required": [ "apiParameterName", "apiParameterType", "apiParameterRequired", "apiParameterLocation" ], "properties": { "apiChildParameters": { "description": "The collection of child JSON members or XML elements for JSON or XML body type parameters.", "type": "array", "items": { "description": "A further nested endpoint object.", "type": "object", "x-akamai": { "file-path": "schemas/apiParameterDto-nested.yaml" } } }, "apiParamLogicId": { "description": "The unique identifier for the parameter across all endpoint versions.", "readOnly": true, "type": "integer" }, "apiParameterContentType": { "description": "The content type of the parameter. Only applicable for top level body parameters.", "type": "string", "enum": [ "json", "xml", "urlencoded", "json/xml", "any", "none" ] }, "apiParameterId": { "description": "The unique identifier for the parameter.", "readOnly": true, "type": "integer" }, "apiParameterLocation": { "description": "The location of the parameter in an HTTP request, either `query`, `header`, `path`, `cookie`, or `body` for a JSON or XML body type parameter.", "type": "string", "enum": [ "query", "body", "header", "path", "cookie" ] }, "apiParameterName": { "description": "The name of the parameter. If the corresponding `apiParameterLocation` is `path`, ensure that this value matches the parameter name you specified in the `resourcePath`.", "type": "string" }, "apiParameterNotes": { "description": "The description to clarify the parameter's function. If you specify an empty string in the request or omit this member from the object, the JSON response reflects it as `null`.", "nullable": true, "type": "string" }, "apiParameterRequired": { "description": "Specifies whether the API user needs to specify the parameter. If the corresponding `apiParameterLocation` is `path`, set this member to `true`.", "type": "boolean" }, "apiParameterRestriction": { "additionalProperties": false, "description": "Contains information about restrictions and XML representation rules specified for the parameter.", "nullable": true, "type": "object", "properties": { "arrayRestriction": { "additionalProperties": false, "description": "Contains information about array restrictions for array type parameters. Define this object only if you enabled the corresponding `array` member.", "nullable": true, "type": "object", "properties": { "collectionFormat": { "default": "csv", "description": "The format of the array that specifies how you separated array values, either the default `csv` for comma separated values, `ssv` for space separated values, `tsv` for tab separated values, `pipes` for pipe separated values, or `multi` for several parameter instances instead of several values for a single instance.", "type": "string", "enum": [ "csv", "ssv", "tsv", "pipes", "multi" ] }, "maxItems": { "description": "The maximum allowed number of array items.", "type": "integer" }, "minItems": { "description": "The minimum allowed number of array items.", "type": "integer" }, "uniqueItems": { "description": "Whether the array contains only unique items.", "type": "boolean" } } }, "lengthRestriction": { "additionalProperties": false, "description": "Contains information about length restrictions for string type parameters.", "nullable": true, "type": "object", "properties": { "lengthMax": { "description": "The maximum allowed number of characters in the string.", "nullable": true, "type": "integer" }, "lengthMin": { "description": "The minimum allowed number of characters in the string.", "nullable": true, "type": "integer" } } }, "numberRangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for number type parameters.", "nullable": true, "type": "object", "properties": { "numberRangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "number" }, "numberRangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "number" } } }, "rangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for integer type parameters.", "nullable": true, "type": "object", "properties": { "rangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "integer" }, "rangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "integer" } } }, "responseRestriction": { "additionalProperties": false, "type": "object", "properties": { "maxBodySize": { "description": "Limit how large the response body can be before tripping the firewall action. The default is `SIZE_6K`. You can choose `SIZE_8K`, `SIZE_12K`, or `NO_LIMIT`, which allows a response of any size.", "type": "string", "enum": [ "SIZE_6K", "SIZE_8K", "SIZE_12K", "NO_LIMIT" ] }, "statusCodes": { "description": "The response status codes to match to a particular response body format. A `null` or empty value means the response body definition applies to any response body.", "nullable": true, "type": "array", "items": { "type": "integer" } } } }, "xmlConversionRule": { "additionalProperties": false, "description": "Contains information about an XML representation of a JSON-encoded parameter.", "nullable": true, "type": "object", "properties": { "attribute": { "default": false, "description": "Whether the parameter should be represented as an attribute.", "type": "boolean" }, "name": { "description": "The name of the parameter in XML. By default, the XML name is the same as the parameter name specified in the API definition.", "type": "string" }, "namespace": { "description": "The XML namespace.", "type": "string" }, "prefix": { "description": "The prefix for the XML namespace.", "type": "string" }, "wrapped": { "default": false, "description": "Whether the parameter should be wrapped in a parent XML element.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/xmlRestrictionDto.yaml" } } } }, "apiParameterType": { "description": "The data type of the parameter, either `string`, `integer`, `number`, `boolean`, or `json/xml` for JSON or XML objects.", "type": "string", "enum": [ "string", "integer", "number", "boolean", "json/xml" ] }, "apiResourceMethParamId": { "description": "The unique identifier for the parameter's parent method.", "nullable": true, "readOnly": true, "type": "integer" }, "array": { "description": "Whether the parameter can express more than one value. This member is only applicable for `apiChildParameters` that you can specify if the corresponding `apiParameterLocation` is `body` and the `apiParameterType` is `json/xml`. If you enable this, also define the `arrayRestriction` member.", "type": "boolean" }, "pathParamLocationId": { "description": "The index of a segment that includes a path parameter in a resource path. For example, given a path `\\books\\{bookId}`, the `books` segment has index `0`, and the path parameter `{bookId}` has index `1`.", "nullable": true, "type": "number" }, "response": { "description": "Whether the parameter is within a response type.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiParameterDto.yaml" } } }, "apiResourceMethod": { "description": "The core HTTP method to which the resource may respond, either `GET`, `PUT`, `POST`, `DELETE`, `HEAD`, `PATCH`, or `OPTIONS`.", "type": "string", "enum": [ "GET", "PUT", "POST", "DELETE", "HEAD", "PATCH", "OPTIONS" ] }, "apiResourceMethodId": { "description": "The unique identifier for the resource's allowed method.", "nullable": true, "readOnly": true, "type": "integer" }, "apiResourceMethodLogicId": { "description": "The unique identifier for the resource's method across all endpoint versions.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiMethodParametersDto.yaml" } } }, "apiResourceName": { "description": "The name of the resource.", "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the resource.", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the resource.", "type": "string" }, "description": { "description": "The description to clarify the resource's function within the API. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "type": "number" }, "private": { "description": "Whether the resource is private. API consumers can access private resources only if they identify with an appropriate API key.", "type": "boolean" }, "resourcePath": { "description": "The URL path relative to the hostnames on which the resource resides. When entering a resource path, you can use curly brackets (`{}`) to define path parameters (for example, `/path/{pathparam}`). If you decide to do so, ensure that the value of the `apiParameterName` member in the corresponding parameter definition matches the name that you specified in the resource path.", "type": "string" }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the resource.", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the resource.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiResourceMethParamsDto.yaml" } } }, "apiSource": { "description": "Specifies if the API's data comes from `API_DISCOVERY` or was provided by the `USER`.", "example": "{{apiSource}}", "nullable": true, "type": "string", "enum": [ "USER", "API_DISCOVERY" ] }, "apiVersionInfo": { "additionalProperties": false, "description": "Contains information about a major API version. This refers to REST API versioning and is a different concept than the endpoint configuration versions you create at Akamai.", "nullable": true, "type": "object", "required": [ "location" ], "properties": { "location": { "description": "The location of the API version value in an incoming request. Either `HEADER`, `BASE_PATH`, or `QUERY` parameter.", "type": "string", "enum": [ "HEADER", "BASE_PATH", "QUERY" ] }, "parameterName": { "description": "The name of the header or query parameter that includes the API version value. This is applicable only if the corresponding `location` member is either `HEADER` or `QUERY`.", "type": "string" }, "value": { "description": "The expected API version value in an incoming request.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiVersionInfo.yaml" } }, "availableActions": { "description": "The collection of available actions that you can perform on the endpoint depending on its versions' activation status. For possible values, see [Endpoint.availableActions values](#enumvalues2).", "minItems": 0, "nullable": true, "readOnly": true, "type": "array", "items": { "type": "string", "enum": [ "DELETE", "CLONE_ENDPOINT", "COMPARE_ENDPOINT", "COMPARE_AAG_SETTINGS", "COMPARE_RAPID_SETTINGS", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING", "ACTIVATE_ON_PRODUCTION", "DEACTIVATE_ON_STAGING", "DEACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "SHOW_ENDPOINT" ] } }, "basePath": { "description": "The URL path that serves as a root prefix for all resources' `resourcePath` values. This is `/` if empty. Don't append a `/` character to the path. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "example": "{{basePath}}", "minLength": 0, "nullable": true, "type": "string" }, "caseSensitive": { "description": "Whether the URLs and parameters within the endpoint are case sensitive.", "example": "{{caseSensitive}}", "nullable": true, "type": "boolean" }, "clonedFromVersion": { "description": "For cloned endpoints, the unique identifier for the source endpoint version.", "example": "{{clonedFromVersion}}", "nullable": true, "readOnly": true, "type": "integer" }, "consumeType": { "description": "The content type the endpoint exchanges, either `json`, `xml`, `urlencoded`, `json/xml/urlencoded`, `json/urlencoded`, `json/xml`, or `xml/urlencoded` for multi-format APIs, `any`, or `none`. A `null` value is the same as a `none` string.", "example": "{{consumeType}}", "nullable": true, "type": "string", "enum": [ "none", "json", "xml", "json/xml", "any", "urlencoded", "json/urlencoded", "xml/urlencoded", "json/xml/urlencoded" ] }, "contractId": { "description": "The unique identifier for the contract with Akamai under which you provisioned security and delivery settings for this API.", "example": "{{contractId}}", "nullable": true, "readOnly": true, "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the endpoint.", "example": "{{createDate}}", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "createdBy": { "description": "The identifier for the user who created the endpoint.", "example": "{{createdBy}}", "nullable": true, "readOnly": true, "type": "string" }, "description": { "description": "The description of the endpoint. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "example": "{{description}}", "nullable": true, "type": "string" }, "discoveredPiiIds": { "description": "The collection of personally identifiable information (PII) in your API parameters discovered by the network.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "endpointHidden": { "description": "Specifies whether the endpoint is hidden. You cannot activate or delete versions of a hidden endpoint. If you want to do so, you first need to reveal the endpoint by running the [Show an endpoint](https://techdocs.akamai.com/api-definitions/reference/post-endpoint-show) operation.", "example": "{{endpointHidden}}", "nullable": true, "readOnly": true, "type": "boolean" }, "groupId": { "description": "The unique identifier for the group in Control Center under which you provisioned security and delivery settings for this API.", "example": "{{groupId}}", "nullable": true, "readOnly": true, "type": "integer" }, "isGraphQL": { "description": "Whether the endpoint uses GraphQL to deliver structured content to clients.", "example": "{{isGraphQL}}", "type": "boolean" }, "lockVersion": { "description": "The identifier for the last modification of an endpoint version, used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "example": "{{lockVersion}}", "readOnly": true, "type": "integer" }, "matchPathSegmentParam": { "default": true, "description": "Whether or not to include path segment parameters in match criteria, like the `jsessionid` portion of `/ssocookie;jsessionid=434343`.", "example": "{{matchPathSegmentParam}}", "nullable": true, "type": "boolean" }, "positiveConstrainsEnabled": { "description": "Specifies whether the KSD firewall policies are enabled for the endpoint.", "example": "{{positiveConstrainsEnabled}}", "nullable": true, "type": "boolean" }, "productionStatus": { "description": "The version activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "example": "{{productionStatus}}", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "productionVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the production network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "protectedByApiKey": { "description": "Whether you enabled API key protection for the endpoint version by making the version private.", "example": "{{protectedByApiKey}}", "readOnly": true, "type": "boolean" }, "responseConstraintsEnabled": { "description": "Specifies whether response constraints are enforced for the endpoint. Note that if you enable response constraints but don't define the constraints, it behaves as if disabled.", "example": "{{responseConstraintsEnabled}}", "nullable": true, "readOnly": true, "type": "boolean" }, "securityScheme": { "additionalProperties": false, "description": "Contains information about the key with which users may access the endpoint.", "nullable": true, "type": "object", "properties": { "securitySchemeDetail": { "additionalProperties": false, "description": "Contains information about the location of the API key.", "type": "object", "properties": { "apiKeyLocation": { "description": "The location of the API key in incoming requests, either `cookie`, `header`, or `query` parameter.", "type": "string", "enum": [ "cookie", "header", "query" ] }, "apiKeyName": { "description": "The name of the header, query parameter, or cookie where you located the API key.", "type": "string" } } }, "securitySchemeType": { "description": "The type of security scheme implemented for the endpoint. The only valid value is `apikey`.", "type": "string", "enum": [ "apikey" ] } } }, "source": { "additionalProperties": false, "description": "Contains information about the import file used to create the endpoint.", "nullable": true, "readOnly": true, "type": "object", "properties": { "apiVersion": { "description": "The major version of the API defined in the import file.", "nullable": true, "readOnly": true, "type": "string" }, "specificationVersion": { "description": "The version of the import file's specification.", "example": "3.0.0", "nullable": true, "readOnly": true, "type": "string" }, "type": { "description": "The specification of the import file you uploaded to create the endpoint version. Either `SWAGGER` or `RAML`.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "SWAGGER", "RAML" ] } }, "x-akamai": { "file-path": "schemas/apiEndpointSourceDto.yaml" } }, "stagingStatus": { "description": "The version activation status on the staging network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "example": "{{stagingStatus}}", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "stagingVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the staging network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the endpoint.", "example": "{{updateDate}}", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the endpoint.", "example": "{{updatedBy}}", "nullable": true, "readOnly": true, "type": "string" }, "versionHidden": { "description": "Specifies whether the endpoint version is hidden. You cannot activate or delete hidden versions. If you want to do so, you first need to reveal the version by running the [Show a version](https://techdocs.akamai.com/api-definitions/reference/post-version-show) operation.", "example": "{{versionHidden}}", "nullable": true, "readOnly": true, "type": "boolean" }, "versionNumber": { "description": "The endpoint version number.", "example": "{{versionNumber}}", "nullable": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointWithResourceDto-recurse.yaml" } } } } }, "responses": { "200": { "description": "Modify details of an endpoint version.", "content": { "application/json": { "example": { "akamaiSecurityRestrictions": null, "apiEndPointId": 492375, "apiEndPointLocked": false, "apiEndPointName": "Bookstore API", "apiEndPointScheme": "http/https", "apiEndPointVersion": 574127, "apiGatewayEnabled": true, "basePath": "/bookstore", "caseSensitive": true, "clonedFromVersion": null, "consumeType": "any", "contractId": "K-0N7RAK71", "createDate": "2019-06-12T13:06:52+0000", "createdBy": "adevi", "description": "An API for bookstore users allowing them to retrieve book items and modify existing items.", "endpointHidden": false, "graphQL": false, "groupId": 44681, "isGraphQL": false, "lockVersion": 0, "positiveConstrainsEnabled": true, "productionStatus": null, "protectedByApiKey": true, "responseConstraintsEnabled": false, "source": null, "stagingStatus": null, "updateDate": "2019-06-12T13:06:55+0000", "updatedBy": "bookstore_admin", "versionHidden": false, "versionNumber": 1, "apiCategoryIds": [], "apiEndPointHosts": [ "bookstore.api.akamai.com" ], "availableActions": [ "DELETE", "CLONE_ENDPOINT", "ACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING" ], "discoveredPiiIds": [ 455976 ], "productionVersion": { "lastError": null, "status": null, "timestamp": null, "versionNumber": null }, "securityScheme": { "securitySchemeType": "apikey", "securitySchemeDetail": { "apiKeyLocation": "header", "apiKeyName": "apikey" } }, "stagingVersion": { "lastError": null, "status": null, "timestamp": null, "versionNumber": null }, "apiResources": [ { "apiResourceClonedFromId": null, "apiResourceId": 2926712, "apiResourceLogicId": 118435, "apiResourceName": "books", "createDate": "2019-06-12T13:06:52+0000", "createdBy": "hgildong", "description": "A book item within the bookstore API.", "link": null, "lockVersion": 0, "private": false, "resourcePath": "/books/{bookId}", "updateDate": "2019-06-12T13:06:52+0000", "updatedBy": "bookstore_admin", "apiResourceMethods": [ { "apiResourceMethod": "GET", "apiResourceMethodId": 341591, "apiResourceMethodLogicId": 184404, "apiParameters": [ { "apiParamLogicId": 578116, "apiParameterId": 1212945, "apiParameterLocation": "path", "apiParameterName": "bookId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterRestriction": null, "apiParameterType": "string", "apiResourceMethParamId": 494448, "array": false, "pathParamLocationId": 3, "response": false, "apiChildParameters": [] } ] }, { "apiResourceMethod": "POST", "apiResourceMethodId": 341592, "apiResourceMethodLogicId": 184405, "apiParameters": [ { "apiParamLogicId": 578117, "apiParameterId": 1212946, "apiParameterLocation": "path", "apiParameterName": "bookId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterType": "string", "apiResourceMethParamId": 494449, "array": false, "pathParamLocationId": 3, "response": false, "apiChildParameters": [], "apiParameterRestriction": { "apiParameterType": "json", "array": true, "numberRangeRestriction": null, "rangeRestriction": null, "xmlConversionRule": null, "arrayRestriction": { "maxItems": 200, "minItems": 100 }, "responseRestriction": { "maxBodySize": "SIZE_6K", "statusCodes": [ 200, 201 ] } } } ] } ] } ] }, "schema": { "additionalProperties": false, "description": "Contains information about an endpoint and its associated resources.", "type": "object", "required": [ "apiEndPointName", "apiEndPointHosts", "groupId", "contractId", "lockVersion" ], "properties": { "akamaiSecurityRestrictions": { "additionalProperties": false, "description": "Contains information about the Kona Site Defender security restrictions that you apply to an API. Note that you should only include these details in your requests if you're a Kona Site Defender customer.", "nullable": true, "type": "object", "properties": { "ALLOW_ONLY_SPEC_UNDEFINED_METHODS": { "description": "Whether the API allows requests on undefined resources, but only for specific methods. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_BODY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in body. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_COOKIE_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in cookies. These booleans override members in the Method object. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_HEADER_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in header. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_DELETE": { "description": "Whether the API allows requests on undefined resources using the DELETE method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_GET": { "description": "Whether the API allows requests on undefined resources using the GET method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_HEAD": { "description": "Whether the API allows requesting undefined resources using HEAD method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_OPTIONS": { "description": "Whether the API allows requesting undefined resources using OPTIONS method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PATCH": { "description": "Whether the API allows requesting undefined resources using PATCH method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_POST": { "description": "Whether the API allows requests on undefined resources using the POST method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PUT": { "description": "Whether the API allows requests on undefined resources using the PUT method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_PARAMS": { "description": "Whether the API allows requesting with undefined parameters. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_QUERY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in query string. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_RESOURCES": { "description": "Whether the API allows requests on undefined resources. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_SPEC_PARAMS": { "description": "Whether the API allows requesting undefined resources, but only for specific locations. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "MAX_BODY_SIZE": { "description": "The maximum allowed size of a request body.", "nullable": true, "type": "integer" }, "MAX_DOC_DEPTH": { "description": "The maximum depth of nested data elements allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_ELEMENT_NAME_LENGTH": { "description": "The maximum length of an XML element name or JSON object key name allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_INTEGER_VALUE": { "description": "The maximum integer value allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_JSONXML_ELEMENT": { "description": "The maximum number of XML elements, JSON object keys, or array items allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_STRING_LENGTH": { "description": "The maximum length of any string value in a request body.", "nullable": true, "type": "integer" }, "POSITIVE_SECURITY_ENABLED": { "description": "Whether to enforce the API request body and resource constraints as allowlists in your KSD security policies. Either `1` for enabled security constraints, or `0` for disabled.", "type": "integer", "enum": [ 0, 1 ] }, "POSITIVE_SECURITY_VERSION": { "description": "Whether to create the API with API Protection 2 or above. Either `1`, `2` for enabled API Protection 2, or `null` for the legacy API.", "nullable": true, "type": "integer", "enum": [ 1, 2 ] }, "RESPONSE_RESTRICTIONS_ENABLED": { "description": "When set to `1`, the API allows for responses with undefined parameters in the response body. Otherwise the value is `0`.", "type": "integer", "enum": [ 0, 1 ] } } }, "apiCategoryIds": { "description": "The category identifiers that apply to the endpoint. The value is `null` for uncategorized endpoints.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "apiEndPointHosts": { "description": "The hostnames that may receive traffic for the endpoint. You need at least one hostname before activating the endpoint.", "minItems": 1, "type": "array", "items": { "type": "string" } }, "apiEndPointId": { "description": "The unique identifier for the endpoint.", "nullable": true, "readOnly": true, "type": "integer" }, "apiEndPointLocked": { "description": "Whether the endpoint version is read-only.", "nullable": true, "readOnly": true, "type": "boolean" }, "apiEndPointName": { "description": "The name of the endpoint, unique within the account.", "type": "string" }, "apiEndPointScheme": { "description": "The URL scheme to which the endpoint may respond, either `http`, `https`, or `http/https` for both.", "nullable": true, "type": "string", "enum": [ "http", "https", "http/https" ] }, "apiEndPointVersion": { "description": "The unique identifier for the endpoint version.", "nullable": true, "readOnly": true, "type": "integer" }, "apiGatewayEnabled": { "default": true, "description": "Whether the API Gateway product should be enabled for the endpoint. If `null`, the member is set to `true`.", "nullable": true, "type": "boolean" }, "apiResources": { "description": "The list of resources assigned to the endpoint.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a resource assigned to an endpoint.", "type": "object", "required": [ "apiResourceName", "resourcePath" ], "properties": { "apiResourceClonedFromId": { "description": "For cloned resources, the unique identifier for the source resource.", "nullable": true, "type": "integer" }, "apiResourceId": { "description": "The unique identifier for the resource.", "type": "integer" }, "apiResourceLogicId": { "description": "The unique identifier for the resource across all endpoint versions.", "type": "integer" }, "apiResourceMethodNameLists": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "type": "string" } }, "apiResourceMethods": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "additionalProperties": false, "description": "Contains information about an HTTP method to which a resource may respond.", "type": "object", "required": [ "apiResourceMethod" ], "properties": { "apiParameters": { "description": "The list of parameter objects assigned to the method.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a method's parameter.", "type": "object", "required": [ "apiParameterName", "apiParameterType", "apiParameterRequired", "apiParameterLocation" ], "properties": { "apiChildParameters": { "description": "The collection of child JSON members or XML elements for JSON or XML body type parameters.", "type": "array", "items": { "description": "A further nested endpoint object.", "type": "object", "x-akamai": { "file-path": "schemas/apiParameterDto-nested.yaml" } } }, "apiParamLogicId": { "description": "The unique identifier for the parameter across all endpoint versions.", "readOnly": true, "type": "integer" }, "apiParameterContentType": { "description": "The content type of the parameter. Only applicable for top level body parameters.", "type": "string", "enum": [ "json", "xml", "urlencoded", "json/xml", "any", "none" ] }, "apiParameterId": { "description": "The unique identifier for the parameter.", "readOnly": true, "type": "integer" }, "apiParameterLocation": { "description": "The location of the parameter in an HTTP request, either `query`, `header`, `path`, `cookie`, or `body` for a JSON or XML body type parameter.", "type": "string", "enum": [ "query", "body", "header", "path", "cookie" ] }, "apiParameterName": { "description": "The name of the parameter. If the corresponding `apiParameterLocation` is `path`, ensure that this value matches the parameter name you specified in the `resourcePath`.", "type": "string" }, "apiParameterNotes": { "description": "The description to clarify the parameter's function. If you specify an empty string in the request or omit this member from the object, the JSON response reflects it as `null`.", "nullable": true, "type": "string" }, "apiParameterRequired": { "description": "Specifies whether the API user needs to specify the parameter. If the corresponding `apiParameterLocation` is `path`, set this member to `true`.", "type": "boolean" }, "apiParameterRestriction": { "additionalProperties": false, "description": "Contains information about restrictions and XML representation rules specified for the parameter.", "nullable": true, "type": "object", "properties": { "arrayRestriction": { "additionalProperties": false, "description": "Contains information about array restrictions for array type parameters. Define this object only if you enabled the corresponding `array` member.", "nullable": true, "type": "object", "properties": { "collectionFormat": { "default": "csv", "description": "The format of the array that specifies how you separated array values, either the default `csv` for comma separated values, `ssv` for space separated values, `tsv` for tab separated values, `pipes` for pipe separated values, or `multi` for several parameter instances instead of several values for a single instance.", "type": "string", "enum": [ "csv", "ssv", "tsv", "pipes", "multi" ] }, "maxItems": { "description": "The maximum allowed number of array items.", "type": "integer" }, "minItems": { "description": "The minimum allowed number of array items.", "type": "integer" }, "uniqueItems": { "description": "Whether the array contains only unique items.", "type": "boolean" } } }, "lengthRestriction": { "additionalProperties": false, "description": "Contains information about length restrictions for string type parameters.", "nullable": true, "type": "object", "properties": { "lengthMax": { "description": "The maximum allowed number of characters in the string.", "nullable": true, "type": "integer" }, "lengthMin": { "description": "The minimum allowed number of characters in the string.", "nullable": true, "type": "integer" } } }, "numberRangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for number type parameters.", "nullable": true, "type": "object", "properties": { "numberRangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "number" }, "numberRangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "number" } } }, "rangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for integer type parameters.", "nullable": true, "type": "object", "properties": { "rangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "integer" }, "rangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "integer" } } }, "responseRestriction": { "additionalProperties": false, "type": "object", "properties": { "maxBodySize": { "description": "Limit how large the response body can be before tripping the firewall action. The default is `SIZE_6K`. You can choose `SIZE_8K`, `SIZE_12K`, or `NO_LIMIT`, which allows a response of any size.", "type": "string", "enum": [ "SIZE_6K", "SIZE_8K", "SIZE_12K", "NO_LIMIT" ] }, "statusCodes": { "description": "The response status codes to match to a particular response body format. A `null` or empty value means the response body definition applies to any response body.", "nullable": true, "type": "array", "items": { "type": "integer" } } } }, "xmlConversionRule": { "additionalProperties": false, "description": "Contains information about an XML representation of a JSON-encoded parameter.", "nullable": true, "type": "object", "properties": { "attribute": { "default": false, "description": "Whether the parameter should be represented as an attribute.", "type": "boolean" }, "name": { "description": "The name of the parameter in XML. By default, the XML name is the same as the parameter name specified in the API definition.", "type": "string" }, "namespace": { "description": "The XML namespace.", "type": "string" }, "prefix": { "description": "The prefix for the XML namespace.", "type": "string" }, "wrapped": { "default": false, "description": "Whether the parameter should be wrapped in a parent XML element.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/xmlRestrictionDto.yaml" } } } }, "apiParameterType": { "description": "The data type of the parameter, either `string`, `integer`, `number`, `boolean`, or `json/xml` for JSON or XML objects.", "type": "string", "enum": [ "string", "integer", "number", "boolean", "json/xml" ] }, "apiResourceMethParamId": { "description": "The unique identifier for the parameter's parent method.", "nullable": true, "readOnly": true, "type": "integer" }, "array": { "description": "Whether the parameter can express more than one value. This member is only applicable for `apiChildParameters` that you can specify if the corresponding `apiParameterLocation` is `body` and the `apiParameterType` is `json/xml`. If you enable this, also define the `arrayRestriction` member.", "type": "boolean" }, "pathParamLocationId": { "description": "The index of a segment that includes a path parameter in a resource path. For example, given a path `\\books\\{bookId}`, the `books` segment has index `0`, and the path parameter `{bookId}` has index `1`.", "nullable": true, "type": "number" }, "response": { "description": "Whether the parameter is within a response type.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiParameterDto.yaml" } } }, "apiResourceMethod": { "description": "The core HTTP method to which the resource may respond, either `GET`, `PUT`, `POST`, `DELETE`, `HEAD`, `PATCH`, or `OPTIONS`.", "type": "string", "enum": [ "GET", "PUT", "POST", "DELETE", "HEAD", "PATCH", "OPTIONS" ] }, "apiResourceMethodId": { "description": "The unique identifier for the resource's allowed method.", "nullable": true, "readOnly": true, "type": "integer" }, "apiResourceMethodLogicId": { "description": "The unique identifier for the resource's method across all endpoint versions.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiMethodParametersDto.yaml" } } }, "apiResourceName": { "description": "The name of the resource.", "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the resource.", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the resource.", "type": "string" }, "description": { "description": "The description to clarify the resource's function within the API. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "type": "number" }, "private": { "description": "Whether the resource is private. API consumers can access private resources only if they identify with an appropriate API key.", "type": "boolean" }, "resourcePath": { "description": "The URL path relative to the hostnames on which the resource resides. When entering a resource path, you can use curly brackets (`{}`) to define path parameters (for example, `/path/{pathparam}`). If you decide to do so, ensure that the value of the `apiParameterName` member in the corresponding parameter definition matches the name that you specified in the resource path.", "type": "string" }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the resource.", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the resource.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiResourceMethParamsDto.yaml" } } }, "apiSource": { "description": "Specifies if the API's data comes from `API_DISCOVERY` or was provided by the `USER`.", "nullable": true, "type": "string", "enum": [ "USER", "API_DISCOVERY" ] }, "apiVersionInfo": { "additionalProperties": false, "description": "Contains information about a major API version. This refers to REST API versioning and is a different concept than the endpoint configuration versions you create at Akamai.", "nullable": true, "type": "object", "required": [ "location" ], "properties": { "location": { "description": "The location of the API version value in an incoming request. Either `HEADER`, `BASE_PATH`, or `QUERY` parameter.", "type": "string", "enum": [ "HEADER", "BASE_PATH", "QUERY" ] }, "parameterName": { "description": "The name of the header or query parameter that includes the API version value. This is applicable only if the corresponding `location` member is either `HEADER` or `QUERY`.", "type": "string" }, "value": { "description": "The expected API version value in an incoming request.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiVersionInfo.yaml" } }, "availableActions": { "description": "The collection of available actions that you can perform on the endpoint depending on its versions' activation status. For possible values, see [Endpoint.availableActions values](#enumvalues2).", "minItems": 0, "nullable": true, "readOnly": true, "type": "array", "items": { "type": "string", "enum": [ "DELETE", "CLONE_ENDPOINT", "COMPARE_ENDPOINT", "COMPARE_AAG_SETTINGS", "COMPARE_RAPID_SETTINGS", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING", "ACTIVATE_ON_PRODUCTION", "DEACTIVATE_ON_STAGING", "DEACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "SHOW_ENDPOINT" ] } }, "basePath": { "description": "The URL path that serves as a root prefix for all resources' `resourcePath` values. This is `/` if empty. Don't append a `/` character to the path. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "minLength": 0, "nullable": true, "type": "string" }, "caseSensitive": { "description": "Whether the URLs and parameters within the endpoint are case sensitive.", "nullable": true, "type": "boolean" }, "clonedFromVersion": { "description": "For cloned endpoints, the unique identifier for the source endpoint version.", "nullable": true, "readOnly": true, "type": "integer" }, "consumeType": { "description": "The content type the endpoint exchanges, either `json`, `xml`, `urlencoded`, `json/xml/urlencoded`, `json/urlencoded`, `json/xml`, or `xml/urlencoded` for multi-format APIs, `any`, or `none`. A `null` value is the same as a `none` string.", "nullable": true, "type": "string", "enum": [ "none", "json", "xml", "json/xml", "any", "urlencoded", "json/urlencoded", "xml/urlencoded", "json/xml/urlencoded" ] }, "contractId": { "description": "The unique identifier for the contract with Akamai under which you provisioned security and delivery settings for this API.", "nullable": true, "readOnly": true, "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the endpoint.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "createdBy": { "description": "The identifier for the user who created the endpoint.", "nullable": true, "readOnly": true, "type": "string" }, "description": { "description": "The description of the endpoint. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "nullable": true, "type": "string" }, "discoveredPiiIds": { "description": "The collection of personally identifiable information (PII) in your API parameters discovered by the network.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "endpointHidden": { "description": "Specifies whether the endpoint is hidden. You cannot activate or delete versions of a hidden endpoint. If you want to do so, you first need to reveal the endpoint by running the [Show an endpoint](https://techdocs.akamai.com/api-definitions/reference/post-endpoint-show) operation.", "nullable": true, "readOnly": true, "type": "boolean" }, "groupId": { "description": "The unique identifier for the group in Control Center under which you provisioned security and delivery settings for this API.", "nullable": true, "readOnly": true, "type": "integer" }, "isGraphQL": { "description": "Whether the endpoint uses GraphQL to deliver structured content to clients.", "type": "boolean" }, "lockVersion": { "description": "The identifier for the last modification of an endpoint version, used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "readOnly": true, "type": "integer" }, "matchPathSegmentParam": { "default": true, "description": "Whether or not to include path segment parameters in match criteria, like the `jsessionid` portion of `/ssocookie;jsessionid=434343`.", "nullable": true, "type": "boolean" }, "positiveConstrainsEnabled": { "description": "Specifies whether the KSD firewall policies are enabled for the endpoint.", "nullable": true, "type": "boolean" }, "productionStatus": { "description": "The version activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "productionVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the production network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "protectedByApiKey": { "description": "Whether you enabled API key protection for the endpoint version by making the version private.", "readOnly": true, "type": "boolean" }, "responseConstraintsEnabled": { "description": "Specifies whether response constraints are enforced for the endpoint. Note that if you enable response constraints but don't define the constraints, it behaves as if disabled.", "nullable": true, "readOnly": true, "type": "boolean" }, "securityScheme": { "additionalProperties": false, "description": "Contains information about the key with which users may access the endpoint.", "nullable": true, "type": "object", "properties": { "securitySchemeDetail": { "additionalProperties": false, "description": "Contains information about the location of the API key.", "type": "object", "properties": { "apiKeyLocation": { "description": "The location of the API key in incoming requests, either `cookie`, `header`, or `query` parameter.", "type": "string", "enum": [ "cookie", "header", "query" ] }, "apiKeyName": { "description": "The name of the header, query parameter, or cookie where you located the API key.", "type": "string" } } }, "securitySchemeType": { "description": "The type of security scheme implemented for the endpoint. The only valid value is `apikey`.", "type": "string", "enum": [ "apikey" ] } } }, "source": { "additionalProperties": false, "description": "Contains information about the import file used to create the endpoint.", "nullable": true, "readOnly": true, "type": "object", "properties": { "apiVersion": { "description": "The major version of the API defined in the import file.", "nullable": true, "readOnly": true, "type": "string" }, "specificationVersion": { "description": "The version of the import file's specification.", "example": "3.0.0", "nullable": true, "readOnly": true, "type": "string" }, "type": { "description": "The specification of the import file you uploaded to create the endpoint version. Either `SWAGGER` or `RAML`.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "SWAGGER", "RAML" ] } }, "x-akamai": { "file-path": "schemas/apiEndpointSourceDto.yaml" } }, "stagingStatus": { "description": "The version activation status on the staging network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "stagingVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the staging network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the endpoint.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the endpoint.", "nullable": true, "readOnly": true, "type": "string" }, "versionHidden": { "description": "Specifies whether the endpoint version is hidden. You cannot activate or delete hidden versions. If you want to do so, you first need to reveal the version by running the [Show a version](https://techdocs.akamai.com/api-definitions/reference/post-version-show) operation.", "nullable": true, "readOnly": true, "type": "boolean" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointWithResourceDto-recurse.yaml" } } } } }, "400": { "description": "Some of user input is invalid.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "403": { "description": "You don't have access to the endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "404": { "description": "The API endpoint is not found.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "409": { "description": "[Conflict](https://techdocs.akamai.com/api-definitions/reference/409)", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "delete": { "description": "Removes an endpoint version from API Gateway if the version has never been activated on the staging or production network. This is a soft delete operation that preserves the version's information, such as its number, in the database. You can't remove the permanent number assigned to each endpoint version, even if you remove that version. A removed endpoint version no longer appears in the [List versions](https://techdocs.akamai.com/api-definitions/reference/get-endpoint-versions) operation's response object.", "operationId": "delete-endpoint-version", "summary": "Delete a version", "tags": [ "Versions" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/delete-endpoint-version" }, "responses": { "204": { "description": "Resource successfully deleted.", "content": { "*/*": {} } }, "403": { "description": "You don't have access to the endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "404": { "description": "The API endpoint is not found.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the endpoint version.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/versionNumber-path.yaml" } }, { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "in": "path", "name": "apiEndPointId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/apiEndPointId-path.yaml" } } ] }, "/endpoints/{apiEndPointId}/versions/{versionNumber}/activate": { "post": { "description": "Activates an endpoint version on the staging or production network. If another version of the endpoint is already active on the specified network, that version automatically deactivates and the newly activated version takes its place. If an active version of another endpoint shares any hostnames with the version you activate, the API automatically deactivates the version with conflicting hostnames, creates a new version of the impacted endpoint, migrates the non-conflicting hostnames and other API details to the new version, and activates the new version.", "operationId": "post-endpoint-version-activate", "summary": "Activate a version", "tags": [ "Versions" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/post-endpoint-version-activate" }, "requestBody": { "required": true, "content": { "application/json": { "example": { "notes": "Activating the first version of the Bookstore API on both staging and production networks.", "networks": [ "STAGING", "PRODUCTION" ], "notificationRecipients": [ "bookstore_shared@akamai.com" ] }, "schema": { "additionalProperties": false, "description": "Contains information about an endpoint version activation.", "type": "object", "required": [ "networks" ], "properties": { "networks": { "description": "The network environments where you activate the endpoint version, either `STAGING` or `PRODUCTION`.", "type": "array", "items": { "type": "string", "enum": [ "STAGING", "PRODUCTION" ] } }, "notes": { "description": "The notes describing the version that you activate.", "example": "{{notes}}", "type": "string" }, "notificationRecipients": { "description": "The email addresses where the system sends the activation notification.", "type": "array", "items": { "type": "string" } } }, "x-akamai": { "file-path": "schemas/activationDto.yaml" } } } } }, "responses": { "200": { "description": "Returns the activated entity.", "content": { "application/json": { "example": { "notes": "Activating the first version of the Bookstore API on both staging and production networks.", "networks": [ "STAGING", "PRODUCTION" ], "notificationRecipients": [ "bookstore_shared@akamai.com" ] }, "schema": { "additionalProperties": false, "description": "Contains information about an endpoint version activation.", "type": "object", "required": [ "networks" ], "properties": { "networks": { "description": "The network environments where you activate the endpoint version, either `STAGING` or `PRODUCTION`.", "type": "array", "items": { "type": "string", "enum": [ "STAGING", "PRODUCTION" ] } }, "notes": { "description": "The notes describing the version that you activate.", "type": "string" }, "notificationRecipients": { "description": "The email addresses where the system sends the activation notification.", "type": "array", "items": { "type": "string" } } }, "x-akamai": { "file-path": "schemas/activationDto.yaml" } } } } }, "400": { "description": "Some of user input is invalid.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the endpoint version.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/versionNumber-path.yaml" } }, { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "in": "path", "name": "apiEndPointId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/apiEndPointId-path.yaml" } } ] }, "/endpoints/{apiEndPointId}/versions/{versionNumber}/cloneVersion": { "post": { "description": "Creates a new endpoint version as a clone of an existing version. The system assigns a new number to the version that you clone.", "operationId": "post-endpoint-version-clone", "summary": "Clone a version", "tags": [ "Versions" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/post-endpoint-version-clone" }, "responses": { "200": { "description": "Updated API Endpoint.", "content": { "application/json": { "example": { "akamaiSecurityRestrictions": null, "apiEndPointId": 492375, "apiEndPointLocked": false, "apiEndPointName": "Bookstore API Premium", "apiEndPointScheme": "http/https", "apiEndPointVersion": 574127, "basePath": "/bookstore-premium", "caseSensitive": true, "clonedFromVersion": 1, "consumeType": "any", "contractId": "C-0N7RAC7", "createDate": "2019-06-12T13:06:52+0000", "createdBy": "jkowalski", "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.", "endpointHidden": false, "graphQL": false, "groupId": 44681, "isGraphQL": false, "lockVersion": 2, "positiveConstrainsEnabled": null, "productionStatus": null, "protectedByApiKey": true, "source": null, "stagingStatus": null, "updateDate": "2019-06-12T13:06:52+0000", "updatedBy": "bookstore_admin", "versionHidden": false, "versionNumber": 2, "apiCategoryIds": [ 2, 7 ], "apiEndPointHosts": [ "bookstore.api.akamai.com" ], "availableActions": [ "DELETE", "CLONE_ENDPOINT", "ACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING" ], "productionVersion": { "lastError": null, "status": null, "timestamp": null, "versionNumber": null }, "securityScheme": { "securitySchemeType": "apikey", "securitySchemeDetail": { "apiKeyLocation": "header", "apiKeyName": "apikey" } }, "stagingVersion": { "lastError": null, "status": null, "timestamp": null, "versionNumber": null }, "apiResources": [ { "apiResourceClonedFromId": null, "apiResourceId": 2926712, "apiResourceLogicId": 118435, "apiResourceName": "books", "createDate": "2019-06-12T13:06:52+0000", "createdBy": "mrossi", "description": "A book item within the bookstore API.", "link": null, "lockVersion": 2, "private": false, "resourcePath": "/books/{bookId}", "updateDate": "2019-06-12T13:06:52+0000", "updatedBy": "bookstore_admin", "apiResourceMethods": [ { "apiResourceMethod": "GET", "apiResourceMethodId": 341591, "apiResourceMethodLogicId": 184404, "apiParameters": [ { "apiParamLogicId": 578116, "apiParameterId": 1212945, "apiParameterLocation": "path", "apiParameterName": "bookId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterRestriction": null, "apiParameterType": "string", "apiResourceMethParamId": 494448, "array": false, "pathParamLocationId": null, "apiChildParameters": [] } ] }, { "apiResourceMethod": "POST", "apiResourceMethodId": 341592, "apiResourceMethodLogicId": 184405, "apiParameters": [ { "apiParamLogicId": 578117, "apiParameterContentType": "json", "apiParameterId": 1212946, "apiParameterLocation": "body", "apiParameterName": "books", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterType": "string", "apiResourceMethParamId": 494449, "array": true, "pathParamLocationId": null, "apiChildParameters": [], "apiParameterRestriction": { "arrayRestriction": null, "numberRangeRestriction": null, "rangeRestriction": null, "xmlConversionRule": null, "lengthRestriction": { "lengthMax": 15, "lengthMin": 3 } } } ] } ] } ] }, "schema": { "additionalProperties": false, "description": "Contains information about an endpoint and its associated resources.", "type": "object", "required": [ "apiEndPointName", "apiEndPointHosts", "groupId", "contractId", "lockVersion" ], "properties": { "akamaiSecurityRestrictions": { "additionalProperties": false, "description": "Contains information about the Kona Site Defender security restrictions that you apply to an API. Note that you should only include these details in your requests if you're a Kona Site Defender customer.", "nullable": true, "type": "object", "properties": { "ALLOW_ONLY_SPEC_UNDEFINED_METHODS": { "description": "Whether the API allows requests on undefined resources, but only for specific methods. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_BODY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in body. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_COOKIE_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in cookies. These booleans override members in the Method object. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_HEADER_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in header. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_DELETE": { "description": "Whether the API allows requests on undefined resources using the DELETE method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_GET": { "description": "Whether the API allows requests on undefined resources using the GET method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_HEAD": { "description": "Whether the API allows requesting undefined resources using HEAD method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_OPTIONS": { "description": "Whether the API allows requesting undefined resources using OPTIONS method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PATCH": { "description": "Whether the API allows requesting undefined resources using PATCH method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_POST": { "description": "Whether the API allows requests on undefined resources using the POST method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PUT": { "description": "Whether the API allows requests on undefined resources using the PUT method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_PARAMS": { "description": "Whether the API allows requesting with undefined parameters. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_QUERY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in query string. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_RESOURCES": { "description": "Whether the API allows requests on undefined resources. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_SPEC_PARAMS": { "description": "Whether the API allows requesting undefined resources, but only for specific locations. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "MAX_BODY_SIZE": { "description": "The maximum allowed size of a request body.", "nullable": true, "type": "integer" }, "MAX_DOC_DEPTH": { "description": "The maximum depth of nested data elements allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_ELEMENT_NAME_LENGTH": { "description": "The maximum length of an XML element name or JSON object key name allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_INTEGER_VALUE": { "description": "The maximum integer value allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_JSONXML_ELEMENT": { "description": "The maximum number of XML elements, JSON object keys, or array items allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_STRING_LENGTH": { "description": "The maximum length of any string value in a request body.", "nullable": true, "type": "integer" }, "POSITIVE_SECURITY_ENABLED": { "description": "Whether to enforce the API request body and resource constraints as allowlists in your KSD security policies. Either `1` for enabled security constraints, or `0` for disabled.", "type": "integer", "enum": [ 0, 1 ] }, "POSITIVE_SECURITY_VERSION": { "description": "Whether to create the API with API Protection 2 or above. Either `1`, `2` for enabled API Protection 2, or `null` for the legacy API.", "nullable": true, "type": "integer", "enum": [ 1, 2 ] }, "RESPONSE_RESTRICTIONS_ENABLED": { "description": "When set to `1`, the API allows for responses with undefined parameters in the response body. Otherwise the value is `0`.", "type": "integer", "enum": [ 0, 1 ] } } }, "apiCategoryIds": { "description": "The category identifiers that apply to the endpoint. The value is `null` for uncategorized endpoints.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "apiEndPointHosts": { "description": "The hostnames that may receive traffic for the endpoint. You need at least one hostname before activating the endpoint.", "minItems": 1, "type": "array", "items": { "type": "string" } }, "apiEndPointId": { "description": "The unique identifier for the endpoint.", "nullable": true, "readOnly": true, "type": "integer" }, "apiEndPointLocked": { "description": "Whether the endpoint version is read-only.", "nullable": true, "readOnly": true, "type": "boolean" }, "apiEndPointName": { "description": "The name of the endpoint, unique within the account.", "type": "string" }, "apiEndPointScheme": { "description": "The URL scheme to which the endpoint may respond, either `http`, `https`, or `http/https` for both.", "nullable": true, "type": "string", "enum": [ "http", "https", "http/https" ] }, "apiEndPointVersion": { "description": "The unique identifier for the endpoint version.", "nullable": true, "readOnly": true, "type": "integer" }, "apiGatewayEnabled": { "default": true, "description": "Whether the API Gateway product should be enabled for the endpoint. If `null`, the member is set to `true`.", "nullable": true, "type": "boolean" }, "apiResources": { "description": "The list of resources assigned to the endpoint.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a resource assigned to an endpoint.", "type": "object", "required": [ "apiResourceName", "resourcePath" ], "properties": { "apiResourceClonedFromId": { "description": "For cloned resources, the unique identifier for the source resource.", "nullable": true, "type": "integer" }, "apiResourceId": { "description": "The unique identifier for the resource.", "type": "integer" }, "apiResourceLogicId": { "description": "The unique identifier for the resource across all endpoint versions.", "type": "integer" }, "apiResourceMethodNameLists": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "type": "string" } }, "apiResourceMethods": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "additionalProperties": false, "description": "Contains information about an HTTP method to which a resource may respond.", "type": "object", "required": [ "apiResourceMethod" ], "properties": { "apiParameters": { "description": "The list of parameter objects assigned to the method.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a method's parameter.", "type": "object", "required": [ "apiParameterName", "apiParameterType", "apiParameterRequired", "apiParameterLocation" ], "properties": { "apiChildParameters": { "description": "The collection of child JSON members or XML elements for JSON or XML body type parameters.", "type": "array", "items": { "description": "A further nested endpoint object.", "type": "object", "x-akamai": { "file-path": "schemas/apiParameterDto-nested.yaml" } } }, "apiParamLogicId": { "description": "The unique identifier for the parameter across all endpoint versions.", "readOnly": true, "type": "integer" }, "apiParameterContentType": { "description": "The content type of the parameter. Only applicable for top level body parameters.", "type": "string", "enum": [ "json", "xml", "urlencoded", "json/xml", "any", "none" ] }, "apiParameterId": { "description": "The unique identifier for the parameter.", "readOnly": true, "type": "integer" }, "apiParameterLocation": { "description": "The location of the parameter in an HTTP request, either `query`, `header`, `path`, `cookie`, or `body` for a JSON or XML body type parameter.", "type": "string", "enum": [ "query", "body", "header", "path", "cookie" ] }, "apiParameterName": { "description": "The name of the parameter. If the corresponding `apiParameterLocation` is `path`, ensure that this value matches the parameter name you specified in the `resourcePath`.", "type": "string" }, "apiParameterNotes": { "description": "The description to clarify the parameter's function. If you specify an empty string in the request or omit this member from the object, the JSON response reflects it as `null`.", "nullable": true, "type": "string" }, "apiParameterRequired": { "description": "Specifies whether the API user needs to specify the parameter. If the corresponding `apiParameterLocation` is `path`, set this member to `true`.", "type": "boolean" }, "apiParameterRestriction": { "additionalProperties": false, "description": "Contains information about restrictions and XML representation rules specified for the parameter.", "nullable": true, "type": "object", "properties": { "arrayRestriction": { "additionalProperties": false, "description": "Contains information about array restrictions for array type parameters. Define this object only if you enabled the corresponding `array` member.", "nullable": true, "type": "object", "properties": { "collectionFormat": { "default": "csv", "description": "The format of the array that specifies how you separated array values, either the default `csv` for comma separated values, `ssv` for space separated values, `tsv` for tab separated values, `pipes` for pipe separated values, or `multi` for several parameter instances instead of several values for a single instance.", "type": "string", "enum": [ "csv", "ssv", "tsv", "pipes", "multi" ] }, "maxItems": { "description": "The maximum allowed number of array items.", "type": "integer" }, "minItems": { "description": "The minimum allowed number of array items.", "type": "integer" }, "uniqueItems": { "description": "Whether the array contains only unique items.", "type": "boolean" } } }, "lengthRestriction": { "additionalProperties": false, "description": "Contains information about length restrictions for string type parameters.", "nullable": true, "type": "object", "properties": { "lengthMax": { "description": "The maximum allowed number of characters in the string.", "nullable": true, "type": "integer" }, "lengthMin": { "description": "The minimum allowed number of characters in the string.", "nullable": true, "type": "integer" } } }, "numberRangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for number type parameters.", "nullable": true, "type": "object", "properties": { "numberRangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "number" }, "numberRangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "number" } } }, "rangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for integer type parameters.", "nullable": true, "type": "object", "properties": { "rangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "integer" }, "rangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "integer" } } }, "responseRestriction": { "additionalProperties": false, "type": "object", "properties": { "maxBodySize": { "description": "Limit how large the response body can be before tripping the firewall action. The default is `SIZE_6K`. You can choose `SIZE_8K`, `SIZE_12K`, or `NO_LIMIT`, which allows a response of any size.", "type": "string", "enum": [ "SIZE_6K", "SIZE_8K", "SIZE_12K", "NO_LIMIT" ] }, "statusCodes": { "description": "The response status codes to match to a particular response body format. A `null` or empty value means the response body definition applies to any response body.", "nullable": true, "type": "array", "items": { "type": "integer" } } } }, "xmlConversionRule": { "additionalProperties": false, "description": "Contains information about an XML representation of a JSON-encoded parameter.", "nullable": true, "type": "object", "properties": { "attribute": { "default": false, "description": "Whether the parameter should be represented as an attribute.", "type": "boolean" }, "name": { "description": "The name of the parameter in XML. By default, the XML name is the same as the parameter name specified in the API definition.", "type": "string" }, "namespace": { "description": "The XML namespace.", "type": "string" }, "prefix": { "description": "The prefix for the XML namespace.", "type": "string" }, "wrapped": { "default": false, "description": "Whether the parameter should be wrapped in a parent XML element.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/xmlRestrictionDto.yaml" } } } }, "apiParameterType": { "description": "The data type of the parameter, either `string`, `integer`, `number`, `boolean`, or `json/xml` for JSON or XML objects.", "type": "string", "enum": [ "string", "integer", "number", "boolean", "json/xml" ] }, "apiResourceMethParamId": { "description": "The unique identifier for the parameter's parent method.", "nullable": true, "readOnly": true, "type": "integer" }, "array": { "description": "Whether the parameter can express more than one value. This member is only applicable for `apiChildParameters` that you can specify if the corresponding `apiParameterLocation` is `body` and the `apiParameterType` is `json/xml`. If you enable this, also define the `arrayRestriction` member.", "type": "boolean" }, "pathParamLocationId": { "description": "The index of a segment that includes a path parameter in a resource path. For example, given a path `\\books\\{bookId}`, the `books` segment has index `0`, and the path parameter `{bookId}` has index `1`.", "nullable": true, "type": "number" }, "response": { "description": "Whether the parameter is within a response type.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiParameterDto.yaml" } } }, "apiResourceMethod": { "description": "The core HTTP method to which the resource may respond, either `GET`, `PUT`, `POST`, `DELETE`, `HEAD`, `PATCH`, or `OPTIONS`.", "type": "string", "enum": [ "GET", "PUT", "POST", "DELETE", "HEAD", "PATCH", "OPTIONS" ] }, "apiResourceMethodId": { "description": "The unique identifier for the resource's allowed method.", "nullable": true, "readOnly": true, "type": "integer" }, "apiResourceMethodLogicId": { "description": "The unique identifier for the resource's method across all endpoint versions.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiMethodParametersDto.yaml" } } }, "apiResourceName": { "description": "The name of the resource.", "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the resource.", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the resource.", "type": "string" }, "description": { "description": "The description to clarify the resource's function within the API. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "type": "number" }, "private": { "description": "Whether the resource is private. API consumers can access private resources only if they identify with an appropriate API key.", "type": "boolean" }, "resourcePath": { "description": "The URL path relative to the hostnames on which the resource resides. When entering a resource path, you can use curly brackets (`{}`) to define path parameters (for example, `/path/{pathparam}`). If you decide to do so, ensure that the value of the `apiParameterName` member in the corresponding parameter definition matches the name that you specified in the resource path.", "type": "string" }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the resource.", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the resource.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiResourceMethParamsDto.yaml" } } }, "apiSource": { "description": "Specifies if the API's data comes from `API_DISCOVERY` or was provided by the `USER`.", "nullable": true, "type": "string", "enum": [ "USER", "API_DISCOVERY" ] }, "apiVersionInfo": { "additionalProperties": false, "description": "Contains information about a major API version. This refers to REST API versioning and is a different concept than the endpoint configuration versions you create at Akamai.", "nullable": true, "type": "object", "required": [ "location" ], "properties": { "location": { "description": "The location of the API version value in an incoming request. Either `HEADER`, `BASE_PATH`, or `QUERY` parameter.", "type": "string", "enum": [ "HEADER", "BASE_PATH", "QUERY" ] }, "parameterName": { "description": "The name of the header or query parameter that includes the API version value. This is applicable only if the corresponding `location` member is either `HEADER` or `QUERY`.", "type": "string" }, "value": { "description": "The expected API version value in an incoming request.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiVersionInfo.yaml" } }, "availableActions": { "description": "The collection of available actions that you can perform on the endpoint depending on its versions' activation status. For possible values, see [Endpoint.availableActions values](#enumvalues2).", "minItems": 0, "nullable": true, "readOnly": true, "type": "array", "items": { "type": "string", "enum": [ "DELETE", "CLONE_ENDPOINT", "COMPARE_ENDPOINT", "COMPARE_AAG_SETTINGS", "COMPARE_RAPID_SETTINGS", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING", "ACTIVATE_ON_PRODUCTION", "DEACTIVATE_ON_STAGING", "DEACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "SHOW_ENDPOINT" ] } }, "basePath": { "description": "The URL path that serves as a root prefix for all resources' `resourcePath` values. This is `/` if empty. Don't append a `/` character to the path. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "minLength": 0, "nullable": true, "type": "string" }, "caseSensitive": { "description": "Whether the URLs and parameters within the endpoint are case sensitive.", "nullable": true, "type": "boolean" }, "clonedFromVersion": { "description": "For cloned endpoints, the unique identifier for the source endpoint version.", "nullable": true, "readOnly": true, "type": "integer" }, "consumeType": { "description": "The content type the endpoint exchanges, either `json`, `xml`, `urlencoded`, `json/xml/urlencoded`, `json/urlencoded`, `json/xml`, or `xml/urlencoded` for multi-format APIs, `any`, or `none`. A `null` value is the same as a `none` string.", "nullable": true, "type": "string", "enum": [ "none", "json", "xml", "json/xml", "any", "urlencoded", "json/urlencoded", "xml/urlencoded", "json/xml/urlencoded" ] }, "contractId": { "description": "The unique identifier for the contract with Akamai under which you provisioned security and delivery settings for this API.", "nullable": true, "readOnly": true, "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the endpoint.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "createdBy": { "description": "The identifier for the user who created the endpoint.", "nullable": true, "readOnly": true, "type": "string" }, "description": { "description": "The description of the endpoint. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "nullable": true, "type": "string" }, "discoveredPiiIds": { "description": "The collection of personally identifiable information (PII) in your API parameters discovered by the network.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "endpointHidden": { "description": "Specifies whether the endpoint is hidden. You cannot activate or delete versions of a hidden endpoint. If you want to do so, you first need to reveal the endpoint by running the [Show an endpoint](https://techdocs.akamai.com/api-definitions/reference/post-endpoint-show) operation.", "nullable": true, "readOnly": true, "type": "boolean" }, "groupId": { "description": "The unique identifier for the group in Control Center under which you provisioned security and delivery settings for this API.", "nullable": true, "readOnly": true, "type": "integer" }, "isGraphQL": { "description": "Whether the endpoint uses GraphQL to deliver structured content to clients.", "type": "boolean" }, "lockVersion": { "description": "The identifier for the last modification of an endpoint version, used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "readOnly": true, "type": "integer" }, "matchPathSegmentParam": { "default": true, "description": "Whether or not to include path segment parameters in match criteria, like the `jsessionid` portion of `/ssocookie;jsessionid=434343`.", "nullable": true, "type": "boolean" }, "positiveConstrainsEnabled": { "description": "Specifies whether the KSD firewall policies are enabled for the endpoint.", "nullable": true, "type": "boolean" }, "productionStatus": { "description": "The version activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "productionVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the production network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "protectedByApiKey": { "description": "Whether you enabled API key protection for the endpoint version by making the version private.", "readOnly": true, "type": "boolean" }, "responseConstraintsEnabled": { "description": "Specifies whether response constraints are enforced for the endpoint. Note that if you enable response constraints but don't define the constraints, it behaves as if disabled.", "nullable": true, "readOnly": true, "type": "boolean" }, "securityScheme": { "additionalProperties": false, "description": "Contains information about the key with which users may access the endpoint.", "nullable": true, "type": "object", "properties": { "securitySchemeDetail": { "additionalProperties": false, "description": "Contains information about the location of the API key.", "type": "object", "properties": { "apiKeyLocation": { "description": "The location of the API key in incoming requests, either `cookie`, `header`, or `query` parameter.", "type": "string", "enum": [ "cookie", "header", "query" ] }, "apiKeyName": { "description": "The name of the header, query parameter, or cookie where you located the API key.", "type": "string" } } }, "securitySchemeType": { "description": "The type of security scheme implemented for the endpoint. The only valid value is `apikey`.", "type": "string", "enum": [ "apikey" ] } } }, "source": { "additionalProperties": false, "description": "Contains information about the import file used to create the endpoint.", "nullable": true, "readOnly": true, "type": "object", "properties": { "apiVersion": { "description": "The major version of the API defined in the import file.", "nullable": true, "readOnly": true, "type": "string" }, "specificationVersion": { "description": "The version of the import file's specification.", "example": "3.0.0", "nullable": true, "readOnly": true, "type": "string" }, "type": { "description": "The specification of the import file you uploaded to create the endpoint version. Either `SWAGGER` or `RAML`.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "SWAGGER", "RAML" ] } }, "x-akamai": { "file-path": "schemas/apiEndpointSourceDto.yaml" } }, "stagingStatus": { "description": "The version activation status on the staging network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "stagingVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the staging network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the endpoint.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the endpoint.", "nullable": true, "readOnly": true, "type": "string" }, "versionHidden": { "description": "Specifies whether the endpoint version is hidden. You cannot activate or delete hidden versions. If you want to do so, you first need to reveal the version by running the [Show a version](https://techdocs.akamai.com/api-definitions/reference/post-version-show) operation.", "nullable": true, "readOnly": true, "type": "boolean" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointWithResourceDto-recurse.yaml" } } } } }, "403": { "description": "You don't have access to the endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "404": { "description": "The API endpoint is not found.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "409": { "description": "[Conflict](https://techdocs.akamai.com/api-definitions/reference/409).", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the endpoint version.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/versionNumber-path.yaml" } }, { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "in": "path", "name": "apiEndPointId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/apiEndPointId-path.yaml" } } ] }, "/endpoints/{apiEndPointId}/versions/{versionNumber}/deactivate": { "post": { "description": "Deactivates an endpoint version on the staging or production network. A deactivated endpoint version no longer serves traffic through the Akamai network.", "operationId": "post-endpoint-version-deactivate", "summary": "Deactivate a version", "tags": [ "Versions" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/post-endpoint-version-deactivate" }, "requestBody": { "required": true, "content": { "application/json": { "example": { "notes": "Activating the first version of the Bookstore API on both staging and production networks.", "networks": [ "STAGING", "PRODUCTION" ], "notificationRecipients": [ "bookstore_shared@akamai.com" ] }, "schema": { "additionalProperties": false, "description": "Contains information about an endpoint version activation.", "type": "object", "required": [ "networks" ], "properties": { "networks": { "description": "The network environments where you activate the endpoint version, either `STAGING` or `PRODUCTION`.", "type": "array", "items": { "type": "string", "enum": [ "STAGING", "PRODUCTION" ] } }, "notes": { "description": "The notes describing the version that you activate.", "example": "{{notes}}", "type": "string" }, "notificationRecipients": { "description": "The email addresses where the system sends the activation notification.", "type": "array", "items": { "type": "string" } } }, "x-akamai": { "file-path": "schemas/activationDto.yaml" } } } } }, "responses": { "200": { "description": "Returns deactivated entity.", "content": { "application/json": { "example": { "notes": "Activating the first version of the Bookstore API on both staging and production networks.", "networks": [ "STAGING", "PRODUCTION" ], "notificationRecipients": [ "bookstore_shared@akamai.com" ] }, "schema": { "additionalProperties": false, "description": "Contains information about an endpoint version activation.", "type": "object", "required": [ "networks" ], "properties": { "networks": { "description": "The network environments where you activate the endpoint version, either `STAGING` or `PRODUCTION`.", "type": "array", "items": { "type": "string", "enum": [ "STAGING", "PRODUCTION" ] } }, "notes": { "description": "The notes describing the version that you activate.", "type": "string" }, "notificationRecipients": { "description": "The email addresses where the system sends the activation notification.", "type": "array", "items": { "type": "string" } } }, "x-akamai": { "file-path": "schemas/activationDto.yaml" } } } } }, "400": { "description": "Some of user input is invalid.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the endpoint version.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/versionNumber-path.yaml" } }, { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "in": "path", "name": "apiEndPointId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/apiEndPointId-path.yaml" } } ] }, "/endpoints/{apiEndPointId}/versions/{versionNumber}/file": { "post": { "description": "Imports an API definition file with details about an endpoint. Unlike [Register an endpoint from an API definition file](https://techdocs.akamai.com/api-definitions/reference/post-endpoints-file), this operation doesn't create a new endpoint, but updates details of an existing endpoint. You can run this operation in two ways. To POST JSON data, see [Make a JSON request to edit an endpoint from an API definition file](https://techdocs.akamai.com/api-definitions/reference/endpoint-edit-json). To make a form request using these parameters, see [Make a form request to edit an endpoint from an API definition file](https://techdocs.akamai.com/api-definitions/reference/endpoint-edit-form). Once you submit the POST request, to finish modifying the endpoint version, you need to take the response data and submit it as a request to the [Edit a version](https://techdocs.akamai.com/api-definitions/reference/put-endpoint-version) operation.", "operationId": "post-endpoint-version-file", "summary": "Edit an endpoint from an API definition file", "tags": [ "Versions" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/post-endpoint-version-file" }, "requestBody": { "required": true, "content": { "application/json": { "example": { "contractId": "C-0N7RAC71", "groupId": 44681, "importFileContent": "ewogICJzd2FnZ2VyIjogIjIuMCIsCiAgImluZm8iOiB7CiAgICAidmVyc2lvbiI6ICIxLjAuMCIsCiAgICAidGl0bGUiOiAiQm9va3N0b3JlIEFQSSIsCiAgICAiZGVzY3JpcHRpb24iOiAiQW4gQVBJIGZvciBib29rc3RvcmUgdXNlcnMgYWxsb3dpbmcgdGhlbSB0byByZXRyaWV2ZSBib29rIGl0ZW1zLCBhZGQgbmV3IGl0ZW1zIChhZG1pbiB1c2VycyksIGFuZCBtb2RpZnkgZXhpc3RpbmcgaXRlbXMuIgogIH0sCiAgImhvc3QiOiAiYm9va3N0b3JlLmFwaS5ha2FtYWkuY29tIiwKICAic2NoZW1lcyI6IFsKICAgICJodHRwIiwKICAgICJodHRwcyIKICBdLAogICJzZWN1cml0eURlZmluaXRpb25zIjogewogICAgImFwaV9rZXkiOiB7CiAgICAgICJ0eXBlIjogImFwaUtleSIsCiAgICAgICJuYW1lIjogImFwaUtleSIsCiAgICAgICJpbiI6ICJoZWFkZXIiCiAgICB9CiAgfSwKICAiYmFzZVBhdGgiOiAiL2Jvb2tzdG9yZSIsCiAgInBhdGhzIjogewogICAgIi9ib29rcyI6IHsKICAgICAgImdldCI6IHsKICAgICAgICAiZGVzY3JpcHRpb24iOiAiTGlzdHMgYWxsIGJvb2sgaXRlbXMuIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAiZ2V0Qm9va3MiLAogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInJlc3BvbnNlcyI6IHsKICAgICAgICAgICIyMDAiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCb29rIHJlc3BvbnNlLiIsCiAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAiYXJyYXkiLAogICAgICAgICAgICAgICJpdGVtcyI6IHsKICAgICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvYm9vayIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0sCiAgICAgICJwb3N0IjogewogICAgICAgICJkZXNjcmlwdGlvbiI6ICJDcmVhdGVzIGEgYm9vayBpdGVtIGluIHRoZSBib29rc3RvcmUuIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAicG9zdEJvb2siLAogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInBhcmFtZXRlcnMiOiBbewogICAgICAgICAgIm5hbWUiOiAiYm9vayIsCiAgICAgICAgICAiaW4iOiAiYm9keSIsCiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQSBib29rIHRvIGFkZCB0byB0aGUgYm9va3N0b3JlLiIsCiAgICAgICAgICAicmVxdWlyZWQiOiB0cnVlLAogICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9uZXdCb29rIgogICAgICAgICAgfQogICAgICAgIH1dLAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjAwIjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQm9vayByZXNwb25zZS4iLAogICAgICAgICAgICAic2NoZW1hIjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9ib29rIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgIi9ib29rcy97aWR9IjogewogICAgICAiZ2V0IjogewogICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIGEgYm9vayBpdGVtLiIsCiAgICAgICAgIm9wZXJhdGlvbklkIjogImdldEJvb2siLAogICAgICAgICJwcm9kdWNlcyI6IFsKICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIF0sCiAgICAgICAgInBhcmFtZXRlcnMiOiBbewogICAgICAgICAgIm5hbWUiOiAiaWQiLAogICAgICAgICAgImluIjogInBhdGgiLAogICAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgc3BlY2lmaWMgSUQgb2YgYSBib29rIGl0ZW0gdG8gcmV0dXJuLiIsCiAgICAgICAgICAicmVxdWlyZWQiOiB0cnVlLAogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIKICAgICAgICB9XSwKICAgICAgICAicmVzcG9uc2VzIjogewogICAgICAgICAgIjIwMCI6IHsKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJvb2sgcmVzcG9uc2UuIiwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvYm9vayIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwKICAgICAgImRlbGV0ZSI6IHsKICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGVsZXRlcyBhIGJvb2sgaXRlbSBmcm9tIHRoZSBib29rc3RvcmUuIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAiZGVsZXRlQm9vayIsCiAgICAgICAgInByb2R1Y2VzIjogWwogICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgXSwKICAgICAgICAicGFyYW1ldGVycyI6IFt7CiAgICAgICAgICAibmFtZSI6ICJpZCIsCiAgICAgICAgICAiaW4iOiAicGF0aCIsCiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQSBzcGVjaWZpYyBJRCBvZiBhIGJvb2sgaXRlbSB0byBkZWxldGUuIiwKICAgICAgICAgICJyZXF1aXJlZCI6IHRydWUsCiAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIgogICAgICAgIH1dLAogICAgICAgICJyZXNwb25zZXMiOiB7CiAgICAgICAgICAiMjA0IjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQm9vayBkZWxldGVkIgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfQogIH0KfQ==", "importFileFormat": "swagger", "importFileSource": "BODY_BASE64" }, "schema": { "additionalProperties": false, "description": "Contains information about an API definition file to import.", "type": "object", "required": [ "importFileFormat", "importFileSource" ], "properties": { "contractId": { "description": "The unique identifier for the contract under which to provision the endpoint.", "example": "{{contractId}}", "type": "string" }, "groupId": { "description": "The unique identifier for the group under which to provision the endpoint.", "example": "{{groupId}}", "type": "number" }, "importFileContent": { "description": "The content of the API definition file encoded in Base64 (see [RFC 4648](https://tools.ietf.org/html/rfc4648) for details). Specify this only if you set the corresponding `importFileSource` to `BODY_BASE64`.", "example": "{{importFileContent}}", "type": "string" }, "importFileFormat": { "description": "The format of the API definition file, either `raml` or `swagger`. You cam import RAML 0.8 files and Swagger 2.0 or 3.0 files.", "example": "{{importFileFormat}}", "type": "string", "enum": [ "swagger", "raml" ] }, "importFileSource": { "description": "The location of the API definition file, either `URL` if you store the file on the web, or `BODY_BASE64` if you encode the file contents in the request body.", "example": "{{importFileSource}}", "type": "string", "enum": [ "URL", "BODY_BASE64" ] }, "importUrl": { "description": "The URL from which to get the API definition file. Specify this only if you set the corresponding `importFileSource` to `URL`.", "example": "{{importUrl}}", "type": "string" }, "root": { "description": "If the import file located at the `importUrl` is a ZIP archive, this identifies the API definition's filename within the archive.", "example": "{{root}}", "type": "string" } }, "x-akamai": { "file-path": "schemas/importFileDto.yaml" } } } } }, "responses": { "200": { "description": "Operation succeeded.", "content": { "application/json": { "example": { "akamaiSecurityRestrictions": null, "apiEndPointId": 492375, "apiEndPointLocked": false, "apiEndPointName": "Bookstore API", "apiEndPointScheme": "http/https", "apiGatewayEnabled": true, "basePath": "/bookstore", "caseSensitive": true, "clonedFromVersion": 1, "consumeType": "any", "contractId": "C-0N7RAC7", "createDate": "2019-06-12T13:06:52+0000", "createdBy": "mrossi", "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.", "endpointHidden": false, "graphQL": false, "groupId": 44681, "isGraphQL": false, "lockVersion": 2, "positiveConstrainsEnabled": null, "productionStatus": null, "protectedByApiKey": true, "responseConstraintsEnabled": false, "source": null, "stagingStatus": null, "updateDate": "2019-06-12T13:06:52+0000", "updatedBy": "bookstore_admin", "versionHidden": false, "versionNumber": 1, "apiCategoryIds": [ 2, 7 ], "apiEndPointHosts": [ "bookstore.api.akamai.com" ], "availableActions": [ "DELETE", "CLONE_ENDPOINT", "ACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING" ], "productionVersion": { "lastError": null, "status": null, "timestamp": null, "versionNumber": null }, "securityScheme": { "securitySchemeType": "apikey", "securitySchemeDetail": { "apiKeyLocation": "header", "apiKeyName": "apikey" } }, "stagingVersion": { "lastError": null, "status": null, "timestamp": null, "versionNumber": null }, "apiResources": [ { "apiResourceClonedFromId": null, "apiResourceId": 2926712, "apiResourceLogicId": 118435, "apiResourceName": "books", "createDate": "2019-06-12T13:06:52+0000", "createdBy": "tyamada", "description": "A book item within the bookstore API.", "link": null, "lockVersion": 2, "private": false, "resourcePath": "/books/{bookId}", "updateDate": "2019-06-12T13:06:52+0000", "updatedBy": "bookstore_admin", "apiResourceMethods": [ { "apiResourceMethod": "GET", "apiResourceMethodId": 341591, "apiResourceMethodLogicId": 184404, "apiParameters": [ { "apiParamLogicId": 578116, "apiParameterId": 1212945, "apiParameterLocation": "path", "apiParameterName": "bookId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterRestriction": null, "apiParameterType": "string", "apiResourceMethParamId": 494448, "array": false, "pathParamLocationId": null, "response": false, "apiChildParameters": [] } ] }, { "apiResourceMethod": "POST", "apiResourceMethodId": 341592, "apiResourceMethodLogicId": 184405, "apiParameters": [ { "apiParamLogicId": 578117, "apiParameterId": 1212946, "apiParameterLocation": "path", "apiParameterName": "bookId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterType": "string", "apiResourceMethParamId": 494449, "array": false, "pathParamLocationId": null, "response": false, "apiChildParameters": [], "apiParameterRestriction": { "arrayRestriction": null, "numberRangeRestriction": null, "rangeRestriction": null, "xmlConversionRule": null, "lengthRestriction": { "lengthMax": 15, "lengthMin": 3 } } } ] } ] } ] }, "schema": { "additionalProperties": false, "description": "Contains information about an endpoint and its associated resources.", "type": "object", "required": [ "apiEndPointName", "apiEndPointHosts", "groupId", "contractId", "lockVersion" ], "properties": { "akamaiSecurityRestrictions": { "additionalProperties": false, "description": "Contains information about the Kona Site Defender security restrictions that you apply to an API. Note that you should only include these details in your requests if you're a Kona Site Defender customer.", "nullable": true, "type": "object", "properties": { "ALLOW_ONLY_SPEC_UNDEFINED_METHODS": { "description": "Whether the API allows requests on undefined resources, but only for specific methods. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_BODY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in body. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_COOKIE_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in cookies. These booleans override members in the Method object. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_HEADER_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in header. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_DELETE": { "description": "Whether the API allows requests on undefined resources using the DELETE method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_GET": { "description": "Whether the API allows requests on undefined resources using the GET method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_HEAD": { "description": "Whether the API allows requesting undefined resources using HEAD method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_OPTIONS": { "description": "Whether the API allows requesting undefined resources using OPTIONS method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PATCH": { "description": "Whether the API allows requesting undefined resources using PATCH method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_POST": { "description": "Whether the API allows requests on undefined resources using the POST method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PUT": { "description": "Whether the API allows requests on undefined resources using the PUT method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_PARAMS": { "description": "Whether the API allows requesting with undefined parameters. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_QUERY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in query string. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_RESOURCES": { "description": "Whether the API allows requests on undefined resources. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_SPEC_PARAMS": { "description": "Whether the API allows requesting undefined resources, but only for specific locations. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "MAX_BODY_SIZE": { "description": "The maximum allowed size of a request body.", "nullable": true, "type": "integer" }, "MAX_DOC_DEPTH": { "description": "The maximum depth of nested data elements allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_ELEMENT_NAME_LENGTH": { "description": "The maximum length of an XML element name or JSON object key name allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_INTEGER_VALUE": { "description": "The maximum integer value allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_JSONXML_ELEMENT": { "description": "The maximum number of XML elements, JSON object keys, or array items allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_STRING_LENGTH": { "description": "The maximum length of any string value in a request body.", "nullable": true, "type": "integer" }, "POSITIVE_SECURITY_ENABLED": { "description": "Whether to enforce the API request body and resource constraints as allowlists in your KSD security policies. Either `1` for enabled security constraints, or `0` for disabled.", "type": "integer", "enum": [ 0, 1 ] }, "POSITIVE_SECURITY_VERSION": { "description": "Whether to create the API with API Protection 2 or above. Either `1`, `2` for enabled API Protection 2, or `null` for the legacy API.", "nullable": true, "type": "integer", "enum": [ 1, 2 ] }, "RESPONSE_RESTRICTIONS_ENABLED": { "description": "When set to `1`, the API allows for responses with undefined parameters in the response body. Otherwise the value is `0`.", "type": "integer", "enum": [ 0, 1 ] } } }, "apiCategoryIds": { "description": "The category identifiers that apply to the endpoint. The value is `null` for uncategorized endpoints.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "apiEndPointHosts": { "description": "The hostnames that may receive traffic for the endpoint. You need at least one hostname before activating the endpoint.", "minItems": 1, "type": "array", "items": { "type": "string" } }, "apiEndPointId": { "description": "The unique identifier for the endpoint.", "nullable": true, "readOnly": true, "type": "integer" }, "apiEndPointLocked": { "description": "Whether the endpoint version is read-only.", "nullable": true, "readOnly": true, "type": "boolean" }, "apiEndPointName": { "description": "The name of the endpoint, unique within the account.", "type": "string" }, "apiEndPointScheme": { "description": "The URL scheme to which the endpoint may respond, either `http`, `https`, or `http/https` for both.", "nullable": true, "type": "string", "enum": [ "http", "https", "http/https" ] }, "apiEndPointVersion": { "description": "The unique identifier for the endpoint version.", "nullable": true, "readOnly": true, "type": "integer" }, "apiGatewayEnabled": { "default": true, "description": "Whether the API Gateway product should be enabled for the endpoint. If `null`, the member is set to `true`.", "nullable": true, "type": "boolean" }, "apiResources": { "description": "The list of resources assigned to the endpoint.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a resource assigned to an endpoint.", "type": "object", "required": [ "apiResourceName", "resourcePath" ], "properties": { "apiResourceClonedFromId": { "description": "For cloned resources, the unique identifier for the source resource.", "nullable": true, "type": "integer" }, "apiResourceId": { "description": "The unique identifier for the resource.", "type": "integer" }, "apiResourceLogicId": { "description": "The unique identifier for the resource across all endpoint versions.", "type": "integer" }, "apiResourceMethodNameLists": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "type": "string" } }, "apiResourceMethods": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "additionalProperties": false, "description": "Contains information about an HTTP method to which a resource may respond.", "type": "object", "required": [ "apiResourceMethod" ], "properties": { "apiParameters": { "description": "The list of parameter objects assigned to the method.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a method's parameter.", "type": "object", "required": [ "apiParameterName", "apiParameterType", "apiParameterRequired", "apiParameterLocation" ], "properties": { "apiChildParameters": { "description": "The collection of child JSON members or XML elements for JSON or XML body type parameters.", "type": "array", "items": { "description": "A further nested endpoint object.", "type": "object", "x-akamai": { "file-path": "schemas/apiParameterDto-nested.yaml" } } }, "apiParamLogicId": { "description": "The unique identifier for the parameter across all endpoint versions.", "readOnly": true, "type": "integer" }, "apiParameterContentType": { "description": "The content type of the parameter. Only applicable for top level body parameters.", "type": "string", "enum": [ "json", "xml", "urlencoded", "json/xml", "any", "none" ] }, "apiParameterId": { "description": "The unique identifier for the parameter.", "readOnly": true, "type": "integer" }, "apiParameterLocation": { "description": "The location of the parameter in an HTTP request, either `query`, `header`, `path`, `cookie`, or `body` for a JSON or XML body type parameter.", "type": "string", "enum": [ "query", "body", "header", "path", "cookie" ] }, "apiParameterName": { "description": "The name of the parameter. If the corresponding `apiParameterLocation` is `path`, ensure that this value matches the parameter name you specified in the `resourcePath`.", "type": "string" }, "apiParameterNotes": { "description": "The description to clarify the parameter's function. If you specify an empty string in the request or omit this member from the object, the JSON response reflects it as `null`.", "nullable": true, "type": "string" }, "apiParameterRequired": { "description": "Specifies whether the API user needs to specify the parameter. If the corresponding `apiParameterLocation` is `path`, set this member to `true`.", "type": "boolean" }, "apiParameterRestriction": { "additionalProperties": false, "description": "Contains information about restrictions and XML representation rules specified for the parameter.", "nullable": true, "type": "object", "properties": { "arrayRestriction": { "additionalProperties": false, "description": "Contains information about array restrictions for array type parameters. Define this object only if you enabled the corresponding `array` member.", "nullable": true, "type": "object", "properties": { "collectionFormat": { "default": "csv", "description": "The format of the array that specifies how you separated array values, either the default `csv` for comma separated values, `ssv` for space separated values, `tsv` for tab separated values, `pipes` for pipe separated values, or `multi` for several parameter instances instead of several values for a single instance.", "type": "string", "enum": [ "csv", "ssv", "tsv", "pipes", "multi" ] }, "maxItems": { "description": "The maximum allowed number of array items.", "type": "integer" }, "minItems": { "description": "The minimum allowed number of array items.", "type": "integer" }, "uniqueItems": { "description": "Whether the array contains only unique items.", "type": "boolean" } } }, "lengthRestriction": { "additionalProperties": false, "description": "Contains information about length restrictions for string type parameters.", "nullable": true, "type": "object", "properties": { "lengthMax": { "description": "The maximum allowed number of characters in the string.", "nullable": true, "type": "integer" }, "lengthMin": { "description": "The minimum allowed number of characters in the string.", "nullable": true, "type": "integer" } } }, "numberRangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for number type parameters.", "nullable": true, "type": "object", "properties": { "numberRangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "number" }, "numberRangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "number" } } }, "rangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for integer type parameters.", "nullable": true, "type": "object", "properties": { "rangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "integer" }, "rangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "integer" } } }, "responseRestriction": { "additionalProperties": false, "type": "object", "properties": { "maxBodySize": { "description": "Limit how large the response body can be before tripping the firewall action. The default is `SIZE_6K`. You can choose `SIZE_8K`, `SIZE_12K`, or `NO_LIMIT`, which allows a response of any size.", "type": "string", "enum": [ "SIZE_6K", "SIZE_8K", "SIZE_12K", "NO_LIMIT" ] }, "statusCodes": { "description": "The response status codes to match to a particular response body format. A `null` or empty value means the response body definition applies to any response body.", "nullable": true, "type": "array", "items": { "type": "integer" } } } }, "xmlConversionRule": { "additionalProperties": false, "description": "Contains information about an XML representation of a JSON-encoded parameter.", "nullable": true, "type": "object", "properties": { "attribute": { "default": false, "description": "Whether the parameter should be represented as an attribute.", "type": "boolean" }, "name": { "description": "The name of the parameter in XML. By default, the XML name is the same as the parameter name specified in the API definition.", "type": "string" }, "namespace": { "description": "The XML namespace.", "type": "string" }, "prefix": { "description": "The prefix for the XML namespace.", "type": "string" }, "wrapped": { "default": false, "description": "Whether the parameter should be wrapped in a parent XML element.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/xmlRestrictionDto.yaml" } } } }, "apiParameterType": { "description": "The data type of the parameter, either `string`, `integer`, `number`, `boolean`, or `json/xml` for JSON or XML objects.", "type": "string", "enum": [ "string", "integer", "number", "boolean", "json/xml" ] }, "apiResourceMethParamId": { "description": "The unique identifier for the parameter's parent method.", "nullable": true, "readOnly": true, "type": "integer" }, "array": { "description": "Whether the parameter can express more than one value. This member is only applicable for `apiChildParameters` that you can specify if the corresponding `apiParameterLocation` is `body` and the `apiParameterType` is `json/xml`. If you enable this, also define the `arrayRestriction` member.", "type": "boolean" }, "pathParamLocationId": { "description": "The index of a segment that includes a path parameter in a resource path. For example, given a path `\\books\\{bookId}`, the `books` segment has index `0`, and the path parameter `{bookId}` has index `1`.", "nullable": true, "type": "number" }, "response": { "description": "Whether the parameter is within a response type.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiParameterDto.yaml" } } }, "apiResourceMethod": { "description": "The core HTTP method to which the resource may respond, either `GET`, `PUT`, `POST`, `DELETE`, `HEAD`, `PATCH`, or `OPTIONS`.", "type": "string", "enum": [ "GET", "PUT", "POST", "DELETE", "HEAD", "PATCH", "OPTIONS" ] }, "apiResourceMethodId": { "description": "The unique identifier for the resource's allowed method.", "nullable": true, "readOnly": true, "type": "integer" }, "apiResourceMethodLogicId": { "description": "The unique identifier for the resource's method across all endpoint versions.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiMethodParametersDto.yaml" } } }, "apiResourceName": { "description": "The name of the resource.", "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the resource.", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the resource.", "type": "string" }, "description": { "description": "The description to clarify the resource's function within the API. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "type": "number" }, "private": { "description": "Whether the resource is private. API consumers can access private resources only if they identify with an appropriate API key.", "type": "boolean" }, "resourcePath": { "description": "The URL path relative to the hostnames on which the resource resides. When entering a resource path, you can use curly brackets (`{}`) to define path parameters (for example, `/path/{pathparam}`). If you decide to do so, ensure that the value of the `apiParameterName` member in the corresponding parameter definition matches the name that you specified in the resource path.", "type": "string" }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the resource.", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the resource.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiResourceMethParamsDto.yaml" } } }, "apiSource": { "description": "Specifies if the API's data comes from `API_DISCOVERY` or was provided by the `USER`.", "nullable": true, "type": "string", "enum": [ "USER", "API_DISCOVERY" ] }, "apiVersionInfo": { "additionalProperties": false, "description": "Contains information about a major API version. This refers to REST API versioning and is a different concept than the endpoint configuration versions you create at Akamai.", "nullable": true, "type": "object", "required": [ "location" ], "properties": { "location": { "description": "The location of the API version value in an incoming request. Either `HEADER`, `BASE_PATH`, or `QUERY` parameter.", "type": "string", "enum": [ "HEADER", "BASE_PATH", "QUERY" ] }, "parameterName": { "description": "The name of the header or query parameter that includes the API version value. This is applicable only if the corresponding `location` member is either `HEADER` or `QUERY`.", "type": "string" }, "value": { "description": "The expected API version value in an incoming request.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiVersionInfo.yaml" } }, "availableActions": { "description": "The collection of available actions that you can perform on the endpoint depending on its versions' activation status. For possible values, see [Endpoint.availableActions values](#enumvalues2).", "minItems": 0, "nullable": true, "readOnly": true, "type": "array", "items": { "type": "string", "enum": [ "DELETE", "CLONE_ENDPOINT", "COMPARE_ENDPOINT", "COMPARE_AAG_SETTINGS", "COMPARE_RAPID_SETTINGS", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING", "ACTIVATE_ON_PRODUCTION", "DEACTIVATE_ON_STAGING", "DEACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "SHOW_ENDPOINT" ] } }, "basePath": { "description": "The URL path that serves as a root prefix for all resources' `resourcePath` values. This is `/` if empty. Don't append a `/` character to the path. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "minLength": 0, "nullable": true, "type": "string" }, "caseSensitive": { "description": "Whether the URLs and parameters within the endpoint are case sensitive.", "nullable": true, "type": "boolean" }, "clonedFromVersion": { "description": "For cloned endpoints, the unique identifier for the source endpoint version.", "nullable": true, "readOnly": true, "type": "integer" }, "consumeType": { "description": "The content type the endpoint exchanges, either `json`, `xml`, `urlencoded`, `json/xml/urlencoded`, `json/urlencoded`, `json/xml`, or `xml/urlencoded` for multi-format APIs, `any`, or `none`. A `null` value is the same as a `none` string.", "nullable": true, "type": "string", "enum": [ "none", "json", "xml", "json/xml", "any", "urlencoded", "json/urlencoded", "xml/urlencoded", "json/xml/urlencoded" ] }, "contractId": { "description": "The unique identifier for the contract with Akamai under which you provisioned security and delivery settings for this API.", "nullable": true, "readOnly": true, "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the endpoint.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "createdBy": { "description": "The identifier for the user who created the endpoint.", "nullable": true, "readOnly": true, "type": "string" }, "description": { "description": "The description of the endpoint. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "nullable": true, "type": "string" }, "discoveredPiiIds": { "description": "The collection of personally identifiable information (PII) in your API parameters discovered by the network.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "endpointHidden": { "description": "Specifies whether the endpoint is hidden. You cannot activate or delete versions of a hidden endpoint. If you want to do so, you first need to reveal the endpoint by running the [Show an endpoint](https://techdocs.akamai.com/api-definitions/reference/post-endpoint-show) operation.", "nullable": true, "readOnly": true, "type": "boolean" }, "groupId": { "description": "The unique identifier for the group in Control Center under which you provisioned security and delivery settings for this API.", "nullable": true, "readOnly": true, "type": "integer" }, "isGraphQL": { "description": "Whether the endpoint uses GraphQL to deliver structured content to clients.", "type": "boolean" }, "lockVersion": { "description": "The identifier for the last modification of an endpoint version, used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "readOnly": true, "type": "integer" }, "matchPathSegmentParam": { "default": true, "description": "Whether or not to include path segment parameters in match criteria, like the `jsessionid` portion of `/ssocookie;jsessionid=434343`.", "nullable": true, "type": "boolean" }, "positiveConstrainsEnabled": { "description": "Specifies whether the KSD firewall policies are enabled for the endpoint.", "nullable": true, "type": "boolean" }, "productionStatus": { "description": "The version activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "productionVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the production network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "protectedByApiKey": { "description": "Whether you enabled API key protection for the endpoint version by making the version private.", "readOnly": true, "type": "boolean" }, "responseConstraintsEnabled": { "description": "Specifies whether response constraints are enforced for the endpoint. Note that if you enable response constraints but don't define the constraints, it behaves as if disabled.", "nullable": true, "readOnly": true, "type": "boolean" }, "securityScheme": { "additionalProperties": false, "description": "Contains information about the key with which users may access the endpoint.", "nullable": true, "type": "object", "properties": { "securitySchemeDetail": { "additionalProperties": false, "description": "Contains information about the location of the API key.", "type": "object", "properties": { "apiKeyLocation": { "description": "The location of the API key in incoming requests, either `cookie`, `header`, or `query` parameter.", "type": "string", "enum": [ "cookie", "header", "query" ] }, "apiKeyName": { "description": "The name of the header, query parameter, or cookie where you located the API key.", "type": "string" } } }, "securitySchemeType": { "description": "The type of security scheme implemented for the endpoint. The only valid value is `apikey`.", "type": "string", "enum": [ "apikey" ] } } }, "source": { "additionalProperties": false, "description": "Contains information about the import file used to create the endpoint.", "nullable": true, "readOnly": true, "type": "object", "properties": { "apiVersion": { "description": "The major version of the API defined in the import file.", "nullable": true, "readOnly": true, "type": "string" }, "specificationVersion": { "description": "The version of the import file's specification.", "example": "3.0.0", "nullable": true, "readOnly": true, "type": "string" }, "type": { "description": "The specification of the import file you uploaded to create the endpoint version. Either `SWAGGER` or `RAML`.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "SWAGGER", "RAML" ] } }, "x-akamai": { "file-path": "schemas/apiEndpointSourceDto.yaml" } }, "stagingStatus": { "description": "The version activation status on the staging network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "stagingVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the staging network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the endpoint.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the endpoint.", "nullable": true, "readOnly": true, "type": "string" }, "versionHidden": { "description": "Specifies whether the endpoint version is hidden. You cannot activate or delete hidden versions. If you want to do so, you first need to reveal the version by running the [Show a version](https://techdocs.akamai.com/api-definitions/reference/post-version-show) operation.", "nullable": true, "readOnly": true, "type": "boolean" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointWithResourceDto-recurse.yaml" } } } } }, "400": { "description": "Some of the file input data is invalid.", "content": { "application/json": { "example": { "apiEndpointDetails": { "akamaiSecurityRestrictions": null, "apiCategoryIds": null, "apiEndPointId": null, "apiEndPointLocked": null, "apiEndPointName": "Bookstore API", "apiEndPointScheme": "http/https", "apiProtectVersion": null, "basePath": "/bookstore", "clonedFromVersion": null, "consumeType": "any", "contractId": null, "createDate": null, "createdBy": null, "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.", "groupId": null, "lockVersion": -1, "productionStatus": null, "productionVersion": null, "protectedByApiKey": false, "securityScheme": null, "stagingStatus": null, "stagingVersion": null, "updateDate": null, "updatedBy": null, "versionNumber": null, "apiEndPointHosts": [ "bookstore.api.akamai.com" ], "apiResources": [] }, "problems": [ { "detail": "The object instance has properties which are not allowed by the schema: [\"unrecognizable\"]", "domain": "validation", "keyword": "additionalProperties", "level": "error", "pointer": "/paths/books/post", "title": "Invalid schema", "type": "/api-definitions/error-types/IMPORT-INVALID-SCHEMA" } ] }, "schema": { "additionalProperties": false, "description": "Contains information about a result of an import operation, including endpoint details and a list of potential issues.", "type": "object", "properties": { "apiEndpointDetails": { "additionalProperties": false, "description": "Contains information about the imported endpoint.", "type": "object", "required": [ "apiEndPointName", "apiEndPointHosts", "groupId", "contractId", "lockVersion" ], "properties": { "akamaiSecurityRestrictions": { "additionalProperties": false, "description": "Contains information about the Kona Site Defender security restrictions that you apply to an API. Note that you should only include these details in your requests if you're a Kona Site Defender customer.", "nullable": true, "type": "object", "properties": { "ALLOW_ONLY_SPEC_UNDEFINED_METHODS": { "description": "Whether the API allows requests on undefined resources, but only for specific methods. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_BODY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in body. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_COOKIE_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in cookies. These booleans override members in the Method object. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_HEADER_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in header. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_DELETE": { "description": "Whether the API allows requests on undefined resources using the DELETE method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_GET": { "description": "Whether the API allows requests on undefined resources using the GET method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_HEAD": { "description": "Whether the API allows requesting undefined resources using HEAD method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_OPTIONS": { "description": "Whether the API allows requesting undefined resources using OPTIONS method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PATCH": { "description": "Whether the API allows requesting undefined resources using PATCH method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_POST": { "description": "Whether the API allows requests on undefined resources using the POST method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PUT": { "description": "Whether the API allows requests on undefined resources using the PUT method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_PARAMS": { "description": "Whether the API allows requesting with undefined parameters. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_QUERY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in query string. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_RESOURCES": { "description": "Whether the API allows requests on undefined resources. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_SPEC_PARAMS": { "description": "Whether the API allows requesting undefined resources, but only for specific locations. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "MAX_BODY_SIZE": { "description": "The maximum allowed size of a request body.", "nullable": true, "type": "integer" }, "MAX_DOC_DEPTH": { "description": "The maximum depth of nested data elements allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_ELEMENT_NAME_LENGTH": { "description": "The maximum length of an XML element name or JSON object key name allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_INTEGER_VALUE": { "description": "The maximum integer value allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_JSONXML_ELEMENT": { "description": "The maximum number of XML elements, JSON object keys, or array items allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_STRING_LENGTH": { "description": "The maximum length of any string value in a request body.", "nullable": true, "type": "integer" }, "POSITIVE_SECURITY_ENABLED": { "description": "Whether to enforce the API request body and resource constraints as allowlists in your KSD security policies. Either `1` for enabled security constraints, or `0` for disabled.", "type": "integer", "enum": [ 0, 1 ] }, "POSITIVE_SECURITY_VERSION": { "description": "Whether to create the API with API Protection 2 or above. Either `1`, `2` for enabled API Protection 2, or `null` for the legacy API.", "nullable": true, "type": "integer", "enum": [ 1, 2 ] }, "RESPONSE_RESTRICTIONS_ENABLED": { "description": "When set to `1`, the API allows for responses with undefined parameters in the response body. Otherwise the value is `0`.", "type": "integer", "enum": [ 0, 1 ] } } }, "apiCategoryIds": { "description": "The category identifiers that apply to the endpoint. The value is `null` for uncategorized endpoints.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "apiEndPointHosts": { "description": "The hostnames that may receive traffic for the endpoint. You need at least one hostname before activating the endpoint.", "minItems": 1, "type": "array", "items": { "type": "string" } }, "apiEndPointId": { "description": "The unique identifier for the endpoint.", "nullable": true, "readOnly": true, "type": "integer" }, "apiEndPointLocked": { "description": "Whether the endpoint version is read-only.", "nullable": true, "readOnly": true, "type": "boolean" }, "apiEndPointName": { "description": "The name of the endpoint, unique within the account.", "type": "string" }, "apiEndPointScheme": { "description": "The URL scheme to which the endpoint may respond, either `http`, `https`, or `http/https` for both.", "nullable": true, "type": "string", "enum": [ "http", "https", "http/https" ] }, "apiEndPointVersion": { "description": "The unique identifier for the endpoint version.", "nullable": true, "readOnly": true, "type": "integer" }, "apiGatewayEnabled": { "default": true, "description": "Whether the API Gateway product should be enabled for the endpoint. If `null`, the member is set to `true`.", "nullable": true, "type": "boolean" }, "apiResources": { "description": "The list of resources assigned to the endpoint.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a resource assigned to an endpoint.", "type": "object", "required": [ "apiResourceName", "resourcePath" ], "properties": { "apiResourceClonedFromId": { "description": "For cloned resources, the unique identifier for the source resource.", "nullable": true, "type": "integer" }, "apiResourceId": { "description": "The unique identifier for the resource.", "type": "integer" }, "apiResourceLogicId": { "description": "The unique identifier for the resource across all endpoint versions.", "type": "integer" }, "apiResourceMethodNameLists": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "type": "string" } }, "apiResourceMethods": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "additionalProperties": false, "description": "Contains information about an HTTP method to which a resource may respond.", "type": "object", "required": [ "apiResourceMethod" ], "properties": { "apiParameters": { "description": "The list of parameter objects assigned to the method.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a method's parameter.", "type": "object", "required": [ "apiParameterName", "apiParameterType", "apiParameterRequired", "apiParameterLocation" ], "properties": { "apiChildParameters": { "description": "The collection of child JSON members or XML elements for JSON or XML body type parameters.", "type": "array", "items": { "description": "A further nested endpoint object.", "type": "object", "x-akamai": { "file-path": "schemas/apiParameterDto-nested.yaml" } } }, "apiParamLogicId": { "description": "The unique identifier for the parameter across all endpoint versions.", "readOnly": true, "type": "integer" }, "apiParameterContentType": { "description": "The content type of the parameter. Only applicable for top level body parameters.", "type": "string", "enum": [ "json", "xml", "urlencoded", "json/xml", "any", "none" ] }, "apiParameterId": { "description": "The unique identifier for the parameter.", "readOnly": true, "type": "integer" }, "apiParameterLocation": { "description": "The location of the parameter in an HTTP request, either `query`, `header`, `path`, `cookie`, or `body` for a JSON or XML body type parameter.", "type": "string", "enum": [ "query", "body", "header", "path", "cookie" ] }, "apiParameterName": { "description": "The name of the parameter. If the corresponding `apiParameterLocation` is `path`, ensure that this value matches the parameter name you specified in the `resourcePath`.", "type": "string" }, "apiParameterNotes": { "description": "The description to clarify the parameter's function. If you specify an empty string in the request or omit this member from the object, the JSON response reflects it as `null`.", "nullable": true, "type": "string" }, "apiParameterRequired": { "description": "Specifies whether the API user needs to specify the parameter. If the corresponding `apiParameterLocation` is `path`, set this member to `true`.", "type": "boolean" }, "apiParameterRestriction": { "additionalProperties": false, "description": "Contains information about restrictions and XML representation rules specified for the parameter.", "nullable": true, "type": "object", "properties": { "arrayRestriction": { "additionalProperties": false, "description": "Contains information about array restrictions for array type parameters. Define this object only if you enabled the corresponding `array` member.", "nullable": true, "type": "object", "properties": { "collectionFormat": { "default": "csv", "description": "The format of the array that specifies how you separated array values, either the default `csv` for comma separated values, `ssv` for space separated values, `tsv` for tab separated values, `pipes` for pipe separated values, or `multi` for several parameter instances instead of several values for a single instance.", "type": "string", "enum": [ "csv", "ssv", "tsv", "pipes", "multi" ] }, "maxItems": { "description": "The maximum allowed number of array items.", "type": "integer" }, "minItems": { "description": "The minimum allowed number of array items.", "type": "integer" }, "uniqueItems": { "description": "Whether the array contains only unique items.", "type": "boolean" } } }, "lengthRestriction": { "additionalProperties": false, "description": "Contains information about length restrictions for string type parameters.", "nullable": true, "type": "object", "properties": { "lengthMax": { "description": "The maximum allowed number of characters in the string.", "nullable": true, "type": "integer" }, "lengthMin": { "description": "The minimum allowed number of characters in the string.", "nullable": true, "type": "integer" } } }, "numberRangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for number type parameters.", "nullable": true, "type": "object", "properties": { "numberRangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "number" }, "numberRangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "number" } } }, "rangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for integer type parameters.", "nullable": true, "type": "object", "properties": { "rangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "integer" }, "rangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "integer" } } }, "responseRestriction": { "additionalProperties": false, "type": "object", "properties": { "maxBodySize": { "description": "Limit how large the response body can be before tripping the firewall action. The default is `SIZE_6K`. You can choose `SIZE_8K`, `SIZE_12K`, or `NO_LIMIT`, which allows a response of any size.", "type": "string", "enum": [ "SIZE_6K", "SIZE_8K", "SIZE_12K", "NO_LIMIT" ] }, "statusCodes": { "description": "The response status codes to match to a particular response body format. A `null` or empty value means the response body definition applies to any response body.", "nullable": true, "type": "array", "items": { "type": "integer" } } } }, "xmlConversionRule": { "additionalProperties": false, "description": "Contains information about an XML representation of a JSON-encoded parameter.", "nullable": true, "type": "object", "properties": { "attribute": { "default": false, "description": "Whether the parameter should be represented as an attribute.", "type": "boolean" }, "name": { "description": "The name of the parameter in XML. By default, the XML name is the same as the parameter name specified in the API definition.", "type": "string" }, "namespace": { "description": "The XML namespace.", "type": "string" }, "prefix": { "description": "The prefix for the XML namespace.", "type": "string" }, "wrapped": { "default": false, "description": "Whether the parameter should be wrapped in a parent XML element.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/xmlRestrictionDto.yaml" } } } }, "apiParameterType": { "description": "The data type of the parameter, either `string`, `integer`, `number`, `boolean`, or `json/xml` for JSON or XML objects.", "type": "string", "enum": [ "string", "integer", "number", "boolean", "json/xml" ] }, "apiResourceMethParamId": { "description": "The unique identifier for the parameter's parent method.", "nullable": true, "readOnly": true, "type": "integer" }, "array": { "description": "Whether the parameter can express more than one value. This member is only applicable for `apiChildParameters` that you can specify if the corresponding `apiParameterLocation` is `body` and the `apiParameterType` is `json/xml`. If you enable this, also define the `arrayRestriction` member.", "type": "boolean" }, "pathParamLocationId": { "description": "The index of a segment that includes a path parameter in a resource path. For example, given a path `\\books\\{bookId}`, the `books` segment has index `0`, and the path parameter `{bookId}` has index `1`.", "nullable": true, "type": "number" }, "response": { "description": "Whether the parameter is within a response type.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiParameterDto.yaml" } } }, "apiResourceMethod": { "description": "The core HTTP method to which the resource may respond, either `GET`, `PUT`, `POST`, `DELETE`, `HEAD`, `PATCH`, or `OPTIONS`.", "type": "string", "enum": [ "GET", "PUT", "POST", "DELETE", "HEAD", "PATCH", "OPTIONS" ] }, "apiResourceMethodId": { "description": "The unique identifier for the resource's allowed method.", "nullable": true, "readOnly": true, "type": "integer" }, "apiResourceMethodLogicId": { "description": "The unique identifier for the resource's method across all endpoint versions.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiMethodParametersDto.yaml" } } }, "apiResourceName": { "description": "The name of the resource.", "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the resource.", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the resource.", "type": "string" }, "description": { "description": "The description to clarify the resource's function within the API. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "type": "number" }, "private": { "description": "Whether the resource is private. API consumers can access private resources only if they identify with an appropriate API key.", "type": "boolean" }, "resourcePath": { "description": "The URL path relative to the hostnames on which the resource resides. When entering a resource path, you can use curly brackets (`{}`) to define path parameters (for example, `/path/{pathparam}`). If you decide to do so, ensure that the value of the `apiParameterName` member in the corresponding parameter definition matches the name that you specified in the resource path.", "type": "string" }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the resource.", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the resource.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiResourceMethParamsDto.yaml" } } }, "apiSource": { "description": "Specifies if the API's data comes from `API_DISCOVERY` or was provided by the `USER`.", "nullable": true, "type": "string", "enum": [ "USER", "API_DISCOVERY" ] }, "apiVersionInfo": { "additionalProperties": false, "description": "Contains information about a major API version. This refers to REST API versioning and is a different concept than the endpoint configuration versions you create at Akamai.", "nullable": true, "type": "object", "required": [ "location" ], "properties": { "location": { "description": "The location of the API version value in an incoming request. Either `HEADER`, `BASE_PATH`, or `QUERY` parameter.", "type": "string", "enum": [ "HEADER", "BASE_PATH", "QUERY" ] }, "parameterName": { "description": "The name of the header or query parameter that includes the API version value. This is applicable only if the corresponding `location` member is either `HEADER` or `QUERY`.", "type": "string" }, "value": { "description": "The expected API version value in an incoming request.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiVersionInfo.yaml" } }, "availableActions": { "description": "The collection of available actions that you can perform on the endpoint depending on its versions' activation status. For possible values, see [Endpoint.availableActions values](#enumvalues2).", "minItems": 0, "nullable": true, "readOnly": true, "type": "array", "items": { "type": "string", "enum": [ "DELETE", "CLONE_ENDPOINT", "COMPARE_ENDPOINT", "COMPARE_AAG_SETTINGS", "COMPARE_RAPID_SETTINGS", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING", "ACTIVATE_ON_PRODUCTION", "DEACTIVATE_ON_STAGING", "DEACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "SHOW_ENDPOINT" ] } }, "basePath": { "description": "The URL path that serves as a root prefix for all resources' `resourcePath` values. This is `/` if empty. Don't append a `/` character to the path. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "minLength": 0, "nullable": true, "type": "string" }, "caseSensitive": { "description": "Whether the URLs and parameters within the endpoint are case sensitive.", "nullable": true, "type": "boolean" }, "clonedFromVersion": { "description": "For cloned endpoints, the unique identifier for the source endpoint version.", "nullable": true, "readOnly": true, "type": "integer" }, "consumeType": { "description": "The content type the endpoint exchanges, either `json`, `xml`, `urlencoded`, `json/xml/urlencoded`, `json/urlencoded`, `json/xml`, or `xml/urlencoded` for multi-format APIs, `any`, or `none`. A `null` value is the same as a `none` string.", "nullable": true, "type": "string", "enum": [ "none", "json", "xml", "json/xml", "any", "urlencoded", "json/urlencoded", "xml/urlencoded", "json/xml/urlencoded" ] }, "contractId": { "description": "The unique identifier for the contract with Akamai under which you provisioned security and delivery settings for this API.", "nullable": true, "readOnly": true, "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the endpoint.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "createdBy": { "description": "The identifier for the user who created the endpoint.", "nullable": true, "readOnly": true, "type": "string" }, "description": { "description": "The description of the endpoint. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "nullable": true, "type": "string" }, "discoveredPiiIds": { "description": "The collection of personally identifiable information (PII) in your API parameters discovered by the network.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "endpointHidden": { "description": "Specifies whether the endpoint is hidden. You cannot activate or delete versions of a hidden endpoint. If you want to do so, you first need to reveal the endpoint by running the [Show an endpoint](https://techdocs.akamai.com/api-definitions/reference/post-endpoint-show) operation.", "nullable": true, "readOnly": true, "type": "boolean" }, "groupId": { "description": "The unique identifier for the group in Control Center under which you provisioned security and delivery settings for this API.", "nullable": true, "readOnly": true, "type": "integer" }, "isGraphQL": { "description": "Whether the endpoint uses GraphQL to deliver structured content to clients.", "type": "boolean" }, "lockVersion": { "description": "The identifier for the last modification of an endpoint version, used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "readOnly": true, "type": "integer" }, "matchPathSegmentParam": { "default": true, "description": "Whether or not to include path segment parameters in match criteria, like the `jsessionid` portion of `/ssocookie;jsessionid=434343`.", "nullable": true, "type": "boolean" }, "positiveConstrainsEnabled": { "description": "Specifies whether the KSD firewall policies are enabled for the endpoint.", "nullable": true, "type": "boolean" }, "productionStatus": { "description": "The version activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "productionVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the production network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "protectedByApiKey": { "description": "Whether you enabled API key protection for the endpoint version by making the version private.", "readOnly": true, "type": "boolean" }, "responseConstraintsEnabled": { "description": "Specifies whether response constraints are enforced for the endpoint. Note that if you enable response constraints but don't define the constraints, it behaves as if disabled.", "nullable": true, "readOnly": true, "type": "boolean" }, "securityScheme": { "additionalProperties": false, "description": "Contains information about the key with which users may access the endpoint.", "nullable": true, "type": "object", "properties": { "securitySchemeDetail": { "additionalProperties": false, "description": "Contains information about the location of the API key.", "type": "object", "properties": { "apiKeyLocation": { "description": "The location of the API key in incoming requests, either `cookie`, `header`, or `query` parameter.", "type": "string", "enum": [ "cookie", "header", "query" ] }, "apiKeyName": { "description": "The name of the header, query parameter, or cookie where you located the API key.", "type": "string" } } }, "securitySchemeType": { "description": "The type of security scheme implemented for the endpoint. The only valid value is `apikey`.", "type": "string", "enum": [ "apikey" ] } } }, "source": { "additionalProperties": false, "description": "Contains information about the import file used to create the endpoint.", "nullable": true, "readOnly": true, "type": "object", "properties": { "apiVersion": { "description": "The major version of the API defined in the import file.", "nullable": true, "readOnly": true, "type": "string" }, "specificationVersion": { "description": "The version of the import file's specification.", "example": "3.0.0", "nullable": true, "readOnly": true, "type": "string" }, "type": { "description": "The specification of the import file you uploaded to create the endpoint version. Either `SWAGGER` or `RAML`.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "SWAGGER", "RAML" ] } }, "x-akamai": { "file-path": "schemas/apiEndpointSourceDto.yaml" } }, "stagingStatus": { "description": "The version activation status on the staging network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "stagingVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the staging network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the endpoint.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the endpoint.", "nullable": true, "readOnly": true, "type": "string" }, "versionHidden": { "description": "Specifies whether the endpoint version is hidden. You cannot activate or delete hidden versions. If you want to do so, you first need to reveal the version by running the [Show a version](https://techdocs.akamai.com/api-definitions/reference/post-version-show) operation.", "nullable": true, "readOnly": true, "type": "boolean" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointWithResourceDto-recurse.yaml" } }, "problems": { "description": "The list of problems that occurred during the import, such as schema errors or unsupported property warnings.", "type": "array", "items": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } }, "x-akamai": { "file-path": "schemas/importResult.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the endpoint version.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/versionNumber-path.yaml" } }, { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "in": "path", "name": "apiEndPointId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/apiEndPointId-path.yaml" } } ] }, "/endpoints/{apiEndPointId}/versions/{versionNumber}/hide": { "post": { "description": "Hides an endpoint version. You can only hide inactive or deactivated versions. You can't activate or delete hidden versions. A hidden endpoint version appears in the [List versions](https://techdocs.akamai.com/api-definitions/reference/get-endpoint-versions) operation's response object with the `hidden` parameter set to `true`. Running this operation affects the version listing in the API Definitions user interface.", "operationId": "post-endpoint-version-hide", "summary": "Hide a version", "tags": [ "Versions" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/post-endpoint-version-hide" }, "responses": { "200": { "description": "Operation succeeded.", "content": { "application/json": { "example": { "akamaiSecurityRestrictions": null, "apiEndPointId": 492375, "apiEndPointLocked": false, "apiEndPointName": "Bookstore API", "apiEndPointScheme": "http/https", "apiGatewayEnabled": true, "basePath": "/bookstore", "caseSensitive": true, "clonedFromVersion": 1, "consumeType": "any", "contractId": "K-0N7RAK71", "createDate": "2019-06-12T13:06:52+0000", "createdBy": "tyamada", "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.", "endpointHidden": false, "graphQL": false, "groupId": 44681, "isGraphQL": false, "lockVersion": 2, "positiveConstrainsEnabled": null, "productionStatus": null, "protectedByApiKey": true, "responseConstraintsEnabled": false, "source": null, "stagingStatus": null, "updateDate": "2019-06-12T13:06:52+0000", "updatedBy": "bookstore_admin", "versionHidden": false, "versionNumber": 1, "apiCategoryIds": [ 2, 7 ], "apiEndPointHosts": [ "bookstore.api.akamai.com" ], "availableActions": [ "DELETE", "CLONE_ENDPOINT", "ACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING" ], "productionVersion": { "lastError": null, "status": null, "timestamp": null, "versionNumber": null }, "securityScheme": { "securitySchemeType": "apikey", "securitySchemeDetail": { "apiKeyLocation": "header", "apiKeyName": "apikey" } }, "stagingVersion": { "lastError": null, "status": null, "timestamp": null, "versionNumber": null }, "apiResources": [ { "apiResourceClonedFromId": null, "apiResourceId": 2926712, "apiResourceLogicId": 118435, "apiResourceName": "books", "createDate": "2019-06-12T13:06:52+0000", "createdBy": "alfulani", "description": "A book item within the bookstore API.", "link": null, "lockVersion": 2, "private": false, "resourcePath": "/books/{bookId}", "updateDate": "2019-06-12T13:06:52+0000", "updatedBy": "bookstore_admin", "apiResourceMethods": [ { "apiResourceMethod": "GET", "apiResourceMethodId": 341591, "apiResourceMethodLogicId": 184404, "apiParameters": [ { "apiParamLogicId": 578116, "apiParameterId": 1212945, "apiParameterLocation": "path", "apiParameterName": "bookId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterRestriction": null, "apiParameterType": "string", "apiResourceMethParamId": 494448, "array": false, "pathParamLocationId": null, "response": false, "apiChildParameters": [] } ] }, { "apiResourceMethod": "POST", "apiResourceMethodId": 341592, "apiResourceMethodLogicId": 184405, "apiParameters": [ { "apiParamLogicId": 578117, "apiParameterId": 1212946, "apiParameterLocation": "path", "apiParameterName": "bookId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterType": "string", "apiResourceMethParamId": 494449, "array": false, "pathParamLocationId": null, "response": false, "apiChildParameters": [], "apiParameterRestriction": { "arrayRestriction": null, "numberRangeRestriction": null, "rangeRestriction": null, "xmlConversionRule": null, "lengthRestriction": { "lengthMax": 15, "lengthMin": 3 } } } ] } ] } ] }, "schema": { "additionalProperties": false, "description": "Contains information about an endpoint and its associated resources.", "type": "object", "required": [ "apiEndPointName", "apiEndPointHosts", "groupId", "contractId", "lockVersion" ], "properties": { "akamaiSecurityRestrictions": { "additionalProperties": false, "description": "Contains information about the Kona Site Defender security restrictions that you apply to an API. Note that you should only include these details in your requests if you're a Kona Site Defender customer.", "nullable": true, "type": "object", "properties": { "ALLOW_ONLY_SPEC_UNDEFINED_METHODS": { "description": "Whether the API allows requests on undefined resources, but only for specific methods. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_BODY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in body. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_COOKIE_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in cookies. These booleans override members in the Method object. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_HEADER_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in header. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_DELETE": { "description": "Whether the API allows requests on undefined resources using the DELETE method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_GET": { "description": "Whether the API allows requests on undefined resources using the GET method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_HEAD": { "description": "Whether the API allows requesting undefined resources using HEAD method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_OPTIONS": { "description": "Whether the API allows requesting undefined resources using OPTIONS method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PATCH": { "description": "Whether the API allows requesting undefined resources using PATCH method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_POST": { "description": "Whether the API allows requests on undefined resources using the POST method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PUT": { "description": "Whether the API allows requests on undefined resources using the PUT method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_PARAMS": { "description": "Whether the API allows requesting with undefined parameters. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_QUERY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in query string. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_RESOURCES": { "description": "Whether the API allows requests on undefined resources. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_SPEC_PARAMS": { "description": "Whether the API allows requesting undefined resources, but only for specific locations. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "MAX_BODY_SIZE": { "description": "The maximum allowed size of a request body.", "nullable": true, "type": "integer" }, "MAX_DOC_DEPTH": { "description": "The maximum depth of nested data elements allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_ELEMENT_NAME_LENGTH": { "description": "The maximum length of an XML element name or JSON object key name allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_INTEGER_VALUE": { "description": "The maximum integer value allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_JSONXML_ELEMENT": { "description": "The maximum number of XML elements, JSON object keys, or array items allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_STRING_LENGTH": { "description": "The maximum length of any string value in a request body.", "nullable": true, "type": "integer" }, "POSITIVE_SECURITY_ENABLED": { "description": "Whether to enforce the API request body and resource constraints as allowlists in your KSD security policies. Either `1` for enabled security constraints, or `0` for disabled.", "type": "integer", "enum": [ 0, 1 ] }, "POSITIVE_SECURITY_VERSION": { "description": "Whether to create the API with API Protection 2 or above. Either `1`, `2` for enabled API Protection 2, or `null` for the legacy API.", "nullable": true, "type": "integer", "enum": [ 1, 2 ] }, "RESPONSE_RESTRICTIONS_ENABLED": { "description": "When set to `1`, the API allows for responses with undefined parameters in the response body. Otherwise the value is `0`.", "type": "integer", "enum": [ 0, 1 ] } } }, "apiCategoryIds": { "description": "The category identifiers that apply to the endpoint. The value is `null` for uncategorized endpoints.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "apiEndPointHosts": { "description": "The hostnames that may receive traffic for the endpoint. You need at least one hostname before activating the endpoint.", "minItems": 1, "type": "array", "items": { "type": "string" } }, "apiEndPointId": { "description": "The unique identifier for the endpoint.", "nullable": true, "readOnly": true, "type": "integer" }, "apiEndPointLocked": { "description": "Whether the endpoint version is read-only.", "nullable": true, "readOnly": true, "type": "boolean" }, "apiEndPointName": { "description": "The name of the endpoint, unique within the account.", "type": "string" }, "apiEndPointScheme": { "description": "The URL scheme to which the endpoint may respond, either `http`, `https`, or `http/https` for both.", "nullable": true, "type": "string", "enum": [ "http", "https", "http/https" ] }, "apiEndPointVersion": { "description": "The unique identifier for the endpoint version.", "nullable": true, "readOnly": true, "type": "integer" }, "apiGatewayEnabled": { "default": true, "description": "Whether the API Gateway product should be enabled for the endpoint. If `null`, the member is set to `true`.", "nullable": true, "type": "boolean" }, "apiResources": { "description": "The list of resources assigned to the endpoint.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a resource assigned to an endpoint.", "type": "object", "required": [ "apiResourceName", "resourcePath" ], "properties": { "apiResourceClonedFromId": { "description": "For cloned resources, the unique identifier for the source resource.", "nullable": true, "type": "integer" }, "apiResourceId": { "description": "The unique identifier for the resource.", "type": "integer" }, "apiResourceLogicId": { "description": "The unique identifier for the resource across all endpoint versions.", "type": "integer" }, "apiResourceMethodNameLists": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "type": "string" } }, "apiResourceMethods": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "additionalProperties": false, "description": "Contains information about an HTTP method to which a resource may respond.", "type": "object", "required": [ "apiResourceMethod" ], "properties": { "apiParameters": { "description": "The list of parameter objects assigned to the method.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a method's parameter.", "type": "object", "required": [ "apiParameterName", "apiParameterType", "apiParameterRequired", "apiParameterLocation" ], "properties": { "apiChildParameters": { "description": "The collection of child JSON members or XML elements for JSON or XML body type parameters.", "type": "array", "items": { "description": "A further nested endpoint object.", "type": "object", "x-akamai": { "file-path": "schemas/apiParameterDto-nested.yaml" } } }, "apiParamLogicId": { "description": "The unique identifier for the parameter across all endpoint versions.", "readOnly": true, "type": "integer" }, "apiParameterContentType": { "description": "The content type of the parameter. Only applicable for top level body parameters.", "type": "string", "enum": [ "json", "xml", "urlencoded", "json/xml", "any", "none" ] }, "apiParameterId": { "description": "The unique identifier for the parameter.", "readOnly": true, "type": "integer" }, "apiParameterLocation": { "description": "The location of the parameter in an HTTP request, either `query`, `header`, `path`, `cookie`, or `body` for a JSON or XML body type parameter.", "type": "string", "enum": [ "query", "body", "header", "path", "cookie" ] }, "apiParameterName": { "description": "The name of the parameter. If the corresponding `apiParameterLocation` is `path`, ensure that this value matches the parameter name you specified in the `resourcePath`.", "type": "string" }, "apiParameterNotes": { "description": "The description to clarify the parameter's function. If you specify an empty string in the request or omit this member from the object, the JSON response reflects it as `null`.", "nullable": true, "type": "string" }, "apiParameterRequired": { "description": "Specifies whether the API user needs to specify the parameter. If the corresponding `apiParameterLocation` is `path`, set this member to `true`.", "type": "boolean" }, "apiParameterRestriction": { "additionalProperties": false, "description": "Contains information about restrictions and XML representation rules specified for the parameter.", "nullable": true, "type": "object", "properties": { "arrayRestriction": { "additionalProperties": false, "description": "Contains information about array restrictions for array type parameters. Define this object only if you enabled the corresponding `array` member.", "nullable": true, "type": "object", "properties": { "collectionFormat": { "default": "csv", "description": "The format of the array that specifies how you separated array values, either the default `csv` for comma separated values, `ssv` for space separated values, `tsv` for tab separated values, `pipes` for pipe separated values, or `multi` for several parameter instances instead of several values for a single instance.", "type": "string", "enum": [ "csv", "ssv", "tsv", "pipes", "multi" ] }, "maxItems": { "description": "The maximum allowed number of array items.", "type": "integer" }, "minItems": { "description": "The minimum allowed number of array items.", "type": "integer" }, "uniqueItems": { "description": "Whether the array contains only unique items.", "type": "boolean" } } }, "lengthRestriction": { "additionalProperties": false, "description": "Contains information about length restrictions for string type parameters.", "nullable": true, "type": "object", "properties": { "lengthMax": { "description": "The maximum allowed number of characters in the string.", "nullable": true, "type": "integer" }, "lengthMin": { "description": "The minimum allowed number of characters in the string.", "nullable": true, "type": "integer" } } }, "numberRangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for number type parameters.", "nullable": true, "type": "object", "properties": { "numberRangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "number" }, "numberRangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "number" } } }, "rangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for integer type parameters.", "nullable": true, "type": "object", "properties": { "rangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "integer" }, "rangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "integer" } } }, "responseRestriction": { "additionalProperties": false, "type": "object", "properties": { "maxBodySize": { "description": "Limit how large the response body can be before tripping the firewall action. The default is `SIZE_6K`. You can choose `SIZE_8K`, `SIZE_12K`, or `NO_LIMIT`, which allows a response of any size.", "type": "string", "enum": [ "SIZE_6K", "SIZE_8K", "SIZE_12K", "NO_LIMIT" ] }, "statusCodes": { "description": "The response status codes to match to a particular response body format. A `null` or empty value means the response body definition applies to any response body.", "nullable": true, "type": "array", "items": { "type": "integer" } } } }, "xmlConversionRule": { "additionalProperties": false, "description": "Contains information about an XML representation of a JSON-encoded parameter.", "nullable": true, "type": "object", "properties": { "attribute": { "default": false, "description": "Whether the parameter should be represented as an attribute.", "type": "boolean" }, "name": { "description": "The name of the parameter in XML. By default, the XML name is the same as the parameter name specified in the API definition.", "type": "string" }, "namespace": { "description": "The XML namespace.", "type": "string" }, "prefix": { "description": "The prefix for the XML namespace.", "type": "string" }, "wrapped": { "default": false, "description": "Whether the parameter should be wrapped in a parent XML element.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/xmlRestrictionDto.yaml" } } } }, "apiParameterType": { "description": "The data type of the parameter, either `string`, `integer`, `number`, `boolean`, or `json/xml` for JSON or XML objects.", "type": "string", "enum": [ "string", "integer", "number", "boolean", "json/xml" ] }, "apiResourceMethParamId": { "description": "The unique identifier for the parameter's parent method.", "nullable": true, "readOnly": true, "type": "integer" }, "array": { "description": "Whether the parameter can express more than one value. This member is only applicable for `apiChildParameters` that you can specify if the corresponding `apiParameterLocation` is `body` and the `apiParameterType` is `json/xml`. If you enable this, also define the `arrayRestriction` member.", "type": "boolean" }, "pathParamLocationId": { "description": "The index of a segment that includes a path parameter in a resource path. For example, given a path `\\books\\{bookId}`, the `books` segment has index `0`, and the path parameter `{bookId}` has index `1`.", "nullable": true, "type": "number" }, "response": { "description": "Whether the parameter is within a response type.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiParameterDto.yaml" } } }, "apiResourceMethod": { "description": "The core HTTP method to which the resource may respond, either `GET`, `PUT`, `POST`, `DELETE`, `HEAD`, `PATCH`, or `OPTIONS`.", "type": "string", "enum": [ "GET", "PUT", "POST", "DELETE", "HEAD", "PATCH", "OPTIONS" ] }, "apiResourceMethodId": { "description": "The unique identifier for the resource's allowed method.", "nullable": true, "readOnly": true, "type": "integer" }, "apiResourceMethodLogicId": { "description": "The unique identifier for the resource's method across all endpoint versions.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiMethodParametersDto.yaml" } } }, "apiResourceName": { "description": "The name of the resource.", "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the resource.", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the resource.", "type": "string" }, "description": { "description": "The description to clarify the resource's function within the API. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "type": "number" }, "private": { "description": "Whether the resource is private. API consumers can access private resources only if they identify with an appropriate API key.", "type": "boolean" }, "resourcePath": { "description": "The URL path relative to the hostnames on which the resource resides. When entering a resource path, you can use curly brackets (`{}`) to define path parameters (for example, `/path/{pathparam}`). If you decide to do so, ensure that the value of the `apiParameterName` member in the corresponding parameter definition matches the name that you specified in the resource path.", "type": "string" }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the resource.", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the resource.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiResourceMethParamsDto.yaml" } } }, "apiSource": { "description": "Specifies if the API's data comes from `API_DISCOVERY` or was provided by the `USER`.", "nullable": true, "type": "string", "enum": [ "USER", "API_DISCOVERY" ] }, "apiVersionInfo": { "additionalProperties": false, "description": "Contains information about a major API version. This refers to REST API versioning and is a different concept than the endpoint configuration versions you create at Akamai.", "nullable": true, "type": "object", "required": [ "location" ], "properties": { "location": { "description": "The location of the API version value in an incoming request. Either `HEADER`, `BASE_PATH`, or `QUERY` parameter.", "type": "string", "enum": [ "HEADER", "BASE_PATH", "QUERY" ] }, "parameterName": { "description": "The name of the header or query parameter that includes the API version value. This is applicable only if the corresponding `location` member is either `HEADER` or `QUERY`.", "type": "string" }, "value": { "description": "The expected API version value in an incoming request.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiVersionInfo.yaml" } }, "availableActions": { "description": "The collection of available actions that you can perform on the endpoint depending on its versions' activation status. For possible values, see [Endpoint.availableActions values](#enumvalues2).", "minItems": 0, "nullable": true, "readOnly": true, "type": "array", "items": { "type": "string", "enum": [ "DELETE", "CLONE_ENDPOINT", "COMPARE_ENDPOINT", "COMPARE_AAG_SETTINGS", "COMPARE_RAPID_SETTINGS", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING", "ACTIVATE_ON_PRODUCTION", "DEACTIVATE_ON_STAGING", "DEACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "SHOW_ENDPOINT" ] } }, "basePath": { "description": "The URL path that serves as a root prefix for all resources' `resourcePath` values. This is `/` if empty. Don't append a `/` character to the path. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "minLength": 0, "nullable": true, "type": "string" }, "caseSensitive": { "description": "Whether the URLs and parameters within the endpoint are case sensitive.", "nullable": true, "type": "boolean" }, "clonedFromVersion": { "description": "For cloned endpoints, the unique identifier for the source endpoint version.", "nullable": true, "readOnly": true, "type": "integer" }, "consumeType": { "description": "The content type the endpoint exchanges, either `json`, `xml`, `urlencoded`, `json/xml/urlencoded`, `json/urlencoded`, `json/xml`, or `xml/urlencoded` for multi-format APIs, `any`, or `none`. A `null` value is the same as a `none` string.", "nullable": true, "type": "string", "enum": [ "none", "json", "xml", "json/xml", "any", "urlencoded", "json/urlencoded", "xml/urlencoded", "json/xml/urlencoded" ] }, "contractId": { "description": "The unique identifier for the contract with Akamai under which you provisioned security and delivery settings for this API.", "nullable": true, "readOnly": true, "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the endpoint.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "createdBy": { "description": "The identifier for the user who created the endpoint.", "nullable": true, "readOnly": true, "type": "string" }, "description": { "description": "The description of the endpoint. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "nullable": true, "type": "string" }, "discoveredPiiIds": { "description": "The collection of personally identifiable information (PII) in your API parameters discovered by the network.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "endpointHidden": { "description": "Specifies whether the endpoint is hidden. You cannot activate or delete versions of a hidden endpoint. If you want to do so, you first need to reveal the endpoint by running the [Show an endpoint](https://techdocs.akamai.com/api-definitions/reference/post-endpoint-show) operation.", "nullable": true, "readOnly": true, "type": "boolean" }, "groupId": { "description": "The unique identifier for the group in Control Center under which you provisioned security and delivery settings for this API.", "nullable": true, "readOnly": true, "type": "integer" }, "isGraphQL": { "description": "Whether the endpoint uses GraphQL to deliver structured content to clients.", "type": "boolean" }, "lockVersion": { "description": "The identifier for the last modification of an endpoint version, used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "readOnly": true, "type": "integer" }, "matchPathSegmentParam": { "default": true, "description": "Whether or not to include path segment parameters in match criteria, like the `jsessionid` portion of `/ssocookie;jsessionid=434343`.", "nullable": true, "type": "boolean" }, "positiveConstrainsEnabled": { "description": "Specifies whether the KSD firewall policies are enabled for the endpoint.", "nullable": true, "type": "boolean" }, "productionStatus": { "description": "The version activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "productionVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the production network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "protectedByApiKey": { "description": "Whether you enabled API key protection for the endpoint version by making the version private.", "readOnly": true, "type": "boolean" }, "responseConstraintsEnabled": { "description": "Specifies whether response constraints are enforced for the endpoint. Note that if you enable response constraints but don't define the constraints, it behaves as if disabled.", "nullable": true, "readOnly": true, "type": "boolean" }, "securityScheme": { "additionalProperties": false, "description": "Contains information about the key with which users may access the endpoint.", "nullable": true, "type": "object", "properties": { "securitySchemeDetail": { "additionalProperties": false, "description": "Contains information about the location of the API key.", "type": "object", "properties": { "apiKeyLocation": { "description": "The location of the API key in incoming requests, either `cookie`, `header`, or `query` parameter.", "type": "string", "enum": [ "cookie", "header", "query" ] }, "apiKeyName": { "description": "The name of the header, query parameter, or cookie where you located the API key.", "type": "string" } } }, "securitySchemeType": { "description": "The type of security scheme implemented for the endpoint. The only valid value is `apikey`.", "type": "string", "enum": [ "apikey" ] } } }, "source": { "additionalProperties": false, "description": "Contains information about the import file used to create the endpoint.", "nullable": true, "readOnly": true, "type": "object", "properties": { "apiVersion": { "description": "The major version of the API defined in the import file.", "nullable": true, "readOnly": true, "type": "string" }, "specificationVersion": { "description": "The version of the import file's specification.", "example": "3.0.0", "nullable": true, "readOnly": true, "type": "string" }, "type": { "description": "The specification of the import file you uploaded to create the endpoint version. Either `SWAGGER` or `RAML`.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "SWAGGER", "RAML" ] } }, "x-akamai": { "file-path": "schemas/apiEndpointSourceDto.yaml" } }, "stagingStatus": { "description": "The version activation status on the staging network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "stagingVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the staging network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the endpoint.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the endpoint.", "nullable": true, "readOnly": true, "type": "string" }, "versionHidden": { "description": "Specifies whether the endpoint version is hidden. You cannot activate or delete hidden versions. If you want to do so, you first need to reveal the version by running the [Show a version](https://techdocs.akamai.com/api-definitions/reference/post-version-show) operation.", "nullable": true, "readOnly": true, "type": "boolean" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointWithResourceDto-recurse.yaml" } } } } }, "400": { "description": "Invalid data input.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "403": { "description": "You don't have access to the endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the endpoint version.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/versionNumber-path.yaml" } }, { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "in": "path", "name": "apiEndPointId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/apiEndPointId-path.yaml" } } ] }, "/endpoints/{apiEndPointId}/versions/{versionNumber}/piis": { "get": { "description": "Returns all PII objects for an endpoint version. This includes parameters with PII already in your API definition as well as parameters with PII the network discovers on your behalf. You can return this information for both active and inactive endpoint versions. All operations for PII are per endpoint version. Run [Enable PII learning settings for a configuration](https://techdocs.akamai.com/application-security/reference/put-advanced-settings-pii-learning) to use this feature.", "operationId": "get-endpoint-version-piis", "summary": "List parameters with PII for an endpoint version", "tags": [ "Personally identifiable information" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/get-endpoint-version-piis" }, "responses": { "200": { "description": "Successfully retrieved parameters with PII for this version.", "content": { "application/json": { "example": { "piis": [ { "contentType": "json", "dateFirstSeen": "2021-12-16", "id": 1, "lastAction": null, "location": "body", "method": "GET", "newPii": true, "parameterId": 1, "parameterName": "email", "parameterPath": "/person/email", "resourceName": "Persons resource", "resourcePath": "/bookstore/persons", "response": false, "status": "DISCOVERED", "type": "PERSONAL_EMAIL", "userCreated": false, "statusCodes": [] }, { "contentType": "json", "dateFirstSeen": "2021-12-10", "id": 2, "location": "body", "method": "POST", "newPii": false, "parameterId": 2, "parameterName": "email", "parameterPath": "/person/email", "resourceName": "Persons resource", "resourcePath": "/bookstore/persons", "response": true, "status": "CONFIRMED", "type": "PERSONAL_EMAIL", "userCreated": false, "statusCodes": [], "lastAction": { "by": "bookstore_admin", "date": "2021-12-16" } } ] }, "schema": { "additionalProperties": false, "description": "Contains information about the personally identifiable information (PII) found or defined in an API endpoint version.", "type": "object", "properties": { "piis": { "description": "Collection of PII objects describing the kind of PII and where it appears in API payloads.", "type": "array", "items": { "additionalProperties": false, "description": "Describes a personally identifiable information (PII) object.", "type": "object", "required": [ "type", "parameterId" ], "properties": { "contentType": { "description": "The content type of the payload in which PII exists. Currently `json`, `xml`, and `urlencoded` are supported.", "type": "string", "enum": [ "json", "xml", "urlencoded" ] }, "dateFirstSeen": { "description": "The date when PII is added to an API endpoint definition either by you or the network.", "format": "date", "type": "string" }, "id": { "description": "The unique identifier for a PII object.", "type": "integer" }, "lastAction": { "additionalProperties": false, "description": "Describes the last action made by a user.", "nullable": true, "type": "object", "properties": { "by": { "description": "The username of the person who made the change.", "type": "string" }, "date": { "description": "The ISO 8601 timestamp the action was taken.", "format": "date", "type": "string" } } }, "location": { "description": "The payload location where the parameter with PII exists, the `path`, `header`, `cookie`, `query`, or `body`.", "type": "string", "enum": [ "path", "header", "cookie", "query", "body" ] }, "method": { "description": "The HTTP method for the call in which PII exists.", "type": "string" }, "newPii": { "description": "Whether the PII is new. When PII is new and found by the network, it has a status of `discovered`.", "type": "boolean" }, "parameterId": { "description": "The unique identifier for the parameter that contains PII.", "nullable": true, "type": "integer" }, "parameterName": { "description": "The name of the parameter that contains PII.", "nullable": true, "type": "string" }, "parameterPath": { "description": "The parameter path where the PII exists. Each segment of the path is delineated by `/`.", "type": "string" }, "resourceName": { "description": "The name of the resource in which PII exists.", "nullable": true, "type": "string" }, "resourcePath": { "description": "The URL path in which PII exists.", "type": "string" }, "response": { "description": "Whether the PII is registered in the response. When `false`, the parameter is in the request.", "type": "boolean" }, "status": { "description": "Describes the status of the personally identifiable information (PII) found in a parameter. See [PII status](https://techdocs.akamai.com/api-definitions/reference/personally-identifiable-information-status).", "type": "string", "enum": [ "DISCOVERED", "CONFIRMED", "DEFERRED", "DECLINED" ], "x-akamai": { "file-path": "schemas/piiStatus.yaml" } }, "statusCodes": { "description": "The collection of status codes in which PII exists. For a request the array is empty.", "type": "array", "items": { "type": "integer" } }, "type": { "description": "The classification of PII. Currently only `PERSONAL_EMAIL` and `CREDIT_OR_DEBIT_CARD_NUMBER` are supported.", "type": "string", "enum": [ "PERSONAL_EMAIL", "CREDIT_OR_DEBIT_CARD_NUMBER" ], "x-akamai": { "file-path": "schemas/piiType.yaml" } }, "userCreated": { "description": "When `true`, PII is defined by a user. When `false`, the PII is discovered by the network.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/piiDto.yaml" } } } }, "x-akamai": { "file-path": "schemas/piiListDto.yaml" } } } } }, "403": { "description": "You don't have permission to access the API endpoint PII list.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "in": "path", "name": "apiEndPointId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/apiEndPointId-path.yaml" } }, { "description": "The unique identifier for the endpoint version.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/versionNumber-path.yaml" } }, { "description": "__Enum__ The status of an instance of personally identifiable information (PII) discovered on the network. See [PII status](https://techdocs.akamai.com/api-definitions/reference/personally-identifiable-information-status).", "example": "{{status}}", "in": "query", "name": "status", "required": false, "schema": { "example": "DISCOVERED", "type": "string", "enum": [ "DISCOVERED", "CONFIRMED", "DEFERRED" ] }, "x-akamai": { "file-path": "parameters/piiStatus-query.yaml" } } ] }, "/endpoints/{apiEndPointId}/versions/{versionNumber}/piis/parameters/{paramId}": { "post": { "description": "Adds or updates PII in an API parameter. This is for you to add to or modify in your API definition yourself, rather than the network discovering the PII for you.", "operationId": "post-endpoint-version-piis-parameter", "summary": "Add or update a user-created PII instance", "tags": [ "Personally identifiable information" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/post-endpoint-version-piis-parameter" }, "requestBody": { "required": true, "content": { "application/json": { "example": { "types": [ "PERSONAL_EMAIL" ] }, "schema": { "additionalProperties": false, "description": "The PII type. For now, either `PERSONAL_EMAIL` or `CREDIT_OR_DEBIT_CARD_NUMBER`.", "type": "object", "properties": { "types": { "type": "array", "items": { "type": "string", "enum": [ "PERSONAL_EMAIL", "CREDIT_OR_DEBIT_CARD_NUMBER" ] } } }, "x-akamai": { "file-path": "schemas/piiUpdateTypeDto.yaml" } } } } }, "responses": { "204": { "description": "Successfully added or updated PII.", "content": { "*/*": {} } }, "404": { "description": "Can't find the parameter ID.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "in": "path", "name": "apiEndPointId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/apiEndPointId-path.yaml" } }, { "description": "The unique identifier for the endpoint version.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/versionNumber-path.yaml" } }, { "description": "The unique identifier for a parameter.", "example": "{{paramId}}", "in": "path", "name": "paramId", "required": true, "schema": { "example": 1355468, "type": "integer" }, "x-akamai": { "file-path": "parameters/paramId-path.yaml" } } ] }, "/endpoints/{apiEndPointId}/versions/{versionNumber}/piis/settings": { "post": { "description": "Update the PII settings in an endpoint version. These settings are for a PII object per endpoint version, so if you have the same object in multiple endpoint versions, you'll need to run the operation for each version. n as well as parameters with PII the network discovers on your behalf. You can return this information for both active and inactive endpoint versions. All operations for PII are per endpoint version. Run [Enable PII learning settings for a configuration](https://techdocs.akamai.com/application-security/reference/put-advanced-settings-pii-learning) to use this feature.", "operationId": "post-endpoint-version-pii-settings", "summary": "Modify PII settings for an endpoint version", "tags": [ "Personally identifiable information" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/post-endpoint-version-pii-settings" }, "requestBody": { "content": { "application/json": { "example": { "exclusions": [], "constraints": { "requestEnabled": true, "responseEnabled": true, "scope": "API", "resources": [], "types": { "allTypes": true, "specific": [] } } }, "schema": { "additionalProperties": false, "description": "Describes the full PII object.", "type": "object", "required": [ "constraints", "exclusions" ], "properties": { "constraints": { "additionalProperties": false, "description": "Describes how and where to look for personally identifiable information (PII) in your API payloads.", "type": "object", "required": [ "scope", "requestEnabled", "responseEnabled", "types", "resources" ], "properties": { "requestEnabled": { "description": "Whether the network looks for PII in the request payloads.", "type": "boolean" }, "resources": { "type": "array", "items": { "additionalProperties": false, "type": "object", "required": [ "resourceId", "allMethods", "methods" ], "properties": { "allMethods": { "type": "boolean" }, "methods": { "description": "The methods you want the network to inspect. Currently, `get`, `put`, `post`, `delete`, `head`, `patch`, and `options` are supported.", "type": "array", "items": { "type": "string", "enum": [ "get", "put", "post", "delete", "head", "patch", "options" ] } }, "resourceId": { "description": "A unique identifier for a resource.", "type": "integer" } } } }, "responseEnabled": { "description": "Whether the network looks for PII in the response payloads.", "type": "boolean" }, "scope": { "description": "The extent to which the network should inspect your API and enforce constraints you set. Use `NONE` to let all traffic though as if PII discovery is disabled. Use `API` to inspect and enforce constraints for every resource and method in your API. Use `RESOURCES_AND_METHODS` to inspect specific resources and methods within your API.", "type": "string", "enum": [ "NONE", "API", "RESOURCES_AND_METHODS" ] }, "types": { "additionalProperties": false, "description": "Use `allTypes` to identify all PII types in a parameter, or `specific` to identify individual PII types you choose. Currently, only email and credit or debit cards are supported.", "type": "object", "required": [ "allTypes", "specific" ], "properties": { "allTypes": { "type": "boolean" }, "specific": { "description": "The classification of PII. Currently only `PERSONAL_EMAIL` and `CREDIT_OR_DEBIT_CARD_NUMBER` are supported.", "type": "string", "enum": [ "PERSONAL_EMAIL", "CREDIT_OR_DEBIT_CARD_NUMBER" ], "x-akamai": { "file-path": "schemas/piiType.yaml" } } } } }, "x-akamai": { "file-path": "schemas/piiConstraintsDto.yaml" } }, "exclusions": { "description": "List of parameters you want to excluded from inspecting and enforcing constraints.", "type": "array", "items": { "additionalProperties": false, "description": "Describes the properties necessary to exclude parameters from PII inspection.", "type": "object", "required": [ "parameterId" ], "properties": { "exclusionId": { "description": "A unique identifier for a an exclusion object.", "nullable": true, "type": "integer" }, "parameterId": { "description": "The unique identifier of the parameter you want to exclude.", "type": "integer" } }, "x-akamai": { "file-path": "schemas/piiExclusionDto.yaml" } } } }, "x-akamai": { "file-path": "schemas/piiSettingsDto.yaml" } } } } }, "responses": { "200": { "description": "Successfully updated the endpoint version.", "content": { "application/json": { "examples": { "allDisabled": { "value": { "exclusions": [], "constraints": { "requestEnabled": false, "responseEnabled": false, "scope": "NONE", "resources": [], "types": { "allTypes": true, "specific": [] } } } }, "allEnabled": { "value": { "constraints": { "requestEnabled": true, "responseEnabled": true, "scope": "API", "resources": [], "types": { "allTypes": true, "specific": [] } }, "exclusions": [ { "exclusionId": 1, "parameterId": 11 }, { "exclusionId": 2, "parameterId": 21 } ] } }, "partiallyEnabled": { "value": { "exclusions": [], "constraints": { "requestEnabled": true, "responseEnabled": false, "scope": "RESOURCES_AND_METHODS", "types": { "allTypes": false, "specific": [ "PERSONAL_EMAIL" ] }, "resources": [ { "allMethods": false, "resourceId": 1, "methods": [ "post", "patch" ] } ] } } } }, "schema": { "additionalProperties": false, "description": "Describes the full PII object.", "type": "object", "required": [ "constraints", "exclusions" ], "properties": { "constraints": { "additionalProperties": false, "description": "Describes how and where to look for personally identifiable information (PII) in your API payloads.", "type": "object", "required": [ "scope", "requestEnabled", "responseEnabled", "types", "resources" ], "properties": { "requestEnabled": { "description": "Whether the network looks for PII in the request payloads.", "type": "boolean" }, "resources": { "type": "array", "items": { "additionalProperties": false, "type": "object", "required": [ "resourceId", "allMethods", "methods" ], "properties": { "allMethods": { "type": "boolean" }, "methods": { "description": "The methods you want the network to inspect. Currently, `get`, `put`, `post`, `delete`, `head`, `patch`, and `options` are supported.", "type": "array", "items": { "type": "string", "enum": [ "get", "put", "post", "delete", "head", "patch", "options" ] } }, "resourceId": { "description": "A unique identifier for a resource.", "type": "integer" } } } }, "responseEnabled": { "description": "Whether the network looks for PII in the response payloads.", "type": "boolean" }, "scope": { "description": "The extent to which the network should inspect your API and enforce constraints you set. Use `NONE` to let all traffic though as if PII discovery is disabled. Use `API` to inspect and enforce constraints for every resource and method in your API. Use `RESOURCES_AND_METHODS` to inspect specific resources and methods within your API.", "type": "string", "enum": [ "NONE", "API", "RESOURCES_AND_METHODS" ] }, "types": { "additionalProperties": false, "description": "Use `allTypes` to identify all PII types in a parameter, or `specific` to identify individual PII types you choose. Currently, only email and credit or debit cards are supported.", "type": "object", "required": [ "allTypes", "specific" ], "properties": { "allTypes": { "type": "boolean" }, "specific": { "description": "The classification of PII. Currently only `PERSONAL_EMAIL` and `CREDIT_OR_DEBIT_CARD_NUMBER` are supported.", "type": "string", "enum": [ "PERSONAL_EMAIL", "CREDIT_OR_DEBIT_CARD_NUMBER" ], "x-akamai": { "file-path": "schemas/piiType.yaml" } } } } }, "x-akamai": { "file-path": "schemas/piiConstraintsDto.yaml" } }, "exclusions": { "description": "List of parameters you want to excluded from inspecting and enforcing constraints.", "type": "array", "items": { "additionalProperties": false, "description": "Describes the properties necessary to exclude parameters from PII inspection.", "type": "object", "required": [ "parameterId" ], "properties": { "exclusionId": { "description": "A unique identifier for a an exclusion object.", "nullable": true, "type": "integer" }, "parameterId": { "description": "The unique identifier of the parameter you want to exclude.", "type": "integer" } }, "x-akamai": { "file-path": "schemas/piiExclusionDto.yaml" } } } }, "x-akamai": { "file-path": "schemas/piiSettingsDto.yaml" } } } } }, "403": { "description": "You don't have permission to update PII settings.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "get": { "description": "Returns the PII settings in an endpoint version, including the inspection scope and constraints, and how you want the network to handle PII.", "operationId": "get-endpoint-version-pii-settings", "summary": "List PII settings for an endpoint version", "tags": [ "Personally identifiable information" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/get-endpoint-version-pii-settings" }, "responses": { "200": { "description": "Successfully fetched PII settings.", "content": { "application/json": { "examples": { "allDisabled": { "value": { "exclusions": [], "constraints": { "requestEnabled": false, "responseEnabled": false, "scope": "NONE", "resources": [], "types": { "allTypes": true, "specific": [] } } } }, "allEnabled": { "value": { "constraints": { "requestEnabled": true, "responseEnabled": true, "scope": "API", "resources": [], "types": { "allTypes": true, "specific": [] } }, "exclusions": [ { "exclusionId": 1, "parameterId": 11 }, { "exclusionId": 2, "parameterId": 21 } ] } }, "partiallyEnabled": { "value": { "exclusions": [], "constraints": { "requestEnabled": true, "responseEnabled": false, "scope": "RESOURCES_AND_METHODS", "types": { "allTypes": false, "specific": [ "PERSONAL_EMAIL" ] }, "resources": [ { "allMethods": false, "resourceId": 1, "methods": [ "post", "patch" ] } ] } } }, "securityConfig": { "value": { "constraints": { "requestEnabled": true, "responseEnabled": true, "scope": "API", "resources": [], "types": { "allTypes": true, "specific": [] } }, "securityConfig": { "action": "ALERT", "configId": 1, "configVersion": 1, "policyId": "p1_111", "policyName": "Bookstore policy" }, "exclusions": [ { "exclusionId": 1, "parameterId": 11 }, { "exclusionId": 2, "parameterId": 21 } ] } } }, "schema": { "additionalProperties": false, "description": "Describes the full PII object.", "type": "object", "required": [ "constraints", "exclusions" ], "properties": { "constraints": { "additionalProperties": false, "description": "Describes how and where to look for personally identifiable information (PII) in your API payloads.", "type": "object", "required": [ "scope", "requestEnabled", "responseEnabled", "types", "resources" ], "properties": { "requestEnabled": { "description": "Whether the network looks for PII in the request payloads.", "type": "boolean" }, "resources": { "type": "array", "items": { "additionalProperties": false, "type": "object", "required": [ "resourceId", "allMethods", "methods" ], "properties": { "allMethods": { "type": "boolean" }, "methods": { "description": "The methods you want the network to inspect. Currently, `get`, `put`, `post`, `delete`, `head`, `patch`, and `options` are supported.", "type": "array", "items": { "type": "string", "enum": [ "get", "put", "post", "delete", "head", "patch", "options" ] } }, "resourceId": { "description": "A unique identifier for a resource.", "type": "integer" } } } }, "responseEnabled": { "description": "Whether the network looks for PII in the response payloads.", "type": "boolean" }, "scope": { "description": "The extent to which the network should inspect your API and enforce constraints you set. Use `NONE` to let all traffic though as if PII discovery is disabled. Use `API` to inspect and enforce constraints for every resource and method in your API. Use `RESOURCES_AND_METHODS` to inspect specific resources and methods within your API.", "type": "string", "enum": [ "NONE", "API", "RESOURCES_AND_METHODS" ] }, "types": { "additionalProperties": false, "description": "Use `allTypes` to identify all PII types in a parameter, or `specific` to identify individual PII types you choose. Currently, only email and credit or debit cards are supported.", "type": "object", "required": [ "allTypes", "specific" ], "properties": { "allTypes": { "type": "boolean" }, "specific": { "description": "The classification of PII. Currently only `PERSONAL_EMAIL` and `CREDIT_OR_DEBIT_CARD_NUMBER` are supported.", "type": "string", "enum": [ "PERSONAL_EMAIL", "CREDIT_OR_DEBIT_CARD_NUMBER" ], "x-akamai": { "file-path": "schemas/piiType.yaml" } } } } }, "x-akamai": { "file-path": "schemas/piiConstraintsDto.yaml" } }, "exclusions": { "description": "List of parameters you want to excluded from inspecting and enforcing constraints.", "type": "array", "items": { "additionalProperties": false, "description": "Describes the properties necessary to exclude parameters from PII inspection.", "type": "object", "required": [ "parameterId" ], "properties": { "exclusionId": { "description": "A unique identifier for a an exclusion object.", "nullable": true, "type": "integer" }, "parameterId": { "description": "The unique identifier of the parameter you want to exclude.", "type": "integer" } }, "x-akamai": { "file-path": "schemas/piiExclusionDto.yaml" } } } }, "x-akamai": { "file-path": "schemas/piiSettingsDto.yaml" } } } } }, "403": { "description": "You don't have permission to get API endpoint PII settings.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "in": "path", "name": "apiEndPointId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/apiEndPointId-path.yaml" } }, { "description": "The unique identifier for the endpoint version.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/versionNumber-path.yaml" } } ] }, "/endpoints/{apiEndPointId}/versions/{versionNumber}/piis/status": { "post": { "description": "Update the PII status. This operation applies to PII found by the network and not PII you add to your API definition yourself.", "operationId": "post-endpoint-version-pii-status-from-register-form", "summary": "Modify PII status per endpoint version", "tags": [ "Personally identifiable information" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/post-endpoint-version-pii-status-from-register-form" }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "description": "Describes the status of personally identifiable information (PII) found by the network.", "type": "array", "items": { "additionalProperties": false, "type": "object", "properties": { "id": { "description": "The unique identifier for the parameter containing PII.", "type": "string" }, "status": { "description": "The status of PII found by the network. Either `DECLINED`, `DEFERRED`, or `CONFIRMED`. See [PII status](https://techdocs.akamai.com/api-definitions/reference/personally-identifiable-information-status) for more information.", "type": "string", "enum": [ "DECLINED", "DEFERRED", "CONFIRMED" ] } } }, "x-akamai": { "file-path": "schemas/piiUpdateStatusPerParamIdDto.yaml" } }, "example": [ { "id": 1209248, "status": "DECLINED" } ] } } }, "responses": { "204": { "description": "Successfully updated the PII status.", "content": { "*/*": {} } }, "403": { "description": "You don't have permission to update PII status.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "404": { "description": "The API endpoint is not found.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "in": "path", "name": "apiEndPointId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/apiEndPointId-path.yaml" } }, { "description": "The unique identifier for the endpoint version.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/versionNumber-path.yaml" } } ] }, "/endpoints/{apiEndPointId}/versions/{versionNumber}/piis/{piiId}": { "delete": { "description": "Removes a PII object from your API endpoint definition for the version you specify. If you want to delete the PII object from all the versions where it exists, you'll need to make this request for each version of the endpoint.", "operationId": "delete-endpoint-version-pii", "summary": "Delete PII in an endpoint version", "tags": [ "Personally identifiable information" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/delete-endpoint-version-pii" }, "responses": { "204": { "description": "Successfully deleted the PII object from the endpoint version.", "content": { "*/*": {} } }, "403": { "description": "You don't have permission to delete PII for this endpoint version.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "in": "path", "name": "apiEndPointId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/apiEndPointId-path.yaml" } }, { "description": "The unique identifier for the endpoint version.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/versionNumber-path.yaml" } }, { "description": "The unique identifier for the PII object.", "example": "{{piiId}}", "in": "path", "name": "piiId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/piiId-path.yaml" } } ] }, "/endpoints/{apiEndPointId}/versions/{versionNumber}/piis/{piiId}/status": { "patch": { "description": "Update the PII status. This operation applies to PII found by the network and not PII you add to your API definition yourself.", "operationId": "patch-endpoint-version-pii-status", "summary": "Patch PII status per endpoint version", "tags": [ "Personally identifiable information" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/patch-endpoint-version-pii-status" }, "requestBody": { "required": true, "content": { "application/json": { "example": { "status": "CONFIRMED" }, "schema": { "additionalProperties": false, "description": "Describes the status of the personally identifiable information (PII) found in a parameter.", "type": "object", "required": [ "status" ], "properties": { "status": { "description": "Describes the status of the personally identifiable information (PII) found in a parameter. See [PII status](https://techdocs.akamai.com/api-definitions/reference/personally-identifiable-information-status).", "example": "{{status}}", "type": "string", "enum": [ "DISCOVERED", "CONFIRMED", "DEFERRED", "DECLINED" ], "x-akamai": { "file-path": "schemas/piiStatus.yaml" } } }, "x-akamai": { "file-path": "schemas/piiStatusDto.yaml" } } } } }, "responses": { "200": { "description": "Successfully updated the PII status.", "content": { "application/json": { "example": { "contentType": "json", "dateFirstSeen": "2021-12-16", "id": 1, "lastAction": null, "location": "body", "method": "GET", "newPii": true, "parameterId": 1, "parameterName": "email", "parameterPath": "/person/email", "resourceName": "Persons resource", "resourcePath": "/bookstore/persons", "response": false, "status": "DISCOVERED", "type": "PERSONAL_EMAIL", "userCreated": false, "statusCodes": [] }, "schema": { "additionalProperties": false, "description": "Describes a personally identifiable information (PII) object.", "type": "object", "required": [ "type", "parameterId" ], "properties": { "contentType": { "description": "The content type of the payload in which PII exists. Currently `json`, `xml`, and `urlencoded` are supported.", "type": "string", "enum": [ "json", "xml", "urlencoded" ] }, "dateFirstSeen": { "description": "The date when PII is added to an API endpoint definition either by you or the network.", "format": "date", "type": "string" }, "id": { "description": "The unique identifier for a PII object.", "type": "integer" }, "lastAction": { "additionalProperties": false, "description": "Describes the last action made by a user.", "nullable": true, "type": "object", "properties": { "by": { "description": "The username of the person who made the change.", "type": "string" }, "date": { "description": "The ISO 8601 timestamp the action was taken.", "format": "date", "type": "string" } } }, "location": { "description": "The payload location where the parameter with PII exists, the `path`, `header`, `cookie`, `query`, or `body`.", "type": "string", "enum": [ "path", "header", "cookie", "query", "body" ] }, "method": { "description": "The HTTP method for the call in which PII exists.", "type": "string" }, "newPii": { "description": "Whether the PII is new. When PII is new and found by the network, it has a status of `discovered`.", "type": "boolean" }, "parameterId": { "description": "The unique identifier for the parameter that contains PII.", "nullable": true, "type": "integer" }, "parameterName": { "description": "The name of the parameter that contains PII.", "nullable": true, "type": "string" }, "parameterPath": { "description": "The parameter path where the PII exists. Each segment of the path is delineated by `/`.", "type": "string" }, "resourceName": { "description": "The name of the resource in which PII exists.", "nullable": true, "type": "string" }, "resourcePath": { "description": "The URL path in which PII exists.", "type": "string" }, "response": { "description": "Whether the PII is registered in the response. When `false`, the parameter is in the request.", "type": "boolean" }, "status": { "description": "Describes the status of the personally identifiable information (PII) found in a parameter. See [PII status](https://techdocs.akamai.com/api-definitions/reference/personally-identifiable-information-status).", "type": "string", "enum": [ "DISCOVERED", "CONFIRMED", "DEFERRED", "DECLINED" ], "x-akamai": { "file-path": "schemas/piiStatus.yaml" } }, "statusCodes": { "description": "The collection of status codes in which PII exists. For a request the array is empty.", "type": "array", "items": { "type": "integer" } }, "type": { "description": "The classification of PII. Currently only `PERSONAL_EMAIL` and `CREDIT_OR_DEBIT_CARD_NUMBER` are supported.", "type": "string", "enum": [ "PERSONAL_EMAIL", "CREDIT_OR_DEBIT_CARD_NUMBER" ], "x-akamai": { "file-path": "schemas/piiType.yaml" } }, "userCreated": { "description": "When `true`, PII is defined by a user. When `false`, the PII is discovered by the network.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/piiDto.yaml" } } } } }, "403": { "description": "You don't have permission to update PII status.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "in": "path", "name": "apiEndPointId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/apiEndPointId-path.yaml" } }, { "description": "The unique identifier for the endpoint version.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/versionNumber-path.yaml" } }, { "description": "The unique identifier for the PII object.", "example": "{{piiId}}", "in": "path", "name": "piiId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/piiId-path.yaml" } } ] }, "/endpoints/{apiEndPointId}/versions/{versionNumber}/resources": { "post": { "description": "Creates a resource in an endpoint version. The resource's full URL (concatenated hostname, `basePath`, and `resourcepath`) needs to be unique within the account. You can only create resources for versions that have never been activated on the staging or production network.", "operationId": "post-resource", "summary": "Create a resource", "tags": [ "Resources" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/post-resource" }, "requestBody": { "required": true, "content": { "application/json": { "example": { "apiResourceName": "magazine", "description": "A magazine item within the bookstore API.", "resourcePath": "/magazine/{magazineId}", "apiResourceMethods": [ { "apiResourceMethod": "GET", "apiParameters": [ { "apiParameterLocation": "path", "apiParameterName": "magazineId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterRestriction": null, "apiParameterType": "string", "array": false } ] } ] }, "schema": { "additionalProperties": false, "description": "Contains information about a resource assigned to an endpoint.", "type": "object", "required": [ "apiResourceName", "resourcePath" ], "properties": { "apiResourceClonedFromId": { "description": "For cloned resources, the unique identifier for the source resource.", "example": "{{apiResourceClonedFromId}}", "nullable": true, "type": "integer" }, "apiResourceId": { "description": "The unique identifier for the resource.", "example": "{{apiResourceId}}", "type": "integer" }, "apiResourceLogicId": { "description": "The unique identifier for the resource across all endpoint versions.", "example": "{{apiResourceLogicId}}", "type": "integer" }, "apiResourceMethodNameLists": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "type": "string" } }, "apiResourceMethods": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "additionalProperties": false, "description": "Contains information about an HTTP method to which a resource may respond.", "type": "object", "required": [ "apiResourceMethod" ], "properties": { "apiParameters": { "description": "The list of parameter objects assigned to the method.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a method's parameter.", "type": "object", "required": [ "apiParameterName", "apiParameterType", "apiParameterRequired", "apiParameterLocation" ], "properties": { "apiChildParameters": { "description": "The collection of child JSON members or XML elements for JSON or XML body type parameters.", "type": "array", "items": { "description": "A further nested endpoint object.", "type": "object", "x-akamai": { "file-path": "schemas/apiParameterDto-nested.yaml" } } }, "apiParamLogicId": { "description": "The unique identifier for the parameter across all endpoint versions.", "readOnly": true, "type": "integer" }, "apiParameterContentType": { "description": "The content type of the parameter. Only applicable for top level body parameters.", "type": "string", "enum": [ "json", "xml", "urlencoded", "json/xml", "any", "none" ] }, "apiParameterId": { "description": "The unique identifier for the parameter.", "readOnly": true, "type": "integer" }, "apiParameterLocation": { "description": "The location of the parameter in an HTTP request, either `query`, `header`, `path`, `cookie`, or `body` for a JSON or XML body type parameter.", "type": "string", "enum": [ "query", "body", "header", "path", "cookie" ] }, "apiParameterName": { "description": "The name of the parameter. If the corresponding `apiParameterLocation` is `path`, ensure that this value matches the parameter name you specified in the `resourcePath`.", "type": "string" }, "apiParameterNotes": { "description": "The description to clarify the parameter's function. If you specify an empty string in the request or omit this member from the object, the JSON response reflects it as `null`.", "nullable": true, "type": "string" }, "apiParameterRequired": { "description": "Specifies whether the API user needs to specify the parameter. If the corresponding `apiParameterLocation` is `path`, set this member to `true`.", "type": "boolean" }, "apiParameterRestriction": { "additionalProperties": false, "description": "Contains information about restrictions and XML representation rules specified for the parameter.", "nullable": true, "type": "object", "properties": { "arrayRestriction": { "additionalProperties": false, "description": "Contains information about array restrictions for array type parameters. Define this object only if you enabled the corresponding `array` member.", "nullable": true, "type": "object", "properties": { "collectionFormat": { "default": "csv", "description": "The format of the array that specifies how you separated array values, either the default `csv` for comma separated values, `ssv` for space separated values, `tsv` for tab separated values, `pipes` for pipe separated values, or `multi` for several parameter instances instead of several values for a single instance.", "type": "string", "enum": [ "csv", "ssv", "tsv", "pipes", "multi" ] }, "maxItems": { "description": "The maximum allowed number of array items.", "type": "integer" }, "minItems": { "description": "The minimum allowed number of array items.", "type": "integer" }, "uniqueItems": { "description": "Whether the array contains only unique items.", "type": "boolean" } } }, "lengthRestriction": { "additionalProperties": false, "description": "Contains information about length restrictions for string type parameters.", "nullable": true, "type": "object", "properties": { "lengthMax": { "description": "The maximum allowed number of characters in the string.", "nullable": true, "type": "integer" }, "lengthMin": { "description": "The minimum allowed number of characters in the string.", "nullable": true, "type": "integer" } } }, "numberRangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for number type parameters.", "nullable": true, "type": "object", "properties": { "numberRangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "number" }, "numberRangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "number" } } }, "rangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for integer type parameters.", "nullable": true, "type": "object", "properties": { "rangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "integer" }, "rangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "integer" } } }, "responseRestriction": { "additionalProperties": false, "type": "object", "properties": { "maxBodySize": { "description": "Limit how large the response body can be before tripping the firewall action. The default is `SIZE_6K`. You can choose `SIZE_8K`, `SIZE_12K`, or `NO_LIMIT`, which allows a response of any size.", "type": "string", "enum": [ "SIZE_6K", "SIZE_8K", "SIZE_12K", "NO_LIMIT" ] }, "statusCodes": { "description": "The response status codes to match to a particular response body format. A `null` or empty value means the response body definition applies to any response body.", "nullable": true, "type": "array", "items": { "type": "integer" } } } }, "xmlConversionRule": { "additionalProperties": false, "description": "Contains information about an XML representation of a JSON-encoded parameter.", "nullable": true, "type": "object", "properties": { "attribute": { "default": false, "description": "Whether the parameter should be represented as an attribute.", "type": "boolean" }, "name": { "description": "The name of the parameter in XML. By default, the XML name is the same as the parameter name specified in the API definition.", "type": "string" }, "namespace": { "description": "The XML namespace.", "type": "string" }, "prefix": { "description": "The prefix for the XML namespace.", "type": "string" }, "wrapped": { "default": false, "description": "Whether the parameter should be wrapped in a parent XML element.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/xmlRestrictionDto.yaml" } } } }, "apiParameterType": { "description": "The data type of the parameter, either `string`, `integer`, `number`, `boolean`, or `json/xml` for JSON or XML objects.", "type": "string", "enum": [ "string", "integer", "number", "boolean", "json/xml" ] }, "apiResourceMethParamId": { "description": "The unique identifier for the parameter's parent method.", "nullable": true, "readOnly": true, "type": "integer" }, "array": { "description": "Whether the parameter can express more than one value. This member is only applicable for `apiChildParameters` that you can specify if the corresponding `apiParameterLocation` is `body` and the `apiParameterType` is `json/xml`. If you enable this, also define the `arrayRestriction` member.", "type": "boolean" }, "pathParamLocationId": { "description": "The index of a segment that includes a path parameter in a resource path. For example, given a path `\\books\\{bookId}`, the `books` segment has index `0`, and the path parameter `{bookId}` has index `1`.", "nullable": true, "type": "number" }, "response": { "description": "Whether the parameter is within a response type.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiParameterDto.yaml" } } }, "apiResourceMethod": { "description": "The core HTTP method to which the resource may respond, either `GET`, `PUT`, `POST`, `DELETE`, `HEAD`, `PATCH`, or `OPTIONS`.", "type": "string", "enum": [ "GET", "PUT", "POST", "DELETE", "HEAD", "PATCH", "OPTIONS" ] }, "apiResourceMethodId": { "description": "The unique identifier for the resource's allowed method.", "nullable": true, "readOnly": true, "type": "integer" }, "apiResourceMethodLogicId": { "description": "The unique identifier for the resource's method across all endpoint versions.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiMethodParametersDto.yaml" } } }, "apiResourceName": { "description": "The name of the resource.", "example": "{{apiResourceName}}", "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the resource.", "example": "{{createDate}}", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the resource.", "example": "{{createdBy}}", "type": "string" }, "description": { "description": "The description to clarify the resource's function within the API. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "example": "{{description}}", "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "example": "{{link}}", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "example": "{{lockVersion}}", "type": "number" }, "private": { "description": "Whether the resource is private. API consumers can access private resources only if they identify with an appropriate API key.", "example": "{{private}}", "type": "boolean" }, "resourcePath": { "description": "The URL path relative to the hostnames on which the resource resides. When entering a resource path, you can use curly brackets (`{}`) to define path parameters (for example, `/path/{pathparam}`). If you decide to do so, ensure that the value of the `apiParameterName` member in the corresponding parameter definition matches the name that you specified in the resource path.", "example": "{{resourcePath}}", "type": "string" }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the resource.", "example": "{{updateDate}}", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the resource.", "example": "{{updatedBy}}", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiResourceMethParamsDto.yaml" } } } } }, "responses": { "201": { "description": "Saved API Endpoint Resource data.", "content": { "application/json": { "example": { "apiResourceClonedFromId": null, "apiResourceId": 2935139, "apiResourceLogicId": 126269, "apiResourceName": "magazine", "createDate": "2019-06-17T08:26:59+0000", "createdBy": "tyamada", "description": "A magazine item within the bookstore API.", "link": null, "lockVersion": 0, "private": false, "resourcePath": "/magazine/{magazineId}", "updateDate": "2019-06-17T08:26:59+0000", "updatedBy": "bookstore_admin", "apiResourceMethods": [ { "apiResourceMethod": "GET", "apiResourceMethodId": 365559, "apiResourceMethodLogicId": 205820, "apiParameters": [ { "apiParamLogicId": 588309, "apiParameterId": 1223250, "apiParameterLocation": "path", "apiParameterName": "magazineId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterRestriction": null, "apiParameterType": "string", "apiResourceMethParamId": 500315, "array": false, "pathParamLocationId": null, "apiChildParameters": [] } ] } ] }, "schema": { "additionalProperties": false, "description": "Contains information about a resource assigned to an endpoint.", "type": "object", "required": [ "apiResourceName", "resourcePath" ], "properties": { "apiResourceClonedFromId": { "description": "For cloned resources, the unique identifier for the source resource.", "nullable": true, "type": "integer" }, "apiResourceId": { "description": "The unique identifier for the resource.", "type": "integer" }, "apiResourceLogicId": { "description": "The unique identifier for the resource across all endpoint versions.", "type": "integer" }, "apiResourceMethodNameLists": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "type": "string" } }, "apiResourceMethods": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "additionalProperties": false, "description": "Contains information about an HTTP method to which a resource may respond.", "type": "object", "required": [ "apiResourceMethod" ], "properties": { "apiParameters": { "description": "The list of parameter objects assigned to the method.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a method's parameter.", "type": "object", "required": [ "apiParameterName", "apiParameterType", "apiParameterRequired", "apiParameterLocation" ], "properties": { "apiChildParameters": { "description": "The collection of child JSON members or XML elements for JSON or XML body type parameters.", "type": "array", "items": { "description": "A further nested endpoint object.", "type": "object", "x-akamai": { "file-path": "schemas/apiParameterDto-nested.yaml" } } }, "apiParamLogicId": { "description": "The unique identifier for the parameter across all endpoint versions.", "readOnly": true, "type": "integer" }, "apiParameterContentType": { "description": "The content type of the parameter. Only applicable for top level body parameters.", "type": "string", "enum": [ "json", "xml", "urlencoded", "json/xml", "any", "none" ] }, "apiParameterId": { "description": "The unique identifier for the parameter.", "readOnly": true, "type": "integer" }, "apiParameterLocation": { "description": "The location of the parameter in an HTTP request, either `query`, `header`, `path`, `cookie`, or `body` for a JSON or XML body type parameter.", "type": "string", "enum": [ "query", "body", "header", "path", "cookie" ] }, "apiParameterName": { "description": "The name of the parameter. If the corresponding `apiParameterLocation` is `path`, ensure that this value matches the parameter name you specified in the `resourcePath`.", "type": "string" }, "apiParameterNotes": { "description": "The description to clarify the parameter's function. If you specify an empty string in the request or omit this member from the object, the JSON response reflects it as `null`.", "nullable": true, "type": "string" }, "apiParameterRequired": { "description": "Specifies whether the API user needs to specify the parameter. If the corresponding `apiParameterLocation` is `path`, set this member to `true`.", "type": "boolean" }, "apiParameterRestriction": { "additionalProperties": false, "description": "Contains information about restrictions and XML representation rules specified for the parameter.", "nullable": true, "type": "object", "properties": { "arrayRestriction": { "additionalProperties": false, "description": "Contains information about array restrictions for array type parameters. Define this object only if you enabled the corresponding `array` member.", "nullable": true, "type": "object", "properties": { "collectionFormat": { "default": "csv", "description": "The format of the array that specifies how you separated array values, either the default `csv` for comma separated values, `ssv` for space separated values, `tsv` for tab separated values, `pipes` for pipe separated values, or `multi` for several parameter instances instead of several values for a single instance.", "type": "string", "enum": [ "csv", "ssv", "tsv", "pipes", "multi" ] }, "maxItems": { "description": "The maximum allowed number of array items.", "type": "integer" }, "minItems": { "description": "The minimum allowed number of array items.", "type": "integer" }, "uniqueItems": { "description": "Whether the array contains only unique items.", "type": "boolean" } } }, "lengthRestriction": { "additionalProperties": false, "description": "Contains information about length restrictions for string type parameters.", "nullable": true, "type": "object", "properties": { "lengthMax": { "description": "The maximum allowed number of characters in the string.", "nullable": true, "type": "integer" }, "lengthMin": { "description": "The minimum allowed number of characters in the string.", "nullable": true, "type": "integer" } } }, "numberRangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for number type parameters.", "nullable": true, "type": "object", "properties": { "numberRangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "number" }, "numberRangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "number" } } }, "rangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for integer type parameters.", "nullable": true, "type": "object", "properties": { "rangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "integer" }, "rangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "integer" } } }, "responseRestriction": { "additionalProperties": false, "type": "object", "properties": { "maxBodySize": { "description": "Limit how large the response body can be before tripping the firewall action. The default is `SIZE_6K`. You can choose `SIZE_8K`, `SIZE_12K`, or `NO_LIMIT`, which allows a response of any size.", "type": "string", "enum": [ "SIZE_6K", "SIZE_8K", "SIZE_12K", "NO_LIMIT" ] }, "statusCodes": { "description": "The response status codes to match to a particular response body format. A `null` or empty value means the response body definition applies to any response body.", "nullable": true, "type": "array", "items": { "type": "integer" } } } }, "xmlConversionRule": { "additionalProperties": false, "description": "Contains information about an XML representation of a JSON-encoded parameter.", "nullable": true, "type": "object", "properties": { "attribute": { "default": false, "description": "Whether the parameter should be represented as an attribute.", "type": "boolean" }, "name": { "description": "The name of the parameter in XML. By default, the XML name is the same as the parameter name specified in the API definition.", "type": "string" }, "namespace": { "description": "The XML namespace.", "type": "string" }, "prefix": { "description": "The prefix for the XML namespace.", "type": "string" }, "wrapped": { "default": false, "description": "Whether the parameter should be wrapped in a parent XML element.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/xmlRestrictionDto.yaml" } } } }, "apiParameterType": { "description": "The data type of the parameter, either `string`, `integer`, `number`, `boolean`, or `json/xml` for JSON or XML objects.", "type": "string", "enum": [ "string", "integer", "number", "boolean", "json/xml" ] }, "apiResourceMethParamId": { "description": "The unique identifier for the parameter's parent method.", "nullable": true, "readOnly": true, "type": "integer" }, "array": { "description": "Whether the parameter can express more than one value. This member is only applicable for `apiChildParameters` that you can specify if the corresponding `apiParameterLocation` is `body` and the `apiParameterType` is `json/xml`. If you enable this, also define the `arrayRestriction` member.", "type": "boolean" }, "pathParamLocationId": { "description": "The index of a segment that includes a path parameter in a resource path. For example, given a path `\\books\\{bookId}`, the `books` segment has index `0`, and the path parameter `{bookId}` has index `1`.", "nullable": true, "type": "number" }, "response": { "description": "Whether the parameter is within a response type.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiParameterDto.yaml" } } }, "apiResourceMethod": { "description": "The core HTTP method to which the resource may respond, either `GET`, `PUT`, `POST`, `DELETE`, `HEAD`, `PATCH`, or `OPTIONS`.", "type": "string", "enum": [ "GET", "PUT", "POST", "DELETE", "HEAD", "PATCH", "OPTIONS" ] }, "apiResourceMethodId": { "description": "The unique identifier for the resource's allowed method.", "nullable": true, "readOnly": true, "type": "integer" }, "apiResourceMethodLogicId": { "description": "The unique identifier for the resource's method across all endpoint versions.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiMethodParametersDto.yaml" } } }, "apiResourceName": { "description": "The name of the resource.", "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the resource.", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the resource.", "type": "string" }, "description": { "description": "The description to clarify the resource's function within the API. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "type": "number" }, "private": { "description": "Whether the resource is private. API consumers can access private resources only if they identify with an appropriate API key.", "type": "boolean" }, "resourcePath": { "description": "The URL path relative to the hostnames on which the resource resides. When entering a resource path, you can use curly brackets (`{}`) to define path parameters (for example, `/path/{pathparam}`). If you decide to do so, ensure that the value of the `apiParameterName` member in the corresponding parameter definition matches the name that you specified in the resource path.", "type": "string" }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the resource.", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the resource.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiResourceMethParamsDto.yaml" } } } }, "headers": { "Location": { "description": "Relative URL for created API resource.", "schema": { "type": "string" } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "get": { "description": "Lists all resources assigned to an endpoint version. You can use the `apiResourceId` of each returned resource to modify resources individually through the [Edit a resource](https://techdocs.akamai.com/api-definitions/reference/put-version-resource) operation, or run the [Edit a version](https://techdocs.akamai.com/api-definitions/reference/put-endpoint-version) operation to batch-modify a group of resources.", "operationId": "get-endpoint-version-resources", "summary": "List resources", "tags": [ "Resources" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/get-endpoint-version-resources" }, "responses": { "200": { "description": "Gets a List of API Endpoint Resources accessible by the user.", "content": { "application/json": { "schema": { "additionalProperties": false, "description": "Contains information about a resource assigned to an endpoint.", "type": "object", "required": [ "apiResourceName", "resourcePath" ], "properties": { "apiResourceClonedFromId": { "description": "For cloned resources, the unique identifier for the source resource.", "nullable": true, "type": "integer" }, "apiResourceId": { "description": "The unique identifier for the resource.", "type": "integer" }, "apiResourceLogicId": { "description": "The unique identifier for the resource across all endpoint versions.", "type": "integer" }, "apiResourceMethodNameLists": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "type": "string" } }, "apiResourceMethods": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "additionalProperties": false, "description": "Contains information about an HTTP method to which a resource may respond.", "type": "object", "required": [ "apiResourceMethod" ], "properties": { "apiParameters": { "description": "The list of parameter objects assigned to the method.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a method's parameter.", "type": "object", "required": [ "apiParameterName", "apiParameterType", "apiParameterRequired", "apiParameterLocation" ], "properties": { "apiChildParameters": { "description": "The collection of child JSON members or XML elements for JSON or XML body type parameters.", "type": "array", "items": { "description": "A further nested endpoint object.", "type": "object", "x-akamai": { "file-path": "schemas/apiParameterDto-nested.yaml" } } }, "apiParamLogicId": { "description": "The unique identifier for the parameter across all endpoint versions.", "readOnly": true, "type": "integer" }, "apiParameterContentType": { "description": "The content type of the parameter. Only applicable for top level body parameters.", "type": "string", "enum": [ "json", "xml", "urlencoded", "json/xml", "any", "none" ] }, "apiParameterId": { "description": "The unique identifier for the parameter.", "readOnly": true, "type": "integer" }, "apiParameterLocation": { "description": "The location of the parameter in an HTTP request, either `query`, `header`, `path`, `cookie`, or `body` for a JSON or XML body type parameter.", "type": "string", "enum": [ "query", "body", "header", "path", "cookie" ] }, "apiParameterName": { "description": "The name of the parameter. If the corresponding `apiParameterLocation` is `path`, ensure that this value matches the parameter name you specified in the `resourcePath`.", "type": "string" }, "apiParameterNotes": { "description": "The description to clarify the parameter's function. If you specify an empty string in the request or omit this member from the object, the JSON response reflects it as `null`.", "nullable": true, "type": "string" }, "apiParameterRequired": { "description": "Specifies whether the API user needs to specify the parameter. If the corresponding `apiParameterLocation` is `path`, set this member to `true`.", "type": "boolean" }, "apiParameterRestriction": { "additionalProperties": false, "description": "Contains information about restrictions and XML representation rules specified for the parameter.", "nullable": true, "type": "object", "properties": { "arrayRestriction": { "additionalProperties": false, "description": "Contains information about array restrictions for array type parameters. Define this object only if you enabled the corresponding `array` member.", "nullable": true, "type": "object", "properties": { "collectionFormat": { "default": "csv", "description": "The format of the array that specifies how you separated array values, either the default `csv` for comma separated values, `ssv` for space separated values, `tsv` for tab separated values, `pipes` for pipe separated values, or `multi` for several parameter instances instead of several values for a single instance.", "type": "string", "enum": [ "csv", "ssv", "tsv", "pipes", "multi" ] }, "maxItems": { "description": "The maximum allowed number of array items.", "type": "integer" }, "minItems": { "description": "The minimum allowed number of array items.", "type": "integer" }, "uniqueItems": { "description": "Whether the array contains only unique items.", "type": "boolean" } } }, "lengthRestriction": { "additionalProperties": false, "description": "Contains information about length restrictions for string type parameters.", "nullable": true, "type": "object", "properties": { "lengthMax": { "description": "The maximum allowed number of characters in the string.", "nullable": true, "type": "integer" }, "lengthMin": { "description": "The minimum allowed number of characters in the string.", "nullable": true, "type": "integer" } } }, "numberRangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for number type parameters.", "nullable": true, "type": "object", "properties": { "numberRangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "number" }, "numberRangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "number" } } }, "rangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for integer type parameters.", "nullable": true, "type": "object", "properties": { "rangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "integer" }, "rangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "integer" } } }, "responseRestriction": { "additionalProperties": false, "type": "object", "properties": { "maxBodySize": { "description": "Limit how large the response body can be before tripping the firewall action. The default is `SIZE_6K`. You can choose `SIZE_8K`, `SIZE_12K`, or `NO_LIMIT`, which allows a response of any size.", "type": "string", "enum": [ "SIZE_6K", "SIZE_8K", "SIZE_12K", "NO_LIMIT" ] }, "statusCodes": { "description": "The response status codes to match to a particular response body format. A `null` or empty value means the response body definition applies to any response body.", "nullable": true, "type": "array", "items": { "type": "integer" } } } }, "xmlConversionRule": { "additionalProperties": false, "description": "Contains information about an XML representation of a JSON-encoded parameter.", "nullable": true, "type": "object", "properties": { "attribute": { "default": false, "description": "Whether the parameter should be represented as an attribute.", "type": "boolean" }, "name": { "description": "The name of the parameter in XML. By default, the XML name is the same as the parameter name specified in the API definition.", "type": "string" }, "namespace": { "description": "The XML namespace.", "type": "string" }, "prefix": { "description": "The prefix for the XML namespace.", "type": "string" }, "wrapped": { "default": false, "description": "Whether the parameter should be wrapped in a parent XML element.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/xmlRestrictionDto.yaml" } } } }, "apiParameterType": { "description": "The data type of the parameter, either `string`, `integer`, `number`, `boolean`, or `json/xml` for JSON or XML objects.", "type": "string", "enum": [ "string", "integer", "number", "boolean", "json/xml" ] }, "apiResourceMethParamId": { "description": "The unique identifier for the parameter's parent method.", "nullable": true, "readOnly": true, "type": "integer" }, "array": { "description": "Whether the parameter can express more than one value. This member is only applicable for `apiChildParameters` that you can specify if the corresponding `apiParameterLocation` is `body` and the `apiParameterType` is `json/xml`. If you enable this, also define the `arrayRestriction` member.", "type": "boolean" }, "pathParamLocationId": { "description": "The index of a segment that includes a path parameter in a resource path. For example, given a path `\\books\\{bookId}`, the `books` segment has index `0`, and the path parameter `{bookId}` has index `1`.", "nullable": true, "type": "number" }, "response": { "description": "Whether the parameter is within a response type.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiParameterDto.yaml" } } }, "apiResourceMethod": { "description": "The core HTTP method to which the resource may respond, either `GET`, `PUT`, `POST`, `DELETE`, `HEAD`, `PATCH`, or `OPTIONS`.", "type": "string", "enum": [ "GET", "PUT", "POST", "DELETE", "HEAD", "PATCH", "OPTIONS" ] }, "apiResourceMethodId": { "description": "The unique identifier for the resource's allowed method.", "nullable": true, "readOnly": true, "type": "integer" }, "apiResourceMethodLogicId": { "description": "The unique identifier for the resource's method across all endpoint versions.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiMethodParametersDto.yaml" } } }, "apiResourceName": { "description": "The name of the resource.", "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the resource.", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the resource.", "type": "string" }, "description": { "description": "The description to clarify the resource's function within the API. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "type": "number" }, "private": { "description": "Whether the resource is private. API consumers can access private resources only if they identify with an appropriate API key.", "type": "boolean" }, "resourcePath": { "description": "The URL path relative to the hostnames on which the resource resides. When entering a resource path, you can use curly brackets (`{}`) to define path parameters (for example, `/path/{pathparam}`). If you decide to do so, ensure that the value of the `apiParameterName` member in the corresponding parameter definition matches the name that you specified in the resource path.", "type": "string" }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the resource.", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the resource.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiResourceMethParamsDto.yaml" } }, "example": [ { "apiResourceClonedFromId": null, "apiResourceId": 2926712, "apiResourceLogicId": 118435, "apiResourceName": "book", "createDate": "2019-06-12T13:06:52+0000", "createdBy": "szhang", "description": "A book item within the bookstore API.", "link": "/api-definitions/v1/endpoints/574127/resources", "lockVersion": 0, "private": false, "resourcePath": "/book/{bookId}", "updateDate": "2019-06-12T13:06:52+0000", "updatedBy": "bookstore_admin", "apiResourceMethodNameLists": [ "POST", "GET" ] }, { "apiResourceClonedFromId": null, "apiResourceId": 2935128, "apiResourceLogicId": 126224, "apiResourceName": "user", "createDate": "2019-06-17T08:17:23+0000", "createdBy": "jperez", "description": "A registered bookstore user.", "link": "/api-definitions/v1/endpoints/574127/resources", "lockVersion": 0, "private": false, "resourcePath": "/user/{userId}", "updateDate": "2019-06-17T08:17:23+0000", "updatedBy": "bookstore_admin", "apiResourceMethodNameLists": [ "POST", "GET", "PUT" ] }, { "apiResourceClonedFromId": null, "apiResourceId": 2935139, "apiResourceLogicId": 126269, "apiResourceName": "magazine", "createDate": "2019-06-17T08:26:59+0000", "createdBy": "jperez", "description": "A magazine item within the bookstore API.", "link": "/api-definitions/v1/endpoints/574127/resources", "lockVersion": 0, "private": false, "resourcePath": "/magazine/{magazineId}", "updateDate": "2019-06-17T08:26:59+0000", "updatedBy": "bookstore_admin", "apiResourceMethodNameLists": [ "GET" ] } ] } } }, "403": { "description": "You don't have permission to the API endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the endpoint version.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/versionNumber-path.yaml" } }, { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "in": "path", "name": "apiEndPointId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/apiEndPointId-path.yaml" } } ] }, "/endpoints/{apiEndPointId}/versions/{versionNumber}/resources-detail": { "get": { "description": "Returns an endpoint version. Use this operation's response object when modifying an endpoint version through [Edit a version](https://techdocs.akamai.com/api-definitions/reference/put-endpoint-version). Don't use [Get a version summary](https://techdocs.akamai.com/api-definitions/reference/get-endpoint-version) for the [Edit a version](https://techdocs.akamai.com/api-definitions/reference/put-endpoint-version) operation.", "operationId": "get-version-details", "summary": "Get a version", "tags": [ "Resources" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/get-version-details" }, "responses": { "200": { "description": "Operation succeeded.", "content": { "application/json": { "example": { "akamaiSecurityRestrictions": null, "apiEndPointId": 492375, "apiEndPointLocked": false, "apiEndPointName": "Bookstore API", "apiEndPointScheme": "http/https", "apiGatewayEnabled": true, "basePath": "/bookstore", "caseSensitive": true, "clonedFromVersion": 1, "consumeType": "any", "contractId": "C-0N7RAC71", "createDate": "2019-06-12T13:06:52+0000", "createdBy": "szhang", "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.", "endpointHidden": false, "graphQL": false, "groupId": 44681, "isGraphQL": false, "lockVersion": 2, "positiveConstrainsEnabled": null, "productionStatus": null, "protectedByApiKey": true, "responseConstraintsEnabled": false, "source": null, "stagingStatus": null, "updateDate": "2019-06-12T13:06:52+0000", "updatedBy": "bookstore_admin", "versionHidden": false, "versionNumber": 1, "apiCategoryIds": [ 2, 7 ], "apiEndPointHosts": [ "bookstore.api.akamai.com" ], "availableActions": [ "DELETE", "CLONE_ENDPOINT", "ACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING" ], "productionVersion": { "lastError": null, "status": null, "timestamp": null, "versionNumber": null }, "securityScheme": { "securitySchemeType": "apikey", "securitySchemeDetail": { "apiKeyLocation": "header", "apiKeyName": "apikey" } }, "stagingVersion": { "lastError": null, "status": null, "timestamp": null, "versionNumber": null }, "apiResources": [ { "apiResourceClonedFromId": null, "apiResourceId": 2926712, "apiResourceLogicId": 118435, "apiResourceName": "books", "createDate": "2019-06-12T13:06:52+0000", "createdBy": "hgildong", "description": "A book item within the bookstore API.", "link": null, "lockVersion": 2, "private": false, "resourcePath": "/books/{bookId}", "updateDate": "2019-06-12T13:06:52+0000", "updatedBy": "bookstore_admin", "apiResourceMethods": [ { "apiResourceMethod": "GET", "apiResourceMethodId": 341591, "apiResourceMethodLogicId": 184404, "apiParameters": [ { "apiParamLogicId": 578116, "apiParameterId": 1212945, "apiParameterLocation": "path", "apiParameterName": "bookId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterRestriction": null, "apiParameterType": "string", "apiResourceMethParamId": 494448, "array": false, "pathParamLocationId": null, "response": false, "apiChildParameters": [] } ] }, { "apiResourceMethod": "POST", "apiResourceMethodId": 341592, "apiResourceMethodLogicId": 184405, "apiParameters": [ { "apiParamLogicId": 578117, "apiParameterId": 1212946, "apiParameterLocation": "path", "apiParameterName": "bookId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterType": "string", "apiResourceMethParamId": 494449, "array": false, "pathParamLocationId": null, "response": false, "apiChildParameters": [], "apiParameterRestriction": { "arrayRestriction": null, "numberRangeRestriction": null, "rangeRestriction": null, "xmlConversionRule": null, "lengthRestriction": { "lengthMax": 15, "lengthMin": 3 } } } ] } ] } ] }, "schema": { "additionalProperties": false, "description": "Contains information about an endpoint and its associated resources.", "type": "object", "required": [ "apiEndPointName", "apiEndPointHosts", "groupId", "contractId", "lockVersion" ], "properties": { "akamaiSecurityRestrictions": { "additionalProperties": false, "description": "Contains information about the Kona Site Defender security restrictions that you apply to an API. Note that you should only include these details in your requests if you're a Kona Site Defender customer.", "nullable": true, "type": "object", "properties": { "ALLOW_ONLY_SPEC_UNDEFINED_METHODS": { "description": "Whether the API allows requests on undefined resources, but only for specific methods. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_BODY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in body. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_COOKIE_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in cookies. These booleans override members in the Method object. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_HEADER_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in header. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_DELETE": { "description": "Whether the API allows requests on undefined resources using the DELETE method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_GET": { "description": "Whether the API allows requests on undefined resources using the GET method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_HEAD": { "description": "Whether the API allows requesting undefined resources using HEAD method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_OPTIONS": { "description": "Whether the API allows requesting undefined resources using OPTIONS method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PATCH": { "description": "Whether the API allows requesting undefined resources using PATCH method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_POST": { "description": "Whether the API allows requests on undefined resources using the POST method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PUT": { "description": "Whether the API allows requests on undefined resources using the PUT method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_PARAMS": { "description": "Whether the API allows requesting with undefined parameters. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_QUERY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in query string. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_RESOURCES": { "description": "Whether the API allows requests on undefined resources. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_SPEC_PARAMS": { "description": "Whether the API allows requesting undefined resources, but only for specific locations. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "MAX_BODY_SIZE": { "description": "The maximum allowed size of a request body.", "nullable": true, "type": "integer" }, "MAX_DOC_DEPTH": { "description": "The maximum depth of nested data elements allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_ELEMENT_NAME_LENGTH": { "description": "The maximum length of an XML element name or JSON object key name allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_INTEGER_VALUE": { "description": "The maximum integer value allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_JSONXML_ELEMENT": { "description": "The maximum number of XML elements, JSON object keys, or array items allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_STRING_LENGTH": { "description": "The maximum length of any string value in a request body.", "nullable": true, "type": "integer" }, "POSITIVE_SECURITY_ENABLED": { "description": "Whether to enforce the API request body and resource constraints as allowlists in your KSD security policies. Either `1` for enabled security constraints, or `0` for disabled.", "type": "integer", "enum": [ 0, 1 ] }, "POSITIVE_SECURITY_VERSION": { "description": "Whether to create the API with API Protection 2 or above. Either `1`, `2` for enabled API Protection 2, or `null` for the legacy API.", "nullable": true, "type": "integer", "enum": [ 1, 2 ] }, "RESPONSE_RESTRICTIONS_ENABLED": { "description": "When set to `1`, the API allows for responses with undefined parameters in the response body. Otherwise the value is `0`.", "type": "integer", "enum": [ 0, 1 ] } } }, "apiCategoryIds": { "description": "The category identifiers that apply to the endpoint. The value is `null` for uncategorized endpoints.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "apiEndPointHosts": { "description": "The hostnames that may receive traffic for the endpoint. You need at least one hostname before activating the endpoint.", "minItems": 1, "type": "array", "items": { "type": "string" } }, "apiEndPointId": { "description": "The unique identifier for the endpoint.", "nullable": true, "readOnly": true, "type": "integer" }, "apiEndPointLocked": { "description": "Whether the endpoint version is read-only.", "nullable": true, "readOnly": true, "type": "boolean" }, "apiEndPointName": { "description": "The name of the endpoint, unique within the account.", "type": "string" }, "apiEndPointScheme": { "description": "The URL scheme to which the endpoint may respond, either `http`, `https`, or `http/https` for both.", "nullable": true, "type": "string", "enum": [ "http", "https", "http/https" ] }, "apiEndPointVersion": { "description": "The unique identifier for the endpoint version.", "nullable": true, "readOnly": true, "type": "integer" }, "apiGatewayEnabled": { "default": true, "description": "Whether the API Gateway product should be enabled for the endpoint. If `null`, the member is set to `true`.", "nullable": true, "type": "boolean" }, "apiResources": { "description": "The list of resources assigned to the endpoint.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a resource assigned to an endpoint.", "type": "object", "required": [ "apiResourceName", "resourcePath" ], "properties": { "apiResourceClonedFromId": { "description": "For cloned resources, the unique identifier for the source resource.", "nullable": true, "type": "integer" }, "apiResourceId": { "description": "The unique identifier for the resource.", "type": "integer" }, "apiResourceLogicId": { "description": "The unique identifier for the resource across all endpoint versions.", "type": "integer" }, "apiResourceMethodNameLists": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "type": "string" } }, "apiResourceMethods": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "additionalProperties": false, "description": "Contains information about an HTTP method to which a resource may respond.", "type": "object", "required": [ "apiResourceMethod" ], "properties": { "apiParameters": { "description": "The list of parameter objects assigned to the method.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a method's parameter.", "type": "object", "required": [ "apiParameterName", "apiParameterType", "apiParameterRequired", "apiParameterLocation" ], "properties": { "apiChildParameters": { "description": "The collection of child JSON members or XML elements for JSON or XML body type parameters.", "type": "array", "items": { "description": "A further nested endpoint object.", "type": "object", "x-akamai": { "file-path": "schemas/apiParameterDto-nested.yaml" } } }, "apiParamLogicId": { "description": "The unique identifier for the parameter across all endpoint versions.", "readOnly": true, "type": "integer" }, "apiParameterContentType": { "description": "The content type of the parameter. Only applicable for top level body parameters.", "type": "string", "enum": [ "json", "xml", "urlencoded", "json/xml", "any", "none" ] }, "apiParameterId": { "description": "The unique identifier for the parameter.", "readOnly": true, "type": "integer" }, "apiParameterLocation": { "description": "The location of the parameter in an HTTP request, either `query`, `header`, `path`, `cookie`, or `body` for a JSON or XML body type parameter.", "type": "string", "enum": [ "query", "body", "header", "path", "cookie" ] }, "apiParameterName": { "description": "The name of the parameter. If the corresponding `apiParameterLocation` is `path`, ensure that this value matches the parameter name you specified in the `resourcePath`.", "type": "string" }, "apiParameterNotes": { "description": "The description to clarify the parameter's function. If you specify an empty string in the request or omit this member from the object, the JSON response reflects it as `null`.", "nullable": true, "type": "string" }, "apiParameterRequired": { "description": "Specifies whether the API user needs to specify the parameter. If the corresponding `apiParameterLocation` is `path`, set this member to `true`.", "type": "boolean" }, "apiParameterRestriction": { "additionalProperties": false, "description": "Contains information about restrictions and XML representation rules specified for the parameter.", "nullable": true, "type": "object", "properties": { "arrayRestriction": { "additionalProperties": false, "description": "Contains information about array restrictions for array type parameters. Define this object only if you enabled the corresponding `array` member.", "nullable": true, "type": "object", "properties": { "collectionFormat": { "default": "csv", "description": "The format of the array that specifies how you separated array values, either the default `csv` for comma separated values, `ssv` for space separated values, `tsv` for tab separated values, `pipes` for pipe separated values, or `multi` for several parameter instances instead of several values for a single instance.", "type": "string", "enum": [ "csv", "ssv", "tsv", "pipes", "multi" ] }, "maxItems": { "description": "The maximum allowed number of array items.", "type": "integer" }, "minItems": { "description": "The minimum allowed number of array items.", "type": "integer" }, "uniqueItems": { "description": "Whether the array contains only unique items.", "type": "boolean" } } }, "lengthRestriction": { "additionalProperties": false, "description": "Contains information about length restrictions for string type parameters.", "nullable": true, "type": "object", "properties": { "lengthMax": { "description": "The maximum allowed number of characters in the string.", "nullable": true, "type": "integer" }, "lengthMin": { "description": "The minimum allowed number of characters in the string.", "nullable": true, "type": "integer" } } }, "numberRangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for number type parameters.", "nullable": true, "type": "object", "properties": { "numberRangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "number" }, "numberRangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "number" } } }, "rangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for integer type parameters.", "nullable": true, "type": "object", "properties": { "rangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "integer" }, "rangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "integer" } } }, "responseRestriction": { "additionalProperties": false, "type": "object", "properties": { "maxBodySize": { "description": "Limit how large the response body can be before tripping the firewall action. The default is `SIZE_6K`. You can choose `SIZE_8K`, `SIZE_12K`, or `NO_LIMIT`, which allows a response of any size.", "type": "string", "enum": [ "SIZE_6K", "SIZE_8K", "SIZE_12K", "NO_LIMIT" ] }, "statusCodes": { "description": "The response status codes to match to a particular response body format. A `null` or empty value means the response body definition applies to any response body.", "nullable": true, "type": "array", "items": { "type": "integer" } } } }, "xmlConversionRule": { "additionalProperties": false, "description": "Contains information about an XML representation of a JSON-encoded parameter.", "nullable": true, "type": "object", "properties": { "attribute": { "default": false, "description": "Whether the parameter should be represented as an attribute.", "type": "boolean" }, "name": { "description": "The name of the parameter in XML. By default, the XML name is the same as the parameter name specified in the API definition.", "type": "string" }, "namespace": { "description": "The XML namespace.", "type": "string" }, "prefix": { "description": "The prefix for the XML namespace.", "type": "string" }, "wrapped": { "default": false, "description": "Whether the parameter should be wrapped in a parent XML element.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/xmlRestrictionDto.yaml" } } } }, "apiParameterType": { "description": "The data type of the parameter, either `string`, `integer`, `number`, `boolean`, or `json/xml` for JSON or XML objects.", "type": "string", "enum": [ "string", "integer", "number", "boolean", "json/xml" ] }, "apiResourceMethParamId": { "description": "The unique identifier for the parameter's parent method.", "nullable": true, "readOnly": true, "type": "integer" }, "array": { "description": "Whether the parameter can express more than one value. This member is only applicable for `apiChildParameters` that you can specify if the corresponding `apiParameterLocation` is `body` and the `apiParameterType` is `json/xml`. If you enable this, also define the `arrayRestriction` member.", "type": "boolean" }, "pathParamLocationId": { "description": "The index of a segment that includes a path parameter in a resource path. For example, given a path `\\books\\{bookId}`, the `books` segment has index `0`, and the path parameter `{bookId}` has index `1`.", "nullable": true, "type": "number" }, "response": { "description": "Whether the parameter is within a response type.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiParameterDto.yaml" } } }, "apiResourceMethod": { "description": "The core HTTP method to which the resource may respond, either `GET`, `PUT`, `POST`, `DELETE`, `HEAD`, `PATCH`, or `OPTIONS`.", "type": "string", "enum": [ "GET", "PUT", "POST", "DELETE", "HEAD", "PATCH", "OPTIONS" ] }, "apiResourceMethodId": { "description": "The unique identifier for the resource's allowed method.", "nullable": true, "readOnly": true, "type": "integer" }, "apiResourceMethodLogicId": { "description": "The unique identifier for the resource's method across all endpoint versions.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiMethodParametersDto.yaml" } } }, "apiResourceName": { "description": "The name of the resource.", "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the resource.", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the resource.", "type": "string" }, "description": { "description": "The description to clarify the resource's function within the API. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "type": "number" }, "private": { "description": "Whether the resource is private. API consumers can access private resources only if they identify with an appropriate API key.", "type": "boolean" }, "resourcePath": { "description": "The URL path relative to the hostnames on which the resource resides. When entering a resource path, you can use curly brackets (`{}`) to define path parameters (for example, `/path/{pathparam}`). If you decide to do so, ensure that the value of the `apiParameterName` member in the corresponding parameter definition matches the name that you specified in the resource path.", "type": "string" }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the resource.", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the resource.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiResourceMethParamsDto.yaml" } } }, "apiSource": { "description": "Specifies if the API's data comes from `API_DISCOVERY` or was provided by the `USER`.", "nullable": true, "type": "string", "enum": [ "USER", "API_DISCOVERY" ] }, "apiVersionInfo": { "additionalProperties": false, "description": "Contains information about a major API version. This refers to REST API versioning and is a different concept than the endpoint configuration versions you create at Akamai.", "nullable": true, "type": "object", "required": [ "location" ], "properties": { "location": { "description": "The location of the API version value in an incoming request. Either `HEADER`, `BASE_PATH`, or `QUERY` parameter.", "type": "string", "enum": [ "HEADER", "BASE_PATH", "QUERY" ] }, "parameterName": { "description": "The name of the header or query parameter that includes the API version value. This is applicable only if the corresponding `location` member is either `HEADER` or `QUERY`.", "type": "string" }, "value": { "description": "The expected API version value in an incoming request.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiVersionInfo.yaml" } }, "availableActions": { "description": "The collection of available actions that you can perform on the endpoint depending on its versions' activation status. For possible values, see [Endpoint.availableActions values](#enumvalues2).", "minItems": 0, "nullable": true, "readOnly": true, "type": "array", "items": { "type": "string", "enum": [ "DELETE", "CLONE_ENDPOINT", "COMPARE_ENDPOINT", "COMPARE_AAG_SETTINGS", "COMPARE_RAPID_SETTINGS", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING", "ACTIVATE_ON_PRODUCTION", "DEACTIVATE_ON_STAGING", "DEACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "SHOW_ENDPOINT" ] } }, "basePath": { "description": "The URL path that serves as a root prefix for all resources' `resourcePath` values. This is `/` if empty. Don't append a `/` character to the path. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "minLength": 0, "nullable": true, "type": "string" }, "caseSensitive": { "description": "Whether the URLs and parameters within the endpoint are case sensitive.", "nullable": true, "type": "boolean" }, "clonedFromVersion": { "description": "For cloned endpoints, the unique identifier for the source endpoint version.", "nullable": true, "readOnly": true, "type": "integer" }, "consumeType": { "description": "The content type the endpoint exchanges, either `json`, `xml`, `urlencoded`, `json/xml/urlencoded`, `json/urlencoded`, `json/xml`, or `xml/urlencoded` for multi-format APIs, `any`, or `none`. A `null` value is the same as a `none` string.", "nullable": true, "type": "string", "enum": [ "none", "json", "xml", "json/xml", "any", "urlencoded", "json/urlencoded", "xml/urlencoded", "json/xml/urlencoded" ] }, "contractId": { "description": "The unique identifier for the contract with Akamai under which you provisioned security and delivery settings for this API.", "nullable": true, "readOnly": true, "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the endpoint.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "createdBy": { "description": "The identifier for the user who created the endpoint.", "nullable": true, "readOnly": true, "type": "string" }, "description": { "description": "The description of the endpoint. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "nullable": true, "type": "string" }, "discoveredPiiIds": { "description": "The collection of personally identifiable information (PII) in your API parameters discovered by the network.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "endpointHidden": { "description": "Specifies whether the endpoint is hidden. You cannot activate or delete versions of a hidden endpoint. If you want to do so, you first need to reveal the endpoint by running the [Show an endpoint](https://techdocs.akamai.com/api-definitions/reference/post-endpoint-show) operation.", "nullable": true, "readOnly": true, "type": "boolean" }, "groupId": { "description": "The unique identifier for the group in Control Center under which you provisioned security and delivery settings for this API.", "nullable": true, "readOnly": true, "type": "integer" }, "isGraphQL": { "description": "Whether the endpoint uses GraphQL to deliver structured content to clients.", "type": "boolean" }, "lockVersion": { "description": "The identifier for the last modification of an endpoint version, used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "readOnly": true, "type": "integer" }, "matchPathSegmentParam": { "default": true, "description": "Whether or not to include path segment parameters in match criteria, like the `jsessionid` portion of `/ssocookie;jsessionid=434343`.", "nullable": true, "type": "boolean" }, "positiveConstrainsEnabled": { "description": "Specifies whether the KSD firewall policies are enabled for the endpoint.", "nullable": true, "type": "boolean" }, "productionStatus": { "description": "The version activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "productionVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the production network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "protectedByApiKey": { "description": "Whether you enabled API key protection for the endpoint version by making the version private.", "readOnly": true, "type": "boolean" }, "responseConstraintsEnabled": { "description": "Specifies whether response constraints are enforced for the endpoint. Note that if you enable response constraints but don't define the constraints, it behaves as if disabled.", "nullable": true, "readOnly": true, "type": "boolean" }, "securityScheme": { "additionalProperties": false, "description": "Contains information about the key with which users may access the endpoint.", "nullable": true, "type": "object", "properties": { "securitySchemeDetail": { "additionalProperties": false, "description": "Contains information about the location of the API key.", "type": "object", "properties": { "apiKeyLocation": { "description": "The location of the API key in incoming requests, either `cookie`, `header`, or `query` parameter.", "type": "string", "enum": [ "cookie", "header", "query" ] }, "apiKeyName": { "description": "The name of the header, query parameter, or cookie where you located the API key.", "type": "string" } } }, "securitySchemeType": { "description": "The type of security scheme implemented for the endpoint. The only valid value is `apikey`.", "type": "string", "enum": [ "apikey" ] } } }, "source": { "additionalProperties": false, "description": "Contains information about the import file used to create the endpoint.", "nullable": true, "readOnly": true, "type": "object", "properties": { "apiVersion": { "description": "The major version of the API defined in the import file.", "nullable": true, "readOnly": true, "type": "string" }, "specificationVersion": { "description": "The version of the import file's specification.", "example": "3.0.0", "nullable": true, "readOnly": true, "type": "string" }, "type": { "description": "The specification of the import file you uploaded to create the endpoint version. Either `SWAGGER` or `RAML`.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "SWAGGER", "RAML" ] } }, "x-akamai": { "file-path": "schemas/apiEndpointSourceDto.yaml" } }, "stagingStatus": { "description": "The version activation status on the staging network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "stagingVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the staging network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the endpoint.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the endpoint.", "nullable": true, "readOnly": true, "type": "string" }, "versionHidden": { "description": "Specifies whether the endpoint version is hidden. You cannot activate or delete hidden versions. If you want to do so, you first need to reveal the version by running the [Show a version](https://techdocs.akamai.com/api-definitions/reference/post-version-show) operation.", "nullable": true, "readOnly": true, "type": "boolean" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointWithResourceDto-recurse.yaml" } } } } }, "403": { "description": "You don't have permission to retrieve API endpoint list.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the endpoint version.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/versionNumber-path.yaml" } }, { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "in": "path", "name": "apiEndPointId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/apiEndPointId-path.yaml" } } ] }, "/endpoints/{apiEndPointId}/versions/{versionNumber}/resources/{apiResourceId}": { "get": { "description": "Returns a resource within an endpoint version.", "operationId": "get-endpoint-version-resource", "summary": "Get a resource", "tags": [ "Resources" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/get-endpoint-version-resource" }, "responses": { "200": { "description": "API Endpoint Resource details defined by API Endpoint ID and API Resource ID.", "content": { "application/json": { "example": { "apiResourceClonedFromId": null, "apiResourceId": 2935139, "apiResourceLogicId": 126269, "apiResourceName": "magazine", "createDate": "2019-06-17T08:26:59+0000", "createdBy": "tyamada", "description": "A magazine item within the bookstore API.", "link": null, "lockVersion": 0, "private": false, "resourcePath": "/magazine/{magazineId}", "updateDate": "2019-06-17T08:26:59+0000", "updatedBy": "bookstore_admin", "apiResourceMethods": [ { "apiResourceMethod": "GET", "apiResourceMethodId": 365559, "apiResourceMethodLogicId": 205820, "apiParameters": [ { "apiParamLogicId": 588309, "apiParameterId": 1223250, "apiParameterLocation": "path", "apiParameterName": "magazineId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterRestriction": null, "apiParameterType": "string", "apiResourceMethParamId": 500315, "array": false, "pathParamLocationId": null, "apiChildParameters": [] } ] } ] }, "schema": { "additionalProperties": false, "description": "Contains information about a resource assigned to an endpoint.", "type": "object", "required": [ "apiResourceName", "resourcePath" ], "properties": { "apiResourceClonedFromId": { "description": "For cloned resources, the unique identifier for the source resource.", "nullable": true, "type": "integer" }, "apiResourceId": { "description": "The unique identifier for the resource.", "type": "integer" }, "apiResourceLogicId": { "description": "The unique identifier for the resource across all endpoint versions.", "type": "integer" }, "apiResourceMethodNameLists": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "type": "string" } }, "apiResourceMethods": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "additionalProperties": false, "description": "Contains information about an HTTP method to which a resource may respond.", "type": "object", "required": [ "apiResourceMethod" ], "properties": { "apiParameters": { "description": "The list of parameter objects assigned to the method.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a method's parameter.", "type": "object", "required": [ "apiParameterName", "apiParameterType", "apiParameterRequired", "apiParameterLocation" ], "properties": { "apiChildParameters": { "description": "The collection of child JSON members or XML elements for JSON or XML body type parameters.", "type": "array", "items": { "description": "A further nested endpoint object.", "type": "object", "x-akamai": { "file-path": "schemas/apiParameterDto-nested.yaml" } } }, "apiParamLogicId": { "description": "The unique identifier for the parameter across all endpoint versions.", "readOnly": true, "type": "integer" }, "apiParameterContentType": { "description": "The content type of the parameter. Only applicable for top level body parameters.", "type": "string", "enum": [ "json", "xml", "urlencoded", "json/xml", "any", "none" ] }, "apiParameterId": { "description": "The unique identifier for the parameter.", "readOnly": true, "type": "integer" }, "apiParameterLocation": { "description": "The location of the parameter in an HTTP request, either `query`, `header`, `path`, `cookie`, or `body` for a JSON or XML body type parameter.", "type": "string", "enum": [ "query", "body", "header", "path", "cookie" ] }, "apiParameterName": { "description": "The name of the parameter. If the corresponding `apiParameterLocation` is `path`, ensure that this value matches the parameter name you specified in the `resourcePath`.", "type": "string" }, "apiParameterNotes": { "description": "The description to clarify the parameter's function. If you specify an empty string in the request or omit this member from the object, the JSON response reflects it as `null`.", "nullable": true, "type": "string" }, "apiParameterRequired": { "description": "Specifies whether the API user needs to specify the parameter. If the corresponding `apiParameterLocation` is `path`, set this member to `true`.", "type": "boolean" }, "apiParameterRestriction": { "additionalProperties": false, "description": "Contains information about restrictions and XML representation rules specified for the parameter.", "nullable": true, "type": "object", "properties": { "arrayRestriction": { "additionalProperties": false, "description": "Contains information about array restrictions for array type parameters. Define this object only if you enabled the corresponding `array` member.", "nullable": true, "type": "object", "properties": { "collectionFormat": { "default": "csv", "description": "The format of the array that specifies how you separated array values, either the default `csv` for comma separated values, `ssv` for space separated values, `tsv` for tab separated values, `pipes` for pipe separated values, or `multi` for several parameter instances instead of several values for a single instance.", "type": "string", "enum": [ "csv", "ssv", "tsv", "pipes", "multi" ] }, "maxItems": { "description": "The maximum allowed number of array items.", "type": "integer" }, "minItems": { "description": "The minimum allowed number of array items.", "type": "integer" }, "uniqueItems": { "description": "Whether the array contains only unique items.", "type": "boolean" } } }, "lengthRestriction": { "additionalProperties": false, "description": "Contains information about length restrictions for string type parameters.", "nullable": true, "type": "object", "properties": { "lengthMax": { "description": "The maximum allowed number of characters in the string.", "nullable": true, "type": "integer" }, "lengthMin": { "description": "The minimum allowed number of characters in the string.", "nullable": true, "type": "integer" } } }, "numberRangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for number type parameters.", "nullable": true, "type": "object", "properties": { "numberRangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "number" }, "numberRangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "number" } } }, "rangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for integer type parameters.", "nullable": true, "type": "object", "properties": { "rangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "integer" }, "rangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "integer" } } }, "responseRestriction": { "additionalProperties": false, "type": "object", "properties": { "maxBodySize": { "description": "Limit how large the response body can be before tripping the firewall action. The default is `SIZE_6K`. You can choose `SIZE_8K`, `SIZE_12K`, or `NO_LIMIT`, which allows a response of any size.", "type": "string", "enum": [ "SIZE_6K", "SIZE_8K", "SIZE_12K", "NO_LIMIT" ] }, "statusCodes": { "description": "The response status codes to match to a particular response body format. A `null` or empty value means the response body definition applies to any response body.", "nullable": true, "type": "array", "items": { "type": "integer" } } } }, "xmlConversionRule": { "additionalProperties": false, "description": "Contains information about an XML representation of a JSON-encoded parameter.", "nullable": true, "type": "object", "properties": { "attribute": { "default": false, "description": "Whether the parameter should be represented as an attribute.", "type": "boolean" }, "name": { "description": "The name of the parameter in XML. By default, the XML name is the same as the parameter name specified in the API definition.", "type": "string" }, "namespace": { "description": "The XML namespace.", "type": "string" }, "prefix": { "description": "The prefix for the XML namespace.", "type": "string" }, "wrapped": { "default": false, "description": "Whether the parameter should be wrapped in a parent XML element.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/xmlRestrictionDto.yaml" } } } }, "apiParameterType": { "description": "The data type of the parameter, either `string`, `integer`, `number`, `boolean`, or `json/xml` for JSON or XML objects.", "type": "string", "enum": [ "string", "integer", "number", "boolean", "json/xml" ] }, "apiResourceMethParamId": { "description": "The unique identifier for the parameter's parent method.", "nullable": true, "readOnly": true, "type": "integer" }, "array": { "description": "Whether the parameter can express more than one value. This member is only applicable for `apiChildParameters` that you can specify if the corresponding `apiParameterLocation` is `body` and the `apiParameterType` is `json/xml`. If you enable this, also define the `arrayRestriction` member.", "type": "boolean" }, "pathParamLocationId": { "description": "The index of a segment that includes a path parameter in a resource path. For example, given a path `\\books\\{bookId}`, the `books` segment has index `0`, and the path parameter `{bookId}` has index `1`.", "nullable": true, "type": "number" }, "response": { "description": "Whether the parameter is within a response type.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiParameterDto.yaml" } } }, "apiResourceMethod": { "description": "The core HTTP method to which the resource may respond, either `GET`, `PUT`, `POST`, `DELETE`, `HEAD`, `PATCH`, or `OPTIONS`.", "type": "string", "enum": [ "GET", "PUT", "POST", "DELETE", "HEAD", "PATCH", "OPTIONS" ] }, "apiResourceMethodId": { "description": "The unique identifier for the resource's allowed method.", "nullable": true, "readOnly": true, "type": "integer" }, "apiResourceMethodLogicId": { "description": "The unique identifier for the resource's method across all endpoint versions.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiMethodParametersDto.yaml" } } }, "apiResourceName": { "description": "The name of the resource.", "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the resource.", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the resource.", "type": "string" }, "description": { "description": "The description to clarify the resource's function within the API. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "type": "number" }, "private": { "description": "Whether the resource is private. API consumers can access private resources only if they identify with an appropriate API key.", "type": "boolean" }, "resourcePath": { "description": "The URL path relative to the hostnames on which the resource resides. When entering a resource path, you can use curly brackets (`{}`) to define path parameters (for example, `/path/{pathparam}`). If you decide to do so, ensure that the value of the `apiParameterName` member in the corresponding parameter definition matches the name that you specified in the resource path.", "type": "string" }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the resource.", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the resource.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiResourceMethParamsDto.yaml" } } } } }, "403": { "description": "You don't have permission to the API endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "404": { "description": "The required resource is not found.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "put": { "description": "Updates a resource within an endpoint version. You can edit information about a resource, the methods, and the parameters assigned to a resource. You can only modify resources assigned to versions that have never been activated on the staging or production network.", "operationId": "put-version-resource", "summary": "Edit a resource", "tags": [ "Resources" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/put-version-resource" }, "requestBody": { "required": true, "content": { "application/json": { "example": { "apiResourceClonedFromId": null, "apiResourceId": 2935139, "apiResourceLogicId": 126269, "apiResourceName": "magazine", "createDate": "2019-06-17T08:26:59+0000", "createdBy": "alfulani", "description": "A magazine item within the bookstore API.", "link": null, "lockVersion": 0, "private": false, "resourcePath": "/magazine/{magazineId}", "updateDate": "2019-06-17T08:26:59+0000", "updatedBy": "bookstore_admin", "apiResourceMethods": [ { "apiResourceMethod": "GET", "apiResourceMethodId": 365559, "apiResourceMethodLogicId": 205820, "apiParameters": [ { "apiParamLogicId": 588309, "apiParameterId": 1223250, "apiParameterLocation": "path", "apiParameterName": "magazineId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterRestriction": null, "apiParameterType": "string", "apiResourceMethParamId": 500315, "array": false, "pathParamLocationId": null, "apiChildParameters": [] } ] } ] }, "schema": { "additionalProperties": false, "description": "Contains information about a resource assigned to an endpoint.", "type": "object", "required": [ "apiResourceName", "resourcePath" ], "properties": { "apiResourceClonedFromId": { "description": "For cloned resources, the unique identifier for the source resource.", "example": "{{apiResourceClonedFromId}}", "nullable": true, "type": "integer" }, "apiResourceId": { "description": "The unique identifier for the resource.", "example": "{{apiResourceId}}", "type": "integer" }, "apiResourceLogicId": { "description": "The unique identifier for the resource across all endpoint versions.", "example": "{{apiResourceLogicId}}", "type": "integer" }, "apiResourceMethodNameLists": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "type": "string" } }, "apiResourceMethods": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "additionalProperties": false, "description": "Contains information about an HTTP method to which a resource may respond.", "type": "object", "required": [ "apiResourceMethod" ], "properties": { "apiParameters": { "description": "The list of parameter objects assigned to the method.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a method's parameter.", "type": "object", "required": [ "apiParameterName", "apiParameterType", "apiParameterRequired", "apiParameterLocation" ], "properties": { "apiChildParameters": { "description": "The collection of child JSON members or XML elements for JSON or XML body type parameters.", "type": "array", "items": { "description": "A further nested endpoint object.", "type": "object", "x-akamai": { "file-path": "schemas/apiParameterDto-nested.yaml" } } }, "apiParamLogicId": { "description": "The unique identifier for the parameter across all endpoint versions.", "readOnly": true, "type": "integer" }, "apiParameterContentType": { "description": "The content type of the parameter. Only applicable for top level body parameters.", "type": "string", "enum": [ "json", "xml", "urlencoded", "json/xml", "any", "none" ] }, "apiParameterId": { "description": "The unique identifier for the parameter.", "readOnly": true, "type": "integer" }, "apiParameterLocation": { "description": "The location of the parameter in an HTTP request, either `query`, `header`, `path`, `cookie`, or `body` for a JSON or XML body type parameter.", "type": "string", "enum": [ "query", "body", "header", "path", "cookie" ] }, "apiParameterName": { "description": "The name of the parameter. If the corresponding `apiParameterLocation` is `path`, ensure that this value matches the parameter name you specified in the `resourcePath`.", "type": "string" }, "apiParameterNotes": { "description": "The description to clarify the parameter's function. If you specify an empty string in the request or omit this member from the object, the JSON response reflects it as `null`.", "nullable": true, "type": "string" }, "apiParameterRequired": { "description": "Specifies whether the API user needs to specify the parameter. If the corresponding `apiParameterLocation` is `path`, set this member to `true`.", "type": "boolean" }, "apiParameterRestriction": { "additionalProperties": false, "description": "Contains information about restrictions and XML representation rules specified for the parameter.", "nullable": true, "type": "object", "properties": { "arrayRestriction": { "additionalProperties": false, "description": "Contains information about array restrictions for array type parameters. Define this object only if you enabled the corresponding `array` member.", "nullable": true, "type": "object", "properties": { "collectionFormat": { "default": "csv", "description": "The format of the array that specifies how you separated array values, either the default `csv` for comma separated values, `ssv` for space separated values, `tsv` for tab separated values, `pipes` for pipe separated values, or `multi` for several parameter instances instead of several values for a single instance.", "type": "string", "enum": [ "csv", "ssv", "tsv", "pipes", "multi" ] }, "maxItems": { "description": "The maximum allowed number of array items.", "type": "integer" }, "minItems": { "description": "The minimum allowed number of array items.", "type": "integer" }, "uniqueItems": { "description": "Whether the array contains only unique items.", "type": "boolean" } } }, "lengthRestriction": { "additionalProperties": false, "description": "Contains information about length restrictions for string type parameters.", "nullable": true, "type": "object", "properties": { "lengthMax": { "description": "The maximum allowed number of characters in the string.", "nullable": true, "type": "integer" }, "lengthMin": { "description": "The minimum allowed number of characters in the string.", "nullable": true, "type": "integer" } } }, "numberRangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for number type parameters.", "nullable": true, "type": "object", "properties": { "numberRangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "number" }, "numberRangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "number" } } }, "rangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for integer type parameters.", "nullable": true, "type": "object", "properties": { "rangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "integer" }, "rangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "integer" } } }, "responseRestriction": { "additionalProperties": false, "type": "object", "properties": { "maxBodySize": { "description": "Limit how large the response body can be before tripping the firewall action. The default is `SIZE_6K`. You can choose `SIZE_8K`, `SIZE_12K`, or `NO_LIMIT`, which allows a response of any size.", "type": "string", "enum": [ "SIZE_6K", "SIZE_8K", "SIZE_12K", "NO_LIMIT" ] }, "statusCodes": { "description": "The response status codes to match to a particular response body format. A `null` or empty value means the response body definition applies to any response body.", "nullable": true, "type": "array", "items": { "type": "integer" } } } }, "xmlConversionRule": { "additionalProperties": false, "description": "Contains information about an XML representation of a JSON-encoded parameter.", "nullable": true, "type": "object", "properties": { "attribute": { "default": false, "description": "Whether the parameter should be represented as an attribute.", "type": "boolean" }, "name": { "description": "The name of the parameter in XML. By default, the XML name is the same as the parameter name specified in the API definition.", "type": "string" }, "namespace": { "description": "The XML namespace.", "type": "string" }, "prefix": { "description": "The prefix for the XML namespace.", "type": "string" }, "wrapped": { "default": false, "description": "Whether the parameter should be wrapped in a parent XML element.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/xmlRestrictionDto.yaml" } } } }, "apiParameterType": { "description": "The data type of the parameter, either `string`, `integer`, `number`, `boolean`, or `json/xml` for JSON or XML objects.", "type": "string", "enum": [ "string", "integer", "number", "boolean", "json/xml" ] }, "apiResourceMethParamId": { "description": "The unique identifier for the parameter's parent method.", "nullable": true, "readOnly": true, "type": "integer" }, "array": { "description": "Whether the parameter can express more than one value. This member is only applicable for `apiChildParameters` that you can specify if the corresponding `apiParameterLocation` is `body` and the `apiParameterType` is `json/xml`. If you enable this, also define the `arrayRestriction` member.", "type": "boolean" }, "pathParamLocationId": { "description": "The index of a segment that includes a path parameter in a resource path. For example, given a path `\\books\\{bookId}`, the `books` segment has index `0`, and the path parameter `{bookId}` has index `1`.", "nullable": true, "type": "number" }, "response": { "description": "Whether the parameter is within a response type.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiParameterDto.yaml" } } }, "apiResourceMethod": { "description": "The core HTTP method to which the resource may respond, either `GET`, `PUT`, `POST`, `DELETE`, `HEAD`, `PATCH`, or `OPTIONS`.", "type": "string", "enum": [ "GET", "PUT", "POST", "DELETE", "HEAD", "PATCH", "OPTIONS" ] }, "apiResourceMethodId": { "description": "The unique identifier for the resource's allowed method.", "nullable": true, "readOnly": true, "type": "integer" }, "apiResourceMethodLogicId": { "description": "The unique identifier for the resource's method across all endpoint versions.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiMethodParametersDto.yaml" } } }, "apiResourceName": { "description": "The name of the resource.", "example": "{{apiResourceName}}", "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the resource.", "example": "{{createDate}}", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the resource.", "example": "{{createdBy}}", "type": "string" }, "description": { "description": "The description to clarify the resource's function within the API. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "example": "{{description}}", "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "example": "{{link}}", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "example": "{{lockVersion}}", "type": "number" }, "private": { "description": "Whether the resource is private. API consumers can access private resources only if they identify with an appropriate API key.", "example": "{{private}}", "type": "boolean" }, "resourcePath": { "description": "The URL path relative to the hostnames on which the resource resides. When entering a resource path, you can use curly brackets (`{}`) to define path parameters (for example, `/path/{pathparam}`). If you decide to do so, ensure that the value of the `apiParameterName` member in the corresponding parameter definition matches the name that you specified in the resource path.", "example": "{{resourcePath}}", "type": "string" }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the resource.", "example": "{{updateDate}}", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the resource.", "example": "{{updatedBy}}", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiResourceMethParamsDto.yaml" } } } } }, "responses": { "200": { "description": "Updated API Endpoint Resource Details.", "content": { "application/json": { "example": { "apiResourceClonedFromId": null, "apiResourceId": 2935139, "apiResourceLogicId": 126269, "apiResourceName": "magazine", "createDate": "2019-06-17T08:26:59+0000", "createdBy": "adevi", "description": "A magazine item within the bookstore API.", "link": null, "lockVersion": 0, "private": false, "resourcePath": "/magazine/{magazineId}", "updateDate": "2019-06-17T08:26:59+0000", "updatedBy": "bookstore_admin", "apiResourceMethods": [ { "apiResourceMethod": "GET", "apiResourceMethodId": 365559, "apiResourceMethodLogicId": 205820, "apiParameters": [ { "apiParamLogicId": 588309, "apiParameterId": 1223250, "apiParameterLocation": "path", "apiParameterName": "magazineId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterRestriction": null, "apiParameterType": "string", "apiResourceMethParamId": 500315, "array": false, "pathParamLocationId": null, "apiChildParameters": [] } ] } ] }, "schema": { "additionalProperties": false, "description": "Contains information about a resource assigned to an endpoint.", "type": "object", "required": [ "apiResourceName", "resourcePath" ], "properties": { "apiResourceClonedFromId": { "description": "For cloned resources, the unique identifier for the source resource.", "nullable": true, "type": "integer" }, "apiResourceId": { "description": "The unique identifier for the resource.", "type": "integer" }, "apiResourceLogicId": { "description": "The unique identifier for the resource across all endpoint versions.", "type": "integer" }, "apiResourceMethodNameLists": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "type": "string" } }, "apiResourceMethods": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "additionalProperties": false, "description": "Contains information about an HTTP method to which a resource may respond.", "type": "object", "required": [ "apiResourceMethod" ], "properties": { "apiParameters": { "description": "The list of parameter objects assigned to the method.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a method's parameter.", "type": "object", "required": [ "apiParameterName", "apiParameterType", "apiParameterRequired", "apiParameterLocation" ], "properties": { "apiChildParameters": { "description": "The collection of child JSON members or XML elements for JSON or XML body type parameters.", "type": "array", "items": { "description": "A further nested endpoint object.", "type": "object", "x-akamai": { "file-path": "schemas/apiParameterDto-nested.yaml" } } }, "apiParamLogicId": { "description": "The unique identifier for the parameter across all endpoint versions.", "readOnly": true, "type": "integer" }, "apiParameterContentType": { "description": "The content type of the parameter. Only applicable for top level body parameters.", "type": "string", "enum": [ "json", "xml", "urlencoded", "json/xml", "any", "none" ] }, "apiParameterId": { "description": "The unique identifier for the parameter.", "readOnly": true, "type": "integer" }, "apiParameterLocation": { "description": "The location of the parameter in an HTTP request, either `query`, `header`, `path`, `cookie`, or `body` for a JSON or XML body type parameter.", "type": "string", "enum": [ "query", "body", "header", "path", "cookie" ] }, "apiParameterName": { "description": "The name of the parameter. If the corresponding `apiParameterLocation` is `path`, ensure that this value matches the parameter name you specified in the `resourcePath`.", "type": "string" }, "apiParameterNotes": { "description": "The description to clarify the parameter's function. If you specify an empty string in the request or omit this member from the object, the JSON response reflects it as `null`.", "nullable": true, "type": "string" }, "apiParameterRequired": { "description": "Specifies whether the API user needs to specify the parameter. If the corresponding `apiParameterLocation` is `path`, set this member to `true`.", "type": "boolean" }, "apiParameterRestriction": { "additionalProperties": false, "description": "Contains information about restrictions and XML representation rules specified for the parameter.", "nullable": true, "type": "object", "properties": { "arrayRestriction": { "additionalProperties": false, "description": "Contains information about array restrictions for array type parameters. Define this object only if you enabled the corresponding `array` member.", "nullable": true, "type": "object", "properties": { "collectionFormat": { "default": "csv", "description": "The format of the array that specifies how you separated array values, either the default `csv` for comma separated values, `ssv` for space separated values, `tsv` for tab separated values, `pipes` for pipe separated values, or `multi` for several parameter instances instead of several values for a single instance.", "type": "string", "enum": [ "csv", "ssv", "tsv", "pipes", "multi" ] }, "maxItems": { "description": "The maximum allowed number of array items.", "type": "integer" }, "minItems": { "description": "The minimum allowed number of array items.", "type": "integer" }, "uniqueItems": { "description": "Whether the array contains only unique items.", "type": "boolean" } } }, "lengthRestriction": { "additionalProperties": false, "description": "Contains information about length restrictions for string type parameters.", "nullable": true, "type": "object", "properties": { "lengthMax": { "description": "The maximum allowed number of characters in the string.", "nullable": true, "type": "integer" }, "lengthMin": { "description": "The minimum allowed number of characters in the string.", "nullable": true, "type": "integer" } } }, "numberRangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for number type parameters.", "nullable": true, "type": "object", "properties": { "numberRangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "number" }, "numberRangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "number" } } }, "rangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for integer type parameters.", "nullable": true, "type": "object", "properties": { "rangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "integer" }, "rangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "integer" } } }, "responseRestriction": { "additionalProperties": false, "type": "object", "properties": { "maxBodySize": { "description": "Limit how large the response body can be before tripping the firewall action. The default is `SIZE_6K`. You can choose `SIZE_8K`, `SIZE_12K`, or `NO_LIMIT`, which allows a response of any size.", "type": "string", "enum": [ "SIZE_6K", "SIZE_8K", "SIZE_12K", "NO_LIMIT" ] }, "statusCodes": { "description": "The response status codes to match to a particular response body format. A `null` or empty value means the response body definition applies to any response body.", "nullable": true, "type": "array", "items": { "type": "integer" } } } }, "xmlConversionRule": { "additionalProperties": false, "description": "Contains information about an XML representation of a JSON-encoded parameter.", "nullable": true, "type": "object", "properties": { "attribute": { "default": false, "description": "Whether the parameter should be represented as an attribute.", "type": "boolean" }, "name": { "description": "The name of the parameter in XML. By default, the XML name is the same as the parameter name specified in the API definition.", "type": "string" }, "namespace": { "description": "The XML namespace.", "type": "string" }, "prefix": { "description": "The prefix for the XML namespace.", "type": "string" }, "wrapped": { "default": false, "description": "Whether the parameter should be wrapped in a parent XML element.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/xmlRestrictionDto.yaml" } } } }, "apiParameterType": { "description": "The data type of the parameter, either `string`, `integer`, `number`, `boolean`, or `json/xml` for JSON or XML objects.", "type": "string", "enum": [ "string", "integer", "number", "boolean", "json/xml" ] }, "apiResourceMethParamId": { "description": "The unique identifier for the parameter's parent method.", "nullable": true, "readOnly": true, "type": "integer" }, "array": { "description": "Whether the parameter can express more than one value. This member is only applicable for `apiChildParameters` that you can specify if the corresponding `apiParameterLocation` is `body` and the `apiParameterType` is `json/xml`. If you enable this, also define the `arrayRestriction` member.", "type": "boolean" }, "pathParamLocationId": { "description": "The index of a segment that includes a path parameter in a resource path. For example, given a path `\\books\\{bookId}`, the `books` segment has index `0`, and the path parameter `{bookId}` has index `1`.", "nullable": true, "type": "number" }, "response": { "description": "Whether the parameter is within a response type.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiParameterDto.yaml" } } }, "apiResourceMethod": { "description": "The core HTTP method to which the resource may respond, either `GET`, `PUT`, `POST`, `DELETE`, `HEAD`, `PATCH`, or `OPTIONS`.", "type": "string", "enum": [ "GET", "PUT", "POST", "DELETE", "HEAD", "PATCH", "OPTIONS" ] }, "apiResourceMethodId": { "description": "The unique identifier for the resource's allowed method.", "nullable": true, "readOnly": true, "type": "integer" }, "apiResourceMethodLogicId": { "description": "The unique identifier for the resource's method across all endpoint versions.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiMethodParametersDto.yaml" } } }, "apiResourceName": { "description": "The name of the resource.", "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the resource.", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the resource.", "type": "string" }, "description": { "description": "The description to clarify the resource's function within the API. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "type": "number" }, "private": { "description": "Whether the resource is private. API consumers can access private resources only if they identify with an appropriate API key.", "type": "boolean" }, "resourcePath": { "description": "The URL path relative to the hostnames on which the resource resides. When entering a resource path, you can use curly brackets (`{}`) to define path parameters (for example, `/path/{pathparam}`). If you decide to do so, ensure that the value of the `apiParameterName` member in the corresponding parameter definition matches the name that you specified in the resource path.", "type": "string" }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the resource.", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the resource.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiResourceMethParamsDto.yaml" } } } } }, "400": { "description": "Some of user input is invalid.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "403": { "description": "You don't have permission to the API endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "404": { "description": "The required resource is not found.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "409": { "description": "After you get the data, you modify the API endpoint resource. You have to retrieve the updated data before update.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "delete": { "description": "Removes a resource from an endpoint version. You can only remove resources assigned to versions that have never been activated on the staging or production network.", "operationId": "delete-endpoint-version-resource", "summary": "Delete a resource", "tags": [ "Resources" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/delete-endpoint-version-resource" }, "responses": { "204": { "description": "Resource successfully deleted.", "content": { "*/*": {} } }, "403": { "description": "You don't have access to the endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "404": { "description": "The API endpoint or resource is not found.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the resource.", "example": "{{apiResourceId}}", "in": "path", "name": "apiResourceId", "required": true, "schema": { "type": "integer" }, "x-akamai": { "file-path": "parameters/apiResourceId-path.yaml" } }, { "description": "The unique identifier for the endpoint version.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/versionNumber-path.yaml" } }, { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "in": "path", "name": "apiEndPointId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/apiEndPointId-path.yaml" } } ] }, "/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/api-privacy": { "get": { "description": "Returns the API privacy settings configured for an endpoint version and its assigned resources.", "operationId": "get-api-privacy-settings", "summary": "Get API privacy settings", "tags": [ "API privacy" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/get-api-privacy-settings" }, "responses": { "200": { "description": "Operation succeeded.", "content": { "application/json": { "example": { "public": false, "resources": { "2926712": { "inheritsFromEndpoint": true, "notes": "A book item within the bookstore API.", "path": "/book/{bookId}", "public": false, "methods": { "GET": { "inheritsFromEndpoint": true, "public": false }, "POST": { "inheritsFromEndpoint": true, "public": false } } } } }, "schema": { "additionalProperties": false, "description": "Contains information about API privacy settings configured for an endpoint and its associated resources. You can configure API privacy settings if the API Gateway product is in your contract.", "type": "object", "required": [ "public" ], "properties": { "public": { "description": "Whether the endpoint is public, that is, accessible without an API key.", "type": "boolean" }, "resources": { "description": "Specifies each resource's privacy settings. This object is a map of resource IDs to API privacy settings.", "type": "object", "additionalProperties": { "additionalProperties": false, "description": "Specifies a resource's privacy settings. This object's keys are resource IDs, and values are the resource's privacy settings.", "title": "Resource privacy settings", "type": "object", "required": [ "public" ], "properties": { "inheritsFromEndpoint": { "description": "Whether the resource inherits the top-level API privacy settings.", "readOnly": true, "type": "boolean" }, "methods": { "additionalProperties": false, "description": "The methods assigned to the resource, either `POST`, `GET`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, or `PATCH`.", "type": "object", "properties": { "DELETE": { "additionalProperties": false, "description": "Contains information about a method's privacy settings.", "type": "object", "properties": { "inheritsFromEndpoint": { "description": "Whether the method inherits the top-level API privacy settings.", "readOnly": true, "type": "boolean" }, "public": { "description": "Whether the method is public, that is, accessible without an API key.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiPrivacySettingsMethod.yaml" } }, "GET": { "additionalProperties": false, "description": "Contains information about a method's privacy settings.", "type": "object", "properties": { "inheritsFromEndpoint": { "description": "Whether the method inherits the top-level API privacy settings.", "readOnly": true, "type": "boolean" }, "public": { "description": "Whether the method is public, that is, accessible without an API key.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiPrivacySettingsMethod.yaml" } }, "HEAD": { "additionalProperties": false, "description": "Contains information about a method's privacy settings.", "type": "object", "properties": { "inheritsFromEndpoint": { "description": "Whether the method inherits the top-level API privacy settings.", "readOnly": true, "type": "boolean" }, "public": { "description": "Whether the method is public, that is, accessible without an API key.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiPrivacySettingsMethod.yaml" } }, "OPTIONS": { "additionalProperties": false, "description": "Contains information about a method's privacy settings.", "type": "object", "properties": { "inheritsFromEndpoint": { "description": "Whether the method inherits the top-level API privacy settings.", "readOnly": true, "type": "boolean" }, "public": { "description": "Whether the method is public, that is, accessible without an API key.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiPrivacySettingsMethod.yaml" } }, "PATCH": { "additionalProperties": false, "description": "Contains information about a method's privacy settings.", "type": "object", "properties": { "inheritsFromEndpoint": { "description": "Whether the method inherits the top-level API privacy settings.", "readOnly": true, "type": "boolean" }, "public": { "description": "Whether the method is public, that is, accessible without an API key.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiPrivacySettingsMethod.yaml" } }, "POST": { "additionalProperties": false, "description": "Contains information about a method's privacy settings.", "type": "object", "properties": { "inheritsFromEndpoint": { "description": "Whether the method inherits the top-level API privacy settings.", "readOnly": true, "type": "boolean" }, "public": { "description": "Whether the method is public, that is, accessible without an API key.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiPrivacySettingsMethod.yaml" } }, "PUT": { "additionalProperties": false, "description": "Contains information about a method's privacy settings.", "type": "object", "properties": { "inheritsFromEndpoint": { "description": "Whether the method inherits the top-level API privacy settings.", "readOnly": true, "type": "boolean" }, "public": { "description": "Whether the method is public, that is, accessible without an API key.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiPrivacySettingsMethod.yaml" } } } }, "notes": { "description": "The notes describing the purpose of the resource.", "minLength": 0, "readOnly": true, "type": "string" }, "path": { "description": "The URL path relative to the hostnames on which the resource resides.", "minLength": 1, "readOnly": true, "type": "string" }, "public": { "description": "Whether the resource is public, that is, accessible without an API key.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiPrivacySettingsResourceId.yaml" } } } }, "x-akamai": { "file-path": "schemas/apiPrivacySettingsDto.yaml" } } } } }, "400": { "description": "Some of user input is invalid.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "403": { "description": "User does not have permission to API endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "404": { "description": "This API endpoint doesn't exist.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "put": { "description": "Updates the API privacy settings configured for an endpoint version and its assigned resources.", "operationId": "put-api-privacy-settings", "summary": "Edit API privacy settings", "tags": [ "API privacy" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/put-api-privacy-settings" }, "requestBody": { "required": true, "content": { "application/json": { "example": { "public": false, "resources": { "2926712": { "public": false, "methods": { "GET": { "public": false }, "POST": { "public": false } } } } }, "schema": { "additionalProperties": false, "description": "Contains information about API privacy settings configured for an endpoint and its associated resources. You can configure API privacy settings if the API Gateway product is in your contract.", "type": "object", "required": [ "public" ], "properties": { "public": { "description": "Whether the endpoint is public, that is, accessible without an API key.", "example": "{{public}}", "type": "boolean" }, "resources": { "description": "Specifies each resource's privacy settings. This object is a map of resource IDs to API privacy settings.", "type": "object", "additionalProperties": { "additionalProperties": false, "description": "Specifies a resource's privacy settings. This object's keys are resource IDs, and values are the resource's privacy settings.", "title": "Resource privacy settings", "type": "object", "required": [ "public" ], "properties": { "inheritsFromEndpoint": { "description": "Whether the resource inherits the top-level API privacy settings.", "readOnly": true, "type": "boolean" }, "methods": { "additionalProperties": false, "description": "The methods assigned to the resource, either `POST`, `GET`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, or `PATCH`.", "type": "object", "properties": { "DELETE": { "additionalProperties": false, "description": "Contains information about a method's privacy settings.", "type": "object", "properties": { "inheritsFromEndpoint": { "description": "Whether the method inherits the top-level API privacy settings.", "readOnly": true, "type": "boolean" }, "public": { "description": "Whether the method is public, that is, accessible without an API key.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiPrivacySettingsMethod.yaml" } }, "GET": { "additionalProperties": false, "description": "Contains information about a method's privacy settings.", "type": "object", "properties": { "inheritsFromEndpoint": { "description": "Whether the method inherits the top-level API privacy settings.", "readOnly": true, "type": "boolean" }, "public": { "description": "Whether the method is public, that is, accessible without an API key.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiPrivacySettingsMethod.yaml" } }, "HEAD": { "additionalProperties": false, "description": "Contains information about a method's privacy settings.", "type": "object", "properties": { "inheritsFromEndpoint": { "description": "Whether the method inherits the top-level API privacy settings.", "readOnly": true, "type": "boolean" }, "public": { "description": "Whether the method is public, that is, accessible without an API key.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiPrivacySettingsMethod.yaml" } }, "OPTIONS": { "additionalProperties": false, "description": "Contains information about a method's privacy settings.", "type": "object", "properties": { "inheritsFromEndpoint": { "description": "Whether the method inherits the top-level API privacy settings.", "readOnly": true, "type": "boolean" }, "public": { "description": "Whether the method is public, that is, accessible without an API key.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiPrivacySettingsMethod.yaml" } }, "PATCH": { "additionalProperties": false, "description": "Contains information about a method's privacy settings.", "type": "object", "properties": { "inheritsFromEndpoint": { "description": "Whether the method inherits the top-level API privacy settings.", "readOnly": true, "type": "boolean" }, "public": { "description": "Whether the method is public, that is, accessible without an API key.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiPrivacySettingsMethod.yaml" } }, "POST": { "additionalProperties": false, "description": "Contains information about a method's privacy settings.", "type": "object", "properties": { "inheritsFromEndpoint": { "description": "Whether the method inherits the top-level API privacy settings.", "readOnly": true, "type": "boolean" }, "public": { "description": "Whether the method is public, that is, accessible without an API key.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiPrivacySettingsMethod.yaml" } }, "PUT": { "additionalProperties": false, "description": "Contains information about a method's privacy settings.", "type": "object", "properties": { "inheritsFromEndpoint": { "description": "Whether the method inherits the top-level API privacy settings.", "readOnly": true, "type": "boolean" }, "public": { "description": "Whether the method is public, that is, accessible without an API key.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiPrivacySettingsMethod.yaml" } } } }, "notes": { "description": "The notes describing the purpose of the resource.", "minLength": 0, "readOnly": true, "type": "string" }, "path": { "description": "The URL path relative to the hostnames on which the resource resides.", "minLength": 1, "readOnly": true, "type": "string" }, "public": { "description": "Whether the resource is public, that is, accessible without an API key.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiPrivacySettingsResourceId.yaml" } } } }, "x-akamai": { "file-path": "schemas/apiPrivacySettingsDto.yaml" } } } } }, "responses": { "200": { "description": "The response shows updated privacy settings.", "content": { "application/json": { "example": { "public": false, "resources": { "2926712": { "inheritsFromEndpoint": true, "notes": "A book item within the bookstore API.", "path": "/book/{bookId}", "public": false, "methods": { "GET": { "inheritsFromEndpoint": true, "public": false }, "POST": { "inheritsFromEndpoint": true, "public": false } } } } }, "schema": { "additionalProperties": false, "description": "Contains information about API privacy settings configured for an endpoint and its associated resources. You can configure API privacy settings if the API Gateway product is in your contract.", "type": "object", "required": [ "public" ], "properties": { "public": { "description": "Whether the endpoint is public, that is, accessible without an API key.", "type": "boolean" }, "resources": { "description": "Specifies each resource's privacy settings. This object is a map of resource IDs to API privacy settings.", "type": "object", "additionalProperties": { "additionalProperties": false, "description": "Specifies a resource's privacy settings. This object's keys are resource IDs, and values are the resource's privacy settings.", "title": "Resource privacy settings", "type": "object", "required": [ "public" ], "properties": { "inheritsFromEndpoint": { "description": "Whether the resource inherits the top-level API privacy settings.", "readOnly": true, "type": "boolean" }, "methods": { "additionalProperties": false, "description": "The methods assigned to the resource, either `POST`, `GET`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, or `PATCH`.", "type": "object", "properties": { "DELETE": { "additionalProperties": false, "description": "Contains information about a method's privacy settings.", "type": "object", "properties": { "inheritsFromEndpoint": { "description": "Whether the method inherits the top-level API privacy settings.", "readOnly": true, "type": "boolean" }, "public": { "description": "Whether the method is public, that is, accessible without an API key.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiPrivacySettingsMethod.yaml" } }, "GET": { "additionalProperties": false, "description": "Contains information about a method's privacy settings.", "type": "object", "properties": { "inheritsFromEndpoint": { "description": "Whether the method inherits the top-level API privacy settings.", "readOnly": true, "type": "boolean" }, "public": { "description": "Whether the method is public, that is, accessible without an API key.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiPrivacySettingsMethod.yaml" } }, "HEAD": { "additionalProperties": false, "description": "Contains information about a method's privacy settings.", "type": "object", "properties": { "inheritsFromEndpoint": { "description": "Whether the method inherits the top-level API privacy settings.", "readOnly": true, "type": "boolean" }, "public": { "description": "Whether the method is public, that is, accessible without an API key.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiPrivacySettingsMethod.yaml" } }, "OPTIONS": { "additionalProperties": false, "description": "Contains information about a method's privacy settings.", "type": "object", "properties": { "inheritsFromEndpoint": { "description": "Whether the method inherits the top-level API privacy settings.", "readOnly": true, "type": "boolean" }, "public": { "description": "Whether the method is public, that is, accessible without an API key.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiPrivacySettingsMethod.yaml" } }, "PATCH": { "additionalProperties": false, "description": "Contains information about a method's privacy settings.", "type": "object", "properties": { "inheritsFromEndpoint": { "description": "Whether the method inherits the top-level API privacy settings.", "readOnly": true, "type": "boolean" }, "public": { "description": "Whether the method is public, that is, accessible without an API key.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiPrivacySettingsMethod.yaml" } }, "POST": { "additionalProperties": false, "description": "Contains information about a method's privacy settings.", "type": "object", "properties": { "inheritsFromEndpoint": { "description": "Whether the method inherits the top-level API privacy settings.", "readOnly": true, "type": "boolean" }, "public": { "description": "Whether the method is public, that is, accessible without an API key.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiPrivacySettingsMethod.yaml" } }, "PUT": { "additionalProperties": false, "description": "Contains information about a method's privacy settings.", "type": "object", "properties": { "inheritsFromEndpoint": { "description": "Whether the method inherits the top-level API privacy settings.", "readOnly": true, "type": "boolean" }, "public": { "description": "Whether the method is public, that is, accessible without an API key.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiPrivacySettingsMethod.yaml" } } } }, "notes": { "description": "The notes describing the purpose of the resource.", "minLength": 0, "readOnly": true, "type": "string" }, "path": { "description": "The URL path relative to the hostnames on which the resource resides.", "minLength": 1, "readOnly": true, "type": "string" }, "public": { "description": "Whether the resource is public, that is, accessible without an API key.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiPrivacySettingsResourceId.yaml" } } } }, "x-akamai": { "file-path": "schemas/apiPrivacySettingsDto.yaml" } } } } }, "400": { "description": "Some of user input is invalid.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "403": { "description": "User does not have permission to API endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "404": { "description": "This API endpoint doesn't exist.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the endpoint version.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/versionNumber-path.yaml" } }, { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "in": "path", "name": "apiEndPointId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/apiEndPointId-path.yaml" } } ] }, "/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/cache": { "get": { "description": "Returns the caching settings configured for an endpoint version and its assigned resources.", "operationId": "get-cache-settings", "summary": "Get cache settings", "tags": [ "Cache" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/get-cache-settings" }, "responses": { "200": { "description": "Response data shows current cache settings.", "content": { "application/json": { "example": { "enabled": true, "option": "CACHE", "preRefreshing": null, "serveStale": true, "cacheKey": { "customize": true, "exactMatch": true, "option": "INCLUDE_ALL_PRESERVE_ORDER", "parameters": null }, "downstreamCaching": { "headers": "CACHE_CONTROL_AND_EXPIRES", "lifetime": "SMALLER_VALUE", "markAsPrivate": false, "maxAge": null, "option": "ALLOW_CACHING" }, "errorCaching": { "enabled": true, "preserveStale": true, "maxAge": { "duration": 80, "unit": "SECONDS" } }, "maxAge": { "duration": 100, "unit": "SECONDS" }, "resources": { "2926712": { "inheritsFromEndpoint": true, "option": "CACHE", "path": "/book/{bookId}", "serveStale": true, "methods": [ "POST", "GET" ], "cacheKey": { "customize": true, "exactMatch": true, "option": "INCLUDE_ALL_PRESERVE_ORDER", "parameters": null }, "maxAge": { "duration": 100, "unit": "SECONDS" } }, "2935128": { "inheritsFromEndpoint": false, "option": "CACHE", "path": "/user/{userId}", "serveStale": false, "methods": [ "POST", "GET", "PUT" ], "cacheKey": { "customize": false, "exactMatch": true, "option": "INCLUDE_ALL_PRESERVE_ORDER", "parameters": null }, "maxAge": { "duration": 120, "unit": "SECONDS" } }, "2935139": { "inheritsFromEndpoint": true, "option": "CACHE", "path": "/magazine/{magazineId}", "serveStale": true, "methods": [ "GET" ], "cacheKey": { "customize": true, "exactMatch": true, "option": "INCLUDE_ALL_PRESERVE_ORDER", "parameters": null }, "maxAge": { "duration": 100, "unit": "SECONDS" } } } }, "schema": { "additionalProperties": false, "description": "Contains information about caching settings configured for an endpoint. Caching settings specify properties such as the maximum age of cached content, caching HTTP error responses, downstream cacheability, and cache key customization. You can set specific caching instructions for each resource within an endpoint version. You can configure caching settings if the API Gateway product is in your contract.", "type": "object", "required": [ "enabled", "option", "downstreamCaching", "errorCaching" ], "properties": { "cacheKey": { "additionalProperties": false, "description": "Contains information about cache key settings.", "type": "object", "required": [ "customize" ], "properties": { "customize": { "description": "Whether you want to customize cache key settings for an endpoint.", "type": "boolean" }, "exactMatch": { "description": "Whether query parameters in incoming requests should match exactly the string items in the corresponding `parameters` member. If false, even the parameters that just begin with the strings you specified in the `parameters` member will match. This is only relevant if you set the corresponding `option` member to either `INCLUDE` or `IGNORE`.", "nullable": true, "type": "boolean" }, "option": { "description": "The option for cache key customization. If you select `INCLUDE` or `IGNORE`, also specify the corresponding `parameters` member.", "nullable": true, "type": "string", "enum": [ "INCLUDE_ALL_PRESERVE_ORDER", "INCLUDE_ALL_ALPHABETIZE_ORDER", "IGNORE_ALL", "INCLUDE", "IGNORE" ] }, "parameters": { "description": "The list of parameters to include in or exclude from cache keys, depending on the `option` you selected. This is only relevant if you set the corresponding `option` member to either `INCLUDE` or `IGNORE`.", "nullable": true, "type": "array", "items": { "type": "string" } } }, "x-akamai": { "file-path": "schemas/cacheKeyDto.yaml" } }, "downstreamCaching": { "additionalProperties": false, "description": "Contains information about downstream caching settings. Downstream caching refers to the caching instructions assigned to objects sent with responses toward clients—browsers, mobile devices, or client proxies.", "type": "object", "required": [ "option", "lifetime", "headers" ], "properties": { "headers": { "description": "The policy for sending headers downstream, either `CACHE_CONTROL_AND_EXPIRES` to send both `Cache-Control` and `Expires` headers, `CACHE_CONTROL` to send only the `Cache-Control` header, `EXPIRES` to send only the `Expires` header, or `SAME_AS_ORIGIN` to send the same headers as your origin.", "type": "string", "enum": [ "CACHE_CONTROL_AND_EXPIRES", "CACHE_CONTROL", "EXPIRES", "SAME_AS_ORIGIN" ] }, "lifetime": { "default": "SMALLER_VALUE", "description": "The cache lifetime policy, either `SMALLER_VALUE` for a value smaller than specified in the origin header or the remaining edge TTL, `GREATER_VALUE` for a value greater than specified in the origin header or the remaining edge TTL, `REMAINING_EDGE_TTL` for a remaining edge TTL, `FULL_EDGE_TTL` for a full edge TTL, `FIXED_VALUE` for a value that you specify, or `CALCULATES_EXPIRES_FROM_ORIGIN_CACHE_CONTROL` for calculating the maximum age from the origin `Cache-Control` header.", "type": "string", "enum": [ "SMALLER_VALUE", "GREATER_VALUE", "REMAINING_EDGE_TTL", "FULL_EDGE_TTL", "FIXED_VALUE", "CALCULATES_EXPIRES_FROM_ORIGIN_CACHE_CONTROL" ] }, "markAsPrivate": { "default": false, "description": "Specifies whether to disallow storing responses in a shared cache. Use this when you want to set a maximum age for the end client, but have shared caches not store the response.", "type": "boolean" }, "maxAge": { "additionalProperties": false, "description": "Contains information about the maximum duration to keep content in a cache.", "nullable": true, "type": "object", "required": [ "duration", "unit" ], "properties": { "duration": { "description": "The maximum duration of content caching in the selected unit of time.", "type": "integer" }, "unit": { "description": "The unit of time for content caching, either `DAYS`, `HOURS`, `MINUTES`, or `SECONDS`.", "type": "string", "enum": [ "SECONDS", "MINUTES", "HOURS", "DAYS" ] } }, "x-akamai": { "file-path": "schemas/durationDto.yaml" } }, "option": { "default": "ALLOW_CACHING", "description": "The option for downstream caching, either `ALLOW_CACHING` to allow downstream caching, `ALLOW_CACHING_REQUIRES_REVALIDATION` to allow downstream caching, but require origin revalidation, `NOT_ALLOW_CACHING` to disallow downstream caching, `PASS_CACHEABILITY_HEADERS_FROM_ORIGIN` to pass cacheability headers from your origin, or `DO_NOT_SEND_HEADERS` to disallow sending headers and apply browser defaults.", "type": "string", "enum": [ "ALLOW_CACHING", "ALLOW_CACHING_REQUIRES_REVALIDATION", "NOT_ALLOW_CACHING", "PASS_CACHEABILITY_HEADERS_FROM_ORIGIN", "DO_NOT_SEND_HEADERS" ] } } }, "enabled": { "description": "Whether you enabled caching for the endpoint.", "type": "boolean" }, "errorCaching": { "additionalProperties": false, "description": "Contains information about error caching settings.", "type": "object", "required": [ "enabled" ], "properties": { "enabled": { "description": "Whether you enabled error caching.", "type": "boolean" }, "maxAge": { "additionalProperties": false, "description": "Contains information about the maximum duration to keep error responses in a cache.", "nullable": true, "type": "object", "required": [ "duration", "unit" ], "properties": { "duration": { "description": "The maximum duration of content caching in the selected unit of time.", "type": "integer" }, "unit": { "description": "The unit of time for content caching, either `DAYS`, `HOURS`, `MINUTES`, or `SECONDS`.", "type": "string", "enum": [ "SECONDS", "MINUTES", "HOURS", "DAYS" ] } }, "x-akamai": { "file-path": "schemas/durationDto.yaml" } }, "preserveStale": { "default": false, "description": "Whether to preserve stale responses when the origin is unreachable and content revalidation isn't possible.", "type": "boolean" } } }, "maxAge": { "additionalProperties": false, "description": "Contains information about the maximum duration to keep content in a cache.", "nullable": true, "type": "object", "required": [ "duration", "unit" ], "properties": { "duration": { "description": "The maximum duration of content caching in the selected unit of time.", "type": "integer" }, "unit": { "description": "The unit of time for content caching, either `DAYS`, `HOURS`, `MINUTES`, or `SECONDS`.", "type": "string", "enum": [ "SECONDS", "MINUTES", "HOURS", "DAYS" ] } }, "x-akamai": { "file-path": "schemas/durationDto.yaml" } }, "option": { "default": "CACHE", "description": "The options for how to pass cached content, either `CACHE` to enable caching in Akamai platform servers according to the instructions you specify, `BYPASS_CACHE` to disallow caching in Akamai platform servers and keep the existing cache entries, `NO_STORE` to disallow caching in Akamai platform servers and remove the existing cache entries, `HONOR_ORIGIN_CACHE_CONTROL` to apply caching instructions specified in your origin's `Cache-Control` header, `HONOR_ORIGIN_EXPIRES` to apply caching instructions specified in your origin's `Expires` header, or `HONOR_ORIGIN_CACHE_CONTROL_AND_EXPIRES` to apply caching instructions specified in your origin's `Cache-Control` and `Expires` headers.", "type": "string", "enum": [ "CACHE", "NO_STORE", "BYPASS_CACHE", "HONOR_ORIGIN_CACHE_CONTROL", "HONOR_ORIGIN_CACHE_CONTROL_AND_EXPIRES", "HONOR_ORIGIN_EXPIRES" ] }, "preRefreshing": { "additionalProperties": false, "description": "Contains information about cache prefreshing settings. When enabled, edge servers asynchronously refresh cached objects after a specified percentage of the object's TTL elapses.", "nullable": true, "type": "object", "required": [ "enabled" ], "properties": { "enabled": { "description": "Whether you enable cache prefreshing.", "type": "boolean" }, "value": { "description": "Percentage of TTL after which cache content will be refreshed. Need to be in the range of `0-99`.", "maximum": 99, "minimum": 0, "type": "integer" } }, "x-akamai": { "file-path": "schemas/preRefreshing.yaml" } }, "resources": { "description": "Contains information about caching settings for each resource assigned to an endpoint version. This object is a map where the keys are resource IDs and values are cache settings applied to them.", "type": "object", "additionalProperties": { "additionalProperties": false, "description": "Contains information about caching settings for each resource.", "title": "Resource's caching settings", "type": "object", "required": [ "path", "methods", "option", "maxAge", "serveStale", "cacheKey", "preRefreshing", "inheritsFromEndpoint" ], "properties": { "cacheKey": { "additionalProperties": false, "description": "Contains information about cache key settings.", "type": "object", "required": [ "customize" ], "properties": { "customize": { "description": "Whether you want to customize cache key settings for an endpoint.", "type": "boolean" }, "exactMatch": { "description": "Whether query parameters in incoming requests should match exactly the string items in the corresponding `parameters` member. If false, even the parameters that just begin with the strings you specified in the `parameters` member will match. This is only relevant if you set the corresponding `option` member to either `INCLUDE` or `IGNORE`.", "nullable": true, "type": "boolean" }, "option": { "description": "The option for cache key customization. If you select `INCLUDE` or `IGNORE`, also specify the corresponding `parameters` member.", "nullable": true, "type": "string", "enum": [ "INCLUDE_ALL_PRESERVE_ORDER", "INCLUDE_ALL_ALPHABETIZE_ORDER", "IGNORE_ALL", "INCLUDE", "IGNORE" ] }, "parameters": { "description": "The list of parameters to include in or exclude from cache keys, depending on the `option` you selected. This is only relevant if you set the corresponding `option` member to either `INCLUDE` or `IGNORE`.", "nullable": true, "type": "array", "items": { "type": "string" } } }, "x-akamai": { "file-path": "schemas/cacheKeyDto.yaml" } }, "inheritsFromEndpoint": { "description": "Whether the resource inherits the top-level API caching settings.", "type": "boolean" }, "maxAge": { "additionalProperties": false, "description": "Contains information about the maximum duration of keeping content in a cache. If set, overwrites the max age instructions set at the endpoint level.", "nullable": true, "type": "object", "required": [ "duration", "unit" ], "properties": { "duration": { "description": "The maximum duration of content caching in the selected unit of time.", "type": "integer" }, "unit": { "description": "The unit of time for content caching, either `DAYS`, `HOURS`, `MINUTES`, or `SECONDS`.", "type": "string", "enum": [ "SECONDS", "MINUTES", "HOURS", "DAYS" ] } }, "x-akamai": { "file-path": "schemas/durationDto.yaml" } }, "methods": { "description": "The methods assigned to the resource, either `POST`, `GET`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, or `PATCH`.", "minItems": 0, "nullable": true, "readOnly": true, "type": "array", "items": { "type": "string", "enum": [ "HEAD", "DELETE", "POST", "GET", "OPTIONS", "PUT", "PATCH" ] } }, "option": { "default": "CACHE", "description": "The resource caching option, either `CACHE` to enable caching in Akamai platform servers according to the instructions you specify, `BYPASS_CACHE` to send requests straight to origin and disallow caching in downstream caches, `NO_STORE` to disallow caching in Akamai platform servers, `HONOR_ORIGIN_CACHE_CONTROL` to apply caching instructions specified in your origin's `Cache-Control` header, `HONOR_ORIGIN_EXPIRES` to apply caching instructions specified in your origin's `Expires` header, or `HONOR_ORIGIN_CACHE_CONTROL_AND_EXPIRES` to apply caching instructions specified in your origin's `Cache-Control` and `Expires` headers. If set, overwrites the caching instructions set at the endpoint level.", "type": "string", "enum": [ "CACHE", "NO_STORE", "BYPASS_CACHE", "HONOR_ORIGIN_CACHE_CONTROL", "HONOR_ORIGIN_CACHE_CONTROL_AND_EXPIRES", "HONOR_ORIGIN_EXPIRES" ] }, "path": { "description": "The URL path relative to the hostnames on which the resource resides.", "minLength": 1, "readOnly": true, "type": "string" }, "preRefreshing": { "additionalProperties": false, "description": "Contains information about cache prefreshing settings. When enabled, edge servers asynchronously refresh cached objects after a specified percentage of the object's TTL elapses.", "nullable": true, "type": "object", "required": [ "enabled" ], "properties": { "enabled": { "description": "Whether you enable cache prefreshing.", "type": "boolean" }, "value": { "description": "Percentage of TTL after which cache content will be refreshed. Need to be in the range of `0-99`.", "maximum": 99, "minimum": 0, "type": "integer" } }, "x-akamai": { "file-path": "schemas/preRefreshing.yaml" } }, "serveStale": { "description": "Whether to serve stale objects when the origin is unreachable and content revalidation is not possible.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/resources-cache.yaml" } } }, "serveStale": { "description": "Whether to serve stale responses when the origin is unreachable and content revalidation isn't possible.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/cacheSettingsDto.yaml" } } } } }, "400": { "description": "Some of user input is invalid.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "403": { "description": "You don't have permission to access the API endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "404": { "description": "The required resource is not found.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "put": { "description": "Updates the caching settings configured for an endpoint version and its assigned resources.", "operationId": "put-cache-settings", "summary": "Edit cache settings", "tags": [ "Cache" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/put-cache-settings" }, "requestBody": { "required": true, "content": { "application/json": { "example": { "enabled": true, "option": "CACHE", "preRefreshing": null, "serveStale": true, "cacheKey": { "customize": true, "exactMatch": true, "option": "INCLUDE_ALL_PRESERVE_ORDER", "parameters": null }, "downstreamCaching": { "headers": "CACHE_CONTROL_AND_EXPIRES", "lifetime": "SMALLER_VALUE", "markAsPrivate": false, "maxAge": null, "option": "ALLOW_CACHING" }, "errorCaching": { "enabled": true, "preserveStale": true, "maxAge": { "duration": 80, "unit": "SECONDS" } }, "maxAge": { "duration": 100, "unit": "SECONDS" }, "resources": { "2926712": { "inheritsFromEndpoint": true, "option": "CACHE", "path": "/book/{bookId}", "serveStale": true, "methods": [ "POST", "GET" ], "cacheKey": { "customize": true, "exactMatch": true, "option": "INCLUDE_ALL_PRESERVE_ORDER", "parameters": null }, "maxAge": { "duration": 100, "unit": "SECONDS" } }, "2935128": { "inheritsFromEndpoint": false, "option": "CACHE", "path": "/user/{userId}", "serveStale": false, "methods": [ "POST", "GET", "PUT" ], "cacheKey": { "customize": false, "exactMatch": true, "option": "INCLUDE_ALL_PRESERVE_ORDER", "parameters": null }, "maxAge": { "duration": 120, "unit": "SECONDS" } }, "2935139": { "inheritsFromEndpoint": true, "option": "CACHE", "path": "/magazine/{magazineId}", "serveStale": true, "methods": [ "GET" ], "cacheKey": { "customize": true, "exactMatch": true, "option": "INCLUDE_ALL_PRESERVE_ORDER", "parameters": null }, "maxAge": { "duration": 100, "unit": "SECONDS" } } } }, "schema": { "additionalProperties": false, "description": "Contains information about caching settings configured for an endpoint. Caching settings specify properties such as the maximum age of cached content, caching HTTP error responses, downstream cacheability, and cache key customization. You can set specific caching instructions for each resource within an endpoint version. You can configure caching settings if the API Gateway product is in your contract.", "type": "object", "required": [ "enabled", "option", "downstreamCaching", "errorCaching" ], "properties": { "cacheKey": { "additionalProperties": false, "description": "Contains information about cache key settings.", "type": "object", "required": [ "customize" ], "properties": { "customize": { "description": "Whether you want to customize cache key settings for an endpoint.", "type": "boolean" }, "exactMatch": { "description": "Whether query parameters in incoming requests should match exactly the string items in the corresponding `parameters` member. If false, even the parameters that just begin with the strings you specified in the `parameters` member will match. This is only relevant if you set the corresponding `option` member to either `INCLUDE` or `IGNORE`.", "nullable": true, "type": "boolean" }, "option": { "description": "The option for cache key customization. If you select `INCLUDE` or `IGNORE`, also specify the corresponding `parameters` member.", "nullable": true, "type": "string", "enum": [ "INCLUDE_ALL_PRESERVE_ORDER", "INCLUDE_ALL_ALPHABETIZE_ORDER", "IGNORE_ALL", "INCLUDE", "IGNORE" ] }, "parameters": { "description": "The list of parameters to include in or exclude from cache keys, depending on the `option` you selected. This is only relevant if you set the corresponding `option` member to either `INCLUDE` or `IGNORE`.", "nullable": true, "type": "array", "items": { "type": "string" } } }, "x-akamai": { "file-path": "schemas/cacheKeyDto.yaml" } }, "downstreamCaching": { "additionalProperties": false, "description": "Contains information about downstream caching settings. Downstream caching refers to the caching instructions assigned to objects sent with responses toward clients—browsers, mobile devices, or client proxies.", "type": "object", "required": [ "option", "lifetime", "headers" ], "properties": { "headers": { "description": "The policy for sending headers downstream, either `CACHE_CONTROL_AND_EXPIRES` to send both `Cache-Control` and `Expires` headers, `CACHE_CONTROL` to send only the `Cache-Control` header, `EXPIRES` to send only the `Expires` header, or `SAME_AS_ORIGIN` to send the same headers as your origin.", "type": "string", "enum": [ "CACHE_CONTROL_AND_EXPIRES", "CACHE_CONTROL", "EXPIRES", "SAME_AS_ORIGIN" ] }, "lifetime": { "default": "SMALLER_VALUE", "description": "The cache lifetime policy, either `SMALLER_VALUE` for a value smaller than specified in the origin header or the remaining edge TTL, `GREATER_VALUE` for a value greater than specified in the origin header or the remaining edge TTL, `REMAINING_EDGE_TTL` for a remaining edge TTL, `FULL_EDGE_TTL` for a full edge TTL, `FIXED_VALUE` for a value that you specify, or `CALCULATES_EXPIRES_FROM_ORIGIN_CACHE_CONTROL` for calculating the maximum age from the origin `Cache-Control` header.", "type": "string", "enum": [ "SMALLER_VALUE", "GREATER_VALUE", "REMAINING_EDGE_TTL", "FULL_EDGE_TTL", "FIXED_VALUE", "CALCULATES_EXPIRES_FROM_ORIGIN_CACHE_CONTROL" ] }, "markAsPrivate": { "default": false, "description": "Specifies whether to disallow storing responses in a shared cache. Use this when you want to set a maximum age for the end client, but have shared caches not store the response.", "type": "boolean" }, "maxAge": { "additionalProperties": false, "description": "Contains information about the maximum duration to keep content in a cache.", "nullable": true, "type": "object", "required": [ "duration", "unit" ], "properties": { "duration": { "description": "The maximum duration of content caching in the selected unit of time.", "type": "integer" }, "unit": { "description": "The unit of time for content caching, either `DAYS`, `HOURS`, `MINUTES`, or `SECONDS`.", "type": "string", "enum": [ "SECONDS", "MINUTES", "HOURS", "DAYS" ] } }, "x-akamai": { "file-path": "schemas/durationDto.yaml" } }, "option": { "default": "ALLOW_CACHING", "description": "The option for downstream caching, either `ALLOW_CACHING` to allow downstream caching, `ALLOW_CACHING_REQUIRES_REVALIDATION` to allow downstream caching, but require origin revalidation, `NOT_ALLOW_CACHING` to disallow downstream caching, `PASS_CACHEABILITY_HEADERS_FROM_ORIGIN` to pass cacheability headers from your origin, or `DO_NOT_SEND_HEADERS` to disallow sending headers and apply browser defaults.", "type": "string", "enum": [ "ALLOW_CACHING", "ALLOW_CACHING_REQUIRES_REVALIDATION", "NOT_ALLOW_CACHING", "PASS_CACHEABILITY_HEADERS_FROM_ORIGIN", "DO_NOT_SEND_HEADERS" ] } } }, "enabled": { "description": "Whether you enabled caching for the endpoint.", "example": "{{enabled}}", "type": "boolean" }, "errorCaching": { "additionalProperties": false, "description": "Contains information about error caching settings.", "type": "object", "required": [ "enabled" ], "properties": { "enabled": { "description": "Whether you enabled error caching.", "type": "boolean" }, "maxAge": { "additionalProperties": false, "description": "Contains information about the maximum duration to keep error responses in a cache.", "nullable": true, "type": "object", "required": [ "duration", "unit" ], "properties": { "duration": { "description": "The maximum duration of content caching in the selected unit of time.", "type": "integer" }, "unit": { "description": "The unit of time for content caching, either `DAYS`, `HOURS`, `MINUTES`, or `SECONDS`.", "type": "string", "enum": [ "SECONDS", "MINUTES", "HOURS", "DAYS" ] } }, "x-akamai": { "file-path": "schemas/durationDto.yaml" } }, "preserveStale": { "default": false, "description": "Whether to preserve stale responses when the origin is unreachable and content revalidation isn't possible.", "type": "boolean" } } }, "maxAge": { "additionalProperties": false, "description": "Contains information about the maximum duration to keep content in a cache.", "nullable": true, "type": "object", "required": [ "duration", "unit" ], "properties": { "duration": { "description": "The maximum duration of content caching in the selected unit of time.", "type": "integer" }, "unit": { "description": "The unit of time for content caching, either `DAYS`, `HOURS`, `MINUTES`, or `SECONDS`.", "type": "string", "enum": [ "SECONDS", "MINUTES", "HOURS", "DAYS" ] } }, "x-akamai": { "file-path": "schemas/durationDto.yaml" } }, "option": { "default": "CACHE", "description": "The options for how to pass cached content, either `CACHE` to enable caching in Akamai platform servers according to the instructions you specify, `BYPASS_CACHE` to disallow caching in Akamai platform servers and keep the existing cache entries, `NO_STORE` to disallow caching in Akamai platform servers and remove the existing cache entries, `HONOR_ORIGIN_CACHE_CONTROL` to apply caching instructions specified in your origin's `Cache-Control` header, `HONOR_ORIGIN_EXPIRES` to apply caching instructions specified in your origin's `Expires` header, or `HONOR_ORIGIN_CACHE_CONTROL_AND_EXPIRES` to apply caching instructions specified in your origin's `Cache-Control` and `Expires` headers.", "example": "{{option}}", "type": "string", "enum": [ "CACHE", "NO_STORE", "BYPASS_CACHE", "HONOR_ORIGIN_CACHE_CONTROL", "HONOR_ORIGIN_CACHE_CONTROL_AND_EXPIRES", "HONOR_ORIGIN_EXPIRES" ] }, "preRefreshing": { "additionalProperties": false, "description": "Contains information about cache prefreshing settings. When enabled, edge servers asynchronously refresh cached objects after a specified percentage of the object's TTL elapses.", "nullable": true, "type": "object", "required": [ "enabled" ], "properties": { "enabled": { "description": "Whether you enable cache prefreshing.", "type": "boolean" }, "value": { "description": "Percentage of TTL after which cache content will be refreshed. Need to be in the range of `0-99`.", "maximum": 99, "minimum": 0, "type": "integer" } }, "x-akamai": { "file-path": "schemas/preRefreshing.yaml" } }, "resources": { "description": "Contains information about caching settings for each resource assigned to an endpoint version. This object is a map where the keys are resource IDs and values are cache settings applied to them.", "type": "object", "additionalProperties": { "additionalProperties": false, "description": "Contains information about caching settings for each resource.", "title": "Resource's caching settings", "type": "object", "required": [ "path", "methods", "option", "maxAge", "serveStale", "cacheKey", "preRefreshing", "inheritsFromEndpoint" ], "properties": { "cacheKey": { "additionalProperties": false, "description": "Contains information about cache key settings.", "type": "object", "required": [ "customize" ], "properties": { "customize": { "description": "Whether you want to customize cache key settings for an endpoint.", "type": "boolean" }, "exactMatch": { "description": "Whether query parameters in incoming requests should match exactly the string items in the corresponding `parameters` member. If false, even the parameters that just begin with the strings you specified in the `parameters` member will match. This is only relevant if you set the corresponding `option` member to either `INCLUDE` or `IGNORE`.", "nullable": true, "type": "boolean" }, "option": { "description": "The option for cache key customization. If you select `INCLUDE` or `IGNORE`, also specify the corresponding `parameters` member.", "nullable": true, "type": "string", "enum": [ "INCLUDE_ALL_PRESERVE_ORDER", "INCLUDE_ALL_ALPHABETIZE_ORDER", "IGNORE_ALL", "INCLUDE", "IGNORE" ] }, "parameters": { "description": "The list of parameters to include in or exclude from cache keys, depending on the `option` you selected. This is only relevant if you set the corresponding `option` member to either `INCLUDE` or `IGNORE`.", "nullable": true, "type": "array", "items": { "type": "string" } } }, "x-akamai": { "file-path": "schemas/cacheKeyDto.yaml" } }, "inheritsFromEndpoint": { "description": "Whether the resource inherits the top-level API caching settings.", "type": "boolean" }, "maxAge": { "additionalProperties": false, "description": "Contains information about the maximum duration of keeping content in a cache. If set, overwrites the max age instructions set at the endpoint level.", "nullable": true, "type": "object", "required": [ "duration", "unit" ], "properties": { "duration": { "description": "The maximum duration of content caching in the selected unit of time.", "type": "integer" }, "unit": { "description": "The unit of time for content caching, either `DAYS`, `HOURS`, `MINUTES`, or `SECONDS`.", "type": "string", "enum": [ "SECONDS", "MINUTES", "HOURS", "DAYS" ] } }, "x-akamai": { "file-path": "schemas/durationDto.yaml" } }, "methods": { "description": "The methods assigned to the resource, either `POST`, `GET`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, or `PATCH`.", "minItems": 0, "nullable": true, "readOnly": true, "type": "array", "items": { "type": "string", "enum": [ "HEAD", "DELETE", "POST", "GET", "OPTIONS", "PUT", "PATCH" ] } }, "option": { "default": "CACHE", "description": "The resource caching option, either `CACHE` to enable caching in Akamai platform servers according to the instructions you specify, `BYPASS_CACHE` to send requests straight to origin and disallow caching in downstream caches, `NO_STORE` to disallow caching in Akamai platform servers, `HONOR_ORIGIN_CACHE_CONTROL` to apply caching instructions specified in your origin's `Cache-Control` header, `HONOR_ORIGIN_EXPIRES` to apply caching instructions specified in your origin's `Expires` header, or `HONOR_ORIGIN_CACHE_CONTROL_AND_EXPIRES` to apply caching instructions specified in your origin's `Cache-Control` and `Expires` headers. If set, overwrites the caching instructions set at the endpoint level.", "type": "string", "enum": [ "CACHE", "NO_STORE", "BYPASS_CACHE", "HONOR_ORIGIN_CACHE_CONTROL", "HONOR_ORIGIN_CACHE_CONTROL_AND_EXPIRES", "HONOR_ORIGIN_EXPIRES" ] }, "path": { "description": "The URL path relative to the hostnames on which the resource resides.", "minLength": 1, "readOnly": true, "type": "string" }, "preRefreshing": { "additionalProperties": false, "description": "Contains information about cache prefreshing settings. When enabled, edge servers asynchronously refresh cached objects after a specified percentage of the object's TTL elapses.", "nullable": true, "type": "object", "required": [ "enabled" ], "properties": { "enabled": { "description": "Whether you enable cache prefreshing.", "type": "boolean" }, "value": { "description": "Percentage of TTL after which cache content will be refreshed. Need to be in the range of `0-99`.", "maximum": 99, "minimum": 0, "type": "integer" } }, "x-akamai": { "file-path": "schemas/preRefreshing.yaml" } }, "serveStale": { "description": "Whether to serve stale objects when the origin is unreachable and content revalidation is not possible.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/resources-cache.yaml" } } }, "serveStale": { "description": "Whether to serve stale responses when the origin is unreachable and content revalidation isn't possible.", "example": "{{serveStale}}", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/cacheSettingsDto.yaml" } } } } }, "responses": { "200": { "description": "Operation succeeded.", "content": { "application/json": { "example": { "enabled": true, "option": "CACHE", "preRefreshing": null, "serveStale": true, "cacheKey": { "customize": true, "exactMatch": true, "option": "INCLUDE_ALL_PRESERVE_ORDER", "parameters": null }, "downstreamCaching": { "headers": "CACHE_CONTROL_AND_EXPIRES", "lifetime": "SMALLER_VALUE", "markAsPrivate": false, "maxAge": null, "option": "ALLOW_CACHING" }, "errorCaching": { "enabled": true, "preserveStale": true, "maxAge": { "duration": 80, "unit": "SECONDS" } }, "maxAge": { "duration": 100, "unit": "SECONDS" }, "resources": { "2926712": { "inheritsFromEndpoint": true, "option": "CACHE", "path": "/book/{bookId}", "serveStale": true, "methods": [ "POST", "GET" ], "cacheKey": { "customize": true, "exactMatch": true, "option": "INCLUDE_ALL_PRESERVE_ORDER", "parameters": null }, "maxAge": { "duration": 100, "unit": "SECONDS" } }, "2935128": { "inheritsFromEndpoint": false, "option": "CACHE", "path": "/user/{userId}", "serveStale": false, "methods": [ "POST", "GET", "PUT" ], "cacheKey": { "customize": false, "exactMatch": true, "option": "INCLUDE_ALL_PRESERVE_ORDER", "parameters": null }, "maxAge": { "duration": 120, "unit": "SECONDS" } }, "2935139": { "inheritsFromEndpoint": true, "option": "CACHE", "path": "/magazine/{magazineId}", "serveStale": true, "methods": [ "GET" ], "cacheKey": { "customize": true, "exactMatch": true, "option": "INCLUDE_ALL_PRESERVE_ORDER", "parameters": null }, "maxAge": { "duration": 100, "unit": "SECONDS" } } } }, "schema": { "additionalProperties": false, "description": "Contains information about caching settings configured for an endpoint. Caching settings specify properties such as the maximum age of cached content, caching HTTP error responses, downstream cacheability, and cache key customization. You can set specific caching instructions for each resource within an endpoint version. You can configure caching settings if the API Gateway product is in your contract.", "type": "object", "required": [ "enabled", "option", "downstreamCaching", "errorCaching" ], "properties": { "cacheKey": { "additionalProperties": false, "description": "Contains information about cache key settings.", "type": "object", "required": [ "customize" ], "properties": { "customize": { "description": "Whether you want to customize cache key settings for an endpoint.", "type": "boolean" }, "exactMatch": { "description": "Whether query parameters in incoming requests should match exactly the string items in the corresponding `parameters` member. If false, even the parameters that just begin with the strings you specified in the `parameters` member will match. This is only relevant if you set the corresponding `option` member to either `INCLUDE` or `IGNORE`.", "nullable": true, "type": "boolean" }, "option": { "description": "The option for cache key customization. If you select `INCLUDE` or `IGNORE`, also specify the corresponding `parameters` member.", "nullable": true, "type": "string", "enum": [ "INCLUDE_ALL_PRESERVE_ORDER", "INCLUDE_ALL_ALPHABETIZE_ORDER", "IGNORE_ALL", "INCLUDE", "IGNORE" ] }, "parameters": { "description": "The list of parameters to include in or exclude from cache keys, depending on the `option` you selected. This is only relevant if you set the corresponding `option` member to either `INCLUDE` or `IGNORE`.", "nullable": true, "type": "array", "items": { "type": "string" } } }, "x-akamai": { "file-path": "schemas/cacheKeyDto.yaml" } }, "downstreamCaching": { "additionalProperties": false, "description": "Contains information about downstream caching settings. Downstream caching refers to the caching instructions assigned to objects sent with responses toward clients—browsers, mobile devices, or client proxies.", "type": "object", "required": [ "option", "lifetime", "headers" ], "properties": { "headers": { "description": "The policy for sending headers downstream, either `CACHE_CONTROL_AND_EXPIRES` to send both `Cache-Control` and `Expires` headers, `CACHE_CONTROL` to send only the `Cache-Control` header, `EXPIRES` to send only the `Expires` header, or `SAME_AS_ORIGIN` to send the same headers as your origin.", "type": "string", "enum": [ "CACHE_CONTROL_AND_EXPIRES", "CACHE_CONTROL", "EXPIRES", "SAME_AS_ORIGIN" ] }, "lifetime": { "default": "SMALLER_VALUE", "description": "The cache lifetime policy, either `SMALLER_VALUE` for a value smaller than specified in the origin header or the remaining edge TTL, `GREATER_VALUE` for a value greater than specified in the origin header or the remaining edge TTL, `REMAINING_EDGE_TTL` for a remaining edge TTL, `FULL_EDGE_TTL` for a full edge TTL, `FIXED_VALUE` for a value that you specify, or `CALCULATES_EXPIRES_FROM_ORIGIN_CACHE_CONTROL` for calculating the maximum age from the origin `Cache-Control` header.", "type": "string", "enum": [ "SMALLER_VALUE", "GREATER_VALUE", "REMAINING_EDGE_TTL", "FULL_EDGE_TTL", "FIXED_VALUE", "CALCULATES_EXPIRES_FROM_ORIGIN_CACHE_CONTROL" ] }, "markAsPrivate": { "default": false, "description": "Specifies whether to disallow storing responses in a shared cache. Use this when you want to set a maximum age for the end client, but have shared caches not store the response.", "type": "boolean" }, "maxAge": { "additionalProperties": false, "description": "Contains information about the maximum duration to keep content in a cache.", "nullable": true, "type": "object", "required": [ "duration", "unit" ], "properties": { "duration": { "description": "The maximum duration of content caching in the selected unit of time.", "type": "integer" }, "unit": { "description": "The unit of time for content caching, either `DAYS`, `HOURS`, `MINUTES`, or `SECONDS`.", "type": "string", "enum": [ "SECONDS", "MINUTES", "HOURS", "DAYS" ] } }, "x-akamai": { "file-path": "schemas/durationDto.yaml" } }, "option": { "default": "ALLOW_CACHING", "description": "The option for downstream caching, either `ALLOW_CACHING` to allow downstream caching, `ALLOW_CACHING_REQUIRES_REVALIDATION` to allow downstream caching, but require origin revalidation, `NOT_ALLOW_CACHING` to disallow downstream caching, `PASS_CACHEABILITY_HEADERS_FROM_ORIGIN` to pass cacheability headers from your origin, or `DO_NOT_SEND_HEADERS` to disallow sending headers and apply browser defaults.", "type": "string", "enum": [ "ALLOW_CACHING", "ALLOW_CACHING_REQUIRES_REVALIDATION", "NOT_ALLOW_CACHING", "PASS_CACHEABILITY_HEADERS_FROM_ORIGIN", "DO_NOT_SEND_HEADERS" ] } } }, "enabled": { "description": "Whether you enabled caching for the endpoint.", "type": "boolean" }, "errorCaching": { "additionalProperties": false, "description": "Contains information about error caching settings.", "type": "object", "required": [ "enabled" ], "properties": { "enabled": { "description": "Whether you enabled error caching.", "type": "boolean" }, "maxAge": { "additionalProperties": false, "description": "Contains information about the maximum duration to keep error responses in a cache.", "nullable": true, "type": "object", "required": [ "duration", "unit" ], "properties": { "duration": { "description": "The maximum duration of content caching in the selected unit of time.", "type": "integer" }, "unit": { "description": "The unit of time for content caching, either `DAYS`, `HOURS`, `MINUTES`, or `SECONDS`.", "type": "string", "enum": [ "SECONDS", "MINUTES", "HOURS", "DAYS" ] } }, "x-akamai": { "file-path": "schemas/durationDto.yaml" } }, "preserveStale": { "default": false, "description": "Whether to preserve stale responses when the origin is unreachable and content revalidation isn't possible.", "type": "boolean" } } }, "maxAge": { "additionalProperties": false, "description": "Contains information about the maximum duration to keep content in a cache.", "nullable": true, "type": "object", "required": [ "duration", "unit" ], "properties": { "duration": { "description": "The maximum duration of content caching in the selected unit of time.", "type": "integer" }, "unit": { "description": "The unit of time for content caching, either `DAYS`, `HOURS`, `MINUTES`, or `SECONDS`.", "type": "string", "enum": [ "SECONDS", "MINUTES", "HOURS", "DAYS" ] } }, "x-akamai": { "file-path": "schemas/durationDto.yaml" } }, "option": { "default": "CACHE", "description": "The options for how to pass cached content, either `CACHE` to enable caching in Akamai platform servers according to the instructions you specify, `BYPASS_CACHE` to disallow caching in Akamai platform servers and keep the existing cache entries, `NO_STORE` to disallow caching in Akamai platform servers and remove the existing cache entries, `HONOR_ORIGIN_CACHE_CONTROL` to apply caching instructions specified in your origin's `Cache-Control` header, `HONOR_ORIGIN_EXPIRES` to apply caching instructions specified in your origin's `Expires` header, or `HONOR_ORIGIN_CACHE_CONTROL_AND_EXPIRES` to apply caching instructions specified in your origin's `Cache-Control` and `Expires` headers.", "type": "string", "enum": [ "CACHE", "NO_STORE", "BYPASS_CACHE", "HONOR_ORIGIN_CACHE_CONTROL", "HONOR_ORIGIN_CACHE_CONTROL_AND_EXPIRES", "HONOR_ORIGIN_EXPIRES" ] }, "preRefreshing": { "additionalProperties": false, "description": "Contains information about cache prefreshing settings. When enabled, edge servers asynchronously refresh cached objects after a specified percentage of the object's TTL elapses.", "nullable": true, "type": "object", "required": [ "enabled" ], "properties": { "enabled": { "description": "Whether you enable cache prefreshing.", "type": "boolean" }, "value": { "description": "Percentage of TTL after which cache content will be refreshed. Need to be in the range of `0-99`.", "maximum": 99, "minimum": 0, "type": "integer" } }, "x-akamai": { "file-path": "schemas/preRefreshing.yaml" } }, "resources": { "description": "Contains information about caching settings for each resource assigned to an endpoint version. This object is a map where the keys are resource IDs and values are cache settings applied to them.", "type": "object", "additionalProperties": { "additionalProperties": false, "description": "Contains information about caching settings for each resource.", "title": "Resource's caching settings", "type": "object", "required": [ "path", "methods", "option", "maxAge", "serveStale", "cacheKey", "preRefreshing", "inheritsFromEndpoint" ], "properties": { "cacheKey": { "additionalProperties": false, "description": "Contains information about cache key settings.", "type": "object", "required": [ "customize" ], "properties": { "customize": { "description": "Whether you want to customize cache key settings for an endpoint.", "type": "boolean" }, "exactMatch": { "description": "Whether query parameters in incoming requests should match exactly the string items in the corresponding `parameters` member. If false, even the parameters that just begin with the strings you specified in the `parameters` member will match. This is only relevant if you set the corresponding `option` member to either `INCLUDE` or `IGNORE`.", "nullable": true, "type": "boolean" }, "option": { "description": "The option for cache key customization. If you select `INCLUDE` or `IGNORE`, also specify the corresponding `parameters` member.", "nullable": true, "type": "string", "enum": [ "INCLUDE_ALL_PRESERVE_ORDER", "INCLUDE_ALL_ALPHABETIZE_ORDER", "IGNORE_ALL", "INCLUDE", "IGNORE" ] }, "parameters": { "description": "The list of parameters to include in or exclude from cache keys, depending on the `option` you selected. This is only relevant if you set the corresponding `option` member to either `INCLUDE` or `IGNORE`.", "nullable": true, "type": "array", "items": { "type": "string" } } }, "x-akamai": { "file-path": "schemas/cacheKeyDto.yaml" } }, "inheritsFromEndpoint": { "description": "Whether the resource inherits the top-level API caching settings.", "type": "boolean" }, "maxAge": { "additionalProperties": false, "description": "Contains information about the maximum duration of keeping content in a cache. If set, overwrites the max age instructions set at the endpoint level.", "nullable": true, "type": "object", "required": [ "duration", "unit" ], "properties": { "duration": { "description": "The maximum duration of content caching in the selected unit of time.", "type": "integer" }, "unit": { "description": "The unit of time for content caching, either `DAYS`, `HOURS`, `MINUTES`, or `SECONDS`.", "type": "string", "enum": [ "SECONDS", "MINUTES", "HOURS", "DAYS" ] } }, "x-akamai": { "file-path": "schemas/durationDto.yaml" } }, "methods": { "description": "The methods assigned to the resource, either `POST`, `GET`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, or `PATCH`.", "minItems": 0, "nullable": true, "readOnly": true, "type": "array", "items": { "type": "string", "enum": [ "HEAD", "DELETE", "POST", "GET", "OPTIONS", "PUT", "PATCH" ] } }, "option": { "default": "CACHE", "description": "The resource caching option, either `CACHE` to enable caching in Akamai platform servers according to the instructions you specify, `BYPASS_CACHE` to send requests straight to origin and disallow caching in downstream caches, `NO_STORE` to disallow caching in Akamai platform servers, `HONOR_ORIGIN_CACHE_CONTROL` to apply caching instructions specified in your origin's `Cache-Control` header, `HONOR_ORIGIN_EXPIRES` to apply caching instructions specified in your origin's `Expires` header, or `HONOR_ORIGIN_CACHE_CONTROL_AND_EXPIRES` to apply caching instructions specified in your origin's `Cache-Control` and `Expires` headers. If set, overwrites the caching instructions set at the endpoint level.", "type": "string", "enum": [ "CACHE", "NO_STORE", "BYPASS_CACHE", "HONOR_ORIGIN_CACHE_CONTROL", "HONOR_ORIGIN_CACHE_CONTROL_AND_EXPIRES", "HONOR_ORIGIN_EXPIRES" ] }, "path": { "description": "The URL path relative to the hostnames on which the resource resides.", "minLength": 1, "readOnly": true, "type": "string" }, "preRefreshing": { "additionalProperties": false, "description": "Contains information about cache prefreshing settings. When enabled, edge servers asynchronously refresh cached objects after a specified percentage of the object's TTL elapses.", "nullable": true, "type": "object", "required": [ "enabled" ], "properties": { "enabled": { "description": "Whether you enable cache prefreshing.", "type": "boolean" }, "value": { "description": "Percentage of TTL after which cache content will be refreshed. Need to be in the range of `0-99`.", "maximum": 99, "minimum": 0, "type": "integer" } }, "x-akamai": { "file-path": "schemas/preRefreshing.yaml" } }, "serveStale": { "description": "Whether to serve stale objects when the origin is unreachable and content revalidation is not possible.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/resources-cache.yaml" } } }, "serveStale": { "description": "Whether to serve stale responses when the origin is unreachable and content revalidation isn't possible.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/cacheSettingsDto.yaml" } } } } }, "400": { "description": "Some of user input is invalid.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "403": { "description": "User does not have permission to API endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "404": { "description": "This API endpoint doesn't exist.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the endpoint version.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/versionNumber-path.yaml" } }, { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "in": "path", "name": "apiEndPointId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/apiEndPointId-path.yaml" } } ] }, "/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/cors": { "get": { "description": "Returns the cross-origin resource sharing (CORS) settings configured for an endpoint version.", "operationId": "get-cors-settings", "summary": "Get CORS settings", "tags": [ "CORS" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/get-cors-settings" }, "responses": { "200": { "description": "Response data shows current CORS settings.", "content": { "application/json": { "example": { "allowCredentials": false, "enabled": true, "preflightMaxAge": 86400, "allowedHeaders": [ "Akamai-Cors-Allowed" ], "allowedMethods": [ "GET" ], "allowedOrigins": [ "*" ], "exposedHeaders": [ "Akamai-Cors-Exposed" ] }, "schema": { "additionalProperties": false, "description": "Contains information about cross-origin resource sharing (CORS) settings configured for an endpoint. CORS enables clients to request restricted resources from external domains outside the domain that served the first resource. You can configure CORS settings if the API Gateway product is in your contract.", "type": "object", "required": [ "enabled", "preflightMaxAge" ], "properties": { "allowCredentials": { "default": false, "description": "Whether you allow credentialed HTTP requests to access your resources. Credentials may be cookies or TLS client certificates.", "type": "boolean" }, "allowedHeaders": { "description": "The HTTP header names that you allow using the `Access-Control-Allow-Headers` header.", "type": "array", "items": { "type": "string" } }, "allowedMethods": { "description": "The HTTP methods that you allow using the `Access-Control-Allow-Methods` header, either `GET`, `PUT`, `POST`, `DELETE`, `OPTIONS`, `PATCH`, or `HEAD`.", "type": "array", "items": { "type": "string", "enum": [ "GET", "PUT", "POST", "DELETE", "OPTIONS", "PATCH", "HEAD" ] } }, "allowedOrigins": { "description": "The origin hostnames that you allow using the `Access-Control-Allow-Origin` header. The wildcard (`*`) means all hostnames.", "type": "array", "items": { "type": "string" } }, "enabled": { "description": "Whether you enabled CORS for the endpoint.", "type": "boolean" }, "exposedHeaders": { "description": "The headers that you expose using the `Access-Control-Expose-Headers` header. By exposing a header, you allow clients to access it.", "type": "array", "items": { "type": "string" } }, "preflightMaxAge": { "description": "The maximum time in seconds for caching responses to preflight requests.", "type": "integer" } }, "x-akamai": { "file-path": "schemas/corsDto.yaml" } } } } }, "400": { "description": "Some of user input is invalid.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "403": { "description": "User does not have permission to API endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "404": { "description": "This API endpoint doesn't exist.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "put": { "description": "Updates the cross-origin resource sharing (CORS) settings configured for an endpoint version.", "operationId": "put-cors-settings", "summary": "Edit CORS settings", "tags": [ "CORS" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/put-cors-settings" }, "requestBody": { "required": true, "content": { "application/json": { "example": { "allowCredentials": false, "enabled": true, "preflightMaxAge": 86400, "allowedHeaders": [ "Akamai-Cors-Allowed" ], "allowedMethods": [ "GET" ], "allowedOrigins": [ "*" ], "exposedHeaders": [ "Akamai-Cors-Exposed" ] }, "schema": { "additionalProperties": false, "description": "Contains information about cross-origin resource sharing (CORS) settings configured for an endpoint. CORS enables clients to request restricted resources from external domains outside the domain that served the first resource. You can configure CORS settings if the API Gateway product is in your contract.", "type": "object", "required": [ "enabled", "preflightMaxAge" ], "properties": { "allowCredentials": { "default": false, "description": "Whether you allow credentialed HTTP requests to access your resources. Credentials may be cookies or TLS client certificates.", "example": "{{allowCredentials}}", "type": "boolean" }, "allowedHeaders": { "description": "The HTTP header names that you allow using the `Access-Control-Allow-Headers` header.", "type": "array", "items": { "type": "string" } }, "allowedMethods": { "description": "The HTTP methods that you allow using the `Access-Control-Allow-Methods` header, either `GET`, `PUT`, `POST`, `DELETE`, `OPTIONS`, `PATCH`, or `HEAD`.", "type": "array", "items": { "type": "string", "enum": [ "GET", "PUT", "POST", "DELETE", "OPTIONS", "PATCH", "HEAD" ] } }, "allowedOrigins": { "description": "The origin hostnames that you allow using the `Access-Control-Allow-Origin` header. The wildcard (`*`) means all hostnames.", "type": "array", "items": { "type": "string" } }, "enabled": { "description": "Whether you enabled CORS for the endpoint.", "example": "{{enabled}}", "type": "boolean" }, "exposedHeaders": { "description": "The headers that you expose using the `Access-Control-Expose-Headers` header. By exposing a header, you allow clients to access it.", "type": "array", "items": { "type": "string" } }, "preflightMaxAge": { "description": "The maximum time in seconds for caching responses to preflight requests.", "example": "{{preflightMaxAge}}", "type": "integer" } }, "x-akamai": { "file-path": "schemas/corsDto.yaml" } } } } }, "responses": { "200": { "description": "The response shows updated CORS data.", "content": { "application/json": { "example": { "allowCredentials": false, "enabled": true, "preflightMaxAge": 86400, "allowedHeaders": [ "Akamai-Cors-Allowed" ], "allowedMethods": [ "GET" ], "allowedOrigins": [ "*" ], "exposedHeaders": [ "Akamai-Cors-Exposed" ] }, "schema": { "additionalProperties": false, "description": "Contains information about cross-origin resource sharing (CORS) settings configured for an endpoint. CORS enables clients to request restricted resources from external domains outside the domain that served the first resource. You can configure CORS settings if the API Gateway product is in your contract.", "type": "object", "required": [ "enabled", "preflightMaxAge" ], "properties": { "allowCredentials": { "default": false, "description": "Whether you allow credentialed HTTP requests to access your resources. Credentials may be cookies or TLS client certificates.", "type": "boolean" }, "allowedHeaders": { "description": "The HTTP header names that you allow using the `Access-Control-Allow-Headers` header.", "type": "array", "items": { "type": "string" } }, "allowedMethods": { "description": "The HTTP methods that you allow using the `Access-Control-Allow-Methods` header, either `GET`, `PUT`, `POST`, `DELETE`, `OPTIONS`, `PATCH`, or `HEAD`.", "type": "array", "items": { "type": "string", "enum": [ "GET", "PUT", "POST", "DELETE", "OPTIONS", "PATCH", "HEAD" ] } }, "allowedOrigins": { "description": "The origin hostnames that you allow using the `Access-Control-Allow-Origin` header. The wildcard (`*`) means all hostnames.", "type": "array", "items": { "type": "string" } }, "enabled": { "description": "Whether you enabled CORS for the endpoint.", "type": "boolean" }, "exposedHeaders": { "description": "The headers that you expose using the `Access-Control-Expose-Headers` header. By exposing a header, you allow clients to access it.", "type": "array", "items": { "type": "string" } }, "preflightMaxAge": { "description": "The maximum time in seconds for caching responses to preflight requests.", "type": "integer" } }, "x-akamai": { "file-path": "schemas/corsDto.yaml" } } } } }, "400": { "description": "Some of user input is invalid.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "403": { "description": "User does not have permission to API endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "404": { "description": "This API endpoint doesn't exist.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the endpoint version.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/versionNumber-path.yaml" } }, { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "in": "path", "name": "apiEndPointId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/apiEndPointId-path.yaml" } } ] }, "/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/error-responses": { "get": { "description": "Returns the error response settings configured for an endpoint version.", "operationId": "get-error-response-setting", "summary": "Get error response settings", "tags": [ "Error responses" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/get-error-response-setting" }, "responses": { "200": { "description": "The response shows current error settings.", "content": { "application/json": { "example": { "API_KEY_FORBIDDEN": { "body": "{\"title\":\"The API key you provided does not have access to the requested resource.\" }", "overrideDefaults": false, "statusCode": 403, "headers": [ { "name": "Content-Type", "value": "application/problem+json" } ] }, "API_KEY_INVALID": { "body": "{\"title\":\"The API key you provided does not exist.\" }", "overrideDefaults": false, "statusCode": 401, "headers": [ { "name": "Content-Type", "value": "application/problem+json" } ] }, "JWT_CLAIM_VALUE_INVALID": { "body": "{\"title\":\"The JWT claim value did not pass the JWT validation.\" }", "overrideDefaults": false, "statusCode": 401, "headers": [ { "name": "Content-Type", "value": "application/problem+json" } ] }, "JWT_SIGNATURE_INVALID": { "body": "{\"title\":\"The JSON web signature in JWT did not pass the JWT validation.\" }", "overrideDefaults": false, "statusCode": 401, "headers": [ { "name": "Content-Type", "value": "application/problem+json" } ] }, "QUOTA_EXCEEDED": { "body": "{\"title\":\"The quota limit for the API key you provided has been exceeded during the current time period.\" }", "overrideDefaults": false, "statusCode": 429, "headers": [ { "name": "Content-Type", "value": "application/problem+json" } ] } }, "schema": { "additionalProperties": false, "description": "Contains information about error response settings configured for an endpoint. If an inbound client request fails, API Gateway returns a default error response with a JSON-formatted description and a status code. You can customize the descriptions, status codes, and headers of selected error responses to help API consumers identify the cause of an error and troubleshoot effectively. You can configure error response settings if the API Gateway product is in your contract.", "type": "object", "properties": { "API_KEY_FORBIDDEN": { "additionalProperties": false, "description": "Contains information about a customizable error response. You can customize the following error types: `API_KEY_INVALID`, `API_KEY_FORBIDDEN`, `QUOTA_EXCEEDED`, `JWT_SIGNATURE_INVALID`, `JWT_CLAIM_VALUE_INVALID`.", "type": "object", "required": [ "statusCode" ], "properties": { "body": { "description": "The response body to return in case of the error. The value should have the proper formatting to reflect the content type. For example, in case of a JSON body format, enclose the text in curly brackets (`{}`).", "type": "string" }, "headers": { "description": "The list of HTTP headers to return in case of the error. By default, API Gateway returns the `Content-Type` header with a value of `application/problem+json` which reflects the default response body. If the `body` member indicates a different content type, set the `Content-Type` header to the appropriate value. For example, in case of an XML body, the value could be `application/problem+xml`.", "type": "array", "items": { "additionalProperties": false, "type": "object", "required": [ "name", "value" ], "properties": { "name": { "description": "The name of the HTTP header to return in case of the error.", "type": "string" }, "value": { "description": "The value of the HTTP header to return in case of the error.", "type": "string" } } } }, "overrideDefaults": { "description": "Whether you overrode the default error response.", "readOnly": true, "type": "boolean" }, "statusCode": { "description": "The status code to return in case of the error.", "type": "integer" } }, "x-akamai": { "file-path": "schemas/errorResponseDto.yaml" } }, "API_KEY_INVALID": { "additionalProperties": false, "description": "Contains information about a customizable error response. You can customize the following error types: `API_KEY_INVALID`, `API_KEY_FORBIDDEN`, `QUOTA_EXCEEDED`, `JWT_SIGNATURE_INVALID`, `JWT_CLAIM_VALUE_INVALID`.", "type": "object", "required": [ "statusCode" ], "properties": { "body": { "description": "The response body to return in case of the error. The value should have the proper formatting to reflect the content type. For example, in case of a JSON body format, enclose the text in curly brackets (`{}`).", "type": "string" }, "headers": { "description": "The list of HTTP headers to return in case of the error. By default, API Gateway returns the `Content-Type` header with a value of `application/problem+json` which reflects the default response body. If the `body` member indicates a different content type, set the `Content-Type` header to the appropriate value. For example, in case of an XML body, the value could be `application/problem+xml`.", "type": "array", "items": { "additionalProperties": false, "type": "object", "required": [ "name", "value" ], "properties": { "name": { "description": "The name of the HTTP header to return in case of the error.", "type": "string" }, "value": { "description": "The value of the HTTP header to return in case of the error.", "type": "string" } } } }, "overrideDefaults": { "description": "Whether you overrode the default error response.", "readOnly": true, "type": "boolean" }, "statusCode": { "description": "The status code to return in case of the error.", "type": "integer" } }, "x-akamai": { "file-path": "schemas/errorResponseDto.yaml" } }, "JWT_CLAIM_VALUE_INVALID": { "additionalProperties": false, "description": "Contains information about a customizable error response. You can customize the following error types: `API_KEY_INVALID`, `API_KEY_FORBIDDEN`, `QUOTA_EXCEEDED`, `JWT_SIGNATURE_INVALID`, `JWT_CLAIM_VALUE_INVALID`.", "type": "object", "required": [ "statusCode" ], "properties": { "body": { "description": "The response body to return in case of the error. The value should have the proper formatting to reflect the content type. For example, in case of a JSON body format, enclose the text in curly brackets (`{}`).", "type": "string" }, "headers": { "description": "The list of HTTP headers to return in case of the error. By default, API Gateway returns the `Content-Type` header with a value of `application/problem+json` which reflects the default response body. If the `body` member indicates a different content type, set the `Content-Type` header to the appropriate value. For example, in case of an XML body, the value could be `application/problem+xml`.", "type": "array", "items": { "additionalProperties": false, "type": "object", "required": [ "name", "value" ], "properties": { "name": { "description": "The name of the HTTP header to return in case of the error.", "type": "string" }, "value": { "description": "The value of the HTTP header to return in case of the error.", "type": "string" } } } }, "overrideDefaults": { "description": "Whether you overrode the default error response.", "readOnly": true, "type": "boolean" }, "statusCode": { "description": "The status code to return in case of the error.", "type": "integer" } }, "x-akamai": { "file-path": "schemas/errorResponseDto.yaml" } }, "JWT_SIGNATURE_INVALID": { "additionalProperties": false, "description": "Contains information about a customizable error response. You can customize the following error types: `API_KEY_INVALID`, `API_KEY_FORBIDDEN`, `QUOTA_EXCEEDED`, `JWT_SIGNATURE_INVALID`, `JWT_CLAIM_VALUE_INVALID`.", "type": "object", "required": [ "statusCode" ], "properties": { "body": { "description": "The response body to return in case of the error. The value should have the proper formatting to reflect the content type. For example, in case of a JSON body format, enclose the text in curly brackets (`{}`).", "type": "string" }, "headers": { "description": "The list of HTTP headers to return in case of the error. By default, API Gateway returns the `Content-Type` header with a value of `application/problem+json` which reflects the default response body. If the `body` member indicates a different content type, set the `Content-Type` header to the appropriate value. For example, in case of an XML body, the value could be `application/problem+xml`.", "type": "array", "items": { "additionalProperties": false, "type": "object", "required": [ "name", "value" ], "properties": { "name": { "description": "The name of the HTTP header to return in case of the error.", "type": "string" }, "value": { "description": "The value of the HTTP header to return in case of the error.", "type": "string" } } } }, "overrideDefaults": { "description": "Whether you overrode the default error response.", "readOnly": true, "type": "boolean" }, "statusCode": { "description": "The status code to return in case of the error.", "type": "integer" } }, "x-akamai": { "file-path": "schemas/errorResponseDto.yaml" } }, "QUOTA_EXCEEDED": { "additionalProperties": false, "description": "Contains information about a customizable error response. You can customize the following error types: `API_KEY_INVALID`, `API_KEY_FORBIDDEN`, `QUOTA_EXCEEDED`, `JWT_SIGNATURE_INVALID`, `JWT_CLAIM_VALUE_INVALID`.", "type": "object", "required": [ "statusCode" ], "properties": { "body": { "description": "The response body to return in case of the error. The value should have the proper formatting to reflect the content type. For example, in case of a JSON body format, enclose the text in curly brackets (`{}`).", "type": "string" }, "headers": { "description": "The list of HTTP headers to return in case of the error. By default, API Gateway returns the `Content-Type` header with a value of `application/problem+json` which reflects the default response body. If the `body` member indicates a different content type, set the `Content-Type` header to the appropriate value. For example, in case of an XML body, the value could be `application/problem+xml`.", "type": "array", "items": { "additionalProperties": false, "type": "object", "required": [ "name", "value" ], "properties": { "name": { "description": "The name of the HTTP header to return in case of the error.", "type": "string" }, "value": { "description": "The value of the HTTP header to return in case of the error.", "type": "string" } } } }, "overrideDefaults": { "description": "Whether you overrode the default error response.", "readOnly": true, "type": "boolean" }, "statusCode": { "description": "The status code to return in case of the error.", "type": "integer" } }, "x-akamai": { "file-path": "schemas/errorResponseDto.yaml" } } }, "x-akamai": { "file-path": "schemas/errorResponsesDto.yaml" } } } } }, "400": { "description": "Some of request input is invalid.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "403": { "description": "User does not have permission to API endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "404": { "description": "The required resource is not found.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "put": { "description": "Updates the error response settings configured for an endpoint version.", "operationId": "put-error-response-setting", "summary": "Edit error response settings", "tags": [ "Error responses" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/put-error-response-setting" }, "requestBody": { "required": true, "content": { "application/json": { "example": { "API_KEY_FORBIDDEN": { "body": "{\"title\":\"The API key you provided does not have access to the requested resource.\" }", "statusCode": 403, "headers": [ { "name": "Content-Type", "value": "application/problem+json" } ] }, "API_KEY_INVALID": { "body": "{\"title\":\"The API key you provided does not exist.\" }", "statusCode": 401, "headers": [ { "name": "Content-Type", "value": "application/problem+json" } ] }, "JWT_CLAIM_VALUE_INVALID": { "body": "{\"title\":\"The JWT claim value did not pass the JWT validation.\" }", "statusCode": 401, "headers": [ { "name": "Content-Type", "value": "application/problem+json" } ] }, "JWT_SIGNATURE_INVALID": { "body": "{\"title\":\"The JSON web signature in JWT did not pass the JWT validation.\" }", "statusCode": 401, "headers": [ { "name": "Content-Type", "value": "application/problem+json" } ] }, "QUOTA_EXCEEDED": { "body": "{\"title\":\"The quota limit for the API key you provided has been exceeded during the current time period.\" }", "statusCode": 429, "headers": [ { "name": "Content-Type", "value": "application/problem+json" } ] } }, "schema": { "additionalProperties": false, "description": "Contains information about error response settings configured for an endpoint. If an inbound client request fails, API Gateway returns a default error response with a JSON-formatted description and a status code. You can customize the descriptions, status codes, and headers of selected error responses to help API consumers identify the cause of an error and troubleshoot effectively. You can configure error response settings if the API Gateway product is in your contract.", "type": "object", "properties": { "API_KEY_FORBIDDEN": { "additionalProperties": false, "description": "Contains information about a customizable error response. You can customize the following error types: `API_KEY_INVALID`, `API_KEY_FORBIDDEN`, `QUOTA_EXCEEDED`, `JWT_SIGNATURE_INVALID`, `JWT_CLAIM_VALUE_INVALID`.", "type": "object", "required": [ "statusCode" ], "properties": { "body": { "description": "The response body to return in case of the error. The value should have the proper formatting to reflect the content type. For example, in case of a JSON body format, enclose the text in curly brackets (`{}`).", "type": "string" }, "headers": { "description": "The list of HTTP headers to return in case of the error. By default, API Gateway returns the `Content-Type` header with a value of `application/problem+json` which reflects the default response body. If the `body` member indicates a different content type, set the `Content-Type` header to the appropriate value. For example, in case of an XML body, the value could be `application/problem+xml`.", "type": "array", "items": { "additionalProperties": false, "type": "object", "required": [ "name", "value" ], "properties": { "name": { "description": "The name of the HTTP header to return in case of the error.", "type": "string" }, "value": { "description": "The value of the HTTP header to return in case of the error.", "type": "string" } } } }, "overrideDefaults": { "description": "Whether you overrode the default error response.", "readOnly": true, "type": "boolean" }, "statusCode": { "description": "The status code to return in case of the error.", "type": "integer" } }, "x-akamai": { "file-path": "schemas/errorResponseDto.yaml" } }, "API_KEY_INVALID": { "additionalProperties": false, "description": "Contains information about a customizable error response. You can customize the following error types: `API_KEY_INVALID`, `API_KEY_FORBIDDEN`, `QUOTA_EXCEEDED`, `JWT_SIGNATURE_INVALID`, `JWT_CLAIM_VALUE_INVALID`.", "type": "object", "required": [ "statusCode" ], "properties": { "body": { "description": "The response body to return in case of the error. The value should have the proper formatting to reflect the content type. For example, in case of a JSON body format, enclose the text in curly brackets (`{}`).", "type": "string" }, "headers": { "description": "The list of HTTP headers to return in case of the error. By default, API Gateway returns the `Content-Type` header with a value of `application/problem+json` which reflects the default response body. If the `body` member indicates a different content type, set the `Content-Type` header to the appropriate value. For example, in case of an XML body, the value could be `application/problem+xml`.", "type": "array", "items": { "additionalProperties": false, "type": "object", "required": [ "name", "value" ], "properties": { "name": { "description": "The name of the HTTP header to return in case of the error.", "type": "string" }, "value": { "description": "The value of the HTTP header to return in case of the error.", "type": "string" } } } }, "overrideDefaults": { "description": "Whether you overrode the default error response.", "readOnly": true, "type": "boolean" }, "statusCode": { "description": "The status code to return in case of the error.", "type": "integer" } }, "x-akamai": { "file-path": "schemas/errorResponseDto.yaml" } }, "JWT_CLAIM_VALUE_INVALID": { "additionalProperties": false, "description": "Contains information about a customizable error response. You can customize the following error types: `API_KEY_INVALID`, `API_KEY_FORBIDDEN`, `QUOTA_EXCEEDED`, `JWT_SIGNATURE_INVALID`, `JWT_CLAIM_VALUE_INVALID`.", "type": "object", "required": [ "statusCode" ], "properties": { "body": { "description": "The response body to return in case of the error. The value should have the proper formatting to reflect the content type. For example, in case of a JSON body format, enclose the text in curly brackets (`{}`).", "type": "string" }, "headers": { "description": "The list of HTTP headers to return in case of the error. By default, API Gateway returns the `Content-Type` header with a value of `application/problem+json` which reflects the default response body. If the `body` member indicates a different content type, set the `Content-Type` header to the appropriate value. For example, in case of an XML body, the value could be `application/problem+xml`.", "type": "array", "items": { "additionalProperties": false, "type": "object", "required": [ "name", "value" ], "properties": { "name": { "description": "The name of the HTTP header to return in case of the error.", "type": "string" }, "value": { "description": "The value of the HTTP header to return in case of the error.", "type": "string" } } } }, "overrideDefaults": { "description": "Whether you overrode the default error response.", "readOnly": true, "type": "boolean" }, "statusCode": { "description": "The status code to return in case of the error.", "type": "integer" } }, "x-akamai": { "file-path": "schemas/errorResponseDto.yaml" } }, "JWT_SIGNATURE_INVALID": { "additionalProperties": false, "description": "Contains information about a customizable error response. You can customize the following error types: `API_KEY_INVALID`, `API_KEY_FORBIDDEN`, `QUOTA_EXCEEDED`, `JWT_SIGNATURE_INVALID`, `JWT_CLAIM_VALUE_INVALID`.", "type": "object", "required": [ "statusCode" ], "properties": { "body": { "description": "The response body to return in case of the error. The value should have the proper formatting to reflect the content type. For example, in case of a JSON body format, enclose the text in curly brackets (`{}`).", "type": "string" }, "headers": { "description": "The list of HTTP headers to return in case of the error. By default, API Gateway returns the `Content-Type` header with a value of `application/problem+json` which reflects the default response body. If the `body` member indicates a different content type, set the `Content-Type` header to the appropriate value. For example, in case of an XML body, the value could be `application/problem+xml`.", "type": "array", "items": { "additionalProperties": false, "type": "object", "required": [ "name", "value" ], "properties": { "name": { "description": "The name of the HTTP header to return in case of the error.", "type": "string" }, "value": { "description": "The value of the HTTP header to return in case of the error.", "type": "string" } } } }, "overrideDefaults": { "description": "Whether you overrode the default error response.", "readOnly": true, "type": "boolean" }, "statusCode": { "description": "The status code to return in case of the error.", "type": "integer" } }, "x-akamai": { "file-path": "schemas/errorResponseDto.yaml" } }, "QUOTA_EXCEEDED": { "additionalProperties": false, "description": "Contains information about a customizable error response. You can customize the following error types: `API_KEY_INVALID`, `API_KEY_FORBIDDEN`, `QUOTA_EXCEEDED`, `JWT_SIGNATURE_INVALID`, `JWT_CLAIM_VALUE_INVALID`.", "type": "object", "required": [ "statusCode" ], "properties": { "body": { "description": "The response body to return in case of the error. The value should have the proper formatting to reflect the content type. For example, in case of a JSON body format, enclose the text in curly brackets (`{}`).", "type": "string" }, "headers": { "description": "The list of HTTP headers to return in case of the error. By default, API Gateway returns the `Content-Type` header with a value of `application/problem+json` which reflects the default response body. If the `body` member indicates a different content type, set the `Content-Type` header to the appropriate value. For example, in case of an XML body, the value could be `application/problem+xml`.", "type": "array", "items": { "additionalProperties": false, "type": "object", "required": [ "name", "value" ], "properties": { "name": { "description": "The name of the HTTP header to return in case of the error.", "type": "string" }, "value": { "description": "The value of the HTTP header to return in case of the error.", "type": "string" } } } }, "overrideDefaults": { "description": "Whether you overrode the default error response.", "readOnly": true, "type": "boolean" }, "statusCode": { "description": "The status code to return in case of the error.", "type": "integer" } }, "x-akamai": { "file-path": "schemas/errorResponseDto.yaml" } } }, "x-akamai": { "file-path": "schemas/errorResponsesDto.yaml" } } } } }, "responses": { "200": { "description": "Operation succeeded.", "content": { "application/json": { "example": { "API_KEY_FORBIDDEN": { "body": "{\"title\":\"The API key you provided does not have access to the requested resource.\" }", "overrideDefaults": false, "statusCode": 403, "headers": [ { "name": "Content-Type", "value": "application/problem+json" } ] }, "API_KEY_INVALID": { "body": "{\"title\":\"The API key you provided does not exist.\" }", "overrideDefaults": false, "statusCode": 401, "headers": [ { "name": "Content-Type", "value": "application/problem+json" } ] }, "JWT_CLAIM_VALUE_INVALID": { "body": "{\"title\":\"The JWT claim value did not pass the JWT validation.\" }", "overrideDefaults": false, "statusCode": 401, "headers": [ { "name": "Content-Type", "value": "application/problem+json" } ] }, "JWT_SIGNATURE_INVALID": { "body": "{\"title\":\"The JSON web signature in JWT did not pass the JWT validation.\" }", "overrideDefaults": false, "statusCode": 401, "headers": [ { "name": "Content-Type", "value": "application/problem+json" } ] }, "QUOTA_EXCEEDED": { "body": "{\"title\":\"The quota limit for the API key you provided has been exceeded during the current time period.\" }", "overrideDefaults": false, "statusCode": 429, "headers": [ { "name": "Content-Type", "value": "application/problem+json" } ] } }, "schema": { "additionalProperties": false, "description": "Contains information about error response settings configured for an endpoint. If an inbound client request fails, API Gateway returns a default error response with a JSON-formatted description and a status code. You can customize the descriptions, status codes, and headers of selected error responses to help API consumers identify the cause of an error and troubleshoot effectively. You can configure error response settings if the API Gateway product is in your contract.", "type": "object", "properties": { "API_KEY_FORBIDDEN": { "additionalProperties": false, "description": "Contains information about a customizable error response. You can customize the following error types: `API_KEY_INVALID`, `API_KEY_FORBIDDEN`, `QUOTA_EXCEEDED`, `JWT_SIGNATURE_INVALID`, `JWT_CLAIM_VALUE_INVALID`.", "type": "object", "required": [ "statusCode" ], "properties": { "body": { "description": "The response body to return in case of the error. The value should have the proper formatting to reflect the content type. For example, in case of a JSON body format, enclose the text in curly brackets (`{}`).", "type": "string" }, "headers": { "description": "The list of HTTP headers to return in case of the error. By default, API Gateway returns the `Content-Type` header with a value of `application/problem+json` which reflects the default response body. If the `body` member indicates a different content type, set the `Content-Type` header to the appropriate value. For example, in case of an XML body, the value could be `application/problem+xml`.", "type": "array", "items": { "additionalProperties": false, "type": "object", "required": [ "name", "value" ], "properties": { "name": { "description": "The name of the HTTP header to return in case of the error.", "type": "string" }, "value": { "description": "The value of the HTTP header to return in case of the error.", "type": "string" } } } }, "overrideDefaults": { "description": "Whether you overrode the default error response.", "readOnly": true, "type": "boolean" }, "statusCode": { "description": "The status code to return in case of the error.", "type": "integer" } }, "x-akamai": { "file-path": "schemas/errorResponseDto.yaml" } }, "API_KEY_INVALID": { "additionalProperties": false, "description": "Contains information about a customizable error response. You can customize the following error types: `API_KEY_INVALID`, `API_KEY_FORBIDDEN`, `QUOTA_EXCEEDED`, `JWT_SIGNATURE_INVALID`, `JWT_CLAIM_VALUE_INVALID`.", "type": "object", "required": [ "statusCode" ], "properties": { "body": { "description": "The response body to return in case of the error. The value should have the proper formatting to reflect the content type. For example, in case of a JSON body format, enclose the text in curly brackets (`{}`).", "type": "string" }, "headers": { "description": "The list of HTTP headers to return in case of the error. By default, API Gateway returns the `Content-Type` header with a value of `application/problem+json` which reflects the default response body. If the `body` member indicates a different content type, set the `Content-Type` header to the appropriate value. For example, in case of an XML body, the value could be `application/problem+xml`.", "type": "array", "items": { "additionalProperties": false, "type": "object", "required": [ "name", "value" ], "properties": { "name": { "description": "The name of the HTTP header to return in case of the error.", "type": "string" }, "value": { "description": "The value of the HTTP header to return in case of the error.", "type": "string" } } } }, "overrideDefaults": { "description": "Whether you overrode the default error response.", "readOnly": true, "type": "boolean" }, "statusCode": { "description": "The status code to return in case of the error.", "type": "integer" } }, "x-akamai": { "file-path": "schemas/errorResponseDto.yaml" } }, "JWT_CLAIM_VALUE_INVALID": { "additionalProperties": false, "description": "Contains information about a customizable error response. You can customize the following error types: `API_KEY_INVALID`, `API_KEY_FORBIDDEN`, `QUOTA_EXCEEDED`, `JWT_SIGNATURE_INVALID`, `JWT_CLAIM_VALUE_INVALID`.", "type": "object", "required": [ "statusCode" ], "properties": { "body": { "description": "The response body to return in case of the error. The value should have the proper formatting to reflect the content type. For example, in case of a JSON body format, enclose the text in curly brackets (`{}`).", "type": "string" }, "headers": { "description": "The list of HTTP headers to return in case of the error. By default, API Gateway returns the `Content-Type` header with a value of `application/problem+json` which reflects the default response body. If the `body` member indicates a different content type, set the `Content-Type` header to the appropriate value. For example, in case of an XML body, the value could be `application/problem+xml`.", "type": "array", "items": { "additionalProperties": false, "type": "object", "required": [ "name", "value" ], "properties": { "name": { "description": "The name of the HTTP header to return in case of the error.", "type": "string" }, "value": { "description": "The value of the HTTP header to return in case of the error.", "type": "string" } } } }, "overrideDefaults": { "description": "Whether you overrode the default error response.", "readOnly": true, "type": "boolean" }, "statusCode": { "description": "The status code to return in case of the error.", "type": "integer" } }, "x-akamai": { "file-path": "schemas/errorResponseDto.yaml" } }, "JWT_SIGNATURE_INVALID": { "additionalProperties": false, "description": "Contains information about a customizable error response. You can customize the following error types: `API_KEY_INVALID`, `API_KEY_FORBIDDEN`, `QUOTA_EXCEEDED`, `JWT_SIGNATURE_INVALID`, `JWT_CLAIM_VALUE_INVALID`.", "type": "object", "required": [ "statusCode" ], "properties": { "body": { "description": "The response body to return in case of the error. The value should have the proper formatting to reflect the content type. For example, in case of a JSON body format, enclose the text in curly brackets (`{}`).", "type": "string" }, "headers": { "description": "The list of HTTP headers to return in case of the error. By default, API Gateway returns the `Content-Type` header with a value of `application/problem+json` which reflects the default response body. If the `body` member indicates a different content type, set the `Content-Type` header to the appropriate value. For example, in case of an XML body, the value could be `application/problem+xml`.", "type": "array", "items": { "additionalProperties": false, "type": "object", "required": [ "name", "value" ], "properties": { "name": { "description": "The name of the HTTP header to return in case of the error.", "type": "string" }, "value": { "description": "The value of the HTTP header to return in case of the error.", "type": "string" } } } }, "overrideDefaults": { "description": "Whether you overrode the default error response.", "readOnly": true, "type": "boolean" }, "statusCode": { "description": "The status code to return in case of the error.", "type": "integer" } }, "x-akamai": { "file-path": "schemas/errorResponseDto.yaml" } }, "QUOTA_EXCEEDED": { "additionalProperties": false, "description": "Contains information about a customizable error response. You can customize the following error types: `API_KEY_INVALID`, `API_KEY_FORBIDDEN`, `QUOTA_EXCEEDED`, `JWT_SIGNATURE_INVALID`, `JWT_CLAIM_VALUE_INVALID`.", "type": "object", "required": [ "statusCode" ], "properties": { "body": { "description": "The response body to return in case of the error. The value should have the proper formatting to reflect the content type. For example, in case of a JSON body format, enclose the text in curly brackets (`{}`).", "type": "string" }, "headers": { "description": "The list of HTTP headers to return in case of the error. By default, API Gateway returns the `Content-Type` header with a value of `application/problem+json` which reflects the default response body. If the `body` member indicates a different content type, set the `Content-Type` header to the appropriate value. For example, in case of an XML body, the value could be `application/problem+xml`.", "type": "array", "items": { "additionalProperties": false, "type": "object", "required": [ "name", "value" ], "properties": { "name": { "description": "The name of the HTTP header to return in case of the error.", "type": "string" }, "value": { "description": "The value of the HTTP header to return in case of the error.", "type": "string" } } } }, "overrideDefaults": { "description": "Whether you overrode the default error response.", "readOnly": true, "type": "boolean" }, "statusCode": { "description": "The status code to return in case of the error.", "type": "integer" } }, "x-akamai": { "file-path": "schemas/errorResponseDto.yaml" } } }, "x-akamai": { "file-path": "schemas/errorResponsesDto.yaml" } } } } }, "400": { "description": "Some of user input is invalid.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "403": { "description": "User does not have permission to API endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "404": { "description": "This API endpoint doesn't exist.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the endpoint version.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/versionNumber-path.yaml" } }, { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "in": "path", "name": "apiEndPointId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/apiEndPointId-path.yaml" } } ] }, "/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/error-responses/{type}": { "get": { "description": "Returns a customizable error response of the selected type.", "operationId": "get-error-responses-type", "summary": "Get an error response", "tags": [ "Error responses" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/get-error-responses-type" }, "responses": { "200": { "description": "The response shows the current error response.", "content": { "application/json": { "example": { "body": "{\"title\":\"The API key you provided does not exist.\" }", "overrideDefaults": false, "statusCode": 401, "headers": [ { "name": "Content-Type", "value": "application/problem+json" } ] }, "schema": { "additionalProperties": false, "description": "Contains information about a customizable error response. You can customize the following error types: `API_KEY_INVALID`, `API_KEY_FORBIDDEN`, `QUOTA_EXCEEDED`, `JWT_SIGNATURE_INVALID`, `JWT_CLAIM_VALUE_INVALID`.", "type": "object", "required": [ "statusCode" ], "properties": { "body": { "description": "The response body to return in case of the error. The value should have the proper formatting to reflect the content type. For example, in case of a JSON body format, enclose the text in curly brackets (`{}`).", "type": "string" }, "headers": { "description": "The list of HTTP headers to return in case of the error. By default, API Gateway returns the `Content-Type` header with a value of `application/problem+json` which reflects the default response body. If the `body` member indicates a different content type, set the `Content-Type` header to the appropriate value. For example, in case of an XML body, the value could be `application/problem+xml`.", "type": "array", "items": { "additionalProperties": false, "type": "object", "required": [ "name", "value" ], "properties": { "name": { "description": "The name of the HTTP header to return in case of the error.", "type": "string" }, "value": { "description": "The value of the HTTP header to return in case of the error.", "type": "string" } } } }, "overrideDefaults": { "description": "Whether you overrode the default error response.", "readOnly": true, "type": "boolean" }, "statusCode": { "description": "The status code to return in case of the error.", "type": "integer" } }, "x-akamai": { "file-path": "schemas/errorResponseDto.yaml" } } } } }, "400": { "description": "Some of user input is invalid.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "403": { "description": "User does not have permission to API endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "404": { "description": "This API endpoint doesn't exist.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "put": { "description": "Updates a customizable error response of the selected type.", "operationId": "put-get-error-responses-type", "summary": "Edit an error response", "tags": [ "Error responses" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/put-get-error-responses-type" }, "requestBody": { "required": true, "content": { "application/json": { "example": { "body": "{\"title\":\"The API key you provided does not exist.\" }", "statusCode": 401, "headers": [ { "name": "Content-Type", "value": "application/problem+json" } ] }, "schema": { "additionalProperties": false, "description": "Contains information about a customizable error response. You can customize the following error types: `API_KEY_INVALID`, `API_KEY_FORBIDDEN`, `QUOTA_EXCEEDED`, `JWT_SIGNATURE_INVALID`, `JWT_CLAIM_VALUE_INVALID`.", "type": "object", "required": [ "statusCode" ], "properties": { "body": { "description": "The response body to return in case of the error. The value should have the proper formatting to reflect the content type. For example, in case of a JSON body format, enclose the text in curly brackets (`{}`).", "example": "{{body}}", "type": "string" }, "headers": { "description": "The list of HTTP headers to return in case of the error. By default, API Gateway returns the `Content-Type` header with a value of `application/problem+json` which reflects the default response body. If the `body` member indicates a different content type, set the `Content-Type` header to the appropriate value. For example, in case of an XML body, the value could be `application/problem+xml`.", "type": "array", "items": { "additionalProperties": false, "type": "object", "required": [ "name", "value" ], "properties": { "name": { "description": "The name of the HTTP header to return in case of the error.", "type": "string" }, "value": { "description": "The value of the HTTP header to return in case of the error.", "type": "string" } } } }, "overrideDefaults": { "description": "Whether you overrode the default error response.", "example": "{{overrideDefaults}}", "readOnly": true, "type": "boolean" }, "statusCode": { "description": "The status code to return in case of the error.", "example": "{{statusCode}}", "type": "integer" } }, "x-akamai": { "file-path": "schemas/errorResponseDto.yaml" } } } } }, "responses": { "200": { "description": "The response reflects the updated error response.", "content": { "application/json": { "example": { "body": "{\"title\":\"The API key you provided does not exist.\" }", "overrideDefaults": false, "statusCode": 401, "headers": [ { "name": "Content-Type", "value": "application/problem+json" } ] }, "schema": { "additionalProperties": false, "description": "Contains information about a customizable error response. You can customize the following error types: `API_KEY_INVALID`, `API_KEY_FORBIDDEN`, `QUOTA_EXCEEDED`, `JWT_SIGNATURE_INVALID`, `JWT_CLAIM_VALUE_INVALID`.", "type": "object", "required": [ "statusCode" ], "properties": { "body": { "description": "The response body to return in case of the error. The value should have the proper formatting to reflect the content type. For example, in case of a JSON body format, enclose the text in curly brackets (`{}`).", "type": "string" }, "headers": { "description": "The list of HTTP headers to return in case of the error. By default, API Gateway returns the `Content-Type` header with a value of `application/problem+json` which reflects the default response body. If the `body` member indicates a different content type, set the `Content-Type` header to the appropriate value. For example, in case of an XML body, the value could be `application/problem+xml`.", "type": "array", "items": { "additionalProperties": false, "type": "object", "required": [ "name", "value" ], "properties": { "name": { "description": "The name of the HTTP header to return in case of the error.", "type": "string" }, "value": { "description": "The value of the HTTP header to return in case of the error.", "type": "string" } } } }, "overrideDefaults": { "description": "Whether you overrode the default error response.", "readOnly": true, "type": "boolean" }, "statusCode": { "description": "The status code to return in case of the error.", "type": "integer" } }, "x-akamai": { "file-path": "schemas/errorResponseDto.yaml" } } } } }, "400": { "description": "Some of user input is invalid.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "403": { "description": "User does not have permission to API endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "404": { "description": "This API endpoint doesn't exist.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "__Enum__ The type of the customizable error response.", "example": "{{type}}", "in": "path", "name": "type", "required": true, "schema": { "example": "API_KEY_INVALID", "type": "string", "enum": [ "API_KEY_INVALID", "API_KEY_FORBIDDEN", "QUOTA_EXCEEDED", "JWT_SIGNATURE_INVALID", "JWT_CLAIM_VALUE_INVALID" ] }, "x-akamai": { "file-path": "parameters/type-path.yaml" } }, { "description": "The unique identifier for the endpoint version.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/versionNumber-path.yaml" } }, { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "in": "path", "name": "apiEndPointId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/apiEndPointId-path.yaml" } } ] }, "/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/graphql": { "get": { "description": "Returns the GraphQL caching settings configured for an endpoint version.", "operationId": "get-graphql-settings", "summary": "Get GraphQL cache settings", "tags": [ "GraphQL" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/get-graphql-settings" }, "responses": { "200": { "description": "The response shows current GraphQL cache settings.", "content": { "application/json": { "example": { "bodyParamName": "body-param-name", "cacheOrigin": false, "cacheResponseOnError": null, "detectError": false, "enabled": true, "maxQuerySize": null, "nestingLevel": null, "queryParamName": "query-param-name", "serveStale": null, "downstreamCaching": { "headers": "SAME_AS_ORIGIN", "lifetime": "SMALLER_VALUE", "markAsPrivate": false, "option": "ALLOW_CACHING" }, "maxAge": { "duration": 420, "unit": "HOURS" }, "preRefreshing": { "enabled": true, "value": 50 } }, "schema": { "additionalProperties": false, "description": "Contains information about GraphQL caching settings configured for an endpoint. GraphQL caching settings specify properties such as the query and body parameters that contain GraphQL queries, maximum age of cached content, and downstream cacheability. You can configure GraphQL caching settings if the API Gateway product is in your contract.", "type": "object", "required": [ "enabled", "bodyParamName", "queryParamName", "maxAge", "downstreamCaching", "detectError" ], "properties": { "bodyParamName": { "description": "The name of the JSON body parameter that contains a GraphQL query in an incoming POST request. If the request's content type is `application/json`, this is the name of the key that contains a GraphQL query as its value. If the request's content type is `application/graphql`, edge servers treat the entire request body as a GraphQL query.", "type": "string" }, "cacheOrigin": { "description": "Whether to set the maximum age for caching GraphQL responses (TTL) to the value specified in your origin's `Cache-Control` HTTP response header.", "nullable": true, "type": "boolean" }, "cacheResponseOnError": { "description": "Whether edge servers should cache the response to a GraphQL-type request in case errors are present in the response body.", "nullable": true, "type": "boolean" }, "detectError": { "description": "By default, GraphQL queries return partial data if only a portion of a request fails. In such cases, status codes don't indicate errors. Instead, an `errors` array in a response body contains error details. This indicates whether edge servers should inspect the response body for the `errors` array.", "type": "boolean" }, "downstreamCaching": { "additionalProperties": false, "description": "Contains information about downstream caching settings. Downstream caching refers to the caching instructions assigned to objects sent with responses toward clients—browsers, mobile devices, or client proxies.", "type": "object", "required": [ "option", "markAsPrivate", "lifetime", "headers", "maxAge" ], "properties": { "headers": { "default": "SMALLER_VALUE", "description": "The policy for sending headers downstream, either `CACHE_CONTROL_AND_EXPIRES` to send both `Cache-Control` and `Expires` headers, `CACHE_CONTROL` to send only the `Cache-Control` header, `EXPIRES` to send only the `Expires` header, or `SAME_AS_ORIGIN` to send the same headers as your origin.", "type": "string", "enum": [ "CACHE_CONTROL_AND_EXPIRES", "CACHE_CONTROL", "EXPIRES", "SAME_AS_ORIGIN", "SMALLER_VALUE" ] }, "lifetime": { "default": "SMALLER_VALUE", "description": "The cache lifetime policy, either `SMALLER_VALUE` for a value smaller than specified in the origin header or the remaining edge TTL, `GREATER_VALUE` for a value greater than specified in the origin header or the remaining edge TTL, `REMAINING_EDGE_TTL` for a remaining edge TTL, `FULL_EDGE_TTL` for a full edge TTL, `FIXED_VALUE` for a value that you specify, or `CALCULATES_EXPIRES_FROM_ORIGIN_CACHE_CONTROL` for calculating the maximum age from the origin `Cache-Control` header.", "type": "string", "enum": [ "SMALLER_VALUE", "GREATER_VALUE", "REMAINING_EDGE_TTL", "FULL_EDGE_TTL", "FIXED_VALUE", "CALCULATES_EXPIRES_FROM_ORIGIN_CACHE_CONTROL" ] }, "markAsPrivate": { "description": "Specifies whether to disallow storing responses in a shared cache. This is useful when you want to set a maximum age for the end client, but have shared caches not store the response.", "nullable": true, "type": "boolean" }, "maxAge": { "additionalProperties": false, "description": "Contains information about the maximum duration to keep content in a cache.", "nullable": true, "type": "object", "required": [ "duration", "unit" ], "properties": { "duration": { "description": "The maximum duration of content caching in the selected unit of time.", "type": "integer" }, "unit": { "description": "The unit of time for content caching, either `DAYS`, `HOURS`, `MINUTES`, or `SECONDS`.", "type": "string", "enum": [ "SECONDS", "MINUTES", "HOURS", "DAYS" ] } }, "x-akamai": { "file-path": "schemas/durationDto.yaml" } }, "option": { "default": "ALLOW_CACHING", "description": "The option for downstream caching, either `ALLOW_CACHING` to allow downstream caching, `ALLOW_CACHING_REQUIRES_REVALIDATION` to allow downstream caching, but require origin revalidation, `NOT_ALLOW_CACHING` to disallow downstream caching, `PASS_CACHEABILITY_HEADERS_FROM_ORIGIN` to pass cacheability headers from your origin, or `DO_NOT_SEND_HEADERS` to disallow sending headers and apply browser defaults.", "type": "string", "enum": [ "ALLOW_CACHING", "ALLOW_CACHING_REQUIRES_REVALIDATION", "NOT_ALLOW_CACHING", "PASS_CACHEABILITY_HEADERS_FROM_ORIGIN", "DO_NOT_SEND_HEADERS" ] } }, "x-akamai": { "file-path": "schemas/cacheDownstreamDto.yaml" } }, "enabled": { "description": "Whether you enabled GraphQL caching for the endpoint.", "type": "boolean" }, "maxAge": { "additionalProperties": false, "description": "Contains information about the maximum duration to keep content in a cache.", "nullable": true, "type": "object", "required": [ "duration", "unit" ], "properties": { "duration": { "description": "The maximum duration of content caching in the selected unit of time.", "type": "integer" }, "unit": { "description": "The unit of time for content caching, either `DAYS`, `HOURS`, `MINUTES`, or `SECONDS`.", "type": "string", "enum": [ "SECONDS", "MINUTES", "HOURS", "DAYS" ] } }, "x-akamai": { "file-path": "schemas/durationDto.yaml" } }, "maxQuerySize": { "description": "The maximum size of the query. A post body or a get response can't exceed 4 KBs.", "nullable": true, "type": "integer" }, "nestingLevel": { "description": "The number of supported nesting levels within a query. The maximum number is 100.", "nullable": true, "type": "string" }, "preRefreshing": { "additionalProperties": false, "description": "Contains information about cache prefreshing settings. When enabled, edge servers asynchronously refresh cached objects after a specified percentage of the object's TTL elapses.", "nullable": true, "type": "object", "required": [ "enabled" ], "properties": { "enabled": { "description": "Whether you enable cache prefreshing.", "type": "boolean" }, "value": { "description": "Percentage of TTL after which cache content will be refreshed. Need to be in the range of `0-99`.", "maximum": 99, "minimum": 0, "type": "integer" } }, "x-akamai": { "file-path": "schemas/preRefreshing.yaml" } }, "queryParamName": { "description": "The name of the query parameter that contains a GraphQL query in an incoming GET or POST request.", "type": "string" }, "serveStale": { "description": "Whether to serve stale responses when the origin is unreachable and content revalidation isn't possible.", "nullable": true, "type": "boolean" } }, "x-akamai": { "file-path": "schemas/graphQLSettingsDto.yaml" } } } } }, "400": { "description": "Some of user input is invalid.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "403": { "description": "User does not have permission to API endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "404": { "description": "This API endpoint doesn't exist.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "put": { "description": "Updates the GraphQL caching settings configured for an endpoint version.", "operationId": "put-graphql-settings", "summary": "Edit GraphQL cache settings", "tags": [ "GraphQL" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/put-graphql-settings" }, "requestBody": { "required": true, "content": { "application/json": { "example": { "bodyParamName": "body-param-name", "cacheOrigin": false, "cacheResponseOnError": null, "detectError": false, "enabled": true, "maxQuerySize": null, "nestingLevel": null, "queryParamName": "query-param-name", "serveStale": null, "downstreamCaching": { "headers": "SAME_AS_ORIGIN", "lifetime": "SMALLER_VALUE", "markAsPrivate": false, "option": "ALLOW_CACHING" }, "maxAge": { "duration": 420, "unit": "HOURS" }, "preRefreshing": { "enabled": true, "value": 50 } }, "schema": { "additionalProperties": false, "description": "Contains information about GraphQL caching settings configured for an endpoint. GraphQL caching settings specify properties such as the query and body parameters that contain GraphQL queries, maximum age of cached content, and downstream cacheability. You can configure GraphQL caching settings if the API Gateway product is in your contract.", "type": "object", "required": [ "enabled", "bodyParamName", "queryParamName", "maxAge", "downstreamCaching", "detectError" ], "properties": { "bodyParamName": { "description": "The name of the JSON body parameter that contains a GraphQL query in an incoming POST request. If the request's content type is `application/json`, this is the name of the key that contains a GraphQL query as its value. If the request's content type is `application/graphql`, edge servers treat the entire request body as a GraphQL query.", "example": "{{bodyParamName}}", "type": "string" }, "cacheOrigin": { "description": "Whether to set the maximum age for caching GraphQL responses (TTL) to the value specified in your origin's `Cache-Control` HTTP response header.", "example": "{{cacheOrigin}}", "nullable": true, "type": "boolean" }, "cacheResponseOnError": { "description": "Whether edge servers should cache the response to a GraphQL-type request in case errors are present in the response body.", "example": "{{cacheResponseOnError}}", "nullable": true, "type": "boolean" }, "detectError": { "description": "By default, GraphQL queries return partial data if only a portion of a request fails. In such cases, status codes don't indicate errors. Instead, an `errors` array in a response body contains error details. This indicates whether edge servers should inspect the response body for the `errors` array.", "example": "{{detectError}}", "type": "boolean" }, "downstreamCaching": { "additionalProperties": false, "description": "Contains information about downstream caching settings. Downstream caching refers to the caching instructions assigned to objects sent with responses toward clients—browsers, mobile devices, or client proxies.", "type": "object", "required": [ "option", "markAsPrivate", "lifetime", "headers", "maxAge" ], "properties": { "headers": { "default": "SMALLER_VALUE", "description": "The policy for sending headers downstream, either `CACHE_CONTROL_AND_EXPIRES` to send both `Cache-Control` and `Expires` headers, `CACHE_CONTROL` to send only the `Cache-Control` header, `EXPIRES` to send only the `Expires` header, or `SAME_AS_ORIGIN` to send the same headers as your origin.", "type": "string", "enum": [ "CACHE_CONTROL_AND_EXPIRES", "CACHE_CONTROL", "EXPIRES", "SAME_AS_ORIGIN", "SMALLER_VALUE" ] }, "lifetime": { "default": "SMALLER_VALUE", "description": "The cache lifetime policy, either `SMALLER_VALUE` for a value smaller than specified in the origin header or the remaining edge TTL, `GREATER_VALUE` for a value greater than specified in the origin header or the remaining edge TTL, `REMAINING_EDGE_TTL` for a remaining edge TTL, `FULL_EDGE_TTL` for a full edge TTL, `FIXED_VALUE` for a value that you specify, or `CALCULATES_EXPIRES_FROM_ORIGIN_CACHE_CONTROL` for calculating the maximum age from the origin `Cache-Control` header.", "type": "string", "enum": [ "SMALLER_VALUE", "GREATER_VALUE", "REMAINING_EDGE_TTL", "FULL_EDGE_TTL", "FIXED_VALUE", "CALCULATES_EXPIRES_FROM_ORIGIN_CACHE_CONTROL" ] }, "markAsPrivate": { "description": "Specifies whether to disallow storing responses in a shared cache. This is useful when you want to set a maximum age for the end client, but have shared caches not store the response.", "nullable": true, "type": "boolean" }, "maxAge": { "additionalProperties": false, "description": "Contains information about the maximum duration to keep content in a cache.", "nullable": true, "type": "object", "required": [ "duration", "unit" ], "properties": { "duration": { "description": "The maximum duration of content caching in the selected unit of time.", "type": "integer" }, "unit": { "description": "The unit of time for content caching, either `DAYS`, `HOURS`, `MINUTES`, or `SECONDS`.", "type": "string", "enum": [ "SECONDS", "MINUTES", "HOURS", "DAYS" ] } }, "x-akamai": { "file-path": "schemas/durationDto.yaml" } }, "option": { "default": "ALLOW_CACHING", "description": "The option for downstream caching, either `ALLOW_CACHING` to allow downstream caching, `ALLOW_CACHING_REQUIRES_REVALIDATION` to allow downstream caching, but require origin revalidation, `NOT_ALLOW_CACHING` to disallow downstream caching, `PASS_CACHEABILITY_HEADERS_FROM_ORIGIN` to pass cacheability headers from your origin, or `DO_NOT_SEND_HEADERS` to disallow sending headers and apply browser defaults.", "type": "string", "enum": [ "ALLOW_CACHING", "ALLOW_CACHING_REQUIRES_REVALIDATION", "NOT_ALLOW_CACHING", "PASS_CACHEABILITY_HEADERS_FROM_ORIGIN", "DO_NOT_SEND_HEADERS" ] } }, "x-akamai": { "file-path": "schemas/cacheDownstreamDto.yaml" } }, "enabled": { "description": "Whether you enabled GraphQL caching for the endpoint.", "example": "{{enabled}}", "type": "boolean" }, "maxAge": { "additionalProperties": false, "description": "Contains information about the maximum duration to keep content in a cache.", "nullable": true, "type": "object", "required": [ "duration", "unit" ], "properties": { "duration": { "description": "The maximum duration of content caching in the selected unit of time.", "type": "integer" }, "unit": { "description": "The unit of time for content caching, either `DAYS`, `HOURS`, `MINUTES`, or `SECONDS`.", "type": "string", "enum": [ "SECONDS", "MINUTES", "HOURS", "DAYS" ] } }, "x-akamai": { "file-path": "schemas/durationDto.yaml" } }, "maxQuerySize": { "description": "The maximum size of the query. A post body or a get response can't exceed 4 KBs.", "example": "{{maxQuerySize}}", "nullable": true, "type": "integer" }, "nestingLevel": { "description": "The number of supported nesting levels within a query. The maximum number is 100.", "example": "{{nestingLevel}}", "nullable": true, "type": "string" }, "preRefreshing": { "additionalProperties": false, "description": "Contains information about cache prefreshing settings. When enabled, edge servers asynchronously refresh cached objects after a specified percentage of the object's TTL elapses.", "nullable": true, "type": "object", "required": [ "enabled" ], "properties": { "enabled": { "description": "Whether you enable cache prefreshing.", "type": "boolean" }, "value": { "description": "Percentage of TTL after which cache content will be refreshed. Need to be in the range of `0-99`.", "maximum": 99, "minimum": 0, "type": "integer" } }, "x-akamai": { "file-path": "schemas/preRefreshing.yaml" } }, "queryParamName": { "description": "The name of the query parameter that contains a GraphQL query in an incoming GET or POST request.", "example": "{{queryParamName}}", "type": "string" }, "serveStale": { "description": "Whether to serve stale responses when the origin is unreachable and content revalidation isn't possible.", "example": "{{serveStale}}", "nullable": true, "type": "boolean" } }, "x-akamai": { "file-path": "schemas/graphQLSettingsDto.yaml" } } } } }, "responses": { "200": { "description": "The response reflects updated GraphQL cache settings.", "content": { "application/json": { "example": { "bodyParamName": "body-param-name", "cacheOrigin": false, "cacheResponseOnError": null, "detectError": false, "enabled": true, "maxQuerySize": null, "nestingLevel": null, "queryParamName": "query-param-name", "serveStale": null, "downstreamCaching": { "headers": "SAME_AS_ORIGIN", "lifetime": "SMALLER_VALUE", "markAsPrivate": false, "option": "ALLOW_CACHING" }, "maxAge": { "duration": 420, "unit": "HOURS" }, "preRefreshing": { "enabled": true, "value": 50 } }, "schema": { "additionalProperties": false, "description": "Contains information about GraphQL caching settings configured for an endpoint. GraphQL caching settings specify properties such as the query and body parameters that contain GraphQL queries, maximum age of cached content, and downstream cacheability. You can configure GraphQL caching settings if the API Gateway product is in your contract.", "type": "object", "required": [ "enabled", "bodyParamName", "queryParamName", "maxAge", "downstreamCaching", "detectError" ], "properties": { "bodyParamName": { "description": "The name of the JSON body parameter that contains a GraphQL query in an incoming POST request. If the request's content type is `application/json`, this is the name of the key that contains a GraphQL query as its value. If the request's content type is `application/graphql`, edge servers treat the entire request body as a GraphQL query.", "type": "string" }, "cacheOrigin": { "description": "Whether to set the maximum age for caching GraphQL responses (TTL) to the value specified in your origin's `Cache-Control` HTTP response header.", "nullable": true, "type": "boolean" }, "cacheResponseOnError": { "description": "Whether edge servers should cache the response to a GraphQL-type request in case errors are present in the response body.", "nullable": true, "type": "boolean" }, "detectError": { "description": "By default, GraphQL queries return partial data if only a portion of a request fails. In such cases, status codes don't indicate errors. Instead, an `errors` array in a response body contains error details. This indicates whether edge servers should inspect the response body for the `errors` array.", "type": "boolean" }, "downstreamCaching": { "additionalProperties": false, "description": "Contains information about downstream caching settings. Downstream caching refers to the caching instructions assigned to objects sent with responses toward clients—browsers, mobile devices, or client proxies.", "type": "object", "required": [ "option", "markAsPrivate", "lifetime", "headers", "maxAge" ], "properties": { "headers": { "default": "SMALLER_VALUE", "description": "The policy for sending headers downstream, either `CACHE_CONTROL_AND_EXPIRES` to send both `Cache-Control` and `Expires` headers, `CACHE_CONTROL` to send only the `Cache-Control` header, `EXPIRES` to send only the `Expires` header, or `SAME_AS_ORIGIN` to send the same headers as your origin.", "type": "string", "enum": [ "CACHE_CONTROL_AND_EXPIRES", "CACHE_CONTROL", "EXPIRES", "SAME_AS_ORIGIN", "SMALLER_VALUE" ] }, "lifetime": { "default": "SMALLER_VALUE", "description": "The cache lifetime policy, either `SMALLER_VALUE` for a value smaller than specified in the origin header or the remaining edge TTL, `GREATER_VALUE` for a value greater than specified in the origin header or the remaining edge TTL, `REMAINING_EDGE_TTL` for a remaining edge TTL, `FULL_EDGE_TTL` for a full edge TTL, `FIXED_VALUE` for a value that you specify, or `CALCULATES_EXPIRES_FROM_ORIGIN_CACHE_CONTROL` for calculating the maximum age from the origin `Cache-Control` header.", "type": "string", "enum": [ "SMALLER_VALUE", "GREATER_VALUE", "REMAINING_EDGE_TTL", "FULL_EDGE_TTL", "FIXED_VALUE", "CALCULATES_EXPIRES_FROM_ORIGIN_CACHE_CONTROL" ] }, "markAsPrivate": { "description": "Specifies whether to disallow storing responses in a shared cache. This is useful when you want to set a maximum age for the end client, but have shared caches not store the response.", "nullable": true, "type": "boolean" }, "maxAge": { "additionalProperties": false, "description": "Contains information about the maximum duration to keep content in a cache.", "nullable": true, "type": "object", "required": [ "duration", "unit" ], "properties": { "duration": { "description": "The maximum duration of content caching in the selected unit of time.", "type": "integer" }, "unit": { "description": "The unit of time for content caching, either `DAYS`, `HOURS`, `MINUTES`, or `SECONDS`.", "type": "string", "enum": [ "SECONDS", "MINUTES", "HOURS", "DAYS" ] } }, "x-akamai": { "file-path": "schemas/durationDto.yaml" } }, "option": { "default": "ALLOW_CACHING", "description": "The option for downstream caching, either `ALLOW_CACHING` to allow downstream caching, `ALLOW_CACHING_REQUIRES_REVALIDATION` to allow downstream caching, but require origin revalidation, `NOT_ALLOW_CACHING` to disallow downstream caching, `PASS_CACHEABILITY_HEADERS_FROM_ORIGIN` to pass cacheability headers from your origin, or `DO_NOT_SEND_HEADERS` to disallow sending headers and apply browser defaults.", "type": "string", "enum": [ "ALLOW_CACHING", "ALLOW_CACHING_REQUIRES_REVALIDATION", "NOT_ALLOW_CACHING", "PASS_CACHEABILITY_HEADERS_FROM_ORIGIN", "DO_NOT_SEND_HEADERS" ] } }, "x-akamai": { "file-path": "schemas/cacheDownstreamDto.yaml" } }, "enabled": { "description": "Whether you enabled GraphQL caching for the endpoint.", "type": "boolean" }, "maxAge": { "additionalProperties": false, "description": "Contains information about the maximum duration to keep content in a cache.", "nullable": true, "type": "object", "required": [ "duration", "unit" ], "properties": { "duration": { "description": "The maximum duration of content caching in the selected unit of time.", "type": "integer" }, "unit": { "description": "The unit of time for content caching, either `DAYS`, `HOURS`, `MINUTES`, or `SECONDS`.", "type": "string", "enum": [ "SECONDS", "MINUTES", "HOURS", "DAYS" ] } }, "x-akamai": { "file-path": "schemas/durationDto.yaml" } }, "maxQuerySize": { "description": "The maximum size of the query. A post body or a get response can't exceed 4 KBs.", "nullable": true, "type": "integer" }, "nestingLevel": { "description": "The number of supported nesting levels within a query. The maximum number is 100.", "nullable": true, "type": "string" }, "preRefreshing": { "additionalProperties": false, "description": "Contains information about cache prefreshing settings. When enabled, edge servers asynchronously refresh cached objects after a specified percentage of the object's TTL elapses.", "nullable": true, "type": "object", "required": [ "enabled" ], "properties": { "enabled": { "description": "Whether you enable cache prefreshing.", "type": "boolean" }, "value": { "description": "Percentage of TTL after which cache content will be refreshed. Need to be in the range of `0-99`.", "maximum": 99, "minimum": 0, "type": "integer" } }, "x-akamai": { "file-path": "schemas/preRefreshing.yaml" } }, "queryParamName": { "description": "The name of the query parameter that contains a GraphQL query in an incoming GET or POST request.", "type": "string" }, "serveStale": { "description": "Whether to serve stale responses when the origin is unreachable and content revalidation isn't possible.", "nullable": true, "type": "boolean" } }, "x-akamai": { "file-path": "schemas/graphQLSettingsDto.yaml" } } } } }, "400": { "description": "Some of user input is invalid.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "403": { "description": "User does not have permission to API endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "404": { "description": "This API endpoint doesn't exist.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the endpoint version.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/versionNumber-path.yaml" } }, { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "in": "path", "name": "apiEndPointId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/apiEndPointId-path.yaml" } } ] }, "/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/gzip": { "get": { "description": "Returns the GZIP compression settings configured for an endpoint version.", "operationId": "get-gzip-settings", "summary": "Get GZIP settings", "tags": [ "GZIP" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/get-gzip-settings" }, "responses": { "200": { "description": "The response shows current GZIP settings.", "content": { "application/json": { "example": { "compressResponse": "ALWAYS" }, "schema": { "additionalProperties": false, "description": "Contains information about GZIP compression settings configured for an endpoint. This feature ensures proper content compression for bandwidth savings. You can configure GZIP compression settings if the API Gateway product is in your contract.", "type": "object", "required": [ "compressResponse" ], "properties": { "compressResponse": { "default": "ALWAYS", "description": "The type of GZIP compression configuration that you select, either `ALWAYS` for compressing all responses without restrictions, `NEVER` for no GZIP compression, or `SAME_AS_ORIGIN` for the same compression rules as specified for your origin server using the `Content-Encoding` header.", "type": "string", "enum": [ "ALWAYS", "SAME_AS_ORIGIN", "NEVER" ] } }, "x-akamai": { "file-path": "schemas/gzipDto.yaml" } } } } }, "400": { "description": "Some of user input is invalid.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "403": { "description": "User does not have permission to API endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "404": { "description": "This API endpoint doesn't exist.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "put": { "description": "Updates the GZIP compression settings configured for an endpoint version.", "operationId": "put-gzip-settings", "summary": "Edit GZIP settings", "tags": [ "GZIP" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/put-gzip-settings" }, "requestBody": { "required": true, "content": { "application/json": { "example": { "compressResponse": "ALWAYS" }, "schema": { "additionalProperties": false, "description": "Contains information about GZIP compression settings configured for an endpoint. This feature ensures proper content compression for bandwidth savings. You can configure GZIP compression settings if the API Gateway product is in your contract.", "type": "object", "required": [ "compressResponse" ], "properties": { "compressResponse": { "default": "ALWAYS", "description": "The type of GZIP compression configuration that you select, either `ALWAYS` for compressing all responses without restrictions, `NEVER` for no GZIP compression, or `SAME_AS_ORIGIN` for the same compression rules as specified for your origin server using the `Content-Encoding` header.", "example": "{{compressResponse}}", "type": "string", "enum": [ "ALWAYS", "SAME_AS_ORIGIN", "NEVER" ] } }, "x-akamai": { "file-path": "schemas/gzipDto.yaml" } } } } }, "responses": { "200": { "description": "The response reflects your updated GZIP settings.", "content": { "application/json": { "example": { "compressResponse": "ALWAYS" }, "schema": { "additionalProperties": false, "description": "Contains information about GZIP compression settings configured for an endpoint. This feature ensures proper content compression for bandwidth savings. You can configure GZIP compression settings if the API Gateway product is in your contract.", "type": "object", "required": [ "compressResponse" ], "properties": { "compressResponse": { "default": "ALWAYS", "description": "The type of GZIP compression configuration that you select, either `ALWAYS` for compressing all responses without restrictions, `NEVER` for no GZIP compression, or `SAME_AS_ORIGIN` for the same compression rules as specified for your origin server using the `Content-Encoding` header.", "type": "string", "enum": [ "ALWAYS", "SAME_AS_ORIGIN", "NEVER" ] } }, "x-akamai": { "file-path": "schemas/gzipDto.yaml" } } } } }, "400": { "description": "Some of user input is invalid.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "403": { "description": "You don't have permission to access the API endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "404": { "description": "The required resource is not found.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the endpoint version.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/versionNumber-path.yaml" } }, { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "in": "path", "name": "apiEndPointId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/apiEndPointId-path.yaml" } } ] }, "/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/jwt": { "get": { "description": "Returns the JWT validation settings configured for an endpoint version and its assigned resources.", "operationId": "get-jwt-settings", "summary": "Get JWT settings", "tags": [ "JWT" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/get-jwt-settings" }, "responses": { "200": { "description": "The response shows the current JWT validation settings.", "content": { "application/json": { "example": { "enabled": true, "resources": { "2926712": { "enabled": true, "inheritsFromEndpoint": true, "notes": "A book item within the bookstore API.", "path": "/book/{bookId}", "methods": [ "POST", "GET" ] }, "2935128": { "enabled": true, "inheritsFromEndpoint": true, "notes": "A registered bookstore user.", "path": "/user/{userId}", "methods": [ "POST", "GET", "PUT" ] }, "2935139": { "enabled": true, "inheritsFromEndpoint": true, "notes": "A magazine item within the bookstore API.", "path": "/magazine/{magazineId}", "methods": [ "GET" ] } }, "settings": { "clockSkew": 10, "location": "HEADER", "paramName": "Authorization", "validation": { "rsaPublicKeyB": null, "rsaPublicKeyA": { "content": "-----BEGIN PUBLIC KEY-----\nMIIBIjwE9GQg+OR0WYHtq4AKsvK2eucDs06ejWRDb+uDN\n80jxZCxfweelZKvYT9Qdms/1SJv\nrQIDAQAB\n-----END PUBLIC KEY-----", "name": "publicKey" }, "claims": [ { "name": "aud", "required": false, "type": "ARRAY", "validate": false, "value": [] }, { "name": "iss", "required": false, "type": "STRING", "validate": true, "value": "Akamai" }, { "name": "sub", "required": false, "type": "REGEX", "validate": true, "value": "^[a-zA-Z0-9_]*$" }, { "name": "exp", "required": false, "type": "TIMESTAMP", "validate": true, "value": null }, { "name": "nbf", "required": false, "type": "TIMESTAMP", "validate": true, "value": null }, { "name": "dept", "required": false, "type": "STRING", "validate": true, "value": "IT" }, { "name": "roles", "required": false, "type": "ARRAY", "validate": true, "value": [ "admin", "premium_user", "regular_user" ] } ] } } }, "schema": { "additionalProperties": false, "description": "Contains information about JSON web token (JWT) validation settings configured for an endpoint. JWT is an open standard (RFC 7519) that defines a compact and self-contained method for securely transmitting JSON-encoded information between parties. It's often used for authentication purposes. You can configure JWT validation settings if the API Gateway product is in your contract.", "type": "object", "required": [ "enabled", "settings" ], "properties": { "enabled": { "description": "Whether you enabled JWT validation for the endpoint.", "type": "boolean" }, "resources": { "description": "Contains information about JWT validation settings for each resource assigned to an endpoint version. The resources are available through a map of `resourceId` keys.", "title": "The map of resource ID to settings.", "type": "object", "additionalProperties": { "additionalProperties": false, "description": "Contains information about JWT settings configured for a resource.", "type": "object", "required": [ "enabled" ], "properties": { "enabled": { "description": "Whether you enabled JWT validation for the resource.", "type": "boolean" }, "inheritsFromEndpoint": { "description": "Whether the resource inherits the top-level JWT settings.", "readOnly": true, "type": "boolean" }, "methods": { "description": "The methods assigned to the resource, either `POST`, `GET`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, or `PATCH`.", "readOnly": true, "type": "array", "items": { "type": "string", "enum": [ "HEAD", "DELETE", "POST", "GET", "OPTIONS", "PUT", "PATCH" ] } }, "notes": { "description": "The description of the resource.", "nullable": true, "readOnly": true, "type": "string" }, "path": { "description": "The URL path relative to the hostnames on which the resource resides.", "readOnly": true, "type": "string" } } }, "x-akamai": { "file-path": "schemas/resources-jwt.yaml" } }, "settings": { "additionalProperties": false, "description": "Contains information about endpoint-level JWT settings.", "type": "object", "required": [ "location", "paramName", "clockSkew", "validation" ], "properties": { "clockSkew": { "description": "The allowed time difference in seconds between the server and client clocks when validating the `exp` and `nbf` JWT claims. The recommended value is 10.", "type": "integer" }, "location": { "default": "HEADER", "description": "The location of the JWT in incoming requests, either `HEADER` for a request header, `COOKIE`, or `QUERY` for a query parameter.", "type": "string", "enum": [ "HEADER", "COOKIE", "QUERY" ] }, "paramName": { "description": "The name of the header, cookie, or query parameter that you specified for the JWT location.", "type": "string" }, "validation": { "additionalProperties": false, "description": "Contains information about the JWT validation details, such as RSA public keys and JWT claims.", "type": "object", "required": [ "rsaPublicKeyA" ], "properties": { "claims": { "description": "The collection of custom and reserved JWT claims that API Gateway validates in incoming requests. Reserved claims are predefined (as per [RFC 7519](https://tools.ietf.org/html/rfc7519)) and serve as a starting point for your JWT claim configuration. Custom claims refer to both private and public claims and you can define them at will. To prevent claim name collisions, you can register public claims at the [IANA JSON Web Token Claims registry](https://www.iana.org/assignments/jwt/jwt.xhtml) or give them collision-resistant names, such as universally unique identifiers (UUIDs) or object identifiers (OIDs). Private claims usually contain information specific to your organization, such as internal user ID. They're different from public claims as they're not registered at the [IANA JSON Web Token Claims registry](https://www.iana.org/assignments/jwt/jwt.xhtml), and you should use them with care.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "nullable": true, "type": "object", "required": [ "type", "required", "validate" ], "properties": { "name": { "description": "The name of the JWT claim. For reserved claims, it can either be `aud` to identify the audience for the JWT, `iss` to identify the issuer of the JWT claim, `sub` to identify the subject of the JWT, `exp` to identify the expiration time on or after which the token isn't accepted for processing, or `nbf` to identify the time before which the token isn't accepted for processing. For custom claims, you can use all alphanumeric characters and these characters: `[-_]`. The value isn't case-sensitive for reserved claims and case-sensitive for custom claims. For example, if you enter `AUD` for a value, the system automatically converts it to `aud`, but `scope` and `SCOPE` represent two different values.", "type": "string" }, "required": { "description": "Whether the JWT claim needs to be present in incoming requests.", "type": "boolean" }, "type": { "description": "The data type of the JWT claim's value, either `ARRAY`, `STRING`, `INTEGER`, `BOOLEAN`, or `REGEX` if it's a regular expression.", "type": "string", "enum": [ "ARRAY", "STRING", "REGEX", "INTEGER", "BOOLEAN" ] }, "validate": { "description": "Whether to validate the value of the JWT claim at the edge.", "type": "boolean" }, "value": { "oneOf": [ { "nullable": true, "title": "Array", "type": "array", "items": { "oneOf": [ { "title": "Array of strings", "type": "string" }, { "title": "Array of numbers", "type": "number" } ] } }, { "nullable": true, "title": "String", "type": "string" }, { "nullable": true, "title": "Boolean", "type": "boolean" }, { "nullable": true, "title": "Number", "type": "number" } ] } } } }, "jwks": { "additionalProperties": false, "description": "Contains information about a JSON web key set to load public keys from. Specify this object only if the corresponding `method` member is `JWKS`.", "nullable": true, "type": "object", "properties": { "certChain": { "additionalProperties": false, "description": "Contains information about a PEM file with the certificate to use for validation of hostnames included in the `hosts` member.", "nullable": true, "type": "object", "required": [ "name", "content" ], "properties": { "content": { "description": "The contents of the PEM file that contains the certificate.", "type": "string" }, "name": { "description": "The name of the PEM file that contains the certificate.", "type": "string" } } }, "hosts": { "description": "The list of hostnames that store JSON web key sets. You need to sign each hostname digitally with the certificate chain described in the corresponding `certChain` field.", "type": "array", "items": { "type": "string" } }, "jwksSetUrl": { "description": "URL that refers to a resource for a set of JSON-encoded public keys.", "format": "uri", "type": "string" }, "publicKeyMaxAge": { "additionalProperties": false, "description": "Contains information about the maximum duration to keep a public key in a cache.", "nullable": true, "type": "object", "required": [ "duration", "unit" ], "properties": { "duration": { "description": "The maximum duration of content caching in the selected unit of time.", "type": "integer" }, "unit": { "description": "The unit of time for content caching, either `DAYS`, `HOURS`, `MINUTES`, or `SECONDS`.", "type": "string", "enum": [ "SECONDS", "MINUTES", "HOURS", "DAYS" ] } }, "x-akamai": { "file-path": "schemas/durationDto.yaml" } } } }, "method": { "default": "INLINE_PUBLIC_KEY", "description": "The method of delivering RSA public keys for JWT validation. Either `INLINE_PUBLIC_KEY` for periodical manual uploads of public keys, or `JWKS` for a dynamic upload of public keys from specific JWKS URIs.", "nullable": true, "type": "string", "enum": [ "INLINE_PUBLIC_KEY", "JWKS" ] }, "rsaPublicKeyA": { "additionalProperties": false, "description": "Contains information about the primary RSA public key that you use for JWT validation. The value is `null` if the corresponding `method` member is `JWKS`.", "type": "object", "required": [ "name", "content" ], "properties": { "content": { "description": "The content of the file containing the primary RSA key.", "type": "string" }, "name": { "description": "The name of the file containing the primary RSA key.", "type": "string" } } }, "rsaPublicKeyB": { "additionalProperties": false, "description": "Contains information about the backup RSA public key for use during key rotations.", "nullable": true, "type": "object", "required": [ "name", "content" ], "properties": { "content": { "description": "The content of the file containing the backup RSA key.", "type": "string" }, "name": { "description": "The name of the file containing the backup RSA key.", "type": "string" } } }, "signingAlgorithm": { "description": "Algorithm used to sign tokens issued for your application or API. A signature is part of a JSON Web Token (JWT) and is used to verify that the sender of the token is who it says it is and to ensure that the message wasn't changed along the way.", "nullable": true, "type": "string", "enum": [ "RS256", "RS384", "ES256", "ES384" ] } } } } } }, "x-akamai": { "file-path": "schemas/jwtDto.yaml" } } } } }, "400": { "description": "Some of user input is invalid.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "403": { "description": "User does not have permission to API endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "404": { "description": "This API endpoint doesn't exist.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "put": { "description": "Updates the JWT validation settings configured for an endpoint version and its assigned resources.", "operationId": "put-jwt-settings", "summary": "Edit JWT settings", "tags": [ "JWT" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/put-jwt-settings" }, "requestBody": { "required": true, "content": { "application/json": { "example": { "enabled": true, "resources": { "2926712": { "enabled": true }, "2935128": { "enabled": true }, "2935139": { "enabled": true } }, "settings": { "clockSkew": 10, "location": "HEADER", "paramName": "Authorization", "validation": { "rsaPublicKeyB": null, "rsaPublicKeyA": { "content": "-----BEGIN PUBLIC KEY-----\nMIIBIjwE9GQg+OR0WYHtq4AKsvK2eucDs06ejWRDb+uDN\n80jxZCxfweelZKvYT9Qdms/1SJv\nrQIDAQAB\n-----END PUBLIC KEY-----", "name": "publicKey" }, "claims": [ { "name": "aud", "required": false, "type": "ARRAY", "validate": false, "value": [] }, { "name": "iss", "required": false, "type": "STRING", "validate": true, "value": "Akamai" }, { "name": "sub", "required": false, "type": "REGEX", "validate": true, "value": "^[a-zA-Z0-9_]*$" }, { "name": "exp", "required": false, "type": "TIMESTAMP", "validate": true, "value": null }, { "name": "nbf", "required": false, "type": "TIMESTAMP", "validate": true, "value": null }, { "name": "dept", "required": false, "type": "STRING", "validate": true, "value": "IT" }, { "name": "roles", "required": false, "type": "ARRAY", "validate": true, "value": [ "admin", "premium_user", "regular_user" ] } ] } } }, "schema": { "additionalProperties": false, "description": "Contains information about JSON web token (JWT) validation settings configured for an endpoint. JWT is an open standard (RFC 7519) that defines a compact and self-contained method for securely transmitting JSON-encoded information between parties. It's often used for authentication purposes. You can configure JWT validation settings if the API Gateway product is in your contract.", "type": "object", "required": [ "enabled", "settings" ], "properties": { "enabled": { "description": "Whether you enabled JWT validation for the endpoint.", "example": "{{enabled}}", "type": "boolean" }, "resources": { "description": "Contains information about JWT validation settings for each resource assigned to an endpoint version. The resources are available through a map of `resourceId` keys.", "title": "The map of resource ID to settings.", "type": "object", "additionalProperties": { "additionalProperties": false, "description": "Contains information about JWT settings configured for a resource.", "type": "object", "required": [ "enabled" ], "properties": { "enabled": { "description": "Whether you enabled JWT validation for the resource.", "type": "boolean" }, "inheritsFromEndpoint": { "description": "Whether the resource inherits the top-level JWT settings.", "readOnly": true, "type": "boolean" }, "methods": { "description": "The methods assigned to the resource, either `POST`, `GET`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, or `PATCH`.", "readOnly": true, "type": "array", "items": { "type": "string", "enum": [ "HEAD", "DELETE", "POST", "GET", "OPTIONS", "PUT", "PATCH" ] } }, "notes": { "description": "The description of the resource.", "nullable": true, "readOnly": true, "type": "string" }, "path": { "description": "The URL path relative to the hostnames on which the resource resides.", "readOnly": true, "type": "string" } } }, "x-akamai": { "file-path": "schemas/resources-jwt.yaml" } }, "settings": { "additionalProperties": false, "description": "Contains information about endpoint-level JWT settings.", "type": "object", "required": [ "location", "paramName", "clockSkew", "validation" ], "properties": { "clockSkew": { "description": "The allowed time difference in seconds between the server and client clocks when validating the `exp` and `nbf` JWT claims. The recommended value is 10.", "type": "integer" }, "location": { "default": "HEADER", "description": "The location of the JWT in incoming requests, either `HEADER` for a request header, `COOKIE`, or `QUERY` for a query parameter.", "type": "string", "enum": [ "HEADER", "COOKIE", "QUERY" ] }, "paramName": { "description": "The name of the header, cookie, or query parameter that you specified for the JWT location.", "type": "string" }, "validation": { "additionalProperties": false, "description": "Contains information about the JWT validation details, such as RSA public keys and JWT claims.", "type": "object", "required": [ "rsaPublicKeyA" ], "properties": { "claims": { "description": "The collection of custom and reserved JWT claims that API Gateway validates in incoming requests. Reserved claims are predefined (as per [RFC 7519](https://tools.ietf.org/html/rfc7519)) and serve as a starting point for your JWT claim configuration. Custom claims refer to both private and public claims and you can define them at will. To prevent claim name collisions, you can register public claims at the [IANA JSON Web Token Claims registry](https://www.iana.org/assignments/jwt/jwt.xhtml) or give them collision-resistant names, such as universally unique identifiers (UUIDs) or object identifiers (OIDs). Private claims usually contain information specific to your organization, such as internal user ID. They're different from public claims as they're not registered at the [IANA JSON Web Token Claims registry](https://www.iana.org/assignments/jwt/jwt.xhtml), and you should use them with care.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "nullable": true, "type": "object", "required": [ "type", "required", "validate" ], "properties": { "name": { "description": "The name of the JWT claim. For reserved claims, it can either be `aud` to identify the audience for the JWT, `iss` to identify the issuer of the JWT claim, `sub` to identify the subject of the JWT, `exp` to identify the expiration time on or after which the token isn't accepted for processing, or `nbf` to identify the time before which the token isn't accepted for processing. For custom claims, you can use all alphanumeric characters and these characters: `[-_]`. The value isn't case-sensitive for reserved claims and case-sensitive for custom claims. For example, if you enter `AUD` for a value, the system automatically converts it to `aud`, but `scope` and `SCOPE` represent two different values.", "type": "string" }, "required": { "description": "Whether the JWT claim needs to be present in incoming requests.", "type": "boolean" }, "type": { "description": "The data type of the JWT claim's value, either `ARRAY`, `STRING`, `INTEGER`, `BOOLEAN`, or `REGEX` if it's a regular expression.", "type": "string", "enum": [ "ARRAY", "STRING", "REGEX", "INTEGER", "BOOLEAN" ] }, "validate": { "description": "Whether to validate the value of the JWT claim at the edge.", "type": "boolean" }, "value": { "oneOf": [ { "nullable": true, "title": "Array", "type": "array", "items": { "oneOf": [ { "title": "Array of strings", "type": "string" }, { "title": "Array of numbers", "type": "number" } ] } }, { "nullable": true, "title": "String", "type": "string" }, { "nullable": true, "title": "Boolean", "type": "boolean" }, { "nullable": true, "title": "Number", "type": "number" } ] } } } }, "jwks": { "additionalProperties": false, "description": "Contains information about a JSON web key set to load public keys from. Specify this object only if the corresponding `method` member is `JWKS`.", "nullable": true, "type": "object", "properties": { "certChain": { "additionalProperties": false, "description": "Contains information about a PEM file with the certificate to use for validation of hostnames included in the `hosts` member.", "nullable": true, "type": "object", "required": [ "name", "content" ], "properties": { "content": { "description": "The contents of the PEM file that contains the certificate.", "type": "string" }, "name": { "description": "The name of the PEM file that contains the certificate.", "type": "string" } } }, "hosts": { "description": "The list of hostnames that store JSON web key sets. You need to sign each hostname digitally with the certificate chain described in the corresponding `certChain` field.", "type": "array", "items": { "type": "string" } }, "jwksSetUrl": { "description": "URL that refers to a resource for a set of JSON-encoded public keys.", "format": "uri", "type": "string" }, "publicKeyMaxAge": { "additionalProperties": false, "description": "Contains information about the maximum duration to keep a public key in a cache.", "nullable": true, "type": "object", "required": [ "duration", "unit" ], "properties": { "duration": { "description": "The maximum duration of content caching in the selected unit of time.", "type": "integer" }, "unit": { "description": "The unit of time for content caching, either `DAYS`, `HOURS`, `MINUTES`, or `SECONDS`.", "type": "string", "enum": [ "SECONDS", "MINUTES", "HOURS", "DAYS" ] } }, "x-akamai": { "file-path": "schemas/durationDto.yaml" } } } }, "method": { "default": "INLINE_PUBLIC_KEY", "description": "The method of delivering RSA public keys for JWT validation. Either `INLINE_PUBLIC_KEY` for periodical manual uploads of public keys, or `JWKS` for a dynamic upload of public keys from specific JWKS URIs.", "nullable": true, "type": "string", "enum": [ "INLINE_PUBLIC_KEY", "JWKS" ] }, "rsaPublicKeyA": { "additionalProperties": false, "description": "Contains information about the primary RSA public key that you use for JWT validation. The value is `null` if the corresponding `method` member is `JWKS`.", "type": "object", "required": [ "name", "content" ], "properties": { "content": { "description": "The content of the file containing the primary RSA key.", "type": "string" }, "name": { "description": "The name of the file containing the primary RSA key.", "type": "string" } } }, "rsaPublicKeyB": { "additionalProperties": false, "description": "Contains information about the backup RSA public key for use during key rotations.", "nullable": true, "type": "object", "required": [ "name", "content" ], "properties": { "content": { "description": "The content of the file containing the backup RSA key.", "type": "string" }, "name": { "description": "The name of the file containing the backup RSA key.", "type": "string" } } }, "signingAlgorithm": { "description": "Algorithm used to sign tokens issued for your application or API. A signature is part of a JSON Web Token (JWT) and is used to verify that the sender of the token is who it says it is and to ensure that the message wasn't changed along the way.", "nullable": true, "type": "string", "enum": [ "RS256", "RS384", "ES256", "ES384" ] } } } } } }, "x-akamai": { "file-path": "schemas/jwtDto.yaml" } } } } }, "responses": { "200": { "description": "The response reflects your updated JWT validation settings.", "content": { "application/json": { "example": { "enabled": true, "resources": { "2926712": { "enabled": true, "inheritsFromEndpoint": true, "notes": "A book item within the bookstore API.", "path": "/book/{bookId}", "methods": [ "POST", "GET" ] }, "2935128": { "enabled": true, "inheritsFromEndpoint": true, "notes": "A registered bookstore user.", "path": "/user/{userId}", "methods": [ "POST", "GET", "PUT" ] }, "2935139": { "enabled": true, "inheritsFromEndpoint": true, "notes": "A magazine item within the bookstore API.", "path": "/magazine/{magazineId}", "methods": [ "GET" ] } }, "settings": { "clockSkew": 10, "location": "HEADER", "paramName": "Authorization", "validation": { "rsaPublicKeyB": null, "rsaPublicKeyA": { "content": "-----BEGIN PUBLIC KEY-----\nMIIBIjwE9GQg+OR0WYHtq4AKsvK2eucDs06ejWRDb+uDN\n80jxZCxfweelZKvYT9Qdms/1SJv\nrQIDAQAB\n-----END PUBLIC KEY-----", "name": "publicKey" }, "claims": [ { "name": "aud", "required": false, "type": "ARRAY", "validate": false, "value": [] }, { "name": "iss", "required": false, "type": "STRING", "validate": true, "value": "Akamai" }, { "name": "sub", "required": false, "type": "REGEX", "validate": true, "value": "^[a-zA-Z0-9_]*$" }, { "name": "exp", "required": false, "type": "TIMESTAMP", "validate": true, "value": null }, { "name": "nbf", "required": false, "type": "TIMESTAMP", "validate": true, "value": null }, { "name": "dept", "required": false, "type": "STRING", "validate": true, "value": "IT" }, { "name": "roles", "required": false, "type": "ARRAY", "validate": true, "value": [ "admin", "premium_user", "regular_user" ] } ] } } }, "schema": { "additionalProperties": false, "description": "Contains information about JSON web token (JWT) validation settings configured for an endpoint. JWT is an open standard (RFC 7519) that defines a compact and self-contained method for securely transmitting JSON-encoded information between parties. It's often used for authentication purposes. You can configure JWT validation settings if the API Gateway product is in your contract.", "type": "object", "required": [ "enabled", "settings" ], "properties": { "enabled": { "description": "Whether you enabled JWT validation for the endpoint.", "type": "boolean" }, "resources": { "description": "Contains information about JWT validation settings for each resource assigned to an endpoint version. The resources are available through a map of `resourceId` keys.", "title": "The map of resource ID to settings.", "type": "object", "additionalProperties": { "additionalProperties": false, "description": "Contains information about JWT settings configured for a resource.", "type": "object", "required": [ "enabled" ], "properties": { "enabled": { "description": "Whether you enabled JWT validation for the resource.", "type": "boolean" }, "inheritsFromEndpoint": { "description": "Whether the resource inherits the top-level JWT settings.", "readOnly": true, "type": "boolean" }, "methods": { "description": "The methods assigned to the resource, either `POST`, `GET`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, or `PATCH`.", "readOnly": true, "type": "array", "items": { "type": "string", "enum": [ "HEAD", "DELETE", "POST", "GET", "OPTIONS", "PUT", "PATCH" ] } }, "notes": { "description": "The description of the resource.", "nullable": true, "readOnly": true, "type": "string" }, "path": { "description": "The URL path relative to the hostnames on which the resource resides.", "readOnly": true, "type": "string" } } }, "x-akamai": { "file-path": "schemas/resources-jwt.yaml" } }, "settings": { "additionalProperties": false, "description": "Contains information about endpoint-level JWT settings.", "type": "object", "required": [ "location", "paramName", "clockSkew", "validation" ], "properties": { "clockSkew": { "description": "The allowed time difference in seconds between the server and client clocks when validating the `exp` and `nbf` JWT claims. The recommended value is 10.", "type": "integer" }, "location": { "default": "HEADER", "description": "The location of the JWT in incoming requests, either `HEADER` for a request header, `COOKIE`, or `QUERY` for a query parameter.", "type": "string", "enum": [ "HEADER", "COOKIE", "QUERY" ] }, "paramName": { "description": "The name of the header, cookie, or query parameter that you specified for the JWT location.", "type": "string" }, "validation": { "additionalProperties": false, "description": "Contains information about the JWT validation details, such as RSA public keys and JWT claims.", "type": "object", "required": [ "rsaPublicKeyA" ], "properties": { "claims": { "description": "The collection of custom and reserved JWT claims that API Gateway validates in incoming requests. Reserved claims are predefined (as per [RFC 7519](https://tools.ietf.org/html/rfc7519)) and serve as a starting point for your JWT claim configuration. Custom claims refer to both private and public claims and you can define them at will. To prevent claim name collisions, you can register public claims at the [IANA JSON Web Token Claims registry](https://www.iana.org/assignments/jwt/jwt.xhtml) or give them collision-resistant names, such as universally unique identifiers (UUIDs) or object identifiers (OIDs). Private claims usually contain information specific to your organization, such as internal user ID. They're different from public claims as they're not registered at the [IANA JSON Web Token Claims registry](https://www.iana.org/assignments/jwt/jwt.xhtml), and you should use them with care.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "nullable": true, "type": "object", "required": [ "type", "required", "validate" ], "properties": { "name": { "description": "The name of the JWT claim. For reserved claims, it can either be `aud` to identify the audience for the JWT, `iss` to identify the issuer of the JWT claim, `sub` to identify the subject of the JWT, `exp` to identify the expiration time on or after which the token isn't accepted for processing, or `nbf` to identify the time before which the token isn't accepted for processing. For custom claims, you can use all alphanumeric characters and these characters: `[-_]`. The value isn't case-sensitive for reserved claims and case-sensitive for custom claims. For example, if you enter `AUD` for a value, the system automatically converts it to `aud`, but `scope` and `SCOPE` represent two different values.", "type": "string" }, "required": { "description": "Whether the JWT claim needs to be present in incoming requests.", "type": "boolean" }, "type": { "description": "The data type of the JWT claim's value, either `ARRAY`, `STRING`, `INTEGER`, `BOOLEAN`, or `REGEX` if it's a regular expression.", "type": "string", "enum": [ "ARRAY", "STRING", "REGEX", "INTEGER", "BOOLEAN" ] }, "validate": { "description": "Whether to validate the value of the JWT claim at the edge.", "type": "boolean" }, "value": { "oneOf": [ { "nullable": true, "title": "Array", "type": "array", "items": { "oneOf": [ { "title": "Array of strings", "type": "string" }, { "title": "Array of numbers", "type": "number" } ] } }, { "nullable": true, "title": "String", "type": "string" }, { "nullable": true, "title": "Boolean", "type": "boolean" }, { "nullable": true, "title": "Number", "type": "number" } ] } } } }, "jwks": { "additionalProperties": false, "description": "Contains information about a JSON web key set to load public keys from. Specify this object only if the corresponding `method` member is `JWKS`.", "nullable": true, "type": "object", "properties": { "certChain": { "additionalProperties": false, "description": "Contains information about a PEM file with the certificate to use for validation of hostnames included in the `hosts` member.", "nullable": true, "type": "object", "required": [ "name", "content" ], "properties": { "content": { "description": "The contents of the PEM file that contains the certificate.", "type": "string" }, "name": { "description": "The name of the PEM file that contains the certificate.", "type": "string" } } }, "hosts": { "description": "The list of hostnames that store JSON web key sets. You need to sign each hostname digitally with the certificate chain described in the corresponding `certChain` field.", "type": "array", "items": { "type": "string" } }, "jwksSetUrl": { "description": "URL that refers to a resource for a set of JSON-encoded public keys.", "format": "uri", "type": "string" }, "publicKeyMaxAge": { "additionalProperties": false, "description": "Contains information about the maximum duration to keep a public key in a cache.", "nullable": true, "type": "object", "required": [ "duration", "unit" ], "properties": { "duration": { "description": "The maximum duration of content caching in the selected unit of time.", "type": "integer" }, "unit": { "description": "The unit of time for content caching, either `DAYS`, `HOURS`, `MINUTES`, or `SECONDS`.", "type": "string", "enum": [ "SECONDS", "MINUTES", "HOURS", "DAYS" ] } }, "x-akamai": { "file-path": "schemas/durationDto.yaml" } } } }, "method": { "default": "INLINE_PUBLIC_KEY", "description": "The method of delivering RSA public keys for JWT validation. Either `INLINE_PUBLIC_KEY` for periodical manual uploads of public keys, or `JWKS` for a dynamic upload of public keys from specific JWKS URIs.", "nullable": true, "type": "string", "enum": [ "INLINE_PUBLIC_KEY", "JWKS" ] }, "rsaPublicKeyA": { "additionalProperties": false, "description": "Contains information about the primary RSA public key that you use for JWT validation. The value is `null` if the corresponding `method` member is `JWKS`.", "type": "object", "required": [ "name", "content" ], "properties": { "content": { "description": "The content of the file containing the primary RSA key.", "type": "string" }, "name": { "description": "The name of the file containing the primary RSA key.", "type": "string" } } }, "rsaPublicKeyB": { "additionalProperties": false, "description": "Contains information about the backup RSA public key for use during key rotations.", "nullable": true, "type": "object", "required": [ "name", "content" ], "properties": { "content": { "description": "The content of the file containing the backup RSA key.", "type": "string" }, "name": { "description": "The name of the file containing the backup RSA key.", "type": "string" } } }, "signingAlgorithm": { "description": "Algorithm used to sign tokens issued for your application or API. A signature is part of a JSON Web Token (JWT) and is used to verify that the sender of the token is who it says it is and to ensure that the message wasn't changed along the way.", "nullable": true, "type": "string", "enum": [ "RS256", "RS384", "ES256", "ES384" ] } } } } } }, "x-akamai": { "file-path": "schemas/jwtDto.yaml" } } } } }, "400": { "description": "Some of user input is invalid.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "403": { "description": "User does not have permission to API endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "404": { "description": "This API endpoint doesn't exist.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the endpoint version.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/versionNumber-path.yaml" } }, { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "in": "path", "name": "apiEndPointId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/apiEndPointId-path.yaml" } } ] }, "/endpoints/{apiEndPointId}/versions/{versionNumber}/settings/routing": { "get": { "description": "Returns the incoming request's routing, forwarding, and SureRoute settings configured for an endpoint version. You can run this operation if you're taking part in the API Gateway beta program.", "operationId": "get-routing-settings", "summary": "Get routing settings", "tags": [ "Routing" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/get-routing-settings" }, "responses": { "200": { "description": "The response shows the current routing settings.", "content": { "application/json": { "example": { "rules": [ { "customForwardPath": null, "description": null, "forwardHostHeader": null, "forwardPath": "DEFAULT_PATH", "forwardPort": null, "name": "/test.html", "origin": "rapidzik.hereokuapp.com", "conditions": [ { "operator": "IS", "type": "METHOD", "value": "GET" }, { "operator": "IS", "type": "HOSTNAME", "value": "*.www.sqa.rapid.com" } ] } ], "sureRoute": [ { "forceSslForward": false, "origin": "rapidzik.hereokuapp.com", "raceKey": "some-custom-key.com", "raceKeyMode": "CUSTOM", "testObjectPath": "/test.html", "raceStatTtl": { "duration": 30, "unit": "MINUTES" } } ] }, "schema": { "additionalProperties": false, "description": "Contains information about an incoming request's routing settings configured for an endpoint. Routing settings specify routing, forwarding, and SureRoute instructions for an endpoint version. You can configure routing settings if the API Gateway product is in your contract and you're taking part in the API Gateway beta program.", "type": "object", "properties": { "rules": { "description": "Routing Rules.", "type": "array", "items": { "additionalProperties": false, "description": "Consists of criteria that identifies which incoming requests to process for an endpoint.", "type": "object", "required": [ "name", "origin", "forwardPath", "conditions" ], "properties": { "conditions": { "description": "A set of criteria that determines the action the API takes when an incoming request for an endpoint meets the criteria.", "type": "array", "items": { "additionalProperties": false, "type": "object", "properties": { "operator": { "description": "Compares the incoming request to the `type` and `value` members. The only value currently available is `IS`.", "type": "string", "enum": [ "IS" ] }, "type": { "description": "Specifies the query string value to match. Use `RESOURCE` to match on a resource like JSON or XML. Use `METHOD` to match on the request method in the request header. Use `HOSTNAME` to match on the hostname in the request's incoming `Host` header.", "type": "string", "enum": [ "RESOURCE", "METHOD", "HOSTNAME" ] }, "value": { "description": "Specifies the string you're trying to match. For flexible URL path matching, use `*` and `?`.", "oneOf": [ { "title": "String", "type": "string" }, { "title": "Number", "type": "number" } ] } } } }, "customForwardPath": { "description": "Specifies the request's new forward path when the `forwardPath` value is `CUSTOM_PATH`.", "nullable": true, "type": "string" }, "description": { "description": "Descriptive text for the rule.", "nullable": true, "type": "string" }, "forwardHostHeader": { "description": "Specifies the request's new host header.", "nullable": true, "type": "string" }, "forwardPath": { "description": "Specifies the request's forward path mode, either `CUSTOM_PATH` or `DEFAULT_PATH`.", "type": "string", "enum": [ "DEFAULT_PATH", "CUSTOM_PATH" ] }, "forwardPort": { "description": "Specifies the request's new port number.", "nullable": true, "type": "number" }, "name": { "description": "A unique identifier for the rule.", "type": "string" }, "origin": { "description": "Specifies the request's new origin server destination.", "type": "string" } }, "x-akamai": { "file-path": "schemas/routing-rule.yaml" } } }, "sureRoute": { "description": "Sure Route Definitions.", "type": "array", "items": { "additionalProperties": false, "description": "Specifies the SureRoute settings configured for an endpoint.", "type": "object", "required": [ "origin", "testObjectPath", "forceSslForward" ], "properties": { "forceSslForward": { "description": "Forces SureRoute to use SSL when requesting the test object from your alternate origin server. Set the value to `true` when the origin doesn't respond to HTTP requests or responds with a redirect to HTTPS.", "type": "boolean" }, "origin": { "description": "Specifies the origin server where the SureRoute definitions are applied.", "type": "string" }, "raceKey": { "description": "Specifies a custom key to store race results.", "nullable": true, "type": "string" }, "raceKeyMode": { "description": "Specifies which hostname to use to store race results. Either `DEFAULT` for the race destination's hostname or `CUSTOM` for a custom hostname.", "nullable": true, "type": "string", "enum": [ "DEFAULT", "CUSTOM" ] }, "raceStatTtl": { "additionalProperties": false, "description": "Specifies the TTL to hold the SureRoute race results. Races only run when certain thresholds exceed their limit. If traffic drops below the thresholds, the edge server continues to use the last race results to determine the optimal route until this TTL expires. When traffic next increases over the thresholds, the edge server uses the direct route until SureRoute determines a new optimal route.", "nullable": true, "type": "object", "required": [ "duration", "unit" ], "properties": { "duration": { "description": "The maximum duration of content caching in the selected unit of time.", "type": "integer" }, "unit": { "description": "The unit of time for content caching, either `DAYS`, `HOURS`, `MINUTES`, or `SECONDS`.", "type": "string", "enum": [ "SECONDS", "MINUTES", "HOURS", "DAYS" ] } }, "x-akamai": { "file-path": "schemas/durationDto.yaml" } }, "testObjectPath": { "description": "Specifies the test object's path on your alternate origin server. SureRoute uses this path in races to test routes. For example, `/akamai/testobject.html`.", "nullable": true, "type": "string" } }, "x-akamai": { "file-path": "schemas/routing-sure-route.yaml" } } } }, "x-akamai": { "file-path": "schemas/routingSettingsDto.yaml" } } } } }, "400": { "description": "Some of user input is invalid.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "403": { "description": "User does not have permission to API endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "404": { "description": "The API endpoint doesn't exist.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "put": { "description": "Updates the incoming request's routing, forwarding, and SureRoute settings configured for an endpoint version. You can run this operation if you're taking part in the API Gateway beta program.", "operationId": "put-routing-settings", "summary": "Edit routing settings", "tags": [ "Routing" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/put-routing-settings" }, "requestBody": { "required": true, "content": { "application/json": { "example": { "rules": [ { "customForwardPath": null, "description": null, "forwardHostHeader": null, "forwardPath": "DEFAULT_PATH", "forwardPort": null, "name": "/test.html", "origin": "rapidzik.hereokuapp.com", "conditions": [ { "operator": "IS", "type": "METHOD", "value": "GET" }, { "operator": "IS", "type": "HOSTNAME", "value": "*.www.sqa.rapid.com" } ] } ], "sureRoute": [ { "forceSslForward": false, "origin": "rapidzik.hereokuapp.com", "raceKey": "some-custom-key.com", "raceKeyMode": "CUSTOM", "testObjectPath": "/test.html", "raceStatTtl": { "duration": 30, "unit": "MINUTES" } } ] }, "schema": { "additionalProperties": false, "description": "Contains information about an incoming request's routing settings configured for an endpoint. Routing settings specify routing, forwarding, and SureRoute instructions for an endpoint version. You can configure routing settings if the API Gateway product is in your contract and you're taking part in the API Gateway beta program.", "type": "object", "properties": { "rules": { "description": "Routing Rules.", "type": "array", "items": { "additionalProperties": false, "description": "Consists of criteria that identifies which incoming requests to process for an endpoint.", "type": "object", "required": [ "name", "origin", "forwardPath", "conditions" ], "properties": { "conditions": { "description": "A set of criteria that determines the action the API takes when an incoming request for an endpoint meets the criteria.", "type": "array", "items": { "additionalProperties": false, "type": "object", "properties": { "operator": { "description": "Compares the incoming request to the `type` and `value` members. The only value currently available is `IS`.", "type": "string", "enum": [ "IS" ] }, "type": { "description": "Specifies the query string value to match. Use `RESOURCE` to match on a resource like JSON or XML. Use `METHOD` to match on the request method in the request header. Use `HOSTNAME` to match on the hostname in the request's incoming `Host` header.", "type": "string", "enum": [ "RESOURCE", "METHOD", "HOSTNAME" ] }, "value": { "description": "Specifies the string you're trying to match. For flexible URL path matching, use `*` and `?`.", "oneOf": [ { "title": "String", "type": "string" }, { "title": "Number", "type": "number" } ] } } } }, "customForwardPath": { "description": "Specifies the request's new forward path when the `forwardPath` value is `CUSTOM_PATH`.", "nullable": true, "type": "string" }, "description": { "description": "Descriptive text for the rule.", "nullable": true, "type": "string" }, "forwardHostHeader": { "description": "Specifies the request's new host header.", "nullable": true, "type": "string" }, "forwardPath": { "description": "Specifies the request's forward path mode, either `CUSTOM_PATH` or `DEFAULT_PATH`.", "type": "string", "enum": [ "DEFAULT_PATH", "CUSTOM_PATH" ] }, "forwardPort": { "description": "Specifies the request's new port number.", "nullable": true, "type": "number" }, "name": { "description": "A unique identifier for the rule.", "type": "string" }, "origin": { "description": "Specifies the request's new origin server destination.", "type": "string" } }, "x-akamai": { "file-path": "schemas/routing-rule.yaml" } } }, "sureRoute": { "description": "Sure Route Definitions.", "type": "array", "items": { "additionalProperties": false, "description": "Specifies the SureRoute settings configured for an endpoint.", "type": "object", "required": [ "origin", "testObjectPath", "forceSslForward" ], "properties": { "forceSslForward": { "description": "Forces SureRoute to use SSL when requesting the test object from your alternate origin server. Set the value to `true` when the origin doesn't respond to HTTP requests or responds with a redirect to HTTPS.", "type": "boolean" }, "origin": { "description": "Specifies the origin server where the SureRoute definitions are applied.", "type": "string" }, "raceKey": { "description": "Specifies a custom key to store race results.", "nullable": true, "type": "string" }, "raceKeyMode": { "description": "Specifies which hostname to use to store race results. Either `DEFAULT` for the race destination's hostname or `CUSTOM` for a custom hostname.", "nullable": true, "type": "string", "enum": [ "DEFAULT", "CUSTOM" ] }, "raceStatTtl": { "additionalProperties": false, "description": "Specifies the TTL to hold the SureRoute race results. Races only run when certain thresholds exceed their limit. If traffic drops below the thresholds, the edge server continues to use the last race results to determine the optimal route until this TTL expires. When traffic next increases over the thresholds, the edge server uses the direct route until SureRoute determines a new optimal route.", "nullable": true, "type": "object", "required": [ "duration", "unit" ], "properties": { "duration": { "description": "The maximum duration of content caching in the selected unit of time.", "type": "integer" }, "unit": { "description": "The unit of time for content caching, either `DAYS`, `HOURS`, `MINUTES`, or `SECONDS`.", "type": "string", "enum": [ "SECONDS", "MINUTES", "HOURS", "DAYS" ] } }, "x-akamai": { "file-path": "schemas/durationDto.yaml" } }, "testObjectPath": { "description": "Specifies the test object's path on your alternate origin server. SureRoute uses this path in races to test routes. For example, `/akamai/testobject.html`.", "nullable": true, "type": "string" } }, "x-akamai": { "file-path": "schemas/routing-sure-route.yaml" } } } }, "x-akamai": { "file-path": "schemas/routingSettingsDto.yaml" } } } } }, "responses": { "200": { "description": "The response reflects your updated routing settings.", "content": { "application/json": { "example": { "bodyParamName": "body-param-name", "cacheOrigin": false, "cacheResponseOnError": null, "detectError": false, "enabled": true, "maxQuerySize": null, "nestingLevel": null, "queryParamName": "query-param-name", "serveStale": null, "downstreamCaching": { "headers": "SAME_AS_ORIGIN", "lifetime": "SMALLER_VALUE", "markAsPrivate": false, "option": "ALLOW_CACHING" }, "maxAge": { "duration": 420, "unit": "HOURS" }, "preRefreshing": { "enabled": true, "value": 50 } }, "schema": { "additionalProperties": false, "description": "Contains information about an incoming request's routing settings configured for an endpoint. Routing settings specify routing, forwarding, and SureRoute instructions for an endpoint version. You can configure routing settings if the API Gateway product is in your contract and you're taking part in the API Gateway beta program.", "type": "object", "properties": { "rules": { "description": "Routing Rules.", "type": "array", "items": { "additionalProperties": false, "description": "Consists of criteria that identifies which incoming requests to process for an endpoint.", "type": "object", "required": [ "name", "origin", "forwardPath", "conditions" ], "properties": { "conditions": { "description": "A set of criteria that determines the action the API takes when an incoming request for an endpoint meets the criteria.", "type": "array", "items": { "additionalProperties": false, "type": "object", "properties": { "operator": { "description": "Compares the incoming request to the `type` and `value` members. The only value currently available is `IS`.", "type": "string", "enum": [ "IS" ] }, "type": { "description": "Specifies the query string value to match. Use `RESOURCE` to match on a resource like JSON or XML. Use `METHOD` to match on the request method in the request header. Use `HOSTNAME` to match on the hostname in the request's incoming `Host` header.", "type": "string", "enum": [ "RESOURCE", "METHOD", "HOSTNAME" ] }, "value": { "description": "Specifies the string you're trying to match. For flexible URL path matching, use `*` and `?`.", "oneOf": [ { "title": "String", "type": "string" }, { "title": "Number", "type": "number" } ] } } } }, "customForwardPath": { "description": "Specifies the request's new forward path when the `forwardPath` value is `CUSTOM_PATH`.", "nullable": true, "type": "string" }, "description": { "description": "Descriptive text for the rule.", "nullable": true, "type": "string" }, "forwardHostHeader": { "description": "Specifies the request's new host header.", "nullable": true, "type": "string" }, "forwardPath": { "description": "Specifies the request's forward path mode, either `CUSTOM_PATH` or `DEFAULT_PATH`.", "type": "string", "enum": [ "DEFAULT_PATH", "CUSTOM_PATH" ] }, "forwardPort": { "description": "Specifies the request's new port number.", "nullable": true, "type": "number" }, "name": { "description": "A unique identifier for the rule.", "type": "string" }, "origin": { "description": "Specifies the request's new origin server destination.", "type": "string" } }, "x-akamai": { "file-path": "schemas/routing-rule.yaml" } } }, "sureRoute": { "description": "Sure Route Definitions.", "type": "array", "items": { "additionalProperties": false, "description": "Specifies the SureRoute settings configured for an endpoint.", "type": "object", "required": [ "origin", "testObjectPath", "forceSslForward" ], "properties": { "forceSslForward": { "description": "Forces SureRoute to use SSL when requesting the test object from your alternate origin server. Set the value to `true` when the origin doesn't respond to HTTP requests or responds with a redirect to HTTPS.", "type": "boolean" }, "origin": { "description": "Specifies the origin server where the SureRoute definitions are applied.", "type": "string" }, "raceKey": { "description": "Specifies a custom key to store race results.", "nullable": true, "type": "string" }, "raceKeyMode": { "description": "Specifies which hostname to use to store race results. Either `DEFAULT` for the race destination's hostname or `CUSTOM` for a custom hostname.", "nullable": true, "type": "string", "enum": [ "DEFAULT", "CUSTOM" ] }, "raceStatTtl": { "additionalProperties": false, "description": "Specifies the TTL to hold the SureRoute race results. Races only run when certain thresholds exceed their limit. If traffic drops below the thresholds, the edge server continues to use the last race results to determine the optimal route until this TTL expires. When traffic next increases over the thresholds, the edge server uses the direct route until SureRoute determines a new optimal route.", "nullable": true, "type": "object", "required": [ "duration", "unit" ], "properties": { "duration": { "description": "The maximum duration of content caching in the selected unit of time.", "type": "integer" }, "unit": { "description": "The unit of time for content caching, either `DAYS`, `HOURS`, `MINUTES`, or `SECONDS`.", "type": "string", "enum": [ "SECONDS", "MINUTES", "HOURS", "DAYS" ] } }, "x-akamai": { "file-path": "schemas/durationDto.yaml" } }, "testObjectPath": { "description": "Specifies the test object's path on your alternate origin server. SureRoute uses this path in races to test routes. For example, `/akamai/testobject.html`.", "nullable": true, "type": "string" } }, "x-akamai": { "file-path": "schemas/routing-sure-route.yaml" } } } }, "x-akamai": { "file-path": "schemas/routingSettingsDto.yaml" } } } } }, "400": { "description": "Some of user input is invalid.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "403": { "description": "User does not have permission to API endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "404": { "description": "This API endpoint doesn't exist.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the endpoint version.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/versionNumber-path.yaml" } }, { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "in": "path", "name": "apiEndPointId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/apiEndPointId-path.yaml" } } ] }, "/endpoints/{apiEndPointId}/versions/{versionNumber}/show": { "post": { "description": "Reveals a hidden endpoint version. A revealed endpoint version appears in the [List versions](https://techdocs.akamai.com/api-definitions/reference/get-endpoint-versions) operation's response object with the `hidden` parameter set to `false`. Running this operation affects the version listing in the API Definitions user interface.", "operationId": "post-version-show", "summary": "Show a version", "tags": [ "Versions" ], "externalDocs": { "description": "See documentation for this operation in Akamai's API Endpoint Definition API", "url": "https://techdocs.akamai.com/api-definitions/reference/post-version-show" }, "responses": { "200": { "description": "Operation succeeded.", "content": { "application/json": { "example": { "akamaiSecurityRestrictions": null, "apiEndPointId": 492375, "apiEndPointLocked": false, "apiEndPointName": "Bookstore API", "apiEndPointScheme": "http/https", "apiGatewayEnabled": true, "basePath": "/bookstore", "caseSensitive": true, "clonedFromVersion": 1, "consumeType": "any", "contractId": "K-0N7RAK7", "createDate": "2019-06-12T13:06:52+0000", "createdBy": "mrossi", "description": "An API for bookstore users allowing them to retrieve book items, add new items (admin users), and modify existing items.", "endpointHidden": false, "graphQL": false, "groupId": 44681, "isGraphQL": false, "lockVersion": 2, "positiveConstrainsEnabled": null, "productionStatus": null, "protectedByApiKey": true, "responseConstraintsEnabled": false, "source": null, "stagingStatus": null, "updateDate": "2019-06-12T13:06:52+0000", "updatedBy": "bookstore_admin", "versionHidden": false, "versionNumber": 1, "apiCategoryIds": [ 2, 7 ], "apiEndPointHosts": [ "bookstore.api.akamai.com" ], "availableActions": [ "DELETE", "CLONE_ENDPOINT", "ACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING" ], "productionVersion": { "lastError": null, "status": null, "timestamp": null, "versionNumber": null }, "securityScheme": { "securitySchemeType": "apikey", "securitySchemeDetail": { "apiKeyLocation": "header", "apiKeyName": "apikey" } }, "stagingVersion": { "lastError": null, "status": null, "timestamp": null, "versionNumber": null }, "apiResources": [ { "apiResourceClonedFromId": null, "apiResourceId": 2926712, "apiResourceLogicId": 118435, "apiResourceName": "books", "createDate": "2019-06-12T13:06:52+0000", "createdBy": "mrossi", "description": "A book item within the bookstore API.", "link": null, "lockVersion": 2, "private": false, "resourcePath": "/books/{bookId}", "updateDate": "2019-06-12T13:06:52+0000", "updatedBy": "bookstore_admin", "apiResourceMethods": [ { "apiResourceMethod": "GET", "apiResourceMethodId": 341591, "apiResourceMethodLogicId": 184404, "apiParameters": [ { "apiParamLogicId": 578116, "apiParameterId": 1212945, "apiParameterLocation": "path", "apiParameterName": "bookId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterRestriction": null, "apiParameterType": "string", "apiResourceMethParamId": 494448, "array": false, "pathParamLocationId": null, "response": false, "apiChildParameters": [] } ] }, { "apiResourceMethod": "POST", "apiResourceMethodId": 341592, "apiResourceMethodLogicId": 184405, "apiParameters": [ { "apiParamLogicId": 578117, "apiParameterId": 1212946, "apiParameterLocation": "path", "apiParameterName": "bookId", "apiParameterNotes": null, "apiParameterRequired": true, "apiParameterType": "string", "apiResourceMethParamId": 494449, "array": false, "pathParamLocationId": null, "response": false, "apiChildParameters": [], "apiParameterRestriction": { "arrayRestriction": null, "numberRangeRestriction": null, "rangeRestriction": null, "xmlConversionRule": null, "lengthRestriction": { "lengthMax": 15, "lengthMin": 3 } } } ] } ] } ] }, "schema": { "additionalProperties": false, "description": "Contains information about an endpoint and its associated resources.", "type": "object", "required": [ "apiEndPointName", "apiEndPointHosts", "groupId", "contractId", "lockVersion" ], "properties": { "akamaiSecurityRestrictions": { "additionalProperties": false, "description": "Contains information about the Kona Site Defender security restrictions that you apply to an API. Note that you should only include these details in your requests if you're a Kona Site Defender customer.", "nullable": true, "type": "object", "properties": { "ALLOW_ONLY_SPEC_UNDEFINED_METHODS": { "description": "Whether the API allows requests on undefined resources, but only for specific methods. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_BODY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in body. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_COOKIE_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in cookies. These booleans override members in the Method object. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_HEADER_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in header. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_DELETE": { "description": "Whether the API allows requests on undefined resources using the DELETE method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_GET": { "description": "Whether the API allows requests on undefined resources using the GET method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_HEAD": { "description": "Whether the API allows requesting undefined resources using HEAD method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_OPTIONS": { "description": "Whether the API allows requesting undefined resources using OPTIONS method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PATCH": { "description": "Whether the API allows requesting undefined resources using PATCH method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_POST": { "description": "Whether the API allows requests on undefined resources using the POST method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_METHOD_PUT": { "description": "Whether the API allows requests on undefined resources using the PUT method. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_PARAMS": { "description": "Whether the API allows requesting with undefined parameters. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_QUERY_PARAMS": { "description": "Whether the API allows for requests with undefined parameters in query string. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_RESOURCES": { "description": "Whether the API allows requests on undefined resources. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "ALLOW_UNDEFINED_SPEC_PARAMS": { "description": "Whether the API allows requesting undefined resources, but only for specific locations. Either `1` or `0` for yes or no.", "type": "integer", "enum": [ 0, 1 ] }, "MAX_BODY_SIZE": { "description": "The maximum allowed size of a request body.", "nullable": true, "type": "integer" }, "MAX_DOC_DEPTH": { "description": "The maximum depth of nested data elements allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_ELEMENT_NAME_LENGTH": { "description": "The maximum length of an XML element name or JSON object key name allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_INTEGER_VALUE": { "description": "The maximum integer value allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_JSONXML_ELEMENT": { "description": "The maximum number of XML elements, JSON object keys, or array items allowed in a request body.", "nullable": true, "type": "integer" }, "MAX_STRING_LENGTH": { "description": "The maximum length of any string value in a request body.", "nullable": true, "type": "integer" }, "POSITIVE_SECURITY_ENABLED": { "description": "Whether to enforce the API request body and resource constraints as allowlists in your KSD security policies. Either `1` for enabled security constraints, or `0` for disabled.", "type": "integer", "enum": [ 0, 1 ] }, "POSITIVE_SECURITY_VERSION": { "description": "Whether to create the API with API Protection 2 or above. Either `1`, `2` for enabled API Protection 2, or `null` for the legacy API.", "nullable": true, "type": "integer", "enum": [ 1, 2 ] }, "RESPONSE_RESTRICTIONS_ENABLED": { "description": "When set to `1`, the API allows for responses with undefined parameters in the response body. Otherwise the value is `0`.", "type": "integer", "enum": [ 0, 1 ] } } }, "apiCategoryIds": { "description": "The category identifiers that apply to the endpoint. The value is `null` for uncategorized endpoints.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "apiEndPointHosts": { "description": "The hostnames that may receive traffic for the endpoint. You need at least one hostname before activating the endpoint.", "minItems": 1, "type": "array", "items": { "type": "string" } }, "apiEndPointId": { "description": "The unique identifier for the endpoint.", "nullable": true, "readOnly": true, "type": "integer" }, "apiEndPointLocked": { "description": "Whether the endpoint version is read-only.", "nullable": true, "readOnly": true, "type": "boolean" }, "apiEndPointName": { "description": "The name of the endpoint, unique within the account.", "type": "string" }, "apiEndPointScheme": { "description": "The URL scheme to which the endpoint may respond, either `http`, `https`, or `http/https` for both.", "nullable": true, "type": "string", "enum": [ "http", "https", "http/https" ] }, "apiEndPointVersion": { "description": "The unique identifier for the endpoint version.", "nullable": true, "readOnly": true, "type": "integer" }, "apiGatewayEnabled": { "default": true, "description": "Whether the API Gateway product should be enabled for the endpoint. If `null`, the member is set to `true`.", "nullable": true, "type": "boolean" }, "apiResources": { "description": "The list of resources assigned to the endpoint.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a resource assigned to an endpoint.", "type": "object", "required": [ "apiResourceName", "resourcePath" ], "properties": { "apiResourceClonedFromId": { "description": "For cloned resources, the unique identifier for the source resource.", "nullable": true, "type": "integer" }, "apiResourceId": { "description": "The unique identifier for the resource.", "type": "integer" }, "apiResourceLogicId": { "description": "The unique identifier for the resource across all endpoint versions.", "type": "integer" }, "apiResourceMethodNameLists": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "type": "string" } }, "apiResourceMethods": { "description": "The list of HTTP methods the resource may respond to.", "type": "array", "items": { "additionalProperties": false, "description": "Contains information about an HTTP method to which a resource may respond.", "type": "object", "required": [ "apiResourceMethod" ], "properties": { "apiParameters": { "description": "The list of parameter objects assigned to the method.", "nullable": true, "type": "array", "items": { "additionalProperties": false, "description": "Contains information about a method's parameter.", "type": "object", "required": [ "apiParameterName", "apiParameterType", "apiParameterRequired", "apiParameterLocation" ], "properties": { "apiChildParameters": { "description": "The collection of child JSON members or XML elements for JSON or XML body type parameters.", "type": "array", "items": { "description": "A further nested endpoint object.", "type": "object", "x-akamai": { "file-path": "schemas/apiParameterDto-nested.yaml" } } }, "apiParamLogicId": { "description": "The unique identifier for the parameter across all endpoint versions.", "readOnly": true, "type": "integer" }, "apiParameterContentType": { "description": "The content type of the parameter. Only applicable for top level body parameters.", "type": "string", "enum": [ "json", "xml", "urlencoded", "json/xml", "any", "none" ] }, "apiParameterId": { "description": "The unique identifier for the parameter.", "readOnly": true, "type": "integer" }, "apiParameterLocation": { "description": "The location of the parameter in an HTTP request, either `query`, `header`, `path`, `cookie`, or `body` for a JSON or XML body type parameter.", "type": "string", "enum": [ "query", "body", "header", "path", "cookie" ] }, "apiParameterName": { "description": "The name of the parameter. If the corresponding `apiParameterLocation` is `path`, ensure that this value matches the parameter name you specified in the `resourcePath`.", "type": "string" }, "apiParameterNotes": { "description": "The description to clarify the parameter's function. If you specify an empty string in the request or omit this member from the object, the JSON response reflects it as `null`.", "nullable": true, "type": "string" }, "apiParameterRequired": { "description": "Specifies whether the API user needs to specify the parameter. If the corresponding `apiParameterLocation` is `path`, set this member to `true`.", "type": "boolean" }, "apiParameterRestriction": { "additionalProperties": false, "description": "Contains information about restrictions and XML representation rules specified for the parameter.", "nullable": true, "type": "object", "properties": { "arrayRestriction": { "additionalProperties": false, "description": "Contains information about array restrictions for array type parameters. Define this object only if you enabled the corresponding `array` member.", "nullable": true, "type": "object", "properties": { "collectionFormat": { "default": "csv", "description": "The format of the array that specifies how you separated array values, either the default `csv` for comma separated values, `ssv` for space separated values, `tsv` for tab separated values, `pipes` for pipe separated values, or `multi` for several parameter instances instead of several values for a single instance.", "type": "string", "enum": [ "csv", "ssv", "tsv", "pipes", "multi" ] }, "maxItems": { "description": "The maximum allowed number of array items.", "type": "integer" }, "minItems": { "description": "The minimum allowed number of array items.", "type": "integer" }, "uniqueItems": { "description": "Whether the array contains only unique items.", "type": "boolean" } } }, "lengthRestriction": { "additionalProperties": false, "description": "Contains information about length restrictions for string type parameters.", "nullable": true, "type": "object", "properties": { "lengthMax": { "description": "The maximum allowed number of characters in the string.", "nullable": true, "type": "integer" }, "lengthMin": { "description": "The minimum allowed number of characters in the string.", "nullable": true, "type": "integer" } } }, "numberRangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for number type parameters.", "nullable": true, "type": "object", "properties": { "numberRangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "number" }, "numberRangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "number" } } }, "rangeRestriction": { "additionalProperties": false, "description": "Contains information about range restrictions for integer type parameters.", "nullable": true, "type": "object", "properties": { "rangeMax": { "description": "The maximum range restriction.", "nullable": true, "type": "integer" }, "rangeMin": { "description": "The minimum range restriction.", "nullable": true, "type": "integer" } } }, "responseRestriction": { "additionalProperties": false, "type": "object", "properties": { "maxBodySize": { "description": "Limit how large the response body can be before tripping the firewall action. The default is `SIZE_6K`. You can choose `SIZE_8K`, `SIZE_12K`, or `NO_LIMIT`, which allows a response of any size.", "type": "string", "enum": [ "SIZE_6K", "SIZE_8K", "SIZE_12K", "NO_LIMIT" ] }, "statusCodes": { "description": "The response status codes to match to a particular response body format. A `null` or empty value means the response body definition applies to any response body.", "nullable": true, "type": "array", "items": { "type": "integer" } } } }, "xmlConversionRule": { "additionalProperties": false, "description": "Contains information about an XML representation of a JSON-encoded parameter.", "nullable": true, "type": "object", "properties": { "attribute": { "default": false, "description": "Whether the parameter should be represented as an attribute.", "type": "boolean" }, "name": { "description": "The name of the parameter in XML. By default, the XML name is the same as the parameter name specified in the API definition.", "type": "string" }, "namespace": { "description": "The XML namespace.", "type": "string" }, "prefix": { "description": "The prefix for the XML namespace.", "type": "string" }, "wrapped": { "default": false, "description": "Whether the parameter should be wrapped in a parent XML element.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/xmlRestrictionDto.yaml" } } } }, "apiParameterType": { "description": "The data type of the parameter, either `string`, `integer`, `number`, `boolean`, or `json/xml` for JSON or XML objects.", "type": "string", "enum": [ "string", "integer", "number", "boolean", "json/xml" ] }, "apiResourceMethParamId": { "description": "The unique identifier for the parameter's parent method.", "nullable": true, "readOnly": true, "type": "integer" }, "array": { "description": "Whether the parameter can express more than one value. This member is only applicable for `apiChildParameters` that you can specify if the corresponding `apiParameterLocation` is `body` and the `apiParameterType` is `json/xml`. If you enable this, also define the `arrayRestriction` member.", "type": "boolean" }, "pathParamLocationId": { "description": "The index of a segment that includes a path parameter in a resource path. For example, given a path `\\books\\{bookId}`, the `books` segment has index `0`, and the path parameter `{bookId}` has index `1`.", "nullable": true, "type": "number" }, "response": { "description": "Whether the parameter is within a response type.", "type": "boolean" } }, "x-akamai": { "file-path": "schemas/apiParameterDto.yaml" } } }, "apiResourceMethod": { "description": "The core HTTP method to which the resource may respond, either `GET`, `PUT`, `POST`, `DELETE`, `HEAD`, `PATCH`, or `OPTIONS`.", "type": "string", "enum": [ "GET", "PUT", "POST", "DELETE", "HEAD", "PATCH", "OPTIONS" ] }, "apiResourceMethodId": { "description": "The unique identifier for the resource's allowed method.", "nullable": true, "readOnly": true, "type": "integer" }, "apiResourceMethodLogicId": { "description": "The unique identifier for the resource's method across all endpoint versions.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiMethodParametersDto.yaml" } } }, "apiResourceName": { "description": "The name of the resource.", "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the resource.", "format": "date-time", "type": "string" }, "createdBy": { "description": "The identifier for the user who created the resource.", "type": "string" }, "description": { "description": "The description to clarify the resource's function within the API. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "type": "string" }, "link": { "description": "The location of the navigable resource within this API, for use by API clients.", "nullable": true, "type": "string" }, "lockVersion": { "description": "The identifier used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "type": "number" }, "private": { "description": "Whether the resource is private. API consumers can access private resources only if they identify with an appropriate API key.", "type": "boolean" }, "resourcePath": { "description": "The URL path relative to the hostnames on which the resource resides. When entering a resource path, you can use curly brackets (`{}`) to define path parameters (for example, `/path/{pathparam}`). If you decide to do so, ensure that the value of the `apiParameterName` member in the corresponding parameter definition matches the name that you specified in the resource path.", "type": "string" }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the resource.", "format": "date-time", "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the resource.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiResourceMethParamsDto.yaml" } } }, "apiSource": { "description": "Specifies if the API's data comes from `API_DISCOVERY` or was provided by the `USER`.", "nullable": true, "type": "string", "enum": [ "USER", "API_DISCOVERY" ] }, "apiVersionInfo": { "additionalProperties": false, "description": "Contains information about a major API version. This refers to REST API versioning and is a different concept than the endpoint configuration versions you create at Akamai.", "nullable": true, "type": "object", "required": [ "location" ], "properties": { "location": { "description": "The location of the API version value in an incoming request. Either `HEADER`, `BASE_PATH`, or `QUERY` parameter.", "type": "string", "enum": [ "HEADER", "BASE_PATH", "QUERY" ] }, "parameterName": { "description": "The name of the header or query parameter that includes the API version value. This is applicable only if the corresponding `location` member is either `HEADER` or `QUERY`.", "type": "string" }, "value": { "description": "The expected API version value in an incoming request.", "type": "string" } }, "x-akamai": { "file-path": "schemas/apiVersionInfo.yaml" } }, "availableActions": { "description": "The collection of available actions that you can perform on the endpoint depending on its versions' activation status. For possible values, see [Endpoint.availableActions values](#enumvalues2).", "minItems": 0, "nullable": true, "readOnly": true, "type": "array", "items": { "type": "string", "enum": [ "DELETE", "CLONE_ENDPOINT", "COMPARE_ENDPOINT", "COMPARE_AAG_SETTINGS", "COMPARE_RAPID_SETTINGS", "EDIT_ENDPOINT_DEFINITION", "ACTIVATE_ON_STAGING", "ACTIVATE_ON_PRODUCTION", "DEACTIVATE_ON_STAGING", "DEACTIVATE_ON_PRODUCTION", "HIDE_ENDPOINT", "SHOW_ENDPOINT" ] } }, "basePath": { "description": "The URL path that serves as a root prefix for all resources' `resourcePath` values. This is `/` if empty. Don't append a `/` character to the path. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "minLength": 0, "nullable": true, "type": "string" }, "caseSensitive": { "description": "Whether the URLs and parameters within the endpoint are case sensitive.", "nullable": true, "type": "boolean" }, "clonedFromVersion": { "description": "For cloned endpoints, the unique identifier for the source endpoint version.", "nullable": true, "readOnly": true, "type": "integer" }, "consumeType": { "description": "The content type the endpoint exchanges, either `json`, `xml`, `urlencoded`, `json/xml/urlencoded`, `json/urlencoded`, `json/xml`, or `xml/urlencoded` for multi-format APIs, `any`, or `none`. A `null` value is the same as a `none` string.", "nullable": true, "type": "string", "enum": [ "none", "json", "xml", "json/xml", "any", "urlencoded", "json/urlencoded", "xml/urlencoded", "json/xml/urlencoded" ] }, "contractId": { "description": "The unique identifier for the contract with Akamai under which you provisioned security and delivery settings for this API.", "nullable": true, "readOnly": true, "type": "string" }, "createDate": { "description": "The ISO 6801 timestamp indicating when you created the endpoint.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "createdBy": { "description": "The identifier for the user who created the endpoint.", "nullable": true, "readOnly": true, "type": "string" }, "description": { "description": "The description of the endpoint. If you specify `null` in the request or omit this member from the object, the JSON response reflects it as an empty string.", "nullable": true, "type": "string" }, "discoveredPiiIds": { "description": "The collection of personally identifiable information (PII) in your API parameters discovered by the network.", "nullable": true, "type": "array", "items": { "type": "integer" } }, "endpointHidden": { "description": "Specifies whether the endpoint is hidden. You cannot activate or delete versions of a hidden endpoint. If you want to do so, you first need to reveal the endpoint by running the [Show an endpoint](https://techdocs.akamai.com/api-definitions/reference/post-endpoint-show) operation.", "nullable": true, "readOnly": true, "type": "boolean" }, "groupId": { "description": "The unique identifier for the group in Control Center under which you provisioned security and delivery settings for this API.", "nullable": true, "readOnly": true, "type": "integer" }, "isGraphQL": { "description": "Whether the endpoint uses GraphQL to deliver structured content to clients.", "type": "boolean" }, "lockVersion": { "description": "The identifier for the last modification of an endpoint version, used for optimistic locking. See [Concurrency control](https://techdocs.akamai.com/api-definitions/reference/concurrency-control) for details.", "readOnly": true, "type": "integer" }, "matchPathSegmentParam": { "default": true, "description": "Whether or not to include path segment parameters in match criteria, like the `jsessionid` portion of `/ssocookie;jsessionid=434343`.", "nullable": true, "type": "boolean" }, "positiveConstrainsEnabled": { "description": "Specifies whether the KSD firewall policies are enabled for the endpoint.", "nullable": true, "type": "boolean" }, "productionStatus": { "description": "The version activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "productionVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the production network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "protectedByApiKey": { "description": "Whether you enabled API key protection for the endpoint version by making the version private.", "readOnly": true, "type": "boolean" }, "responseConstraintsEnabled": { "description": "Specifies whether response constraints are enforced for the endpoint. Note that if you enable response constraints but don't define the constraints, it behaves as if disabled.", "nullable": true, "readOnly": true, "type": "boolean" }, "securityScheme": { "additionalProperties": false, "description": "Contains information about the key with which users may access the endpoint.", "nullable": true, "type": "object", "properties": { "securitySchemeDetail": { "additionalProperties": false, "description": "Contains information about the location of the API key.", "type": "object", "properties": { "apiKeyLocation": { "description": "The location of the API key in incoming requests, either `cookie`, `header`, or `query` parameter.", "type": "string", "enum": [ "cookie", "header", "query" ] }, "apiKeyName": { "description": "The name of the header, query parameter, or cookie where you located the API key.", "type": "string" } } }, "securitySchemeType": { "description": "The type of security scheme implemented for the endpoint. The only valid value is `apikey`.", "type": "string", "enum": [ "apikey" ] } } }, "source": { "additionalProperties": false, "description": "Contains information about the import file used to create the endpoint.", "nullable": true, "readOnly": true, "type": "object", "properties": { "apiVersion": { "description": "The major version of the API defined in the import file.", "nullable": true, "readOnly": true, "type": "string" }, "specificationVersion": { "description": "The version of the import file's specification.", "example": "3.0.0", "nullable": true, "readOnly": true, "type": "string" }, "type": { "description": "The specification of the import file you uploaded to create the endpoint version. Either `SWAGGER` or `RAML`.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "SWAGGER", "RAML" ] } }, "x-akamai": { "file-path": "schemas/apiEndpointSourceDto.yaml" } }, "stagingStatus": { "description": "The version activation status on the staging network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version was once active but is now inactive, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "stagingVersion": { "additionalProperties": false, "description": "Contains information about an endpoint version's activation status on the staging network.", "nullable": true, "readOnly": true, "type": "object", "properties": { "lastError": { "additionalProperties": false, "description": "Contains information about the last failed activation of the endpoint version.", "nullable": true, "type": "object", "properties": { "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } } }, "status": { "description": "The activation status on the production network, either `PENDING` if the version contains changes that are being propagated to the network, `ACTIVE` if the version is active, `DEACTIVATED` if the version had been active once but has been deactivated, or `FAILED` if an activation or deactivation attempt for this version has failed. The value is `null` for versions that have never been activated on this network.", "nullable": true, "readOnly": true, "type": "string", "enum": [ "PENDING", "ACTIVE", "DEACTIVATED", "FAILED" ] }, "timestamp": { "description": "The ISO 6801 timestamp indicating the last update of the activation status.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "readOnly": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointVersionStatusDto.yaml" } }, "updateDate": { "description": "The ISO 6801 timestamp indicating when you last modified the endpoint.", "format": "date-time", "nullable": true, "readOnly": true, "type": "string" }, "updatedBy": { "description": "The identifier for the user who last modified the endpoint.", "nullable": true, "readOnly": true, "type": "string" }, "versionHidden": { "description": "Specifies whether the endpoint version is hidden. You cannot activate or delete hidden versions. If you want to do so, you first need to reveal the version by running the [Show a version](https://techdocs.akamai.com/api-definitions/reference/post-version-show) operation.", "nullable": true, "readOnly": true, "type": "boolean" }, "versionNumber": { "description": "The endpoint version number.", "nullable": true, "type": "integer" } }, "x-akamai": { "file-path": "schemas/apiEndpointWithResourceDto-recurse.yaml" } } } } }, "400": { "description": "Invalid data input.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } }, "403": { "description": "You don't have access to the endpoint.", "content": { "application/problem+json": { "schema": { "additionalProperties": false, "description": "Contains debugging information for error responses.", "type": "object", "properties": { "detail": { "description": "The detailed error message.", "type": "string" }, "errors": { "description": "The collection of nested error responses.", "type": "array", "items": { "additionalProperties": false, "description": "A further nested problem detail object.", "type": "object", "x-akamai": { "file-path": "schemas/httpProblemDetails-recurse.yaml" } } }, "instance": { "description": "The non-referenceable URL for the error instance.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749", "type": "string" }, "status": { "description": "The HTTP status code.", "example": 404, "type": "integer" }, "title": { "description": "The title of the error.", "example": "Not Found", "type": "string" }, "type": { "description": "The URL for the error type.", "example": "https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND", "type": "string" } }, "x-akamai": { "file-path": "schemas/httpProblemDetails.yaml" } } } } } }, "parameters": [ { "description": "For customers who manage more than one account, this [runs the operation from another account](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client). The Identity and Access Management API provides a [list of available account switch keys](https://techdocs.akamai.com/iam-api/reference/get-client-account-switch-keys).", "example": "{{accountSwitchKey}}", "in": "query", "name": "accountSwitchKey", "required": false, "schema": { "example": "1-5C0YLB:1-8BYUX", "type": "string" } } ] }, "parameters": [ { "description": "The unique identifier for the endpoint version.", "example": "{{versionNumber}}", "in": "path", "name": "versionNumber", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/versionNumber-path.yaml" } }, { "description": "The unique identifier for the endpoint.", "example": "{{apiEndPointId}}", "in": "path", "name": "apiEndPointId", "required": true, "schema": { "example": 1, "type": "integer" }, "x-akamai": { "file-path": "parameters/apiEndPointId-path.yaml" } } ] } }, "x-readme": { "samples-languages": [ "curl", "python", "node" ] }, "servers": [ { "url": "https://{hostname}/api-definitions/v2" } ] }