{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/amazon-snow-family/refs/heads/main/json-schema/amazon-snow-family-notification-schema.json",
  "title": "Notification",
  "description": "<p>The Amazon Simple Notification Service (Amazon SNS) notification settings associated with a specific job. The <code>Notification</code> object is returned as a part of the response syntax of the <code>DescribeJob</code> action in the <code>JobMetadata</code> data type.</p> <p>When the notification settings are defined during job creation, you can choose to notify based on a specific set of job states using the <code>JobStatesToNotify</code> array of strings, or you can specify that you want to have Amazon SNS notifications sent out for all job states with <code>NotifyAll</code> set to true.</p>",
  "type": "object",
  "properties": {
    "SnsTopicARN": {
      "allOf": [
        {
          "$ref": "#/components/schemas/SnsTopicARN"
        },
        {
          "description": "<p>The new SNS <code>TopicArn</code> that you want to associate with this job. You can create Amazon Resource Names (ARNs) for topics by using the <a href=\"https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html\">CreateTopic</a> Amazon SNS API action.</p> <p>You can subscribe email addresses to an Amazon SNS topic through the Amazon Web Services Management Console, or by using the <a href=\"https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html\">Subscribe</a> Amazon Simple Notification Service (Amazon SNS) API action.</p>"
        }
      ]
    },
    "JobStatesToNotify": {
      "allOf": [
        {
          "$ref": "#/components/schemas/JobStateList"
        },
        {
          "description": "The list of job states that will trigger a notification for this job."
        }
      ]
    },
    "NotifyAll": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Boolean"
        },
        {
          "description": "Any change in job state will trigger a notification for this job."
        }
      ]
    },
    "DevicePickupSnsTopicARN": {
      "allOf": [
        {
          "$ref": "#/components/schemas/SnsTopicARN"
        },
        {
          "description": "Used to send SNS notifications for the person picking up the device (identified during job creation)."
        }
      ]
    }
  }
}