{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/amazon-mediatailor/json-schema/amazon-mediatailor-describe-program-response-schema.json",
  "title": "DescribeProgramResponse",
  "x-generated": "2026-11-11",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/amazon-mediatailor-channel-api-openapi.yml#/components/schemas/DescribeProgramResponse",
  "type": "object",
  "properties": {
    "AdBreaks": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/AdBreak"
      },
      "description": "The ad break configuration settings."
    },
    "Arn": {
      "type": "string",
      "description": "The ARN of the program."
    },
    "ChannelName": {
      "type": "string",
      "description": "The name of the channel that the program belongs to."
    },
    "CreationTime": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp of when the program was created."
    },
    "LiveSourceName": {
      "type": "string",
      "description": "The name of the LiveSource for this Program."
    },
    "ProgramName": {
      "type": "string",
      "description": "The name of the program."
    },
    "ScheduledStartTime": {
      "type": "string",
      "format": "date-time",
      "description": "The date and time that the program is scheduled to start in ISO 8601 format and Coordinated Universal Time (UTC). For example, the value 2021-03-27T17:48:16.751Z represents March 27, 2021 at 17:48:16.751 UTC."
    },
    "SourceLocationName": {
      "type": "string",
      "description": "The source location name."
    },
    "VodSourceName": {
      "type": "string",
      "description": "The name that's used to refer to a VOD source."
    },
    "ClipRange": {
      "$ref": "#/$defs/ClipRange"
    },
    "DurationMillis": {
      "type": "integer",
      "description": "The duration of the live program in milliseconds."
    },
    "AudienceMedia": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/AudienceMedia"
      },
      "description": "The list of AudienceMedia defined in program."
    },
    "Tags": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      },
      "description": "The tags assigned to the program. Tags are key-value pairs that you can associate with Amazon resources to help with organization, access control, and cost tracking. For more information, see Tagging AWS Elemental MediaTailor Resources."
    }
  },
  "$defs": {
    "AdBreak": {
      "type": "object",
      "properties": {
        "MessageType": {
          "type": "string",
          "enum": [
            "SPLICE_INSERT",
            "TIME_SIGNAL"
          ],
          "description": "The SCTE-35 ad insertion type. Accepted value: SPLICE_INSERT, TIME_SIGNAL."
        },
        "OffsetMillis": {
          "type": "integer",
          "description": "How long (in milliseconds) after the beginning of the program that an ad starts. This value must fall within 100ms of a segment boundary, otherwise the ad break will be skipped."
        },
        "Slate": {
          "$ref": "#/$defs/SlateSource"
        },
        "SpliceInsertMessage": {
          "$ref": "#/$defs/SpliceInsertMessage"
        },
        "TimeSignalMessage": {
          "$ref": "#/$defs/TimeSignalMessage"
        },
        "AdBreakMetadata": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/KeyValuePair"
          },
          "description": "Defines a list of key/value pairs that MediaTailor generates within the EXT-X-ASSETtag for SCTE35_ENHANCED output."
        }
      },
      "required": [
        "OffsetMillis"
      ]
    },
    "AlternateMedia": {
      "type": "object",
      "properties": {
        "SourceLocationName": {
          "type": "string",
          "description": "The name of the source location for alternateMedia."
        },
        "LiveSourceName": {
          "type": "string",
          "description": "The name of the live source for alternateMedia."
        },
        "VodSourceName": {
          "type": "string",
          "description": "The name of the VOD source for alternateMedia."
        },
        "ClipRange": {
          "$ref": "#/$defs/ClipRange"
        },
        "ScheduledStartTimeMillis": {
          "type": "integer",
          "description": "The date and time that the alternateMedia is scheduled to start, in epoch milliseconds."
        },
        "AdBreaks": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/AdBreak"
          },
          "description": "Ad break configuration parameters defined in AlternateMedia."
        },
        "DurationMillis": {
          "type": "integer",
          "description": "The duration of the alternateMedia in milliseconds."
        }
      }
    },
    "AudienceMedia": {
      "type": "object",
      "properties": {
        "Audience": {
          "type": "string",
          "description": "The Audience defined in AudienceMedia."
        },
        "AlternateMedia": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/AlternateMedia"
          },
          "description": "The list of AlternateMedia defined in AudienceMedia."
        }
      }
    },
    "ClipRange": {
      "type": "object",
      "properties": {
        "EndOffsetMillis": {
          "type": "integer",
          "description": "The end offset of the clip range, in milliseconds, starting from the beginning of the VOD source associated with the program."
        },
        "StartOffsetMillis": {
          "type": "integer",
          "description": "The start offset of the clip range, in milliseconds. This offset truncates the start at the number of milliseconds into the duration of the VOD source."
        }
      }
    },
    "KeyValuePair": {
      "type": "object",
      "properties": {
        "Key": {
          "type": "string",
          "description": "For SCTE35_ENHANCED output, defines a key. MediaTailor takes this key, and its associated value, and generates the key/value pair within the EXT-X-ASSETtag. If you specify a key, you must also specify a corresponding value."
        },
        "Value": {
          "type": "string",
          "description": "For SCTE35_ENHANCED output, defines a value. MediaTailor; takes this value, and its associated key, and generates the key/value pair within the EXT-X-ASSETtag. If you specify a value, you must also specify a corresponding key."
        }
      },
      "required": [
        "Key",
        "Value"
      ]
    },
    "SegmentationDescriptor": {
      "type": "object",
      "properties": {
        "SegmentationEventId": {
          "type": "integer",
          "description": "The Event Identifier to assign to the segmentation_descriptor.segmentation_event_id message, as defined in section 10.3.3.1 of the 2022 SCTE-35 specification. The default value is 1."
        },
        "SegmentationUpidType": {
          "type": "integer",
          "description": "The Upid Type to assign to the segmentation_descriptor.segmentation_upid_type message, as defined in section 10.3.3.1 of the 2022 SCTE-35 specification. Values must be between 0 and 256, inclusive. The default value is 14."
        },
        "SegmentationUpid": {
          "type": "string",
          "description": "The Upid to assign to the segmentation_descriptor.segmentation_upid message, as defined in section 10.3.3.1 of the 2022 SCTE-35 specification. The value must be a hexadecimal string containing only the characters 0 though 9 and A through F. The default value is \"\" (an empty string)."
        },
        "SegmentationTypeId": {
          "type": "integer",
          "description": "The Type Identifier to assign to the segmentation_descriptor.segmentation_type_id message, as defined in section 10.3.3.1 of the 2022 SCTE-35 specification. Values must be between 0 and 256, inclusive. The default value is 48."
        },
        "SegmentNum": {
          "type": "integer",
          "description": "The segment number to assign to the segmentation_descriptor.segment_num message, as defined in section 10.3.3.1 of the 2022 SCTE-35 specification Values must be between 0 and 256, inclusive. The default value is 0."
        },
        "SegmentsExpected": {
          "type": "integer",
          "description": "The number of segments expected, which is assigned to the segmentation_descriptor.segments_expectedS message, as defined in section 10.3.3.1 of the 2022 SCTE-35 specification Values must be between 0 and 256, inclusive. The default value is 0."
        },
        "SubSegmentNum": {
          "type": "integer",
          "description": "The sub-segment number to assign to the segmentation_descriptor.sub_segment_num message, as defined in section 10.3.3.1 of the 2022 SCTE-35 specification. Values must be between 0 and 256, inclusive. The defualt value is null."
        },
        "SubSegmentsExpected": {
          "type": "integer",
          "description": "The number of sub-segments expected, which is assigned to the segmentation_descriptor.sub_segments_expected message, as defined in section 10.3.3.1 of the 2022 SCTE-35 specification. Values must be between 0 and 256, inclusive. The default value is null."
        }
      }
    },
    "SlateSource": {
      "type": "object",
      "properties": {
        "SourceLocationName": {
          "type": "string",
          "description": "The name of the source location where the slate VOD source is stored."
        },
        "VodSourceName": {
          "type": "string",
          "description": "The slate VOD source name. The VOD source must already exist in a source location before it can be used for slate."
        }
      }
    },
    "SpliceInsertMessage": {
      "type": "object",
      "properties": {
        "AvailNum": {
          "type": "integer",
          "description": "This is written to splice_insert.avail_num, as defined in section 9.7.3.1 of the SCTE-35 specification. The default value is 0. Values must be between 0 and 256, inclusive."
        },
        "AvailsExpected": {
          "type": "integer",
          "description": "This is written to splice_insert.avails_expected, as defined in section 9.7.3.1 of the SCTE-35 specification. The default value is 0. Values must be between 0 and 256, inclusive."
        },
        "SpliceEventId": {
          "type": "integer",
          "description": "This is written to splice_insert.splice_event_id, as defined in section 9.7.3.1 of the SCTE-35 specification. The default value is 1."
        },
        "UniqueProgramId": {
          "type": "integer",
          "description": "This is written to splice_insert.unique_program_id, as defined in section 9.7.3.1 of the SCTE-35 specification. The default value is 0. Values must be between 0 and 256, inclusive."
        }
      }
    },
    "TimeSignalMessage": {
      "type": "object",
      "properties": {
        "SegmentationDescriptors": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/SegmentationDescriptor"
          },
          "description": "The configurations for the SCTE-35 segmentation_descriptor message(s) sent with the time_signal message."
        }
      }
    }
  }
}