"use strict";var _a,_b;Object.defineProperty(exports,"__esModule",{value:!0}),exports.Backend=exports.AccessLog=exports.Protocol=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),cdk=require("../../core"),utils_1=require("./private/utils");var Protocol;(function(Protocol2){Protocol2.HTTP="http",Protocol2.TCP="tcp",Protocol2.HTTP2="http2",Protocol2.GRPC="grpc"})(Protocol=exports.Protocol||(exports.Protocol={}));class AccessLog{static fromFilePath(filePath){return new FileAccessLog(filePath)}}exports.AccessLog=AccessLog,_a=JSII_RTTI_SYMBOL_1,AccessLog[_a]={fqn:"aws-cdk-lib.aws_appmesh.AccessLog",version:"2.21.0"};class FileAccessLog extends AccessLog{constructor(filePath){super(),this.filePath=filePath}bind(_scope){return{virtualNodeAccessLog:{file:{path:this.filePath}},virtualGatewayAccessLog:{file:{path:this.filePath}}}}}class Backend{static virtualService(virtualService,props={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_appmesh_IVirtualService(virtualService),jsiiDeprecationWarnings.aws_cdk_lib_aws_appmesh_VirtualServiceBackendOptions(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.virtualService),error}return new VirtualServiceBackend(virtualService,props.tlsClientPolicy)}}exports.Backend=Backend,_b=JSII_RTTI_SYMBOL_1,Backend[_b]={fqn:"aws-cdk-lib.aws_appmesh.Backend",version:"2.21.0"};class VirtualServiceBackend extends Backend{constructor(virtualService,tlsClientPolicy){super(),this.virtualService=virtualService,this.tlsClientPolicy=tlsClientPolicy}bind(scope){return{virtualServiceBackend:{virtualService:{virtualServiceName:cdk.Token.isUnresolved(this.virtualService.virtualServiceName)?this.virtualService.physicalName:this.virtualService.virtualServiceName,clientPolicy:this.tlsClientPolicy?{tls:utils_1.renderTlsClientPolicy(scope,this.tlsClientPolicy)}:void 0}}}}}
//# sourceMappingURL=shared-interfaces.js.map
