MEDIACONNECT

AddBridgeOutputs

enum_Protocol := [ "zixi-push", "rtp-fec", "rtp", "zixi-pull", "rist", "st2110-jpegxs", "cdi", "srt-listener", "srt-caller", "fujitsu-qos", "udp" ]

valid {
    input.Body.outputs[_].networkOutput.ipAddress == STRING
    input.Body.outputs[_].networkOutput.name == STRING
    input.Body.outputs[_].networkOutput.networkName == STRING
    input.Body.outputs[_].networkOutput.port == INTEGER
    input.Body.outputs[_].networkOutput.protocol == enum_Protocol[_]
    input.Body.outputs[_].networkOutput.ttl == INTEGER
    input.ReqMap.bridgeArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AddBridgeSources

enum_Protocol := [ "zixi-push", "rtp-fec", "rtp", "zixi-pull", "rist", "st2110-jpegxs", "cdi", "srt-listener", "srt-caller", "fujitsu-qos", "udp" ]

valid {
    input.Body.sources[_].flowSource.flowArn == STRING
    input.Body.sources[_].flowSource.flowVpcInterfaceAttachment.vpcInterfaceName == STRING
    input.Body.sources[_].flowSource.name == STRING
    input.Body.sources[_].networkSource.multicastIp == STRING
    input.Body.sources[_].networkSource.name == STRING
    input.Body.sources[_].networkSource.networkName == STRING
    input.Body.sources[_].networkSource.port == INTEGER
    input.Body.sources[_].networkSource.protocol == enum_Protocol[_]
    input.ReqMap.bridgeArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AddFlowMediaStreams

enum_Colorimetry := [ "BT601", "BT709", "BT2020", "BT2100", "ST2065-1", "ST2065-3", "XYZ" ]
enum_MediaStreamType := [ "video", "audio", "ancillary-data" ]
enum_Range := [ "NARROW", "FULL", "FULLPROTECT" ]
enum_ScanMode := [ "progressive", "interlace", "progressive-segmented-frame" ]
enum_Tcs := [ "SDR", "PQ", "HLG", "LINEAR", "BT2100LINPQ", "BT2100LINHLG", "ST2065-1", "ST428-1", "DENSITY" ]

valid {
    input.Body.mediaStreams[_].attributes.fmtp.channelOrder == STRING
    input.Body.mediaStreams[_].attributes.fmtp.colorimetry == enum_Colorimetry[_]
    input.Body.mediaStreams[_].attributes.fmtp.exactFramerate == STRING
    input.Body.mediaStreams[_].attributes.fmtp.par == STRING
    input.Body.mediaStreams[_].attributes.fmtp.range == enum_Range[_]
    input.Body.mediaStreams[_].attributes.fmtp.scanMode == enum_ScanMode[_]
    input.Body.mediaStreams[_].attributes.fmtp.tcs == enum_Tcs[_]
    input.Body.mediaStreams[_].attributes.lang == STRING
    input.Body.mediaStreams[_].clockRate == INTEGER
    input.Body.mediaStreams[_].description == STRING
    input.Body.mediaStreams[_].mediaStreamId == INTEGER
    input.Body.mediaStreams[_].mediaStreamName == STRING
    input.Body.mediaStreams[_].mediaStreamType == enum_MediaStreamType[_]
    input.Body.mediaStreams[_].videoFormat == STRING
    input.ReqMap.flowArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AddFlowOutputs

enum_Algorithm := [ "aes128", "aes192", "aes256" ]
enum_EncoderProfile := [ "main", "high" ]
enum_EncodingName := [ "jxsv", "raw", "smpte291", "pcm" ]
enum_KeyType := [ "speke", "static-key", "srt-password" ]
enum_Protocol := [ "zixi-push", "rtp-fec", "rtp", "zixi-pull", "rist", "st2110-jpegxs", "cdi", "srt-listener", "srt-caller", "fujitsu-qos", "udp" ]

valid {
    input.Body.outputs[_].cidrAllowList[_] == STRING
    input.Body.outputs[_].description == STRING
    input.Body.outputs[_].destination == STRING
    input.Body.outputs[_].encryption.algorithm == enum_Algorithm[_]
    input.Body.outputs[_].encryption.constantInitializationVector == STRING
    input.Body.outputs[_].encryption.deviceId == STRING
    input.Body.outputs[_].encryption.keyType == enum_KeyType[_]
    input.Body.outputs[_].encryption.region == STRING
    input.Body.outputs[_].encryption.resourceId == STRING
    input.Body.outputs[_].encryption.roleArn == STRING
    input.Body.outputs[_].encryption.secretArn == STRING
    input.Body.outputs[_].encryption.url == STRING
    input.Body.outputs[_].maxLatency == INTEGER
    input.Body.outputs[_].mediaStreamOutputConfigurations[_].destinationConfigurations[_].destinationIp == STRING
    input.Body.outputs[_].mediaStreamOutputConfigurations[_].destinationConfigurations[_].destinationPort == INTEGER
    input.Body.outputs[_].mediaStreamOutputConfigurations[_].destinationConfigurations[_].interface.name == STRING
    input.Body.outputs[_].mediaStreamOutputConfigurations[_].encodingName == enum_EncodingName[_]
    input.Body.outputs[_].mediaStreamOutputConfigurations[_].encodingParameters.compressionFactor == DOUBLE
    input.Body.outputs[_].mediaStreamOutputConfigurations[_].encodingParameters.encoderProfile == enum_EncoderProfile[_]
    input.Body.outputs[_].mediaStreamOutputConfigurations[_].mediaStreamName == STRING
    input.Body.outputs[_].minLatency == INTEGER
    input.Body.outputs[_].name == STRING
    input.Body.outputs[_].port == INTEGER
    input.Body.outputs[_].protocol == enum_Protocol[_]
    input.Body.outputs[_].remoteId == STRING
    input.Body.outputs[_].senderControlPort == INTEGER
    input.Body.outputs[_].smoothingLatency == INTEGER
    input.Body.outputs[_].streamId == STRING
    input.Body.outputs[_].vpcInterfaceAttachment.vpcInterfaceName == STRING
    input.ReqMap.flowArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AddFlowSources

enum_Algorithm := [ "aes128", "aes192", "aes256" ]
enum_EncodingName := [ "jxsv", "raw", "smpte291", "pcm" ]
enum_KeyType := [ "speke", "static-key", "srt-password" ]
enum_Protocol := [ "zixi-push", "rtp-fec", "rtp", "zixi-pull", "rist", "st2110-jpegxs", "cdi", "srt-listener", "srt-caller", "fujitsu-qos", "udp" ]

valid {
    input.Body.sources[_].decryption.algorithm == enum_Algorithm[_]
    input.Body.sources[_].decryption.constantInitializationVector == STRING
    input.Body.sources[_].decryption.deviceId == STRING
    input.Body.sources[_].decryption.keyType == enum_KeyType[_]
    input.Body.sources[_].decryption.region == STRING
    input.Body.sources[_].decryption.resourceId == STRING
    input.Body.sources[_].decryption.roleArn == STRING
    input.Body.sources[_].decryption.secretArn == STRING
    input.Body.sources[_].decryption.url == STRING
    input.Body.sources[_].description == STRING
    input.Body.sources[_].entitlementArn == STRING
    input.Body.sources[_].ingestPort == INTEGER
    input.Body.sources[_].maxBitrate == INTEGER
    input.Body.sources[_].maxLatency == INTEGER
    input.Body.sources[_].maxSyncBuffer == INTEGER
    input.Body.sources[_].mediaStreamSourceConfigurations[_].encodingName == enum_EncodingName[_]
    input.Body.sources[_].mediaStreamSourceConfigurations[_].inputConfigurations[_].inputPort == INTEGER
    input.Body.sources[_].mediaStreamSourceConfigurations[_].inputConfigurations[_].interface.name == STRING
    input.Body.sources[_].mediaStreamSourceConfigurations[_].mediaStreamName == STRING
    input.Body.sources[_].minLatency == INTEGER
    input.Body.sources[_].name == STRING
    input.Body.sources[_].protocol == enum_Protocol[_]
    input.Body.sources[_].senderControlPort == INTEGER
    input.Body.sources[_].senderIpAddress == STRING
    input.Body.sources[_].sourceListenerAddress == STRING
    input.Body.sources[_].sourceListenerPort == INTEGER
    input.Body.sources[_].streamId == STRING
    input.Body.sources[_].vpcInterfaceName == STRING
    input.Body.sources[_].whitelistCidr == STRING
    input.Body.sources[_].gatewayBridgeSource.bridgeArn == STRING
    input.Body.sources[_].gatewayBridgeSource.vpcInterfaceAttachment.vpcInterfaceName == STRING
    input.ReqMap.flowArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AddFlowVpcInterfaces

enum_NetworkInterfaceType := [ "ena", "efa" ]

valid {
    input.Body.vpcInterfaces[_].name == STRING
    input.Body.vpcInterfaces[_].networkInterfaceType == enum_NetworkInterfaceType[_]
    input.Body.vpcInterfaces[_].roleArn == STRING
    input.Body.vpcInterfaces[_].securityGroupIds[_] == STRING
    input.Body.vpcInterfaces[_].subnetId == STRING
    input.ReqMap.flowArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateBridge

enum_FailoverMode := [ "MERGE", "FAILOVER" ]
enum_Protocol := [ "zixi-push", "rtp-fec", "rtp", "zixi-pull", "rist", "st2110-jpegxs", "cdi", "srt-listener", "srt-caller", "fujitsu-qos", "udp" ]
enum_State := [ "ENABLED", "DISABLED" ]

valid {
    input.Body.egressGatewayBridge.maxBitrate == INTEGER
    input.Body.ingressGatewayBridge.maxBitrate == INTEGER
    input.Body.ingressGatewayBridge.maxOutputs == INTEGER
    input.Body.name == STRING
    input.Body.outputs[_].networkOutput.ipAddress == STRING
    input.Body.outputs[_].networkOutput.name == STRING
    input.Body.outputs[_].networkOutput.networkName == STRING
    input.Body.outputs[_].networkOutput.port == INTEGER
    input.Body.outputs[_].networkOutput.protocol == enum_Protocol[_]
    input.Body.outputs[_].networkOutput.ttl == INTEGER
    input.Body.placementArn == STRING
    input.Body.sourceFailoverConfig.failoverMode == enum_FailoverMode[_]
    input.Body.sourceFailoverConfig.recoveryWindow == INTEGER
    input.Body.sourceFailoverConfig.sourcePriority.primarySource == STRING
    input.Body.sourceFailoverConfig.state == enum_State[_]
    input.Body.sources[_].flowSource.flowArn == STRING
    input.Body.sources[_].flowSource.flowVpcInterfaceAttachment.vpcInterfaceName == STRING
    input.Body.sources[_].flowSource.name == STRING
    input.Body.sources[_].networkSource.multicastIp == STRING
    input.Body.sources[_].networkSource.name == STRING
    input.Body.sources[_].networkSource.networkName == STRING
    input.Body.sources[_].networkSource.port == INTEGER
    input.Body.sources[_].networkSource.protocol == enum_Protocol[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateFlow

enum_Algorithm := [ "aes128", "aes192", "aes256" ]
enum_Colorimetry := [ "BT601", "BT709", "BT2020", "BT2100", "ST2065-1", "ST2065-3", "XYZ" ]
enum_EncoderProfile := [ "main", "high" ]
enum_EncodingName := [ "jxsv", "raw", "smpte291", "pcm" ]
enum_EntitlementStatus := [ "ENABLED", "DISABLED" ]
enum_FailoverMode := [ "MERGE", "FAILOVER" ]
enum_KeyType := [ "speke", "static-key", "srt-password" ]
enum_MaintenanceDay := [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ]
enum_MediaStreamType := [ "video", "audio", "ancillary-data" ]
enum_NetworkInterfaceType := [ "ena", "efa" ]
enum_Protocol := [ "zixi-push", "rtp-fec", "rtp", "zixi-pull", "rist", "st2110-jpegxs", "cdi", "srt-listener", "srt-caller", "fujitsu-qos", "udp" ]
enum_Range := [ "NARROW", "FULL", "FULLPROTECT" ]
enum_ScanMode := [ "progressive", "interlace", "progressive-segmented-frame" ]
enum_State := [ "ENABLED", "DISABLED" ]
enum_Tcs := [ "SDR", "PQ", "HLG", "LINEAR", "BT2100LINPQ", "BT2100LINHLG", "ST2065-1", "ST428-1", "DENSITY" ]

valid {
    input.Body.availabilityZone == STRING
    input.Body.entitlements[_].dataTransferSubscriberFeePercent == INTEGER
    input.Body.entitlements[_].description == STRING
    input.Body.entitlements[_].encryption.algorithm == enum_Algorithm[_]
    input.Body.entitlements[_].encryption.constantInitializationVector == STRING
    input.Body.entitlements[_].encryption.deviceId == STRING
    input.Body.entitlements[_].encryption.keyType == enum_KeyType[_]
    input.Body.entitlements[_].encryption.region == STRING
    input.Body.entitlements[_].encryption.resourceId == STRING
    input.Body.entitlements[_].encryption.roleArn == STRING
    input.Body.entitlements[_].encryption.secretArn == STRING
    input.Body.entitlements[_].encryption.url == STRING
    input.Body.entitlements[_].entitlementStatus == enum_EntitlementStatus[_]
    input.Body.entitlements[_].name == STRING
    input.Body.entitlements[_].subscribers[_] == STRING
    input.Body.mediaStreams[_].attributes.fmtp.channelOrder == STRING
    input.Body.mediaStreams[_].attributes.fmtp.colorimetry == enum_Colorimetry[_]
    input.Body.mediaStreams[_].attributes.fmtp.exactFramerate == STRING
    input.Body.mediaStreams[_].attributes.fmtp.par == STRING
    input.Body.mediaStreams[_].attributes.fmtp.range == enum_Range[_]
    input.Body.mediaStreams[_].attributes.fmtp.scanMode == enum_ScanMode[_]
    input.Body.mediaStreams[_].attributes.fmtp.tcs == enum_Tcs[_]
    input.Body.mediaStreams[_].attributes.lang == STRING
    input.Body.mediaStreams[_].clockRate == INTEGER
    input.Body.mediaStreams[_].description == STRING
    input.Body.mediaStreams[_].mediaStreamId == INTEGER
    input.Body.mediaStreams[_].mediaStreamName == STRING
    input.Body.mediaStreams[_].mediaStreamType == enum_MediaStreamType[_]
    input.Body.mediaStreams[_].videoFormat == STRING
    input.Body.name == STRING
    input.Body.outputs[_].cidrAllowList[_] == STRING
    input.Body.outputs[_].description == STRING
    input.Body.outputs[_].destination == STRING
    input.Body.outputs[_].encryption.algorithm == enum_Algorithm[_]
    input.Body.outputs[_].encryption.constantInitializationVector == STRING
    input.Body.outputs[_].encryption.deviceId == STRING
    input.Body.outputs[_].encryption.keyType == enum_KeyType[_]
    input.Body.outputs[_].encryption.region == STRING
    input.Body.outputs[_].encryption.resourceId == STRING
    input.Body.outputs[_].encryption.roleArn == STRING
    input.Body.outputs[_].encryption.secretArn == STRING
    input.Body.outputs[_].encryption.url == STRING
    input.Body.outputs[_].maxLatency == INTEGER
    input.Body.outputs[_].mediaStreamOutputConfigurations[_].destinationConfigurations[_].destinationIp == STRING
    input.Body.outputs[_].mediaStreamOutputConfigurations[_].destinationConfigurations[_].destinationPort == INTEGER
    input.Body.outputs[_].mediaStreamOutputConfigurations[_].destinationConfigurations[_].interface.name == STRING
    input.Body.outputs[_].mediaStreamOutputConfigurations[_].encodingName == enum_EncodingName[_]
    input.Body.outputs[_].mediaStreamOutputConfigurations[_].encodingParameters.compressionFactor == DOUBLE
    input.Body.outputs[_].mediaStreamOutputConfigurations[_].encodingParameters.encoderProfile == enum_EncoderProfile[_]
    input.Body.outputs[_].mediaStreamOutputConfigurations[_].mediaStreamName == STRING
    input.Body.outputs[_].minLatency == INTEGER
    input.Body.outputs[_].name == STRING
    input.Body.outputs[_].port == INTEGER
    input.Body.outputs[_].protocol == enum_Protocol[_]
    input.Body.outputs[_].remoteId == STRING
    input.Body.outputs[_].senderControlPort == INTEGER
    input.Body.outputs[_].smoothingLatency == INTEGER
    input.Body.outputs[_].streamId == STRING
    input.Body.outputs[_].vpcInterfaceAttachment.vpcInterfaceName == STRING
    input.Body.source.decryption.algorithm == enum_Algorithm[_]
    input.Body.source.decryption.constantInitializationVector == STRING
    input.Body.source.decryption.deviceId == STRING
    input.Body.source.decryption.keyType == enum_KeyType[_]
    input.Body.source.decryption.region == STRING
    input.Body.source.decryption.resourceId == STRING
    input.Body.source.decryption.roleArn == STRING
    input.Body.source.decryption.secretArn == STRING
    input.Body.source.decryption.url == STRING
    input.Body.source.description == STRING
    input.Body.source.entitlementArn == STRING
    input.Body.source.ingestPort == INTEGER
    input.Body.source.maxBitrate == INTEGER
    input.Body.source.maxLatency == INTEGER
    input.Body.source.maxSyncBuffer == INTEGER
    input.Body.source.mediaStreamSourceConfigurations[_].encodingName == enum_EncodingName[_]
    input.Body.source.mediaStreamSourceConfigurations[_].inputConfigurations[_].inputPort == INTEGER
    input.Body.source.mediaStreamSourceConfigurations[_].inputConfigurations[_].interface.name == STRING
    input.Body.source.mediaStreamSourceConfigurations[_].mediaStreamName == STRING
    input.Body.source.minLatency == INTEGER
    input.Body.source.name == STRING
    input.Body.source.protocol == enum_Protocol[_]
    input.Body.source.senderControlPort == INTEGER
    input.Body.source.senderIpAddress == STRING
    input.Body.source.sourceListenerAddress == STRING
    input.Body.source.sourceListenerPort == INTEGER
    input.Body.source.streamId == STRING
    input.Body.source.vpcInterfaceName == STRING
    input.Body.source.whitelistCidr == STRING
    input.Body.source.gatewayBridgeSource.bridgeArn == STRING
    input.Body.source.gatewayBridgeSource.vpcInterfaceAttachment.vpcInterfaceName == STRING
    input.Body.sourceFailoverConfig.failoverMode == enum_FailoverMode[_]
    input.Body.sourceFailoverConfig.recoveryWindow == INTEGER
    input.Body.sourceFailoverConfig.sourcePriority.primarySource == STRING
    input.Body.sourceFailoverConfig.state == enum_State[_]
    input.Body.sources[_].decryption.algorithm == enum_Algorithm[_]
    input.Body.sources[_].decryption.constantInitializationVector == STRING
    input.Body.sources[_].decryption.deviceId == STRING
    input.Body.sources[_].decryption.keyType == enum_KeyType[_]
    input.Body.sources[_].decryption.region == STRING
    input.Body.sources[_].decryption.resourceId == STRING
    input.Body.sources[_].decryption.roleArn == STRING
    input.Body.sources[_].decryption.secretArn == STRING
    input.Body.sources[_].decryption.url == STRING
    input.Body.sources[_].description == STRING
    input.Body.sources[_].entitlementArn == STRING
    input.Body.sources[_].ingestPort == INTEGER
    input.Body.sources[_].maxBitrate == INTEGER
    input.Body.sources[_].maxLatency == INTEGER
    input.Body.sources[_].maxSyncBuffer == INTEGER
    input.Body.sources[_].mediaStreamSourceConfigurations[_].encodingName == enum_EncodingName[_]
    input.Body.sources[_].mediaStreamSourceConfigurations[_].inputConfigurations[_].inputPort == INTEGER
    input.Body.sources[_].mediaStreamSourceConfigurations[_].inputConfigurations[_].interface.name == STRING
    input.Body.sources[_].mediaStreamSourceConfigurations[_].mediaStreamName == STRING
    input.Body.sources[_].minLatency == INTEGER
    input.Body.sources[_].name == STRING
    input.Body.sources[_].protocol == enum_Protocol[_]
    input.Body.sources[_].senderControlPort == INTEGER
    input.Body.sources[_].senderIpAddress == STRING
    input.Body.sources[_].sourceListenerAddress == STRING
    input.Body.sources[_].sourceListenerPort == INTEGER
    input.Body.sources[_].streamId == STRING
    input.Body.sources[_].vpcInterfaceName == STRING
    input.Body.sources[_].whitelistCidr == STRING
    input.Body.sources[_].gatewayBridgeSource.bridgeArn == STRING
    input.Body.sources[_].gatewayBridgeSource.vpcInterfaceAttachment.vpcInterfaceName == STRING
    input.Body.vpcInterfaces[_].name == STRING
    input.Body.vpcInterfaces[_].networkInterfaceType == enum_NetworkInterfaceType[_]
    input.Body.vpcInterfaces[_].roleArn == STRING
    input.Body.vpcInterfaces[_].securityGroupIds[_] == STRING
    input.Body.vpcInterfaces[_].subnetId == STRING
    input.Body.maintenance.maintenanceDay == enum_MaintenanceDay[_]
    input.Body.maintenance.maintenanceStartHour == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateGateway

valid {
    input.Body.egressCidrBlocks[_] == STRING
    input.Body.name == STRING
    input.Body.networks[_].cidrBlock == STRING
    input.Body.networks[_].name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteBridge

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

DeleteFlow

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

DeleteGateway

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

DeregisterGatewayInstance

valid {
    input.ReqMap.gatewayInstanceArn == STRING
    input.Qs.force == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeBridge

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

DescribeFlow

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

DescribeFlowSourceMetadata

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

DescribeGateway

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

DescribeGatewayInstance

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

DescribeOffering

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

DescribeReservation

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

GrantFlowEntitlements

enum_Algorithm := [ "aes128", "aes192", "aes256" ]
enum_EntitlementStatus := [ "ENABLED", "DISABLED" ]
enum_KeyType := [ "speke", "static-key", "srt-password" ]

valid {
    input.Body.entitlements[_].dataTransferSubscriberFeePercent == INTEGER
    input.Body.entitlements[_].description == STRING
    input.Body.entitlements[_].encryption.algorithm == enum_Algorithm[_]
    input.Body.entitlements[_].encryption.constantInitializationVector == STRING
    input.Body.entitlements[_].encryption.deviceId == STRING
    input.Body.entitlements[_].encryption.keyType == enum_KeyType[_]
    input.Body.entitlements[_].encryption.region == STRING
    input.Body.entitlements[_].encryption.resourceId == STRING
    input.Body.entitlements[_].encryption.roleArn == STRING
    input.Body.entitlements[_].encryption.secretArn == STRING
    input.Body.entitlements[_].encryption.url == STRING
    input.Body.entitlements[_].entitlementStatus == enum_EntitlementStatus[_]
    input.Body.entitlements[_].name == STRING
    input.Body.entitlements[_].subscribers[_] == STRING
    input.ReqMap.flowArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListBridges

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

ListEntitlements

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

ListFlows

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

ListGatewayInstances

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

ListGateways

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

ListOfferings

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

ListReservations

valid {
    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
}

PurchaseOffering

valid {
    input.Body.reservationName == STRING
    input.Body.start == STRING
    input.ReqMap.offeringArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RemoveBridgeOutput

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

RemoveBridgeSource

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

RemoveFlowMediaStream

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

RemoveFlowOutput

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

RemoveFlowSource

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

RemoveFlowVpcInterface

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

RevokeFlowEntitlement

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

StartFlow

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

StopFlow

valid {
    input.ReqMap.flowArn == 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
}

UpdateBridge

enum_FailoverMode := [ "MERGE", "FAILOVER" ]
enum_State := [ "ENABLED", "DISABLED" ]

valid {
    input.Body.egressGatewayBridge.maxBitrate == INTEGER
    input.Body.ingressGatewayBridge.maxBitrate == INTEGER
    input.Body.ingressGatewayBridge.maxOutputs == INTEGER
    input.Body.sourceFailoverConfig.failoverMode == enum_FailoverMode[_]
    input.Body.sourceFailoverConfig.recoveryWindow == INTEGER
    input.Body.sourceFailoverConfig.sourcePriority.primarySource == STRING
    input.Body.sourceFailoverConfig.state == enum_State[_]
    input.ReqMap.bridgeArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateBridgeOutput

enum_Protocol := [ "zixi-push", "rtp-fec", "rtp", "zixi-pull", "rist", "st2110-jpegxs", "cdi", "srt-listener", "srt-caller", "fujitsu-qos", "udp" ]

valid {
    input.Body.networkOutput.ipAddress == STRING
    input.Body.networkOutput.networkName == STRING
    input.Body.networkOutput.port == INTEGER
    input.Body.networkOutput.protocol == enum_Protocol[_]
    input.Body.networkOutput.ttl == INTEGER
    input.ReqMap.bridgeArn == STRING
    input.ReqMap.outputName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateBridgeSource

enum_Protocol := [ "zixi-push", "rtp-fec", "rtp", "zixi-pull", "rist", "st2110-jpegxs", "cdi", "srt-listener", "srt-caller", "fujitsu-qos", "udp" ]

valid {
    input.Body.flowSource.flowArn == STRING
    input.Body.flowSource.flowVpcInterfaceAttachment.vpcInterfaceName == STRING
    input.Body.networkSource.multicastIp == STRING
    input.Body.networkSource.networkName == STRING
    input.Body.networkSource.port == INTEGER
    input.Body.networkSource.protocol == enum_Protocol[_]
    input.ReqMap.bridgeArn == STRING
    input.ReqMap.sourceName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateBridgeState

enum_DesiredState := [ "ACTIVE", "STANDBY", "DELETED" ]

valid {
    input.Body.desiredState == enum_DesiredState[_]
    input.ReqMap.bridgeArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateFlow

enum_FailoverMode := [ "MERGE", "FAILOVER" ]
enum_MaintenanceDay := [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ]
enum_State := [ "ENABLED", "DISABLED" ]

valid {
    input.Body.sourceFailoverConfig.failoverMode == enum_FailoverMode[_]
    input.Body.sourceFailoverConfig.recoveryWindow == INTEGER
    input.Body.sourceFailoverConfig.sourcePriority.primarySource == STRING
    input.Body.sourceFailoverConfig.state == enum_State[_]
    input.Body.maintenance.maintenanceDay == enum_MaintenanceDay[_]
    input.Body.maintenance.maintenanceScheduledDate == STRING
    input.Body.maintenance.maintenanceStartHour == STRING
    input.ReqMap.flowArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateFlowEntitlement

enum_Algorithm := [ "aes128", "aes192", "aes256" ]
enum_EntitlementStatus := [ "ENABLED", "DISABLED" ]
enum_KeyType := [ "speke", "static-key", "srt-password" ]

valid {
    input.Body.description == STRING
    input.Body.encryption.algorithm == enum_Algorithm[_]
    input.Body.encryption.constantInitializationVector == STRING
    input.Body.encryption.deviceId == STRING
    input.Body.encryption.keyType == enum_KeyType[_]
    input.Body.encryption.region == STRING
    input.Body.encryption.resourceId == STRING
    input.Body.encryption.roleArn == STRING
    input.Body.encryption.secretArn == STRING
    input.Body.encryption.url == STRING
    input.Body.entitlementStatus == enum_EntitlementStatus[_]
    input.Body.subscribers[_] == STRING
    input.ReqMap.entitlementArn == STRING
    input.ReqMap.flowArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateFlowMediaStream

enum_Colorimetry := [ "BT601", "BT709", "BT2020", "BT2100", "ST2065-1", "ST2065-3", "XYZ" ]
enum_MediaStreamType := [ "video", "audio", "ancillary-data" ]
enum_Range := [ "NARROW", "FULL", "FULLPROTECT" ]
enum_ScanMode := [ "progressive", "interlace", "progressive-segmented-frame" ]
enum_Tcs := [ "SDR", "PQ", "HLG", "LINEAR", "BT2100LINPQ", "BT2100LINHLG", "ST2065-1", "ST428-1", "DENSITY" ]

valid {
    input.Body.attributes.fmtp.channelOrder == STRING
    input.Body.attributes.fmtp.colorimetry == enum_Colorimetry[_]
    input.Body.attributes.fmtp.exactFramerate == STRING
    input.Body.attributes.fmtp.par == STRING
    input.Body.attributes.fmtp.range == enum_Range[_]
    input.Body.attributes.fmtp.scanMode == enum_ScanMode[_]
    input.Body.attributes.fmtp.tcs == enum_Tcs[_]
    input.Body.attributes.lang == STRING
    input.Body.clockRate == INTEGER
    input.Body.description == STRING
    input.Body.mediaStreamType == enum_MediaStreamType[_]
    input.Body.videoFormat == STRING
    input.ReqMap.flowArn == STRING
    input.ReqMap.mediaStreamName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateFlowOutput

enum_Algorithm := [ "aes128", "aes192", "aes256" ]
enum_EncoderProfile := [ "main", "high" ]
enum_EncodingName := [ "jxsv", "raw", "smpte291", "pcm" ]
enum_KeyType := [ "speke", "static-key", "srt-password" ]
enum_Protocol := [ "zixi-push", "rtp-fec", "rtp", "zixi-pull", "rist", "st2110-jpegxs", "cdi", "srt-listener", "srt-caller", "fujitsu-qos", "udp" ]

valid {
    input.Body.cidrAllowList[_] == STRING
    input.Body.description == STRING
    input.Body.destination == STRING
    input.Body.encryption.algorithm == enum_Algorithm[_]
    input.Body.encryption.constantInitializationVector == STRING
    input.Body.encryption.deviceId == STRING
    input.Body.encryption.keyType == enum_KeyType[_]
    input.Body.encryption.region == STRING
    input.Body.encryption.resourceId == STRING
    input.Body.encryption.roleArn == STRING
    input.Body.encryption.secretArn == STRING
    input.Body.encryption.url == STRING
    input.Body.maxLatency == INTEGER
    input.Body.mediaStreamOutputConfigurations[_].destinationConfigurations[_].destinationIp == STRING
    input.Body.mediaStreamOutputConfigurations[_].destinationConfigurations[_].destinationPort == INTEGER
    input.Body.mediaStreamOutputConfigurations[_].destinationConfigurations[_].interface.name == STRING
    input.Body.mediaStreamOutputConfigurations[_].encodingName == enum_EncodingName[_]
    input.Body.mediaStreamOutputConfigurations[_].encodingParameters.compressionFactor == DOUBLE
    input.Body.mediaStreamOutputConfigurations[_].encodingParameters.encoderProfile == enum_EncoderProfile[_]
    input.Body.mediaStreamOutputConfigurations[_].mediaStreamName == STRING
    input.Body.minLatency == INTEGER
    input.Body.port == INTEGER
    input.Body.protocol == enum_Protocol[_]
    input.Body.remoteId == STRING
    input.Body.senderControlPort == INTEGER
    input.Body.senderIpAddress == STRING
    input.Body.smoothingLatency == INTEGER
    input.Body.streamId == STRING
    input.Body.vpcInterfaceAttachment.vpcInterfaceName == STRING
    input.ReqMap.flowArn == STRING
    input.ReqMap.outputArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateFlowSource

enum_Algorithm := [ "aes128", "aes192", "aes256" ]
enum_EncodingName := [ "jxsv", "raw", "smpte291", "pcm" ]
enum_KeyType := [ "speke", "static-key", "srt-password" ]
enum_Protocol := [ "zixi-push", "rtp-fec", "rtp", "zixi-pull", "rist", "st2110-jpegxs", "cdi", "srt-listener", "srt-caller", "fujitsu-qos", "udp" ]

valid {
    input.Body.decryption.algorithm == enum_Algorithm[_]
    input.Body.decryption.constantInitializationVector == STRING
    input.Body.decryption.deviceId == STRING
    input.Body.decryption.keyType == enum_KeyType[_]
    input.Body.decryption.region == STRING
    input.Body.decryption.resourceId == STRING
    input.Body.decryption.roleArn == STRING
    input.Body.decryption.secretArn == STRING
    input.Body.decryption.url == STRING
    input.Body.description == STRING
    input.Body.entitlementArn == STRING
    input.Body.ingestPort == INTEGER
    input.Body.maxBitrate == INTEGER
    input.Body.maxLatency == INTEGER
    input.Body.maxSyncBuffer == INTEGER
    input.Body.mediaStreamSourceConfigurations[_].encodingName == enum_EncodingName[_]
    input.Body.mediaStreamSourceConfigurations[_].inputConfigurations[_].inputPort == INTEGER
    input.Body.mediaStreamSourceConfigurations[_].inputConfigurations[_].interface.name == STRING
    input.Body.mediaStreamSourceConfigurations[_].mediaStreamName == STRING
    input.Body.minLatency == INTEGER
    input.Body.protocol == enum_Protocol[_]
    input.Body.senderControlPort == INTEGER
    input.Body.senderIpAddress == STRING
    input.Body.sourceListenerAddress == STRING
    input.Body.sourceListenerPort == INTEGER
    input.Body.streamId == STRING
    input.Body.vpcInterfaceName == STRING
    input.Body.whitelistCidr == STRING
    input.Body.gatewayBridgeSource.bridgeArn == STRING
    input.Body.gatewayBridgeSource.vpcInterfaceAttachment.vpcInterfaceName == STRING
    input.ReqMap.flowArn == STRING
    input.ReqMap.sourceArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateGatewayInstance

enum_BridgePlacement := [ "AVAILABLE", "LOCKED" ]

valid {
    input.Body.bridgePlacement == enum_BridgePlacement[_]
    input.ReqMap.gatewayInstanceArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}