openapi: 3.0.0
info:
title: 'Akamai: API Endpoint Definition Access tokens Activations API'
version: '2'
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
description: Manage your security configuration activations.
servers:
- url: https://{hostname}/api-definitions/v2
tags:
- description: Manage your security configuration activations.
name: Activations
paths:
/activations:
x-akamai:
file-path: paths/activations.yaml
path-info: /activations
post:
description: __All products__ Activates one or more configurations globally. Note that you need to explicitly list any invalid hosts in the `acknowledgedInvalidHostsByConfig` parameter in order to successfully activate a configuration that includes invalid hostnames. If you have an invalid hostname that isn't explicitly called out you'll receive an error telling you to add them to `acknowledgedInvalidHostsByConfig`. See [Activate with invalid hostnames](https://techdocs.akamai.com/application-security/reference/activate-with-invalid-hostnames) for instructions.
externalDocs:
description: See documentation for this operation in Akamai's Application Security API
url: https://techdocs.akamai.com/application-security/reference/post-activations
operationId: post-activations
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).
in: query
name: accountSwitchKey
required: false
schema:
example: 1-5C0YLB:1-8BYUX
type: string
requestBody:
content:
application/json:
example:
action: ACTIVATE
activationConfigs:
- configId: 1
configVersion: 4
network: STAGING
note: Free text notes
notificationEmails:
- a@example.com
- b@example.com
schema:
additionalProperties: false
properties:
acknowledgedInvalidHosts:
description: The list of invalid hostnames in the security configuration to activate. In some cases, you may want to activate a security configuration with hostnames that WAF can't protect (for example, hostnames not managed as Akamai properties, or managed under a different contract than the configuration). By default, the existence of invalid hostnames blocks activation with a warning. The warning includes the names of the invalid hostnames. If you want to activate a configuration with invalid hostnames, enter the hostnames in this array. This field is now deprecated. Use `acknowledgedInvalidHostsByConfig` instead.
items:
type: string
type: array
acknowledgedInvalidHostsByConfig:
description: The list of invalid hostnames per security configuration to activate. In some cases, you may want to activate a security configuration with hostnames that WAF can't protect (for example, hostnames not managed as Akamai properties, or managed under a different contract than the configuration). By default, the existence of invalid hostnames blocks activation with a warning. The warning includes the names of the invalid hostnames. If you want to activate a configuration with invalid hostnames, enter the hostnames and the configuration ID in this array.
items:
additionalProperties: false
properties:
configId:
description: Uniquely identifies the security configuration with invalid hostnames.
type: integer
invalidHosts:
description: The list of invalid hostnames in the security configuration.
items:
type: string
type: array
required:
- configId
- invalidHosts
type: object
type: array
action:
description: The action to take, either `ACTIVATE` or `DEACTIVATE`.
enum:
- ACTIVATE
- DEACTIVATE
type: string
activationConfigs:
description: Specifies the security configuration and version to activate or deactivate.
items:
additionalProperties: false
properties:
configId:
description: The origin identifier or destination configuration to activate.
type: integer
configVersion:
description: The origin version or destination configuration to activate.
type: integer
required:
- configId
- configVersion
type: object
maxItems: 2
minItems: 1
type: array
network:
description: The target Akamai activation environment, either `STAGING` or `PRODUCTION`.
enum:
- STAGING
- PRODUCTION
type: string
note:
description: The notes you entered for the activation.
type: string
notificationEmails:
description: The email addresses to notify when the activation happens.
items:
type: string
type: array
required:
- action
- activationConfigs
- network
- note
- notificationEmails
type: object
x-akamai:
file-path: schemas/activations-post.yaml
required: true
responses:
'200':
content:
application/json:
example:
action: ACTIVATE
activationConfigs:
- configId: 1
configName: config 1
configVersion: 4
previousConfigVersion: 2
activationId: 1234
createDate: '2013-10-07T17:41:52+00:00'
createdBy: mrossi
dispatchCount: 1
estimate: PTM5
network: PRODUCTION
status: RECEIVED
schema:
additionalProperties: false
description: Contains the activation status and settings for a configuration version.
properties:
action:
description: The action performed on this activation, either `ACTIVATE` or `DEACTIVATE`.
enum:
- ACTIVATE
- DEACTIVATE
type: string
activationConfigs:
description: Specifies the security configuration and activation version.
items:
additionalProperties: false
properties:
configId:
description: The origin identifier or the activation's destination configuration.
type: integer
configName:
description: The name you assigned to the configuration. This field is provided for information purposes and only appears in the API output.
type: string
configVersion:
description: The origin version or the activation's destination configuration.
type: integer
previousConfigVersion:
description: __Read-only__ The previous active configuration version.
readOnly: true
type: integer
required:
- configId
- configVersion
type: object
type: array
activationId:
description: Uniquely identifies the activation.
type: integer
completionDate:
description: __Read-only__ The ISO 8601 timestamp at which the activation reaches a steady state and validates across the Akamai network.
format: date-time
readOnly: true
type: string
createDate:
description: __Read-only__ The ISO 8601 timestamp at which the activation request was submitted.
format: date-time
readOnly: true
type: string
createdBy:
description: __Read-only__ The user who created the activation request.
readOnly: true
type: string
dispatchCount:
description: __Read-only__ The number of times which this activation has been dispatched to the Akamai edge network. A number greater than 1 indicates that this activation may be retried due to network safety concerns.
readOnly: true
type: integer
estimate:
description: The estimated time remaining to complete the activation in ISO 8601 duration format, starting when the response is generated.
type: string
network:
description: The Akamai activation environment, either `STAGING` or `PRODUCTION`.
enum:
- STAGING
- PRODUCTION
type: string
status:
description: The current activation status, either `RECEIVED`, `LIVE`, `DEPLOYED`, `CANCELING`, `STOPPED`, `REMOVED`, `ROLLBACK`, `ACTIVATED`, `FAILED`, `CANCELLING`, or `UNDEPLOYED`.
enum:
- RECEIVED
- LIVE
- DEPLOYED
- STOPPED
- REMOVED
- ROLLBACK
- ACTIVATED
- FAILED
- CANCELLING
- UNDEPLOYED
type: string
required:
- activationId
- action
- network
- status
- activationConfigs
- createdBy
- createDate
type: object
x-akamai:
file-path: schemas/activation-status.yaml
description: Activation request successful.
'202':
content:
application/json:
example:
createDate: '2018-06-19T11:27:55Z'
links:
check-status:
href: /appsec/v1/activations/status/f81c92c5-b150-4c41-9b53-9cef7969150a
statusId: f81c92c5-b150-4c41-9b53-9cef7969150a
schema:
additionalProperties: false
description: Describes the activation request's status upon creation.
properties:
createDate:
description: The time when you submitted this activation request.
format: date-time
type: string
links:
additionalProperties: false
description: A 303 response returns a link to additional information about your activation request status.
properties:
check-status:
additionalProperties: false
description: Returns details about the status of the activation request.
properties:
detail:
description: Any additional information about the target of the link.
type: string
href:
description: URL to access or perform the action on a related resource. May be expressed as an absolute server path, or relative to the current URL call.
type: string
method:
default: GET
description: The HTTP method with which to call the `href`, `GET` by default.
type: string
required:
- href
type: object
x-akamai:
file-path: schemas/link.yaml
required:
- check-status
type: object
statusId:
description: Uniquely identifies the activation request. You can use this ID to poll for the status of your activation request.
type: string
required:
- statusId
- createDate
type: object
x-akamai:
file-path: schemas/activation-request-status-created.yaml
description: Activation request launched.
headers:
Location:
description: Location at which you can find the status of the ongoing job to create your activation request.
schema:
type: string
'400':
content:
application/problem+json:
example:
detail: The request could not be understood by the server due to malformed syntax.
instance: https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749
status: 400
title: Bad Request
type: https://problems.luna.akamaiapis.net/appsec/error-types/BAD-REQUEST
schema:
additionalProperties: true
description: Details the errors you can receive.
properties:
detail:
description: The detailed error message.
type: string
fieldErrors:
description: Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.
type: object
instance:
description: The non-referenceable URI that indicates the error instance.
example: https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749
type: string
status:
description: The HTTP status code.
example: 404
type: integer
title:
description: The error title.
example: Not Found
type: string
type:
description: The URL for the error type.
example: https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND
type: string
required:
- title
- type
- detail
- instance
- status
type: object
x-akamai:
file-path: schemas/problem-details.yaml
description: '[Bad request](https://techdocs.akamai.com/application-security/reference/400). Invalid request body or URL parameter input.'
x-akamai:
file-path: errors/400.yaml
'403':
content:
application/problem+json:
example:
detail: You do not have the necessary access to perform this operation or the requested resource cannot be modified
instance: https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749
status: 403
title: Forbidden
type: https://problems.luna.akamaiapis.net/appsec-resource/error-types/ACCESS-DENIED
schema:
additionalProperties: true
description: Details the errors you can receive.
properties:
detail:
description: The detailed error message.
type: string
fieldErrors:
description: Pointers to fields for which invalid input was provided, whose values are messages detailing the reason this input was invalid for this field.
type: object
instance:
description: The non-referenceable URI that indicates the error instance.
example: https://problems.luna.akamaiapis.net/api-definitions/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749
type: string
status:
description: The HTTP status code.
example: 404
type: integer
title:
description: The error title.
example: Not Found
type: string
type:
description: The URL for the error type.
example: https://problems.luna.akamaiapis.net/api-definitions/error-types/NOT-FOUND
type: string
required:
- title
- type
- detail
- instance
- status
type: object
x-akamai:
file-path: schemas/problem-details.yaml
description: '[Forbidden](https://techdocs.akamai.com/application-security/reference/403). You don''t have access to the configuration.'
x-akamai:
file-path: errors/403.yaml
summary: Activate a configuration version
tags:
- Activations
x-akamai:
labels:
- All products
/ids/{edgeWorkerId}/activations:
parameters:
- description: Unique identifier for an EdgeWorker.
example: '{{edgeWorkerId}}'
in: path
name: edgeWorkerId
required: true
schema:
example: 42
minimum: 1
type: integer
x-akamai:
file-path: parameters/edgeWorkerId-path.yaml
post:
description: Activate an existing EdgeWorker version on the Akamai network, either staging or production.
operationId: post-activations
summary: Akamai Activate an EdgeWorker Version
tags:
- Activations
externalDocs:
description: See documentation for this operation in Akamai's EdgeWorkers API
url: https://techdocs.akamai.com/edgeworkers/reference/post-activations
requestBody:
required: true
content:
application/json:
example:
network: PRODUCTION
note: Version 2 fixes an issue detected in production.
version: '2'
schema:
additionalProperties: false
type: object
required:
- network
- version
properties:
network:
description: The network on which the version will be activated, either `STAGING` or `PRODUCTION`.
example: '{{network}}'
type: string
enum:
- STAGING
- PRODUCTION
note:
description: Note to specify why the version is being activated.
example: '{{note}}'
maxLength: 128
minLength: 1
type: string
version:
description: Unique identifier of the version that will be activated.
example: '{{version}}'
minLength: 1
type: string
x-akamai:
file-path: schemas/activations-post.yaml
responses:
'201':
description: Provides details for an EdgeWorker activation.
content:
application/json:
example:
accountId: A-CCT3456
activationId: 3
createdBy: jsmith
createdTime: '2020-04-05T18:17:46Z'
edgeWorkerId: 42
lastModifiedTime: '2020-04-05T18:17:46Z'
network: PRODUCTION
note: Version 2 fixes an issue detected in production.
status: PRESUBMIT
version: '2'
schema:
additionalProperties: false
type: object
required:
- edgeWorkerId
- version
- activationId
- accountId
- status
- network
- createdBy
- createdTime
- lastModifiedTime
properties:
accountId:
description: Identifier for the account under which the EdgeWorker was created.
minLength: 1
type: string
activationId:
description: Unique identifier of the activation.
minimum: 1
type: integer
createdBy:
description: Username of the person who activated the EdgeWorker.
minLength: 1
type: string
createdTime:
description: ISO 8601 timestamp indicating when the EdgeWorker was activated.
format: date-time
type: string
edgeWorkerId:
description: Unique identifier of the EdgeWorker.
minimum: 1
type: integer
lastModifiedTime:
description: ISO 8601 timestamp indicating when the activation was most recently modified.
format: date-time
type: string
network:
description: The network on which the version is activated, either `PRODUCTION` or `STAGING`.
type: string
enum:
- STAGING
- PRODUCTION
note:
description: Note to specify why the version is being activated.
maxLength: 128
minLength: 1
type: string
status:
description: The activation status of the EdgeWorker version, either `PRESUBMIT`, `PENDING`, `IN_PROGRESS`, `COMPLETE`, `ABORTED`, `ERROR`, `DELETED_BY_AKAMAI`, or `EXPIRED`.
type: string
enum:
- PRESUBMIT
- PENDING
- IN_PROGRESS
- ABORTED
- ERROR
- COMPLETE
- DELETED_BY_AKAMAI
- EXPIRED
- CANCELLED
version:
description: Unique identifier of the version.
minLength: 1
type: string
x-akamai:
file-path: schemas/activations-post-201.yaml
headers:
Location:
description: Use this URL to fetch the new resource.
schema:
type: string
x-akamai:
file-path: headers/Location.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 the list of activations for an existing EdgeWorker based on ID. You can choose to specify the version in the request. The response filters the list of activations down by version number.
operationId: get-activations
summary: Akamai List Activations
tags:
- Activations
externalDocs:
description: See documentation for this operation in Akamai's EdgeWorkers API
url: https://techdocs.akamai.com/edgeworkers/reference/get-activations
responses:
'200':
description: This section describes a list of EdgeWorker activations.
content:
application/json:
example:
activations:
- accountId: A-CCT7890
activationId: 3
createdBy: jkowalski
createdTime: '2020-07-09T09:03:28Z'
edgeWorkerId: 42
lastModifiedTime: '2020-07-09T09:04:42Z'
network: PRODUCTION
note: Version 2 fixes an issue detected in production.
status: PENDING
version: '2'
- accountId: A-CCT9012
activationId: 1
createdBy: jsmith
createdTime: '2020-07-09T08:13:54Z'
edgeWorkerId: 42
lastModifiedTime: '2020-07-09T08:35:02Z'
network: STAGING
status: IN_PROGRESS
version: '1'
- accountId: A-CCT5678
activationId: 2
createdBy: adevi
createdTime: '2020-07-10T14:23:42Z'
edgeWorkerId: 42
lastModifiedTime: '2020-07-10T14:53:25Z'
network: PRODUCTION
status: COMPLETE
version: '2'
schema:
additionalProperties: false
type: object
required:
- activations
properties:
activations:
description: List of EdgeWorker activations.
minItems: 1
type: array
items:
additionalProperties: false
type: object
required:
- edgeWorkerId
- version
- activationId
- accountId
- status
- network
- createdBy
- createdTime
- lastModifiedTime
properties:
accountId:
description: Identifier for the account under which the EdgeWorker was created.
minLength: 1
type: string
activationId:
description: Unique identifier of the activation.
minimum: 1
type: integer
createdBy:
description: Username of the person who created the EdgeWorker.
minLength: 1
type: string
createdTime:
description: ISO 8601 timestamp indicating when the EdgeWorker was created.
format: date-time
type: string
edgeWorkerId:
description: Unique identifier of the EdgeWorker.
minimum: 1
type: integer
lastModifiedTime:
description: ISO 8601 timestamp indicating when the EdgeWorker was most recently modified.
format: date-time
type: string
network:
description: The network on which the version is activated, either `PRODUCTION` or `STAGING`.
type: string
enum:
- STAGING
- PRODUCTION
note:
description: Note to specify why the version is being activated.
maxLength: 128
minLength: 1
type: string
status:
description: The activation status of the EdgeWorker version, either `PRESUBMIT`, `PENDING`, `IN_PROGRESS`, `COMPLETE`, `CANCELLED`, `ABORTED`, `ERROR`, `DELETED_BY_AKAMAI`, or `EXPIRED`.
type: string
enum:
- PRESUBMIT
- PENDING
- IN_PROGRESS
- ABORTED
- ERROR
- COMPLETE
- DELETED_BY_AKAMAI
- EXPIRED
- CANCELLED
version:
description: Unique identifier of the version.
minLength: 1
type: string
x-akamai:
file-path: schemas/activation-get-200.yaml
x-akamai:
file-path: schemas/activations-get-200.yaml
parameters:
- description: Unique identifier for a specific EdgeWorker version.
example: '{{version}}'
in: query
name: version
schema:
example: '5'
type: string
x-akamai:
file-path: parameters/version-query.yaml
- description: When enabled, limits results to show only currently activate versions. Pair this with a `network` to get the version that's currently active on a specific network. Otherwise the response may include up to two versions.
example: '{{activeOnNetwork}}'
in: query
name: activeOnNetwork
schema:
example: true
type: boolean
x-akamai:
file-path: parameters/activeOnNetwork-query.yaml
- description: __Enum__ When enabled, limits results to show only versions activated on a specific network, either `STAGING` or `PRODUCTION`. Pair this with `activeOnNetwork=true` to get the version that's currently active on the specified network.
example: '{{network}}'
in: query
name: network
schema:
example: STAGING
type: string
enum:
- STAGING
- PRODUCTION
x-akamai:
file-path: parameters/activationNetwork-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
/ids/{edgeWorkerId}/activations/rollback:
parameters:
- description: Unique identifier for an EdgeWorker.
example: '{{edgeWorkerId}}'
in: path
name: edgeWorkerId
required: true
schema:
example: 42
minimum: 1
type: integer
x-akamai:
file-pat
# --- truncated at 32 KB (160 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/akamai/refs/heads/main/openapi/akamai-activations-api-openapi.yml