{ "openapi": "3.0.0", "externalDocs": { "description": "See documentation for Akamai's EdgeKV API", "url": "https://techdocs.akamai.com/edgekv/reference" }, "info": { "title": "Akamai: EdgeKV API", "version": "1", "license": { "name": "Apache 2.0", "url": "https://www.apache.org/licenses/LICENSE-2.0.html" } }, "paths": { "/auth/database": { "put": { "description": "Modify the default Data Access Policy setting that's applied for newly created namespaces. You need an additional Standard TLS Support contract entitlement to call this operation. By default for existing customers, `restrictDataAccess` is `true`, and `allowNamespacePolicyOverride` is `false`.", "operationId": "put-auth-database", "summary": "Akamai Modify the Default Data Access Policy", "tags": [ "Namespaces" ], "externalDocs": { "description": "See documentation for this operation in Akamai's EdgeKV API", "url": "https://techdocs.akamai.com/edgekv/reference/put-auth-database" }, "requestBody": { "content": { "application/json": { "example": { "dataAccessPolicy": { "allowNamespacePolicyOverride": false, "restrictDataAccess": true } }, "schema": { "description": "Represents an EdgeKV Data Access Policy.", "type": "object", "required": [ "dataAccessPolicy" ], "properties": { "dataAccessPolicy": { "additionalProperties": false, "description": "Data Access Policy properties effective for new namespaces created in the database.", "nullable": true, "type": "object", "required": [ "restrictDataAccess", "allowNamespacePolicyOverride" ], "properties": { "allowNamespacePolicyOverride": { "description": "Overrides the default database Data Access Policy when creating a new namespace. A value of `true` indicates that the database Data Access Policy can be overridden when a namespace is created. A value of `false` prevents new namespaces from overriding the default Data Access Policy setting.", "type": "boolean" }, "restrictDataAccess": { "description": "Set Data Access Policy to apply for new namespaces by default. A value of `true` indicates newly created namespaces will only be accessible on Akamai's enhanced secure network. A value of `false` enables access in both the enhanced secure network and the standard secured network. You need a special Standard TLS Support contract entitlement for this value to be set to `false`.", "type": "boolean" } } } }, "x-akamai": { "file-path": "schemas/initialize-put.yaml" } } } } }, "responses": { "200": { "description": "Returns current initialization status.", "content": { "application/json": { "example": { "accountStatus": "INITIALIZED", "cpcode": "1234567", "productionStatus": "INITIALIZED", "stagingStatus": "INITIALIZED", "dataAccessPolicy": { "allowNamespacePolicyOverride": false, "restrictDataAccess": true } }, "schema": { "additionalProperties": false, "description": "Lists properties related to EdgeKV initialization.", "type": "object", "x-akamai": { "file-path": "schemas/initialize-200.yaml" }, "allOf": [ { "description": "Represents an EdgeKV Data Access Policy.", "type": "object", "required": [ "dataAccessPolicy" ], "properties": { "dataAccessPolicy": { "additionalProperties": false, "description": "Data Access Policy properties effective for new namespaces created in the database.", "nullable": true, "type": "object", "required": [ "restrictDataAccess", "allowNamespacePolicyOverride" ], "properties": { "allowNamespacePolicyOverride": { "description": "Overrides the default database Data Access Policy when creating a new namespace. A value of `true` indicates that the database Data Access Policy can be overridden when a namespace is created. A value of `false` prevents new namespaces from overriding the default Data Access Policy setting.", "type": "boolean" }, "restrictDataAccess": { "description": "Set Data Access Policy to apply for new namespaces by default. A value of `true` indicates newly created namespaces will only be accessible on Akamai's enhanced secure network. A value of `false` enables access in both the enhanced secure network and the standard secured network. You need a special Standard TLS Support contract entitlement for this value to be set to `false`.", "type": "boolean" } } } }, "x-akamai": { "file-path": "schemas/initialize-put.yaml" } }, { "required": [ "accountStatus", "cpcode", "productionStatus", "stagingStatus" ], "properties": { "accountStatus": { "description": "The `INITIALIZED` status indicates that the EdgeKV and the CP code have been provisioned in production and staging networks. If EdgeKV has not been initialized in both networks, the value of `UNINITIALIZED` will be shown. A value of `PENDING` will be shown if a previous initialization request is currently processing for the account.", "type": "string", "enum": [ "INITIALIZED", "UNINITIALIZED", "PENDING" ] }, "cpcode": { "description": "CP code created to track the EdgeKV traffic. Make sure you don't purge content associated with this CP code to avoid degradation in your EdgeKV performance. A value of `null` shows that the account has not been initialized.", "nullable": true, "type": "string" }, "productionStatus": { "description": "The `INITIALIZED` status indicates that the EdgeKV has been provisioned on the production network. A value of `UNINITIALIZED` will be shown if initialization has not been attempted or the attempt has failed. A value of `PENDING` will be shown if a previous initialization request is currently processing for the account.", "type": "string", "enum": [ "INITIALIZED", "UNINITIALIZED", "PENDING" ] }, "stagingStatus": { "description": "The `INITIALIZED` status indicates that the EdgeKV has been provisioned on staging network. A value of `UNINITIALIZED` will be shown if initialization has not been attempted or the attempt has failed. A value of `PENDING` will be shown if a previous initialization request is currently processing for the account.", "type": "string", "enum": [ "INITIALIZED", "UNINITIALIZED", "PENDING" ] } } } ] } } } }, "403": { "description": "Internal error.", "content": { "application/problem+json": { "example": { "detail": "This feature requires the Standard TLS Support product.", "errorCode": "EKV_1005", "instance": "/edgeKV/error-instances/2c82be29-f909-4d42-b775-de404e264fd9", "status": 403, "title": "Forbidden", "type": "/edgekv/error-types/edgekv-forbidden", "additionalDetail": { "requestId": "cd9b61e08148009b" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } }, "500": { "description": "Internal error.", "content": { "application/problem+json": { "example": { "detail": "An internal error occurred.", "errorCode": "EKV_0000", "instance": "/edgekv/error-instances/cdb7767c-817e-4805-9f28-0816eefa0ba8", "status": 500, "title": "Internal Server Error", "type": "/edgekv/error-types/edgekv-internal-server-error", "additionalDetail": { "requestId": "cd9b61e08148009b" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.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" } } ] } }, "/auth/groups": { "get": { "description": "View a list of access groups and your associated permission capabilities, such as create a namespace or read data from a namespace.", "operationId": "get-groups", "summary": "Akamai List Permission Groups", "tags": [ "Permission groups" ], "externalDocs": { "description": "See documentation for this operation in Akamai's EdgeKV API", "url": "https://techdocs.akamai.com/edgekv/reference/get-groups" }, "responses": { "200": { "description": "Describes a list of Akamai access groups with EdgeKV capabilities.", "content": { "application/json": { "example": { "groups": [ { "groupId": 4284, "groupName": "Group #42", "capabilities": [ "READ_DATA", "WRITE_DATA", "DELETE_DATA", "READ_STAGING_DATA", "WRITE_STAGING_DATA", "DELETE_STAGING_DATA", "VIEW_NAMESPACE", "CREATE_NAMESPACE", "MODIFY_NAMESPACE", "DELETE_NAMESPACE", "AUTHORIZE_NAMESPACE", "VIEW_STAGING_NAMESPACE", "CREATE_STAGING_NAMESPACE", "MODIFY_STAGING_NAMESPACE", "DELETE_STAGING_NAMESPACE", "AUTHORIZE_STAGING_NAMESPACE", "VIEW_TOKEN", "CREATE_TOKEN", "REVOKE_TOKEN", "VIEW_STAGING_TOKEN", "CREATE_STAGING_TOKEN", "REVOKE_STAGING_TOKEN" ] }, { "groupId": 109795, "groupName": "ESSL Behavior Tests", "capabilities": [ "READ_STAGING_DATA", "WRITE_STAGING_DATA", "DELETE_STAGING_DATA", "VIEW_NAMESPACE", "VIEW_STAGING_NAMESPACE", "CREATE_STAGING_NAMESPACE", "MODIFY_STAGING_NAMESPACE", "DELETE_STAGING_NAMESPACE", "AUTHORIZE_STAGING_NAMESPACE", "VIEW_STAGING_TOKEN", "CREATE_STAGING_TOKEN", "REVOKE_STAGING_TOKEN" ] } ] }, "schema": { "additionalProperties": false, "type": "object", "required": [ "groups" ], "properties": { "groups": { "description": "List of Akamai access groups with EdgeKV capabilities.", "minItems": 1, "type": "array", "items": { "additionalProperties": false, "type": "object", "required": [ "groupId", "groupName", "capabilities" ], "properties": { "capabilities": { "description": "Lists EdgeKV permissions available within the Akamai access group.", "minItems": 1, "type": "array", "uniqueItems": true, "items": { "type": "string", "enum": [ "READ_DATA", "WRITE_DATA", "DELETE_DATA", "READ_STAGING_DATA", "WRITE_STAGING_DATA", "DELETE_STAGING_DATA", "VIEW_NAMESPACE", "CREATE_NAMESPACE", "MODIFY_NAMESPACE", "DELETE_NAMESPACE", "AUTHORIZE_NAMESPACE", "VIEW_STAGING_NAMESPACE", "CREATE_STAGING_NAMESPACE", "MODIFY_STAGING_NAMESPACE", "DELETE_STAGING_NAMESPACE", "AUTHORIZE_STAGING_NAMESPACE", "VIEW_TOKEN", "CREATE_TOKEN", "REVOKE_TOKEN", "VIEW_STAGING_TOKEN", "CREATE_STAGING_TOKEN", "REVOKE_STAGING_TOKEN" ] } }, "groupId": { "description": "Identifies the Akamai access group specified when the namespace was created.", "minimum": 0, "type": "integer" }, "groupName": { "description": "Name of an Akamai access group you assign to a new namespace.", "type": "string" } }, "x-akamai": { "file-path": "schemas/auth-group-200.yaml" } } } }, "x-akamai": { "file-path": "schemas/auth-groups-200.yaml" } } } } }, "500": { "description": "Internal error.", "content": { "application/problem+json": { "example": { "detail": "An internal error occurred.", "errorCode": "EKV_0000", "instance": "/edgekv/error-instances/cdb7767c-817e-4805-9f28-0816eefa0ba8", "status": 500, "title": "Internal Server Error", "type": "/edgekv/error-types/edgekv-internal-server-error", "additionalDetail": { "requestId": "cd9b61e08148009b" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.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" } } ] } }, "/auth/groups/{groupId}": { "get": { "description": "View details permissions available within the specified access group, such as create a namespace or read data from a namespace.", "operationId": "get-group", "summary": "Akamai Get a Permission Group", "tags": [ "Permission groups" ], "externalDocs": { "description": "See documentation for this operation in Akamai's EdgeKV API", "url": "https://techdocs.akamai.com/edgekv/reference/get-group" }, "responses": { "200": { "description": "The response shows the EdgeKV permissions available to you within the Akamai access group.", "content": { "application/json": { "example": { "groupId": 0, "groupName": "Account Group", "capabilities": [ "READ_DATA", "WRITE_DATA", "DELETE_DATA", "READ_STAGING_DATA", "WRITE_STAGING_DATA", "DELETE_STAGING_DATA", "VIEW_NAMESPACE", "CREATE_NAMESPACE", "MODIFY_NAMESPACE", "DELETE_NAMESPACE", "AUTHORIZE_NAMESPACE", "VIEW_STAGING_NAMESPACE", "CREATE_STAGING_NAMESPACE", "MODIFY_STAGING_NAMESPACE", "DELETE_STAGING_NAMESPACE", "AUTHORIZE_STAGING_NAMESPACE", "VIEW_TOKEN", "CREATE_TOKEN", "REVOKE_TOKEN", "VIEW_STAGING_TOKEN", "CREATE_STAGING_TOKEN", "REVOKE_STAGING_TOKEN" ] }, "schema": { "additionalProperties": false, "type": "object", "required": [ "groupId", "groupName", "capabilities" ], "properties": { "capabilities": { "description": "Lists EdgeKV permissions available within the Akamai access group.", "minItems": 1, "type": "array", "uniqueItems": true, "items": { "type": "string", "enum": [ "READ_DATA", "WRITE_DATA", "DELETE_DATA", "READ_STAGING_DATA", "WRITE_STAGING_DATA", "DELETE_STAGING_DATA", "VIEW_NAMESPACE", "CREATE_NAMESPACE", "MODIFY_NAMESPACE", "DELETE_NAMESPACE", "AUTHORIZE_NAMESPACE", "VIEW_STAGING_NAMESPACE", "CREATE_STAGING_NAMESPACE", "MODIFY_STAGING_NAMESPACE", "DELETE_STAGING_NAMESPACE", "AUTHORIZE_STAGING_NAMESPACE", "VIEW_TOKEN", "CREATE_TOKEN", "REVOKE_TOKEN", "VIEW_STAGING_TOKEN", "CREATE_STAGING_TOKEN", "REVOKE_STAGING_TOKEN" ] } }, "groupId": { "description": "Identifies the Akamai access group specified when the namespace was created.", "minimum": 0, "type": "integer" }, "groupName": { "description": "Name of an Akamai access group you assign to a new namespace.", "type": "string" } }, "x-akamai": { "file-path": "schemas/auth-group-200.yaml" } } } } }, "403": { "description": "The user does not have capabilities for the Akamai group.", "content": { "application/problem+json": { "example": { "detail": "You do not have access to group 100.", "errorCode": "EKV_1000", "instance": "/edgeKV/error-instances/2c82be29-f909-4d42-b775-de404e264fd9", "status": 403, "title": "Forbidden", "type": "/edgekv/error-types/edgekv-forbidden", "additionalDetail": { "requestId": "cd9b61e08148009b" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } }, "500": { "description": "Internal error.", "content": { "application/problem+json": { "example": { "detail": "An internal error occurred.", "errorCode": "EKV_0000", "instance": "/edgekv/error-instances/cdb7767c-817e-4805-9f28-0816eefa0ba8", "status": 500, "title": "Internal Server Error", "type": "/edgekv/error-types/edgekv-internal-server-error", "additionalDetail": { "requestId": "cd9b61e08148009b" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.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": "Unique identifier for an EdgeKV access group.", "example": "{{groupId}}", "in": "path", "name": "groupId", "required": true, "schema": { "example": 4284, "minimum": 0, "type": "integer" }, "x-akamai": { "file-path": "parameters/auth-groupId-path.yaml" } } ] }, "/auth/namespaces/{namespaceId}": { "put": { "description": "Assign an existing namespace to a different Akamai access group.", "operationId": "put-reauthorize-namespace", "summary": "Akamai Reauthorize a Namespace", "tags": [ "Namespaces" ], "externalDocs": { "description": "See documentation for this operation in Akamai's EdgeKV API", "url": "https://techdocs.akamai.com/edgekv/reference/put-reauthorize-namespace" }, "requestBody": { "required": true, "content": { "application/json": { "example": { "groupId": 4284 }, "schema": { "additionalProperties": false, "description": "Represents an EdgeKV namespace authorization.", "type": "object", "required": [ "groupId" ], "properties": { "groupId": { "description": "The Akamai access group the namespace is assigned to. A value of `0` makes the namespace available to all groups on the account with EdgeKV capabilities.", "example": "{{groupId}}", "minimum": 0, "type": "integer" } }, "x-akamai": { "file-path": "schemas/reauthorize-namespace-200.yaml" } } } } }, "responses": { "200": { "description": "This section confirms the updated groupId for the namespace.", "content": { "application/json": { "example": { "groupId": 4284 }, "schema": { "additionalProperties": false, "description": "Represents an EdgeKV namespace authorization.", "type": "object", "required": [ "groupId" ], "properties": { "groupId": { "description": "The Akamai access group the namespace is assigned to. A value of `0` makes the namespace available to all groups on the account with EdgeKV capabilities.", "minimum": 0, "type": "integer" } }, "x-akamai": { "file-path": "schemas/reauthorize-namespace-200.yaml" } } } } }, "400": { "description": "Namespace could not be reauthorized.", "content": { "application/problem+json": { "example": { "detail": "That resource does not exist or you are missing the 'AUTHORIZE_NAMESPACE' permission for it.", "errorCode": "EKV_1002", "instance": "/edgekv/error-instances/2c82be29-f909-4d42-b775-de404e264fd9", "status": 400, "title": "Bad Request", "type": "/edgekv/error-types/edgekv-bad-request", "additionalDetail": { "requestId": "1d646f05c4ca4df9" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } }, "500": { "description": "Internal error.", "content": { "application/problem+json": { "example": { "detail": "An internal error occurred.", "errorCode": "EKV_0000", "instance": "/edgekv/error-instances/cdb7767c-817e-4805-9f28-0816eefa0ba8", "status": 500, "title": "Internal Server Error", "type": "/edgekv/error-types/edgekv-internal-server-error", "additionalDetail": { "requestId": "cd9b61e08148009b" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.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": "Unique identifier for each namespace.", "example": "{{namespaceId}}", "in": "path", "name": "namespaceId", "required": true, "schema": { "example": "marketing", "type": "string" }, "x-akamai": { "file-path": "parameters/namespaceId-path.yaml" } } ] }, "/initialize": { "get": { "description": "View the EdgeKV initialization status.", "operationId": "get-initialize", "summary": "Akamai Get the EdgeKV Initialization Status", "tags": [ "EdgeKV status" ], "externalDocs": { "description": "See documentation for this operation in Akamai's EdgeKV API", "url": "https://techdocs.akamai.com/edgekv/reference/get-initialize" }, "responses": { "200": { "description": "Returns current initialization status.", "content": { "application/json": { "example": { "accountStatus": "INITIALIZED", "cpcode": "1234567", "productionStatus": "INITIALIZED", "stagingStatus": "INITIALIZED", "dataAccessPolicy": { "allowNamespacePolicyOverride": false, "restrictDataAccess": true } }, "schema": { "additionalProperties": false, "description": "Lists properties related to EdgeKV initialization.", "type": "object", "x-akamai": { "file-path": "schemas/initialize-200.yaml" }, "allOf": [ { "description": "Represents an EdgeKV Data Access Policy.", "type": "object", "required": [ "dataAccessPolicy" ], "properties": { "dataAccessPolicy": { "additionalProperties": false, "description": "Data Access Policy properties effective for new namespaces created in the database.", "nullable": true, "type": "object", "required": [ "restrictDataAccess", "allowNamespacePolicyOverride" ], "properties": { "allowNamespacePolicyOverride": { "description": "Overrides the default database Data Access Policy when creating a new namespace. A value of `true` indicates that the database Data Access Policy can be overridden when a namespace is created. A value of `false` prevents new namespaces from overriding the default Data Access Policy setting.", "type": "boolean" }, "restrictDataAccess": { "description": "Set Data Access Policy to apply for new namespaces by default. A value of `true` indicates newly created namespaces will only be accessible on Akamai's enhanced secure network. A value of `false` enables access in both the enhanced secure network and the standard secured network. You need a special Standard TLS Support contract entitlement for this value to be set to `false`.", "type": "boolean" } } } }, "x-akamai": { "file-path": "schemas/initialize-put.yaml" } }, { "required": [ "accountStatus", "cpcode", "productionStatus", "stagingStatus" ], "properties": { "accountStatus": { "description": "The `INITIALIZED` status indicates that the EdgeKV and the CP code have been provisioned in production and staging networks. If EdgeKV has not been initialized in both networks, the value of `UNINITIALIZED` will be shown. A value of `PENDING` will be shown if a previous initialization request is currently processing for the account.", "type": "string", "enum": [ "INITIALIZED", "UNINITIALIZED", "PENDING" ] }, "cpcode": { "description": "CP code created to track the EdgeKV traffic. Make sure you don't purge content associated with this CP code to avoid degradation in your EdgeKV performance. A value of `null` shows that the account has not been initialized.", "nullable": true, "type": "string" }, "productionStatus": { "description": "The `INITIALIZED` status indicates that the EdgeKV has been provisioned on the production network. A value of `UNINITIALIZED` will be shown if initialization has not been attempted or the attempt has failed. A value of `PENDING` will be shown if a previous initialization request is currently processing for the account.", "type": "string", "enum": [ "INITIALIZED", "UNINITIALIZED", "PENDING" ] }, "stagingStatus": { "description": "The `INITIALIZED` status indicates that the EdgeKV has been provisioned on staging network. A value of `UNINITIALIZED` will be shown if initialization has not been attempted or the attempt has failed. A value of `PENDING` will be shown if a previous initialization request is currently processing for the account.", "type": "string", "enum": [ "INITIALIZED", "UNINITIALIZED", "PENDING" ] } } } ] } } } }, "404": { "description": "EdgeKV has not been initialized.", "content": { "application/problem+json": { "example": { "accountStatus": "UNINITIALIZED", "cpcode": null, "dataAccessPolicy": null, "productionStatus": "UNINITIALIZED", "stagingStatus": "UNINITIALIZED" }, "schema": { "additionalProperties": false, "description": "Lists properties related to EdgeKV initialization.", "type": "object", "x-akamai": { "file-path": "schemas/initialize-200.yaml" }, "allOf": [ { "description": "Represents an EdgeKV Data Access Policy.", "type": "object", "required": [ "dataAccessPolicy" ], "properties": { "dataAccessPolicy": { "additionalProperties": false, "description": "Data Access Policy properties effective for new namespaces created in the database.", "nullable": true, "type": "object", "required": [ "restrictDataAccess", "allowNamespacePolicyOverride" ], "properties": { "allowNamespacePolicyOverride": { "description": "Overrides the default database Data Access Policy when creating a new namespace. A value of `true` indicates that the database Data Access Policy can be overridden when a namespace is created. A value of `false` prevents new namespaces from overriding the default Data Access Policy setting.", "type": "boolean" }, "restrictDataAccess": { "description": "Set Data Access Policy to apply for new namespaces by default. A value of `true` indicates newly created namespaces will only be accessible on Akamai's enhanced secure network. A value of `false` enables access in both the enhanced secure network and the standard secured network. You need a special Standard TLS Support contract entitlement for this value to be set to `false`.", "type": "boolean" } } } }, "x-akamai": { "file-path": "schemas/initialize-put.yaml" } }, { "required": [ "accountStatus", "cpcode", "productionStatus", "stagingStatus" ], "properties": { "accountStatus": { "description": "The `INITIALIZED` status indicates that the EdgeKV and the CP code have been provisioned in production and staging networks. If EdgeKV has not been initialized in both networks, the value of `UNINITIALIZED` will be shown. A value of `PENDING` will be shown if a previous initialization request is currently processing for the account.", "type": "string", "enum": [ "INITIALIZED", "UNINITIALIZED", "PENDING" ] }, "cpcode": { "description": "CP code created to track the EdgeKV traffic. Make sure you don't purge content associated with this CP code to avoid degradation in your EdgeKV performance. A value of `null` shows that the account has not been initialized.", "nullable": true, "type": "string" }, "productionStatus": { "description": "The `INITIALIZED` status indicates that the EdgeKV has been provisioned on the production network. A value of `UNINITIALIZED` will be shown if initialization has not been attempted or the attempt has failed. A value of `PENDING` will be shown if a previous initialization request is currently processing for the account.", "type": "string", "enum": [ "INITIALIZED", "UNINITIALIZED", "PENDING" ] }, "stagingStatus": { "description": "The `INITIALIZED` status indicates that the EdgeKV has been provisioned on staging network. A value of `UNINITIALIZED` will be shown if initialization has not been attempted or the attempt has failed. A value of `PENDING` will be shown if a previous initialization request is currently processing for the account.", "type": "string", "enum": [ "INITIALIZED", "UNINITIALIZED", "PENDING" ] } } } ] } } } }, "500": { "description": "Internal error.", "content": { "application/problem+json": { "example": { "detail": "An internal error occurred.", "errorCode": "EKV_0000", "instance": "/edgekv/error-instances/cdb7767c-817e-4805-9f28-0816eefa0ba8", "status": 500, "title": "Internal Server Error", "type": "/edgekv/error-types/edgekv-internal-server-error", "additionalDetail": { "requestId": "cd9b61e08148009b" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.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": "You only need to initialize EdgeKV once. This operation adds the `default` EdgeKV namespace to Akamai's `STAGING` and `PRODUCTION` networks. It also creates a new dedicated CP code for you to track your EdgeKV usage. You won't be able to use any of the EdgeKV API operations or your EdgeKV database until initialization completes. You should only use the default namespace for experimentation and testing purposes. When deploying your EdgeKV database in production, use a new namespace with a different name. You need to specify a database Data Access Policy when running this operation. The Data Access Policy determines if new namespaces should be processed only on Akamai's enhanced secure network with high security standards, or both enhanced and standard secure networks. By default, all current existing namespaces in EdgeKV are set to use only the enhanced secure network. To use the standard secure network, you need special contract entitlement for Standard TLS Support.", "operationId": "put-initialize", "summary": "Akamai Initialize EdgeKV", "tags": [ "EdgeKV status" ], "externalDocs": { "description": "See documentation for this operation in Akamai's EdgeKV API", "url": "https://techdocs.akamai.com/edgekv/reference/put-initialize" }, "requestBody": { "content": { "application/json": { "example": { "dataAccessPolicy": { "allowNamespacePolicyOverride": false, "restrictDataAccess": true } }, "schema": { "description": "Represents an EdgeKV Data Access Policy.", "type": "object", "required": [ "dataAccessPolicy" ], "properties": { "dataAccessPolicy": { "additionalProperties": false, "description": "Data Access Policy properties effective for new namespaces created in the database.", "nullable": true, "type": "object", "required": [ "restrictDataAccess", "allowNamespacePolicyOverride" ], "properties": { "allowNamespacePolicyOverride": { "description": "Overrides the default database Data Access Policy when creating a new namespace. A value of `true` indicates that the database Data Access Policy can be overridden when a namespace is created. A value of `false` prevents new namespaces from overriding the default Data Access Policy setting.", "type": "boolean" }, "restrictDataAccess": { "description": "Set Data Access Policy to apply for new namespaces by default. A value of `true` indicates newly created namespaces will only be accessible on Akamai's enhanced secure network. A value of `false` enables access in both the enhanced secure network and the standard secured network. You need a special Standard TLS Support contract entitlement for this value to be set to `false`.", "type": "boolean" } } } }, "x-akamai": { "file-path": "schemas/initialize-put.yaml" } } } } }, "responses": { "102": { "description": "An existing initialization request is currently processing for current account.", "content": { "application/json": { "example": { "accountStatus": "PENDING", "cpcode": null, "dataAccessPolicy": null, "productionStatus": "PENDING", "stagingStatus": "PENDING" }, "schema": { "additionalProperties": false, "description": "Lists properties related to EdgeKV initialization.", "type": "object", "x-akamai": { "file-path": "schemas/initialize-200.yaml" }, "allOf": [ { "description": "Represents an EdgeKV Data Access Policy.", "type": "object", "required": [ "dataAccessPolicy" ], "properties": { "dataAccessPolicy": { "additionalProperties": false, "description": "Data Access Policy properties effective for new namespaces created in the database.", "nullable": true, "type": "object", "required": [ "restrictDataAccess", "allowNamespacePolicyOverride" ], "properties": { "allowNamespacePolicyOverride": { "description": "Overrides the default database Data Access Policy when creating a new namespace. A value of `true` indicates that the database Data Access Policy can be overridden when a namespace is created. A value of `false` prevents new namespaces from overriding the default Data Access Policy setting.", "type": "boolean" }, "restrictDataAccess": { "description": "Set Data Access Policy to apply for new namespaces by default. A value of `true` indicates newly created namespaces will only be accessible on Akamai's enhanced secure network. A value of `false` enables access in both the enhanced secure network and the standard secured network. You need a special Standard TLS Support contract entitlement for this value to be set to `false`.", "type": "boolean" } } } }, "x-akamai": { "file-path": "schemas/initialize-put.yaml" } }, { "required": [ "accountStatus", "cpcode", "productionStatus", "stagingStatus" ], "properties": { "accountStatus": { "description": "The `INITIALIZED` status indicates that the EdgeKV and the CP code have been provisioned in production and staging networks. If EdgeKV has not been initialized in both networks, the value of `UNINITIALIZED` will be shown. A value of `PENDING` will be shown if a previous initialization request is currently processing for the account.", "type": "string", "enum": [ "INITIALIZED", "UNINITIALIZED", "PENDING" ] }, "cpcode": { "description": "CP code created to track the EdgeKV traffic. Make sure you don't purge content associated with this CP code to avoid degradation in your EdgeKV performance. A value of `null` shows that the account has not been initialized.", "nullable": true, "type": "string" }, "productionStatus": { "description": "The `INITIALIZED` status indicates that the EdgeKV has been provisioned on the production network. A value of `UNINITIALIZED` will be shown if initialization has not been attempted or the attempt has failed. A value of `PENDING` will be shown if a previous initialization request is currently processing for the account.", "type": "string", "enum": [ "INITIALIZED", "UNINITIALIZED", "PENDING" ] }, "stagingStatus": { "description": "The `INITIALIZED` status indicates that the EdgeKV has been provisioned on staging network. A value of `UNINITIALIZED` will be shown if initialization has not been attempted or the attempt has failed. A value of `PENDING` will be shown if a previous initialization request is currently processing for the account.", "type": "string", "enum": [ "INITIALIZED", "UNINITIALIZED", "PENDING" ] } } } ] } } } }, "201": { "description": "On initial successful initialization, returns current initialization status and the assigned CP code.", "content": { "application/json": { "example": { "accountStatus": "INITIALIZED", "cpcode": "1234567", "productionStatus": "INITIALIZED", "stagingStatus": "INITIALIZED", "dataAccessPolicy": { "allowNamespacePolicyOverride": false, "restrictDataAccess": true } }, "schema": { "additionalProperties": false, "description": "Lists properties related to EdgeKV initialization.", "type": "object", "x-akamai": { "file-path": "schemas/initialize-200.yaml" }, "allOf": [ { "description": "Represents an EdgeKV Data Access Policy.", "type": "object", "required": [ "dataAccessPolicy" ], "properties": { "dataAccessPolicy": { "additionalProperties": false, "description": "Data Access Policy properties effective for new namespaces created in the database.", "nullable": true, "type": "object", "required": [ "restrictDataAccess", "allowNamespacePolicyOverride" ], "properties": { "allowNamespacePolicyOverride": { "description": "Overrides the default database Data Access Policy when creating a new namespace. A value of `true` indicates that the database Data Access Policy can be overridden when a namespace is created. A value of `false` prevents new namespaces from overriding the default Data Access Policy setting.", "type": "boolean" }, "restrictDataAccess": { "description": "Set Data Access Policy to apply for new namespaces by default. A value of `true` indicates newly created namespaces will only be accessible on Akamai's enhanced secure network. A value of `false` enables access in both the enhanced secure network and the standard secured network. You need a special Standard TLS Support contract entitlement for this value to be set to `false`.", "type": "boolean" } } } }, "x-akamai": { "file-path": "schemas/initialize-put.yaml" } }, { "required": [ "accountStatus", "cpcode", "productionStatus", "stagingStatus" ], "properties": { "accountStatus": { "description": "The `INITIALIZED` status indicates that the EdgeKV and the CP code have been provisioned in production and staging networks. If EdgeKV has not been initialized in both networks, the value of `UNINITIALIZED` will be shown. A value of `PENDING` will be shown if a previous initialization request is currently processing for the account.", "type": "string", "enum": [ "INITIALIZED", "UNINITIALIZED", "PENDING" ] }, "cpcode": { "description": "CP code created to track the EdgeKV traffic. Make sure you don't purge content associated with this CP code to avoid degradation in your EdgeKV performance. A value of `null` shows that the account has not been initialized.", "nullable": true, "type": "string" }, "productionStatus": { "description": "The `INITIALIZED` status indicates that the EdgeKV has been provisioned on the production network. A value of `UNINITIALIZED` will be shown if initialization has not been attempted or the attempt has failed. A value of `PENDING` will be shown if a previous initialization request is currently processing for the account.", "type": "string", "enum": [ "INITIALIZED", "UNINITIALIZED", "PENDING" ] }, "stagingStatus": { "description": "The `INITIALIZED` status indicates that the EdgeKV has been provisioned on staging network. A value of `UNINITIALIZED` will be shown if initialization has not been attempted or the attempt has failed. A value of `PENDING` will be shown if a previous initialization request is currently processing for the account.", "type": "string", "enum": [ "INITIALIZED", "UNINITIALIZED", "PENDING" ] } } } ] } } } }, "400": { "description": "Internal error.", "content": { "application/problem+json": { "example": { "detail": "You cannot set `restrictDataAccess` to false. Your account entitlement doesn't allow EdgeKV data access to Akamai's Standard TLS network.", "errorCode": "EKV_1005", "instance": "/edgekv/error-instances/2c82be29-f909-4d42-b775-de404e264fd9", "status": 400, "title": "Bad Request", "type": "/edgekv/error-types/edgekv-bad-request", "additionalDetail": { "requestId": "5d424b9289ab9b43" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } }, "500": { "description": "Internal error.", "content": { "application/problem+json": { "example": { "detail": "An internal error occurred.", "errorCode": "EKV_0000", "instance": "/edgekv/error-instances/cdb7767c-817e-4805-9f28-0816eefa0ba8", "status": 500, "title": "Internal Server Error", "type": "/edgekv/error-types/edgekv-internal-server-error", "additionalDetail": { "requestId": "cd9b61e08148009b" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.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" } } ] } }, "/networks/{network}/namespaces": { "post": { "description": "Creates a namespace on Akamai's `STAGING` or `PRODUCTION` network. You should create namespaces in both networks so that you can test your EdgeWorkers code on staging.", "operationId": "post-namespace", "summary": "Akamai Create a Namespace", "tags": [ "Namespaces" ], "externalDocs": { "description": "See documentation for this operation in Akamai's EdgeKV API", "url": "https://techdocs.akamai.com/edgekv/reference/post-namespace" }, "requestBody": { "content": { "application/json": { "example": { "geoLocation": "US", "groupId": 4284, "namespace": "marketing", "retentionInSeconds": 15724800 }, "schema": { "additionalProperties": false, "description": "Represents an EdgeKV namespace.", "type": "object", "x-akamai": { "file-path": "schemas/namespace.yaml" }, "allOf": [ { "description": "Represents an EdgeKV namespace.", "type": "object", "required": [ "namespace", "retentionInSeconds" ], "properties": { "namespace": { "description": "A name for a namespace.", "type": "string" }, "retentionInSeconds": { "description": "Retention period of underlying data, represented in seconds. Accepts values between 86400 for one day and 315360000 for 10 years. You can also enter a value of `0` to retain data indefinitely.", "type": "integer", "oneOf": [ { "title": "Retain data indefinitely", "enum": [ 0 ] }, { "maximum": 315360000, "minimum": 86400, "title": "Retain data for a specific period" } ] } }, "x-akamai": { "file-path": "schemas/namespace-put.yaml" } }, { "required": [ "groupId" ], "properties": { "dataAccessPolicy": { "additionalProperties": false, "description": "Overrides the default database Data Access Policy. If not specified, the applied Data Access Policy will be the default Data Access Policy effective for all newly created namespaces. The default database Data Access Policy is defined when first initializing EdgeKV. The effective settings for new namespaces can also be changed using the modify Data Access Policy endpoint after initialization. The applied Data Access Policy can't be changed after the namespace is created. ", "type": "object", "required": [ "restrictDataAccess", "policyType" ], "properties": { "policyType": { "default": "inherited", "description": "Indicates if the default Data Access Policy of the database has been `inherited` or `overridden` when the namespace was created. ", "readOnly": true, "type": "string", "enum": [ "inherited", "overridden" ] }, "restrictDataAccess": { "description": "Set a Data Access Policy to apply only for the current namespace that overrides the default setting. Changing the Data Access Policy for a namespace is only possible if namespace policy override is set to allowed by setting `allowNamespacePolicyOverride` to `true` when first initializing EdgeKV. The endpoint to modify the default Data Access Policy settings can also be used after initialization to change effective settings.", "type": "boolean" } } }, "geoLocation": { "default": "US", "description": "Specifies the storage location for data when creating a namespace on the production network. This can help optimize performance by storing data where most or all of your users are located. The value defaults to `US` on the `STAGING` and `PRODUCTION` networks. The available locations also include `EU` (Europe) and `JP` (Japan) for the `PRODUCTION` network. Once you create this value, you can't modify it.", "type": "string", "enum": [ "US", "EU", "JP" ] }, "groupId": { "description": "The Akamai access group the namespace is assigned to. A value of `0` makes the namespace available to all Akamai access groups on the account with EdgeKV capabilities.", "minimum": 0, "type": "integer" } } } ] } } } }, "responses": { "200": { "description": "Successful response.", "content": { "application/json": { "example": { "geoLocation": "US", "groupId": 4284, "namespace": "marketing", "retentionInSeconds": 15724800 }, "schema": { "additionalProperties": false, "description": "Represents an EdgeKV namespace.", "type": "object", "x-akamai": { "file-path": "schemas/namespace.yaml" }, "allOf": [ { "description": "Represents an EdgeKV namespace.", "type": "object", "required": [ "namespace", "retentionInSeconds" ], "properties": { "namespace": { "description": "A name for a namespace.", "type": "string" }, "retentionInSeconds": { "description": "Retention period of underlying data, represented in seconds. Accepts values between 86400 for one day and 315360000 for 10 years. You can also enter a value of `0` to retain data indefinitely.", "type": "integer", "oneOf": [ { "title": "Retain data indefinitely", "enum": [ 0 ] }, { "maximum": 315360000, "minimum": 86400, "title": "Retain data for a specific period" } ] } }, "x-akamai": { "file-path": "schemas/namespace-put.yaml" } }, { "required": [ "groupId" ], "properties": { "dataAccessPolicy": { "additionalProperties": false, "description": "Overrides the default database Data Access Policy. If not specified, the applied Data Access Policy will be the default Data Access Policy effective for all newly created namespaces. The default database Data Access Policy is defined when first initializing EdgeKV. The effective settings for new namespaces can also be changed using the modify Data Access Policy endpoint after initialization. The applied Data Access Policy can't be changed after the namespace is created. ", "type": "object", "required": [ "restrictDataAccess", "policyType" ], "properties": { "policyType": { "default": "inherited", "description": "Indicates if the default Data Access Policy of the database has been `inherited` or `overridden` when the namespace was created. ", "readOnly": true, "type": "string", "enum": [ "inherited", "overridden" ] }, "restrictDataAccess": { "description": "Set a Data Access Policy to apply only for the current namespace that overrides the default setting. Changing the Data Access Policy for a namespace is only possible if namespace policy override is set to allowed by setting `allowNamespacePolicyOverride` to `true` when first initializing EdgeKV. The endpoint to modify the default Data Access Policy settings can also be used after initialization to change effective settings.", "type": "boolean" } } }, "geoLocation": { "default": "US", "description": "Specifies the storage location for data when creating a namespace on the production network. This can help optimize performance by storing data where most or all of your users are located. The value defaults to `US` on the `STAGING` and `PRODUCTION` networks. The available locations also include `EU` (Europe) and `JP` (Japan) for the `PRODUCTION` network. Once you create this value, you can't modify it.", "type": "string", "enum": [ "US", "EU", "JP" ] }, "groupId": { "description": "The Akamai access group the namespace is assigned to. A value of `0` makes the namespace available to all Akamai access groups on the account with EdgeKV capabilities.", "minimum": 0, "type": "integer" } } } ] } } } }, "400": { "description": "Invalid namespace name or missing attribute.", "content": { "application/problem+json": { "examples": { "Cannot change groupId": { "value": { "detail": "groupId changes must be made through the reauthorize endpoint.", "errorCode": "EKV_3000", "instance": "/edgekv/error-instances/2c82be29-f909-4d42-b775-de404e264fd9", "status": 400, "title": "Bad Request", "type": "/edgekv/error-types/edgekv-bad-request", "additionalDetail": { "requestId": "5d424b9289ab9b43" } } }, "Invalid Namespace": { "value": { "detail": "Retention period must be specified.", "errorCode": "EKV_2000", "instance": "/edgekv/error-instances/48361e23-541d-4c39-ab4b-c8a194889b27", "status": 400, "title": "Bad Request", "type": "/edgekv/error-types/edgekv-bad-request", "additionalDetail": { "requestId": "baaf61e18fa20d95" } } } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } }, "409": { "description": "Namespace name already exists.", "content": { "application/problem+json": { "example": { "detail": "A namespace with the name marketing already exists with a different configuration", "errorCode": "EKV_3000", "instance": "/edgekv/error-instances/990ac1c3-aa20-4cb8-91fd-9c791d7653f5", "status": 409, "title": "Conflict", "type": "/edgekv/error-types/edgekv-conflict", "additionalDetail": { "requestId": "c04b61e191f202f3" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } }, "500": { "description": "Internal error.", "content": { "application/problem+json": { "example": { "detail": "An internal error occurred.", "errorCode": "EKV_0000", "instance": "/edgekv/error-instances/cdb7767c-817e-4805-9f28-0816eefa0ba8", "status": 500, "title": "Internal Server Error", "type": "/edgekv/error-types/edgekv-internal-server-error", "additionalDetail": { "requestId": "cd9b61e08148009b" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.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": "View a list of all EdgeKV namespaces.", "operationId": "get-namespaces", "summary": "Akamai List Namespaces", "tags": [ "Namespaces" ], "externalDocs": { "description": "See documentation for this operation in Akamai's EdgeKV API", "url": "https://techdocs.akamai.com/edgekv/reference/get-namespaces" }, "responses": { "200": { "description": "Returns a list of namespaces.", "content": { "application/json": { "example": { "namespaces": [ { "geoLocation": "US", "groupId": 0, "namespace": "default", "retentionInSeconds": 15724800, "dataAccessPolicy": { "policyType": "inherited", "restrictDataAccess": true } }, { "geoLocation": "US", "groupId": 4284, "namespace": "marketing", "retentionInSeconds": 15724800, "dataAccessPolicy": { "policyType": "overridden", "restrictDataAccess": false } } ] }, "schema": { "additionalProperties": false, "description": "Lists the namespaces available on the specified network, staging or production.", "type": "object", "required": [ "namespaces" ], "properties": { "namespaces": { "description": "A list of namespace identifiers for the specified network.", "minItems": 1, "type": "array", "items": { "additionalProperties": false, "description": "Attributes of the namespace.", "type": "object", "x-akamai": { "file-path": "schemas/namespace.yaml" }, "allOf": [ { "description": "Represents an EdgeKV namespace.", "type": "object", "required": [ "namespace", "retentionInSeconds" ], "properties": { "namespace": { "description": "A name for a namespace.", "type": "string" }, "retentionInSeconds": { "description": "Retention period of underlying data, represented in seconds. Accepts values between 86400 for one day and 315360000 for 10 years. You can also enter a value of `0` to retain data indefinitely.", "type": "integer", "oneOf": [ { "title": "Retain data indefinitely", "enum": [ 0 ] }, { "maximum": 315360000, "minimum": 86400, "title": "Retain data for a specific period" } ] } }, "x-akamai": { "file-path": "schemas/namespace-put.yaml" } }, { "required": [ "groupId" ], "properties": { "dataAccessPolicy": { "additionalProperties": false, "description": "Overrides the default database Data Access Policy. If not specified, the applied Data Access Policy will be the default Data Access Policy effective for all newly created namespaces. The default database Data Access Policy is defined when first initializing EdgeKV. The effective settings for new namespaces can also be changed using the modify Data Access Policy endpoint after initialization. The applied Data Access Policy can't be changed after the namespace is created. ", "type": "object", "required": [ "restrictDataAccess", "policyType" ], "properties": { "policyType": { "default": "inherited", "description": "Indicates if the default Data Access Policy of the database has been `inherited` or `overridden` when the namespace was created. ", "readOnly": true, "type": "string", "enum": [ "inherited", "overridden" ] }, "restrictDataAccess": { "description": "Set a Data Access Policy to apply only for the current namespace that overrides the default setting. Changing the Data Access Policy for a namespace is only possible if namespace policy override is set to allowed by setting `allowNamespacePolicyOverride` to `true` when first initializing EdgeKV. The endpoint to modify the default Data Access Policy settings can also be used after initialization to change effective settings.", "type": "boolean" } } }, "geoLocation": { "default": "US", "description": "Specifies the storage location for data when creating a namespace on the production network. This can help optimize performance by storing data where most or all of your users are located. The value defaults to `US` on the `STAGING` and `PRODUCTION` networks. The available locations also include `EU` (Europe) and `JP` (Japan) for the `PRODUCTION` network. Once you create this value, you can't modify it.", "type": "string", "enum": [ "US", "EU", "JP" ] }, "groupId": { "description": "The Akamai access group the namespace is assigned to. A value of `0` makes the namespace available to all Akamai access groups on the account with EdgeKV capabilities.", "minimum": 0, "type": "integer" } } } ] } } }, "x-akamai": { "file-path": "schemas/namespaces-200.yaml" } } } } }, "500": { "description": "Internal error.", "content": { "application/problem+json": { "example": { "detail": "An internal error occurred.", "errorCode": "EKV_0000", "instance": "/edgekv/error-instances/cdb7767c-817e-4805-9f28-0816eefa0ba8", "status": 500, "title": "Internal Server Error", "type": "/edgekv/error-types/edgekv-internal-server-error", "additionalDetail": { "requestId": "cd9b61e08148009b" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } } }, "parameters": [ { "description": "__Enum__ Whether to return all namespace attributes or only names.", "example": "{{details}}", "in": "query", "name": "details", "schema": { "example": "on", "type": "string", "enum": [ "on", "off" ] }, "x-akamai": { "file-path": "parameters/details-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" } } ] }, "parameters": [ { "description": "__Enum__ Network environment to execute the API request on.", "example": "{{network}}", "in": "path", "name": "network", "required": true, "schema": { "example": "staging", "type": "string", "enum": [ "production", "staging" ] }, "x-akamai": { "file-path": "parameters/network-path.yaml" } } ] }, "/networks/{network}/namespaces/{namespaceId}": { "get": { "description": "View details for the specified namespace.", "operationId": "get-namespace", "summary": "Akamai Get Namespace Details", "tags": [ "Namespaces" ], "externalDocs": { "description": "See documentation for this operation in Akamai's EdgeKV API", "url": "https://techdocs.akamai.com/edgekv/reference/get-namespace" }, "responses": { "200": { "description": "Returns a single namespace.", "content": { "application/json": { "example": { "geoLocation": "US", "groupId": 4284, "namespace": "marketing", "retentionInSeconds": 15724800 }, "schema": { "additionalProperties": false, "description": "Represents an EdgeKV namespace.", "type": "object", "x-akamai": { "file-path": "schemas/namespace.yaml" }, "allOf": [ { "description": "Represents an EdgeKV namespace.", "type": "object", "required": [ "namespace", "retentionInSeconds" ], "properties": { "namespace": { "description": "A name for a namespace.", "type": "string" }, "retentionInSeconds": { "description": "Retention period of underlying data, represented in seconds. Accepts values between 86400 for one day and 315360000 for 10 years. You can also enter a value of `0` to retain data indefinitely.", "type": "integer", "oneOf": [ { "title": "Retain data indefinitely", "enum": [ 0 ] }, { "maximum": 315360000, "minimum": 86400, "title": "Retain data for a specific period" } ] } }, "x-akamai": { "file-path": "schemas/namespace-put.yaml" } }, { "required": [ "groupId" ], "properties": { "dataAccessPolicy": { "additionalProperties": false, "description": "Overrides the default database Data Access Policy. If not specified, the applied Data Access Policy will be the default Data Access Policy effective for all newly created namespaces. The default database Data Access Policy is defined when first initializing EdgeKV. The effective settings for new namespaces can also be changed using the modify Data Access Policy endpoint after initialization. The applied Data Access Policy can't be changed after the namespace is created. ", "type": "object", "required": [ "restrictDataAccess", "policyType" ], "properties": { "policyType": { "default": "inherited", "description": "Indicates if the default Data Access Policy of the database has been `inherited` or `overridden` when the namespace was created. ", "readOnly": true, "type": "string", "enum": [ "inherited", "overridden" ] }, "restrictDataAccess": { "description": "Set a Data Access Policy to apply only for the current namespace that overrides the default setting. Changing the Data Access Policy for a namespace is only possible if namespace policy override is set to allowed by setting `allowNamespacePolicyOverride` to `true` when first initializing EdgeKV. The endpoint to modify the default Data Access Policy settings can also be used after initialization to change effective settings.", "type": "boolean" } } }, "geoLocation": { "default": "US", "description": "Specifies the storage location for data when creating a namespace on the production network. This can help optimize performance by storing data where most or all of your users are located. The value defaults to `US` on the `STAGING` and `PRODUCTION` networks. The available locations also include `EU` (Europe) and `JP` (Japan) for the `PRODUCTION` network. Once you create this value, you can't modify it.", "type": "string", "enum": [ "US", "EU", "JP" ] }, "groupId": { "description": "The Akamai access group the namespace is assigned to. A value of `0` makes the namespace available to all Akamai access groups on the account with EdgeKV capabilities.", "minimum": 0, "type": "integer" } } } ] } } } }, "400": { "description": "Namespace doesn't exist.", "content": { "application/problem+json": { "example": { "detail": "The requested namespace does not exist.", "errorCode": "EKV_9000", "instance": "/edgekv/error-instances/2c82be29-f909-4d42-b775-de404e264fd9", "status": 400, "title": "Bad Request", "type": "/edgekv/error-types/edgekv-bad-request", "additionalDetail": { "requestId": "5d424b9289ab9b43" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } }, "500": { "description": "An internal error.", "content": { "application/problem+json": { "example": { "detail": "An internal error occurred.", "errorCode": "EKV_0000", "instance": "/edgekv/error-instances/cdb7767c-817e-4805-9f28-0816eefa0ba8", "status": 500, "title": "Internal Server Error", "type": "/edgekv/error-types/edgekv-internal-server-error", "additionalDetail": { "requestId": "cd9b61e08148009b" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.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": "You can update the retention period for any existing namespace other than the default namespace. It can take up to five minutes for a new retention policy to apply. The new retention period only applies to data added or updated in the namespace after this operation is complete. The retention period of existing data remains unchanged from the old retention period. Once you perform this operation you can't query the previously existing data. If you want to ensure that all data in the namespace has the same retention period you need to update the entire data set once the retention period has been updated. To change the access group used to authorize permission to a namespace, see [Reauthorize a namespace](https://techdocs.akamai.com/edgekv/reference/reauthorize-namespace). If you try to run this operation to update the access group, you get a [400 error](https://techdocs.akamai.com/edgekv/reference/400).", "operationId": "put-namespace", "summary": "Akamai Update Namespace Details", "tags": [ "Namespaces" ], "externalDocs": { "description": "See documentation for this operation in Akamai's EdgeKV API", "url": "https://techdocs.akamai.com/edgekv/reference/put-namespace" }, "requestBody": { "content": { "application/json": { "example": { "namespace": "marketing", "retentionInSeconds": 15724800 }, "schema": { "description": "Represents an EdgeKV namespace.", "type": "object", "required": [ "namespace", "retentionInSeconds" ], "properties": { "namespace": { "description": "A name for a namespace.", "example": "{{namespace}}", "type": "string" }, "retentionInSeconds": { "description": "Retention period of underlying data, represented in seconds. Accepts values between 86400 for one day and 315360000 for 10 years. You can also enter a value of `0` to retain data indefinitely.", "example": "{{retentionInSeconds}}", "type": "integer", "oneOf": [ { "title": "Retain data indefinitely", "enum": [ 0 ] }, { "maximum": 315360000, "minimum": 86400, "title": "Retain data for a specific period" } ] } }, "x-akamai": { "file-path": "schemas/namespace-put.yaml" } } } } }, "responses": { "200": { "description": "Returns a single namespace.", "content": { "application/json": { "example": { "geoLocation": "US", "groupId": 4284, "namespace": "marketing", "retentionInSeconds": 15724800 }, "schema": { "additionalProperties": false, "description": "Represents an EdgeKV namespace.", "type": "object", "x-akamai": { "file-path": "schemas/namespace.yaml" }, "allOf": [ { "description": "Represents an EdgeKV namespace.", "type": "object", "required": [ "namespace", "retentionInSeconds" ], "properties": { "namespace": { "description": "A name for a namespace.", "type": "string" }, "retentionInSeconds": { "description": "Retention period of underlying data, represented in seconds. Accepts values between 86400 for one day and 315360000 for 10 years. You can also enter a value of `0` to retain data indefinitely.", "type": "integer", "oneOf": [ { "title": "Retain data indefinitely", "enum": [ 0 ] }, { "maximum": 315360000, "minimum": 86400, "title": "Retain data for a specific period" } ] } }, "x-akamai": { "file-path": "schemas/namespace-put.yaml" } }, { "required": [ "groupId" ], "properties": { "dataAccessPolicy": { "additionalProperties": false, "description": "Overrides the default database Data Access Policy. If not specified, the applied Data Access Policy will be the default Data Access Policy effective for all newly created namespaces. The default database Data Access Policy is defined when first initializing EdgeKV. The effective settings for new namespaces can also be changed using the modify Data Access Policy endpoint after initialization. The applied Data Access Policy can't be changed after the namespace is created. ", "type": "object", "required": [ "restrictDataAccess", "policyType" ], "properties": { "policyType": { "default": "inherited", "description": "Indicates if the default Data Access Policy of the database has been `inherited` or `overridden` when the namespace was created. ", "readOnly": true, "type": "string", "enum": [ "inherited", "overridden" ] }, "restrictDataAccess": { "description": "Set a Data Access Policy to apply only for the current namespace that overrides the default setting. Changing the Data Access Policy for a namespace is only possible if namespace policy override is set to allowed by setting `allowNamespacePolicyOverride` to `true` when first initializing EdgeKV. The endpoint to modify the default Data Access Policy settings can also be used after initialization to change effective settings.", "type": "boolean" } } }, "geoLocation": { "default": "US", "description": "Specifies the storage location for data when creating a namespace on the production network. This can help optimize performance by storing data where most or all of your users are located. The value defaults to `US` on the `STAGING` and `PRODUCTION` networks. The available locations also include `EU` (Europe) and `JP` (Japan) for the `PRODUCTION` network. Once you create this value, you can't modify it.", "type": "string", "enum": [ "US", "EU", "JP" ] }, "groupId": { "description": "The Akamai access group the namespace is assigned to. A value of `0` makes the namespace available to all Akamai access groups on the account with EdgeKV capabilities.", "minimum": 0, "type": "integer" } } } ] } } } }, "400": { "description": "Namespace does not exist.", "content": { "application/problem+json": { "example": { "detail": "The requested namespace does not exist.", "errorCode": "EKV_9000", "instance": "/edgekv/error-instances/2c82be29-f909-4d42-b775-de404e264fd9", "status": 400, "title": "Bad Request", "type": "/edgekv/error-types/edgekv-bad-request", "additionalDetail": { "requestId": "5d424b9289ab9b43" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } }, "500": { "description": "An internal error.", "content": { "application/problem+json": { "example": { "detail": "An internal error occurred.", "errorCode": "EKV_0000", "instance": "/edgekv/error-instances/cdb7767c-817e-4805-9f28-0816eefa0ba8", "status": 500, "title": "Internal Server Error", "type": "/edgekv/error-types/edgekv-internal-server-error", "additionalDetail": { "requestId": "cd9b61e08148009b" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.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": "Unique identifier for each namespace.", "example": "{{namespaceId}}", "in": "path", "name": "namespaceId", "required": true, "schema": { "example": "marketing", "type": "string" }, "x-akamai": { "file-path": "parameters/namespaceId-path.yaml" } }, { "description": "__Enum__ Network environment to execute the API request on.", "example": "{{network}}", "in": "path", "name": "network", "required": true, "schema": { "example": "staging", "type": "string", "enum": [ "production", "staging" ] }, "x-akamai": { "file-path": "parameters/network-path.yaml" } } ] }, "/networks/{network}/namespaces/{namespaceId}/groups": { "get": { "description": "List group identifiers created when writing items to a namespace. You need to specify at least one of these group identifiers in the `groupId` parameter when writing items to a specific namespace. The group identifier is a logical container for a set of items stored inside a given namespace.", "operationId": "get-namespace-groups", "summary": "Akamai List Groups Within a Namespace", "tags": [ "Namespaces" ], "externalDocs": { "description": "See documentation for this operation in Akamai's EdgeKV API", "url": "https://techdocs.akamai.com/edgekv/reference/get-namespace-groups" }, "responses": { "200": { "description": "Returns a list of groups within the specified namespace.", "content": { "application/json": { "example": [ "countries", "verticals", "industries" ], "schema": { "description": "A list of group identifiers.", "minItems": 1, "type": "array", "items": { "description": "Name of the Group.", "type": "string" }, "x-akamai": { "file-path": "schemas/groups-200.yaml" } } } } }, "404": { "description": "No groups are found.", "content": { "application/problem+json": { "example": { "detail": "There are no groups.", "errorCode": "EKV_9000", "instance": "/edgekv/error-instances/18c6df92-09dc-49e1-9e2f-2fe9a56f1db8", "status": 404, "title": "Not Found", "type": "/edgekv/error-types/edgekv-not-found", "additionalDetail": { "requestId": "f83062602d14002f" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } }, "500": { "description": "Internal error.", "content": { "application/problem+json": { "example": { "detail": "An internal error occurred.", "errorCode": "EKV_0000", "instance": "/edgekv/error-instances/cdb7767c-817e-4805-9f28-0816eefa0ba8", "status": 500, "title": "Internal Server Error", "type": "/edgekv/error-types/edgekv-internal-server-error", "additionalDetail": { "requestId": "cd9b61e08148009b" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.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": "Unique identifier for each namespace.", "example": "{{namespaceId}}", "in": "path", "name": "namespaceId", "required": true, "schema": { "example": "marketing", "type": "string" }, "x-akamai": { "file-path": "parameters/namespaceId-path.yaml" } }, { "description": "__Enum__ Network environment to execute the API request on.", "example": "{{network}}", "in": "path", "name": "network", "required": true, "schema": { "example": "staging", "type": "string", "enum": [ "production", "staging" ] }, "x-akamai": { "file-path": "parameters/network-path.yaml" } } ] }, "/networks/{network}/namespaces/{namespaceId}/groups/{groupId}": { "get": { "description": "View the details of an EdgeKV item (key-value pair) within a group. You need to specify the `namespace` and `group` the item belongs to. This operation returns up to 100 items by default or the number of items specified in the `maxItems`. If there are more than the default or requested items in the specified group, the operation returns a random set of the default or requested items. It can take ten seconds or longer to read an item that has been written to EdgeKV. The API may respond with a 404 error during that period. This is normal behavior for EdgeKV, which is an eventually consistent database.", "operationId": "get-group-items", "summary": "Akamai List Items Within a Group", "tags": [ "Items" ], "externalDocs": { "description": "See documentation for this operation in Akamai's EdgeKV API", "url": "https://techdocs.akamai.com/edgekv/reference/get-group-items" }, "responses": { "200": { "description": "Returns the list of items in the specified group.", "content": { "application/json": { "example": [ "US", "DE" ], "schema": { "description": "A list of item identifiers (keys).", "minItems": 1, "type": "array", "items": { "description": "An identifier for an item, also called the key.", "type": "string" }, "x-akamai": { "file-path": "schemas/items-200.yaml" } } } } }, "400": { "description": "Invalid namespace name or group name specified.", "content": { "application/problem+json": { "example": { "detail": "Group must only use a string that matches A-Z a-z 0-9 _ or -..", "errorCode": "EKV_9000", "instance": "/edgekv/error-instances/fcd285bd-aa69-493f-a3b7-4b9d5bbdae8b", "status": 400, "title": "Bad Request", "type": "/edgekv/error-types/edgekv-bad-request", "additionalDetail": { "requestId": "c5c461e093e7083c" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } }, "404": { "description": "Namespace or group does not exist.", "content": { "application/problem+json": { "example": { "detail": "The requested group is empty or not found.", "errorCode": "EKV_9000", "instance": "/edgekv/error-instances/fcd285bd-aa69-493f-a3b7-4b9d5bbdae8b", "status": 404, "title": "Not Found", "type": "/edgekv/error-types/edgekv-not-found", "additionalDetail": { "requestId": "c5c461e093e7083c" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } }, "500": { "description": "Internal error.", "content": { "application/problem+json": { "example": { "detail": "An internal error occurred.", "errorCode": "EKV_0000", "instance": "/edgekv/error-instances/cdb7767c-817e-4805-9f28-0816eefa0ba8", "status": 500, "title": "Internal Server Error", "type": "/edgekv/error-types/edgekv-internal-server-error", "additionalDetail": { "requestId": "cd9b61e08148009b" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } } }, "parameters": [ { "description": "If specified, maximum number of items to return per request, up to the system [limits](https://techdocs.akamai.com/edgekv/docs/limits).", "example": "{{maxItems}}", "in": "query", "name": "maxItems", "schema": { "example": 10, "type": "integer" }, "x-akamai": { "file-path": "parameters/maxItems-query.yaml" } }, { "description": "Accesses EdgeKV data in the specified sandbox environment. To list existing sandbox identifiers, run the Sandbox API's [List sandboxes](https://techdocs.akamai.com/sandbox/reference/get-sandboxes) operation.", "example": "{{sandboxId}}", "in": "query", "name": "sandboxId", "schema": { "example": "4d91057d-xxxx-xxxx-xxxx-3a4472699df4", "type": "string" }, "x-akamai": { "file-path": "parameters/sandboxId-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" } } ] }, "parameters": [ { "description": "Unique identifier for each group within a namespace.", "example": "{{groupId}}", "in": "path", "name": "groupId", "required": true, "schema": { "example": "countries", "type": "string" }, "x-akamai": { "file-path": "parameters/groupId-path.yaml" } }, { "description": "Unique identifier for each namespace.", "example": "{{namespaceId}}", "in": "path", "name": "namespaceId", "required": true, "schema": { "example": "marketing", "type": "string" }, "x-akamai": { "file-path": "parameters/namespaceId-path.yaml" } }, { "description": "__Enum__ Network environment to execute the API request on.", "example": "{{network}}", "in": "path", "name": "network", "required": true, "schema": { "example": "staging", "type": "string", "enum": [ "production", "staging" ] }, "x-akamai": { "file-path": "parameters/network-path.yaml" } } ] }, "/networks/{network}/namespaces/{namespaceId}/groups/{groupId}/items/{itemId}": { "get": { "description": "Read an EdgeKV item. You need to specify the `namespace` and `group` the item belongs to. It can take ten seconds or longer to read an item that has been recently written to EdgeKV. The API may return a 404 error during that period. This is normal behavior for EdgeKV, which is an eventually consistent database.", "operationId": "get-item", "summary": "Akamai Read an Item", "tags": [ "Items" ], "externalDocs": { "description": "See documentation for this operation in Akamai's EdgeKV API", "url": "https://techdocs.akamai.com/edgekv/reference/get-item" }, "responses": { "200": { "description": "Returns the value for the item ID (key).", "content": { "application/json": { "example": { "currency": "\u20ac", "flag": "/germany.png", "name": "Germany" } } } }, "400": { "description": "Invalid namespace, group, or item.", "content": { "application/problem+json": { "example": { "detail": "Key must only use a string that matches A-Z a-z 0-9 _ or -..", "errorCode": "EKV_9000", "instance": "/edgekv/error-instances/66344166-567c-4158-95b2-07d6127b8b75", "status": 400, "title": "Bad Request", "type": "/edgekv/error-types/edgekv-bad-request", "additionalDetail": { "requestId": "a4c461e09bf602be" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } }, "404": { "description": "Namespace, group, or item doesn't exist.", "content": { "application/problem+json": { "example": { "detail": "Item 'item1' or group 'group1' was not found in the database.", "errorCode": "EKV_9000", "instance": "/edgekv/error-instances/d914f64f-020e-465c-ae70-e456fec8870a", "status": 404, "title": "Not Found", "type": "/edgekv/error-types/edgekv-not-found", "additionalDetail": { "requestId": "ac1961e09b0e00a5" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } }, "429": { "description": "Request rate is too high.", "content": { "application/problem+json": { "example": { "detail": "Your request has been denied: 364 hits per second too high. limit set at 73. Please try again soon.", "errorCode": "EKV_9100", "instance": "/edgekv/error-instances/80f9503f-633e-4412-9393-62f329868911", "status": 429, "title": "Too Many Requests", "type": "/edgekv/error-types/edgekv-too-many-requests", "additionalDetail": { "requestId": "16fc97b7cb0ee4dd" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } }, "500": { "description": "An internal error.", "content": { "application/problem+json": { "example": { "detail": "An internal error occurred.", "errorCode": "EKV_0000", "instance": "/edgekv/error-instances/cdb7767c-817e-4805-9f28-0816eefa0ba8", "status": 500, "title": "Internal Server Error", "type": "/edgekv/error-types/edgekv-internal-server-error", "additionalDetail": { "requestId": "cd9b61e08148009b" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } } }, "parameters": [ { "description": "Accesses EdgeKV data in the specified sandbox environment. To list existing sandbox identifiers, run the Sandbox API's [List sandboxes](https://techdocs.akamai.com/sandbox/reference/get-sandboxes) operation.", "example": "{{sandboxId}}", "in": "query", "name": "sandboxId", "schema": { "example": "4d91057d-xxxx-xxxx-xxxx-3a4472699df4", "type": "string" }, "x-akamai": { "file-path": "parameters/sandboxId-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" } } ] }, "put": { "description": "Create or update an EdgeKV item (name-value). You need to specify the `namespace` and `group` the item belongs to. The target `namespace` must already exist before writing, while the `group` is automatically created for you if it doesn't exist yet.", "operationId": "put-item", "summary": "Akamai Write an Item", "tags": [ "Items" ], "externalDocs": { "description": "See documentation for this operation in Akamai's EdgeKV API", "url": "https://techdocs.akamai.com/edgekv/reference/put-item" }, "requestBody": { "content": { "application/json": { "example": { "currency": "\u20ac", "flag": "/belgium.png", "name": "Belgium" }, "schema": { "type": "object" } }, "text/plain": { "example": "English", "schema": { "type": "string" } } } }, "responses": { "200": { "description": "Confirmation of successful update.", "content": { "text/plain": { "example": "Item was upserted in database, namespace default, group countries, and key US.", "schema": { "type": "string" } } } }, "400": { "description": "Invalid namespace, group or item specified.", "content": { "application/problem+json": { "example": { "detail": "Key must only use a string that matches A-Z a-z 0-9 _ or -..", "errorCode": "EKV_9000", "instance": "/edgekv/error-instances/66344166-567c-4158-95b2-07d6127b8b75", "status": 400, "title": "Bad Request", "type": "/edgekv/error-types/edgekv-bad-request", "additionalDetail": { "requestId": "a4c461e09bf602be" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } }, "413": { "description": "Payload too large. The value has exceeded the allowed limits.", "content": { "application/problem+json": { "example": { "detail": "Value cannot exceed 262144 characters.", "errorCode": "EKV_9000", "instance": "/edgekv/error-instances/2d272e67-0c0c-4d43-9860-a8fc999e9256", "status": 413, "title": "Payload Too Large", "type": "/edgekv/error-types/edgekv-payload-too-large", "additionalDetail": { "requestId": "8bea61e1a0e50169" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } }, "429": { "description": "Request rate is too high.", "content": { "application/problem+json": { "example": { "detail": "Your request has been denied: 364 hits per second too high. limit set at 73. Please try again soon.", "errorCode": "EKV_9100", "instance": "/edgekv/error-instances/80f9503f-633e-4412-9393-62f329868911", "status": 429, "title": "Too Many Requests", "type": "/edgekv/error-types/edgekv-too-many-requests", "additionalDetail": { "requestId": "16fc97b7cb0ee4dd" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } }, "500": { "description": "An internal error.", "content": { "application/problem+json": { "example": { "detail": "An internal error occurred.", "errorCode": "EKV_0000", "instance": "/edgekv/error-instances/cdb7767c-817e-4805-9f28-0816eefa0ba8", "status": 500, "title": "Internal Server Error", "type": "/edgekv/error-types/edgekv-internal-server-error", "additionalDetail": { "requestId": "cd9b61e08148009b" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } } }, "parameters": [ { "description": "Accesses EdgeKV data in the specified sandbox environment. To list existing sandbox identifiers, run the Sandbox API's [List sandboxes](https://techdocs.akamai.com/sandbox/reference/get-sandboxes) operation.", "example": "{{sandboxId}}", "in": "query", "name": "sandboxId", "schema": { "example": "4d91057d-xxxx-xxxx-xxxx-3a4472699df4", "type": "string" }, "x-akamai": { "file-path": "parameters/sandboxId-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" } } ] }, "delete": { "description": "Mark an EdgeKV item for deletion. You need to specify the `namespace` and `group` the item belongs to. It can take ten seconds or longer for a deleted item to be removed from the database. If you attempt a read operation before the value has been updated globally, stale data may be returned until the update is complete. This is normal behavior for EdgeKV, which is an eventually consistent database.", "operationId": "delete-item", "summary": "Akamai Delete an Item", "tags": [ "Items" ], "externalDocs": { "description": "See documentation for this operation in Akamai's EdgeKV API", "url": "https://techdocs.akamai.com/edgekv/reference/delete-item" }, "responses": { "200": { "description": "Successfully marked for deletion.", "content": { "text/plain": { "example": "Item was deleted in the KV store with database 123456 namespace default group countries key US.", "schema": { "type": "string" } } } }, "400": { "description": "Invalid namespace specified.", "content": { "application/problem+json": { "example": { "detail": "Key must only use a string that matches A-Z a-z 0-9 _ or -..", "errorCode": "EKV_9000", "instance": "/edgekv/error-instances/66344166-567c-4158-95b2-07d6127b8b75", "status": 400, "title": "Bad Request", "type": "/edgekv/error-types/edgekv-bad-request", "additionalDetail": { "requestId": "a4c461e09bf602be" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } }, "429": { "description": "Request rate is too high.", "content": { "application/problem+json": { "example": { "detail": "Your request has been denied: 364 hits per second too high. limit set at 73. Please try again soon.", "errorCode": "EKV_9100", "instance": "/edgekv/error-instances/80f9503f-633e-4412-9393-62f329868911", "status": 429, "title": "Too Many Requests", "type": "/edgekv/error-types/edgekv-too-many-requests", "additionalDetail": { "requestId": "16fc97b7cb0ee4dd" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } } }, "parameters": [ { "description": "Accesses EdgeKV data in the specified sandbox environment. To list existing sandbox identifiers, run the Sandbox API's [List sandboxes](https://techdocs.akamai.com/sandbox/reference/get-sandboxes) operation.", "example": "{{sandboxId}}", "in": "query", "name": "sandboxId", "schema": { "example": "4d91057d-xxxx-xxxx-xxxx-3a4472699df4", "type": "string" }, "x-akamai": { "file-path": "parameters/sandboxId-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" } } ] }, "parameters": [ { "description": "Unique identifier for each item. The key of a key-value pair.", "example": "{{itemId}}", "in": "path", "name": "itemId", "required": true, "schema": { "example": "DE", "type": "string" }, "x-akamai": { "file-path": "parameters/itemId-path.yaml" } }, { "description": "Unique identifier for each group within a namespace.", "example": "{{groupId}}", "in": "path", "name": "groupId", "required": true, "schema": { "example": "countries", "type": "string" }, "x-akamai": { "file-path": "parameters/groupId-path.yaml" } }, { "description": "Unique identifier for each namespace.", "example": "{{namespaceId}}", "in": "path", "name": "namespaceId", "required": true, "schema": { "example": "marketing", "type": "string" }, "x-akamai": { "file-path": "parameters/namespaceId-path.yaml" } }, { "description": "__Enum__ Network environment to execute the API request on.", "example": "{{network}}", "in": "path", "name": "network", "required": true, "schema": { "example": "staging", "type": "string", "enum": [ "production", "staging" ] }, "x-akamai": { "file-path": "parameters/network-path.yaml" } } ] }, "/tokens": { "post": { "description": "Generate an access token that allows an EdgeWorkers code bundle to access the specified namespace. Each token name needs to be unique and have a defined expiration of no longer than six months. You can't renew a token once it expires. To learn more about access tokens, refer to the [EdgeKV guide](https://techdocs.akamai.com/edgekv/docs/generate-and-retrieve-edgekv-access-tokens).", "operationId": "post-tokens", "summary": "Akamai Create an Access Token", "tags": [ "Access tokens" ], "externalDocs": { "description": "See documentation for this operation in Akamai's EdgeKV API", "url": "https://techdocs.akamai.com/edgekv/reference/post-tokens" }, "requestBody": { "content": { "application/json": { "example": { "allowOnProduction": false, "allowOnStaging": true, "expiry": "2021-09-30", "name": "my_token", "namespacePermissions": { "marketing": [ "r", "w" ] } }, "schema": { "additionalProperties": false, "description": "Lists properties related to EdgeKV access token.", "type": "object", "required": [ "allowOnProduction", "allowOnStaging", "expiry", "name", "namespacePermissions" ], "properties": { "allowOnProduction": { "description": "Whether to allow this token access to the Akamai production network.", "example": "{{allowOnProduction}}", "type": "boolean" }, "allowOnStaging": { "description": "Whether to allow this token access to the Akamai staging network.", "example": "{{allowOnStaging}}", "type": "boolean" }, "expiry": { "description": "Desired token expiration date in ISO 8601 format, `YYYY-MM-DD`, such as `2022-01-31`. Expiry can be up to six months from creation.", "example": "{{expiry}}", "type": "string" }, "name": { "description": "Friendly name of the token. Used when retrieving tokens by name.", "example": "{{name}}", "type": "string" }, "namespacePermissions": { "description": "Namespace identifiers the token should have access to, plus the associated read, write, and delete permissions. All specified namespaces need the same database Data Access Policy. A namespace's Data Access Policy comes from the value of the `restrictDataAccess`, set when creating a namespace.", "maxProperties": 20, "minProperties": 1, "type": "object", "additionalProperties": { "description": "List of permissions a token should have on a namespace. This array's key is the name of the namespace that you want to grant permissions to. To list namespaces see, [List namespaces](https://techdocs.akamai.com/edgekv/reference/get-namespaces). You can specify `r` for read, `w` for write, or `d` for delete. ", "maxItems": 3, "minItems": 1, "type": "array", "uniqueItems": true, "items": { "type": "string", "enum": [ "r", "w", "d" ] }, "x-akamai": { "file-path": "schemas/token-namespace.yaml" } } }, "restrictToEdgeWorkerIds": { "description": "A set of EdgeWorker IDs authorized to access EdgeKV via the token. By default if you omit this array, the token authorizes access for all IDs.", "type": "array", "items": { "type": "string" } } }, "x-akamai": { "file-path": "schemas/token.yaml" } } } } }, "responses": { "200": { "description": "Returns generated token.", "content": { "application/json": { "example": { "expiry": "2021-09-30", "name": "my_token", "uuid": "fa3a7ae0-1b0c-45c7-adc3-f0638c6b7466", "value": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, "schema": { "allOf": [ { "additionalProperties": false, "type": "object", "required": [ "expiry", "name", "uuid" ], "properties": { "expiry": { "description": "The expiration date in ISO 8601 format, `YYYY-MM-DD`, such as `2022-01-31`.", "format": "date", "type": "string" }, "name": { "description": "The name assigned to the access token. You can't modify an access token name.", "type": "string" }, "uuid": { "description": "A generated unique identifier for the access token.", "format": "uuid", "type": "string" } } }, { "additionalProperties": false, "type": "object", "required": [ "value" ], "properties": { "value": { "description": "The access token value for use in the `edgekv_tokens.js` file.", "type": "string" } } } ] } } } }, "409": { "description": "An existing token using the same name was found.", "content": { "application/problem+json": { "example": { "detail": "Token with name my_token is already stored.", "errorCode": "EKV_3000", "instance": "/edgekv/error-instances/e0ddea79-a457-4f49-9d70-c4c22e674bcf", "status": 409, "title": "Conflict", "type": "/edgekv/error-types/edgekv-conflict", "additionalDetail": { "requestId": "9c5c61e18b90013b" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } }, "422": { "description": "The specified token JSON contained a syntax error or duplicate attributes.", "content": { "application/problem+json": { "example": { "detail": "The JSON request body contained a syntax error or duplicate attributes.", "errorCode": "EKV_2001", "instance": "/edgekv/error-instances/e0ddea79-a457-4f49-9d70-c4c22e674bcf", "status": 422, "title": "Unprocessable Entity", "type": "/edgekv/error-types/edgekv-unprocessable-entity", "additionalDetail": { "requestId": "9c5c61e18b90013b" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } }, "500": { "description": "Internal error.", "content": { "application/problem+json": { "example": { "detail": "An internal error occurred.", "errorCode": "EKV_0000", "instance": "/edgekv/error-instances/cdb7767c-817e-4805-9f28-0816eefa0ba8", "status": 500, "title": "Internal Server Error", "type": "/edgekv/error-types/edgekv-internal-server-error", "additionalDetail": { "requestId": "cd9b61e08148009b" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.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": "View a list of EdgeKV access tokens.", "operationId": "get-tokens", "summary": "Akamai List Access Tokens", "tags": [ "Access tokens" ], "externalDocs": { "description": "See documentation for this operation in Akamai's EdgeKV API", "url": "https://techdocs.akamai.com/edgekv/reference/get-tokens" }, "responses": { "200": { "description": "Returns a list of EdgeKV access tokens you have permissions to see.", "content": { "application/json": { "example": { "tokens": [ { "expiry": "2021-09-30", "name": "token1", "uuid": "12886ccf-7662-5f19-b039-766740ce227f" }, { "expiry": "2021-09-30", "name": "my_token", "uuid": "a600dfaa-3b7a-5d2a-bae3-b0c0d0e88e4a" } ] }, "schema": { "additionalProperties": false, "description": "Represents a collection of tokens.", "type": "object", "required": [ "tokens" ], "properties": { "tokens": { "description": "A list of tokens.", "minItems": 1, "type": "array", "items": { "additionalProperties": false, "type": "object", "required": [ "expiry", "name", "uuid" ], "properties": { "expiry": { "description": "The expiration date in ISO 8601 format, `YYYY-MM-DD`, such as `2022-01-31`.", "format": "date", "type": "string" }, "name": { "description": "The name assigned to the access token. You can't modify an access token name.", "type": "string" }, "uuid": { "description": "A generated unique identifier for the access token.", "format": "uuid", "type": "string" } } } } }, "x-akamai": { "file-path": "schemas/list-tokens-200.yaml" } } } } }, "404": { "description": "No tokens are found.", "content": { "application/problem+json": { "example": { "detail": "No tokens exist.", "errorCode": "EKV_3000", "instance": "/edgekv/error-instances/420e5e11-210f-4d16-ab84-eebf4b70757a", "status": 404, "title": "Not Found", "type": "/edgekv/error-types/edgekv-not-found", "additionalDetail": { "requestId": "aad261e0a45b000a" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } }, "500": { "description": "Internal error.", "content": { "application/problem+json": { "example": { "detail": "An internal error occurred.", "errorCode": "EKV_0000", "instance": "/edgekv/error-instances/cdb7767c-817e-4805-9f28-0816eefa0ba8", "status": 500, "title": "Internal Server Error", "type": "/edgekv/error-types/edgekv-internal-server-error", "additionalDetail": { "requestId": "cd9b61e08148009b" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } } }, "parameters": [ { "description": "Whether to include expired tokens that are less than 30 days old in the response.", "example": "{{includeExpired}}", "in": "query", "name": "includeExpired", "schema": { "example": true, "type": "boolean" }, "x-akamai": { "file-path": "parameters/includeExpired-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" } } ] } }, "/tokens/{tokenName}": { "get": { "description": "Download a previously created EdgeKV access token. To get a token you need to know the token `name`. To learn more about access tokens, refer to the [EdgeKV guide](https://techdocs.akamai.com/edgekv/docs/generate-and-retrieve-edgekv-access-tokens).", "operationId": "get-token", "summary": "Akamai Download an Access Token", "tags": [ "Access tokens" ], "externalDocs": { "description": "See documentation for this operation in Akamai's EdgeKV API", "url": "https://techdocs.akamai.com/edgekv/reference/get-token" }, "responses": { "200": { "description": "Returns an EdgeKV access token.", "content": { "application/json": { "example": { "expiry": "2021-09-30", "name": "my_token", "uuid": "fa3a7ae0-1b0c-45c7-adc3-f0638c6b7466", "value": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, "schema": { "allOf": [ { "additionalProperties": false, "type": "object", "required": [ "expiry", "name", "uuid" ], "properties": { "expiry": { "description": "The expiration date in ISO 8601 format, `YYYY-MM-DD`, such as `2022-01-31`.", "format": "date", "type": "string" }, "name": { "description": "The name assigned to the access token. You can't modify an access token name.", "type": "string" }, "uuid": { "description": "A generated unique identifier for the access token.", "format": "uuid", "type": "string" } } }, { "additionalProperties": false, "type": "object", "required": [ "value" ], "properties": { "value": { "description": "The access token value for use in the `edgekv_tokens.js` file.", "type": "string" } } } ] } } } }, "400": { "description": "Invalid token name.", "content": { "application/problem+json": { "example": { "detail": "Name contains invalid characters.", "errorCode": "EKV_2000", "instance": "/edgekv/error-instances/0959b9b3-8043-4f87-9510-0e752160d713", "status": 400, "title": "Bad Request", "type": "/edgekv/error-types/edgekv-bad-request", "additionalDetail": { "requestId": "e30761e0a7b6072b" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } }, "404": { "description": "Token is not found.", "content": { "application/problem+json": { "example": { "detail": "Token with name token1 does not exist.", "errorCode": "EKV_3000", "instance": "/edgekv/error-instances/e77c8cc1-3698-412a-b574-64fc12c05741", "status": 404, "title": "Not Found", "type": "/edgekv/error-types/edgekv-not-found", "additionalDetail": { "requestId": "b08961e0a5540233" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } }, "410": { "description": "Token has expired.", "content": { "application/problem+json": { "example": { "detail": "Token has expired.", "errorCode": "EKV_3000", "instance": "/edgekv/error-instances/e77c8cc1-3698-412a-b574-64fc12c05741", "status": 410, "title": "Not Found", "type": "/edgekv/error-types/edgekv-not-found", "additionalDetail": { "requestId": "b08961e0a5540233" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } }, "500": { "description": "Internal error.", "content": { "application/problem+json": { "example": { "detail": "An internal error occurred.", "errorCode": "EKV_0000", "instance": "/edgekv/error-instances/cdb7767c-817e-4805-9f28-0816eefa0ba8", "status": 500, "title": "Internal Server Error", "type": "/edgekv/error-types/edgekv-internal-server-error", "additionalDetail": { "requestId": "cd9b61e08148009b" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.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": "Once you revoke an access token, you can't undo it. You also need to update any deployed EdgeWorkers code bundles that use the old token with a new token, or requests to EdgeKV fail. Any requests from an EdgeWorkers code bundle using a revoked token cause a 401 error. To learn more about access tokens, refer to the [EdgeKV guide](https://techdocs.akamai.com/edgekv/docs/generate-and-retrieve-edgekv-access-tokens).", "operationId": "delete-token", "summary": "Akamai Revoke an Access Token", "tags": [ "Access tokens" ], "externalDocs": { "description": "See documentation for this operation in Akamai's EdgeKV API", "url": "https://techdocs.akamai.com/edgekv/reference/delete-token" }, "responses": { "200": { "description": "Token revocation successful.", "content": { "application/json": { "example": { "name": "my_token", "uuid": "fa3a7ae0-1b0c-45c7-adc3-f0638c6b7466" }, "schema": { "additionalProperties": false, "description": "Lists properties related to an EdgeKV access token.", "type": "object", "required": [ "name", "uuid" ], "properties": { "name": { "description": "The name assigned to the access token. You can't modify an access token name.", "type": "string" }, "uuid": { "description": "A generated unique identifier for the access token.", "format": "uuid", "type": "string" } }, "x-akamai": { "file-path": "schemas/tokens-delete-200.yaml" } } } } }, "400": { "description": "Invalid token name.", "content": { "application/problem+json": { "example": { "detail": "Name contains invalid characters.", "errorCode": "EKV_2000", "instance": "/edgekv/error-instances/0959b9b3-8043-4f87-9510-0e752160d713", "status": 400, "title": "Bad Request", "type": "/edgekv/error-types/edgekv-bad-request", "additionalDetail": { "requestId": "e30761e0a7b6072b" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } }, "404": { "description": "Token is not found.", "content": { "application/problem+json": { "example": { "detail": "Token with name token1 does not exist.", "errorCode": "EKV_3000", "instance": "/edgekv/error-instances/e77c8cc1-3698-412a-b574-64fc12c05741", "status": 404, "title": "Not Found", "type": "/edgekv/error-types/edgekv-not-found", "additionalDetail": { "requestId": "b08961e0a5540233" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.yaml" } } } } }, "500": { "description": "Internal error.", "content": { "application/problem+json": { "example": { "detail": "An internal error occurred.", "errorCode": "EKV_0000", "instance": "/edgekv/error-instances/cdb7767c-817e-4805-9f28-0816eefa0ba8", "status": 500, "title": "Internal Server Error", "type": "/edgekv/error-types/edgekv-internal-server-error", "additionalDetail": { "requestId": "cd9b61e08148009b" } }, "schema": { "additionalProperties": false, "description": "Error messaging.", "type": "object", "properties": { "additionalDetail": { "additionalProperties": false, "type": "object", "properties": { "requestId": { "description": "Request identifier.", "type": "string" } } }, "detail": { "description": "A description of the error.", "type": "string" }, "errorCode": { "description": "Internal error code used to assist with troubleshooting by Akamai employees.", "type": "string" }, "instance": { "description": "Reference to unique instance of the error.", "type": "string" }, "status": { "description": "The HTTP code for the error.", "type": "integer" }, "title": { "description": "Text representation of the HTTP error code.", "type": "string" }, "type": { "description": "Reference to additional documentation.", "type": "string" } }, "x-akamai": { "file-path": "schemas/error.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": "Unique identifier for each namespace.", "example": "{{tokenName}}", "in": "path", "name": "tokenName", "required": true, "schema": { "example": "my_token", "type": "string" }, "x-akamai": { "file-path": "parameters/tokenId-path.yaml" } } ] } }, "x-readme": { "samples-languages": [ "curl", "python", "node" ] }, "servers": [ { "url": "https://{hostname}/edgekv/v1" } ] }