Akamai API Security General configuration settings API
Manage security configurations and their versions.
Manage security configurations and their versions.
openapi: 3.0.0
info:
description: 'Manage your configurations for Kona Site Defender,
Web Application Protector, and Client Reputation.
'
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
title: 'Akamai: Application Security Activation history General configuration settings API'
version: v1
servers:
- url: https://{hostname}/appsec/v1
tags:
- description: Manage security configurations and their versions.
name: General configuration settings
paths:
/configs:
x-akamai:
file-path: paths/configs.yaml
path-info: /configs
post:
description: Create a new WAP or KSD security configuration. KSD security configurations start out empty, and WAP configurations are created with preset values. The contract you pass in the request body determines which product you use. You can edit the default settings included in the WAP configuration, but you'll need to run additional operations in this API to select specific protections for KSD. Your KSD configuration needs match targets and protection settings before you activate. _Products:_ All.
externalDocs:
description: See documentation for this operation in Akamai's Application Security API
url: https://techdocs.akamai.com/application-security/reference/post-config
operationId: post-config
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
requestBody:
content:
application/json:
example:
contractId: C-0N7RAC7
description: description1
groupId: 32145
hostnames:
- new.example.com
- www.example.com
name: newapitest
schema:
additionalProperties: false
description: Specifies the details of a security config.
properties:
contractId:
description: Contract ID.
example: '{{contractId}}'
type: string
createFrom:
additionalProperties: false
description: Contains details about a source configuration and version for cloning a new security configuration.
properties:
configId:
description: Uniquely identifies the security configuration.
type: integer
version:
description: The configuration version to clone from.
type: integer
required:
- configId
- version
type: object
description:
description: Describes the security configuration.
example: '{{description}}'
type: string
groupId:
description: Group ID.
example: '{{groupId}}'
type: integer
hostnames:
description: List of hostnames to be added to the configuration.
items:
type: string
type: array
name:
description: The name you assigned to the security configuration.
example: '{{name}}'
type: string
required:
- name
- description
- hostnames
type: object
x-akamai:
file-path: schemas/config-post.yaml
required: true
responses:
'201':
content:
application/json:
example:
configId: 71710
description: description1
name: newapitest
version: 1
schema:
additionalProperties: false
description: Specifies the details of a security config.
properties:
contractId:
description: Contract ID.
type: string
createFrom:
additionalProperties: false
description: Contains details about a source configuration and version for cloning a new security configuration.
properties:
configId:
description: Uniquely identifies the security configuration.
type: integer
version:
description: The configuration version to clone from.
type: integer
required:
- configId
- version
type: object
description:
description: Describes the security configuration.
type: string
groupId:
description: Group ID.
type: integer
hostnames:
description: List of hostnames to be added to the configuration.
items:
type: string
type: array
name:
description: The name you assigned to the security configuration.
type: string
required:
- name
- description
- hostnames
type: object
x-akamai:
file-path: schemas/config-post.yaml
description: Successfully created a security configuration.
'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:
additionalProperties:
description: Fields that provide additional details about the problem.
type: string
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:
additionalProperties:
description: Fields that provide additional details about the problem.
type: string
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 create access for security configurations.'
x-akamai:
file-path: errors/403.yaml
summary: Akamai API Security Create a Configuration
tags:
- General configuration settings
get:
description: Lists available security configurations. _Products:_ All.
externalDocs:
description: See documentation for this operation in Akamai's Application Security API
url: https://techdocs.akamai.com/application-security/reference/get-configs
operationId: get-configs
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
responses:
'200':
content:
application/json:
example:
configurations:
- description: (user notes)
id: 22330
latestVersion: 5
name: CaroTestTransition2Versioning
- id: 7180
latestVersion: 9
name: Corporate Sites WAF
productionHostnames:
- example.com
- www.example.net
- m.example.com
productionVersion: 1
stagingVersion: 2
schema:
additionalProperties: false
description: Specifies the details of a security config.
properties:
configurations:
description: A list of security configurations.
items:
additionalProperties: false
description: Contains details about a security configuration.
properties:
description:
description: __Read-only__ Describes the security configuration.
readOnly: true
type: string
id:
description: __Read-only__ Uniquely identifies the security configuration.
readOnly: true
type: integer
latestVersion:
description: __Read-only__ The latest version of the security configuration.
readOnly: true
type: integer
name:
description: __Read-only__ The security configuration name.
readOnly: true
type: string
productionHostnames:
description: __Read-only__ The list of hostnames protected by this security configuration in the production network.
items:
type: string
readOnly: true
type: array
productionVersion:
description: __Read-only__ The latest security configuration version active in the production network.
readOnly: true
type: integer
stagingVersion:
description: __Read-only__ The latest security configuration version active in the staging network.
readOnly: true
type: integer
required:
- id
- latestVersion
- name
type: object
x-akamai:
file-path: schemas/config-get.yaml
type: array
required:
- configurations
type: object
x-akamai:
file-path: schemas/configs-get.yaml
description: Successful response.
'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:
additionalProperties:
description: Fields that provide additional details about the problem.
type: string
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 resource.'
x-akamai:
file-path: errors/403.yaml
'404':
content:
application/problem+json:
example:
detail: The requested resource is not found
instance: https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749
status: 404
title: Not Found
type: https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND
schema:
additionalProperties: true
description: Details the errors you can receive.
properties:
detail:
description: The detailed error message.
type: string
fieldErrors:
additionalProperties:
description: Fields that provide additional details about the problem.
type: string
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: '[Not found](https://techdocs.akamai.com/application-security/reference/404). That resource doesn''t exist, or the URL is malformed.'
x-akamai:
file-path: errors/404.yaml
summary: Akamai API Security List Configurations
tags:
- General configuration settings
/configs/{configId}:
parameters:
- description: A unique identifier for each configuration.
example: '{{configId}}'
in: path
name: configId
required: true
schema:
example: 77653
format: int64
type: integer
x-akamai:
file-path: parameters/config-id-path.yaml
x-akamai:
file-path: paths/config.yaml
path-info: /configs/{configId}
get:
description: Retrieves the configuration details.
externalDocs:
description: See documentation for this operation in Akamai's Application Security API
url: https://techdocs.akamai.com/application-security/reference/get-config
operationId: get-config
parameters:
- description: If `true`, include the list of hostnames protected by this security configuration in the production network. If `false`, exclude the list of hostnames protected by this security configuration in the production network.
example: '{{includeHostnames}}'
in: query
name: includeHostnames
required: false
schema:
default: false
example: false
type: boolean
x-akamai:
file-path: parameters/include-hostnames-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
responses:
'200':
content:
application/json:
example:
id: 7180
latestVersion: 9
name: Corporate Sites WAF
productionHostnames:
- example.com
- www.example.net
- m.example.com
productionVersion: 1
stagingVersion: 2
schema:
additionalProperties: false
description: Contains details about a security configuration.
properties:
description:
description: __Read-only__ Describes the security configuration.
readOnly: true
type: string
id:
description: __Read-only__ Uniquely identifies the security configuration.
readOnly: true
type: integer
latestVersion:
description: __Read-only__ The latest version of the security configuration.
readOnly: true
type: integer
name:
description: __Read-only__ The security configuration name.
readOnly: true
type: string
productionHostnames:
description: __Read-only__ The list of hostnames protected by this security configuration in the production network.
items:
type: string
readOnly: true
type: array
productionVersion:
description: __Read-only__ The latest security configuration version active in the production network.
readOnly: true
type: integer
stagingVersion:
description: __Read-only__ The latest security configuration version active in the staging network.
readOnly: true
type: integer
required:
- id
- latestVersion
- name
type: object
x-akamai:
file-path: schemas/config-get.yaml
description: Successful response.
'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:
additionalProperties:
description: Fields that provide additional details about the problem.
type: string
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 resource.'
x-akamai:
file-path: errors/403.yaml
'404':
content:
application/problem+json:
example:
detail: The requested resource is not found
instance: https://problems.luna.akamaiapis.net/appsec/error-instances/d54686b5-21cb-4ab7-a8d6-a92282cf1749
status: 404
title: Not Found
type: https://problems.luna.akamaiapis.net/appsec/error-types/NOT-FOUND
schema:
additionalProperties: true
description: Details the errors you can receive.
properties:
detail:
description: The detailed error message.
type: string
fieldErrors:
additionalProperties:
description: Fields that provide additional details about the problem.
type: string
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: '[Not found](https://techdocs.akamai.com/application-security/reference/404). Security configuration wasn''t found.'
x-akamai:
file-path: errors/404.yaml
summary: Akamai API Security Get a Security Configuration
tags:
- General configuration settings
put:
description: Update the name of your security configuration. _Products:_ All.
externalDocs:
description: See documentation for this operation in Akamai's Application Security API
url: https://techdocs.akamai.com/application-security/reference/put-config
operationId: put-config
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
requestBody:
content:
application/json:
example:
description: description1
name: newapitest
schema:
additionalProperties: false
description: Contains details of a security configuration.
properties:
description:
description: Describes the security configuration.
example: '{{description}}'
type: string
name:
description: The name you assigned to the security configuration.
example: '{{name}}'
type: string
required:
- name
type: object
x-akamai:
file-path: schemas/config-rename.yaml
required: true
responses:
'200':
content:
application/json:
example:
description: description1
name: newapitest
schema:
additionalProperties: false
description: Contains details of a security configuration.
properties:
description:
description: Describes the security configuration.
type: string
name:
description: The name you assigned to the security configuration.
type: string
required:
- name
type: object
x-akamai:
file-path: schemas/config-rename.yaml
description: Successfully renamed the security configuration.
'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.
# --- truncated at 32 KB (118 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/akamai-api-security/refs/heads/main/openapi/akamai-api-security-general-configuration-settings-api-openapi.yml