Akamai API Security Subscriptions API
Manage the email subscriptions for features within a specific security configuration.
Manage the email subscriptions for features within a specific security configuration.
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 Subscriptions API'
version: v1
servers:
- url: https://{hostname}/appsec/v1
tags:
- description: 'Manage the email subscriptions for features within a specific
security configuration.'
name: Subscriptions
paths:
/configs/{configId}/notification/subscription/{feature}:
parameters:
- description: A unique identifier for each subscription feature.
example: '{{feature}}'
in: path
name: feature
required: true
schema:
example: AAG_TUNING_REC
type: string
x-akamai:
file-path: parameters/feature-path.yaml
- 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-notification-subscription.yaml
path-info: /configs/{configId}/notification/subscription/{feature}
post:
description: Set the request object's `action` to `subscribe` to add user emails to the subscription object. Use `unsubscribe` to remove them from the list. The lists are organized by `features`. Currently available `feature` values are `AAG_TUNING_REC` for AAG and ASE rule sets, and `WAF_RULE_UPDATE` for ASE rule sets. _Products:_ Kona Site Defender.
externalDocs:
description: See documentation for this operation in Akamai's Application Security API
url: https://techdocs.akamai.com/application-security/reference/post-subscription-feature
operationId: post-subscription-feature
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:
action: subscribe
emails:
- subscriber1@email.example.com
- subscriber2@email.example.com
- subscriber3@email.example.com
schema:
additionalProperties: false
description: Specifies actions to subscribe a user to or remove a user from a subscription to tuning recommendation emails.
properties:
action:
description: Use `subscribe` to add user emails to the subscription. Use `unsubscribe` to remove them from the subscription.
enum:
- subscribe
- unsubscribe
example: '{{action}}'
type: string
emails:
description: The user emails to add to or remove from subscription.
items:
type: string
minItems: 1
type: array
uniqueItems: true
required:
- action
- emails
type: object
x-akamai:
file-path: schemas/appsec-config-subscription.yaml
required: true
responses:
'204':
content: {}
description: Subscribed/Unsubscribed successfully.
'400':
content:
application/problem+json:
examples:
email-validation-errors:
summary: Email validation errors
value:
detail: 'Validation failed: emails: Missing final ''@domain'' for ''subscriber1'', Local address contains control or whitespace for ''subs criber2@email.example.com'''
fieldErrors:
emails:
- Missing final '@domain' for 'subscriber1', Local address contains control or whitespace for 'subs criber2@email.example.com'
instance: https://problems.luna.akamaiapis.net/appsec-configuration/error-instances/84ec5ff7bfcd01d4
status: 400
title: Invalid Input Error
type: https://problems.luna.akamaiapis.net/appsec-configuration/error-types/INVALID-INPUT-ERROR
invalid-action:
summary: Invalid action
value:
detail: Action field must be either subscribe or unsubscribe
instance: https://problems.luna.akamaiapis.net/appsec-configuration/error-instances/edb25ff7ceea044c
status: 400
title: Invalid Input Error
type: https://problems.luna.akamaiapis.net/appsec-configuration/error-types/INVALID-INPUT-ERROR
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: '[Invalid](https://techdocs.akamai.com/application-security/reference/400). Incorrect client input. See the `fieldErrors` and other fields provided in the response for more information.'
x-akamai:
file-path: errors/400-subscription.yaml
'403':
content:
application/problem+json:
examples:
no-config:
summary: No access to the configuration
value:
detail: You do not have the necessary access to perform this operation.
instance: https://problems.luna.akamaiapis.net/appsec-configuration/error-instances/e96d5ff7c1cb02c4
status: 403
title: Unauthorized Access/Action
type: https://problems.luna.akamaiapis.net/appsec-configuration/error-types/UNAUTHORIZED
no-feature-scope:
summary: No feature scope
value:
detail: This user needs to have the scope APPSEC_AAG_TUNING_RECOM to access this end point.
instance: https://problems.luna.akamaiapis.net/appsec-configuration/error-instances/dc325ff7c2b800ac
status: 403
title: Unauthorized Access/Action
type: https://problems.luna.akamaiapis.net/appsec-configuration/error-types/UNAUTHORIZED
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). Access denied. Make sure you have correct permissions.'
x-akamai:
file-path: errors/403-scope.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 Subscribe or Unsubscribe to Recommendation Emails
tags:
- Subscriptions
get:
description: List all subscribers to a security configuration's `feature`. The response array is empty if there are no subscribers. Currently available `feature` values are `AAG_TUNING_REC` for AAG and ASE rule sets, and `WAF_RULE_UPDATE` for ASE rule sets. _Products:_ Kona Site Defender.
externalDocs:
description: See documentation for this operation in Akamai's Application Security API
url: https://techdocs.akamai.com/application-security/reference/get-subscription-feature
operationId: get-subscription-feature
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:
emails:
- subscriber1@email.example.com
- subscriber2@email.example.com
- subscriber3@email.example.com
schema:
additionalProperties: false
description: List the existing subscribers of a feature for a specific security configuration.
properties:
emails:
description: Existing subscriber.
items:
type: string
type: array
required:
- emails
type: object
x-akamai:
file-path: schemas/appsec-config-subscription-200.yaml
description: Successfully returns list of subscribers.
'403':
content:
application/problem+json:
examples:
no-config:
summary: No access to the configuration
value:
detail: You do not have the necessary access to perform this operation.
instance: https://problems.luna.akamaiapis.net/appsec-configuration/error-instances/e96d5ff7c1cb02c4
status: 403
title: Unauthorized Access/Action
type: https://problems.luna.akamaiapis.net/appsec-configuration/error-types/UNAUTHORIZED
no-feature-scope:
summary: No feature scope
value:
detail: This user needs to have the scope APPSEC_AAG_TUNING_RECOM to access this end point.
instance: https://problems.luna.akamaiapis.net/appsec-configuration/error-instances/dc325ff7c2b800ac
status: 403
title: Unauthorized Access/Action
type: https://problems.luna.akamaiapis.net/appsec-configuration/error-types/UNAUTHORIZED
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). Access denied. Make sure you have correct permissions.'
x-akamai:
file-path: errors/403-scope.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 Subscribers
tags:
- Subscriptions
externalDocs:
description: See documentation for Akamai's Application Security API
url: https://techdocs.akamai.com/application-security/reference
x-readme:
samples-languages:
- curl
- python
- node