Akamai API Security Subscriptions API

Manage the email subscriptions for features within a specific security configuration.

OpenAPI Specification

akamai-api-security-subscriptions-api-openapi.yml Raw ↑
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