"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.252.0"};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(cfn_parse().lit`UnexpectedIResolvable`,"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}_egressGatewayBridge;_ingressGatewayBridge;_name;_outputs;_placementArn;_sourceFailoverConfig;_sources;cfnPropertyNames={egressGatewayBridge:"EgressGatewayBridge",ingressGatewayBridge:"IngressGatewayBridge",name:"Name",outputs:"Outputs",placementArn:"PlacementArn",sourceFailoverConfig:"SourceFailoverConfig",sources:"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._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 egressGatewayBridge(){return this._egressGatewayBridge}set egressGatewayBridge(value){cdk().traceProperty(this.node,"EgressGatewayBridge"),this._egressGatewayBridge=value}get ingressGatewayBridge(){return this._ingressGatewayBridge}set ingressGatewayBridge(value){cdk().traceProperty(this.node,"IngressGatewayBridge"),this._ingressGatewayBridge=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get outputs(){return this._outputs}set outputs(value){cdk().traceProperty(this.node,"Outputs"),this._outputs=value}get placementArn(){return this._placementArn}set placementArn(value){cdk().traceProperty(this.node,"PlacementArn"),this._placementArn=value}get sourceFailoverConfig(){return this._sourceFailoverConfig}set sourceFailoverConfig(value){cdk().traceProperty(this.node,"SourceFailoverConfig"),this._sourceFailoverConfig=value}get sources(){return this._sources}set sources(value){cdk().traceProperty(this.node,"Sources"),this._sources=value}get attrBridgeArn(){return cdk().Token.asString(this.getAtt("BridgeArn",cdk().ResolutionTypeHint.STRING))}get attrBridgeState(){return cdk().Token.asString(this.getAtt("BridgeState",cdk().ResolutionTypeHint.STRING))}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:logicalId",this._synthesizeLogicalId()),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.252.0"};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(cfn_parse().lit`UnexpectedIResolvable`,"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;cfnPropertyNames={bridgeArn:"BridgeArn",name:"Name",networkOutput:"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 bridgeArn(){return this._bridgeArn}set bridgeArn(value){cdk().traceProperty(this.node,"BridgeArn"),this._bridgeArn=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get networkOutput(){return this._networkOutput}set networkOutput(value){cdk().traceProperty(this.node,"NetworkOutput"),this._networkOutput=value}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:logicalId",this._synthesizeLogicalId()),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.252.0"};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(cfn_parse().lit`UnexpectedIResolvable`,"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;cfnPropertyNames={bridgeArn:"BridgeArn",flowSource:"FlowSource",name:"Name",networkSource:"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 bridgeArn(){return this._bridgeArn}set bridgeArn(value){cdk().traceProperty(this.node,"BridgeArn"),this._bridgeArn=value}get flowSource(){return this._flowSource}set flowSource(value){cdk().traceProperty(this.node,"FlowSource"),this._flowSource=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get networkSource(){return this._networkSource}set networkSource(value){cdk().traceProperty(this.node,"NetworkSource"),this._networkSource=value}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:logicalId",this._synthesizeLogicalId()),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.252.0"};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(cfn_parse().lit`UnexpectedIResolvable`,"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}_availabilityZone;cdkTagManager;_encodingConfig;_flowSize;_maintenance;_mediaStreams;_name;_ndiConfig;_source;_sourceFailoverConfig;_sourceMonitoringConfig;_tags;_vpcInterfaces;cfnPropertyNames={availabilityZone:"AvailabilityZone",tags:"Tags",encodingConfig:"EncodingConfig",flowSize:"FlowSize",maintenance:"Maintenance",mediaStreams:"MediaStreams",name:"Name",ndiConfig:"NdiConfig",source:"Source",sourceFailoverConfig:"SourceFailoverConfig",sourceMonitoringConfig:"SourceMonitoringConfig",vpcInterfaces:"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._availabilityZone=props.availabilityZone,this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::MediaConnect::Flow",void 0,{tagPropertyName:"tags"}),this._encodingConfig=props.encodingConfig,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._tags=props.tags,this._vpcInterfaces=props.vpcInterfaces}get flowRef(){return{flowArn:this.ref}}get availabilityZone(){return this._availabilityZone}set availabilityZone(value){cdk().traceProperty(this.node,"AvailabilityZone"),this._availabilityZone=value}get encodingConfig(){return this._encodingConfig}set encodingConfig(value){cdk().traceProperty(this.node,"EncodingConfig"),this._encodingConfig=value}get flowSize(){return this._flowSize}set flowSize(value){cdk().traceProperty(this.node,"FlowSize"),this._flowSize=value}get maintenance(){return this._maintenance}set maintenance(value){cdk().traceProperty(this.node,"Maintenance"),this._maintenance=value}get mediaStreams(){return this._mediaStreams}set mediaStreams(value){cdk().traceProperty(this.node,"MediaStreams"),this._mediaStreams=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get ndiConfig(){return this._ndiConfig}set ndiConfig(value){cdk().traceProperty(this.node,"NdiConfig"),this._ndiConfig=value}get source(){return this._source}set source(value){cdk().traceProperty(this.node,"Source"),this._source=value}get sourceFailoverConfig(){return this._sourceFailoverConfig}set sourceFailoverConfig(value){cdk().traceProperty(this.node,"SourceFailoverConfig"),this._sourceFailoverConfig=value}get sourceMonitoringConfig(){return this._sourceMonitoringConfig}set sourceMonitoringConfig(value){cdk().traceProperty(this.node,"SourceMonitoringConfig"),this._sourceMonitoringConfig=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get vpcInterfaces(){return this._vpcInterfaces}set vpcInterfaces(value){cdk().traceProperty(this.node,"VpcInterfaces"),this._vpcInterfaces=value}get attrEgressIp(){return cdk().Token.asString(this.getAtt("EgressIp",cdk().ResolutionTypeHint.STRING))}get attrFlowArn(){return cdk().Token.asString(this.getAtt("FlowArn",cdk().ResolutionTypeHint.STRING))}get attrFlowAvailabilityZone(){return cdk().Token.asString(this.getAtt("FlowAvailabilityZone",cdk().ResolutionTypeHint.STRING))}get attrFlowNdiMachineName(){return cdk().Token.asString(this.getAtt("FlowNdiMachineName",cdk().ResolutionTypeHint.STRING))}get attrSourceIngestIp(){return cdk().Token.asString(this.getAtt("Source.IngestIp",cdk().ResolutionTypeHint.STRING))}get attrSourceSourceArn(){return cdk().Token.asString(this.getAtt("Source.SourceArn",cdk().ResolutionTypeHint.STRING))}get attrSourceSourceIngestPort(){return cdk().Token.asString(this.getAtt("Source.SourceIngestPort",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{availabilityZone:this._availabilityZone,tags:this.cdkTagManager.renderTags(this._tags),encodingConfig:this._encodingConfig,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:logicalId",this._synthesizeLogicalId()),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 CfnFlowNdiSourceSettingsPropertyValidator(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("sourceName",cdk().validateString)(properties.sourceName)),errors.wrap('supplied properties not correct for "NdiSourceSettingsProperty"')}function convertCfnFlowNdiSourceSettingsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowNdiSourceSettingsPropertyValidator(properties).assertSuccess(),{SourceName:cdk().stringToCloudFormation(properties.sourceName)}):properties}function CfnFlowNdiSourceSettingsPropertyFromCloudFormation(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("sourceName","SourceName",properties.SourceName!=null?cfn_parse().FromCloudFormation.getString(properties.SourceName):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("ndiSourceSettings",CfnFlowNdiSourceSettingsPropertyValidator)(properties.ndiSourceSettings)),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("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),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),NdiSourceSettings:convertCfnFlowNdiSourceSettingsPropertyToCloudFormation(properties.ndiSourceSettings),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),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),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("ndiSourceSettings","NdiSourceSettings",properties.NdiSourceSettings!=null?CfnFlowNdiSourceSettingsPropertyFromCloudFormation(properties.NdiSourceSettings):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("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):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.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),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),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):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.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):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("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),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),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),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("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):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 CfnFlowEncodingConfigPropertyValidator(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("encodingProfile",cdk().validateString)(properties.encodingProfile)),errors.collect(cdk().propertyValidator("videoMaxBitrate",cdk().validateNumber)(properties.videoMaxBitrate)),errors.wrap('supplied properties not correct for "EncodingConfigProperty"')}function convertCfnFlowEncodingConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowEncodingConfigPropertyValidator(properties).assertSuccess(),{EncodingProfile:cdk().stringToCloudFormation(properties.encodingProfile),VideoMaxBitrate:cdk().numberToCloudFormation(properties.videoMaxBitrate)}):properties}function CfnFlowEncodingConfigPropertyFromCloudFormation(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("encodingProfile","EncodingProfile",properties.EncodingProfile!=null?cfn_parse().FromCloudFormation.getString(properties.EncodingProfile):void 0),ret.addPropertyResult("videoMaxBitrate","VideoMaxBitrate",properties.VideoMaxBitrate!=null?cfn_parse().FromCloudFormation.getNumber(properties.VideoMaxBitrate):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("encodingConfig",CfnFlowEncodingConfigPropertyValidator)(properties.encodingConfig)),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("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),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),EncodingConfig:convertCfnFlowEncodingConfigPropertyToCloudFormation(properties.encodingConfig),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),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),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("encodingConfig","EncodingConfig",properties.EncodingConfig!=null?CfnFlowEncodingConfigPropertyFromCloudFormation(properties.EncodingConfig):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("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):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.252.0"};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(cfn_parse().lit`UnexpectedIResolvable`,"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}cdkTagManager;_dataTransferSubscriberFeePercent;_description;_encryption;_entitlementStatus;_flowArn;_name;_subscribers;_tags;cfnPropertyNames={tags:"Tags",dataTransferSubscriberFeePercent:"DataTransferSubscriberFeePercent",description:"Description",encryption:"Encryption",entitlementStatus:"EntitlementStatus",flowArn:"FlowArn",name:"Name",subscribers:"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.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::MediaConnect::FlowEntitlement",void 0,{tagPropertyName:"tags"}),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,this._tags=props.tags}get flowEntitlementRef(){return{entitlementArn:this.ref}}get dataTransferSubscriberFeePercent(){return this._dataTransferSubscriberFeePercent}set dataTransferSubscriberFeePercent(value){cdk().traceProperty(this.node,"DataTransferSubscriberFeePercent"),this._dataTransferSubscriberFeePercent=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get encryption(){return this._encryption}set encryption(value){cdk().traceProperty(this.node,"Encryption"),this._encryption=value}get entitlementStatus(){return this._entitlementStatus}set entitlementStatus(value){cdk().traceProperty(this.node,"EntitlementStatus"),this._entitlementStatus=value}get flowArn(){return this._flowArn}set flowArn(value){cdk().traceProperty(this.node,"FlowArn"),this._flowArn=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get subscribers(){return this._subscribers}set subscribers(value){cdk().traceProperty(this.node,"Subscribers"),this._subscribers=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get attrEntitlementArn(){return cdk().Token.asString(this.getAtt("EntitlementArn",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),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:logicalId",this._synthesizeLogicalId()),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.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),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),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):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.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):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.252.0"};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(cfn_parse().lit`UnexpectedIResolvable`,"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}cdkTagManager;_cidrAllowList;_description;_destination;_encryption;_flowArn;_maxLatency;_mediaStreamOutputConfigurations;_minLatency;_name;_ndiProgramName;_ndiSpeedHqQuality;_outputStatus;_port;_protocol;_remoteId;_routerIntegrationState;_routerIntegrationTransitEncryption;_smoothingLatency;_streamId;_tags;_vpcInterfaceAttachment;cfnPropertyNames={tags:"Tags",cidrAllowList:"CidrAllowList",description:"Description",destination:"Destination",encryption:"Encryption",flowArn:"FlowArn",maxLatency:"MaxLatency",mediaStreamOutputConfigurations:"MediaStreamOutputConfigurations",minLatency:"MinLatency",name:"Name",ndiProgramName:"NdiProgramName",ndiSpeedHqQuality:"NdiSpeedHqQuality",outputStatus:"OutputStatus",port:"Port",protocol:"Protocol",remoteId:"RemoteId",routerIntegrationState:"RouterIntegrationState",routerIntegrationTransitEncryption:"RouterIntegrationTransitEncryption",smoothingLatency:"SmoothingLatency",streamId:"StreamId",vpcInterfaceAttachment:"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.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::MediaConnect::FlowOutput",void 0,{tagPropertyName:"tags"}),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._tags=props.tags,this._vpcInterfaceAttachment=props.vpcInterfaceAttachment}get flowOutputRef(){return{outputArn:this.ref}}get cidrAllowList(){return this._cidrAllowList}set cidrAllowList(value){cdk().traceProperty(this.node,"CidrAllowList"),this._cidrAllowList=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get destination(){return this._destination}set destination(value){cdk().traceProperty(this.node,"Destination"),this._destination=value}get encryption(){return this._encryption}set encryption(value){cdk().traceProperty(this.node,"Encryption"),this._encryption=value}get flowArn(){return this._flowArn}set flowArn(value){cdk().traceProperty(this.node,"FlowArn"),this._flowArn=value}get maxLatency(){return this._maxLatency}set maxLatency(value){cdk().traceProperty(this.node,"MaxLatency"),this._maxLatency=value}get mediaStreamOutputConfigurations(){return this._mediaStreamOutputConfigurations}set mediaStreamOutputConfigurations(value){cdk().traceProperty(this.node,"MediaStreamOutputConfigurations"),this._mediaStreamOutputConfigurations=value}get minLatency(){return this._minLatency}set minLatency(value){cdk().traceProperty(this.node,"MinLatency"),this._minLatency=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get ndiProgramName(){return this._ndiProgramName}set ndiProgramName(value){cdk().traceProperty(this.node,"NdiProgramName"),this._ndiProgramName=value}get ndiSpeedHqQuality(){return this._ndiSpeedHqQuality}set ndiSpeedHqQuality(value){cdk().traceProperty(this.node,"NdiSpeedHqQuality"),this._ndiSpeedHqQuality=value}get outputStatus(){return this._outputStatus}set outputStatus(value){cdk().traceProperty(this.node,"OutputStatus"),this._outputStatus=value}get port(){return this._port}set port(value){cdk().traceProperty(this.node,"Port"),this._port=value}get protocol(){return this._protocol}set protocol(value){cdk().traceProperty(this.node,"Protocol"),this._protocol=value}get remoteId(){return this._remoteId}set remoteId(value){cdk().traceProperty(this.node,"RemoteId"),this._remoteId=value}get routerIntegrationState(){return this._routerIntegrationState}set routerIntegrationState(value){cdk().traceProperty(this.node,"RouterIntegrationState"),this._routerIntegrationState=value}get routerIntegrationTransitEncryption(){return this._routerIntegrationTransitEncryption}set routerIntegrationTransitEncryption(value){cdk().traceProperty(this.node,"RouterIntegrationTransitEncryption"),this._routerIntegrationTransitEncryption=value}get smoothingLatency(){return this._smoothingLatency}set smoothingLatency(value){cdk().traceProperty(this.node,"SmoothingLatency"),this._smoothingLatency=value}get streamId(){return this._streamId}set streamId(value){cdk().traceProperty(this.node,"StreamId"),this._streamId=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get vpcInterfaceAttachment(){return this._vpcInterfaceAttachment}set vpcInterfaceAttachment(value){cdk().traceProperty(this.node,"VpcInterfaceAttachment"),this._vpcInterfaceAttachment=value}get attrOutputArn(){return cdk().Token.asString(this.getAtt("OutputArn",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),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:logicalId",this._synthesizeLogicalId()),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("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),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),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),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("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):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.252.0"};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(cfn_parse().lit`UnexpectedIResolvable`,"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}cdkTagManager;_decryption;_description;_entitlementArn;_flowArn;_gatewayBridgeSource;_ingestPort;_maxBitrate;_maxLatency;_minLatency;_name;_protocol;_senderControlPort;_senderIpAddress;_sourceListenerAddress;_sourceListenerPort;_streamId;_tags;_vpcInterfaceName;_whitelistCidr;cfnPropertyNames={tags:"Tags",decryption:"Decryption",description:"Description",entitlementArn:"EntitlementArn",flowArn:"FlowArn",gatewayBridgeSource:"GatewayBridgeSource",ingestPort:"IngestPort",maxBitrate:"MaxBitrate",maxLatency:"MaxLatency",minLatency:"MinLatency",name:"Name",protocol:"Protocol",senderControlPort:"SenderControlPort",senderIpAddress:"SenderIpAddress",sourceListenerAddress:"SourceListenerAddress",sourceListenerPort:"SourceListenerPort",streamId:"StreamId",vpcInterfaceName:"VpcInterfaceName",whitelistCidr:"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,"flowArn",this),cdk().requireProperty(props,"name",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::MediaConnect::FlowSource",void 0,{tagPropertyName:"tags"}),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._tags=props.tags,this._vpcInterfaceName=props.vpcInterfaceName,this._whitelistCidr=props.whitelistCidr}get flowSourceRef(){return{sourceArn:this.ref}}get decryption(){return this._decryption}set decryption(value){cdk().traceProperty(this.node,"Decryption"),this._decryption=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get entitlementArn(){try{jsiiDeprecationWarnings().print("aws-cdk-lib.aws_mediaconnect.CfnFlowSource#entitlementArn","this property has been deprecated")}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,jsiiDeprecationWarnings().getPropertyDescriptor(this,"entitlementArn").get),error}return this._entitlementArn}set entitlementArn(value){try{jsiiDeprecationWarnings().print("aws-cdk-lib.aws_mediaconnect.CfnFlowSource#entitlementArn","this property has been deprecated")}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,jsiiDeprecationWarnings().getPropertyDescriptor(this,"entitlementArn").set),error}cdk().traceProperty(this.node,"EntitlementArn"),this._entitlementArn=value}get flowArn(){return this._flowArn}set flowArn(value){cdk().traceProperty(this.node,"FlowArn"),this._flowArn=value}get gatewayBridgeSource(){return this._gatewayBridgeSource}set gatewayBridgeSource(value){cdk().traceProperty(this.node,"GatewayBridgeSource"),this._gatewayBridgeSource=value}get ingestPort(){return this._ingestPort}set ingestPort(value){cdk().traceProperty(this.node,"IngestPort"),this._ingestPort=value}get maxBitrate(){return this._maxBitrate}set maxBitrate(value){cdk().traceProperty(this.node,"MaxBitrate"),this._maxBitrate=value}get maxLatency(){return this._maxLatency}set maxLatency(value){cdk().traceProperty(this.node,"MaxLatency"),this._maxLatency=value}get minLatency(){return this._minLatency}set minLatency(value){cdk().traceProperty(this.node,"MinLatency"),this._minLatency=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get protocol(){return this._protocol}set protocol(value){cdk().traceProperty(this.node,"Protocol"),this._protocol=value}get senderControlPort(){try{jsiiDeprecationWarnings().print("aws-cdk-lib.aws_mediaconnect.CfnFlowSource#senderControlPort","this property has been deprecated")}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,jsiiDeprecationWarnings().getPropertyDescriptor(this,"senderControlPort").get),error}return this._senderControlPort}set senderControlPort(value){try{jsiiDeprecationWarnings().print("aws-cdk-lib.aws_mediaconnect.CfnFlowSource#senderControlPort","this property has been deprecated")}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,jsiiDeprecationWarnings().getPropertyDescriptor(this,"senderControlPort").set),error}cdk().traceProperty(this.node,"SenderControlPort"),this._senderControlPort=value}get senderIpAddress(){try{jsiiDeprecationWarnings().print("aws-cdk-lib.aws_mediaconnect.CfnFlowSource#senderIpAddress","this property has been deprecated")}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,jsiiDeprecationWarnings().getPropertyDescriptor(this,"senderIpAddress").get),error}return this._senderIpAddress}set senderIpAddress(value){try{jsiiDeprecationWarnings().print("aws-cdk-lib.aws_mediaconnect.CfnFlowSource#senderIpAddress","this property has been deprecated")}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,jsiiDeprecationWarnings().getPropertyDescriptor(this,"senderIpAddress").set),error}cdk().traceProperty(this.node,"SenderIpAddress"),this._senderIpAddress=value}get sourceListenerAddress(){return this._sourceListenerAddress}set sourceListenerAddress(value){cdk().traceProperty(this.node,"SourceListenerAddress"),this._sourceListenerAddress=value}get sourceListenerPort(){return this._sourceListenerPort}set sourceListenerPort(value){cdk().traceProperty(this.node,"SourceListenerPort"),this._sourceListenerPort=value}get streamId(){return this._streamId}set streamId(value){cdk().traceProperty(this.node,"StreamId"),this._streamId=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get vpcInterfaceName(){return this._vpcInterfaceName}set vpcInterfaceName(value){cdk().traceProperty(this.node,"VpcInterfaceName"),this._vpcInterfaceName=value}get whitelistCidr(){return this._whitelistCidr}set whitelistCidr(value){cdk().traceProperty(this.node,"WhitelistCidr"),this._whitelistCidr=value}get attrIngestIp(){return cdk().Token.asString(this.getAtt("IngestIp",cdk().ResolutionTypeHint.STRING))}get attrSourceArn(){return cdk().Token.asString(this.getAtt("SourceArn",cdk().ResolutionTypeHint.STRING))}get attrSourceIngestPort(){return cdk().Token.asString(this.getAtt("SourceIngestPort",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),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:logicalId",this._synthesizeLogicalId()),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().requiredValidator)(properties.flowArn)),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("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),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),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),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("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):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.252.0"};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(cfn_parse().lit`UnexpectedIResolvable`,"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}_flowArn;_name;_roleArn;_securityGroupIds;_subnetId;cfnPropertyNames={flowArn:"FlowArn",name:"Name",roleArn:"RoleArn",securityGroupIds:"SecurityGroupIds",subnetId:"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._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 flowArn(){return this._flowArn}set flowArn(value){cdk().traceProperty(this.node,"FlowArn"),this._flowArn=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get roleArn(){return this._roleArn}set roleArn(value){cdk().traceProperty(this.node,"RoleArn"),this._roleArn=value}get securityGroupIds(){return this._securityGroupIds}set securityGroupIds(value){cdk().traceProperty(this.node,"SecurityGroupIds"),this._securityGroupIds=value}get subnetId(){return this._subnetId}set subnetId(value){cdk().traceProperty(this.node,"SubnetId"),this._subnetId=value}get attrNetworkInterfaceIds(){return cdk().Token.asList(this.getAtt("NetworkInterfaceIds",cdk().ResolutionTypeHint.STRING_LIST))}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:logicalId",this._synthesizeLogicalId()),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.252.0"};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(cfn_parse().lit`UnexpectedIResolvable`,"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}_egressCidrBlocks;_name;_networks;cfnPropertyNames={egressCidrBlocks:"EgressCidrBlocks",name:"Name",networks:"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._egressCidrBlocks=props.egressCidrBlocks,this._name=props.name,this._networks=props.networks}get gatewayRef(){return{gatewayArn:this.ref}}get egressCidrBlocks(){return this._egressCidrBlocks}set egressCidrBlocks(value){cdk().traceProperty(this.node,"EgressCidrBlocks"),this._egressCidrBlocks=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get networks(){return this._networks}set networks(value){cdk().traceProperty(this.node,"Networks"),this._networks=value}get attrGatewayArn(){return cdk().Token.asString(this.getAtt("GatewayArn",cdk().ResolutionTypeHint.STRING))}get attrGatewayState(){return cdk().Token.asString(this.getAtt("GatewayState",cdk().ResolutionTypeHint.STRING))}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:logicalId",this._synthesizeLogicalId()),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.252.0"};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(cfn_parse().lit`UnexpectedIResolvable`,"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}_availabilityZone;cdkTagManager;_configuration;_maintenanceConfiguration;_maximumBitrate;_name;_regionName;_routingScope;_tags;_tier;_transitEncryption;cfnPropertyNames={availabilityZone:"AvailabilityZone",tags:"Tags",configuration:"Configuration",maintenanceConfiguration:"MaintenanceConfiguration",maximumBitrate:"MaximumBitrate",name:"Name",regionName:"RegionName",routingScope:"RoutingScope",tier:"Tier",transitEncryption:"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._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 availabilityZone(){return this._availabilityZone}set availabilityZone(value){cdk().traceProperty(this.node,"AvailabilityZone"),this._availabilityZone=value}get configuration(){return this._configuration}set configuration(value){cdk().traceProperty(this.node,"Configuration"),this._configuration=value}get maintenanceConfiguration(){return this._maintenanceConfiguration}set maintenanceConfiguration(value){cdk().traceProperty(this.node,"MaintenanceConfiguration"),this._maintenanceConfiguration=value}get maximumBitrate(){return this._maximumBitrate}set maximumBitrate(value){cdk().traceProperty(this.node,"MaximumBitrate"),this._maximumBitrate=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get regionName(){return this._regionName}set regionName(value){cdk().traceProperty(this.node,"RegionName"),this._regionName=value}get routingScope(){return this._routingScope}set routingScope(value){cdk().traceProperty(this.node,"RoutingScope"),this._routingScope=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get tier(){return this._tier}set tier(value){cdk().traceProperty(this.node,"Tier"),this._tier=value}get transitEncryption(){return this._transitEncryption}set transitEncryption(value){cdk().traceProperty(this.node,"TransitEncryption"),this._transitEncryption=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrCreatedAt(){return cdk().Token.asString(this.getAtt("CreatedAt",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrInputType(){return cdk().Token.asString(this.getAtt("InputType",cdk().ResolutionTypeHint.STRING))}get attrIpAddress(){return cdk().Token.asString(this.getAtt("IpAddress",cdk().ResolutionTypeHint.STRING))}get attrMaintenanceType(){return cdk().Token.asString(this.getAtt("MaintenanceType",cdk().ResolutionTypeHint.STRING))}get attrRoutedOutputs(){return cdk().Token.asNumber(this.getAtt("RoutedOutputs",cdk().ResolutionTypeHint.NUMBER))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get attrUpdatedAt(){return cdk().Token.asString(this.getAtt("UpdatedAt",cdk().ResolutionTypeHint.STRING))}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:logicalId",this._synthesizeLogicalId()),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 CfnRouterInputMediaLiveTransitEncryptionKeyConfigurationPropertyValidator(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 "MediaLiveTransitEncryptionKeyConfigurationProperty"')}function convertCfnRouterInputMediaLiveTransitEncryptionKeyConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterInputMediaLiveTransitEncryptionKeyConfigurationPropertyValidator(properties).assertSuccess(),{Automatic:cdk().objectToCloudFormation(properties.automatic),SecretsManager:convertCfnRouterInputSecretsManagerEncryptionKeyConfigurationPropertyToCloudFormation(properties.secretsManager)}):properties}function CfnRouterInputMediaLiveTransitEncryptionKeyConfigurationPropertyFromCloudFormation(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 CfnRouterInputMediaLiveTransitEncryptionPropertyValidator(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",CfnRouterInputMediaLiveTransitEncryptionKeyConfigurationPropertyValidator)(properties.encryptionKeyConfiguration)),errors.collect(cdk().propertyValidator("encryptionKeyType",cdk().validateString)(properties.encryptionKeyType)),errors.wrap('supplied properties not correct for "MediaLiveTransitEncryptionProperty"')}function convertCfnRouterInputMediaLiveTransitEncryptionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterInputMediaLiveTransitEncryptionPropertyValidator(properties).assertSuccess(),{EncryptionKeyConfiguration:convertCfnRouterInputMediaLiveTransitEncryptionKeyConfigurationPropertyToCloudFormation(properties.encryptionKeyConfiguration),EncryptionKeyType:cdk().stringToCloudFormation(properties.encryptionKeyType)}):properties}function CfnRouterInputMediaLiveTransitEncryptionPropertyFromCloudFormation(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?CfnRouterInputMediaLiveTransitEncryptionKeyConfigurationPropertyFromCloudFormation(properties.EncryptionKeyConfiguration):void 0),ret.addPropertyResult("encryptionKeyType","EncryptionKeyType",properties.EncryptionKeyType!=null?cfn_parse().FromCloudFormation.getString(properties.EncryptionKeyType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouterInputMediaLiveChannelRouterInputConfigurationPropertyValidator(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("mediaLiveChannelArn",cdk().validateString)(properties.mediaLiveChannelArn)),errors.collect(cdk().propertyValidator("mediaLiveChannelOutputName",cdk().validateString)(properties.mediaLiveChannelOutputName)),errors.collect(cdk().propertyValidator("mediaLivePipelineId",cdk().validateString)(properties.mediaLivePipelineId)),errors.collect(cdk().propertyValidator("sourceTransitDecryption",cdk().requiredValidator)(properties.sourceTransitDecryption)),errors.collect(cdk().propertyValidator("sourceTransitDecryption",CfnRouterInputMediaLiveTransitEncryptionPropertyValidator)(properties.sourceTransitDecryption)),errors.wrap('supplied properties not correct for "MediaLiveChannelRouterInputConfigurationProperty"')}function convertCfnRouterInputMediaLiveChannelRouterInputConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouterInputMediaLiveChannelRouterInputConfigurationPropertyValidator(properties).assertSuccess(),{MediaLiveChannelArn:cdk().stringToCloudFormation(properties.mediaLiveChannelArn),MediaLiveChannelOutputName:cdk().stringToCloudFormation(properties.mediaLiveChannelOutputName),MediaLivePipelineId:cdk().stringToCloudFormation(properties.mediaLivePipelineId),SourceTransitDecryption:convertCfnRouterInputMediaLiveTransitEncryptionPropertyToCloudFormation(properties.sourceTransitDecryption)}):properties}function CfnRouterInputMediaLiveChannelRouterInputConfigurationPropertyFromCloudFormation(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("mediaLiveChannelArn","MediaLiveChannelArn",properties.MediaLiveChannelArn!=null?cfn_parse().FromCloudFormation.getString(properties.MediaLiveChannelArn):void 0),ret.addPropertyResult("mediaLiveChannelOutputName","MediaLiveChannelOutputName",properties.MediaLiveChannelOutputName!=null?cfn_parse().FromCloudFormation.getString(properties.MediaLiveChannelOutputName):void 0),ret.addPropertyResult("mediaLivePipelineId","MediaLivePipelineId",properties.MediaLivePipelineId!=null?cfn_parse().FromCloudFormation.getString(properties.MediaLivePipelineId):void 0),ret.addPropertyResult("sourceTransitDecryption","SourceTransitDecryption",properties.SourceTransitDecryption!=null?CfnRouterInputMediaLiveTransitEncryptionPropertyFromCloudFormation(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("mediaLiveChannel",CfnRouterInputMediaLiveChannelRouterInputConfigurationPropertyValidator)(properties.mediaLiveChannel)),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),MediaLiveChannel:convertCfnRouterInputMediaLiveChannelRouterInputConfigurationPropertyToCloudFormation(properties.mediaLiveChannel),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("mediaLiveChannel","MediaLiveChannel",properties.MediaLiveChannel!=null?CfnRouterInputMediaLiveChannelRouterInputConfigurationPropertyFromCloudFormation(properties.MediaLiveChannel):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.252.0"};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(cfn_parse().lit`UnexpectedIResolvable`,"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}cdkTagManager;_configuration;_name;_regionName;_tags;cfnPropertyNames={tags:"Tags",configuration:"Configuration",name:"Name",regionName:"RegionName"};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.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 configuration(){return this._configuration}set configuration(value){cdk().traceProperty(this.node,"Configuration"),this._configuration=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get regionName(){return this._regionName}set regionName(value){cdk().traceProperty(this.node,"RegionName"),this._regionName=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrAssociatedInputCount(){return cdk().Token.asNumber(this.getAtt("AssociatedInputCount",cdk().ResolutionTypeHint.NUMBER))}get attrAssociatedOutputCount(){return cdk().Token.asNumber(this.getAtt("AssociatedOutputCount",cdk().ResolutionTypeHint.NUMBER))}get attrCreatedAt(){return cdk().Token.asString(this.getAtt("CreatedAt",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrNetworkInterfaceType(){return cdk().Token.asString(this.getAtt("NetworkInterfaceType",cdk().ResolutionTypeHint.STRING))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get attrUpdatedAt(){return cdk().Token.asString(this.getAtt("UpdatedAt",cdk().ResolutionTypeHint.STRING))}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:logicalId",this._synthesizeLogicalId()),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.252.0"};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(cfn_parse().lit`UnexpectedIResolvable`,"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}_availabilityZone;cdkTagManager;_configuration;_maintenanceConfiguration;_maximumBitrate;_name;_regionName;_routingScope;_tags;_tier;cfnPropertyNames={availabilityZone:"AvailabilityZone",tags:"Tags",configuration:"Configuration",maintenanceConfiguration:"MaintenanceConfiguration",maximumBitrate:"MaximumBitrate",name:"Name",regionName:"RegionName",routingScope:"RoutingScope",tier:"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._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 availabilityZone(){return this._availabilityZone}set availabilityZone(value){cdk().traceProperty(this.node,"AvailabilityZone"),this._availabilityZone=value}get configuration(){return this._configuration}set configuration(value){cdk().traceProperty(this.node,"Configuration"),this._configuration=value}get maintenanceConfiguration(){return this._maintenanceConfiguration}set maintenanceConfiguration(value){cdk().traceProperty(this.node,"MaintenanceConfiguration"),this._maintenanceConfiguration=value}get maximumBitrate(){return this._maximumBitrate}set maximumBitrate(value){cdk().traceProperty(this.node,"MaximumBitrate"),this._maximumBitrate=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get regionName(){return this._regionName}set regionName(value){cdk().traceProperty(this.node,"RegionName"),this._regionName=value}get routingScope(){return this._routingScope}set routingScope(value){cdk().traceProperty(this.node,"RoutingScope"),this._routingScope=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get tier(){return this._tier}set tier(value){cdk().traceProperty(this.node,"Tier"),this._tier=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrCreatedAt(){return cdk().Token.asString(this.getAtt("CreatedAt",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrIpAddress(){return cdk().Token.asString(this.getAtt("IpAddress",cdk().ResolutionTypeHint.STRING))}get attrMaintenanceType(){return cdk().Token.asString(this.getAtt("MaintenanceType",cdk().ResolutionTypeHint.STRING))}get attrOutputType(){return cdk().Token.asString(this.getAtt("OutputType",cdk().ResolutionTypeHint.STRING))}get attrRoutedState(){return cdk().Token.asString(this.getAtt("RoutedState",cdk().ResolutionTypeHint.STRING))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get attrUpdatedAt(){return cdk().Token.asString(this.getAtt("UpdatedAt",cdk().ResolutionTypeHint.STRING))}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:logicalId",this._synthesizeLogicalId()),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}