"use strict";var _a,_b,_c;Object.defineProperty(exports,"__esModule",{value:!0}),exports.SubjectAlternativeNames=exports.MutualTlsValidationTrust=exports.TlsValidationTrust=void 0;const JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti");class TlsValidationTrust{static file(certificateChain){return new TlsValidationFileTrust(certificateChain)}static acm(certificateAuthorities){return new TlsValidationAcmTrust(certificateAuthorities)}static sds(secretName){return new TlsValidationSdsTrust(secretName)}}exports.TlsValidationTrust=TlsValidationTrust,_a=JSII_RTTI_SYMBOL_1,TlsValidationTrust[_a]={fqn:"aws-cdk-lib.aws_appmesh.TlsValidationTrust",version:"2.159.0"};class MutualTlsValidationTrust extends TlsValidationTrust{constructor(){super(...arguments),this.differentiator=!1}}exports.MutualTlsValidationTrust=MutualTlsValidationTrust,_b=JSII_RTTI_SYMBOL_1,MutualTlsValidationTrust[_b]={fqn:"aws-cdk-lib.aws_appmesh.MutualTlsValidationTrust",version:"2.159.0"};class TlsValidationAcmTrust extends TlsValidationTrust{constructor(certificateAuthorities){super(),this.certificateAuthorities=certificateAuthorities}bind(_scope){if(this.certificateAuthorities.length===0)throw new Error("you must provide at least one Certificate Authority when creating an ACM Trust ClientPolicy");return{tlsValidationTrust:{acm:{certificateAuthorityArns:this.certificateAuthorities.map(certificateArn=>certificateArn.certificateAuthorityArn)}}}}}class TlsValidationFileTrust extends MutualTlsValidationTrust{constructor(certificateChain){super(),this.certificateChain=certificateChain}bind(_scope){return{tlsValidationTrust:{file:{certificateChain:this.certificateChain}}}}}class TlsValidationSdsTrust extends MutualTlsValidationTrust{constructor(secretName){super(),this.secretName=secretName}bind(_scope){return{tlsValidationTrust:{sds:{secretName:this.secretName}}}}}class SubjectAlternativeNames{static matchingExactly(...names){return new SubjectAlternativeNamesImpl({exact:names})}}exports.SubjectAlternativeNames=SubjectAlternativeNames,_c=JSII_RTTI_SYMBOL_1,SubjectAlternativeNames[_c]={fqn:"aws-cdk-lib.aws_appmesh.SubjectAlternativeNames",version:"2.159.0"};class SubjectAlternativeNamesImpl extends SubjectAlternativeNames{constructor(matchProperty){super(),this.matchProperty=matchProperty}bind(_scope){return{subjectAlternativeNamesMatch:this.matchProperty}}}
