{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/amazon-devops-guru/json-schema/amazon-devops-guru-list-notification-channels-response-schema.json",
  "title": "ListNotificationChannelsResponse",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/amazon-devops-guru-channels-api-openapi.yml#/components/schemas/ListNotificationChannelsResponse",
  "type": "object",
  "properties": {
    "Channels": {
      "allOf": [
        {
          "$ref": "#/$defs/Channels"
        },
        {
          "description": " An array that contains the requested notification channels. "
        }
      ]
    },
    "NextToken": {
      "allOf": [
        {
          "$ref": "#/$defs/UuidNextToken"
        },
        {
          "description": "The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null."
        }
      ]
    }
  },
  "$defs": {
    "Channels": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/NotificationChannel"
      }
    },
    "InsightSeverities": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/InsightSeverity"
      },
      "minItems": 0,
      "maxItems": 3
    },
    "InsightSeverity": {
      "type": "string",
      "enum": [
        "LOW",
        "MEDIUM",
        "HIGH"
      ]
    },
    "NotificationChannel": {
      "type": "object",
      "properties": {
        "Id": {
          "allOf": [
            {
              "$ref": "#/$defs/NotificationChannelId"
            },
            {
              "description": " The ID of a notification channel. "
            }
          ]
        },
        "Config": {
          "allOf": [
            {
              "$ref": "#/$defs/NotificationChannelConfig"
            },
            {
              "description": " A <code>NotificationChannelConfig</code> object that contains information about configured notification channels. "
            }
          ]
        }
      },
      "description": "<p> Information about a notification channel. A notification channel is used to notify you when DevOps Guru creates an insight. The one supported notification channel is Amazon Simple Notification Service (Amazon SNS). </p> <p>If you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to it notifications. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account. DevOps Guru only supports standard SNS topics. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-required-permissions.html\">Permissions for cross account Amazon SNS topics</a>.</p> <p>If you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to it notifications. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account. For more information, see Permissions for cross account Amazon SNS topics.</p> <p>If you use an Amazon SNS topic that is encrypted by an Amazon Web Services Key Management Service customer-managed key (CMK), then you must add permissions to the CMK. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-kms-permissions.html\">Permissions for Amazon Web Services KMS–encrypted Amazon SNS topics</a>.</p>"
    },
    "NotificationChannelConfig": {
      "type": "object",
      "required": [
        "Sns"
      ],
      "properties": {
        "Sns": {
          "allOf": [
            {
              "$ref": "#/$defs/SnsChannelConfig"
            },
            {
              "description": "<p> Information about a notification channel configured in DevOps Guru to send notifications when insights are created. </p> <p>If you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to it notifications. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account. DevOps Guru only supports standard SNS topics. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-required-permissions.html\">Permissions for cross account Amazon SNS topics</a>.</p> <p>If you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to it notifications. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account. For more information, see Permissions for cross account Amazon SNS topics.</p> <p>If you use an Amazon SNS topic that is encrypted by an Amazon Web Services Key Management Service customer-managed key (CMK), then you must add permissions to the CMK. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-kms-permissions.html\">Permissions for Amazon Web Services KMS–encrypted Amazon SNS topics</a>.</p>"
            }
          ]
        },
        "Filters": {
          "allOf": [
            {
              "$ref": "#/$defs/NotificationFilterConfig"
            },
            {
              "description": " The filter configurations for the Amazon SNS notification topic you use with DevOps Guru. If you do not provide filter configurations, the default configurations are to receive notifications for all message types of <code>High</code> or <code>Medium</code> severity. "
            }
          ]
        }
      },
      "description": " Information about notification channels you have configured with DevOps Guru. The one supported notification channel is Amazon Simple Notification Service (Amazon SNS)."
    },
    "NotificationChannelId": {
      "type": "string",
      "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$",
      "minLength": 36,
      "maxLength": 36
    },
    "NotificationFilterConfig": {
      "type": "object",
      "properties": {
        "Severities": {
          "allOf": [
            {
              "$ref": "#/$defs/InsightSeverities"
            },
            {
              "description": " The severity levels that you want to receive notifications for. For example, you can choose to receive notifications only for insights with <code>HIGH</code> and <code>MEDIUM</code> severity levels. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-insights.html#understanding-insights-severities\">Understanding insight severities</a>. "
            }
          ]
        },
        "MessageTypes": {
          "allOf": [
            {
              "$ref": "#/$defs/NotificationMessageTypes"
            },
            {
              "description": " The events that you want to receive notifications for. For example, you can choose to receive notifications only when the severity level is upgraded or a new insight is created. "
            }
          ]
        }
      },
      "description": " The filter configurations for the Amazon SNS notification topic you use with DevOps Guru. You can choose to specify which events or message types to receive notifications for. You can also choose to specify which severity levels to receive notifications for. "
    },
    "NotificationMessageType": {
      "type": "string",
      "enum": [
        "NEW_INSIGHT",
        "CLOSED_INSIGHT",
        "NEW_ASSOCIATION",
        "SEVERITY_UPGRADED",
        "NEW_RECOMMENDATION"
      ]
    },
    "NotificationMessageTypes": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/NotificationMessageType"
      },
      "minItems": 0,
      "maxItems": 5
    },
    "SnsChannelConfig": {
      "type": "object",
      "properties": {
        "TopicArn": {
          "allOf": [
            {
              "$ref": "#/$defs/TopicArn"
            },
            {
              "description": " The Amazon Resource Name (ARN) of an Amazon Simple Notification Service topic. "
            }
          ]
        }
      },
      "description": "<p> Contains the Amazon Resource Name (ARN) of an Amazon Simple Notification Service topic. </p> <p>If you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to it notifications. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account. DevOps Guru only supports standard SNS topics. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-required-permissions.html\">Permissions for cross account Amazon SNS topics</a>.</p> <p>If you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to it notifications. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account. For more information, see Permissions for cross account Amazon SNS topics.</p> <p>If you use an Amazon SNS topic that is encrypted by an Amazon Web Services Key Management Service customer-managed key (CMK), then you must add permissions to the CMK. For more information, see <a href=\"https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-kms-permissions.html\">Permissions for Amazon Web Services KMS–encrypted Amazon SNS topics</a>.</p>"
    },
    "TopicArn": {
      "type": "string",
      "pattern": "^arn:aws[a-z0-9-]*:sns:[a-z0-9-]+:\\d{12}:[^:]+$",
      "minLength": 36,
      "maxLength": 1024
    },
    "UuidNextToken": {
      "type": "string",
      "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$",
      "minLength": 36,
      "maxLength": 36
    }
  }
}