"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.VirtualGateway = exports.Spec = exports.Listener = exports.PortMapping = exports.HealthCheck = exports.ConnectionPool = exports.Http2 = exports.Http = exports.Grpc = exports.ListenerTls = exports.ListenerTlsValidation = exports.ListenerTlsValidationTrust = exports.ListenerTlsCertificate = exports.ListenerTlsCertificateAcm = exports.BackendDefaults = exports.ClientPolicy = exports.ClientPolicyTls = exports.ClientPolicyTlsValidation = exports.SubjectAlternativeNames = exports.Match = exports.ClientPolicyTlsValidationTrust = exports.ClientPolicyTlsValidationTrustAcm = exports.ClientPolicyTlsValidationTrustFile = exports.ClientPolicyTlsCertificate = exports.Sds = exports.ClientPolicyTlsCertificateFile = exports.Logging = exports.AccessLog = exports.AccessLogFile = void 0;
const core = __importStar(require("@terrascript/core"));
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 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 ClientPolicyTlsValidationTrustFile extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], ClientPolicyTlsValidationTrustFile.prototype, "certificateChain", void 0);
exports.ClientPolicyTlsValidationTrustFile = ClientPolicyTlsValidationTrustFile;
class ClientPolicyTlsValidationTrustAcm extends core.Schema {
}
__decorate([
    core.attr(String, { kind: "array" }),
    __metadata("design:type", Object)
], ClientPolicyTlsValidationTrustAcm.prototype, "certificateAuthorityArns", void 0);
exports.ClientPolicyTlsValidationTrustAcm = ClientPolicyTlsValidationTrustAcm;
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 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 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 BackendDefaults extends core.Schema {
}
__decorate([
    core.attr(ClientPolicy),
    __metadata("design:type", ClientPolicy)
], BackendDefaults.prototype, "clientPolicy", void 0);
exports.BackendDefaults = BackendDefaults;
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 Grpc extends core.Schema {
}
__decorate([
    core.attr(Number),
    __metadata("design:type", Object)
], Grpc.prototype, "maxRequests", void 0);
exports.Grpc = Grpc;
class Http extends core.Schema {
}
__decorate([
    core.attr(Number),
    __metadata("design:type", Object)
], Http.prototype, "maxConnections", void 0);
__decorate([
    core.attr(Number),
    __metadata("design:type", Object)
], Http.prototype, "maxPendingRequests", void 0);
exports.Http = Http;
class Http2 extends core.Schema {
}
__decorate([
    core.attr(Number),
    __metadata("design:type", Object)
], Http2.prototype, "maxRequests", void 0);
exports.Http2 = Http2;
class ConnectionPool extends core.Schema {
}
__decorate([
    core.attr(Grpc),
    __metadata("design:type", Grpc)
], ConnectionPool.prototype, "grpc", void 0);
__decorate([
    core.attr(Http),
    __metadata("design:type", Http)
], ConnectionPool.prototype, "http", void 0);
__decorate([
    core.attr(Http2),
    __metadata("design:type", Http2)
], ConnectionPool.prototype, "http2", 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 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 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(PortMapping),
    __metadata("design:type", PortMapping)
], Listener.prototype, "portMapping", void 0);
__decorate([
    core.attr(ListenerTls),
    __metadata("design:type", ListenerTls)
], Listener.prototype, "tls", void 0);
exports.Listener = Listener;
class Spec extends core.Schema {
}
__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);
exports.Spec = Spec;
class VirtualGateway extends core.Resource {
    constructor(name, args) {
        super(name, "aws_appmesh_virtual_gateway", args);
    }
    getNamespace() {
        return "aws_appmesh";
    }
}
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], VirtualGateway.prototype, "arn", void 0);
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], VirtualGateway.prototype, "createdDate", void 0);
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], VirtualGateway.prototype, "id", void 0);
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], VirtualGateway.prototype, "lastUpdatedDate", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], VirtualGateway.prototype, "meshName", void 0);
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], VirtualGateway.prototype, "meshOwner", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], VirtualGateway.prototype, "name", void 0);
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], VirtualGateway.prototype, "resourceOwner", void 0);
__decorate([
    core.attr(Spec),
    __metadata("design:type", Spec)
], VirtualGateway.prototype, "spec", void 0);
__decorate([
    core.attr(String, { kind: "map" }),
    __metadata("design:type", Object)
], VirtualGateway.prototype, "tags", void 0);
__decorate([
    core.attr(String, { computed: true, kind: "map" }),
    __metadata("design:type", Object)
], VirtualGateway.prototype, "tagsAll", void 0);
exports.VirtualGateway = VirtualGateway;
//# sourceMappingURL=virtual_gateway.js.map