BatchGetChannel

valid {
    input.Body.arns[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

BatchGetStreamKey

valid {
    input.Body.arns[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

BatchStartViewerSessionRevocation

valid {
    input.Body.viewerSessions[_].channelArn == STRING
    input.Body.viewerSessions[_].viewerId == STRING
    input.Body.viewerSessions[_].viewerSessionVersionsLessThanOrEqualTo == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateChannel

enum_ChannelLatencyMode := [ "NORMAL", "LOW" ]
enum_ChannelType := [ "BASIC", "STANDARD", "ADVANCED_SD", "ADVANCED_HD" ]
enum_ContainerFormat := [ "TS", "FRAGMENTED_MP4" ]
enum_MultitrackMaximumResolution := [ "SD", "HD", "FULL_HD" ]
enum_MultitrackPolicy := [ "ALLOW", "REQUIRE" ]
enum_TranscodePreset := [ "HIGHER_BANDWIDTH_DELIVERY", "CONSTRAINED_BANDWIDTH_DELIVERY" ]

valid {
    input.Body.authorized == BOOLEAN
    input.Body.containerFormat == enum_ContainerFormat[_]
    input.Body.insecureIngest == BOOLEAN
    input.Body.latencyMode == enum_ChannelLatencyMode[_]
    input.Body.multitrackInputConfiguration.enabled == BOOLEAN
    input.Body.multitrackInputConfiguration.maximumResolution == enum_MultitrackMaximumResolution[_]
    input.Body.multitrackInputConfiguration.policy == enum_MultitrackPolicy[_]
    input.Body.name == STRING
    input.Body.playbackRestrictionPolicyArn == STRING
    input.Body.preset == enum_TranscodePreset[_]
    input.Body.recordingConfigurationArn == STRING
    input.Body.tags.STRING == STRING
    input.Body.type == enum_ChannelType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreatePlaybackRestrictionPolicy

valid {
    input.Body.allowedCountries[_] == STRING
    input.Body.allowedOrigins[_] == STRING
    input.Body.enableStrictOriginEnforcement == BOOLEAN
    input.Body.name == STRING
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateRecordingConfiguration

enum_RecordingMode := [ "DISABLED", "INTERVAL" ]
enum_RenditionConfigurationRendition := [ "SD", "HD", "FULL_HD", "LOWEST_RESOLUTION" ]
enum_RenditionConfigurationRenditionSelection := [ "ALL", "NONE", "CUSTOM" ]
enum_ThumbnailConfigurationResolution := [ "SD", "HD", "FULL_HD", "LOWEST_RESOLUTION" ]
enum_ThumbnailConfigurationStorage := [ "SEQUENTIAL", "LATEST" ]

valid {
    input.Body.destinationConfiguration.s3.bucketName == STRING
    input.Body.name == STRING
    input.Body.recordingReconnectWindowSeconds == INTEGER
    input.Body.renditionConfiguration.renditionSelection == enum_RenditionConfigurationRenditionSelection[_]
    input.Body.renditionConfiguration.renditions[_] == enum_RenditionConfigurationRendition[_]
    input.Body.tags.STRING == STRING
    input.Body.thumbnailConfiguration.recordingMode == enum_RecordingMode[_]
    input.Body.thumbnailConfiguration.resolution == enum_ThumbnailConfigurationResolution[_]
    input.Body.thumbnailConfiguration.storage[_] == enum_ThumbnailConfigurationStorage[_]
    input.Body.thumbnailConfiguration.targetIntervalSeconds == LONG
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateStreamKey

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

DeleteChannel

valid {
    input.Body.arn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeletePlaybackKeyPair

valid {
    input.Body.arn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeletePlaybackRestrictionPolicy

valid {
    input.Body.arn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteRecordingConfiguration

valid {
    input.Body.arn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteStreamKey

valid {
    input.Body.arn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetChannel

valid {
    input.Body.arn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetPlaybackKeyPair

valid {
    input.Body.arn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetPlaybackRestrictionPolicy

valid {
    input.Body.arn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetRecordingConfiguration

valid {
    input.Body.arn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetStream

valid {
    input.Body.channelArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetStreamKey

valid {
    input.Body.arn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetStreamSession

valid {
    input.Body.channelArn == STRING
    input.Body.streamId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ImportPlaybackKeyPair

valid {
    input.Body.name == STRING
    input.Body.publicKeyMaterial == STRING
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListChannels

valid {
    input.Body.filterByName == STRING
    input.Body.filterByPlaybackRestrictionPolicyArn == STRING
    input.Body.filterByRecordingConfigurationArn == STRING
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListPlaybackKeyPairs

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

ListPlaybackRestrictionPolicies

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

ListRecordingConfigurations

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

ListStreamKeys

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

ListStreamSessions

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

ListStreams

enum_StreamHealth := [ "HEALTHY", "STARVING", "UNKNOWN" ]

valid {
    input.Body.filterBy.health == enum_StreamHealth[_]
    input.Body.maxResults == INTEGER
    input.Body.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
}

PutMetadata

valid {
    input.Body.channelArn == STRING
    input.Body.metadata == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartViewerSessionRevocation

valid {
    input.Body.channelArn == STRING
    input.Body.viewerId == STRING
    input.Body.viewerSessionVersionsLessThanOrEqualTo == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StopStream

valid {
    input.Body.channelArn == 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

enum_ChannelLatencyMode := [ "NORMAL", "LOW" ]
enum_ChannelType := [ "BASIC", "STANDARD", "ADVANCED_SD", "ADVANCED_HD" ]
enum_ContainerFormat := [ "TS", "FRAGMENTED_MP4" ]
enum_MultitrackMaximumResolution := [ "SD", "HD", "FULL_HD" ]
enum_MultitrackPolicy := [ "ALLOW", "REQUIRE" ]
enum_TranscodePreset := [ "HIGHER_BANDWIDTH_DELIVERY", "CONSTRAINED_BANDWIDTH_DELIVERY" ]

valid {
    input.Body.arn == STRING
    input.Body.authorized == BOOLEAN
    input.Body.containerFormat == enum_ContainerFormat[_]
    input.Body.insecureIngest == BOOLEAN
    input.Body.latencyMode == enum_ChannelLatencyMode[_]
    input.Body.multitrackInputConfiguration.enabled == BOOLEAN
    input.Body.multitrackInputConfiguration.maximumResolution == enum_MultitrackMaximumResolution[_]
    input.Body.multitrackInputConfiguration.policy == enum_MultitrackPolicy[_]
    input.Body.name == STRING
    input.Body.playbackRestrictionPolicyArn == STRING
    input.Body.preset == enum_TranscodePreset[_]
    input.Body.recordingConfigurationArn == STRING
    input.Body.type == enum_ChannelType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdatePlaybackRestrictionPolicy

valid {
    input.Body.allowedCountries[_] == STRING
    input.Body.allowedOrigins[_] == STRING
    input.Body.arn == STRING
    input.Body.enableStrictOriginEnforcement == BOOLEAN
    input.Body.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}