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