"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    var desc = Object.getOwnPropertyDescriptor(m, k);
    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
      desc = { enumerable: true, get: function() { return m[k]; } };
    }
    Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
    Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
    o["default"] = v;
});
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
    __setModuleDefault(result, mod);
    return result;
};
var __metadata = (this && this.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.VirtualNode = exports.Spec = exports.Logging = exports.AccessLog = exports.AccessLogFile = exports.Listener = exports.ListenerTls = exports.ListenerTlsValidation = exports.ListenerTlsValidationTrust = exports.ListenerTlsCertificate = exports.ListenerTlsCertificateAcm = exports.Timeout = exports.TimeoutHttp = exports.TimeoutGrpc = exports.TimeoutTcp = exports.TimeoutHttp2 = exports.PerRequest = exports.Idle = exports.PortMapping = exports.OutlierDetection = exports.Interval = exports.BaseEjectionDuration = exports.HealthCheck = exports.ConnectionPool = exports.ConnectionPoolHttp = exports.ConnectionPoolGrpc = exports.ConnectionPoolTcp = exports.ConnectionPoolHttp2 = exports.BackendDefaults = exports.Backend = exports.VirtualService = exports.ClientPolicy = exports.ClientPolicyTls = exports.ClientPolicyTlsValidation = exports.ClientPolicyTlsValidationTrust = exports.ClientPolicyTlsValidationTrustFile = exports.ClientPolicyTlsValidationTrustAcm = exports.SubjectAlternativeNames = exports.Match = exports.ClientPolicyTlsCertificate = exports.Sds = exports.ClientPolicyTlsCertificateFile = exports.ServiceDiscovery = exports.Dns = exports.AwsCloudMap = void 0;
const core = __importStar(require("@terrascript/core"));
class AwsCloudMap extends core.Schema {
}
__decorate([
    core.attr(String, { kind: "map" }),
    __metadata("design:type", Object)
], AwsCloudMap.prototype, "attributes", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], AwsCloudMap.prototype, "namespaceName", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], AwsCloudMap.prototype, "serviceName", void 0);
exports.AwsCloudMap = AwsCloudMap;
class Dns extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], Dns.prototype, "hostname", void 0);
exports.Dns = Dns;
class ServiceDiscovery extends core.Schema {
}
__decorate([
    core.attr(AwsCloudMap),
    __metadata("design:type", AwsCloudMap)
], ServiceDiscovery.prototype, "awsCloudMap", void 0);
__decorate([
    core.attr(Dns),
    __metadata("design:type", Dns)
], ServiceDiscovery.prototype, "dns", void 0);
exports.ServiceDiscovery = ServiceDiscovery;
class ClientPolicyTlsCertificateFile extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], ClientPolicyTlsCertificateFile.prototype, "certificateChain", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], ClientPolicyTlsCertificateFile.prototype, "privateKey", void 0);
exports.ClientPolicyTlsCertificateFile = ClientPolicyTlsCertificateFile;
class Sds extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], Sds.prototype, "secretName", void 0);
exports.Sds = Sds;
class ClientPolicyTlsCertificate extends core.Schema {
}
__decorate([
    core.attr(ClientPolicyTlsCertificateFile),
    __metadata("design:type", ClientPolicyTlsCertificateFile)
], ClientPolicyTlsCertificate.prototype, "file", void 0);
__decorate([
    core.attr(Sds),
    __metadata("design:type", Sds)
], ClientPolicyTlsCertificate.prototype, "sds", void 0);
exports.ClientPolicyTlsCertificate = ClientPolicyTlsCertificate;
class Match extends core.Schema {
}
__decorate([
    core.attr(String, { kind: "array" }),
    __metadata("design:type", Object)
], Match.prototype, "exact", void 0);
exports.Match = Match;
class SubjectAlternativeNames extends core.Schema {
}
__decorate([
    core.attr(Match),
    __metadata("design:type", Match)
], SubjectAlternativeNames.prototype, "match", void 0);
exports.SubjectAlternativeNames = SubjectAlternativeNames;
class ClientPolicyTlsValidationTrustAcm extends core.Schema {
}
__decorate([
    core.attr(String, { kind: "array" }),
    __metadata("design:type", Object)
], ClientPolicyTlsValidationTrustAcm.prototype, "certificateAuthorityArns", void 0);
exports.ClientPolicyTlsValidationTrustAcm = ClientPolicyTlsValidationTrustAcm;
class ClientPolicyTlsValidationTrustFile extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], ClientPolicyTlsValidationTrustFile.prototype, "certificateChain", void 0);
exports.ClientPolicyTlsValidationTrustFile = ClientPolicyTlsValidationTrustFile;
class ClientPolicyTlsValidationTrust extends core.Schema {
}
__decorate([
    core.attr(ClientPolicyTlsValidationTrustAcm),
    __metadata("design:type", ClientPolicyTlsValidationTrustAcm)
], ClientPolicyTlsValidationTrust.prototype, "acm", void 0);
__decorate([
    core.attr(ClientPolicyTlsValidationTrustFile),
    __metadata("design:type", ClientPolicyTlsValidationTrustFile)
], ClientPolicyTlsValidationTrust.prototype, "file", void 0);
__decorate([
    core.attr(Sds),
    __metadata("design:type", Sds)
], ClientPolicyTlsValidationTrust.prototype, "sds", void 0);
exports.ClientPolicyTlsValidationTrust = ClientPolicyTlsValidationTrust;
class ClientPolicyTlsValidation extends core.Schema {
}
__decorate([
    core.attr(SubjectAlternativeNames),
    __metadata("design:type", SubjectAlternativeNames)
], ClientPolicyTlsValidation.prototype, "subjectAlternativeNames", void 0);
__decorate([
    core.attr(ClientPolicyTlsValidationTrust),
    __metadata("design:type", ClientPolicyTlsValidationTrust)
], ClientPolicyTlsValidation.prototype, "trust", void 0);
exports.ClientPolicyTlsValidation = ClientPolicyTlsValidation;
class ClientPolicyTls extends core.Schema {
}
__decorate([
    core.attr(ClientPolicyTlsCertificate),
    __metadata("design:type", ClientPolicyTlsCertificate)
], ClientPolicyTls.prototype, "certificate", void 0);
__decorate([
    core.attr(Boolean),
    __metadata("design:type", Object)
], ClientPolicyTls.prototype, "enforce", void 0);
__decorate([
    core.attr(Number, { kind: "array" }),
    __metadata("design:type", Object)
], ClientPolicyTls.prototype, "ports", void 0);
__decorate([
    core.attr(ClientPolicyTlsValidation),
    __metadata("design:type", ClientPolicyTlsValidation)
], ClientPolicyTls.prototype, "validation", void 0);
exports.ClientPolicyTls = ClientPolicyTls;
class ClientPolicy extends core.Schema {
}
__decorate([
    core.attr(ClientPolicyTls),
    __metadata("design:type", ClientPolicyTls)
], ClientPolicy.prototype, "tls", void 0);
exports.ClientPolicy = ClientPolicy;
class VirtualService extends core.Schema {
}
__decorate([
    core.attr(ClientPolicy),
    __metadata("design:type", ClientPolicy)
], VirtualService.prototype, "clientPolicy", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], VirtualService.prototype, "virtualServiceName", void 0);
exports.VirtualService = VirtualService;
class Backend extends core.Schema {
}
__decorate([
    core.attr(VirtualService),
    __metadata("design:type", VirtualService)
], Backend.prototype, "virtualService", void 0);
exports.Backend = Backend;
class BackendDefaults extends core.Schema {
}
__decorate([
    core.attr(ClientPolicy),
    __metadata("design:type", ClientPolicy)
], BackendDefaults.prototype, "clientPolicy", void 0);
exports.BackendDefaults = BackendDefaults;
class ConnectionPoolHttp2 extends core.Schema {
}
__decorate([
    core.attr(Number),
    __metadata("design:type", Object)
], ConnectionPoolHttp2.prototype, "maxRequests", void 0);
exports.ConnectionPoolHttp2 = ConnectionPoolHttp2;
class ConnectionPoolTcp extends core.Schema {
}
__decorate([
    core.attr(Number),
    __metadata("design:type", Object)
], ConnectionPoolTcp.prototype, "maxConnections", void 0);
exports.ConnectionPoolTcp = ConnectionPoolTcp;
class ConnectionPoolGrpc extends core.Schema {
}
__decorate([
    core.attr(Number),
    __metadata("design:type", Object)
], ConnectionPoolGrpc.prototype, "maxRequests", void 0);
exports.ConnectionPoolGrpc = ConnectionPoolGrpc;
class ConnectionPoolHttp extends core.Schema {
}
__decorate([
    core.attr(Number),
    __metadata("design:type", Object)
], ConnectionPoolHttp.prototype, "maxConnections", void 0);
__decorate([
    core.attr(Number),
    __metadata("design:type", Object)
], ConnectionPoolHttp.prototype, "maxPendingRequests", void 0);
exports.ConnectionPoolHttp = ConnectionPoolHttp;
class ConnectionPool extends core.Schema {
}
__decorate([
    core.attr(ConnectionPoolGrpc),
    __metadata("design:type", ConnectionPoolGrpc)
], ConnectionPool.prototype, "grpc", void 0);
__decorate([
    core.attr(ConnectionPoolHttp),
    __metadata("design:type", ConnectionPoolHttp)
], ConnectionPool.prototype, "http", void 0);
__decorate([
    core.attr(ConnectionPoolHttp2),
    __metadata("design:type", ConnectionPoolHttp2)
], ConnectionPool.prototype, "http2", void 0);
__decorate([
    core.attr(ConnectionPoolTcp),
    __metadata("design:type", ConnectionPoolTcp)
], ConnectionPool.prototype, "tcp", void 0);
exports.ConnectionPool = ConnectionPool;
class HealthCheck extends core.Schema {
}
__decorate([
    core.attr(Number),
    __metadata("design:type", Object)
], HealthCheck.prototype, "healthyThreshold", void 0);
__decorate([
    core.attr(Number),
    __metadata("design:type", Object)
], HealthCheck.prototype, "intervalMillis", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], HealthCheck.prototype, "path", void 0);
__decorate([
    core.attr(Number, { computed: true }),
    __metadata("design:type", Object)
], HealthCheck.prototype, "port", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], HealthCheck.prototype, "protocol", void 0);
__decorate([
    core.attr(Number),
    __metadata("design:type", Object)
], HealthCheck.prototype, "timeoutMillis", void 0);
__decorate([
    core.attr(Number),
    __metadata("design:type", Object)
], HealthCheck.prototype, "unhealthyThreshold", void 0);
exports.HealthCheck = HealthCheck;
class BaseEjectionDuration extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], BaseEjectionDuration.prototype, "unit", void 0);
__decorate([
    core.attr(Number),
    __metadata("design:type", Object)
], BaseEjectionDuration.prototype, "value", void 0);
exports.BaseEjectionDuration = BaseEjectionDuration;
class Interval extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], Interval.prototype, "unit", void 0);
__decorate([
    core.attr(Number),
    __metadata("design:type", Object)
], Interval.prototype, "value", void 0);
exports.Interval = Interval;
class OutlierDetection extends core.Schema {
}
__decorate([
    core.attr(BaseEjectionDuration),
    __metadata("design:type", BaseEjectionDuration)
], OutlierDetection.prototype, "baseEjectionDuration", void 0);
__decorate([
    core.attr(Interval),
    __metadata("design:type", Interval)
], OutlierDetection.prototype, "interval", void 0);
__decorate([
    core.attr(Number),
    __metadata("design:type", Object)
], OutlierDetection.prototype, "maxEjectionPercent", void 0);
__decorate([
    core.attr(Number),
    __metadata("design:type", Object)
], OutlierDetection.prototype, "maxServerErrors", void 0);
exports.OutlierDetection = OutlierDetection;
class PortMapping extends core.Schema {
}
__decorate([
    core.attr(Number),
    __metadata("design:type", Object)
], PortMapping.prototype, "port", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], PortMapping.prototype, "protocol", void 0);
exports.PortMapping = PortMapping;
class Idle extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], Idle.prototype, "unit", void 0);
__decorate([
    core.attr(Number),
    __metadata("design:type", Object)
], Idle.prototype, "value", void 0);
exports.Idle = Idle;
class PerRequest extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], PerRequest.prototype, "unit", void 0);
__decorate([
    core.attr(Number),
    __metadata("design:type", Object)
], PerRequest.prototype, "value", void 0);
exports.PerRequest = PerRequest;
class TimeoutHttp2 extends core.Schema {
}
__decorate([
    core.attr(Idle),
    __metadata("design:type", Idle)
], TimeoutHttp2.prototype, "idle", void 0);
__decorate([
    core.attr(PerRequest),
    __metadata("design:type", PerRequest)
], TimeoutHttp2.prototype, "perRequest", void 0);
exports.TimeoutHttp2 = TimeoutHttp2;
class TimeoutTcp extends core.Schema {
}
__decorate([
    core.attr(Idle),
    __metadata("design:type", Idle)
], TimeoutTcp.prototype, "idle", void 0);
exports.TimeoutTcp = TimeoutTcp;
class TimeoutGrpc extends core.Schema {
}
__decorate([
    core.attr(Idle),
    __metadata("design:type", Idle)
], TimeoutGrpc.prototype, "idle", void 0);
__decorate([
    core.attr(PerRequest),
    __metadata("design:type", PerRequest)
], TimeoutGrpc.prototype, "perRequest", void 0);
exports.TimeoutGrpc = TimeoutGrpc;
class TimeoutHttp extends core.Schema {
}
__decorate([
    core.attr(Idle),
    __metadata("design:type", Idle)
], TimeoutHttp.prototype, "idle", void 0);
__decorate([
    core.attr(PerRequest),
    __metadata("design:type", PerRequest)
], TimeoutHttp.prototype, "perRequest", void 0);
exports.TimeoutHttp = TimeoutHttp;
class Timeout extends core.Schema {
}
__decorate([
    core.attr(TimeoutGrpc),
    __metadata("design:type", TimeoutGrpc)
], Timeout.prototype, "grpc", void 0);
__decorate([
    core.attr(TimeoutHttp),
    __metadata("design:type", TimeoutHttp)
], Timeout.prototype, "http", void 0);
__decorate([
    core.attr(TimeoutHttp2),
    __metadata("design:type", TimeoutHttp2)
], Timeout.prototype, "http2", void 0);
__decorate([
    core.attr(TimeoutTcp),
    __metadata("design:type", TimeoutTcp)
], Timeout.prototype, "tcp", void 0);
exports.Timeout = Timeout;
class ListenerTlsCertificateAcm extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], ListenerTlsCertificateAcm.prototype, "certificateArn", void 0);
exports.ListenerTlsCertificateAcm = ListenerTlsCertificateAcm;
class ListenerTlsCertificate extends core.Schema {
}
__decorate([
    core.attr(ListenerTlsCertificateAcm),
    __metadata("design:type", ListenerTlsCertificateAcm)
], ListenerTlsCertificate.prototype, "acm", void 0);
__decorate([
    core.attr(ClientPolicyTlsCertificateFile),
    __metadata("design:type", ClientPolicyTlsCertificateFile)
], ListenerTlsCertificate.prototype, "file", void 0);
__decorate([
    core.attr(Sds),
    __metadata("design:type", Sds)
], ListenerTlsCertificate.prototype, "sds", void 0);
exports.ListenerTlsCertificate = ListenerTlsCertificate;
class ListenerTlsValidationTrust extends core.Schema {
}
__decorate([
    core.attr(ClientPolicyTlsValidationTrustFile),
    __metadata("design:type", ClientPolicyTlsValidationTrustFile)
], ListenerTlsValidationTrust.prototype, "file", void 0);
__decorate([
    core.attr(Sds),
    __metadata("design:type", Sds)
], ListenerTlsValidationTrust.prototype, "sds", void 0);
exports.ListenerTlsValidationTrust = ListenerTlsValidationTrust;
class ListenerTlsValidation extends core.Schema {
}
__decorate([
    core.attr(SubjectAlternativeNames),
    __metadata("design:type", SubjectAlternativeNames)
], ListenerTlsValidation.prototype, "subjectAlternativeNames", void 0);
__decorate([
    core.attr(ListenerTlsValidationTrust),
    __metadata("design:type", ListenerTlsValidationTrust)
], ListenerTlsValidation.prototype, "trust", void 0);
exports.ListenerTlsValidation = ListenerTlsValidation;
class ListenerTls extends core.Schema {
}
__decorate([
    core.attr(ListenerTlsCertificate),
    __metadata("design:type", ListenerTlsCertificate)
], ListenerTls.prototype, "certificate", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], ListenerTls.prototype, "mode", void 0);
__decorate([
    core.attr(ListenerTlsValidation),
    __metadata("design:type", ListenerTlsValidation)
], ListenerTls.prototype, "validation", void 0);
exports.ListenerTls = ListenerTls;
class Listener extends core.Schema {
}
__decorate([
    core.attr(ConnectionPool),
    __metadata("design:type", ConnectionPool)
], Listener.prototype, "connectionPool", void 0);
__decorate([
    core.attr(HealthCheck),
    __metadata("design:type", HealthCheck)
], Listener.prototype, "healthCheck", void 0);
__decorate([
    core.attr(OutlierDetection),
    __metadata("design:type", OutlierDetection)
], Listener.prototype, "outlierDetection", void 0);
__decorate([
    core.attr(PortMapping),
    __metadata("design:type", PortMapping)
], Listener.prototype, "portMapping", void 0);
__decorate([
    core.attr(Timeout),
    __metadata("design:type", Timeout)
], Listener.prototype, "timeout", void 0);
__decorate([
    core.attr(ListenerTls),
    __metadata("design:type", ListenerTls)
], Listener.prototype, "tls", void 0);
exports.Listener = Listener;
class AccessLogFile extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], AccessLogFile.prototype, "path", void 0);
exports.AccessLogFile = AccessLogFile;
class AccessLog extends core.Schema {
}
__decorate([
    core.attr(AccessLogFile),
    __metadata("design:type", AccessLogFile)
], AccessLog.prototype, "file", void 0);
exports.AccessLog = AccessLog;
class Logging extends core.Schema {
}
__decorate([
    core.attr(AccessLog),
    __metadata("design:type", AccessLog)
], Logging.prototype, "accessLog", void 0);
exports.Logging = Logging;
class Spec extends core.Schema {
}
__decorate([
    core.attr(Backend, { kind: "array" }),
    __metadata("design:type", Object)
], Spec.prototype, "backend", void 0);
__decorate([
    core.attr(BackendDefaults),
    __metadata("design:type", BackendDefaults)
], Spec.prototype, "backendDefaults", void 0);
__decorate([
    core.attr(Listener),
    __metadata("design:type", Listener)
], Spec.prototype, "listener", void 0);
__decorate([
    core.attr(Logging),
    __metadata("design:type", Logging)
], Spec.prototype, "logging", void 0);
__decorate([
    core.attr(ServiceDiscovery),
    __metadata("design:type", ServiceDiscovery)
], Spec.prototype, "serviceDiscovery", void 0);
exports.Spec = Spec;
class VirtualNode extends core.Resource {
    constructor(name, args) {
        super(name, "aws_appmesh_virtual_node", args);
    }
    getNamespace() {
        return "aws_appmesh";
    }
}
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], VirtualNode.prototype, "arn", void 0);
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], VirtualNode.prototype, "createdDate", void 0);
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], VirtualNode.prototype, "id", void 0);
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], VirtualNode.prototype, "lastUpdatedDate", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], VirtualNode.prototype, "meshName", void 0);
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], VirtualNode.prototype, "meshOwner", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], VirtualNode.prototype, "name", void 0);
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], VirtualNode.prototype, "resourceOwner", void 0);
__decorate([
    core.attr(Spec),
    __metadata("design:type", Spec)
], VirtualNode.prototype, "spec", void 0);
__decorate([
    core.attr(String, { kind: "map" }),
    __metadata("design:type", Object)
], VirtualNode.prototype, "tags", void 0);
__decorate([
    core.attr(String, { computed: true, kind: "map" }),
    __metadata("design:type", Object)
], VirtualNode.prototype, "tagsAll", void 0);
exports.VirtualNode = VirtualNode;
//# sourceMappingURL=virtual_node.js.map