MEDIAPACKAGEV2

CreateChannel

valid {
    input.Body.ChannelName == STRING
    input.Body.Description == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.ChannelGroupName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateChannelGroup

valid {
    input.Body.ChannelGroupName == STRING
    input.Body.Description == STRING
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateOriginEndpoint

enum_AdMarkerDash := [ "BINARY", "XML" ]
enum_AdMarkerHls := [ "DATERANGE" ]
enum_CmafEncryptionMethod := [ "CENC", "CBCS" ]
enum_ContainerType := [ "TS", "CMAF" ]
enum_DashDrmSignaling := [ "INDIVIDUAL", "REFERENCED" ]
enum_DashPeriodTrigger := [ "AVAILS", "DRM_KEY_ROTATION", "SOURCE_CHANGES", "SOURCE_DISRUPTIONS", "NONE" ]
enum_DashSegmentTemplateFormat := [ "NUMBER_WITH_TIMELINE" ]
enum_DashUtcTimingMode := [ "HTTP_HEAD", "HTTP_ISO", "HTTP_XSDATE", "UTC_DIRECT" ]
enum_DrmSystem := [ "CLEAR_KEY_AES_128", "FAIRPLAY", "PLAYREADY", "WIDEVINE" ]
enum_PresetSpeke20Audio := [ "PRESET_AUDIO_1", "PRESET_AUDIO_2", "PRESET_AUDIO_3", "SHARED", "UNENCRYPTED" ]
enum_PresetSpeke20Video := [ "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" ]
enum_ScteFilter := [ "SPLICE_INSERT", "BREAK", "PROVIDER_ADVERTISEMENT", "DISTRIBUTOR_ADVERTISEMENT", "PROVIDER_PLACEMENT_OPPORTUNITY", "DISTRIBUTOR_PLACEMENT_OPPORTUNITY", "PROVIDER_OVERLAY_PLACEMENT_OPPORTUNITY", "DISTRIBUTOR_OVERLAY_PLACEMENT_OPPORTUNITY", "PROGRAM" ]
enum_TsEncryptionMethod := [ "AES_128", "SAMPLE_AES" ]

valid {
    input.Body.OriginEndpointName == STRING
    input.Body.ContainerType == enum_ContainerType[_]
    input.Body.Segment.SegmentDurationSeconds == INTEGER
    input.Body.Segment.SegmentName == STRING
    input.Body.Segment.TsUseAudioRenditionGroup == BOOLEAN
    input.Body.Segment.IncludeIframeOnlyStreams == BOOLEAN
    input.Body.Segment.TsIncludeDvbSubtitles == BOOLEAN
    input.Body.Segment.Scte.ScteFilter[_] == enum_ScteFilter[_]
    input.Body.Segment.Encryption.ConstantInitializationVector == STRING
    input.Body.Segment.Encryption.EncryptionMethod.TsEncryptionMethod == enum_TsEncryptionMethod[_]
    input.Body.Segment.Encryption.EncryptionMethod.CmafEncryptionMethod == enum_CmafEncryptionMethod[_]
    input.Body.Segment.Encryption.KeyRotationIntervalSeconds == INTEGER
    input.Body.Segment.Encryption.SpekeKeyProvider.EncryptionContractConfiguration.PresetSpeke20Audio == enum_PresetSpeke20Audio[_]
    input.Body.Segment.Encryption.SpekeKeyProvider.EncryptionContractConfiguration.PresetSpeke20Video == enum_PresetSpeke20Video[_]
    input.Body.Segment.Encryption.SpekeKeyProvider.ResourceId == STRING
    input.Body.Segment.Encryption.SpekeKeyProvider.DrmSystems[_] == enum_DrmSystem[_]
    input.Body.Segment.Encryption.SpekeKeyProvider.RoleArn == STRING
    input.Body.Segment.Encryption.SpekeKeyProvider.Url == STRING
    input.Body.Description == STRING
    input.Body.StartoverWindowSeconds == INTEGER
    input.Body.HlsManifests[_].ManifestName == STRING
    input.Body.HlsManifests[_].ChildManifestName == STRING
    input.Body.HlsManifests[_].ScteHls.AdMarkerHls == enum_AdMarkerHls[_]
    input.Body.HlsManifests[_].ManifestWindowSeconds == INTEGER
    input.Body.HlsManifests[_].ProgramDateTimeIntervalSeconds == INTEGER
    input.Body.HlsManifests[_].FilterConfiguration.ManifestFilter == STRING
    input.Body.HlsManifests[_].FilterConfiguration.Start == TIMESTAMP
    input.Body.HlsManifests[_].FilterConfiguration.End == TIMESTAMP
    input.Body.HlsManifests[_].FilterConfiguration.TimeDelaySeconds == INTEGER
    input.Body.LowLatencyHlsManifests[_].ManifestName == STRING
    input.Body.LowLatencyHlsManifests[_].ChildManifestName == STRING
    input.Body.LowLatencyHlsManifests[_].ScteHls.AdMarkerHls == enum_AdMarkerHls[_]
    input.Body.LowLatencyHlsManifests[_].ManifestWindowSeconds == INTEGER
    input.Body.LowLatencyHlsManifests[_].ProgramDateTimeIntervalSeconds == INTEGER
    input.Body.LowLatencyHlsManifests[_].FilterConfiguration.ManifestFilter == STRING
    input.Body.LowLatencyHlsManifests[_].FilterConfiguration.Start == TIMESTAMP
    input.Body.LowLatencyHlsManifests[_].FilterConfiguration.End == TIMESTAMP
    input.Body.LowLatencyHlsManifests[_].FilterConfiguration.TimeDelaySeconds == INTEGER
    input.Body.DashManifests[_].ManifestName == STRING
    input.Body.DashManifests[_].ManifestWindowSeconds == INTEGER
    input.Body.DashManifests[_].FilterConfiguration.ManifestFilter == STRING
    input.Body.DashManifests[_].FilterConfiguration.Start == TIMESTAMP
    input.Body.DashManifests[_].FilterConfiguration.End == TIMESTAMP
    input.Body.DashManifests[_].FilterConfiguration.TimeDelaySeconds == INTEGER
    input.Body.DashManifests[_].MinUpdatePeriodSeconds == INTEGER
    input.Body.DashManifests[_].MinBufferTimeSeconds == INTEGER
    input.Body.DashManifests[_].SuggestedPresentationDelaySeconds == INTEGER
    input.Body.DashManifests[_].SegmentTemplateFormat == enum_DashSegmentTemplateFormat[_]
    input.Body.DashManifests[_].PeriodTriggers[_] == enum_DashPeriodTrigger[_]
    input.Body.DashManifests[_].ScteDash.AdMarkerDash == enum_AdMarkerDash[_]
    input.Body.DashManifests[_].DrmSignaling == enum_DashDrmSignaling[_]
    input.Body.DashManifests[_].UtcTiming.TimingMode == enum_DashUtcTimingMode[_]
    input.Body.DashManifests[_].UtcTiming.TimingSource == STRING
    input.Body.Tags.STRING == STRING
    input.ReqMap.ChannelGroupName == STRING
    input.ReqMap.ChannelName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteChannel

valid {
    input.ReqMap.ChannelGroupName == STRING
    input.ReqMap.ChannelName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteChannelGroup

valid {
    input.ReqMap.ChannelGroupName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteChannelPolicy

valid {
    input.ReqMap.ChannelGroupName == STRING
    input.ReqMap.ChannelName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteOriginEndpoint

valid {
    input.ReqMap.ChannelGroupName == STRING
    input.ReqMap.ChannelName == STRING
    input.ReqMap.OriginEndpointName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteOriginEndpointPolicy

valid {
    input.ReqMap.ChannelGroupName == STRING
    input.ReqMap.ChannelName == STRING
    input.ReqMap.OriginEndpointName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetChannel

valid {
    input.ReqMap.ChannelGroupName == STRING
    input.ReqMap.ChannelName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetChannelGroup

valid {
    input.ReqMap.ChannelGroupName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetChannelPolicy

valid {
    input.ReqMap.ChannelGroupName == STRING
    input.ReqMap.ChannelName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetOriginEndpoint

valid {
    input.ReqMap.ChannelGroupName == STRING
    input.ReqMap.ChannelName == STRING
    input.ReqMap.OriginEndpointName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetOriginEndpointPolicy

valid {
    input.ReqMap.ChannelGroupName == STRING
    input.ReqMap.ChannelName == STRING
    input.ReqMap.OriginEndpointName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListChannelGroups

valid {
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListChannels

valid {
    input.ReqMap.ChannelGroupName == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListOriginEndpoints

valid {
    input.ReqMap.ChannelGroupName == STRING
    input.ReqMap.ChannelName == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTagsForResource

valid {
    input.ReqMap.ResourceArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutChannelPolicy

valid {
    input.Body.Policy == STRING
    input.ReqMap.ChannelGroupName == STRING
    input.ReqMap.ChannelName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutOriginEndpointPolicy

valid {
    input.Body.Policy == STRING
    input.ReqMap.ChannelGroupName == STRING
    input.ReqMap.ChannelName == STRING
    input.ReqMap.OriginEndpointName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TagResource

valid {
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UntagResource

valid {
    input.ReqMap.ResourceArn == STRING
    input.Qs.tagKeys[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateChannel

valid {
    input.Body.Description == STRING
    input.ReqMap.ChannelGroupName == STRING
    input.ReqMap.ChannelName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateChannelGroup

valid {
    input.Body.Description == STRING
    input.ReqMap.ChannelGroupName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateOriginEndpoint

enum_AdMarkerDash := [ "BINARY", "XML" ]
enum_AdMarkerHls := [ "DATERANGE" ]
enum_CmafEncryptionMethod := [ "CENC", "CBCS" ]
enum_ContainerType := [ "TS", "CMAF" ]
enum_DashDrmSignaling := [ "INDIVIDUAL", "REFERENCED" ]
enum_DashPeriodTrigger := [ "AVAILS", "DRM_KEY_ROTATION", "SOURCE_CHANGES", "SOURCE_DISRUPTIONS", "NONE" ]
enum_DashSegmentTemplateFormat := [ "NUMBER_WITH_TIMELINE" ]
enum_DashUtcTimingMode := [ "HTTP_HEAD", "HTTP_ISO", "HTTP_XSDATE", "UTC_DIRECT" ]
enum_DrmSystem := [ "CLEAR_KEY_AES_128", "FAIRPLAY", "PLAYREADY", "WIDEVINE" ]
enum_PresetSpeke20Audio := [ "PRESET_AUDIO_1", "PRESET_AUDIO_2", "PRESET_AUDIO_3", "SHARED", "UNENCRYPTED" ]
enum_PresetSpeke20Video := [ "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" ]
enum_ScteFilter := [ "SPLICE_INSERT", "BREAK", "PROVIDER_ADVERTISEMENT", "DISTRIBUTOR_ADVERTISEMENT", "PROVIDER_PLACEMENT_OPPORTUNITY", "DISTRIBUTOR_PLACEMENT_OPPORTUNITY", "PROVIDER_OVERLAY_PLACEMENT_OPPORTUNITY", "DISTRIBUTOR_OVERLAY_PLACEMENT_OPPORTUNITY", "PROGRAM" ]
enum_TsEncryptionMethod := [ "AES_128", "SAMPLE_AES" ]

valid {
    input.Body.ContainerType == enum_ContainerType[_]
    input.Body.Segment.SegmentDurationSeconds == INTEGER
    input.Body.Segment.SegmentName == STRING
    input.Body.Segment.TsUseAudioRenditionGroup == BOOLEAN
    input.Body.Segment.IncludeIframeOnlyStreams == BOOLEAN
    input.Body.Segment.TsIncludeDvbSubtitles == BOOLEAN
    input.Body.Segment.Scte.ScteFilter[_] == enum_ScteFilter[_]
    input.Body.Segment.Encryption.ConstantInitializationVector == STRING
    input.Body.Segment.Encryption.EncryptionMethod.TsEncryptionMethod == enum_TsEncryptionMethod[_]
    input.Body.Segment.Encryption.EncryptionMethod.CmafEncryptionMethod == enum_CmafEncryptionMethod[_]
    input.Body.Segment.Encryption.KeyRotationIntervalSeconds == INTEGER
    input.Body.Segment.Encryption.SpekeKeyProvider.EncryptionContractConfiguration.PresetSpeke20Audio == enum_PresetSpeke20Audio[_]
    input.Body.Segment.Encryption.SpekeKeyProvider.EncryptionContractConfiguration.PresetSpeke20Video == enum_PresetSpeke20Video[_]
    input.Body.Segment.Encryption.SpekeKeyProvider.ResourceId == STRING
    input.Body.Segment.Encryption.SpekeKeyProvider.DrmSystems[_] == enum_DrmSystem[_]
    input.Body.Segment.Encryption.SpekeKeyProvider.RoleArn == STRING
    input.Body.Segment.Encryption.SpekeKeyProvider.Url == STRING
    input.Body.Description == STRING
    input.Body.StartoverWindowSeconds == INTEGER
    input.Body.HlsManifests[_].ManifestName == STRING
    input.Body.HlsManifests[_].ChildManifestName == STRING
    input.Body.HlsManifests[_].ScteHls.AdMarkerHls == enum_AdMarkerHls[_]
    input.Body.HlsManifests[_].ManifestWindowSeconds == INTEGER
    input.Body.HlsManifests[_].ProgramDateTimeIntervalSeconds == INTEGER
    input.Body.HlsManifests[_].FilterConfiguration.ManifestFilter == STRING
    input.Body.HlsManifests[_].FilterConfiguration.Start == TIMESTAMP
    input.Body.HlsManifests[_].FilterConfiguration.End == TIMESTAMP
    input.Body.HlsManifests[_].FilterConfiguration.TimeDelaySeconds == INTEGER
    input.Body.LowLatencyHlsManifests[_].ManifestName == STRING
    input.Body.LowLatencyHlsManifests[_].ChildManifestName == STRING
    input.Body.LowLatencyHlsManifests[_].ScteHls.AdMarkerHls == enum_AdMarkerHls[_]
    input.Body.LowLatencyHlsManifests[_].ManifestWindowSeconds == INTEGER
    input.Body.LowLatencyHlsManifests[_].ProgramDateTimeIntervalSeconds == INTEGER
    input.Body.LowLatencyHlsManifests[_].FilterConfiguration.ManifestFilter == STRING
    input.Body.LowLatencyHlsManifests[_].FilterConfiguration.Start == TIMESTAMP
    input.Body.LowLatencyHlsManifests[_].FilterConfiguration.End == TIMESTAMP
    input.Body.LowLatencyHlsManifests[_].FilterConfiguration.TimeDelaySeconds == INTEGER
    input.Body.DashManifests[_].ManifestName == STRING
    input.Body.DashManifests[_].ManifestWindowSeconds == INTEGER
    input.Body.DashManifests[_].FilterConfiguration.ManifestFilter == STRING
    input.Body.DashManifests[_].FilterConfiguration.Start == TIMESTAMP
    input.Body.DashManifests[_].FilterConfiguration.End == TIMESTAMP
    input.Body.DashManifests[_].FilterConfiguration.TimeDelaySeconds == INTEGER
    input.Body.DashManifests[_].MinUpdatePeriodSeconds == INTEGER
    input.Body.DashManifests[_].MinBufferTimeSeconds == INTEGER
    input.Body.DashManifests[_].SuggestedPresentationDelaySeconds == INTEGER
    input.Body.DashManifests[_].SegmentTemplateFormat == enum_DashSegmentTemplateFormat[_]
    input.Body.DashManifests[_].PeriodTriggers[_] == enum_DashPeriodTrigger[_]
    input.Body.DashManifests[_].ScteDash.AdMarkerDash == enum_AdMarkerDash[_]
    input.Body.DashManifests[_].DrmSignaling == enum_DashDrmSignaling[_]
    input.Body.DashManifests[_].UtcTiming.TimingMode == enum_DashUtcTimingMode[_]
    input.Body.DashManifests[_].UtcTiming.TimingSource == STRING
    input.ReqMap.ChannelGroupName == STRING
    input.ReqMap.ChannelName == STRING
    input.ReqMap.OriginEndpointName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}