aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
2 lines • 318 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnRouterOutput=exports.CfnRouterNetworkInterface=exports.CfnRouterInput=exports.CfnGateway=exports.CfnFlowVpcInterface=exports.CfnFlowSource=exports.CfnFlowOutput=exports.CfnFlowEntitlement=exports.CfnFlow=exports.CfnBridgeSource=exports.CfnBridgeOutput=exports.CfnBridge=void 0;var jsiiDeprecationWarnings=()=>{var tmp=require("../../.warnings.jsii.js");return jsiiDeprecationWarnings=()=>tmp,tmp};const JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti");var cdk=()=>{var tmp=require("../../core/lib");return cdk=()=>tmp,tmp},cfn_parse=()=>{var tmp=require("../../core/lib/helpers-internal");return cfn_parse=()=>tmp,tmp},cdk_errors=()=>{var tmp=require("../../core/lib/errors");return cdk_errors=()=>tmp,tmp};class CfnBridge extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_mediaconnect.CfnBridge",version:"2.234.1"};static CFN_RESOURCE_TYPE_NAME="AWS::MediaConnect::Bridge";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnBridgePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError("Unexpected IResolvable",scope);const ret=new CfnBridge(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnBridge(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnBridge.CFN_RESOURCE_TYPE_NAME}static arnForBridge(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_mediaconnect_IBridgeRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForBridge),error}return resource.bridgeRef.bridgeArn}attrBridgeArn;attrBridgeState;egressGatewayBridge;ingressGatewayBridge;name;outputs;placementArn;sourceFailoverConfig;sources;constructor(scope,id,props){super(scope,id,{type:CfnBridge.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_mediaconnect_CfnBridgeProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnBridge),error}cdk().requireProperty(props,"name",this),cdk().requireProperty(props,"placementArn",this),cdk().requireProperty(props,"sources",this),this.attrBridgeArn=cdk().Token.asString(this.getAtt("BridgeArn",cdk().ResolutionTypeHint.STRING)),this.attrBridgeState=cdk().Token.asString(this.getAtt("BridgeState",cdk().ResolutionTypeHint.STRING)),this.egressGatewayBridge=props.egressGatewayBridge,this.ingressGatewayBridge=props.ingressGatewayBridge,this.name=props.name,this.outputs=props.outputs,this.placementArn=props.placementArn,this.sourceFailoverConfig=props.sourceFailoverConfig,this.sources=props.sources}get bridgeRef(){return{bridgeArn:this.ref}}get cfnProperties(){return{egressGatewayBridge:this.egressGatewayBridge,ingressGatewayBridge:this.ingressGatewayBridge,name:this.name,outputs:this.outputs,placementArn:this.placementArn,sourceFailoverConfig:this.sourceFailoverConfig,sources:this.sources}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnBridge.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnBridgePropsToCloudFormation(props)}}exports.CfnBridge=CfnBridge;function CfnBridgeSourcePriorityPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("primarySource",cdk().validateString)(properties.primarySource)),errors.wrap('supplied properties not correct for "SourcePriorityProperty"')}function convertCfnBridgeSourcePriorityPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBridgeSourcePriorityPropertyValidator(properties).assertSuccess(),{PrimarySource:cdk().stringToCloudFormation(properties.primarySource)}):properties}function CfnBridgeSourcePriorityPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("primarySource","PrimarySource",properties.PrimarySource!=null?cfn_parse().FromCloudFormation.getString(properties.PrimarySource):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBridgeFailoverConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("failoverMode",cdk().requiredValidator)(properties.failoverMode)),errors.collect(cdk().propertyValidator("failoverMode",cdk().validateString)(properties.failoverMode)),errors.collect(cdk().propertyValidator("sourcePriority",CfnBridgeSourcePriorityPropertyValidator)(properties.sourcePriority)),errors.collect(cdk().propertyValidator("state",cdk().validateString)(properties.state)),errors.wrap('supplied properties not correct for "FailoverConfigProperty"')}function convertCfnBridgeFailoverConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBridgeFailoverConfigPropertyValidator(properties).assertSuccess(),{FailoverMode:cdk().stringToCloudFormation(properties.failoverMode),SourcePriority:convertCfnBridgeSourcePriorityPropertyToCloudFormation(properties.sourcePriority),State:cdk().stringToCloudFormation(properties.state)}):properties}function CfnBridgeFailoverConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("failoverMode","FailoverMode",properties.FailoverMode!=null?cfn_parse().FromCloudFormation.getString(properties.FailoverMode):void 0),ret.addPropertyResult("sourcePriority","SourcePriority",properties.SourcePriority!=null?CfnBridgeSourcePriorityPropertyFromCloudFormation(properties.SourcePriority):void 0),ret.addPropertyResult("state","State",properties.State!=null?cfn_parse().FromCloudFormation.getString(properties.State):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBridgeIngressGatewayBridgePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("maxBitrate",cdk().requiredValidator)(properties.maxBitrate)),errors.collect(cdk().propertyValidator("maxBitrate",cdk().validateNumber)(properties.maxBitrate)),errors.collect(cdk().propertyValidator("maxOutputs",cdk().requiredValidator)(properties.maxOutputs)),errors.collect(cdk().propertyValidator("maxOutputs",cdk().validateNumber)(properties.maxOutputs)),errors.wrap('supplied properties not correct for "IngressGatewayBridgeProperty"')}function convertCfnBridgeIngressGatewayBridgePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBridgeIngressGatewayBridgePropertyValidator(properties).assertSuccess(),{MaxBitrate:cdk().numberToCloudFormation(properties.maxBitrate),MaxOutputs:cdk().numberToCloudFormation(properties.maxOutputs)}):properties}function CfnBridgeIngressGatewayBridgePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("maxBitrate","MaxBitrate",properties.MaxBitrate!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxBitrate):void 0),ret.addPropertyResult("maxOutputs","MaxOutputs",properties.MaxOutputs!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxOutputs):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBridgeEgressGatewayBridgePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("maxBitrate",cdk().requiredValidator)(properties.maxBitrate)),errors.collect(cdk().propertyValidator("maxBitrate",cdk().validateNumber)(properties.maxBitrate)),errors.wrap('supplied properties not correct for "EgressGatewayBridgeProperty"')}function convertCfnBridgeEgressGatewayBridgePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBridgeEgressGatewayBridgePropertyValidator(properties).assertSuccess(),{MaxBitrate:cdk().numberToCloudFormation(properties.maxBitrate)}):properties}function CfnBridgeEgressGatewayBridgePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("maxBitrate","MaxBitrate",properties.MaxBitrate!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxBitrate):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBridgeBridgeNetworkOutputPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("ipAddress",cdk().requiredValidator)(properties.ipAddress)),errors.collect(cdk().propertyValidator("ipAddress",cdk().validateString)(properties.ipAddress)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("networkName",cdk().requiredValidator)(properties.networkName)),errors.collect(cdk().propertyValidator("networkName",cdk().validateString)(properties.networkName)),errors.collect(cdk().propertyValidator("port",cdk().requiredValidator)(properties.port)),errors.collect(cdk().propertyValidator("port",cdk().validateNumber)(properties.port)),errors.collect(cdk().propertyValidator("protocol",cdk().requiredValidator)(properties.protocol)),errors.collect(cdk().propertyValidator("protocol",cdk().validateString)(properties.protocol)),errors.collect(cdk().propertyValidator("ttl",cdk().requiredValidator)(properties.ttl)),errors.collect(cdk().propertyValidator("ttl",cdk().validateNumber)(properties.ttl)),errors.wrap('supplied properties not correct for "BridgeNetworkOutputProperty"')}function convertCfnBridgeBridgeNetworkOutputPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBridgeBridgeNetworkOutputPropertyValidator(properties).assertSuccess(),{IpAddress:cdk().stringToCloudFormation(properties.ipAddress),Name:cdk().stringToCloudFormation(properties.name),NetworkName:cdk().stringToCloudFormation(properties.networkName),Port:cdk().numberToCloudFormation(properties.port),Protocol:cdk().stringToCloudFormation(properties.protocol),Ttl:cdk().numberToCloudFormation(properties.ttl)}):properties}function CfnBridgeBridgeNetworkOutputPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("ipAddress","IpAddress",properties.IpAddress!=null?cfn_parse().FromCloudFormation.getString(properties.IpAddress):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("networkName","NetworkName",properties.NetworkName!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkName):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse().FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse().FromCloudFormation.getString(properties.Protocol):void 0),ret.addPropertyResult("ttl","Ttl",properties.Ttl!=null?cfn_parse().FromCloudFormation.getNumber(properties.Ttl):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBridgeBridgeOutputPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("networkOutput",CfnBridgeBridgeNetworkOutputPropertyValidator)(properties.networkOutput)),errors.wrap('supplied properties not correct for "BridgeOutputProperty"')}function convertCfnBridgeBridgeOutputPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBridgeBridgeOutputPropertyValidator(properties).assertSuccess(),{NetworkOutput:convertCfnBridgeBridgeNetworkOutputPropertyToCloudFormation(properties.networkOutput)}):properties}function CfnBridgeBridgeOutputPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("networkOutput","NetworkOutput",properties.NetworkOutput!=null?CfnBridgeBridgeNetworkOutputPropertyFromCloudFormation(properties.NetworkOutput):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBridgeMulticastSourceSettingsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("multicastSourceIp",cdk().validateString)(properties.multicastSourceIp)),errors.wrap('supplied properties not correct for "MulticastSourceSettingsProperty"')}function convertCfnBridgeMulticastSourceSettingsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBridgeMulticastSourceSettingsPropertyValidator(properties).assertSuccess(),{MulticastSourceIp:cdk().stringToCloudFormation(properties.multicastSourceIp)}):properties}function CfnBridgeMulticastSourceSettingsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("multicastSourceIp","MulticastSourceIp",properties.MulticastSourceIp!=null?cfn_parse().FromCloudFormation.getString(properties.MulticastSourceIp):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBridgeBridgeNetworkSourcePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("multicastIp",cdk().requiredValidator)(properties.multicastIp)),errors.collect(cdk().propertyValidator("multicastIp",cdk().validateString)(properties.multicastIp)),errors.collect(cdk().propertyValidator("multicastSourceSettings",CfnBridgeMulticastSourceSettingsPropertyValidator)(properties.multicastSourceSettings)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("networkName",cdk().requiredValidator)(properties.networkName)),errors.collect(cdk().propertyValidator("networkName",cdk().validateString)(properties.networkName)),errors.collect(cdk().propertyValidator("port",cdk().requiredValidator)(properties.port)),errors.collect(cdk().propertyValidator("port",cdk().validateNumber)(properties.port)),errors.collect(cdk().propertyValidator("protocol",cdk().requiredValidator)(properties.protocol)),errors.collect(cdk().propertyValidator("protocol",cdk().validateString)(properties.protocol)),errors.wrap('supplied properties not correct for "BridgeNetworkSourceProperty"')}function convertCfnBridgeBridgeNetworkSourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBridgeBridgeNetworkSourcePropertyValidator(properties).assertSuccess(),{MulticastIp:cdk().stringToCloudFormation(properties.multicastIp),MulticastSourceSettings:convertCfnBridgeMulticastSourceSettingsPropertyToCloudFormation(properties.multicastSourceSettings),Name:cdk().stringToCloudFormation(properties.name),NetworkName:cdk().stringToCloudFormation(properties.networkName),Port:cdk().numberToCloudFormation(properties.port),Protocol:cdk().stringToCloudFormation(properties.protocol)}):properties}function CfnBridgeBridgeNetworkSourcePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("multicastIp","MulticastIp",properties.MulticastIp!=null?cfn_parse().FromCloudFormation.getString(properties.MulticastIp):void 0),ret.addPropertyResult("multicastSourceSettings","MulticastSourceSettings",properties.MulticastSourceSettings!=null?CfnBridgeMulticastSourceSettingsPropertyFromCloudFormation(properties.MulticastSourceSettings):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("networkName","NetworkName",properties.NetworkName!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkName):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse().FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse().FromCloudFormation.getString(properties.Protocol):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBridgeVpcInterfaceAttachmentPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("vpcInterfaceName",cdk().validateString)(properties.vpcInterfaceName)),errors.wrap('supplied properties not correct for "VpcInterfaceAttachmentProperty"')}function convertCfnBridgeVpcInterfaceAttachmentPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBridgeVpcInterfaceAttachmentPropertyValidator(properties).assertSuccess(),{VpcInterfaceName:cdk().stringToCloudFormation(properties.vpcInterfaceName)}):properties}function CfnBridgeVpcInterfaceAttachmentPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("vpcInterfaceName","VpcInterfaceName",properties.VpcInterfaceName!=null?cfn_parse().FromCloudFormation.getString(properties.VpcInterfaceName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBridgeBridgeFlowSourcePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("flowArn",cdk().requiredValidator)(properties.flowArn)),errors.collect(cdk().propertyValidator("flowArn",cdk().validateString)(properties.flowArn)),errors.collect(cdk().propertyValidator("flowVpcInterfaceAttachment",CfnBridgeVpcInterfaceAttachmentPropertyValidator)(properties.flowVpcInterfaceAttachment)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "BridgeFlowSourceProperty"')}function convertCfnBridgeBridgeFlowSourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBridgeBridgeFlowSourcePropertyValidator(properties).assertSuccess(),{FlowArn:cdk().stringToCloudFormation(properties.flowArn),FlowVpcInterfaceAttachment:convertCfnBridgeVpcInterfaceAttachmentPropertyToCloudFormation(properties.flowVpcInterfaceAttachment),Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnBridgeBridgeFlowSourcePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("flowArn","FlowArn",properties.FlowArn!=null?cfn_parse().FromCloudFormation.getString(properties.FlowArn):void 0),ret.addPropertyResult("flowVpcInterfaceAttachment","FlowVpcInterfaceAttachment",properties.FlowVpcInterfaceAttachment!=null?CfnBridgeVpcInterfaceAttachmentPropertyFromCloudFormation(properties.FlowVpcInterfaceAttachment):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBridgeBridgeSourcePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("flowSource",CfnBridgeBridgeFlowSourcePropertyValidator)(properties.flowSource)),errors.collect(cdk().propertyValidator("networkSource",CfnBridgeBridgeNetworkSourcePropertyValidator)(properties.networkSource)),errors.wrap('supplied properties not correct for "BridgeSourceProperty"')}function convertCfnBridgeBridgeSourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBridgeBridgeSourcePropertyValidator(properties).assertSuccess(),{FlowSource:convertCfnBridgeBridgeFlowSourcePropertyToCloudFormation(properties.flowSource),NetworkSource:convertCfnBridgeBridgeNetworkSourcePropertyToCloudFormation(properties.networkSource)}):properties}function CfnBridgeBridgeSourcePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("flowSource","FlowSource",properties.FlowSource!=null?CfnBridgeBridgeFlowSourcePropertyFromCloudFormation(properties.FlowSource):void 0),ret.addPropertyResult("networkSource","NetworkSource",properties.NetworkSource!=null?CfnBridgeBridgeNetworkSourcePropertyFromCloudFormation(properties.NetworkSource):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBridgePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("egressGatewayBridge",CfnBridgeEgressGatewayBridgePropertyValidator)(properties.egressGatewayBridge)),errors.collect(cdk().propertyValidator("ingressGatewayBridge",CfnBridgeIngressGatewayBridgePropertyValidator)(properties.ingressGatewayBridge)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("outputs",cdk().listValidator(CfnBridgeBridgeOutputPropertyValidator))(properties.outputs)),errors.collect(cdk().propertyValidator("placementArn",cdk().requiredValidator)(properties.placementArn)),errors.collect(cdk().propertyValidator("placementArn",cdk().validateString)(properties.placementArn)),errors.collect(cdk().propertyValidator("sourceFailoverConfig",CfnBridgeFailoverConfigPropertyValidator)(properties.sourceFailoverConfig)),errors.collect(cdk().propertyValidator("sources",cdk().requiredValidator)(properties.sources)),errors.collect(cdk().propertyValidator("sources",cdk().listValidator(CfnBridgeBridgeSourcePropertyValidator))(properties.sources)),errors.wrap('supplied properties not correct for "CfnBridgeProps"')}function convertCfnBridgePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBridgePropsValidator(properties).assertSuccess(),{EgressGatewayBridge:convertCfnBridgeEgressGatewayBridgePropertyToCloudFormation(properties.egressGatewayBridge),IngressGatewayBridge:convertCfnBridgeIngressGatewayBridgePropertyToCloudFormation(properties.ingressGatewayBridge),Name:cdk().stringToCloudFormation(properties.name),Outputs:cdk().listMapper(convertCfnBridgeBridgeOutputPropertyToCloudFormation)(properties.outputs),PlacementArn:cdk().stringToCloudFormation(properties.placementArn),SourceFailoverConfig:convertCfnBridgeFailoverConfigPropertyToCloudFormation(properties.sourceFailoverConfig),Sources:cdk().listMapper(convertCfnBridgeBridgeSourcePropertyToCloudFormation)(properties.sources)}):properties}function CfnBridgePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("egressGatewayBridge","EgressGatewayBridge",properties.EgressGatewayBridge!=null?CfnBridgeEgressGatewayBridgePropertyFromCloudFormation(properties.EgressGatewayBridge):void 0),ret.addPropertyResult("ingressGatewayBridge","IngressGatewayBridge",properties.IngressGatewayBridge!=null?CfnBridgeIngressGatewayBridgePropertyFromCloudFormation(properties.IngressGatewayBridge):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("outputs","Outputs",properties.Outputs!=null?cfn_parse().FromCloudFormation.getArray(CfnBridgeBridgeOutputPropertyFromCloudFormation)(properties.Outputs):void 0),ret.addPropertyResult("placementArn","PlacementArn",properties.PlacementArn!=null?cfn_parse().FromCloudFormation.getString(properties.PlacementArn):void 0),ret.addPropertyResult("sourceFailoverConfig","SourceFailoverConfig",properties.SourceFailoverConfig!=null?CfnBridgeFailoverConfigPropertyFromCloudFormation(properties.SourceFailoverConfig):void 0),ret.addPropertyResult("sources","Sources",properties.Sources!=null?cfn_parse().FromCloudFormation.getArray(CfnBridgeBridgeSourcePropertyFromCloudFormation)(properties.Sources):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnBridgeOutput extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_mediaconnect.CfnBridgeOutput",version:"2.234.1"};static CFN_RESOURCE_TYPE_NAME="AWS::MediaConnect::BridgeOutput";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnBridgeOutputPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError("Unexpected IResolvable",scope);const ret=new CfnBridgeOutput(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnBridgeOutput(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnBridgeOutput.CFN_RESOURCE_TYPE_NAME}bridgeArn;name;networkOutput;constructor(scope,id,props){super(scope,id,{type:CfnBridgeOutput.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_mediaconnect_CfnBridgeOutputProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnBridgeOutput),error}cdk().requireProperty(props,"bridgeArn",this),cdk().requireProperty(props,"name",this),cdk().requireProperty(props,"networkOutput",this),this.bridgeArn=props.bridgeArn,this.name=props.name,this.networkOutput=props.networkOutput}get bridgeOutputRef(){return{bridgeArn:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),bridgeOutputName:cdk().Fn.select(1,cdk().Fn.split("|",this.ref))}}get cfnProperties(){return{bridgeArn:this.bridgeArn,name:this.name,networkOutput:this.networkOutput}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnBridgeOutput.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnBridgeOutputPropsToCloudFormation(props)}}exports.CfnBridgeOutput=CfnBridgeOutput;function CfnBridgeOutputBridgeNetworkOutputPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("ipAddress",cdk().requiredValidator)(properties.ipAddress)),errors.collect(cdk().propertyValidator("ipAddress",cdk().validateString)(properties.ipAddress)),errors.collect(cdk().propertyValidator("networkName",cdk().requiredValidator)(properties.networkName)),errors.collect(cdk().propertyValidator("networkName",cdk().validateString)(properties.networkName)),errors.collect(cdk().propertyValidator("port",cdk().requiredValidator)(properties.port)),errors.collect(cdk().propertyValidator("port",cdk().validateNumber)(properties.port)),errors.collect(cdk().propertyValidator("protocol",cdk().requiredValidator)(properties.protocol)),errors.collect(cdk().propertyValidator("protocol",cdk().validateString)(properties.protocol)),errors.collect(cdk().propertyValidator("ttl",cdk().requiredValidator)(properties.ttl)),errors.collect(cdk().propertyValidator("ttl",cdk().validateNumber)(properties.ttl)),errors.wrap('supplied properties not correct for "BridgeNetworkOutputProperty"')}function convertCfnBridgeOutputBridgeNetworkOutputPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBridgeOutputBridgeNetworkOutputPropertyValidator(properties).assertSuccess(),{IpAddress:cdk().stringToCloudFormation(properties.ipAddress),NetworkName:cdk().stringToCloudFormation(properties.networkName),Port:cdk().numberToCloudFormation(properties.port),Protocol:cdk().stringToCloudFormation(properties.protocol),Ttl:cdk().numberToCloudFormation(properties.ttl)}):properties}function CfnBridgeOutputBridgeNetworkOutputPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("ipAddress","IpAddress",properties.IpAddress!=null?cfn_parse().FromCloudFormation.getString(properties.IpAddress):void 0),ret.addPropertyResult("networkName","NetworkName",properties.NetworkName!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkName):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse().FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse().FromCloudFormation.getString(properties.Protocol):void 0),ret.addPropertyResult("ttl","Ttl",properties.Ttl!=null?cfn_parse().FromCloudFormation.getNumber(properties.Ttl):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBridgeOutputPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("bridgeArn",cdk().requiredValidator)(properties.bridgeArn)),errors.collect(cdk().propertyValidator("bridgeArn",cdk().validateString)(properties.bridgeArn)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("networkOutput",cdk().requiredValidator)(properties.networkOutput)),errors.collect(cdk().propertyValidator("networkOutput",CfnBridgeOutputBridgeNetworkOutputPropertyValidator)(properties.networkOutput)),errors.wrap('supplied properties not correct for "CfnBridgeOutputProps"')}function convertCfnBridgeOutputPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBridgeOutputPropsValidator(properties).assertSuccess(),{BridgeArn:cdk().stringToCloudFormation(properties.bridgeArn),Name:cdk().stringToCloudFormation(properties.name),NetworkOutput:convertCfnBridgeOutputBridgeNetworkOutputPropertyToCloudFormation(properties.networkOutput)}):properties}function CfnBridgeOutputPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("bridgeArn","BridgeArn",properties.BridgeArn!=null?cfn_parse().FromCloudFormation.getString(properties.BridgeArn):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("networkOutput","NetworkOutput",properties.NetworkOutput!=null?CfnBridgeOutputBridgeNetworkOutputPropertyFromCloudFormation(properties.NetworkOutput):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnBridgeSource extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_mediaconnect.CfnBridgeSource",version:"2.234.1"};static CFN_RESOURCE_TYPE_NAME="AWS::MediaConnect::BridgeSource";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnBridgeSourcePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError("Unexpected IResolvable",scope);const ret=new CfnBridgeSource(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnBridgeSource(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnBridgeSource.CFN_RESOURCE_TYPE_NAME}bridgeArn;flowSource;name;networkSource;constructor(scope,id,props){super(scope,id,{type:CfnBridgeSource.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_mediaconnect_CfnBridgeSourceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnBridgeSource),error}cdk().requireProperty(props,"bridgeArn",this),cdk().requireProperty(props,"name",this),this.bridgeArn=props.bridgeArn,this.flowSource=props.flowSource,this.name=props.name,this.networkSource=props.networkSource}get bridgeSourceRef(){return{bridgeArn:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),bridgeSourceName:cdk().Fn.select(1,cdk().Fn.split("|",this.ref))}}get cfnProperties(){return{bridgeArn:this.bridgeArn,flowSource:this.flowSource,name:this.name,networkSource:this.networkSource}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnBridgeSource.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnBridgeSourcePropsToCloudFormation(props)}}exports.CfnBridgeSource=CfnBridgeSource;function CfnBridgeSourceMulticastSourceSettingsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("multicastSourceIp",cdk().validateString)(properties.multicastSourceIp)),errors.wrap('supplied properties not correct for "MulticastSourceSettingsProperty"')}function convertCfnBridgeSourceMulticastSourceSettingsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBridgeSourceMulticastSourceSettingsPropertyValidator(properties).assertSuccess(),{MulticastSourceIp:cdk().stringToCloudFormation(properties.multicastSourceIp)}):properties}function CfnBridgeSourceMulticastSourceSettingsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("multicastSourceIp","MulticastSourceIp",properties.MulticastSourceIp!=null?cfn_parse().FromCloudFormation.getString(properties.MulticastSourceIp):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBridgeSourceBridgeNetworkSourcePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("multicastIp",cdk().requiredValidator)(properties.multicastIp)),errors.collect(cdk().propertyValidator("multicastIp",cdk().validateString)(properties.multicastIp)),errors.collect(cdk().propertyValidator("multicastSourceSettings",CfnBridgeSourceMulticastSourceSettingsPropertyValidator)(properties.multicastSourceSettings)),errors.collect(cdk().propertyValidator("networkName",cdk().requiredValidator)(properties.networkName)),errors.collect(cdk().propertyValidator("networkName",cdk().validateString)(properties.networkName)),errors.collect(cdk().propertyValidator("port",cdk().requiredValidator)(properties.port)),errors.collect(cdk().propertyValidator("port",cdk().validateNumber)(properties.port)),errors.collect(cdk().propertyValidator("protocol",cdk().requiredValidator)(properties.protocol)),errors.collect(cdk().propertyValidator("protocol",cdk().validateString)(properties.protocol)),errors.wrap('supplied properties not correct for "BridgeNetworkSourceProperty"')}function convertCfnBridgeSourceBridgeNetworkSourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBridgeSourceBridgeNetworkSourcePropertyValidator(properties).assertSuccess(),{MulticastIp:cdk().stringToCloudFormation(properties.multicastIp),MulticastSourceSettings:convertCfnBridgeSourceMulticastSourceSettingsPropertyToCloudFormation(properties.multicastSourceSettings),NetworkName:cdk().stringToCloudFormation(properties.networkName),Port:cdk().numberToCloudFormation(properties.port),Protocol:cdk().stringToCloudFormation(properties.protocol)}):properties}function CfnBridgeSourceBridgeNetworkSourcePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("multicastIp","MulticastIp",properties.MulticastIp!=null?cfn_parse().FromCloudFormation.getString(properties.MulticastIp):void 0),ret.addPropertyResult("multicastSourceSettings","MulticastSourceSettings",properties.MulticastSourceSettings!=null?CfnBridgeSourceMulticastSourceSettingsPropertyFromCloudFormation(properties.MulticastSourceSettings):void 0),ret.addPropertyResult("networkName","NetworkName",properties.NetworkName!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkName):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse().FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse().FromCloudFormation.getString(properties.Protocol):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBridgeSourceVpcInterfaceAttachmentPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("vpcInterfaceName",cdk().validateString)(properties.vpcInterfaceName)),errors.wrap('supplied properties not correct for "VpcInterfaceAttachmentProperty"')}function convertCfnBridgeSourceVpcInterfaceAttachmentPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBridgeSourceVpcInterfaceAttachmentPropertyValidator(properties).assertSuccess(),{VpcInterfaceName:cdk().stringToCloudFormation(properties.vpcInterfaceName)}):properties}function CfnBridgeSourceVpcInterfaceAttachmentPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("vpcInterfaceName","VpcInterfaceName",properties.VpcInterfaceName!=null?cfn_parse().FromCloudFormation.getString(properties.VpcInterfaceName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBridgeSourceBridgeFlowSourcePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("flowArn",cdk().requiredValidator)(properties.flowArn)),errors.collect(cdk().propertyValidator("flowArn",cdk().validateString)(properties.flowArn)),errors.collect(cdk().propertyValidator("flowVpcInterfaceAttachment",CfnBridgeSourceVpcInterfaceAttachmentPropertyValidator)(properties.flowVpcInterfaceAttachment)),errors.wrap('supplied properties not correct for "BridgeFlowSourceProperty"')}function convertCfnBridgeSourceBridgeFlowSourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBridgeSourceBridgeFlowSourcePropertyValidator(properties).assertSuccess(),{FlowArn:cdk().stringToCloudFormation(properties.flowArn),FlowVpcInterfaceAttachment:convertCfnBridgeSourceVpcInterfaceAttachmentPropertyToCloudFormation(properties.flowVpcInterfaceAttachment)}):properties}function CfnBridgeSourceBridgeFlowSourcePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("flowArn","FlowArn",properties.FlowArn!=null?cfn_parse().FromCloudFormation.getString(properties.FlowArn):void 0),ret.addPropertyResult("flowVpcInterfaceAttachment","FlowVpcInterfaceAttachment",properties.FlowVpcInterfaceAttachment!=null?CfnBridgeSourceVpcInterfaceAttachmentPropertyFromCloudFormation(properties.FlowVpcInterfaceAttachment):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBridgeSourcePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("bridgeArn",cdk().requiredValidator)(properties.bridgeArn)),errors.collect(cdk().propertyValidator("bridgeArn",cdk().validateString)(properties.bridgeArn)),errors.collect(cdk().propertyValidator("flowSource",CfnBridgeSourceBridgeFlowSourcePropertyValidator)(properties.flowSource)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("networkSource",CfnBridgeSourceBridgeNetworkSourcePropertyValidator)(properties.networkSource)),errors.wrap('supplied properties not correct for "CfnBridgeSourceProps"')}function convertCfnBridgeSourcePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBridgeSourcePropsValidator(properties).assertSuccess(),{BridgeArn:cdk().stringToCloudFormation(properties.bridgeArn),FlowSource:convertCfnBridgeSourceBridgeFlowSourcePropertyToCloudFormation(properties.flowSource),Name:cdk().stringToCloudFormation(properties.name),NetworkSource:convertCfnBridgeSourceBridgeNetworkSourcePropertyToCloudFormation(properties.networkSource)}):properties}function CfnBridgeSourcePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("bridgeArn","BridgeArn",properties.BridgeArn!=null?cfn_parse().FromCloudFormation.getString(properties.BridgeArn):void 0),ret.addPropertyResult("flowSource","FlowSource",properties.FlowSource!=null?CfnBridgeSourceBridgeFlowSourcePropertyFromCloudFormation(properties.FlowSource):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("networkSource","NetworkSource",properties.NetworkSource!=null?CfnBridgeSourceBridgeNetworkSourcePropertyFromCloudFormation(properties.NetworkSource):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnFlow extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_mediaconnect.CfnFlow",version:"2.234.1"};static CFN_RESOURCE_TYPE_NAME="AWS::MediaConnect::Flow";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnFlowPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError("Unexpected IResolvable",scope);const ret=new CfnFlow(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnFlow(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnFlow.CFN_RESOURCE_TYPE_NAME}static arnForFlow(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_mediaconnect_IFlowRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForFlow),error}return resource.flowRef.flowArn}attrEgressIp;attrFlowArn;attrFlowAvailabilityZone;attrFlowNdiMachineName;attrSourceIngestIp;attrSourceSourceArn;attrSourceSourceIngestPort;availabilityZone;flowSize;maintenance;mediaStreams;name;ndiConfig;source;sourceFailoverConfig;sourceMonitoringConfig;vpcInterfaces;constructor(scope,id,props){super(scope,id,{type:CfnFlow.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_mediaconnect_CfnFlowProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnFlow),error}cdk().requireProperty(props,"name",this),cdk().requireProperty(props,"source",this),this.attrEgressIp=cdk().Token.asString(this.getAtt("EgressIp",cdk().ResolutionTypeHint.STRING)),this.attrFlowArn=cdk().Token.asString(this.getAtt("FlowArn",cdk().ResolutionTypeHint.STRING)),this.attrFlowAvailabilityZone=cdk().Token.asString(this.getAtt("FlowAvailabilityZone",cdk().ResolutionTypeHint.STRING)),this.attrFlowNdiMachineName=cdk().Token.asString(this.getAtt("FlowNdiMachineName",cdk().ResolutionTypeHint.STRING)),this.attrSourceIngestIp=cdk().Token.asString(this.getAtt("Source.IngestIp",cdk().ResolutionTypeHint.STRING)),this.attrSourceSourceArn=cdk().Token.asString(this.getAtt("Source.SourceArn",cdk().ResolutionTypeHint.STRING)),this.attrSourceSourceIngestPort=cdk().Token.asString(this.getAtt("Source.SourceIngestPort",cdk().ResolutionTypeHint.STRING)),this.availabilityZone=props.availabilityZone,this.flowSize=props.flowSize,this.maintenance=props.maintenance,this.mediaStreams=props.mediaStreams,this.name=props.name,this.ndiConfig=props.ndiConfig,this.source=props.source,this.sourceFailoverConfig=props.sourceFailoverConfig,this.sourceMonitoringConfig=props.sourceMonitoringConfig,this.vpcInterfaces=props.vpcInterfaces}get flowRef(){return{flowArn:this.ref}}get cfnProperties(){return{availabilityZone:this.availabilityZone,flowSize:this.flowSize,maintenance:this.maintenance,mediaStreams:this.mediaStreams,name:this.name,ndiConfig:this.ndiConfig,source:this.source,sourceFailoverConfig:this.sourceFailoverConfig,sourceMonitoringConfig:this.sourceMonitoringConfig,vpcInterfaces:this.vpcInterfaces}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnFlow.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnFlowPropsToCloudFormation(props)}}exports.CfnFlow=CfnFlow;function CfnFlowSourcePriorityPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("primarySource",cdk().requiredValidator)(properties.primarySource)),errors.collect(cdk().propertyValidator("primarySource",cdk().validateString)(properties.primarySource)),errors.wrap('supplied properties not correct for "SourcePriorityProperty"')}function convertCfnFlowSourcePriorityPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowSourcePriorityPropertyValidator(properties).assertSuccess(),{PrimarySource:cdk().stringToCloudFormation(properties.primarySource)}):properties}function CfnFlowSourcePriorityPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("primarySource","PrimarySource",properties.PrimarySource!=null?cfn_parse().FromCloudFormation.getString(properties.PrimarySource):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowFailoverConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("failoverMode",cdk().validateString)(properties.failoverMode)),errors.collect(cdk().propertyValidator("recoveryWindow",cdk().validateNumber)(properties.recoveryWindow)),errors.collect(cdk().propertyValidator("sourcePriority",CfnFlowSourcePriorityPropertyValidator)(properties.sourcePriority)),errors.collect(cdk().propertyValidator("state",cdk().validateString)(properties.state)),errors.wrap('supplied properties not correct for "FailoverConfigProperty"')}function convertCfnFlowFailoverConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowFailoverConfigPropertyValidator(properties).assertSuccess(),{FailoverMode:cdk().stringToCloudFormation(properties.failoverMode),RecoveryWindow:cdk().numberToCloudFormation(properties.recoveryWindow),SourcePriority:convertCfnFlowSourcePriorityPropertyToCloudFormation(properties.sourcePriority),State:cdk().stringToCloudFormation(properties.state)}):properties}function CfnFlowFailoverConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("failoverMode","FailoverMode",properties.FailoverMode!=null?cfn_parse().FromCloudFormation.getString(properties.FailoverMode):void 0),ret.addPropertyResult("recoveryWindow","RecoveryWindow",properties.RecoveryWindow!=null?cfn_parse().FromCloudFormation.getNumber(properties.RecoveryWindow):void 0),ret.addPropertyResult("sourcePriority","SourcePriority",properties.SourcePriority!=null?CfnFlowSourcePriorityPropertyFromCloudFormation(properties.SourcePriority):void 0),ret.addPropertyResult("state","State",properties.State!=null?cfn_parse().FromCloudFormation.getString(properties.State):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowEncryptionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("algorithm",cdk().validateString)(properties.algorithm)),errors.collect(cdk().propertyValidator("constantInitializationVector",cdk().validateString)(properties.constantInitializationVector)),errors.collect(cdk().propertyValidator("deviceId",cdk().validateString)(properties.deviceId)),errors.collect(cdk().propertyValidator("keyType",cdk().validateString)(properties.keyType)),errors.collect(cdk().propertyValidator("region",cdk().validateString)(properties.region)),errors.collect(cdk().propertyValidator("resourceId",cdk().validateString)(properties.resourceId)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("secretArn",cdk().validateString)(properties.secretArn)),errors.collect(cdk().propertyValidator("url",cdk().validateString)(properties.url)),errors.wrap('supplied properties not correct for "EncryptionProperty"')}function convertCfnFlowEncryptionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowEncryptionPropertyValidator(properties).assertSuccess(),{Algorithm:cdk().stringToCloudFormation(properties.algorithm),ConstantInitializationVector:cdk().stringToCloudFormation(properties.constantInitializationVector),DeviceId:cdk().stringToCloudFormation(properties.deviceId),KeyType:cdk().stringToCloudFormation(properties.keyType),Region:cdk().stringToCloudFormation(properties.region),ResourceId:cdk().stringToCloudFormation(properties.resourceId),RoleArn:cdk().stringToCloudFormation(properties.roleArn),SecretArn:cdk().stringToCloudFormation(properties.secretArn),Url:cdk().stringToCloudFormation(properties.url)}):properties}function CfnFlowEncryptionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("algorithm","Algorithm",properties.Algorithm!=null?cfn_parse().FromCloudFormation.getString(properties.Algorithm):void 0),ret.addPropertyResult("constantInitializationVector","ConstantInitializationVector",properties.ConstantInitializationVector!=null?cfn_parse().FromCloudFormation.getString(properties.ConstantInitializationVector):void 0),ret.addPropertyResult("deviceId","DeviceId",properties.DeviceId!=null?cfn_parse().FromCloudFormation.getString(properties.DeviceId):void 0),ret.addPropertyResult("keyType","KeyType",properties.KeyType!=null?cfn_parse().FromCloudFormation.getString(properties.KeyType):void 0),ret.addPropertyResult("region","Region",properties.Region!=null?cfn_parse().FromCloudFormation.getString(properties.Region):void 0),ret.addPropertyResult("resourceId","ResourceId",properties.ResourceId!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceId):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("secretArn","SecretArn",properties.SecretArn!=null?cfn_parse().FromCloudFormation.getString(properties.SecretArn):void 0),ret.addPropertyResult("url","Url",properties.Url!=null?cfn_parse().FromCloudFormation.getString(properties.Url):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowVpcInterfaceAttachmentPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("vpcInterfaceName",cdk().validateString)(properties.vpcInterfaceName)),errors.wrap('supplied properties not correct for "VpcInterfaceAttachmentProperty"')}function convertCfnFlowVpcInterfaceAttachmentPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowVpcInterfaceAttachmentPropertyValidator(properties).assertSuccess(),{VpcInterfaceName:cdk().stringToCloudFormation(properties.vpcInterfaceName)}):properties}function CfnFlowVpcInterfaceAttachmentPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("vpcInterfaceName","VpcInterfaceName",properties.VpcInterfaceName!=null?cfn_parse().FromCloudFormation.getString(properties.VpcInterfaceName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowGatewayBridgeSourcePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("bridgeArn",cdk().requiredValidator)(properties.bridgeArn)),errors.collect(cdk().propertyValidator("bridgeArn",cdk().validateString)(properties.bridgeArn)),errors.collect(cdk().propertyValidator("vpcInterfaceAttachment",CfnFlowVpcInterfaceAttachmentPropertyValidator)(properties.vpcInterfaceAttachment)),errors.wrap('supplied properties not correct for "GatewayBridgeSourceProperty"')}function convertCfnFlowGatewayBridgeSourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowGatewayBridgeSourcePropertyValidator(properties).assertSuccess(),{BridgeArn:cdk().stringToCloudFormation(properties.bridgeArn),VpcInterfaceAttachment:convertCfnFlowVpcInterfaceAttachmentPropertyToCloudFormation(properties.vpcInterfaceAttachment)}):properties}function CfnFlowGatewayBridgeSourcePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("bridgeArn","BridgeArn",properties.BridgeArn!=null?cfn_parse().FromCloudFormation.getString(properties.BridgeArn):void 0),ret.addPropertyResult("vpcInterfaceAttachment","VpcInterfaceAttachment",properties.VpcInterfaceAttachment!=null?CfnFlowVpcInterfaceAttachmentPropertyFromCloudFormation(properties.VpcInterfaceAttachment):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowInterfacePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "InterfaceProperty"')}function convertCfnFlowInterfacePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowInterfacePropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnFlowInterfacePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowInputConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("inputPort",cdk().requiredValidator)(properties.inputPort)),errors.collect(cdk().propertyValidator("inputPort",cdk().validateNumber)(properties.inputPort)),errors.collect(cdk().propertyValidator("interface",cdk().requiredValidator)(properties.interface)),errors.collect(cdk().propertyValidator("interface",CfnFlowInterfacePropertyValidator)(properties.interface)),errors.wrap('supplied properties not correct for "InputConfigurationProperty"')}function convertCfnFlowInputConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowInputConfigurationPropertyValidator(properties).assertSuccess(),{InputPort:cdk().numberToCloudFormation(properties.inputPort),Interface:convertCfnFlowInterfacePropertyToCloudFormation(properties.interface)}):properties}function CfnFlowInputConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("inputPort","InputPort",properties.InputPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.InputPort):void 0),ret.addPropertyResult("interface","Interface",properties.Interface!=null?CfnFlowInterfacePropertyFromCloudFormation(properties.Interface):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowMediaStreamSourceConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("encodingName",cdk().requiredValidator)(properties.encodingName)),errors.collect(cdk().propertyValidator("encodingName",cdk().validateString)(properties.encodingName)),errors.collect(cdk().propertyValidator("inputConfigurations",cdk().listValidator(CfnFlowInputConfigurationPropertyValidator))(properties.inputConfigurations)),errors.collect(cdk().propertyValidator("mediaStreamName",cdk().requiredValidator)(properties.mediaStreamName)),errors.collect(cdk().propertyValidator("mediaStreamName",cdk().validateString)(properties.mediaStreamName)),errors.wrap('supplied properties not correct for "MediaStreamSourceConfigurationProperty"')}function convertCfnFlowMediaStreamSourceConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowMediaStreamSourceConfigurationPropertyValidator(properties).assertSuccess(),{EncodingName:cdk().stringToCloudFormation(properties.encodingName),InputConfigurations:cdk().listMapper(convertCfnFlowInputConfigurationPropertyToCloudFormation)(properties.inputConfigurations),MediaStreamName:cdk().stringToCloudFormation(properties.mediaStreamName)}):properties}function CfnFlowMediaStreamSourceConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("encodingName","EncodingName",properties.EncodingName!=null?cfn_parse().FromCloudFormation.getString(properties.EncodingName):void 0),ret.addPropertyResult("inputConfigurations","InputConfigurations",properties.InputConfigurations!=null?cfn_parse().FromCloudFormation.getArray(CfnFlowInputConfigurationPropertyFromCloudFormation)(properties.InputConfigurations):void 0),ret.addPropertyResult("mediaStreamName","MediaStreamName",properties.MediaStreamName!=null?cfn_parse().FromCloudFormation.getString(properties.MediaStreamName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowSecretsManagerEncryptionKeyConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("secretArn",cdk().requiredValidator)(properties.secretArn)),errors.collect(cdk().propertyValidator("secretArn",cdk().validateString)(properties.secretArn)),errors.wrap('supplied properties not correct for "SecretsManagerEncryptionKeyConfigurationProperty"')}function convertCfnFlowSecretsManagerEncryptionKeyConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowSecretsManagerEncryptionKeyConfigurationPropertyValidator(properties).assertSuccess(),{RoleArn:cdk().stringToCloudFormation(properties.roleArn),SecretArn:cdk().stringToCloudFormation(properties.secretArn)}):properties}function CfnFlowSecretsManagerEncryptionKeyConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("secretArn","SecretArn",properties.SecretArn!=null?cfn_parse().FromCloudFormation.getString(properties.SecretArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowFlowTransitEncryptionKeyConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("automatic",cdk().validateObject)(properties.automatic)),errors.collect(cdk().propertyValidator("secretsManager",CfnFlowSecretsManagerEncryptionKeyConfigurationPropertyValidator)(properties.secretsManager)),errors.wrap('supplied properties not correct for "FlowTransitEncryptionKeyConfigurationProperty"')}function convertCfnFlowFlowTransitEncryptionKeyConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowFlowTransitEncryptionKeyConfigurationPropertyValidator(properties).assertSuccess(),{Automatic:cdk().objectToCloudFormation(properties.automatic),SecretsManager:convertCfnFlowSecretsManagerEncryptionKeyConfigurationPropertyToCloudFormation(properties.secretsManager)}):properties}function CfnFlowFlowTransitEncryptionKeyConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("automatic","Automatic",properties.Automatic!=null?cfn_parse().FromCloudFormation.getAny(properties.Automatic):void 0),ret.addPropertyResult("secretsManager","SecretsManager",properties.SecretsManager!=null?CfnFlowSecretsManagerEncryptionKeyConfigurationPropertyFromCloudFormation(properties.SecretsManager):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowFlowTransitEncryptionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("encryptionKeyConfiguration",cdk().requiredValidator)(properties.encryptionKeyConfiguration)),errors.collect(cdk().propertyValidator("encryptionKeyConfiguration",CfnFlowFlowTransitEncryptionKeyConfigurationPropertyValidator)(properties.encryptionKeyConfiguration)),errors.collect(cdk().propertyValidator("encryptionKeyType",cdk().validateString)(properties.encryptionKeyType)),errors.wrap('supplied properties not correct for "FlowTransitEncryptionProperty"')}function convertCfnFlowFlowTransitEncryptionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowFlowTransitEncryptionPropertyValidator(properties).assertSuccess(),{EncryptionKeyConfiguration:convertCfnFlowFlowTransitEncryptionKeyConfigurationPropertyToCloudFormation(properties.encryptionKeyConfiguration),EncryptionKeyType:cdk().stringToCloudFormation(properties.encryptionKeyType)}):properties}function CfnFlowFlowTransitEncryptionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("encryptionKeyConfiguration","EncryptionKeyConfiguration",properties.EncryptionKeyConfiguration!=null?CfnFlowFlowTransitEncryptionKeyConfigurationPropertyFromCloudFormation(properties.EncryptionKeyConfiguration):void 0),ret.addPropertyResult("encryptionKeyType","EncryptionKeyType",properties.EncryptionKeyType!=null?cfn_parse().FromCloudFormation.getString(properties.EncryptionKeyType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowSourcePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("decryption",CfnFlowEncryptionPropertyValidator)(properties.decryption)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("entitlementArn",cdk().validateString)(properties.entitlementArn)),errors.collect(cdk().propertyValidator("gatewayBridgeSource",CfnFlowGatewayBridgeSourcePropertyValidator)(properties.gatewayBridgeSource)),errors.collect(cdk().propertyValidator("ingestIp",cdk().validateString)(properties.ingestIp)),errors.collect(cdk().propertyValidator("ingestPort",cdk().validateNumber)(properties.ingestPort)),errors.collect(cdk().propertyValidator("maxBitrate",cdk().validateNumber)(properties.maxBitrate)),errors.collect(cdk().propertyValidator("maxLatency",cdk().validateNumber)(properties.maxLatency)),errors.collect(cdk().propertyValidator("maxSyncBuffer",cdk().validateNumber)(properties.maxSyncBuffer)),errors.collect(cdk().propertyValidator("mediaStreamSourceConfigurations",cdk().listValidator(CfnFlowMediaStreamSourceConfigurationPropertyValidator))(properties.mediaStreamSourceConfigurations)),errors.collect(cdk().propertyValidator("minLatency",cdk().validateNumber)(properties.minLatency)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("protocol",cdk().validateString)(properties.protocol)),errors.collect(cdk().propertyValidator("routerIntegrationState",cdk().validateString)(properties.routerIntegrationState)),errors.collect(cdk().propertyValidator("routerIntegrationTransitDecryption",CfnFlowFlowTransitEncryptionPropertyValidator)(properties.routerIntegrationTransitDecryption)),errors.collect(cdk().propertyValidator("senderControlPort",cdk().validateNumber)(properties.senderControlPort)),errors.collect(cdk().propertyValidator("senderIpAddress",cdk().validateString)(properties.senderIpAddress)),errors.collect(cdk().propertyValidator("sourceArn",cdk().validateString)(properties.sourceArn)),errors.collect(cdk().propertyValidator("sourceIngestPort",cdk().validateString)(properties.sourceIngestPort)),errors.collect(cdk().propertyValidator("sourceListenerAddress",cdk().validateString)(properties.sourceListenerAddress)),errors.collect(cdk().propertyValidator("sourceListenerPort",cdk().validateNumber)(properties.sourceListenerPort)),errors.collect(cdk().propertyValidator("streamId",cdk().validateString)(properties.streamId)),errors.collect(cdk().propertyValidator("vpcInterfaceName",cdk().validateString)(properties.vpcInterfaceName)),errors.collect(cdk().propertyValidator("whitelistCidr",cdk().validateString)(properties.whitelistCidr)),errors.wrap('supplied properties not correct for "SourceProperty"')}function convertCfnFlowSourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowSourcePropertyValidator(properties).assertSuccess(),{Decryption:convertCfnFlowEncryptionPropertyToCloudFormation(properties.decryption),Description:cdk().stringToCloudFormation(properties.description),EntitlementArn:cdk().stringToCloudFormation(properties.entitlementArn),GatewayBridgeSource:convertCfnFlowGatewayBridgeSourcePropertyToCloudFormation(properties.gatewayBridgeSource),IngestIp:cdk().stringToCloudFormation(properties.ingestIp),IngestPort:cdk().numberToCloudFormation(properties.ingestPort),MaxBitrate:cdk().numberToCloudFormation(properties.maxBitrate),MaxLatency:cdk().numberToCloudFormation(properties.maxLatency),MaxSyncBuffer:cdk().numberToCloudFormation(properties.maxSyncBuffer),MediaStreamSourceConfigurations:cdk().listMapper(convertCfnFlowMediaStreamSourceConfigurationPropertyToCloudFormation)(properties.mediaStreamSourceConfigurations),MinLatency:cdk().numberToCloudFormation(properties.minLatency),Name:cdk().stringToCloudFormation(properties.name),Protocol:cdk().stringToCloudFormation(properties.protocol),RouterIntegrationState:cdk().stringToCloudFormation(properties.routerIntegrationState),RouterIntegrationTransitDecryption:convertCfnFlowFlowTransitEncryptionPropertyToCloudFormation(properties.routerIntegrationTransitDecryption),SenderControlPort:cdk().numberToCloudFormation(properties.senderControlPort),SenderIpAddress:cdk().stringToCloudFormation(properties.senderIpAddress),SourceArn:cdk().stringToCloudFormation(properties.sourceArn),SourceIngestPort:cdk().stringToCloudFormation(properties.sourceIngestPort),SourceListenerAddress:cdk().stringToCloudFormation(properties.sourceListenerAddress),SourceListenerPort:cdk().numberToCloudFormation(properties.sourceListenerPort),StreamId:cdk().stringToCloudFormation(properties.streamId),VpcInterfaceName:cdk().stringToCloudFormation(properties.vpcInterfaceName),WhitelistCidr:cdk().stringToCloudFormation(properties.whitelistCidr)}):properties}function CfnFlowSourcePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("decryption","Decryption",properties.Decryption!=null?CfnFlowEncryptionPropertyFromCloudFormation(properties.Decryption):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("entitlementArn","EntitlementArn",properties.EntitlementArn!=null?cfn_parse().FromCloudFormation.getString(properties.EntitlementArn):void 0),ret.addPropertyResult("gatewayBridgeSource","GatewayBridgeSource",properties.GatewayBridgeSource!=null?CfnFlowGatewayBridgeSourcePropertyFromCloudFormation(properties.GatewayBridgeSource):void 0),ret.addPropertyResult("ingestIp","IngestIp",properties.IngestIp!=null?cfn_parse().FromCloudFormation.getString(properties.IngestIp):void 0),ret.addPropertyResult("ingestPort","IngestPort",properties.IngestPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.IngestPort):void 0),ret.addPropertyResult("maxBitrate","MaxBitrate",properties.MaxBitrate!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxBitrate):void 0),ret.addPropertyResult("maxLatency","MaxLatency",properties.MaxLatency!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxLatency):void 0),ret.addPropertyResult("maxSyncBuffer","MaxSyncBuffer",properties.MaxSyncBuffer!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxSyncBuffer):void 0),ret.addPropertyResult("mediaStreamSourceConfigurations","MediaStreamSourceConfigurations",properties.MediaStreamSourceConfigurations!=null?cfn_parse().FromCloudFormation.getArray(CfnFlowMediaStreamSourceConfigurationPropertyFromCloudFormation)(properties.MediaStreamSourceConfigurations):void 0),ret.addPropertyResult("minLatency","MinLatency",properties.MinLatency!=null?cfn_parse().FromCloudFormation.getNumber(properties.MinLatency):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse().FromCloudFormation.getString(properties.Protocol):void 0),ret.addPropertyResult("routerIntegrationState","RouterIntegrationState",properties.RouterIntegrationState!=null?cfn_parse().FromCloudFormation.getString(properties.RouterIntegrationState):void 0),ret.addPropertyResult("routerIntegrationTransitDecryption","RouterIntegrationTransitDecryption",properties.RouterIntegrationTransitDecryption!=null?CfnFlowFlowTransitEncryptionPropertyFromCloudFormation(properties.RouterIntegrationTransitDecryption):void 0),ret.addPropertyResult("senderControlPort","SenderControlPort",properties.SenderControlPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.SenderControlPort):void 0),ret.addPropertyResult("senderIpAddress","SenderIpAddress",properties.SenderIpAddress!=null?cfn_parse().FromCloudFormation.getString(properties.SenderIpAddress):void 0),ret.addPropertyResult("sourceArn","SourceArn",properties.SourceArn!=null?cfn_parse().FromCloudFormation.getString(properties.SourceArn):void 0),ret.addPropertyResult("sourceIngestPort","SourceIngestPort",properties.SourceIngestPort!=null?cfn_parse().FromCloudFormation.getString(properties.SourceIngestPort):void 0),ret.addPropertyResult("sourceListenerAddress","SourceListenerAddress",properties.SourceListenerAddress!=null?cfn_parse().FromCloudFormation.getString(properties.SourceListenerAddress):void 0),ret.addPropertyResult("sourceListenerPort","SourceListenerPort",properties.SourceListenerPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.SourceListenerPort):void 0),ret.addPropertyResult("streamId","StreamId",properties.StreamId!=null?cfn_parse().FromCloudFormation.getString(properties.StreamId):void 0),ret.addPropertyResult("vpcInterfaceName","VpcInterfaceName",properties.VpcInterfaceName!=null?cfn_parse().FromCloudFormation.getString(properties.VpcInterfaceName):void 0),ret.addPropertyResult("whitelistCidr","WhitelistCidr",properties.WhitelistCidr!=null?cfn_parse().FromCloudFormation.getString(properties.WhitelistCidr):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowVpcInterfacePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("networkInterfaceIds",cdk().listValidator(cdk().validateString))(properties.networkInterfaceIds)),errors.collect(cdk().propertyValidator("networkInterfaceType",cdk().validateString)(properties.networkInterfaceType)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("securityGroupIds",cdk().requiredValidator)(properties.securityGroupIds)),errors.collect(cdk().propertyValidator("securityGroupIds",cdk().listValidator(cdk().validateString))(properties.securityGroupIds)),errors.collect(cdk().propertyValidator("subnetId",cdk().requiredValidator)(properties.subnetId)),errors.collect(cdk().propertyValidator("subnetId",cdk().validateString)(properties.subnetId)),errors.wrap('supplied properties not correct for "VpcInterfaceProperty"')}function convertCfnFlowVpcInterfacePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowVpcInterfacePropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),NetworkInterfaceIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.networkInterfaceIds),NetworkInterfaceType:cdk().stringToCloudFormation(properties.networkInterfaceType),RoleArn:cdk().stringToCloudFormation(properties.roleArn),SecurityGroupIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.securityGroupIds),SubnetId:cdk().stringToCloudFormation(properties.subnetId)}):properties}function CfnFlowVpcInterfacePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("networkInterfaceIds","NetworkInterfaceIds",properties.NetworkInterfaceIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.NetworkInterfaceIds):void 0),ret.addPropertyResult("networkInterfaceType","NetworkInterfaceType",properties.NetworkInterfaceType!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkInterfaceType):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("securityGroupIds","SecurityGroupIds",properties.SecurityGroupIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SecurityGroupIds):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse().FromCloudFormation.getString(properties.SubnetId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowFmtpPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("channelOrder",cdk().validateString)(properties.channelOrder)),errors.collect(cdk().propertyValidator("colorimetry",cdk().validateString)(properties.colorimetry)),errors.collect(cdk().propertyValidator("exactFramerate",cdk().validateString)(properties.exactFramerate)),errors.collect(cdk().propertyValidator("par",cdk().validateString)(properties.par)),errors.collect(cdk().propertyValidator("range",cdk().validateString)(properties.range)),errors.collect(cdk().propertyValidator("scanMode",cdk().validateString)(properties.scanMode)),errors.collect(cdk().propertyValidator("tcs",cdk().validateString)(properties.tcs)),errors.wrap('supplied properties not correct for "FmtpProperty"')}function convertCfnFlowFmtpPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowFmtpPropertyValidator(properties).assertSuccess(),{ChannelOrder:cdk().stringToCloudFormation(properties.channelOrder),Colorimetry:cdk().stringToCloudFormation(properties.colorimetry),ExactFramerate:cdk().stringToCloudFormation(properties.exactFramerate),Par:cdk().stringToCloudFormation(properties.par),Range:cdk().stringToCloudFormation(properties.range),ScanMode:cdk().stringToCloudFormation(properties.scanMode),Tcs:cdk().stringToCloudFormation(properties.tcs)}):properties}function CfnFlowFmtpPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("channelOrder","ChannelOrder",properties.ChannelOrder!=null?cfn_parse().FromCloudFormation.getString(properties.ChannelOrder):void 0),ret.addPropertyResult("colorimetry","Colorimetry",properties.Colorimetry!=null?cfn_parse().FromCloudFormation.getString(properties.Colorimetry):void 0),ret.addPropertyResult("exactFramerate","ExactFramerate",properties.ExactFramerate!=null?cfn_parse().FromCloudFormation.getString(properties.ExactFramerate):void 0),ret.addPropertyResult("par","Par",properties.Par!=null?cfn_parse().FromCloudFormation.getString(properties.Par):void 0),ret.addPropertyResult("range","Range",properties.Range!=null?cfn_parse().FromCloudFormation.getString(properties.Range):void 0),ret.addPropertyResult("scanMode","ScanMode",properties.ScanMode!=null?cfn_parse().FromCloudFormation.getString(properties.ScanMode):void 0),ret.addPropertyResult("tcs","Tcs",properties.Tcs!=null?cfn_parse().FromCloudFormation.getString(properties.Tcs):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowMediaStreamAttributesPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("fmtp",CfnFlowFmtpPropertyValidator)(properties.fmtp)),errors.collect(cdk().propertyValidator("lang",cdk().validateString)(properties.lang)),errors.wrap('supplied properties not correct for "MediaStreamAttributesProperty"')}function convertCfnFlowMediaStreamAttributesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowMediaStreamAttributesPropertyValidator(properties).assertSuccess(),{Fmtp:convertCfnFlowFmtpPropertyToCloudFormation(properties.fmtp),Lang:cdk().stringToCloudFormation(properties.lang)}):properties}function CfnFlowMediaStreamAttributesPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("fmtp","Fmtp",properties.Fmtp!=null?CfnFlowFmtpPropertyFromCloudFormation(properties.Fmtp):void 0),ret.addPropertyResult("lang","Lang",properties.Lang!=null?cfn_parse().FromCloudFormation.getString(properties.Lang):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowMediaStreamPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("attributes",CfnFlowMediaStreamAttributesPropertyValidator)(properties.attributes)),errors.collect(cdk().propertyValidator("clockRate",cdk().validateNumber)(properties.clockRate)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("fmt",cdk().validateNumber)(properties.fmt)),errors.collect(cdk().propertyValidator("mediaStreamId",cdk().requiredValidator)(properties.mediaStreamId)),errors.collect(cdk().propertyValidator("mediaStreamId",cdk().validateNumber)(properties.mediaStreamId)),errors.collect(cdk().propertyValidator("mediaStreamName",cdk().requiredValidator)(properties.mediaStreamName)),errors.collect(cdk().propertyValidator("mediaStreamName",cdk().validateString)(properties.mediaStreamName)),errors.collect(cdk().propertyValidator("mediaStreamType",cdk().requiredValidator)(properties.mediaStreamType)),errors.collect(cdk().propertyValidator("mediaStreamType",cdk().validateString)(properties.mediaStreamType)),errors.collect(cdk().propertyValidator("videoFormat",cdk().validateString)(properties.videoFormat)),errors.wrap('supplied properties not correct for "MediaStreamProperty"')}function convertCfnFlowMediaStreamPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowMediaStreamPropertyValidator(properties).assertSuccess(),{Attributes:convertCfnFlowMediaStreamAttributesPropertyToCloudFormation(properties.attributes),ClockRate:cdk().numberToCloudFormation(properties.clockRate),Description:cdk().stringToCloudFormation(properties.description),Fmt:cdk().numberToCloudFormation(properties.fmt),MediaStreamId:cdk().numberToCloudFormation(properties.mediaStreamId),MediaStreamName:cdk().stringToCloudFormation(properties.mediaStreamName),MediaStreamType:cdk().stringToCloudFormation(properties.mediaStreamType),VideoFormat:cdk().stringToCloudFormation(properties.videoFormat)}):properties}function CfnFlowMediaStreamPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("attributes","Attributes",properties.Attributes!=null?CfnFlowMediaStreamAttributesPropertyFromCloudFormation(properties.Attributes):void 0),ret.addPropertyResult("clockRate","ClockRate",properties.ClockRate!=null?cfn_parse().FromCloudFormation.getNumber(properties.ClockRate):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("fmt","Fmt",properties.Fmt!=null?cfn_parse().FromCloudFormation.getNumber(properties.Fmt):void 0),ret.addPropertyResult("mediaStreamId","MediaStreamId",properties.MediaStreamId!=null?cfn_parse().FromCloudFormation.getNumber(properties.MediaStreamId):void 0),ret.addPropertyResult("mediaStreamName","MediaStreamName",properties.MediaStreamName!=null?cfn_parse().FromCloudFormation.getString(properties.MediaStreamName):void 0),ret.addPropertyResult("mediaStreamType","MediaStreamType",properties.MediaStreamType!=null?cfn_parse().FromCloudFormation.getString(properties.MediaStreamType):void 0),ret.addPropertyResult("videoFormat","VideoFormat",properties.VideoFormat!=null?cfn_parse().FromCloudFormation.getString(properties.VideoFormat):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowMaintenancePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("maintenanceDay",cdk().requiredValidator)(properties.maintenanceDay)),errors.collect(cdk().propertyValidator("maintenanceDay",cdk().validateString)(properties.maintenanceDay)),errors.collect(cdk().propertyValidator("maintenanceStartHour",cdk().requiredValidator)(properties.maintenanceStartHour)),errors.collect(cdk().propertyValidator("maintenanceStartHour",cdk().validateString)(properties.maintenanceStartHour)),errors.wrap('supplied properties not correct for "MaintenanceProperty"')}function convertCfnFlowMaintenancePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowMaintenancePropertyValidator(properties).assertSuccess(),{MaintenanceDay:cdk().stringToCloudFormation(properties.maintenanceDay),MaintenanceStartHour:cdk().stringToCloudFormation(properties.maintenanceStartHour)}):properties}function CfnFlowMaintenancePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("maintenanceDay","MaintenanceDay",properties.MaintenanceDay!=null?cfn_parse().FromCloudFormation.getString(properties.MaintenanceDay):void 0),ret.addPropertyResult("maintenanceStartHour","MaintenanceStartHour",properties.MaintenanceStartHour!=null?cfn_parse().FromCloudFormation.getString(properties.MaintenanceStartHour):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowSilentAudioPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("state",cdk().validateString)(properties.state)),errors.collect(cdk().propertyValidator("thresholdSeconds",cdk().validateNumber)(properties.thresholdSeconds)),errors.wrap('supplied properties not correct for "SilentAudioProperty"')}function convertCfnFlowSilentAudioPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowSilentAudioPropertyValidator(properties).assertSuccess(),{State:cdk().stringToCloudFormation(properties.state),ThresholdSeconds:cdk().numberToCloudFormation(properties.thresholdSeconds)}):properties}function CfnFlowSilentAudioPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("state","State",properties.State!=null?cfn_parse().FromCloudFormation.getString(properties.State):void 0),ret.addPropertyResult("thresholdSeconds","ThresholdSeconds",properties.ThresholdSeconds!=null?cfn_parse().FromCloudFormation.getNumber(properties.ThresholdSeconds):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowAudioMonitoringSettingPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("silentAudio",CfnFlowSilentAudioPropertyValidator)(properties.silentAudio)),errors.wrap('supplied properties not correct for "AudioMonitoringSettingProperty"')}function convertCfnFlowAudioMonitoringSettingPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowAudioMonitoringSettingPropertyValidator(properties).assertSuccess(),{SilentAudio:convertCfnFlowSilentAudioPropertyToCloudFormation(properties.silentAudio)}):properties}function CfnFlowAudioMonitoringSettingPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("silentAudio","SilentAudio",properties.SilentAudio!=null?CfnFlowSilentAudioPropertyFromCloudFormation(properties.SilentAudio):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowBlackFramesPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("state",cdk().validateString)(properties.state)),errors.collect(cdk().propertyValidator("thresholdSeconds",cdk().validateNumber)(properties.thresholdSeconds)),errors.wrap('supplied properties not correct for "BlackFramesProperty"')}function convertCfnFlowBlackFramesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowBlackFramesPropertyValidator(properties).assertSuccess(),{State:cdk().stringToCloudFormation(properties.state),ThresholdSeconds:cdk().numberToCloudFormation(properties.thresholdSeconds)}):properties}function CfnFlowBlackFramesPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("state","State",properties.State!=null?cfn_parse().FromCloudFormation.getString(properties.State):void 0),ret.addPropertyResult("thresholdSeconds","ThresholdSeconds",properties.ThresholdSeconds!=null?cfn_parse().FromCloudFormation.getNumber(properties.ThresholdSeconds):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowFrozenFramesPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("state",cdk().validateString)(properties.state)),errors.collect(cdk().propertyValidator("thresholdSeconds",cdk().validateNumber)(properties.thresholdSeconds)),errors.wrap('supplied properties not correct for "FrozenFramesProperty"')}function convertCfnFlowFrozenFramesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowFrozenFramesPropertyValidator(properties).assertSuccess(),{State:cdk().stringToCloudFormation(properties.state),ThresholdSeconds:cdk().numberToCloudFormation(properties.thresholdSeconds)}):properties}function CfnFlowFrozenFramesPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("state","State",properties.State!=null?cfn_parse().FromCloudFormation.getString(properties.State):void 0),ret.addPropertyResult("thresholdSeconds","ThresholdSeconds",properties.ThresholdSeconds!=null?cfn_parse().FromCloudFormation.getNumber(properties.ThresholdSeconds):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowVideoMonitoringSettingPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("blackFrames",CfnFlowBlackFramesPropertyValidator)(properties.blackFrames)),errors.collect(cdk().propertyValidator("frozenFrames",CfnFlowFrozenFramesPropertyValidator)(properties.frozenFrames)),errors.wrap('supplied properties not correct for "VideoMonitoringSettingProperty"')}function convertCfnFlowVideoMonitoringSettingPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowVideoMonitoringSettingPropertyValidator(properties).assertSuccess(),{BlackFrames:convertCfnFlowBlackFramesPropertyToCloudFormation(properties.blackFrames),FrozenFrames:convertCfnFlowFrozenFramesPropertyToCloudFormation(properties.frozenFrames)}):properties}function CfnFlowVideoMonitoringSettingPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("blackFrames","BlackFrames",properties.BlackFrames!=null?CfnFlowBlackFramesPropertyFromCloudFormation(properties.BlackFrames):void 0),ret.addPropertyResult("frozenFrames","FrozenFrames",properties.FrozenFrames!=null?CfnFlowFrozenFramesPropertyFromCloudFormation(properties.FrozenFrames):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowSourceMonitoringConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("audioMonitoringSettings",cdk().listValidator(CfnFlowAudioMonitoringSettingPropertyValidator))(properties.audioMonitoringSettings)),errors.collect(cdk().propertyValidator("contentQualityAnalysisState",cdk().validateString)(properties.contentQualityAnalysisState)),errors.collect(cdk().propertyValidator("thumbnailState",cdk().validateString)(properties.thumbnailState)),errors.collect(cdk().propertyValidator("videoMonitoringSettings",cdk().listValidator(CfnFlowVideoMonitoringSettingPropertyValidator))(properties.videoMonitoringSettings)),errors.wrap('supplied properties not correct for "SourceMonitoringConfigProperty"')}function convertCfnFlowSourceMonitoringConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowSourceMonitoringConfigPropertyValidator(properties).assertSuccess(),{AudioMonitoringSettings:cdk().listMapper(convertCfnFlowAudioMonitoringSettingPropertyToCloudFormation)(properties.audioMonitoringSettings),ContentQualityAnalysisState:cdk().stringToCloudFormation(properties.contentQualityAnalysisState),ThumbnailState:cdk().stringToCloudFormation(properties.thumbnailState),VideoMonitoringSettings:cdk().listMapper(convertCfnFlowVideoMonitoringSettingPropertyToCloudFormation)(properties.videoMonitoringSettings)}):properties}function CfnFlowSourceMonitoringConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("audioMonitoringSettings","AudioMonitoringSettings",properties.AudioMonitoringSettings!=null?cfn_parse().FromCloudFormation.getArray(CfnFlowAudioMonitoringSettingPropertyFromCloudFormation)(properties.AudioMonitoringSettings):void 0),ret.addPropertyResult("contentQualityAnalysisState","ContentQualityAnalysisState",properties.ContentQualityAnalysisState!=null?cfn_parse().FromCloudFormation.getString(properties.ContentQualityAnalysisState):void 0),ret.addPropertyResult("thumbnailState","ThumbnailState",properties.ThumbnailState!=null?cfn_parse().FromCloudFormation.getString(properties.ThumbnailState):void 0),ret.addPropertyResult("videoMonitoringSettings","VideoMonitoringSettings",properties.VideoMonitoringSettings!=null?cfn_parse().FromCloudFormation.getArray(CfnFlowVideoMonitoringSettingPropertyFromCloudFormation)(properties.VideoMonitoringSettings):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowNdiDiscoveryServerConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("discoveryServerAddress",cdk().requiredValidator)(properties.discoveryServerAddress)),errors.collect(cdk().propertyValidator("discoveryServerAddress",cdk().validateString)(properties.discoveryServerAddress)),errors.collect(cdk().propertyValidator("discoveryServerPort",cdk().validateNumber)(properties.discoveryServerPort)),errors.collect(cdk().propertyValidator("vpcInterfaceAdapter",cdk().requiredValidator)(properties.vpcInterfaceAdapter)),errors.collect(cdk().propertyValidator("vpcInterfaceAdapter",cdk().validateString)(properties.vpcInterfaceAdapter)),errors.wrap('supplied properties not correct for "NdiDiscoveryServerConfigProperty"')}function convertCfnFlowNdiDiscoveryServerConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowNdiDiscoveryServerConfigPropertyValidator(properties).assertSuccess(),{DiscoveryServerAddress:cdk().stringToCloudFormation(properties.discoveryServerAddress),DiscoveryServerPort:cdk().numberToCloudFormation(properties.discoveryServerPort),VpcInterfaceAdapter:cdk().stringToCloudFormation(properties.vpcInterfaceAdapter)}):properties}function CfnFlowNdiDiscoveryServerConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("discoveryServerAddress","DiscoveryServerAddress",properties.DiscoveryServerAddress!=null?cfn_parse().FromCloudFormation.getString(properties.DiscoveryServerAddress):void 0),ret.addPropertyResult("discoveryServerPort","DiscoveryServerPort",properties.DiscoveryServerPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.DiscoveryServerPort):void 0),ret.addPropertyResult("vpcInterfaceAdapter","VpcInterfaceAdapter",properties.VpcInterfaceAdapter!=null?cfn_parse().FromCloudFormation.getString(properties.VpcInterfaceAdapter):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowNdiConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("machineName",cdk().validateString)(properties.machineName)),errors.collect(cdk().propertyValidator("ndiDiscoveryServers",cdk().listValidator(CfnFlowNdiDiscoveryServerConfigPropertyValidator))(properties.ndiDiscoveryServers)),errors.collect(cdk().propertyValidator("ndiState",cdk().validateString)(properties.ndiState)),errors.wrap('supplied properties not correct for "NdiConfigProperty"')}function convertCfnFlowNdiConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowNdiConfigPropertyValidator(properties).assertSuccess(),{MachineName:cdk().stringToCloudFormation(properties.machineName),NdiDiscoveryServers:cdk().listMapper(convertCfnFlowNdiDiscoveryServerConfigPropertyToCloudFormation)(properties.ndiDiscoveryServers),NdiState:cdk().stringToCloudFormation(properties.ndiState)}):properties}function CfnFlowNdiConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("machineName","MachineName",properties.MachineName!=null?cfn_parse().FromCloudFormation.getString(properties.MachineName):void 0),ret.addPropertyResult("ndiDiscoveryServers","NdiDiscoveryServers",properties.NdiDiscoveryServers!=null?cfn_parse().FromCloudFormation.getArray(CfnFlowNdiDiscoveryServerConfigPropertyFromCloudFormation)(properties.NdiDiscoveryServers):void 0),ret.addPropertyResult("ndiState","NdiState",properties.NdiState!=null?cfn_parse().FromCloudFormation.getString(properties.NdiState):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("availabilityZone",cdk().validateString)(properties.availabilityZone)),errors.collect(cdk().propertyValidator("flowSize",cdk().validateString)(properties.flowSize)),errors.collect(cdk().propertyValidator("maintenance",CfnFlowMaintenancePropertyValidator)(properties.maintenance)),errors.collect(cdk().propertyValidator("mediaStreams",cdk().listValidator(CfnFlowMediaStreamPropertyValidator))(properties.mediaStreams)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("ndiConfig",CfnFlowNdiConfigPropertyValidator)(properties.ndiConfig)),errors.collect(cdk().propertyValidator("source",cdk().requiredValidator)(properties.source)),errors.collect(cdk().propertyValidator("source",CfnFlowSourcePropertyValidator)(properties.source)),errors.collect(cdk().propertyValidator("sourceFailoverConfig",CfnFlowFailoverConfigPropertyValidator)(properties.sourceFailoverConfig)),errors.collect(cdk().propertyValidator("sourceMonitoringConfig",CfnFlowSourceMonitoringConfigPropertyValidator)(properties.sourceMonitoringConfig)),errors.collect(cdk().propertyValidator("vpcInterfaces",cdk().listValidator(CfnFlowVpcInterfacePropertyValidator))(properties.vpcInterfaces)),errors.wrap('supplied properties not correct for "CfnFlowProps"')}function convertCfnFlowPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowPropsValidator(properties).assertSuccess(),{AvailabilityZone:cdk().stringToCloudFormation(properties.availabilityZone),FlowSize:cdk().stringToCloudFormation(properties.flowSize),Maintenance:convertCfnFlowMaintenancePropertyToCloudFormation(properties.maintenance),MediaStreams:cdk().listMapper(convertCfnFlowMediaStreamPropertyToCloudFormation)(properties.mediaStreams),Name:cdk().stringToCloudFormation(properties.name),NdiConfig:convertCfnFlowNdiConfigPropertyToCloudFormation(properties.ndiConfig),Source:convertCfnFlowSourcePropertyToCloudFormation(properties.source),SourceFailoverConfig:convertCfnFlowFailoverConfigPropertyToCloudFormation(properties.sourceFailoverConfig),SourceMonitoringConfig:convertCfnFlowSourceMonitoringConfigPropertyToCloudFormation(properties.sourceMonitoringConfig),VpcInterfaces:cdk().listMapper(convertCfnFlowVpcInterfacePropertyToCloudFormation)(properties.vpcInterfaces)}):properties}function CfnFlowPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse().FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("flowSize","FlowSize",properties.FlowSize!=null?cfn_parse().FromCloudFormation.getString(properties.FlowSize):void 0),ret.addPropertyResult("maintenance","Maintenance",properties.Maintenance!=null?CfnFlowMaintenancePropertyFromCloudFormation(properties.Maintenance):void 0),ret.addPropertyResult("mediaStreams","MediaStreams",properties.MediaStreams!=null?cfn_parse().FromCloudFormation.getArray(CfnFlowMediaStreamPropertyFromCloudFormation)(properties.MediaStreams):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("ndiConfig","NdiConfig",properties.NdiConfig!=null?CfnFlowNdiConfigPropertyFromCloudFormation(properties.NdiConfig):void 0),ret.addPropertyResult("source","Source",properties.Source!=null?CfnFlowSourcePropertyFromCloudFormation(properties.Source):void 0),ret.addPropertyResult("sourceFailoverConfig","SourceFailoverConfig",properties.SourceFailoverConfig!=null?CfnFlowFailoverConfigPropertyFromCloudFormation(properties.SourceFailoverConfig):void 0),ret.addPropertyResult("sourceMonitoringConfig","SourceMonitoringConfig",properties.SourceMonitoringConfig!=null?CfnFlowSourceMonitoringConfigPropertyFromCloudFormation(properties.SourceMonitoringConfig):void 0),ret.addPropertyResult("vpcInterfaces","VpcInterfaces",properties.VpcInterfaces!=null?cfn_parse().FromCloudFormation.getArray(CfnFlowVpcInterfacePropertyFromCloudFormation)(properties.VpcInterfaces):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnFlowEntitlement extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_mediaconnect.CfnFlowEntitlement",version:"2.234.1"};static CFN_RESOURCE_TYPE_NAME="AWS::MediaConnect::FlowEntitlement";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnFlowEntitlementPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError("Unexpected IResolvable",scope);const ret=new CfnFlowEntitlement(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnFlowEntitlement(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnFlowEntitlement.CFN_RESOURCE_TYPE_NAME}attrEntitlementArn;dataTransferSubscriberFeePercent;description;encryption;entitlementStatus;flowArn;name;subscribers;constructor(scope,id,props){super(scope,id,{type:CfnFlowEntitlement.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_mediaconnect_CfnFlowEntitlementProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnFlowEntitlement),error}cdk().requireProperty(props,"description",this),cdk().requireProperty(props,"flowArn",this),cdk().requireProperty(props,"name",this),cdk().requireProperty(props,"subscribers",this),this.attrEntitlementArn=cdk().Token.asString(this.getAtt("EntitlementArn",cdk().ResolutionTypeHint.STRING)),this.dataTransferSubscriberFeePercent=props.dataTransferSubscriberFeePercent,this.description=props.description,this.encryption=props.encryption,this.entitlementStatus=props.entitlementStatus,this.flowArn=props.flowArn,this.name=props.name,this.subscribers=props.subscribers}get flowEntitlementRef(){return{entitlementArn:this.ref}}get cfnProperties(){return{dataTransferSubscriberFeePercent:this.dataTransferSubscriberFeePercent,description:this.description,encryption:this.encryption,entitlementStatus:this.entitlementStatus,flowArn:this.flowArn,name:this.name,subscribers:this.subscribers}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnFlowEntitlement.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnFlowEntitlementPropsToCloudFormation(props)}}exports.CfnFlowEntitlement=CfnFlowEntitlement;function CfnFlowEntitlementEncryptionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("algorithm",cdk().requiredValidator)(properties.algorithm)),errors.collect(cdk().propertyValidator("algorithm",cdk().validateString)(properties.algorithm)),errors.collect(cdk().propertyValidator("constantInitializationVector",cdk().validateString)(properties.constantInitializationVector)),errors.collect(cdk().propertyValidator("deviceId",cdk().validateString)(properties.deviceId)),errors.collect(cdk().propertyValidator("keyType",cdk().validateString)(properties.keyType)),errors.collect(cdk().propertyValidator("region",cdk().validateString)(properties.region)),errors.collect(cdk().propertyValidator("resourceId",cdk().validateString)(properties.resourceId)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("secretArn",cdk().validateString)(properties.secretArn)),errors.collect(cdk().propertyValidator("url",cdk().validateString)(properties.url)),errors.wrap('supplied properties not correct for "EncryptionProperty"')}function convertCfnFlowEntitlementEncryptionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowEntitlementEncryptionPropertyValidator(properties).assertSuccess(),{Algorithm:cdk().stringToCloudFormation(properties.algorithm),ConstantInitializationVector:cdk().stringToCloudFormation(properties.constantInitializationVector),DeviceId:cdk().stringToCloudFormation(properties.deviceId),KeyType:cdk().stringToCloudFormation(properties.keyType),Region:cdk().stringToCloudFormation(properties.region),ResourceId:cdk().stringToCloudFormation(properties.resourceId),RoleArn:cdk().stringToCloudFormation(properties.roleArn),SecretArn:cdk().stringToCloudFormation(properties.secretArn),Url:cdk().stringToCloudFormation(properties.url)}):properties}function CfnFlowEntitlementEncryptionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("algorithm","Algorithm",properties.Algorithm!=null?cfn_parse().FromCloudFormation.getString(properties.Algorithm):void 0),ret.addPropertyResult("constantInitializationVector","ConstantInitializationVector",properties.ConstantInitializationVector!=null?cfn_parse().FromCloudFormation.getString(properties.ConstantInitializationVector):void 0),ret.addPropertyResult("deviceId","DeviceId",properties.DeviceId!=null?cfn_parse().FromCloudFormation.getString(properties.DeviceId):void 0),ret.addPropertyResult("keyType","KeyType",properties.KeyType!=null?cfn_parse().FromCloudFormation.getString(properties.KeyType):void 0),ret.addPropertyResult("region","Region",properties.Region!=null?cfn_parse().FromCloudFormation.getString(properties.Region):void 0),ret.addPropertyResult("resourceId","ResourceId",properties.ResourceId!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceId):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("secretArn","SecretArn",properties.SecretArn!=null?cfn_parse().FromCloudFormation.getString(properties.SecretArn):void 0),ret.addPropertyResult("url","Url",properties.Url!=null?cfn_parse().FromCloudFormation.getString(properties.Url):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowEntitlementPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("dataTransferSubscriberFeePercent",cdk().validateNumber)(properties.dataTransferSubscriberFeePercent)),errors.collect(cdk().propertyValidator("description",cdk().requiredValidator)(properties.description)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("encryption",CfnFlowEntitlementEncryptionPropertyValidator)(properties.encryption)),errors.collect(cdk().propertyValidator("entitlementStatus",cdk().validateString)(properties.entitlementStatus)),errors.collect(cdk().propertyValidator("flowArn",cdk().requiredValidator)(properties.flowArn)),errors.collect(cdk().propertyValidator("flowArn",cdk().validateString)(properties.flowArn)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("subscribers",cdk().requiredValidator)(properties.subscribers)),errors.collect(cdk().propertyValidator("subscribers",cdk().listValidator(cdk().validateString))(properties.subscribers)),errors.wrap('supplied properties not correct for "CfnFlowEntitlementProps"')}function convertCfnFlowEntitlementPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowEntitlementPropsValidator(properties).assertSuccess(),{DataTransferSubscriberFeePercent:cdk().numberToCloudFormation(properties.dataTransferSubscriberFeePercent),Description:cdk().stringToCloudFormation(properties.description),Encryption:convertCfnFlowEntitlementEncryptionPropertyToCloudFormation(properties.encryption),EntitlementStatus:cdk().stringToCloudFormation(properties.entitlementStatus),FlowArn:cdk().stringToCloudFormation(properties.flowArn),Name:cdk().stringToCloudFormation(properties.name),Subscribers:cdk().listMapper(cdk().stringToCloudFormation)(properties.subscribers)}):properties}function CfnFlowEntitlementPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("dataTransferSubscriberFeePercent","DataTransferSubscriberFeePercent",properties.DataTransferSubscriberFeePercent!=null?cfn_parse().FromCloudFormation.getNumber(properties.DataTransferSubscriberFeePercent):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("encryption","Encryption",properties.Encryption!=null?CfnFlowEntitlementEncryptionPropertyFromCloudFormation(properties.Encryption):void 0),ret.addPropertyResult("entitlementStatus","EntitlementStatus",properties.EntitlementStatus!=null?cfn_parse().FromCloudFormation.getString(properties.EntitlementStatus):void 0),ret.addPropertyResult("flowArn","FlowArn",properties.FlowArn!=null?cfn_parse().FromCloudFormation.getString(properties.FlowArn):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("subscribers","Subscribers",properties.Subscribers!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Subscribers):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnFlowOutput extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_mediaconnect.CfnFlowOutput",version:"2.234.1"};static CFN_RESOURCE_TYPE_NAME="AWS::MediaConnect::FlowOutput";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnFlowOutputPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError("Unexpected IResolvable",scope);const ret=new CfnFlowOutput(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnFlowOutput(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnFlowOutput.CFN_RESOURCE_TYPE_NAME}attrOutputArn;cidrAllowList;description;destination;encryption;flowArn;maxLatency;mediaStreamOutputConfigurations;minLatency;name;ndiProgramName;ndiSpeedHqQuality;outputStatus;port;protocol;remoteId;routerIntegrationState;routerIntegrationTransitEncryption;smoothingLatency;streamId;vpcInterfaceAttachment;constructor(scope,id,props){super(scope,id,{type:CfnFlowOutput.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_mediaconnect_CfnFlowOutputProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnFlowOutput),error}cdk().requireProperty(props,"flowArn",this),this.attrOutputArn=cdk().Token.asString(this.getAtt("OutputArn",cdk().ResolutionTypeHint.STRING)),this.cidrAllowList=props.cidrAllowList,this.description=props.description,this.destination=props.destination,this.encryption=props.encryption,this.flowArn=props.flowArn,this.maxLatency=props.maxLatency,this.mediaStreamOutputConfigurations=props.mediaStreamOutputConfigurations,this.minLatency=props.minLatency,this.name=props.name,this.ndiProgramName=props.ndiProgramName,this.ndiSpeedHqQuality=props.ndiSpeedHqQuality,this.outputStatus=props.outputStatus,this.port=props.port,this.protocol=props.protocol,this.remoteId=props.remoteId,this.routerIntegrationState=props.routerIntegrationState,this.routerIntegrationTransitEncryption=props.routerIntegrationTransitEncryption,this.smoothingLatency=props.smoothingLatency,this.streamId=props.streamId,this.vpcInterfaceAttachment=props.vpcInterfaceAttachment}get flowOutputRef(){return{outputArn:this.ref}}get cfnProperties(){return{cidrAllowList:this.cidrAllowList,description:this.description,destination:this.destination,encryption:this.encryption,flowArn:this.flowArn,maxLatency:this.maxLatency,mediaStreamOutputConfigurations:this.mediaStreamOutputConfigurations,minLatency:this.minLatency,name:this.name,ndiProgramName:this.ndiProgramName,ndiSpeedHqQuality:this.ndiSpeedHqQuality,outputStatus:this.outputStatus,port:this.port,protocol:this.protocol,remoteId:this.remoteId,routerIntegrationState:this.routerIntegrationState,routerIntegrationTransitEncryption:this.routerIntegrationTransitEncryption,smoothingLatency:this.smoothingLatency,streamId:this.streamId,vpcInterfaceAttachment:this.vpcInterfaceAttachment}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnFlowOutput.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnFlowOutputPropsToCloudFormation(props)}}exports.CfnFlowOutput=CfnFlowOutput;function CfnFlowOutputEncryptionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("algorithm",cdk().validateString)(properties.algorithm)),errors.collect(cdk().propertyValidator("keyType",cdk().validateString)(properties.keyType)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("secretArn",cdk().requiredValidator)(properties.secretArn)),errors.collect(cdk().propertyValidator("secretArn",cdk().validateString)(properties.secretArn)),errors.wrap('supplied properties not correct for "EncryptionProperty"')}function convertCfnFlowOutputEncryptionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowOutputEncryptionPropertyValidator(properties).assertSuccess(),{Algorithm:cdk().stringToCloudFormation(properties.algorithm),KeyType:cdk().stringToCloudFormation(properties.keyType),RoleArn:cdk().stringToCloudFormation(properties.roleArn),SecretArn:cdk().stringToCloudFormation(properties.secretArn)}):properties}function CfnFlowOutputEncryptionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("algorithm","Algorithm",properties.Algorithm!=null?cfn_parse().FromCloudFormation.getString(properties.Algorithm):void 0),ret.addPropertyResult("keyType","KeyType",properties.KeyType!=null?cfn_parse().FromCloudFormation.getString(properties.KeyType):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("secretArn","SecretArn",properties.SecretArn!=null?cfn_parse().FromCloudFormation.getString(properties.SecretArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowOutputVpcInterfaceAttachmentPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("vpcInterfaceName",cdk().validateString)(properties.vpcInterfaceName)),errors.wrap('supplied properties not correct for "VpcInterfaceAttachmentProperty"')}function convertCfnFlowOutputVpcInterfaceAttachmentPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowOutputVpcInterfaceAttachmentPropertyValidator(properties).assertSuccess(),{VpcInterfaceName:cdk().stringToCloudFormation(properties.vpcInterfaceName)}):properties}function CfnFlowOutputVpcInterfaceAttachmentPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("vpcInterfaceName","VpcInterfaceName",properties.VpcInterfaceName!=null?cfn_parse().FromCloudFormation.getString(properties.VpcInterfaceName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowOutputInterfacePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "InterfaceProperty"')}function convertCfnFlowOutputInterfacePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowOutputInterfacePropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnFlowOutputInterfacePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowOutputDestinationConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("destinationIp",cdk().requiredValidator)(properties.destinationIp)),errors.collect(cdk().propertyValidator("destinationIp",cdk().validateString)(properties.destinationIp)),errors.collect(cdk().propertyValidator("destinationPort",cdk().requiredValidator)(properties.destinationPort)),errors.collect(cdk().propertyValidator("destinationPort",cdk().validateNumber)(properties.destinationPort)),errors.collect(cdk().propertyValidator("interface",cdk().requiredValidator)(properties.interface)),errors.collect(cdk().propertyValidator("interface",CfnFlowOutputInterfacePropertyValidator)(properties.interface)),errors.wrap('supplied properties not correct for "DestinationConfigurationProperty"')}function convertCfnFlowOutputDestinationConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowOutputDestinationConfigurationPropertyValidator(properties).assertSuccess(),{DestinationIp:cdk().stringToCloudFormation(properties.destinationIp),DestinationPort:cdk().numberToCloudFormation(properties.destinationPort),Interface:convertCfnFlowOutputInterfacePropertyToCloudFormation(properties.interface)}):properties}function CfnFlowOutputDestinationConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("destinationIp","DestinationIp",properties.DestinationIp!=null?cfn_parse().FromCloudFormation.getString(properties.DestinationIp):void 0),ret.addPropertyResult("destinationPort","DestinationPort",properties.DestinationPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.DestinationPort):void 0),ret.addPropertyResult("interface","Interface",properties.Interface!=null?CfnFlowOutputInterfacePropertyFromCloudFormation(properties.Interface):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowOutputEncodingParametersPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("compressionFactor",cdk().requiredValidator)(properties.compressionFactor)),errors.collect(cdk().propertyValidator("compressionFactor",cdk().validateNumber)(properties.compressionFactor)),errors.collect(cdk().propertyValidator("encoderProfile",cdk().validateString)(properties.encoderProfile)),errors.wrap('supplied properties not correct for "EncodingParametersProperty"')}function convertCfnFlowOutputEncodingParametersPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowOutputEncodingParametersPropertyValidator(properties).assertSuccess(),{CompressionFactor:cdk().numberToCloudFormation(properties.compressionFactor),EncoderProfile:cdk().stringToCloudFormation(properties.encoderProfile)}):properties}function CfnFlowOutputEncodingParametersPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("compressionFactor","CompressionFactor",properties.CompressionFactor!=null?cfn_parse().FromCloudFormation.getNumber(properties.CompressionFactor):void 0),ret.addPropertyResult("encoderProfile","EncoderProfile",properties.EncoderProfile!=null?cfn_parse().FromCloudFormation.getString(properties.EncoderProfile):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowOutputMediaStreamOutputConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("destinationConfigurations",cdk().listValidator(CfnFlowOutputDestinationConfigurationPropertyValidator))(properties.destinationConfigurations)),errors.collect(cdk().propertyValidator("encodingName",cdk().requiredValidator)(properties.encodingName)),errors.collect(cdk().propertyValidator("encodingName",cdk().validateString)(properties.encodingName)),errors.collect(cdk().propertyValidator("encodingParameters",CfnFlowOutputEncodingParametersPropertyValidator)(properties.encodingParameters)),errors.collect(cdk().propertyValidator("mediaStreamName",cdk().requiredValidator)(properties.mediaStreamName)),errors.collect(cdk().propertyValidator("mediaStreamName",cdk().validateString)(properties.mediaStreamName)),errors.wrap('supplied properties not correct for "MediaStreamOutputConfigurationProperty"')}function convertCfnFlowOutputMediaStreamOutputConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowOutputMediaStreamOutputConfigurationPropertyValidator(properties).assertSuccess(),{DestinationConfigurations:cdk().listMapper(convertCfnFlowOutputDestinationConfigurationPropertyToCloudFormation)(properties.destinationConfigurations),EncodingName:cdk().stringToCloudFormation(properties.encodingName),EncodingParameters:convertCfnFlowOutputEncodingParametersPropertyToCloudFormation(properties.encodingParameters),MediaStreamName:cdk().stringToCloudFormation(properties.mediaStreamName)}):properties}function CfnFlowOutputMediaStreamOutputConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("destinationConfigurations","DestinationConfigurations",properties.DestinationConfigurations!=null?cfn_parse().FromCloudFormation.getArray(CfnFlowOutputDestinationConfigurationPropertyFromCloudFormation)(properties.DestinationConfigurations):void 0),ret.addPropertyResult("encodingName","EncodingName",properties.EncodingName!=null?cfn_parse().FromCloudFormation.getString(properties.EncodingName):void 0),ret.addPropertyResult("encodingParameters","EncodingParameters",properties.EncodingParameters!=null?CfnFlowOutputEncodingParametersPropertyFromCloudFormation(properties.EncodingParameters):void 0),ret.addPropertyResult("mediaStreamName","MediaStreamName",properties.MediaStreamName!=null?cfn_parse().FromCloudFormation.getString(properties.MediaStreamName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowOutputSecretsManagerEncryptionKeyConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("secretArn",cdk().requiredValidator)(properties.secretArn)),errors.collect(cdk().propertyValidator("secretArn",cdk().validateString)(properties.secretArn)),errors.wrap('supplied properties not correct for "SecretsManagerEncryptionKeyConfigurationProperty"')}function convertCfnFlowOutputSecretsManagerEncryptionKeyConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowOutputSecretsManagerEncryptionKeyConfigurationPropertyValidator(properties).assertSuccess(),{RoleArn:cdk().stringToCloudFormation(properties.roleArn),SecretArn:cdk().stringToCloudFormation(properties.secretArn)}):properties}function CfnFlowOutputSecretsManagerEncryptionKeyConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("secretArn","SecretArn",properties.SecretArn!=null?cfn_parse().FromCloudFormation.getString(properties.SecretArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowOutputFlowTransitEncryptionKeyConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("automatic",cdk().validateObject)(properties.automatic)),errors.collect(cdk().propertyValidator("secretsManager",CfnFlowOutputSecretsManagerEncryptionKeyConfigurationPropertyValidator)(properties.secretsManager)),errors.wrap('supplied properties not correct for "FlowTransitEncryptionKeyConfigurationProperty"')}function convertCfnFlowOutputFlowTransitEncryptionKeyConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowOutputFlowTransitEncryptionKeyConfigurationPropertyValidator(properties).assertSuccess(),{Automatic:cdk().objectToCloudFormation(properties.automatic),SecretsManager:convertCfnFlowOutputSecretsManagerEncryptionKeyConfigurationPropertyToCloudFormation(properties.secretsManager)}):properties}function CfnFlowOutputFlowTransitEncryptionKeyConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("automatic","Automatic",properties.Automatic!=null?cfn_parse().FromCloudFormation.getAny(properties.Automatic):void 0),ret.addPropertyResult("secretsManager","SecretsManager",properties.SecretsManager!=null?CfnFlowOutputSecretsManagerEncryptionKeyConfigurationPropertyFromCloudFormation(properties.SecretsManager):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowOutputFlowTransitEncryptionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("encryptionKeyConfiguration",cdk().requiredValidator)(properties.encryptionKeyConfiguration)),errors.collect(cdk().propertyValidator("encryptionKeyConfiguration",CfnFlowOutputFlowTransitEncryptionKeyConfigurationPropertyValidator)(properties.encryptionKeyConfiguration)),errors.collect(cdk().propertyValidator("encryptionKeyType",cdk().validateString)(properties.encryptionKeyType)),errors.wrap('supplied properties not correct for "FlowTransitEncryptionProperty"')}function convertCfnFlowOutputFlowTransitEncryptionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowOutputFlowTransitEncryptionPropertyValidator(properties).assertSuccess(),{EncryptionKeyConfiguration:convertCfnFlowOutputFlowTransitEncryptionKeyConfigurationPropertyToCloudFormation(properties.encryptionKeyConfiguration),EncryptionKeyType:cdk().stringToCloudFormation(properties.encryptionKeyType)}):properties}function CfnFlowOutputFlowTransitEncryptionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("encryptionKeyConfiguration","EncryptionKeyConfiguration",properties.EncryptionKeyConfiguration!=null?CfnFlowOutputFlowTransitEncryptionKeyConfigurationPropertyFromCloudFormation(properties.EncryptionKeyConfiguration):void 0),ret.addPropertyResult("encryptionKeyType","EncryptionKeyType",properties.EncryptionKeyType!=null?cfn_parse().FromCloudFormation.getString(properties.EncryptionKeyType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowOutputPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("cidrAllowList",cdk().listValidator(cdk().validateString))(properties.cidrAllowList)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("destination",cdk().validateString)(properties.destination)),errors.collect(cdk().propertyValidator("encryption",CfnFlowOutputEncryptionPropertyValidator)(properties.encryption)),errors.collect(cdk().propertyValidator("flowArn",cdk().requiredValidator)(properties.flowArn)),errors.collect(cdk().propertyValidator("flowArn",cdk().validateString)(properties.flowArn)),errors.collect(cdk().propertyValidator("maxLatency",cdk().validateNumber)(properties.maxLatency)),errors.collect(cdk().propertyValidator("mediaStreamOutputConfigurations",cdk().listValidator(CfnFlowOutputMediaStreamOutputConfigurationPropertyValidator))(properties.mediaStreamOutputConfigurations)),errors.collect(cdk().propertyValidator("minLatency",cdk().validateNumber)(properties.minLatency)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("ndiProgramName",cdk().validateString)(properties.ndiProgramName)),errors.collect(cdk().propertyValidator("ndiSpeedHqQuality",cdk().validateNumber)(properties.ndiSpeedHqQuality)),errors.collect(cdk().propertyValidator("outputStatus",cdk().validateString)(properties.outputStatus)),errors.collect(cdk().propertyValidator("port",cdk().validateNumber)(properties.port)),errors.collect(cdk().propertyValidator("protocol",cdk().validateString)(properties.protocol)),errors.collect(cdk().propertyValidator("remoteId",cdk().validateString)(properties.remoteId)),errors.collect(cdk().propertyValidator("routerIntegrationState",cdk().validateString)(properties.routerIntegrationState)),errors.collect(cdk().propertyValidator("routerIntegrationTransitEncryption",CfnFlowOutputFlowTransitEncryptionPropertyValidator)(properties.routerIntegrationTransitEncryption)),errors.collect(cdk().propertyValidator("smoothingLatency",cdk().validateNumber)(properties.smoothingLatency)),errors.collect(cdk().propertyValidator("streamId",cdk().validateString)(properties.streamId)),errors.collect(cdk().propertyValidator("vpcInterfaceAttachment",CfnFlowOutputVpcInterfaceAttachmentPropertyValidator)(properties.vpcInterfaceAttachment)),errors.wrap('supplied properties not correct for "CfnFlowOutputProps"')}function convertCfnFlowOutputPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowOutputPropsValidator(properties).assertSuccess(),{CidrAllowList:cdk().listMapper(cdk().stringToCloudFormation)(properties.cidrAllowList),Description:cdk().stringToCloudFormation(properties.description),Destination:cdk().stringToCloudFormation(properties.destination),Encryption:convertCfnFlowOutputEncryptionPropertyToCloudFormation(properties.encryption),FlowArn:cdk().stringToCloudFormation(properties.flowArn),MaxLatency:cdk().numberToCloudFormation(properties.maxLatency),MediaStreamOutputConfigurations:cdk().listMapper(convertCfnFlowOutputMediaStreamOutputConfigurationPropertyToCloudFormation)(properties.mediaStreamOutputConfigurations),MinLatency:cdk().numberToCloudFormation(properties.minLatency),Name:cdk().stringToCloudFormation(properties.name),NdiProgramName:cdk().stringToCloudFormation(properties.ndiProgramName),NdiSpeedHqQuality:cdk().numberToCloudFormation(properties.ndiSpeedHqQuality),OutputStatus:cdk().stringToCloudFormation(properties.outputStatus),Port:cdk().numberToCloudFormation(properties.port),Protocol:cdk().stringToCloudFormation(properties.protocol),RemoteId:cdk().stringToCloudFormation(properties.remoteId),RouterIntegrationState:cdk().stringToCloudFormation(properties.routerIntegrationState),RouterIntegrationTransitEncryption:convertCfnFlowOutputFlowTransitEncryptionPropertyToCloudFormation(properties.routerIntegrationTransitEncryption),SmoothingLatency:cdk().numberToCloudFormation(properties.smoothingLatency),StreamId:cdk().stringToCloudFormation(properties.streamId),VpcInterfaceAttachment:convertCfnFlowOutputVpcInterfaceAttachmentPropertyToCloudFormation(properties.vpcInterfaceAttachment)}):properties}function CfnFlowOutputPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("cidrAllowList","CidrAllowList",properties.CidrAllowList!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.CidrAllowList):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("destination","Destination",properties.Destination!=null?cfn_parse().FromCloudFormation.getString(properties.Destination):void 0),ret.addPropertyResult("encryption","Encryption",properties.Encryption!=null?CfnFlowOutputEncryptionPropertyFromCloudFormation(properties.Encryption):void 0),ret.addPropertyResult("flowArn","FlowArn",properties.FlowArn!=null?cfn_parse().FromCloudFormation.getString(properties.FlowArn):void 0),ret.addPropertyResult("maxLatency","MaxLatency",properties.MaxLatency!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxLatency):void 0),ret.addPropertyResult("mediaStreamOutputConfigurations","MediaStreamOutputConfigurations",properties.MediaStreamOutputConfigurations!=null?cfn_parse().FromCloudFormation.getArray(CfnFlowOutputMediaStreamOutputConfigurationPropertyFromCloudFormation)(properties.MediaStreamOutputConfigurations):void 0),ret.addPropertyResult("minLatency","MinLatency",properties.MinLatency!=null?cfn_parse().FromCloudFormation.getNumber(properties.MinLatency):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("ndiProgramName","NdiProgramName",properties.NdiProgramName!=null?cfn_parse().FromCloudFormation.getString(properties.NdiProgramName):void 0),ret.addPropertyResult("ndiSpeedHqQuality","NdiSpeedHqQuality",properties.NdiSpeedHqQuality!=null?cfn_parse().FromCloudFormation.getNumber(properties.NdiSpeedHqQuality):void 0),ret.addPropertyResult("outputStatus","OutputStatus",properties.OutputStatus!=null?cfn_parse().FromCloudFormation.getString(properties.OutputStatus):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse().FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse().FromCloudFormation.getString(properties.Protocol):void 0),ret.addPropertyResult("remoteId","RemoteId",properties.RemoteId!=null?cfn_parse().FromCloudFormation.getString(properties.RemoteId):void 0),ret.addPropertyResult("routerIntegrationState","RouterIntegrationState",properties.RouterIntegrationState!=null?cfn_parse().FromCloudFormation.getString(properties.RouterIntegrationState):void 0),ret.addPropertyResult("routerIntegrationTransitEncryption","RouterIntegrationTransitEncryption",properties.RouterIntegrationTransitEncryption!=null?CfnFlowOutputFlowTransitEncryptionPropertyFromCloudFormation(properties.RouterIntegrationTransitEncryption):void 0),ret.addPropertyResult("smoothingLatency","SmoothingLatency",properties.SmoothingLatency!=null?cfn_parse().FromCloudFormation.getNumber(properties.SmoothingLatency):void 0),ret.addPropertyResult("streamId","StreamId",properties.StreamId!=null?cfn_parse().FromCloudFormation.getString(properties.StreamId):void 0),ret.addPropertyResult("vpcInterfaceAttachment","VpcInterfaceAttachment",properties.VpcInterfaceAttachment!=null?CfnFlowOutputVpcInterfaceAttachmentPropertyFromCloudFormation(properties.VpcInterfaceAttachment):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnFlowSource extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_mediaconnect.CfnFlowSource",version:"2.234.1"};static CFN_RESOURCE_TYPE_NAME="AWS::MediaConnect::FlowSource";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnFlowSourcePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError("Unexpected IResolvable",scope);const ret=new CfnFlowSource(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnFlowSource(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnFlowSource.CFN_RESOURCE_TYPE_NAME}attrIngestIp;attrSourceArn;attrSourceIngestPort;decryption;description;entitlementArn;flowArn;gatewayBridgeSource;ingestPort;maxBitrate;maxLatency;minLatency;name;protocol;senderControlPort;senderIpAddress;sourceListenerAddress;sourceListenerPort;streamId;vpcInterfaceName;whitelistCidr;constructor(scope,id,props){super(scope,id,{type:CfnFlowSource.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_mediaconnect_CfnFlowSourceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnFlowSource),error}cdk().requireProperty(props,"description",this),cdk().requireProperty(props,"name",this),this.attrIngestIp=cdk().Token.asString(this.getAtt("IngestIp",cdk().ResolutionTypeHint.STRING)),this.attrSourceArn=cdk().Token.asString(this.getAtt("SourceArn",cdk().ResolutionTypeHint.STRING)),this.attrSourceIngestPort=cdk().Token.asString(this.getAtt("SourceIngestPort",cdk().ResolutionTypeHint.STRING)),this.decryption=props.decryption,this.description=props.description,this.entitlementArn=props.entitlementArn,this.flowArn=props.flowArn,this.gatewayBridgeSource=props.gatewayBridgeSource,this.ingestPort=props.ingestPort,this.maxBitrate=props.maxBitrate,this.maxLatency=props.maxLatency,this.minLatency=props.minLatency,this.name=props.name,this.protocol=props.protocol,this.senderControlPort=props.senderControlPort,this.senderIpAddress=props.senderIpAddress,this.sourceListenerAddress=props.sourceListenerAddress,this.sourceListenerPort=props.sourceListenerPort,this.streamId=props.streamId,this.vpcInterfaceName=props.vpcInterfaceName,this.whitelistCidr=props.whitelistCidr}get flowSourceRef(){return{sourceArn:this.ref}}get cfnProperties(){return{decryption:this.decryption,description:this.description,entitlementArn:this.entitlementArn,flowArn:this.flowArn,gatewayBridgeSource:this.gatewayBridgeSource,ingestPort:this.ingestPort,maxBitrate:this.maxBitrate,maxLatency:this.maxLatency,minLatency:this.minLatency,name:this.name,protocol:this.protocol,senderControlPort:this.senderControlPort,senderIpAddress:this.senderIpAddress,sourceListenerAddress:this.sourceListenerAddress,sourceListenerPort:this.sourceListenerPort,streamId:this.streamId,vpcInterfaceName:this.vpcInterfaceName,whitelistCidr:this.whitelistCidr}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnFlowSource.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnFlowSourcePropsToCloudFormation(props)}}exports.CfnFlowSource=CfnFlowSource;function CfnFlowSourceEncryptionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("algorithm",cdk().validateString)(properties.algorithm)),errors.collect(cdk().propertyValidator("constantInitializationVector",cdk().validateString)(properties.constantInitializationVector)),errors.collect(cdk().propertyValidator("deviceId",cdk().validateString)(properties.deviceId)),errors.collect(cdk().propertyValidator("keyType",cdk().validateString)(properties.keyType)),errors.collect(cdk().propertyValidator("region",cdk().validateString)(properties.region)),errors.collect(cdk().propertyValidator("resourceId",cdk().validateString)(properties.resourceId)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("secretArn",cdk().validateString)(properties.secretArn)),errors.collect(cdk().propertyValidator("url",cdk().validateString)(properties.url)),errors.wrap('supplied properties not correct for "EncryptionProperty"')}function convertCfnFlowSourceEncryptionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowSourceEncryptionPropertyValidator(properties).assertSuccess(),{Algorithm:cdk().stringToCloudFormation(properties.algorithm),ConstantInitializationVector:cdk().stringToCloudFormation(properties.constantInitializationVector),DeviceId:cdk().stringToCloudFormation(properties.deviceId),KeyType:cdk().stringToCloudFormation(properties.keyType),Region:cdk().stringToCloudFormation(properties.region),ResourceId:cdk().stringToCloudFormation(properties.resourceId),RoleArn:cdk().stringToCloudFormation(properties.roleArn),SecretArn:cdk().stringToCloudFormation(properties.secretArn),Url:cdk().stringToCloudFormation(properties.url)}):properties}function CfnFlowSourceEncryptionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("algorithm","Algorithm",properties.Algorithm!=null?cfn_parse().FromCloudFormation.getString(properties.Algorithm):void 0),ret.addPropertyResult("constantInitializationVector","ConstantInitializationVector",properties.ConstantInitializationVector!=null?cfn_parse().FromCloudFormation.getString(properties.ConstantInitializationVector):void 0),ret.addPropertyResult("deviceId","DeviceId",properties.DeviceId!=null?cfn_parse().FromCloudFormation.getString(properties.DeviceId):void 0),ret.addPropertyResult("keyType","KeyType",properties.KeyType!=null?cfn_parse().FromCloudFormation.getString(properties.KeyType):void 0),ret.addPropertyResult("region","Region",properties.Region!=null?cfn_parse().FromCloudFormation.getString(properties.Region):void 0),ret.addPropertyResult("resourceId","ResourceId",properties.ResourceId!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceId):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("secretArn","SecretArn",properties.SecretArn!=null?cfn_parse().FromCloudFormation.getString(properties.SecretArn):void 0),ret.addPropertyResult("url","Url",properties.Url!=null?cfn_parse().FromCloudFormation.getString(properties.Url):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowSourceVpcInterfaceAttachmentPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("vpcInterfaceName",cdk().validateString)(properties.vpcInterfaceName)),errors.wrap('supplied properties not correct for "VpcInterfaceAttachmentProperty"')}function convertCfnFlowSourceVpcInterfaceAttachmentPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowSourceVpcInterfaceAttachmentPropertyValidator(properties).assertSuccess(),{VpcInterfaceName:cdk().stringToCloudFormation(properties.vpcInterfaceName)}):properties}function CfnFlowSourceVpcInterfaceAttachmentPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("vpcInterfaceName","VpcInterfaceName",properties.VpcInterfaceName!=null?cfn_parse().FromCloudFormation.getString(properties.VpcInterfaceName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowSourceGatewayBridgeSourcePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("bridgeArn",cdk().requiredValidator)(properties.bridgeArn)),errors.collect(cdk().propertyValidator("bridgeArn",cdk().validateString)(properties.bridgeArn)),errors.collect(cdk().propertyValidator("vpcInterfaceAttachment",CfnFlowSourceVpcInterfaceAttachmentPropertyValidator)(properties.vpcInterfaceAttachment)),errors.wrap('supplied properties not correct for "GatewayBridgeSourceProperty"')}function convertCfnFlowSourceGatewayBridgeSourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowSourceGatewayBridgeSourcePropertyValidator(properties).assertSuccess(),{BridgeArn:cdk().stringToCloudFormation(properties.bridgeArn),VpcInterfaceAttachment:convertCfnFlowSourceVpcInterfaceAttachmentPropertyToCloudFormation(properties.vpcInterfaceAttachment)}):properties}function CfnFlowSourceGatewayBridgeSourcePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("bridgeArn","BridgeArn",properties.BridgeArn!=null?cfn_parse().FromCloudFormation.getString(properties.BridgeArn):void 0),ret.addPropertyResult("vpcInterfaceAttachment","VpcInterfaceAttachment",properties.VpcInterfaceAttachment!=null?CfnFlowSourceVpcInterfaceAttachmentPropertyFromCloudFormation(properties.VpcInterfaceAttachment):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowSourcePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("decryption",CfnFlowSourceEncryptionPropertyValidator)(properties.decryption)),errors.collect(cdk().propertyValidator("description",cdk().requiredValidator)(properties.description)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("entitlementArn",cdk().validateString)(properties.entitlementArn)),errors.collect(cdk().propertyValidator("flowArn",cdk().validateString)(properties.flowArn)),errors.collect(cdk().propertyValidator("gatewayBridgeSource",CfnFlowSourceGatewayBridgeSourcePropertyValidator)(properties.gatewayBridgeSource)),errors.collect(cdk().propertyValidator("ingestPort",cdk().validateNumber)(properties.ingestPort)),errors.collect(cdk().propertyValidator("maxBitrate",cdk().validateNumber)(properties.maxBitrate)),errors.collect(cdk().propertyValidator("maxLatency",cdk().validateNumber)(properties.maxLatency)),errors.collect(cdk().propertyValidator("minLatency",cdk().validateNumber)(properties.minLatency)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("protocol",cdk().validateString)(properties.protocol)),errors.collect(cdk().propertyValidator("senderControlPort",cdk().validateNumber)(properties.senderControlPort)),errors.collect(cdk().propertyValidator("senderIpAddress",cdk().validateString)(properties.senderIpAddress)),errors.collect(cdk().propertyValidator("sourceListenerAddress",cdk().validateString)(properties.sourceListenerAddress)),errors.collect(cdk().propertyValidator("sourceListenerPort",cdk().validateNumber)(properties.sourceListenerPort)),errors.collect(cdk().propertyValidator("streamId",cdk().validateString)(properties.streamId)),errors.collect(cdk().propertyValidator("vpcInterfaceName",cdk().validateString)(properties.vpcInterfaceName)),errors.collect(cdk().propertyValidator("whitelistCidr",cdk().validateString)(properties.whitelistCidr)),errors.wrap('supplied properties not correct for "CfnFlowSourceProps"')}function convertCfnFlowSourcePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowSourcePropsValidator(properties).assertSuccess(),{Decryption:convertCfnFlowSourceEncryptionPropertyToCloudFormation(properties.decryption),Description:cdk().stringToCloudFormation(properties.description),EntitlementArn:cdk().stringToCloudFormation(properties.entitlementArn),FlowArn:cdk().stringToCloudFormation(properties.flowArn),GatewayBridgeSource:convertCfnFlowSourceGatewayBridgeSourcePropertyToCloudFormation(properties.gatewayBridgeSource),IngestPort:cdk().numberToCloudFormation(properties.ingestPort),MaxBitrate:cdk().numberToCloudFormation(properties.maxBitrate),MaxLatency:cdk().numberToCloudFormation(properties.maxLatency),MinLatency:cdk().numberToCloudFormation(properties.minLatency),Name:cdk().stringToCloudFormation(properties.name),Protocol:cdk().stringToCloudFormation(properties.protocol),SenderControlPort:cdk().numberToCloudFormation(properties.senderControlPort),SenderIpAddress:cdk().stringToCloudFormation(properties.senderIpAddress),SourceListenerAddress:cdk().stringToCloudFormation(properties.sourceListenerAddress),SourceListenerPort:cdk().numberToCloudFormation(properties.sourceListenerPort),StreamId:cdk().stringToCloudFormation(properties.streamId),VpcInterfaceName:cdk().stringToCloudFormation(properties.vpcInterfaceName),WhitelistCidr:cdk().stringToCloudFormation(properties.whitelistCidr)}):properties}function CfnFlowSourcePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("decryption","Decryption",properties.Decryption!=null?CfnFlowSourceEncryptionPropertyFromCloudFormation(properties.Decryption):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("entitlementArn","EntitlementArn",properties.EntitlementArn!=null?cfn_parse().FromCloudFormation.getString(properties.EntitlementArn):void 0),ret.addPropertyResult("flowArn","FlowArn",properties.FlowArn!=null?cfn_parse().FromCloudFormation.getString(properties.FlowArn):void 0),ret.addPropertyResult("gatewayBridgeSource","GatewayBridgeSource",properties.GatewayBridgeSource!=null?CfnFlowSourceGatewayBridgeSourcePropertyFromCloudFormation(properties.GatewayBridgeSource):void 0),ret.addPropertyResult("ingestPort","IngestPort",properties.IngestPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.IngestPort):void 0),ret.addPropertyResult("maxBitrate","MaxBitrate",properties.MaxBitrate!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxBitrate):void 0),ret.addPropertyResult("maxLatency","MaxLatency",properties.MaxLatency!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxLatency):void 0),ret.addPropertyResult("minLatency","MinLatency",properties.MinLatency!=null?cfn_parse().FromCloudFormation.getNumber(properties.MinLatency):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse().FromCloudFormation.getString(properties.Protocol):void 0),ret.addPropertyResult("senderControlPort","SenderControlPort",properties.SenderControlPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.SenderControlPort):void 0),ret.addPropertyResult("senderIpAddress","SenderIpAddress",properties.SenderIpAddress!=null?cfn_parse().FromCloudFormation.getString(properties.SenderIpAddress):void 0),ret.addPropertyResult("sourceListenerAddress","SourceListenerAddress",properties.SourceListenerAddress!=null?cfn_parse().FromCloudFormation.getString(properties.SourceListenerAddress):void 0),ret.addPropertyResult("sourceListenerPort","SourceListenerPort",properties.SourceListenerPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.SourceListenerPort):void 0),ret.addPropertyResult("streamId","StreamId",properties.StreamId!=null?cfn_parse().FromCloudFormation.getString(properties.StreamId):void 0),ret.addPropertyResult("vpcInterfaceName","VpcInterfaceName",properties.VpcInterfaceName!=null?cfn_parse().FromCloudFormation.getString(properties.VpcInterfaceName):void 0),ret.addPropertyResult("whitelistCidr","WhitelistCidr",properties.WhitelistCidr!=null?cfn_parse().FromCloudFormation.getString(properties.WhitelistCidr):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnFlowVpcInterface extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_mediaconnect.CfnFlowVpcInterface",version:"2.234.1"};static CFN_RESOURCE_TYPE_NAME="AWS::MediaConnect::FlowVpcInterface";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnFlowVpcInterfacePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError("Unexpected IResolvable",scope);const ret=new CfnFlowVpcInterface(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnFlowVpcInterface(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnFlowVpcInterface.CFN_RESOURCE_TYPE_NAME}attrNetworkInterfaceIds;flowArn;name;roleArn;securityGroupIds;subnetId;constructor(scope,id,props){super(scope,id,{type:CfnFlowVpcInterface.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_mediaconnect_CfnFlowVpcInterfaceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnFlowVpcInterface),error}cdk().requireProperty(props,"flowArn",this),cdk().requireProperty(props,"name",this),cdk().requireProperty(props,"roleArn",this),cdk().requireProperty(props,"securityGroupIds",this),cdk().requireProperty(props,"subnetId",this),this.attrNetworkInterfaceIds=cdk().Token.asList(this.getAtt("NetworkInterfaceIds",cdk().ResolutionTypeHint.STRING_LIST)),this.flowArn=props.flowArn,this.name=props.name,this.roleArn=props.roleArn,this.securityGroupIds=props.securityGroupIds,this.subnetId=props.subnetId}get flowVpcInterfaceRef(){return{flowArn:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),flowVpcInterfaceName:cdk().Fn.select(1,cdk().Fn.split("|",this.ref))}}get cfnProperties(){return{flowArn:this.flowArn,name:this.name,roleArn:this.roleArn,securityGroupIds:this.securityGroupIds,subnetId:this.subnetId}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnFlowVpcInterface.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnFlowVpcInterfacePropsToCloudFormation(props)}}exports.CfnFlowVpcInterface=CfnFlowVpcInterface;function CfnFlowVpcInterfacePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("flowArn",cdk().requiredValidator)(properties.flowArn)),errors.collect(cdk().propertyValidator("flowArn",cdk().validateString)(properties.flowArn)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("securityGroupIds",cdk().requiredValidator)(properties.securityGroupIds)),errors.collect(cdk().propertyValidator("securityGroupIds",cdk().listValidator(cdk().validateString))(properties.securityGroupIds)),errors.collect(cdk().propertyValidator("subnetId",cdk().requiredValidator)(properties.subnetId)),errors.collect(cdk().propertyValidator("subnetId",cdk().validateString)(properties.subnetId)),errors.wrap('supplied properties not correct for "CfnFlowVpcInterfaceProps"')}function convertCfnFlowVpcInterfacePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowVpcInterfacePropsValidator(properties).assertSuccess(),{FlowArn:cdk().stringToCloudFormation(properties.flowArn),Name:cdk().stringToCloudFormation(properties.name),RoleArn:cdk().stringToCloudFormation(properties.roleArn),SecurityGroupIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.securityGroupIds),SubnetId:cdk().stringToCloudFormation(properties.subnetId)}):properties}function CfnFlowVpcInterfacePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("flowArn","FlowArn",properties.FlowArn!=null?cfn_parse().FromCloudFormation.getString(properties.FlowArn):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("securityGroupIds","SecurityGroupIds",properties.SecurityGroupIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SecurityGroupIds):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse().FromCloudFormation.getString(properties.SubnetId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnGateway extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_mediaconnect.CfnGateway",version:"2.234.1"};static CFN_RESOURCE_TYPE_NAME="AWS::MediaConnect::Gateway";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnGatewayPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError("Unexpected IResolvable",scope);const ret=new CfnGateway(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnGateway(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnGateway.CFN_RESOURCE_TYPE_NAME}static arnForGateway(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_mediaconnect_IGatewayRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForGateway),error}return resource.gatewayRef.gatewayArn}attrGatewayArn;attrGatewayState;egressCidrBlocks;name;networks;constructor(scope,id,props){super(scope,id,{type:CfnGateway.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_mediaconnect_CfnGatewayProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnGateway),error}cdk().requireProperty(props,"egressCidrBlocks",this),cdk().requireProperty(props,"name",this),cdk().requireProperty(props,"networks",this),this.attrGatewayArn=cdk().Token.asString(this.getAtt("GatewayArn",cdk().ResolutionTypeHint.STRING)),this.attrGatewayState=cdk().Token.asString(this.getAtt("GatewayState",cdk().ResolutionTypeHint.STRING)),this.egressCidrBlocks=props.egressCidrBlocks,this.name=props.name,this.networks=props.networks}get gatewayRef(){return{gatewayArn:this.ref}}get cfnProperties(){return{egressCidrBlocks:this.egressCidrBlocks,name:this.name,networks:this.networks}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnGateway.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnGatewayPropsToCloudFormation(props)}}exports.CfnGateway=CfnGateway;function CfnGatewayGatewayNetworkPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("cidrBlock",cdk().requiredValidator)(properties.cidrBlock)),errors.collect(cdk().propertyValidator("cidrBlock",cdk().validateString)(properties.cidrBlock)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "GatewayNetworkProperty"')}function convertCfnGatewayGatewayNetworkPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGatewayGatewayNetworkPropertyValidator(properties).assertSuccess(),{CidrBlock:cdk().stringToCloudFormation(properties.cidrBlock),Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnGatewayGatewayNetworkPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("cidrBlock","CidrBlock",properties.CidrBlock!=null?cfn_parse().FromCloudFormation.getString(properties.CidrBlock):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("egressCidrBlocks",cdk().requiredValidator)(properties.egressCidrBlocks)),errors.collect(cdk().propertyValidator("egressCidrBlocks",cdk().listValidator(cdk().validateString))(properties.egressCidrBlocks)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("networks",cdk().requiredValidator)(properties.networks)),errors.collect(cdk().propertyValidator("networks",cdk().listValidator(CfnGatewayGatewayNetworkPropertyValidator))(properties.networks)),errors.wrap('supplied properties not correct for "CfnGatewayProps"')}function convertCfnGatewayPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGatewayPropsValidator(properties).assertSuccess(),{EgressCidrBlocks:cdk().listMapper(cdk().stringToCloudFormation)(properties.egressCidrBlocks),Name:cdk().stringToCloudFormation(properties.name),Networks:cdk().listMapper(convertCfnGatewayGatewayNetworkPropertyToCloudFormation)(properties.networks)}):properties}function CfnGatewayPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("egressCidrBlocks","EgressCidrBlocks",properties.EgressCidrBlocks!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.EgressCidrBlocks):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("networks","Networks",properties.Networks!=null?cfn_parse().FromCloudFormation.getArray(CfnGatewayGatewayNetworkPropertyFromCloudFormation)(properties.Networks):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnRouterInput extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_mediaconnect.CfnRouterInput",version:"2.234.1"};static CFN_RESOURCE_TYPE_NAME="AWS::MediaConnect::RouterInput";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnRouterInputPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError("Unexpected IResolvable",scope);const ret=new CfnRouterInput(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnRouterInput(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnRouterInput.CFN_RESOURCE_TYPE_NAME}static arnForRouterInput(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_mediaconnect_IRouterInputRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForRouterInput),error}return resource.routerInputRef.routerInputArn}attrArn;attrCreatedAt;attrId;attrInputType;attrIpAddress;attrMaintenanceType;attrRoutedOutputs;attrState;attrUpdatedAt;availabilityZone;cdkTagManager;configuration;maintenanceConfiguration;maximumBitrate;name;regionName;routingScope;tags;tier;transitEncryption;constructor(scope,id,props){super(scope,id,{type:CfnRouterInput.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_mediaconnect_CfnRouterInputProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnRouterInput),error}cdk().requireProperty(props,"configuration",this),cdk().requireProperty(props,"maximumBitrate",this),cdk().requireProperty(props,"name",this),cdk().requireProperty(props,"routingScope",this),cdk().requireProperty(props,"tier",this),this.attrArn=cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING)),this.attrCreatedAt=cdk().Token.asString(this.getAtt("CreatedAt",cdk().ResolutionTypeHint.STRING)),this.attrId=cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING)),this.attrInputType=cdk().Token.asString(this.getAtt("InputType",cdk().ResolutionTypeHint.STRING)),this.attrIpAddress=cdk().Token.asString(this.getAtt("IpAddress",cdk().ResolutionTypeHint.STRING)),this.attrMaintenanceType=cdk().Token.asString(this.getAtt("MaintenanceType",cdk().ResolutionTypeHint.STRING)),this.attrRoutedOutputs=cdk().Token.asNumber(this.getAtt("RoutedOutputs",cdk().ResolutionTypeHint.NUMBER)),this.attrState=cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING)),this.attrUpdatedAt=cdk().Token.asString(this.getAtt("UpdatedAt",cdk().ResolutionTypeHint.STRING)),this.availabilityZone=props.availabilityZone,this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::MediaConnect::RouterInput",void 0,{tagPropertyName:"tags"}),this.configuration=props.configuration,this.maintenanceConfiguration=props.maintenanceConfiguration,this.maximumBitrate=props.maximumBitrate,this.name=props.name,this.regionName=props.regionName,this.routingScope=props.routingScope,this.tags=props.tags,this.tier=props.tier,this.transitEncryption=props.transitEncryption}get routerInputRef(){return{routerInputArn:this.ref}}get cfnProperties(){return{availabilityZone:this.availabilityZone,tags:this.cdkTagManager.renderTags(this.tags),configuration:this.configuration,maintenanceConfiguration:this.maintenanceConfiguration,maximumBitrate:this.maximumBitrate,name:this.name,regionName:this.regionName,routingScope:this.routingScope,tier:this.tier,transitEncryption:this.transitEncryption}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnRouterInput.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnRouterInputPropsToCloudFormation(props)}}exports.CfnRouterInput=CfnRouterInput;function CfnRouterInputRtpRouterInputConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("forwardErrorCorrection",cdk().validateString)(properties.forwardErrorCorrection)),errors.collect(cdk().propertyValidator("port",cdk().requiredValidator)(properties.port)),errors.collect(cdk().propertyValidator("port",cdk().validateNumber)(properties.port)),errors.wrap('supplied properties not correct for "RtpRouterInputConfigurationProperty"')}function convertCfnRouterInputRtpRouterInputConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterInputRtpRouterInputConfigurationPropertyValidator(properties).assertSuccess(),{ForwardErrorCorrection:cdk().stringToCloudFormation(properties.forwardErrorCorrection),Port:cdk().numberToCloudFormation(properties.port)}):properties}function CfnRouterInputRtpRouterInputConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("forwardErrorCorrection","ForwardErrorCorrection",properties.ForwardErrorCorrection!=null?cfn_parse().FromCloudFormation.getString(properties.ForwardErrorCorrection):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse().FromCloudFormation.getNumber(properties.Port):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterInputRistRouterInputConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("port",cdk().requiredValidator)(properties.port)),errors.collect(cdk().propertyValidator("port",cdk().validateNumber)(properties.port)),errors.collect(cdk().propertyValidator("recoveryLatencyMilliseconds",cdk().requiredValidator)(properties.recoveryLatencyMilliseconds)),errors.collect(cdk().propertyValidator("recoveryLatencyMilliseconds",cdk().validateNumber)(properties.recoveryLatencyMilliseconds)),errors.wrap('supplied properties not correct for "RistRouterInputConfigurationProperty"')}function convertCfnRouterInputRistRouterInputConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterInputRistRouterInputConfigurationPropertyValidator(properties).assertSuccess(),{Port:cdk().numberToCloudFormation(properties.port),RecoveryLatencyMilliseconds:cdk().numberToCloudFormation(properties.recoveryLatencyMilliseconds)}):properties}function CfnRouterInputRistRouterInputConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse().FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("recoveryLatencyMilliseconds","RecoveryLatencyMilliseconds",properties.RecoveryLatencyMilliseconds!=null?cfn_parse().FromCloudFormation.getNumber(properties.RecoveryLatencyMilliseconds):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterInputSecretsManagerEncryptionKeyConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("secretArn",cdk().requiredValidator)(properties.secretArn)),errors.collect(cdk().propertyValidator("secretArn",cdk().validateString)(properties.secretArn)),errors.wrap('supplied properties not correct for "SecretsManagerEncryptionKeyConfigurationProperty"')}function convertCfnRouterInputSecretsManagerEncryptionKeyConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterInputSecretsManagerEncryptionKeyConfigurationPropertyValidator(properties).assertSuccess(),{RoleArn:cdk().stringToCloudFormation(properties.roleArn),SecretArn:cdk().stringToCloudFormation(properties.secretArn)}):properties}function CfnRouterInputSecretsManagerEncryptionKeyConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("secretArn","SecretArn",properties.SecretArn!=null?cfn_parse().FromCloudFormation.getString(properties.SecretArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterInputSrtDecryptionConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("encryptionKey",cdk().requiredValidator)(properties.encryptionKey)),errors.collect(cdk().propertyValidator("encryptionKey",CfnRouterInputSecretsManagerEncryptionKeyConfigurationPropertyValidator)(properties.encryptionKey)),errors.wrap('supplied properties not correct for "SrtDecryptionConfigurationProperty"')}function convertCfnRouterInputSrtDecryptionConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterInputSrtDecryptionConfigurationPropertyValidator(properties).assertSuccess(),{EncryptionKey:convertCfnRouterInputSecretsManagerEncryptionKeyConfigurationPropertyToCloudFormation(properties.encryptionKey)}):properties}function CfnRouterInputSrtDecryptionConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("encryptionKey","EncryptionKey",properties.EncryptionKey!=null?CfnRouterInputSecretsManagerEncryptionKeyConfigurationPropertyFromCloudFormation(properties.EncryptionKey):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterInputSrtListenerRouterInputConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("decryptionConfiguration",CfnRouterInputSrtDecryptionConfigurationPropertyValidator)(properties.decryptionConfiguration)),errors.collect(cdk().propertyValidator("minimumLatencyMilliseconds",cdk().requiredValidator)(properties.minimumLatencyMilliseconds)),errors.collect(cdk().propertyValidator("minimumLatencyMilliseconds",cdk().validateNumber)(properties.minimumLatencyMilliseconds)),errors.collect(cdk().propertyValidator("port",cdk().requiredValidator)(properties.port)),errors.collect(cdk().propertyValidator("port",cdk().validateNumber)(properties.port)),errors.wrap('supplied properties not correct for "SrtListenerRouterInputConfigurationProperty"')}function convertCfnRouterInputSrtListenerRouterInputConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterInputSrtListenerRouterInputConfigurationPropertyValidator(properties).assertSuccess(),{DecryptionConfiguration:convertCfnRouterInputSrtDecryptionConfigurationPropertyToCloudFormation(properties.decryptionConfiguration),MinimumLatencyMilliseconds:cdk().numberToCloudFormation(properties.minimumLatencyMilliseconds),Port:cdk().numberToCloudFormation(properties.port)}):properties}function CfnRouterInputSrtListenerRouterInputConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("decryptionConfiguration","DecryptionConfiguration",properties.DecryptionConfiguration!=null?CfnRouterInputSrtDecryptionConfigurationPropertyFromCloudFormation(properties.DecryptionConfiguration):void 0),ret.addPropertyResult("minimumLatencyMilliseconds","MinimumLatencyMilliseconds",properties.MinimumLatencyMilliseconds!=null?cfn_parse().FromCloudFormation.getNumber(properties.MinimumLatencyMilliseconds):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse().FromCloudFormation.getNumber(properties.Port):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterInputSrtCallerRouterInputConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("decryptionConfiguration",CfnRouterInputSrtDecryptionConfigurationPropertyValidator)(properties.decryptionConfiguration)),errors.collect(cdk().propertyValidator("minimumLatencyMilliseconds",cdk().requiredValidator)(properties.minimumLatencyMilliseconds)),errors.collect(cdk().propertyValidator("minimumLatencyMilliseconds",cdk().validateNumber)(properties.minimumLatencyMilliseconds)),errors.collect(cdk().propertyValidator("sourceAddress",cdk().requiredValidator)(properties.sourceAddress)),errors.collect(cdk().propertyValidator("sourceAddress",cdk().validateString)(properties.sourceAddress)),errors.collect(cdk().propertyValidator("sourcePort",cdk().requiredValidator)(properties.sourcePort)),errors.collect(cdk().propertyValidator("sourcePort",cdk().validateNumber)(properties.sourcePort)),errors.collect(cdk().propertyValidator("streamId",cdk().validateString)(properties.streamId)),errors.wrap('supplied properties not correct for "SrtCallerRouterInputConfigurationProperty"')}function convertCfnRouterInputSrtCallerRouterInputConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterInputSrtCallerRouterInputConfigurationPropertyValidator(properties).assertSuccess(),{DecryptionConfiguration:convertCfnRouterInputSrtDecryptionConfigurationPropertyToCloudFormation(properties.decryptionConfiguration),MinimumLatencyMilliseconds:cdk().numberToCloudFormation(properties.minimumLatencyMilliseconds),SourceAddress:cdk().stringToCloudFormation(properties.sourceAddress),SourcePort:cdk().numberToCloudFormation(properties.sourcePort),StreamId:cdk().stringToCloudFormation(properties.streamId)}):properties}function CfnRouterInputSrtCallerRouterInputConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("decryptionConfiguration","DecryptionConfiguration",properties.DecryptionConfiguration!=null?CfnRouterInputSrtDecryptionConfigurationPropertyFromCloudFormation(properties.DecryptionConfiguration):void 0),ret.addPropertyResult("minimumLatencyMilliseconds","MinimumLatencyMilliseconds",properties.MinimumLatencyMilliseconds!=null?cfn_parse().FromCloudFormation.getNumber(properties.MinimumLatencyMilliseconds):void 0),ret.addPropertyResult("sourceAddress","SourceAddress",properties.SourceAddress!=null?cfn_parse().FromCloudFormation.getString(properties.SourceAddress):void 0),ret.addPropertyResult("sourcePort","SourcePort",properties.SourcePort!=null?cfn_parse().FromCloudFormation.getNumber(properties.SourcePort):void 0),ret.addPropertyResult("streamId","StreamId",properties.StreamId!=null?cfn_parse().FromCloudFormation.getString(properties.StreamId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterInputRouterInputProtocolConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("rist",CfnRouterInputRistRouterInputConfigurationPropertyValidator)(properties.rist)),errors.collect(cdk().propertyValidator("rtp",CfnRouterInputRtpRouterInputConfigurationPropertyValidator)(properties.rtp)),errors.collect(cdk().propertyValidator("srtCaller",CfnRouterInputSrtCallerRouterInputConfigurationPropertyValidator)(properties.srtCaller)),errors.collect(cdk().propertyValidator("srtListener",CfnRouterInputSrtListenerRouterInputConfigurationPropertyValidator)(properties.srtListener)),errors.wrap('supplied properties not correct for "RouterInputProtocolConfigurationProperty"')}function convertCfnRouterInputRouterInputProtocolConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterInputRouterInputProtocolConfigurationPropertyValidator(properties).assertSuccess(),{Rist:convertCfnRouterInputRistRouterInputConfigurationPropertyToCloudFormation(properties.rist),Rtp:convertCfnRouterInputRtpRouterInputConfigurationPropertyToCloudFormation(properties.rtp),SrtCaller:convertCfnRouterInputSrtCallerRouterInputConfigurationPropertyToCloudFormation(properties.srtCaller),SrtListener:convertCfnRouterInputSrtListenerRouterInputConfigurationPropertyToCloudFormation(properties.srtListener)}):properties}function CfnRouterInputRouterInputProtocolConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("rist","Rist",properties.Rist!=null?CfnRouterInputRistRouterInputConfigurationPropertyFromCloudFormation(properties.Rist):void 0),ret.addPropertyResult("rtp","Rtp",properties.Rtp!=null?CfnRouterInputRtpRouterInputConfigurationPropertyFromCloudFormation(properties.Rtp):void 0),ret.addPropertyResult("srtCaller","SrtCaller",properties.SrtCaller!=null?CfnRouterInputSrtCallerRouterInputConfigurationPropertyFromCloudFormation(properties.SrtCaller):void 0),ret.addPropertyResult("srtListener","SrtListener",properties.SrtListener!=null?CfnRouterInputSrtListenerRouterInputConfigurationPropertyFromCloudFormation(properties.SrtListener):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterInputStandardRouterInputConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("networkInterfaceArn",cdk().requiredValidator)(properties.networkInterfaceArn)),errors.collect(cdk().propertyValidator("networkInterfaceArn",cdk().validateString)(properties.networkInterfaceArn)),errors.collect(cdk().propertyValidator("protocol",cdk().validateString)(properties.protocol)),errors.collect(cdk().propertyValidator("protocolConfiguration",cdk().requiredValidator)(properties.protocolConfiguration)),errors.collect(cdk().propertyValidator("protocolConfiguration",CfnRouterInputRouterInputProtocolConfigurationPropertyValidator)(properties.protocolConfiguration)),errors.wrap('supplied properties not correct for "StandardRouterInputConfigurationProperty"')}function convertCfnRouterInputStandardRouterInputConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterInputStandardRouterInputConfigurationPropertyValidator(properties).assertSuccess(),{NetworkInterfaceArn:cdk().stringToCloudFormation(properties.networkInterfaceArn),Protocol:cdk().stringToCloudFormation(properties.protocol),ProtocolConfiguration:convertCfnRouterInputRouterInputProtocolConfigurationPropertyToCloudFormation(properties.protocolConfiguration)}):properties}function CfnRouterInputStandardRouterInputConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("networkInterfaceArn","NetworkInterfaceArn",properties.NetworkInterfaceArn!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkInterfaceArn):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse().FromCloudFormation.getString(properties.Protocol):void 0),ret.addPropertyResult("protocolConfiguration","ProtocolConfiguration",properties.ProtocolConfiguration!=null?CfnRouterInputRouterInputProtocolConfigurationPropertyFromCloudFormation(properties.ProtocolConfiguration):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterInputFailoverRouterInputProtocolConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("rist",CfnRouterInputRistRouterInputConfigurationPropertyValidator)(properties.rist)),errors.collect(cdk().propertyValidator("rtp",CfnRouterInputRtpRouterInputConfigurationPropertyValidator)(properties.rtp)),errors.collect(cdk().propertyValidator("srtCaller",CfnRouterInputSrtCallerRouterInputConfigurationPropertyValidator)(properties.srtCaller)),errors.collect(cdk().propertyValidator("srtListener",CfnRouterInputSrtListenerRouterInputConfigurationPropertyValidator)(properties.srtListener)),errors.wrap('supplied properties not correct for "FailoverRouterInputProtocolConfigurationProperty"')}function convertCfnRouterInputFailoverRouterInputProtocolConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterInputFailoverRouterInputProtocolConfigurationPropertyValidator(properties).assertSuccess(),{Rist:convertCfnRouterInputRistRouterInputConfigurationPropertyToCloudFormation(properties.rist),Rtp:convertCfnRouterInputRtpRouterInputConfigurationPropertyToCloudFormation(properties.rtp),SrtCaller:convertCfnRouterInputSrtCallerRouterInputConfigurationPropertyToCloudFormation(properties.srtCaller),SrtListener:convertCfnRouterInputSrtListenerRouterInputConfigurationPropertyToCloudFormation(properties.srtListener)}):properties}function CfnRouterInputFailoverRouterInputProtocolConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("rist","Rist",properties.Rist!=null?CfnRouterInputRistRouterInputConfigurationPropertyFromCloudFormation(properties.Rist):void 0),ret.addPropertyResult("rtp","Rtp",properties.Rtp!=null?CfnRouterInputRtpRouterInputConfigurationPropertyFromCloudFormation(properties.Rtp):void 0),ret.addPropertyResult("srtCaller","SrtCaller",properties.SrtCaller!=null?CfnRouterInputSrtCallerRouterInputConfigurationPropertyFromCloudFormation(properties.SrtCaller):void 0),ret.addPropertyResult("srtListener","SrtListener",properties.SrtListener!=null?CfnRouterInputSrtListenerRouterInputConfigurationPropertyFromCloudFormation(properties.SrtListener):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterInputFailoverRouterInputConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("networkInterfaceArn",cdk().requiredValidator)(properties.networkInterfaceArn)),errors.collect(cdk().propertyValidator("networkInterfaceArn",cdk().validateString)(properties.networkInterfaceArn)),errors.collect(cdk().propertyValidator("primarySourceIndex",cdk().validateNumber)(properties.primarySourceIndex)),errors.collect(cdk().propertyValidator("protocolConfigurations",cdk().requiredValidator)(properties.protocolConfigurations)),errors.collect(cdk().propertyValidator("protocolConfigurations",cdk().listValidator(CfnRouterInputFailoverRouterInputProtocolConfigurationPropertyValidator))(properties.protocolConfigurations)),errors.collect(cdk().propertyValidator("sourcePriorityMode",cdk().requiredValidator)(properties.sourcePriorityMode)),errors.collect(cdk().propertyValidator("sourcePriorityMode",cdk().validateString)(properties.sourcePriorityMode)),errors.wrap('supplied properties not correct for "FailoverRouterInputConfigurationProperty"')}function convertCfnRouterInputFailoverRouterInputConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterInputFailoverRouterInputConfigurationPropertyValidator(properties).assertSuccess(),{NetworkInterfaceArn:cdk().stringToCloudFormation(properties.networkInterfaceArn),PrimarySourceIndex:cdk().numberToCloudFormation(properties.primarySourceIndex),ProtocolConfigurations:cdk().listMapper(convertCfnRouterInputFailoverRouterInputProtocolConfigurationPropertyToCloudFormation)(properties.protocolConfigurations),SourcePriorityMode:cdk().stringToCloudFormation(properties.sourcePriorityMode)}):properties}function CfnRouterInputFailoverRouterInputConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("networkInterfaceArn","NetworkInterfaceArn",properties.NetworkInterfaceArn!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkInterfaceArn):void 0),ret.addPropertyResult("primarySourceIndex","PrimarySourceIndex",properties.PrimarySourceIndex!=null?cfn_parse().FromCloudFormation.getNumber(properties.PrimarySourceIndex):void 0),ret.addPropertyResult("protocolConfigurations","ProtocolConfigurations",properties.ProtocolConfigurations!=null?cfn_parse().FromCloudFormation.getArray(CfnRouterInputFailoverRouterInputProtocolConfigurationPropertyFromCloudFormation)(properties.ProtocolConfigurations):void 0),ret.addPropertyResult("sourcePriorityMode","SourcePriorityMode",properties.SourcePriorityMode!=null?cfn_parse().FromCloudFormation.getString(properties.SourcePriorityMode):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterInputMergeRouterInputProtocolConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("rist",CfnRouterInputRistRouterInputConfigurationPropertyValidator)(properties.rist)),errors.collect(cdk().propertyValidator("rtp",CfnRouterInputRtpRouterInputConfigurationPropertyValidator)(properties.rtp)),errors.wrap('supplied properties not correct for "MergeRouterInputProtocolConfigurationProperty"')}function convertCfnRouterInputMergeRouterInputProtocolConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterInputMergeRouterInputProtocolConfigurationPropertyValidator(properties).assertSuccess(),{Rist:convertCfnRouterInputRistRouterInputConfigurationPropertyToCloudFormation(properties.rist),Rtp:convertCfnRouterInputRtpRouterInputConfigurationPropertyToCloudFormation(properties.rtp)}):properties}function CfnRouterInputMergeRouterInputProtocolConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("rist","Rist",properties.Rist!=null?CfnRouterInputRistRouterInputConfigurationPropertyFromCloudFormation(properties.Rist):void 0),ret.addPropertyResult("rtp","Rtp",properties.Rtp!=null?CfnRouterInputRtpRouterInputConfigurationPropertyFromCloudFormation(properties.Rtp):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterInputMergeRouterInputConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("mergeRecoveryWindowMilliseconds",cdk().requiredValidator)(properties.mergeRecoveryWindowMilliseconds)),errors.collect(cdk().propertyValidator("mergeRecoveryWindowMilliseconds",cdk().validateNumber)(properties.mergeRecoveryWindowMilliseconds)),errors.collect(cdk().propertyValidator("networkInterfaceArn",cdk().requiredValidator)(properties.networkInterfaceArn)),errors.collect(cdk().propertyValidator("networkInterfaceArn",cdk().validateString)(properties.networkInterfaceArn)),errors.collect(cdk().propertyValidator("protocolConfigurations",cdk().requiredValidator)(properties.protocolConfigurations)),errors.collect(cdk().propertyValidator("protocolConfigurations",cdk().listValidator(CfnRouterInputMergeRouterInputProtocolConfigurationPropertyValidator))(properties.protocolConfigurations)),errors.wrap('supplied properties not correct for "MergeRouterInputConfigurationProperty"')}function convertCfnRouterInputMergeRouterInputConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterInputMergeRouterInputConfigurationPropertyValidator(properties).assertSuccess(),{MergeRecoveryWindowMilliseconds:cdk().numberToCloudFormation(properties.mergeRecoveryWindowMilliseconds),NetworkInterfaceArn:cdk().stringToCloudFormation(properties.networkInterfaceArn),ProtocolConfigurations:cdk().listMapper(convertCfnRouterInputMergeRouterInputProtocolConfigurationPropertyToCloudFormation)(properties.protocolConfigurations)}):properties}function CfnRouterInputMergeRouterInputConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("mergeRecoveryWindowMilliseconds","MergeRecoveryWindowMilliseconds",properties.MergeRecoveryWindowMilliseconds!=null?cfn_parse().FromCloudFormation.getNumber(properties.MergeRecoveryWindowMilliseconds):void 0),ret.addPropertyResult("networkInterfaceArn","NetworkInterfaceArn",properties.NetworkInterfaceArn!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkInterfaceArn):void 0),ret.addPropertyResult("protocolConfigurations","ProtocolConfigurations",properties.ProtocolConfigurations!=null?cfn_parse().FromCloudFormation.getArray(CfnRouterInputMergeRouterInputProtocolConfigurationPropertyFromCloudFormation)(properties.ProtocolConfigurations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterInputFlowTransitEncryptionKeyConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("automatic",cdk().validateObject)(properties.automatic)),errors.collect(cdk().propertyValidator("secretsManager",CfnRouterInputSecretsManagerEncryptionKeyConfigurationPropertyValidator)(properties.secretsManager)),errors.wrap('supplied properties not correct for "FlowTransitEncryptionKeyConfigurationProperty"')}function convertCfnRouterInputFlowTransitEncryptionKeyConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterInputFlowTransitEncryptionKeyConfigurationPropertyValidator(properties).assertSuccess(),{Automatic:cdk().objectToCloudFormation(properties.automatic),SecretsManager:convertCfnRouterInputSecretsManagerEncryptionKeyConfigurationPropertyToCloudFormation(properties.secretsManager)}):properties}function CfnRouterInputFlowTransitEncryptionKeyConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("automatic","Automatic",properties.Automatic!=null?cfn_parse().FromCloudFormation.getAny(properties.Automatic):void 0),ret.addPropertyResult("secretsManager","SecretsManager",properties.SecretsManager!=null?CfnRouterInputSecretsManagerEncryptionKeyConfigurationPropertyFromCloudFormation(properties.SecretsManager):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterInputFlowTransitEncryptionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("encryptionKeyConfiguration",cdk().requiredValidator)(properties.encryptionKeyConfiguration)),errors.collect(cdk().propertyValidator("encryptionKeyConfiguration",CfnRouterInputFlowTransitEncryptionKeyConfigurationPropertyValidator)(properties.encryptionKeyConfiguration)),errors.collect(cdk().propertyValidator("encryptionKeyType",cdk().validateString)(properties.encryptionKeyType)),errors.wrap('supplied properties not correct for "FlowTransitEncryptionProperty"')}function convertCfnRouterInputFlowTransitEncryptionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterInputFlowTransitEncryptionPropertyValidator(properties).assertSuccess(),{EncryptionKeyConfiguration:convertCfnRouterInputFlowTransitEncryptionKeyConfigurationPropertyToCloudFormation(properties.encryptionKeyConfiguration),EncryptionKeyType:cdk().stringToCloudFormation(properties.encryptionKeyType)}):properties}function CfnRouterInputFlowTransitEncryptionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("encryptionKeyConfiguration","EncryptionKeyConfiguration",properties.EncryptionKeyConfiguration!=null?CfnRouterInputFlowTransitEncryptionKeyConfigurationPropertyFromCloudFormation(properties.EncryptionKeyConfiguration):void 0),ret.addPropertyResult("encryptionKeyType","EncryptionKeyType",properties.EncryptionKeyType!=null?cfn_parse().FromCloudFormation.getString(properties.EncryptionKeyType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterInputMediaConnectFlowRouterInputConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("flowArn",cdk().validateString)(properties.flowArn)),errors.collect(cdk().propertyValidator("flowOutputArn",cdk().validateString)(properties.flowOutputArn)),errors.collect(cdk().propertyValidator("sourceTransitDecryption",cdk().requiredValidator)(properties.sourceTransitDecryption)),errors.collect(cdk().propertyValidator("sourceTransitDecryption",CfnRouterInputFlowTransitEncryptionPropertyValidator)(properties.sourceTransitDecryption)),errors.wrap('supplied properties not correct for "MediaConnectFlowRouterInputConfigurationProperty"')}function convertCfnRouterInputMediaConnectFlowRouterInputConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterInputMediaConnectFlowRouterInputConfigurationPropertyValidator(properties).assertSuccess(),{FlowArn:cdk().stringToCloudFormation(properties.flowArn),FlowOutputArn:cdk().stringToCloudFormation(properties.flowOutputArn),SourceTransitDecryption:convertCfnRouterInputFlowTransitEncryptionPropertyToCloudFormation(properties.sourceTransitDecryption)}):properties}function CfnRouterInputMediaConnectFlowRouterInputConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("flowArn","FlowArn",properties.FlowArn!=null?cfn_parse().FromCloudFormation.getString(properties.FlowArn):void 0),ret.addPropertyResult("flowOutputArn","FlowOutputArn",properties.FlowOutputArn!=null?cfn_parse().FromCloudFormation.getString(properties.FlowOutputArn):void 0),ret.addPropertyResult("sourceTransitDecryption","SourceTransitDecryption",properties.SourceTransitDecryption!=null?CfnRouterInputFlowTransitEncryptionPropertyFromCloudFormation(properties.SourceTransitDecryption):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterInputRouterInputConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("failover",CfnRouterInputFailoverRouterInputConfigurationPropertyValidator)(properties.failover)),errors.collect(cdk().propertyValidator("mediaConnectFlow",CfnRouterInputMediaConnectFlowRouterInputConfigurationPropertyValidator)(properties.mediaConnectFlow)),errors.collect(cdk().propertyValidator("merge",CfnRouterInputMergeRouterInputConfigurationPropertyValidator)(properties.merge)),errors.collect(cdk().propertyValidator("standard",CfnRouterInputStandardRouterInputConfigurationPropertyValidator)(properties.standard)),errors.wrap('supplied properties not correct for "RouterInputConfigurationProperty"')}function convertCfnRouterInputRouterInputConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterInputRouterInputConfigurationPropertyValidator(properties).assertSuccess(),{Failover:convertCfnRouterInputFailoverRouterInputConfigurationPropertyToCloudFormation(properties.failover),MediaConnectFlow:convertCfnRouterInputMediaConnectFlowRouterInputConfigurationPropertyToCloudFormation(properties.mediaConnectFlow),Merge:convertCfnRouterInputMergeRouterInputConfigurationPropertyToCloudFormation(properties.merge),Standard:convertCfnRouterInputStandardRouterInputConfigurationPropertyToCloudFormation(properties.standard)}):properties}function CfnRouterInputRouterInputConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("failover","Failover",properties.Failover!=null?CfnRouterInputFailoverRouterInputConfigurationPropertyFromCloudFormation(properties.Failover):void 0),ret.addPropertyResult("mediaConnectFlow","MediaConnectFlow",properties.MediaConnectFlow!=null?CfnRouterInputMediaConnectFlowRouterInputConfigurationPropertyFromCloudFormation(properties.MediaConnectFlow):void 0),ret.addPropertyResult("merge","Merge",properties.Merge!=null?CfnRouterInputMergeRouterInputConfigurationPropertyFromCloudFormation(properties.Merge):void 0),ret.addPropertyResult("standard","Standard",properties.Standard!=null?CfnRouterInputStandardRouterInputConfigurationPropertyFromCloudFormation(properties.Standard):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterInputPreferredDayTimeMaintenanceConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("day",cdk().requiredValidator)(properties.day)),errors.collect(cdk().propertyValidator("day",cdk().validateString)(properties.day)),errors.collect(cdk().propertyValidator("time",cdk().requiredValidator)(properties.time)),errors.collect(cdk().propertyValidator("time",cdk().validateString)(properties.time)),errors.wrap('supplied properties not correct for "PreferredDayTimeMaintenanceConfigurationProperty"')}function convertCfnRouterInputPreferredDayTimeMaintenanceConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterInputPreferredDayTimeMaintenanceConfigurationPropertyValidator(properties).assertSuccess(),{Day:cdk().stringToCloudFormation(properties.day),Time:cdk().stringToCloudFormation(properties.time)}):properties}function CfnRouterInputPreferredDayTimeMaintenanceConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("day","Day",properties.Day!=null?cfn_parse().FromCloudFormation.getString(properties.Day):void 0),ret.addPropertyResult("time","Time",properties.Time!=null?cfn_parse().FromCloudFormation.getString(properties.Time):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterInputMaintenanceConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("default",cdk().validateObject)(properties.default)),errors.collect(cdk().propertyValidator("preferredDayTime",CfnRouterInputPreferredDayTimeMaintenanceConfigurationPropertyValidator)(properties.preferredDayTime)),errors.wrap('supplied properties not correct for "MaintenanceConfigurationProperty"')}function convertCfnRouterInputMaintenanceConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterInputMaintenanceConfigurationPropertyValidator(properties).assertSuccess(),{Default:cdk().objectToCloudFormation(properties.default),PreferredDayTime:convertCfnRouterInputPreferredDayTimeMaintenanceConfigurationPropertyToCloudFormation(properties.preferredDayTime)}):properties}function CfnRouterInputMaintenanceConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("default","Default",properties.Default!=null?cfn_parse().FromCloudFormation.getAny(properties.Default):void 0),ret.addPropertyResult("preferredDayTime","PreferredDayTime",properties.PreferredDayTime!=null?CfnRouterInputPreferredDayTimeMaintenanceConfigurationPropertyFromCloudFormation(properties.PreferredDayTime):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterInputRouterInputTransitEncryptionKeyConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("automatic",cdk().validateObject)(properties.automatic)),errors.collect(cdk().propertyValidator("secretsManager",CfnRouterInputSecretsManagerEncryptionKeyConfigurationPropertyValidator)(properties.secretsManager)),errors.wrap('supplied properties not correct for "RouterInputTransitEncryptionKeyConfigurationProperty"')}function convertCfnRouterInputRouterInputTransitEncryptionKeyConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterInputRouterInputTransitEncryptionKeyConfigurationPropertyValidator(properties).assertSuccess(),{Automatic:cdk().objectToCloudFormation(properties.automatic),SecretsManager:convertCfnRouterInputSecretsManagerEncryptionKeyConfigurationPropertyToCloudFormation(properties.secretsManager)}):properties}function CfnRouterInputRouterInputTransitEncryptionKeyConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("automatic","Automatic",properties.Automatic!=null?cfn_parse().FromCloudFormation.getAny(properties.Automatic):void 0),ret.addPropertyResult("secretsManager","SecretsManager",properties.SecretsManager!=null?CfnRouterInputSecretsManagerEncryptionKeyConfigurationPropertyFromCloudFormation(properties.SecretsManager):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterInputRouterInputTransitEncryptionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("encryptionKeyConfiguration",cdk().requiredValidator)(properties.encryptionKeyConfiguration)),errors.collect(cdk().propertyValidator("encryptionKeyConfiguration",CfnRouterInputRouterInputTransitEncryptionKeyConfigurationPropertyValidator)(properties.encryptionKeyConfiguration)),errors.collect(cdk().propertyValidator("encryptionKeyType",cdk().validateString)(properties.encryptionKeyType)),errors.wrap('supplied properties not correct for "RouterInputTransitEncryptionProperty"')}function convertCfnRouterInputRouterInputTransitEncryptionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterInputRouterInputTransitEncryptionPropertyValidator(properties).assertSuccess(),{EncryptionKeyConfiguration:convertCfnRouterInputRouterInputTransitEncryptionKeyConfigurationPropertyToCloudFormation(properties.encryptionKeyConfiguration),EncryptionKeyType:cdk().stringToCloudFormation(properties.encryptionKeyType)}):properties}function CfnRouterInputRouterInputTransitEncryptionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("encryptionKeyConfiguration","EncryptionKeyConfiguration",properties.EncryptionKeyConfiguration!=null?CfnRouterInputRouterInputTransitEncryptionKeyConfigurationPropertyFromCloudFormation(properties.EncryptionKeyConfiguration):void 0),ret.addPropertyResult("encryptionKeyType","EncryptionKeyType",properties.EncryptionKeyType!=null?cfn_parse().FromCloudFormation.getString(properties.EncryptionKeyType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterInputPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("availabilityZone",cdk().validateString)(properties.availabilityZone)),errors.collect(cdk().propertyValidator("configuration",cdk().requiredValidator)(properties.configuration)),errors.collect(cdk().propertyValidator("configuration",CfnRouterInputRouterInputConfigurationPropertyValidator)(properties.configuration)),errors.collect(cdk().propertyValidator("maintenanceConfiguration",CfnRouterInputMaintenanceConfigurationPropertyValidator)(properties.maintenanceConfiguration)),errors.collect(cdk().propertyValidator("maximumBitrate",cdk().requiredValidator)(properties.maximumBitrate)),errors.collect(cdk().propertyValidator("maximumBitrate",cdk().validateNumber)(properties.maximumBitrate)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("regionName",cdk().validateString)(properties.regionName)),errors.collect(cdk().propertyValidator("routingScope",cdk().requiredValidator)(properties.routingScope)),errors.collect(cdk().propertyValidator("routingScope",cdk().validateString)(properties.routingScope)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("tier",cdk().requiredValidator)(properties.tier)),errors.collect(cdk().propertyValidator("tier",cdk().validateString)(properties.tier)),errors.collect(cdk().propertyValidator("transitEncryption",CfnRouterInputRouterInputTransitEncryptionPropertyValidator)(properties.transitEncryption)),errors.wrap('supplied properties not correct for "CfnRouterInputProps"')}function convertCfnRouterInputPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterInputPropsValidator(properties).assertSuccess(),{AvailabilityZone:cdk().stringToCloudFormation(properties.availabilityZone),Configuration:convertCfnRouterInputRouterInputConfigurationPropertyToCloudFormation(properties.configuration),MaintenanceConfiguration:convertCfnRouterInputMaintenanceConfigurationPropertyToCloudFormation(properties.maintenanceConfiguration),MaximumBitrate:cdk().numberToCloudFormation(properties.maximumBitrate),Name:cdk().stringToCloudFormation(properties.name),RegionName:cdk().stringToCloudFormation(properties.regionName),RoutingScope:cdk().stringToCloudFormation(properties.routingScope),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),Tier:cdk().stringToCloudFormation(properties.tier),TransitEncryption:convertCfnRouterInputRouterInputTransitEncryptionPropertyToCloudFormation(properties.transitEncryption)}):properties}function CfnRouterInputPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse().FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("configuration","Configuration",properties.Configuration!=null?CfnRouterInputRouterInputConfigurationPropertyFromCloudFormation(properties.Configuration):void 0),ret.addPropertyResult("maintenanceConfiguration","MaintenanceConfiguration",properties.MaintenanceConfiguration!=null?CfnRouterInputMaintenanceConfigurationPropertyFromCloudFormation(properties.MaintenanceConfiguration):void 0),ret.addPropertyResult("maximumBitrate","MaximumBitrate",properties.MaximumBitrate!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaximumBitrate):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("regionName","RegionName",properties.RegionName!=null?cfn_parse().FromCloudFormation.getString(properties.RegionName):void 0),ret.addPropertyResult("routingScope","RoutingScope",properties.RoutingScope!=null?cfn_parse().FromCloudFormation.getString(properties.RoutingScope):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("tier","Tier",properties.Tier!=null?cfn_parse().FromCloudFormation.getString(properties.Tier):void 0),ret.addPropertyResult("transitEncryption","TransitEncryption",properties.TransitEncryption!=null?CfnRouterInputRouterInputTransitEncryptionPropertyFromCloudFormation(properties.TransitEncryption):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnRouterNetworkInterface extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_mediaconnect.CfnRouterNetworkInterface",version:"2.234.1"};static CFN_RESOURCE_TYPE_NAME="AWS::MediaConnect::RouterNetworkInterface";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnRouterNetworkInterfacePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError("Unexpected IResolvable",scope);const ret=new CfnRouterNetworkInterface(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnRouterNetworkInterface(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnRouterNetworkInterface.CFN_RESOURCE_TYPE_NAME}static arnForRouterNetworkInterface(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_mediaconnect_IRouterNetworkInterfaceRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForRouterNetworkInterface),error}return resource.routerNetworkInterfaceRef.routerNetworkInterfaceArn}attrArn;attrAssociatedInputCount;attrAssociatedOutputCount;attrCreatedAt;attrId;attrNetworkInterfaceType;attrState;attrUpdatedAt;cdkTagManager;configuration;name;regionName;tags;constructor(scope,id,props){super(scope,id,{type:CfnRouterNetworkInterface.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_mediaconnect_CfnRouterNetworkInterfaceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnRouterNetworkInterface),error}cdk().requireProperty(props,"configuration",this),cdk().requireProperty(props,"name",this),this.attrArn=cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING)),this.attrAssociatedInputCount=cdk().Token.asNumber(this.getAtt("AssociatedInputCount",cdk().ResolutionTypeHint.NUMBER)),this.attrAssociatedOutputCount=cdk().Token.asNumber(this.getAtt("AssociatedOutputCount",cdk().ResolutionTypeHint.NUMBER)),this.attrCreatedAt=cdk().Token.asString(this.getAtt("CreatedAt",cdk().ResolutionTypeHint.STRING)),this.attrId=cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING)),this.attrNetworkInterfaceType=cdk().Token.asString(this.getAtt("NetworkInterfaceType",cdk().ResolutionTypeHint.STRING)),this.attrState=cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING)),this.attrUpdatedAt=cdk().Token.asString(this.getAtt("UpdatedAt",cdk().ResolutionTypeHint.STRING)),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::MediaConnect::RouterNetworkInterface",void 0,{tagPropertyName:"tags"}),this.configuration=props.configuration,this.name=props.name,this.regionName=props.regionName,this.tags=props.tags}get routerNetworkInterfaceRef(){return{routerNetworkInterfaceArn:this.ref}}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this.tags),configuration:this.configuration,name:this.name,regionName:this.regionName}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnRouterNetworkInterface.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnRouterNetworkInterfacePropsToCloudFormation(props)}}exports.CfnRouterNetworkInterface=CfnRouterNetworkInterface;function CfnRouterNetworkInterfacePublicRouterNetworkInterfaceRulePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("cidr",cdk().requiredValidator)(properties.cidr)),errors.collect(cdk().propertyValidator("cidr",cdk().validateString)(properties.cidr)),errors.wrap('supplied properties not correct for "PublicRouterNetworkInterfaceRuleProperty"')}function convertCfnRouterNetworkInterfacePublicRouterNetworkInterfaceRulePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterNetworkInterfacePublicRouterNetworkInterfaceRulePropertyValidator(properties).assertSuccess(),{Cidr:cdk().stringToCloudFormation(properties.cidr)}):properties}function CfnRouterNetworkInterfacePublicRouterNetworkInterfaceRulePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("cidr","Cidr",properties.Cidr!=null?cfn_parse().FromCloudFormation.getString(properties.Cidr):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterNetworkInterfacePublicRouterNetworkInterfaceConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("allowRules",cdk().requiredValidator)(properties.allowRules)),errors.collect(cdk().propertyValidator("allowRules",cdk().listValidator(CfnRouterNetworkInterfacePublicRouterNetworkInterfaceRulePropertyValidator))(properties.allowRules)),errors.wrap('supplied properties not correct for "PublicRouterNetworkInterfaceConfigurationProperty"')}function convertCfnRouterNetworkInterfacePublicRouterNetworkInterfaceConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterNetworkInterfacePublicRouterNetworkInterfaceConfigurationPropertyValidator(properties).assertSuccess(),{AllowRules:cdk().listMapper(convertCfnRouterNetworkInterfacePublicRouterNetworkInterfaceRulePropertyToCloudFormation)(properties.allowRules)}):properties}function CfnRouterNetworkInterfacePublicRouterNetworkInterfaceConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("allowRules","AllowRules",properties.AllowRules!=null?cfn_parse().FromCloudFormation.getArray(CfnRouterNetworkInterfacePublicRouterNetworkInterfaceRulePropertyFromCloudFormation)(properties.AllowRules):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterNetworkInterfaceVpcRouterNetworkInterfaceConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("securityGroupIds",cdk().requiredValidator)(properties.securityGroupIds)),errors.collect(cdk().propertyValidator("securityGroupIds",cdk().listValidator(cdk().validateString))(properties.securityGroupIds)),errors.collect(cdk().propertyValidator("subnetId",cdk().requiredValidator)(properties.subnetId)),errors.collect(cdk().propertyValidator("subnetId",cdk().validateString)(properties.subnetId)),errors.wrap('supplied properties not correct for "VpcRouterNetworkInterfaceConfigurationProperty"')}function convertCfnRouterNetworkInterfaceVpcRouterNetworkInterfaceConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterNetworkInterfaceVpcRouterNetworkInterfaceConfigurationPropertyValidator(properties).assertSuccess(),{SecurityGroupIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.securityGroupIds),SubnetId:cdk().stringToCloudFormation(properties.subnetId)}):properties}function CfnRouterNetworkInterfaceVpcRouterNetworkInterfaceConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("securityGroupIds","SecurityGroupIds",properties.SecurityGroupIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SecurityGroupIds):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse().FromCloudFormation.getString(properties.SubnetId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterNetworkInterfaceRouterNetworkInterfaceConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("public",CfnRouterNetworkInterfacePublicRouterNetworkInterfaceConfigurationPropertyValidator)(properties.public)),errors.collect(cdk().propertyValidator("vpc",CfnRouterNetworkInterfaceVpcRouterNetworkInterfaceConfigurationPropertyValidator)(properties.vpc)),errors.wrap('supplied properties not correct for "RouterNetworkInterfaceConfigurationProperty"')}function convertCfnRouterNetworkInterfaceRouterNetworkInterfaceConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterNetworkInterfaceRouterNetworkInterfaceConfigurationPropertyValidator(properties).assertSuccess(),{Public:convertCfnRouterNetworkInterfacePublicRouterNetworkInterfaceConfigurationPropertyToCloudFormation(properties.public),Vpc:convertCfnRouterNetworkInterfaceVpcRouterNetworkInterfaceConfigurationPropertyToCloudFormation(properties.vpc)}):properties}function CfnRouterNetworkInterfaceRouterNetworkInterfaceConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("public","Public",properties.Public!=null?CfnRouterNetworkInterfacePublicRouterNetworkInterfaceConfigurationPropertyFromCloudFormation(properties.Public):void 0),ret.addPropertyResult("vpc","Vpc",properties.Vpc!=null?CfnRouterNetworkInterfaceVpcRouterNetworkInterfaceConfigurationPropertyFromCloudFormation(properties.Vpc):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterNetworkInterfacePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("configuration",cdk().requiredValidator)(properties.configuration)),errors.collect(cdk().propertyValidator("configuration",CfnRouterNetworkInterfaceRouterNetworkInterfaceConfigurationPropertyValidator)(properties.configuration)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("regionName",cdk().validateString)(properties.regionName)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnRouterNetworkInterfaceProps"')}function convertCfnRouterNetworkInterfacePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterNetworkInterfacePropsValidator(properties).assertSuccess(),{Configuration:convertCfnRouterNetworkInterfaceRouterNetworkInterfaceConfigurationPropertyToCloudFormation(properties.configuration),Name:cdk().stringToCloudFormation(properties.name),RegionName:cdk().stringToCloudFormation(properties.regionName),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnRouterNetworkInterfacePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("configuration","Configuration",properties.Configuration!=null?CfnRouterNetworkInterfaceRouterNetworkInterfaceConfigurationPropertyFromCloudFormation(properties.Configuration):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("regionName","RegionName",properties.RegionName!=null?cfn_parse().FromCloudFormation.getString(properties.RegionName):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnRouterOutput extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_mediaconnect.CfnRouterOutput",version:"2.234.1"};static CFN_RESOURCE_TYPE_NAME="AWS::MediaConnect::RouterOutput";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnRouterOutputPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError("Unexpected IResolvable",scope);const ret=new CfnRouterOutput(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnRouterOutput(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnRouterOutput.CFN_RESOURCE_TYPE_NAME}static arnForRouterOutput(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_mediaconnect_IRouterOutputRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForRouterOutput),error}return resource.routerOutputRef.routerOutputArn}attrArn;attrCreatedAt;attrId;attrIpAddress;attrMaintenanceType;attrOutputType;attrRoutedState;attrState;attrUpdatedAt;availabilityZone;cdkTagManager;configuration;maintenanceConfiguration;maximumBitrate;name;regionName;routingScope;tags;tier;constructor(scope,id,props){super(scope,id,{type:CfnRouterOutput.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_mediaconnect_CfnRouterOutputProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnRouterOutput),error}cdk().requireProperty(props,"configuration",this),cdk().requireProperty(props,"maximumBitrate",this),cdk().requireProperty(props,"name",this),cdk().requireProperty(props,"routingScope",this),cdk().requireProperty(props,"tier",this),this.attrArn=cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING)),this.attrCreatedAt=cdk().Token.asString(this.getAtt("CreatedAt",cdk().ResolutionTypeHint.STRING)),this.attrId=cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING)),this.attrIpAddress=cdk().Token.asString(this.getAtt("IpAddress",cdk().ResolutionTypeHint.STRING)),this.attrMaintenanceType=cdk().Token.asString(this.getAtt("MaintenanceType",cdk().ResolutionTypeHint.STRING)),this.attrOutputType=cdk().Token.asString(this.getAtt("OutputType",cdk().ResolutionTypeHint.STRING)),this.attrRoutedState=cdk().Token.asString(this.getAtt("RoutedState",cdk().ResolutionTypeHint.STRING)),this.attrState=cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING)),this.attrUpdatedAt=cdk().Token.asString(this.getAtt("UpdatedAt",cdk().ResolutionTypeHint.STRING)),this.availabilityZone=props.availabilityZone,this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::MediaConnect::RouterOutput",void 0,{tagPropertyName:"tags"}),this.configuration=props.configuration,this.maintenanceConfiguration=props.maintenanceConfiguration,this.maximumBitrate=props.maximumBitrate,this.name=props.name,this.regionName=props.regionName,this.routingScope=props.routingScope,this.tags=props.tags,this.tier=props.tier}get routerOutputRef(){return{routerOutputArn:this.ref}}get cfnProperties(){return{availabilityZone:this.availabilityZone,tags:this.cdkTagManager.renderTags(this.tags),configuration:this.configuration,maintenanceConfiguration:this.maintenanceConfiguration,maximumBitrate:this.maximumBitrate,name:this.name,regionName:this.regionName,routingScope:this.routingScope,tier:this.tier}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnRouterOutput.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnRouterOutputPropsToCloudFormation(props)}}exports.CfnRouterOutput=CfnRouterOutput;function CfnRouterOutputRtpRouterOutputConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("destinationAddress",cdk().requiredValidator)(properties.destinationAddress)),errors.collect(cdk().propertyValidator("destinationAddress",cdk().validateString)(properties.destinationAddress)),errors.collect(cdk().propertyValidator("destinationPort",cdk().requiredValidator)(properties.destinationPort)),errors.collect(cdk().propertyValidator("destinationPort",cdk().validateNumber)(properties.destinationPort)),errors.collect(cdk().propertyValidator("forwardErrorCorrection",cdk().validateString)(properties.forwardErrorCorrection)),errors.wrap('supplied properties not correct for "RtpRouterOutputConfigurationProperty"')}function convertCfnRouterOutputRtpRouterOutputConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterOutputRtpRouterOutputConfigurationPropertyValidator(properties).assertSuccess(),{DestinationAddress:cdk().stringToCloudFormation(properties.destinationAddress),DestinationPort:cdk().numberToCloudFormation(properties.destinationPort),ForwardErrorCorrection:cdk().stringToCloudFormation(properties.forwardErrorCorrection)}):properties}function CfnRouterOutputRtpRouterOutputConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("destinationAddress","DestinationAddress",properties.DestinationAddress!=null?cfn_parse().FromCloudFormation.getString(properties.DestinationAddress):void 0),ret.addPropertyResult("destinationPort","DestinationPort",properties.DestinationPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.DestinationPort):void 0),ret.addPropertyResult("forwardErrorCorrection","ForwardErrorCorrection",properties.ForwardErrorCorrection!=null?cfn_parse().FromCloudFormation.getString(properties.ForwardErrorCorrection):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterOutputRistRouterOutputConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("destinationAddress",cdk().requiredValidator)(properties.destinationAddress)),errors.collect(cdk().propertyValidator("destinationAddress",cdk().validateString)(properties.destinationAddress)),errors.collect(cdk().propertyValidator("destinationPort",cdk().requiredValidator)(properties.destinationPort)),errors.collect(cdk().propertyValidator("destinationPort",cdk().validateNumber)(properties.destinationPort)),errors.wrap('supplied properties not correct for "RistRouterOutputConfigurationProperty"')}function convertCfnRouterOutputRistRouterOutputConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterOutputRistRouterOutputConfigurationPropertyValidator(properties).assertSuccess(),{DestinationAddress:cdk().stringToCloudFormation(properties.destinationAddress),DestinationPort:cdk().numberToCloudFormation(properties.destinationPort)}):properties}function CfnRouterOutputRistRouterOutputConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("destinationAddress","DestinationAddress",properties.DestinationAddress!=null?cfn_parse().FromCloudFormation.getString(properties.DestinationAddress):void 0),ret.addPropertyResult("destinationPort","DestinationPort",properties.DestinationPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.DestinationPort):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterOutputSecretsManagerEncryptionKeyConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("secretArn",cdk().requiredValidator)(properties.secretArn)),errors.collect(cdk().propertyValidator("secretArn",cdk().validateString)(properties.secretArn)),errors.wrap('supplied properties not correct for "SecretsManagerEncryptionKeyConfigurationProperty"')}function convertCfnRouterOutputSecretsManagerEncryptionKeyConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterOutputSecretsManagerEncryptionKeyConfigurationPropertyValidator(properties).assertSuccess(),{RoleArn:cdk().stringToCloudFormation(properties.roleArn),SecretArn:cdk().stringToCloudFormation(properties.secretArn)}):properties}function CfnRouterOutputSecretsManagerEncryptionKeyConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("secretArn","SecretArn",properties.SecretArn!=null?cfn_parse().FromCloudFormation.getString(properties.SecretArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterOutputSrtEncryptionConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("encryptionKey",cdk().requiredValidator)(properties.encryptionKey)),errors.collect(cdk().propertyValidator("encryptionKey",CfnRouterOutputSecretsManagerEncryptionKeyConfigurationPropertyValidator)(properties.encryptionKey)),errors.wrap('supplied properties not correct for "SrtEncryptionConfigurationProperty"')}function convertCfnRouterOutputSrtEncryptionConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterOutputSrtEncryptionConfigurationPropertyValidator(properties).assertSuccess(),{EncryptionKey:convertCfnRouterOutputSecretsManagerEncryptionKeyConfigurationPropertyToCloudFormation(properties.encryptionKey)}):properties}function CfnRouterOutputSrtEncryptionConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("encryptionKey","EncryptionKey",properties.EncryptionKey!=null?CfnRouterOutputSecretsManagerEncryptionKeyConfigurationPropertyFromCloudFormation(properties.EncryptionKey):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterOutputSrtListenerRouterOutputConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("encryptionConfiguration",CfnRouterOutputSrtEncryptionConfigurationPropertyValidator)(properties.encryptionConfiguration)),errors.collect(cdk().propertyValidator("minimumLatencyMilliseconds",cdk().requiredValidator)(properties.minimumLatencyMilliseconds)),errors.collect(cdk().propertyValidator("minimumLatencyMilliseconds",cdk().validateNumber)(properties.minimumLatencyMilliseconds)),errors.collect(cdk().propertyValidator("port",cdk().requiredValidator)(properties.port)),errors.collect(cdk().propertyValidator("port",cdk().validateNumber)(properties.port)),errors.wrap('supplied properties not correct for "SrtListenerRouterOutputConfigurationProperty"')}function convertCfnRouterOutputSrtListenerRouterOutputConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterOutputSrtListenerRouterOutputConfigurationPropertyValidator(properties).assertSuccess(),{EncryptionConfiguration:convertCfnRouterOutputSrtEncryptionConfigurationPropertyToCloudFormation(properties.encryptionConfiguration),MinimumLatencyMilliseconds:cdk().numberToCloudFormation(properties.minimumLatencyMilliseconds),Port:cdk().numberToCloudFormation(properties.port)}):properties}function CfnRouterOutputSrtListenerRouterOutputConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("encryptionConfiguration","EncryptionConfiguration",properties.EncryptionConfiguration!=null?CfnRouterOutputSrtEncryptionConfigurationPropertyFromCloudFormation(properties.EncryptionConfiguration):void 0),ret.addPropertyResult("minimumLatencyMilliseconds","MinimumLatencyMilliseconds",properties.MinimumLatencyMilliseconds!=null?cfn_parse().FromCloudFormation.getNumber(properties.MinimumLatencyMilliseconds):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse().FromCloudFormation.getNumber(properties.Port):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterOutputSrtCallerRouterOutputConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("destinationAddress",cdk().requiredValidator)(properties.destinationAddress)),errors.collect(cdk().propertyValidator("destinationAddress",cdk().validateString)(properties.destinationAddress)),errors.collect(cdk().propertyValidator("destinationPort",cdk().requiredValidator)(properties.destinationPort)),errors.collect(cdk().propertyValidator("destinationPort",cdk().validateNumber)(properties.destinationPort)),errors.collect(cdk().propertyValidator("encryptionConfiguration",CfnRouterOutputSrtEncryptionConfigurationPropertyValidator)(properties.encryptionConfiguration)),errors.collect(cdk().propertyValidator("minimumLatencyMilliseconds",cdk().requiredValidator)(properties.minimumLatencyMilliseconds)),errors.collect(cdk().propertyValidator("minimumLatencyMilliseconds",cdk().validateNumber)(properties.minimumLatencyMilliseconds)),errors.collect(cdk().propertyValidator("streamId",cdk().validateString)(properties.streamId)),errors.wrap('supplied properties not correct for "SrtCallerRouterOutputConfigurationProperty"')}function convertCfnRouterOutputSrtCallerRouterOutputConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterOutputSrtCallerRouterOutputConfigurationPropertyValidator(properties).assertSuccess(),{DestinationAddress:cdk().stringToCloudFormation(properties.destinationAddress),DestinationPort:cdk().numberToCloudFormation(properties.destinationPort),EncryptionConfiguration:convertCfnRouterOutputSrtEncryptionConfigurationPropertyToCloudFormation(properties.encryptionConfiguration),MinimumLatencyMilliseconds:cdk().numberToCloudFormation(properties.minimumLatencyMilliseconds),StreamId:cdk().stringToCloudFormation(properties.streamId)}):properties}function CfnRouterOutputSrtCallerRouterOutputConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("destinationAddress","DestinationAddress",properties.DestinationAddress!=null?cfn_parse().FromCloudFormation.getString(properties.DestinationAddress):void 0),ret.addPropertyResult("destinationPort","DestinationPort",properties.DestinationPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.DestinationPort):void 0),ret.addPropertyResult("encryptionConfiguration","EncryptionConfiguration",properties.EncryptionConfiguration!=null?CfnRouterOutputSrtEncryptionConfigurationPropertyFromCloudFormation(properties.EncryptionConfiguration):void 0),ret.addPropertyResult("minimumLatencyMilliseconds","MinimumLatencyMilliseconds",properties.MinimumLatencyMilliseconds!=null?cfn_parse().FromCloudFormation.getNumber(properties.MinimumLatencyMilliseconds):void 0),ret.addPropertyResult("streamId","StreamId",properties.StreamId!=null?cfn_parse().FromCloudFormation.getString(properties.StreamId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterOutputRouterOutputProtocolConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("rist",CfnRouterOutputRistRouterOutputConfigurationPropertyValidator)(properties.rist)),errors.collect(cdk().propertyValidator("rtp",CfnRouterOutputRtpRouterOutputConfigurationPropertyValidator)(properties.rtp)),errors.collect(cdk().propertyValidator("srtCaller",CfnRouterOutputSrtCallerRouterOutputConfigurationPropertyValidator)(properties.srtCaller)),errors.collect(cdk().propertyValidator("srtListener",CfnRouterOutputSrtListenerRouterOutputConfigurationPropertyValidator)(properties.srtListener)),errors.wrap('supplied properties not correct for "RouterOutputProtocolConfigurationProperty"')}function convertCfnRouterOutputRouterOutputProtocolConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterOutputRouterOutputProtocolConfigurationPropertyValidator(properties).assertSuccess(),{Rist:convertCfnRouterOutputRistRouterOutputConfigurationPropertyToCloudFormation(properties.rist),Rtp:convertCfnRouterOutputRtpRouterOutputConfigurationPropertyToCloudFormation(properties.rtp),SrtCaller:convertCfnRouterOutputSrtCallerRouterOutputConfigurationPropertyToCloudFormation(properties.srtCaller),SrtListener:convertCfnRouterOutputSrtListenerRouterOutputConfigurationPropertyToCloudFormation(properties.srtListener)}):properties}function CfnRouterOutputRouterOutputProtocolConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("rist","Rist",properties.Rist!=null?CfnRouterOutputRistRouterOutputConfigurationPropertyFromCloudFormation(properties.Rist):void 0),ret.addPropertyResult("rtp","Rtp",properties.Rtp!=null?CfnRouterOutputRtpRouterOutputConfigurationPropertyFromCloudFormation(properties.Rtp):void 0),ret.addPropertyResult("srtCaller","SrtCaller",properties.SrtCaller!=null?CfnRouterOutputSrtCallerRouterOutputConfigurationPropertyFromCloudFormation(properties.SrtCaller):void 0),ret.addPropertyResult("srtListener","SrtListener",properties.SrtListener!=null?CfnRouterOutputSrtListenerRouterOutputConfigurationPropertyFromCloudFormation(properties.SrtListener):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterOutputStandardRouterOutputConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("networkInterfaceArn",cdk().requiredValidator)(properties.networkInterfaceArn)),errors.collect(cdk().propertyValidator("networkInterfaceArn",cdk().validateString)(properties.networkInterfaceArn)),errors.collect(cdk().propertyValidator("protocol",cdk().validateString)(properties.protocol)),errors.collect(cdk().propertyValidator("protocolConfiguration",cdk().requiredValidator)(properties.protocolConfiguration)),errors.collect(cdk().propertyValidator("protocolConfiguration",CfnRouterOutputRouterOutputProtocolConfigurationPropertyValidator)(properties.protocolConfiguration)),errors.wrap('supplied properties not correct for "StandardRouterOutputConfigurationProperty"')}function convertCfnRouterOutputStandardRouterOutputConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterOutputStandardRouterOutputConfigurationPropertyValidator(properties).assertSuccess(),{NetworkInterfaceArn:cdk().stringToCloudFormation(properties.networkInterfaceArn),Protocol:cdk().stringToCloudFormation(properties.protocol),ProtocolConfiguration:convertCfnRouterOutputRouterOutputProtocolConfigurationPropertyToCloudFormation(properties.protocolConfiguration)}):properties}function CfnRouterOutputStandardRouterOutputConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("networkInterfaceArn","NetworkInterfaceArn",properties.NetworkInterfaceArn!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkInterfaceArn):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse().FromCloudFormation.getString(properties.Protocol):void 0),ret.addPropertyResult("protocolConfiguration","ProtocolConfiguration",properties.ProtocolConfiguration!=null?CfnRouterOutputRouterOutputProtocolConfigurationPropertyFromCloudFormation(properties.ProtocolConfiguration):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterOutputFlowTransitEncryptionKeyConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("automatic",cdk().validateObject)(properties.automatic)),errors.collect(cdk().propertyValidator("secretsManager",CfnRouterOutputSecretsManagerEncryptionKeyConfigurationPropertyValidator)(properties.secretsManager)),errors.wrap('supplied properties not correct for "FlowTransitEncryptionKeyConfigurationProperty"')}function convertCfnRouterOutputFlowTransitEncryptionKeyConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterOutputFlowTransitEncryptionKeyConfigurationPropertyValidator(properties).assertSuccess(),{Automatic:cdk().objectToCloudFormation(properties.automatic),SecretsManager:convertCfnRouterOutputSecretsManagerEncryptionKeyConfigurationPropertyToCloudFormation(properties.secretsManager)}):properties}function CfnRouterOutputFlowTransitEncryptionKeyConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("automatic","Automatic",properties.Automatic!=null?cfn_parse().FromCloudFormation.getAny(properties.Automatic):void 0),ret.addPropertyResult("secretsManager","SecretsManager",properties.SecretsManager!=null?CfnRouterOutputSecretsManagerEncryptionKeyConfigurationPropertyFromCloudFormation(properties.SecretsManager):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterOutputFlowTransitEncryptionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("encryptionKeyConfiguration",cdk().requiredValidator)(properties.encryptionKeyConfiguration)),errors.collect(cdk().propertyValidator("encryptionKeyConfiguration",CfnRouterOutputFlowTransitEncryptionKeyConfigurationPropertyValidator)(properties.encryptionKeyConfiguration)),errors.collect(cdk().propertyValidator("encryptionKeyType",cdk().validateString)(properties.encryptionKeyType)),errors.wrap('supplied properties not correct for "FlowTransitEncryptionProperty"')}function convertCfnRouterOutputFlowTransitEncryptionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterOutputFlowTransitEncryptionPropertyValidator(properties).assertSuccess(),{EncryptionKeyConfiguration:convertCfnRouterOutputFlowTransitEncryptionKeyConfigurationPropertyToCloudFormation(properties.encryptionKeyConfiguration),EncryptionKeyType:cdk().stringToCloudFormation(properties.encryptionKeyType)}):properties}function CfnRouterOutputFlowTransitEncryptionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("encryptionKeyConfiguration","EncryptionKeyConfiguration",properties.EncryptionKeyConfiguration!=null?CfnRouterOutputFlowTransitEncryptionKeyConfigurationPropertyFromCloudFormation(properties.EncryptionKeyConfiguration):void 0),ret.addPropertyResult("encryptionKeyType","EncryptionKeyType",properties.EncryptionKeyType!=null?cfn_parse().FromCloudFormation.getString(properties.EncryptionKeyType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterOutputMediaConnectFlowRouterOutputConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("destinationTransitEncryption",cdk().requiredValidator)(properties.destinationTransitEncryption)),errors.collect(cdk().propertyValidator("destinationTransitEncryption",CfnRouterOutputFlowTransitEncryptionPropertyValidator)(properties.destinationTransitEncryption)),errors.collect(cdk().propertyValidator("flowArn",cdk().validateString)(properties.flowArn)),errors.collect(cdk().propertyValidator("flowSourceArn",cdk().validateString)(properties.flowSourceArn)),errors.wrap('supplied properties not correct for "MediaConnectFlowRouterOutputConfigurationProperty"')}function convertCfnRouterOutputMediaConnectFlowRouterOutputConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterOutputMediaConnectFlowRouterOutputConfigurationPropertyValidator(properties).assertSuccess(),{DestinationTransitEncryption:convertCfnRouterOutputFlowTransitEncryptionPropertyToCloudFormation(properties.destinationTransitEncryption),FlowArn:cdk().stringToCloudFormation(properties.flowArn),FlowSourceArn:cdk().stringToCloudFormation(properties.flowSourceArn)}):properties}function CfnRouterOutputMediaConnectFlowRouterOutputConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("destinationTransitEncryption","DestinationTransitEncryption",properties.DestinationTransitEncryption!=null?CfnRouterOutputFlowTransitEncryptionPropertyFromCloudFormation(properties.DestinationTransitEncryption):void 0),ret.addPropertyResult("flowArn","FlowArn",properties.FlowArn!=null?cfn_parse().FromCloudFormation.getString(properties.FlowArn):void 0),ret.addPropertyResult("flowSourceArn","FlowSourceArn",properties.FlowSourceArn!=null?cfn_parse().FromCloudFormation.getString(properties.FlowSourceArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterOutputMediaLiveTransitEncryptionKeyConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("automatic",cdk().validateObject)(properties.automatic)),errors.collect(cdk().propertyValidator("secretsManager",CfnRouterOutputSecretsManagerEncryptionKeyConfigurationPropertyValidator)(properties.secretsManager)),errors.wrap('supplied properties not correct for "MediaLiveTransitEncryptionKeyConfigurationProperty"')}function convertCfnRouterOutputMediaLiveTransitEncryptionKeyConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterOutputMediaLiveTransitEncryptionKeyConfigurationPropertyValidator(properties).assertSuccess(),{Automatic:cdk().objectToCloudFormation(properties.automatic),SecretsManager:convertCfnRouterOutputSecretsManagerEncryptionKeyConfigurationPropertyToCloudFormation(properties.secretsManager)}):properties}function CfnRouterOutputMediaLiveTransitEncryptionKeyConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("automatic","Automatic",properties.Automatic!=null?cfn_parse().FromCloudFormation.getAny(properties.Automatic):void 0),ret.addPropertyResult("secretsManager","SecretsManager",properties.SecretsManager!=null?CfnRouterOutputSecretsManagerEncryptionKeyConfigurationPropertyFromCloudFormation(properties.SecretsManager):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterOutputMediaLiveTransitEncryptionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("encryptionKeyConfiguration",cdk().requiredValidator)(properties.encryptionKeyConfiguration)),errors.collect(cdk().propertyValidator("encryptionKeyConfiguration",CfnRouterOutputMediaLiveTransitEncryptionKeyConfigurationPropertyValidator)(properties.encryptionKeyConfiguration)),errors.collect(cdk().propertyValidator("encryptionKeyType",cdk().validateString)(properties.encryptionKeyType)),errors.wrap('supplied properties not correct for "MediaLiveTransitEncryptionProperty"')}function convertCfnRouterOutputMediaLiveTransitEncryptionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterOutputMediaLiveTransitEncryptionPropertyValidator(properties).assertSuccess(),{EncryptionKeyConfiguration:convertCfnRouterOutputMediaLiveTransitEncryptionKeyConfigurationPropertyToCloudFormation(properties.encryptionKeyConfiguration),EncryptionKeyType:cdk().stringToCloudFormation(properties.encryptionKeyType)}):properties}function CfnRouterOutputMediaLiveTransitEncryptionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("encryptionKeyConfiguration","EncryptionKeyConfiguration",properties.EncryptionKeyConfiguration!=null?CfnRouterOutputMediaLiveTransitEncryptionKeyConfigurationPropertyFromCloudFormation(properties.EncryptionKeyConfiguration):void 0),ret.addPropertyResult("encryptionKeyType","EncryptionKeyType",properties.EncryptionKeyType!=null?cfn_parse().FromCloudFormation.getString(properties.EncryptionKeyType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterOutputMediaLiveInputRouterOutputConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("destinationTransitEncryption",cdk().requiredValidator)(properties.destinationTransitEncryption)),errors.collect(cdk().propertyValidator("destinationTransitEncryption",CfnRouterOutputMediaLiveTransitEncryptionPropertyValidator)(properties.destinationTransitEncryption)),errors.collect(cdk().propertyValidator("mediaLiveInputArn",cdk().validateString)(properties.mediaLiveInputArn)),errors.collect(cdk().propertyValidator("mediaLivePipelineId",cdk().validateString)(properties.mediaLivePipelineId)),errors.wrap('supplied properties not correct for "MediaLiveInputRouterOutputConfigurationProperty"')}function convertCfnRouterOutputMediaLiveInputRouterOutputConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterOutputMediaLiveInputRouterOutputConfigurationPropertyValidator(properties).assertSuccess(),{DestinationTransitEncryption:convertCfnRouterOutputMediaLiveTransitEncryptionPropertyToCloudFormation(properties.destinationTransitEncryption),MediaLiveInputArn:cdk().stringToCloudFormation(properties.mediaLiveInputArn),MediaLivePipelineId:cdk().stringToCloudFormation(properties.mediaLivePipelineId)}):properties}function CfnRouterOutputMediaLiveInputRouterOutputConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("destinationTransitEncryption","DestinationTransitEncryption",properties.DestinationTransitEncryption!=null?CfnRouterOutputMediaLiveTransitEncryptionPropertyFromCloudFormation(properties.DestinationTransitEncryption):void 0),ret.addPropertyResult("mediaLiveInputArn","MediaLiveInputArn",properties.MediaLiveInputArn!=null?cfn_parse().FromCloudFormation.getString(properties.MediaLiveInputArn):void 0),ret.addPropertyResult("mediaLivePipelineId","MediaLivePipelineId",properties.MediaLivePipelineId!=null?cfn_parse().FromCloudFormation.getString(properties.MediaLivePipelineId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterOutputRouterOutputConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("mediaConnectFlow",CfnRouterOutputMediaConnectFlowRouterOutputConfigurationPropertyValidator)(properties.mediaConnectFlow)),errors.collect(cdk().propertyValidator("mediaLiveInput",CfnRouterOutputMediaLiveInputRouterOutputConfigurationPropertyValidator)(properties.mediaLiveInput)),errors.collect(cdk().propertyValidator("standard",CfnRouterOutputStandardRouterOutputConfigurationPropertyValidator)(properties.standard)),errors.wrap('supplied properties not correct for "RouterOutputConfigurationProperty"')}function convertCfnRouterOutputRouterOutputConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterOutputRouterOutputConfigurationPropertyValidator(properties).assertSuccess(),{MediaConnectFlow:convertCfnRouterOutputMediaConnectFlowRouterOutputConfigurationPropertyToCloudFormation(properties.mediaConnectFlow),MediaLiveInput:convertCfnRouterOutputMediaLiveInputRouterOutputConfigurationPropertyToCloudFormation(properties.mediaLiveInput),Standard:convertCfnRouterOutputStandardRouterOutputConfigurationPropertyToCloudFormation(properties.standard)}):properties}function CfnRouterOutputRouterOutputConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("mediaConnectFlow","MediaConnectFlow",properties.MediaConnectFlow!=null?CfnRouterOutputMediaConnectFlowRouterOutputConfigurationPropertyFromCloudFormation(properties.MediaConnectFlow):void 0),ret.addPropertyResult("mediaLiveInput","MediaLiveInput",properties.MediaLiveInput!=null?CfnRouterOutputMediaLiveInputRouterOutputConfigurationPropertyFromCloudFormation(properties.MediaLiveInput):void 0),ret.addPropertyResult("standard","Standard",properties.Standard!=null?CfnRouterOutputStandardRouterOutputConfigurationPropertyFromCloudFormation(properties.Standard):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterOutputPreferredDayTimeMaintenanceConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("day",cdk().requiredValidator)(properties.day)),errors.collect(cdk().propertyValidator("day",cdk().validateString)(properties.day)),errors.collect(cdk().propertyValidator("time",cdk().requiredValidator)(properties.time)),errors.collect(cdk().propertyValidator("time",cdk().validateString)(properties.time)),errors.wrap('supplied properties not correct for "PreferredDayTimeMaintenanceConfigurationProperty"')}function convertCfnRouterOutputPreferredDayTimeMaintenanceConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterOutputPreferredDayTimeMaintenanceConfigurationPropertyValidator(properties).assertSuccess(),{Day:cdk().stringToCloudFormation(properties.day),Time:cdk().stringToCloudFormation(properties.time)}):properties}function CfnRouterOutputPreferredDayTimeMaintenanceConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("day","Day",properties.Day!=null?cfn_parse().FromCloudFormation.getString(properties.Day):void 0),ret.addPropertyResult("time","Time",properties.Time!=null?cfn_parse().FromCloudFormation.getString(properties.Time):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterOutputMaintenanceConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("default",cdk().validateObject)(properties.default)),errors.collect(cdk().propertyValidator("preferredDayTime",CfnRouterOutputPreferredDayTimeMaintenanceConfigurationPropertyValidator)(properties.preferredDayTime)),errors.wrap('supplied properties not correct for "MaintenanceConfigurationProperty"')}function convertCfnRouterOutputMaintenanceConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterOutputMaintenanceConfigurationPropertyValidator(properties).assertSuccess(),{Default:cdk().objectToCloudFormation(properties.default),PreferredDayTime:convertCfnRouterOutputPreferredDayTimeMaintenanceConfigurationPropertyToCloudFormation(properties.preferredDayTime)}):properties}function CfnRouterOutputMaintenanceConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("default","Default",properties.Default!=null?cfn_parse().FromCloudFormation.getAny(properties.Default):void 0),ret.addPropertyResult("preferredDayTime","PreferredDayTime",properties.PreferredDayTime!=null?CfnRouterOutputPreferredDayTimeMaintenanceConfigurationPropertyFromCloudFormation(properties.PreferredDayTime):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterOutputPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("availabilityZone",cdk().validateString)(properties.availabilityZone)),errors.collect(cdk().propertyValidator("configuration",cdk().requiredValidator)(properties.configuration)),errors.collect(cdk().propertyValidator("configuration",CfnRouterOutputRouterOutputConfigurationPropertyValidator)(properties.configuration)),errors.collect(cdk().propertyValidator("maintenanceConfiguration",CfnRouterOutputMaintenanceConfigurationPropertyValidator)(properties.maintenanceConfiguration)),errors.collect(cdk().propertyValidator("maximumBitrate",cdk().requiredValidator)(properties.maximumBitrate)),errors.collect(cdk().propertyValidator("maximumBitrate",cdk().validateNumber)(properties.maximumBitrate)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("regionName",cdk().validateString)(properties.regionName)),errors.collect(cdk().propertyValidator("routingScope",cdk().requiredValidator)(properties.routingScope)),errors.collect(cdk().propertyValidator("routingScope",cdk().validateString)(properties.routingScope)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("tier",cdk().requiredValidator)(properties.tier)),errors.collect(cdk().propertyValidator("tier",cdk().validateString)(properties.tier)),errors.wrap('supplied properties not correct for "CfnRouterOutputProps"')}function convertCfnRouterOutputPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterOutputPropsValidator(properties).assertSuccess(),{AvailabilityZone:cdk().stringToCloudFormation(properties.availabilityZone),Configuration:convertCfnRouterOutputRouterOutputConfigurationPropertyToCloudFormation(properties.configuration),MaintenanceConfiguration:convertCfnRouterOutputMaintenanceConfigurationPropertyToCloudFormation(properties.maintenanceConfiguration),MaximumBitrate:cdk().numberToCloudFormation(properties.maximumBitrate),Name:cdk().stringToCloudFormation(properties.name),RegionName:cdk().stringToCloudFormation(properties.regionName),RoutingScope:cdk().stringToCloudFormation(properties.routingScope),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),Tier:cdk().stringToCloudFormation(properties.tier)}):properties}function CfnRouterOutputPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse().FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("configuration","Configuration",properties.Configuration!=null?CfnRouterOutputRouterOutputConfigurationPropertyFromCloudFormation(properties.Configuration):void 0),ret.addPropertyResult("maintenanceConfiguration","MaintenanceConfiguration",properties.MaintenanceConfiguration!=null?CfnRouterOutputMaintenanceConfigurationPropertyFromCloudFormation(properties.MaintenanceConfiguration):void 0),ret.addPropertyResult("maximumBitrate","MaximumBitrate",properties.MaximumBitrate!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaximumBitrate):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("regionName","RegionName",properties.RegionName!=null?cfn_parse().FromCloudFormation.getString(properties.RegionName):void 0),ret.addPropertyResult("routingScope","RoutingScope",properties.RoutingScope!=null?cfn_parse().FromCloudFormation.getString(properties.RoutingScope):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("tier","Tier",properties.Tier!=null?cfn_parse().FromCloudFormation.getString(properties.Tier):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}