{
 "additionalIdentifiers": [
  [
   "/properties/ChannelGroupName",
   "/properties/ChannelName",
   "/properties/OriginEndpointName"
  ]
 ],
 "additionalProperties": false,
 "createOnlyProperties": [
  "/properties/ChannelGroupName",
  "/properties/ChannelName",
  "/properties/OriginEndpointName"
 ],
 "definitions": {
  "AdMarkerDash": {
   "enum": [
    "BINARY",
    "XML"
   ],
   "type": "string"
  },
  "AdMarkerHls": {
   "enum": [
    "DATERANGE",
    "SCTE35_ENHANCED"
   ],
   "type": "string"
  },
  "CmafEncryptionMethod": {
   "enum": [
    "CENC",
    "CBCS"
   ],
   "type": "string"
  },
  "ContainerType": {
   "enum": [
    "TS",
    "CMAF",
    "ISM"
   ],
   "type": "string"
  },
  "CustomAdType": {
   "enum": [
    "PROGRAM",
    "CHAPTER",
    "UNSCHEDULED_EVENT",
    "ALTERNATE_CONTENT_OPPORTUNITY",
    "NETWORK"
   ],
   "type": "string"
  },
  "DashAvailabilityStartTimeConfiguration": {
   "oneOf": [
    {
     "additionalProperties": false,
     "properties": {
      "FixedAvailabilityStartTime": {
       "format": "date-time",
       "type": "string"
      }
     },
     "required": [
      "FixedAvailabilityStartTime"
     ],
     "title": "FixedAvailabilityStartTime",
     "type": "object"
    }
   ]
  },
  "DashBaseUrl": {
   "additionalProperties": false,
   "properties": {
    "DvbPriority": {
     "maximum": 15000,
     "minimum": 1,
     "type": "integer"
    },
    "DvbWeight": {
     "maximum": 15000,
     "minimum": 1,
     "type": "integer"
    },
    "ServiceLocation": {
     "maxLength": 2048,
     "minLength": 1,
     "type": "string"
    },
    "Url": {
     "maxLength": 2048,
     "minLength": 1,
     "type": "string"
    }
   },
   "required": [
    "Url"
   ],
   "type": "object"
  },
  "DashCompactness": {
   "enum": [
    "STANDARD",
    "NONE"
   ],
   "type": "string"
  },
  "DashDrmSignaling": {
   "enum": [
    "INDIVIDUAL",
    "REFERENCED"
   ],
   "type": "string"
  },
  "DashDvbFontDownload": {
   "additionalProperties": false,
   "properties": {
    "FontFamily": {
     "maxLength": 256,
     "minLength": 1,
     "type": "string"
    },
    "MimeType": {
     "maxLength": 256,
     "minLength": 1,
     "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_/-]*[a-zA-Z0-9]$",
     "type": "string"
    },
    "Url": {
     "maxLength": 2048,
     "minLength": 1,
     "type": "string"
    }
   },
   "type": "object"
  },
  "DashDvbMetricsReporting": {
   "additionalProperties": false,
   "properties": {
    "Probability": {
     "maximum": 1000,
     "minimum": 1,
     "type": "integer"
    },
    "ReportingUrl": {
     "maxLength": 2048,
     "minLength": 1,
     "type": "string"
    }
   },
   "required": [
    "ReportingUrl"
   ],
   "type": "object"
  },
  "DashDvbSettings": {
   "additionalProperties": false,
   "properties": {
    "ErrorMetrics": {
     "items": {
      "$ref": "#/definitions/DashDvbMetricsReporting"
     },
     "maxItems": 20,
     "minItems": 0,
     "type": "array"
    },
    "FontDownload": {
     "$ref": "#/definitions/DashDvbFontDownload"
    }
   },
   "type": "object"
  },
  "DashManifestConfiguration": {
   "additionalProperties": false,
   "properties": {
    "AvailabilityStartTimeConfiguration": {
     "$ref": "#/definitions/DashAvailabilityStartTimeConfiguration"
    },
    "BaseUrls": {
     "items": {
      "$ref": "#/definitions/DashBaseUrl"
     },
     "maxItems": 20,
     "minItems": 0,
     "type": "array"
    },
    "Compactness": {
     "$ref": "#/definitions/DashCompactness"
    },
    "DrmSignaling": {
     "$ref": "#/definitions/DashDrmSignaling"
    },
    "DvbSettings": {
     "$ref": "#/definitions/DashDvbSettings"
    },
    "FilterConfiguration": {
     "$ref": "#/definitions/FilterConfiguration"
    },
    "ManifestName": {
     "maxLength": 256,
     "minLength": 1,
     "pattern": "^[a-zA-Z0-9_-]+$",
     "type": "string"
    },
    "ManifestWindowSeconds": {
     "type": "integer"
    },
    "MinBufferTimeSeconds": {
     "type": "integer"
    },
    "MinUpdatePeriodSeconds": {
     "type": "integer"
    },
    "PeriodTriggers": {
     "items": {
      "$ref": "#/definitions/DashPeriodTrigger"
     },
     "maxItems": 100,
     "minItems": 0,
     "type": "array"
    },
    "Profiles": {
     "items": {
      "$ref": "#/definitions/DashProfile"
     },
     "maxItems": 5,
     "minItems": 0,
     "type": "array"
    },
    "ProgramInformation": {
     "$ref": "#/definitions/DashProgramInformation"
    },
    "ScteDash": {
     "$ref": "#/definitions/ScteDash"
    },
    "SegmentTemplateFormat": {
     "$ref": "#/definitions/DashSegmentTemplateFormat"
    },
    "SubtitleConfiguration": {
     "$ref": "#/definitions/DashSubtitleConfiguration"
    },
    "SuggestedPresentationDelaySeconds": {
     "type": "integer"
    },
    "UriPathType": {
     "$ref": "#/definitions/UriPathType"
    },
    "UtcTiming": {
     "$ref": "#/definitions/DashUtcTiming"
    }
   },
   "required": [
    "ManifestName"
   ],
   "type": "object"
  },
  "DashPeriodTrigger": {
   "enum": [
    "AVAILS",
    "DRM_KEY_ROTATION",
    "SOURCE_CHANGES",
    "SOURCE_DISRUPTIONS",
    "NONE"
   ],
   "type": "string"
  },
  "DashProfile": {
   "enum": [
    "DVB_DASH"
   ],
   "type": "string"
  },
  "DashProgramInformation": {
   "additionalProperties": false,
   "properties": {
    "Copyright": {
     "maxLength": 2048,
     "minLength": 1,
     "type": "string"
    },
    "LanguageCode": {
     "maxLength": 5,
     "minLength": 2,
     "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*[a-zA-Z0-9]$",
     "type": "string"
    },
    "MoreInformationUrl": {
     "maxLength": 2048,
     "minLength": 1,
     "type": "string"
    },
    "Source": {
     "maxLength": 2048,
     "minLength": 1,
     "type": "string"
    },
    "Title": {
     "maxLength": 2048,
     "minLength": 1,
     "type": "string"
    }
   },
   "type": "object"
  },
  "DashSegmentTemplateFormat": {
   "enum": [
    "NUMBER_WITH_TIMELINE"
   ],
   "type": "string"
  },
  "DashSubtitleConfiguration": {
   "additionalProperties": false,
   "properties": {
    "TtmlConfiguration": {
     "$ref": "#/definitions/DashTtmlConfiguration"
    }
   },
   "type": "object"
  },
  "DashTtmlConfiguration": {
   "additionalProperties": false,
   "properties": {
    "TtmlProfile": {
     "$ref": "#/definitions/DashTtmlProfile"
    }
   },
   "required": [
    "TtmlProfile"
   ],
   "type": "object"
  },
  "DashTtmlProfile": {
   "enum": [
    "IMSC_1",
    "EBU_TT_D_101"
   ],
   "type": "string"
  },
  "DashUtcTiming": {
   "additionalProperties": false,
   "properties": {
    "TimingMode": {
     "$ref": "#/definitions/DashUtcTimingMode"
    },
    "TimingSource": {
     "maxLength": 1024,
     "minLength": 1,
     "type": "string"
    }
   },
   "type": "object"
  },
  "DashUtcTimingMode": {
   "enum": [
    "HTTP_HEAD",
    "HTTP_ISO",
    "HTTP_XSDATE",
    "UTC_DIRECT"
   ],
   "type": "string"
  },
  "DrmSystem": {
   "enum": [
    "CLEAR_KEY_AES_128",
    "FAIRPLAY",
    "PLAYREADY",
    "WIDEVINE",
    "IRDETO"
   ],
   "type": "string"
  },
  "Encryption": {
   "additionalProperties": false,
   "properties": {
    "CmafExcludeSegmentDrmMetadata": {
     "type": "boolean"
    },
    "ConstantInitializationVector": {
     "maxLength": 32,
     "minLength": 32,
     "pattern": "^[0-9a-fA-F]+$",
     "type": "string"
    },
    "EncryptionMethod": {
     "$ref": "#/definitions/EncryptionMethod"
    },
    "KeyRotationIntervalSeconds": {
     "maximum": 31536000,
     "minimum": 300,
     "type": "integer"
    },
    "SpekeKeyProvider": {
     "$ref": "#/definitions/SpekeKeyProvider"
    }
   },
   "required": [
    "EncryptionMethod",
    "SpekeKeyProvider"
   ],
   "type": "object"
  },
  "EncryptionContractConfiguration": {
   "additionalProperties": false,
   "properties": {
    "PresetSpeke20Audio": {
     "$ref": "#/definitions/PresetSpeke20Audio"
    },
    "PresetSpeke20Video": {
     "$ref": "#/definitions/PresetSpeke20Video"
    }
   },
   "required": [
    "PresetSpeke20Audio",
    "PresetSpeke20Video"
   ],
   "type": "object"
  },
  "EncryptionMethod": {
   "additionalProperties": false,
   "properties": {
    "CmafEncryptionMethod": {
     "$ref": "#/definitions/CmafEncryptionMethod"
    },
    "IsmEncryptionMethod": {
     "$ref": "#/definitions/IsmEncryptionMethod"
    },
    "TsEncryptionMethod": {
     "$ref": "#/definitions/TsEncryptionMethod"
    }
   },
   "type": "object"
  },
  "EndpointErrorCondition": {
   "enum": [
    "STALE_MANIFEST",
    "INCOMPLETE_MANIFEST",
    "MISSING_DRM_KEY",
    "SLATE_INPUT"
   ],
   "type": "string"
  },
  "FilterConfiguration": {
   "additionalProperties": false,
   "properties": {
    "ClipStartTime": {
     "format": "date-time",
     "type": "string"
    },
    "DrmSettings": {
     "maxLength": 1024,
     "minLength": 1,
     "type": "string"
    },
    "End": {
     "format": "date-time",
     "type": "string"
    },
    "ManifestFilter": {
     "maxLength": 1024,
     "minLength": 1,
     "type": "string"
    },
    "Start": {
     "format": "date-time",
     "type": "string"
    },
    "TimeDelaySeconds": {
     "maximum": 1209600,
     "minimum": 0,
     "type": "integer"
    }
   },
   "type": "object"
  },
  "ForceEndpointErrorConfiguration": {
   "additionalProperties": false,
   "properties": {
    "EndpointErrorConditions": {
     "items": {
      "$ref": "#/definitions/EndpointErrorCondition"
     },
     "type": "array"
    }
   },
   "type": "object"
  },
  "HlsManifestConfiguration": {
   "additionalProperties": false,
   "properties": {
    "ChildManifestName": {
     "maxLength": 256,
     "minLength": 1,
     "pattern": "^[a-zA-Z0-9_-]+$",
     "type": "string"
    },
    "FilterConfiguration": {
     "$ref": "#/definitions/FilterConfiguration"
    },
    "ManifestName": {
     "maxLength": 256,
     "minLength": 1,
     "pattern": "^[a-zA-Z0-9_-]+$",
     "type": "string"
    },
    "ManifestWindowSeconds": {
     "type": "integer"
    },
    "ProgramDateTimeIntervalSeconds": {
     "type": "integer"
    },
    "ScteHls": {
     "$ref": "#/definitions/ScteHls"
    },
    "StartTag": {
     "$ref": "#/definitions/StartTag"
    },
    "UriPathType": {
     "$ref": "#/definitions/UriPathType"
    },
    "Url": {
     "type": "string"
    },
    "UrlEncodeChildManifest": {
     "type": "boolean"
    }
   },
   "required": [
    "ManifestName"
   ],
   "type": "object"
  },
  "IsmEncryptionMethod": {
   "enum": [
    "CENC"
   ],
   "type": "string"
  },
  "LowLatencyHlsManifestConfiguration": {
   "additionalProperties": false,
   "properties": {
    "ChildManifestName": {
     "maxLength": 256,
     "minLength": 1,
     "pattern": "^[a-zA-Z0-9_-]+$",
     "type": "string"
    },
    "FilterConfiguration": {
     "$ref": "#/definitions/FilterConfiguration"
    },
    "ManifestName": {
     "maxLength": 256,
     "minLength": 1,
     "pattern": "^[a-zA-Z0-9_-]+$",
     "type": "string"
    },
    "ManifestWindowSeconds": {
     "type": "integer"
    },
    "ProgramDateTimeIntervalSeconds": {
     "type": "integer"
    },
    "ScteHls": {
     "$ref": "#/definitions/ScteHls"
    },
    "StartTag": {
     "$ref": "#/definitions/StartTag"
    },
    "UriPathType": {
     "$ref": "#/definitions/UriPathType"
    },
    "Url": {
     "type": "string"
    },
    "UrlEncodeChildManifest": {
     "type": "boolean"
    }
   },
   "required": [
    "ManifestName"
   ],
   "type": "object"
  },
  "MssManifestConfiguration": {
   "additionalProperties": false,
   "properties": {
    "FilterConfiguration": {
     "$ref": "#/definitions/FilterConfiguration"
    },
    "ManifestLayout": {
     "$ref": "#/definitions/MssManifestLayout"
    },
    "ManifestName": {
     "maxLength": 256,
     "minLength": 1,
     "pattern": "^[a-zA-Z0-9-]+$",
     "type": "string"
    },
    "ManifestWindowSeconds": {
     "type": "integer"
    }
   },
   "required": [
    "ManifestName"
   ],
   "type": "object"
  },
  "MssManifestLayout": {
   "enum": [
    "FULL",
    "COMPACT"
   ],
   "type": "string"
  },
  "PresetSpeke20Audio": {
   "enum": [
    "PRESET_AUDIO_1",
    "PRESET_AUDIO_2",
    "PRESET_AUDIO_3",
    "SHARED",
    "UNENCRYPTED"
   ],
   "type": "string"
  },
  "PresetSpeke20Video": {
   "enum": [
    "PRESET_VIDEO_1",
    "PRESET_VIDEO_2",
    "PRESET_VIDEO_3",
    "PRESET_VIDEO_4",
    "PRESET_VIDEO_5",
    "PRESET_VIDEO_6",
    "PRESET_VIDEO_7",
    "PRESET_VIDEO_8",
    "SHARED",
    "UNENCRYPTED"
   ],
   "type": "string"
  },
  "Scte": {
   "additionalProperties": false,
   "properties": {
    "CustomAdTypes": {
     "items": {
      "$ref": "#/definitions/CustomAdType"
     },
     "maxItems": 25,
     "minItems": 0,
     "type": "array"
    },
    "ScteFilter": {
     "items": {
      "$ref": "#/definitions/ScteFilter"
     },
     "maxItems": 100,
     "minItems": 0,
     "type": "array"
    },
    "ScteInSegments": {
     "$ref": "#/definitions/ScteInSegments"
    }
   },
   "type": "object"
  },
  "ScteDash": {
   "additionalProperties": false,
   "properties": {
    "AdMarkerDash": {
     "$ref": "#/definitions/AdMarkerDash"
    },
    "ScteInManifests": {
     "$ref": "#/definitions/ScteInManifests"
    }
   },
   "type": "object"
  },
  "ScteFilter": {
   "enum": [
    "SPLICE_INSERT",
    "BREAK",
    "PROVIDER_ADVERTISEMENT",
    "DISTRIBUTOR_ADVERTISEMENT",
    "PROVIDER_PLACEMENT_OPPORTUNITY",
    "DISTRIBUTOR_PLACEMENT_OPPORTUNITY",
    "PROVIDER_OVERLAY_PLACEMENT_OPPORTUNITY",
    "DISTRIBUTOR_OVERLAY_PLACEMENT_OPPORTUNITY",
    "PROGRAM",
    "CHAPTER",
    "UNSCHEDULED_EVENT",
    "ALTERNATE_CONTENT_OPPORTUNITY",
    "NETWORK",
    "PROVIDER_PROMO",
    "DISTRIBUTOR_PROMO",
    "PROVIDER_AD_BLOCK",
    "DISTRIBUTOR_AD_BLOCK"
   ],
   "type": "string"
  },
  "ScteHls": {
   "additionalProperties": false,
   "properties": {
    "AdMarkerHls": {
     "$ref": "#/definitions/AdMarkerHls"
    },
    "ScteInManifests": {
     "$ref": "#/definitions/ScteInManifests"
    }
   },
   "type": "object"
  },
  "ScteInManifests": {
   "enum": [
    "ALL",
    "MATCHES_FILTER"
   ],
   "type": "string"
  },
  "ScteInSegments": {
   "enum": [
    "NONE",
    "ALL",
    "MATCHES_FILTER"
   ],
   "type": "string"
  },
  "Segment": {
   "additionalProperties": false,
   "properties": {
    "Encryption": {
     "$ref": "#/definitions/Encryption"
    },
    "IncludeIframeOnlyStreams": {
     "type": "boolean"
    },
    "Scte": {
     "$ref": "#/definitions/Scte"
    },
    "SegmentDurationSeconds": {
     "maximum": 30,
     "minimum": 1,
     "type": "integer"
    },
    "SegmentName": {
     "maxLength": 256,
     "minLength": 1,
     "pattern": "^[a-zA-Z0-9_-]+$",
     "type": "string"
    },
    "TsIncludeDvbSubtitles": {
     "type": "boolean"
    },
    "TsUseAudioRenditionGroup": {
     "type": "boolean"
    }
   },
   "type": "object"
  },
  "SpekeKeyProvider": {
   "additionalProperties": false,
   "properties": {
    "CertificateArn": {
     "maxLength": 2048,
     "minLength": 20,
     "pattern": "^arn:([^:\\n]+):acm:([^:\\n]+):([0-9]+):certificate/[a-zA-Z0-9-_]+$",
     "type": "string"
    },
    "DrmSystems": {
     "items": {
      "$ref": "#/definitions/DrmSystem"
     },
     "maxItems": 4,
     "minItems": 1,
     "type": "array"
    },
    "EncryptionContractConfiguration": {
     "$ref": "#/definitions/EncryptionContractConfiguration"
    },
    "ResourceId": {
     "maxLength": 256,
     "minLength": 1,
     "pattern": "^[0-9a-zA-Z_-]+$",
     "type": "string"
    },
    "RoleArn": {
     "format": "AWS::IAM::Role.Arn",
     "maxLength": 2048,
     "minLength": 1,
     "type": "string"
    },
    "Url": {
     "maxLength": 1024,
     "minLength": 1,
     "type": "string"
    }
   },
   "required": [
    "DrmSystems",
    "EncryptionContractConfiguration",
    "ResourceId",
    "RoleArn",
    "Url"
   ],
   "type": "object"
  },
  "StartTag": {
   "additionalProperties": false,
   "properties": {
    "Precise": {
     "type": "boolean"
    },
    "TimeOffset": {
     "type": "number"
    }
   },
   "required": [
    "TimeOffset"
   ],
   "type": "object"
  },
  "Tag": {
   "additionalProperties": false,
   "properties": {
    "Key": {
     "type": "string"
    },
    "Value": {
     "type": "string"
    }
   },
   "type": "object"
  },
  "TsEncryptionMethod": {
   "enum": [
    "AES_128",
    "SAMPLE_AES"
   ],
   "type": "string"
  },
  "UriPathType": {
   "enum": [
    "LEAF",
    "ROOT"
   ],
   "type": "string"
  },
  "UriSeparator": {
   "enum": [
    "UNDERSCORE",
    "HYPHEN"
   ],
   "type": "string"
  }
 },
 "primaryIdentifier": [
  "/properties/Arn"
 ],
 "properties": {
  "Arn": {
   "type": "string"
  },
  "ChannelGroupName": {
   "maxLength": 256,
   "minLength": 1,
   "pattern": "^[a-zA-Z0-9_-]+$",
   "type": "string"
  },
  "ChannelName": {
   "maxLength": 256,
   "minLength": 1,
   "pattern": "^[a-zA-Z0-9_-]+$",
   "type": "string"
  },
  "ContainerType": {
   "$ref": "#/definitions/ContainerType"
  },
  "CreatedAt": {
   "format": "date-time",
   "type": "string"
  },
  "DashManifestUrls": {
   "items": {
    "type": "string"
   },
   "type": "array"
  },
  "DashManifests": {
   "items": {
    "$ref": "#/definitions/DashManifestConfiguration"
   },
   "type": "array"
  },
  "Description": {
   "maxLength": 1024,
   "minLength": 0,
   "type": "string"
  },
  "ForceEndpointErrorConfiguration": {
   "$ref": "#/definitions/ForceEndpointErrorConfiguration"
  },
  "HlsManifestUrls": {
   "items": {
    "type": "string"
   },
   "type": "array"
  },
  "HlsManifests": {
   "items": {
    "$ref": "#/definitions/HlsManifestConfiguration"
   },
   "type": "array"
  },
  "LowLatencyHlsManifestUrls": {
   "items": {
    "type": "string"
   },
   "type": "array"
  },
  "LowLatencyHlsManifests": {
   "items": {
    "$ref": "#/definitions/LowLatencyHlsManifestConfiguration"
   },
   "type": "array"
  },
  "ModifiedAt": {
   "format": "date-time",
   "type": "string"
  },
  "MssManifestUrls": {
   "items": {
    "type": "string"
   },
   "type": "array"
  },
  "MssManifests": {
   "items": {
    "$ref": "#/definitions/MssManifestConfiguration"
   },
   "type": "array"
  },
  "OriginEndpointName": {
   "maxLength": 256,
   "minLength": 1,
   "pattern": "^[a-zA-Z0-9_-]+$",
   "type": "string"
  },
  "Segment": {
   "$ref": "#/definitions/Segment"
  },
  "StartoverWindowSeconds": {
   "maximum": 1209600,
   "minimum": 0,
   "type": "integer"
  },
  "Tags": {
   "insertionOrder": false,
   "items": {
    "$ref": "#/definitions/Tag"
   },
   "type": "array"
  },
  "UriSeparator": {
   "$ref": "#/definitions/UriSeparator"
  }
 },
 "readOnlyProperties": [
  "/properties/Arn",
  "/properties/CreatedAt",
  "/properties/DashManifestUrls",
  "/properties/MssManifestUrls",
  "/properties/HlsManifestUrls",
  "/properties/LowLatencyHlsManifestUrls",
  "/properties/ModifiedAt",
  "/properties/LowLatencyHlsManifests/*/Url",
  "/properties/HlsManifests/*/Url"
 ],
 "required": [
  "ChannelGroupName",
  "ChannelName",
  "OriginEndpointName",
  "ContainerType"
 ],
 "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-mediapackagev2",
 "tagging": {
  "cloudFormationSystemTags": true,
  "tagOnCreate": true,
  "tagProperty": "/properties/Tags",
  "tagUpdatable": true,
  "taggable": true
 },
 "typeName": "AWS::MediaPackageV2::OriginEndpoint"
}
