UNPKG

@cloudcamp/aws-runtime

Version:

CloudCamp - Launch faster by building scalable infrastructure in few lines of code.

91 lines 12.8 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.Ref = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const ssm = require("aws-cdk-lib/aws-ssm"); const route53 = require("aws-cdk-lib/aws-route53"); const certificatemanager = require("aws-cdk-lib/aws-certificatemanager"); const rds = require("aws-cdk-lib/aws-rds"); const constructs_1 = require("constructs"); /** * AWS Systems Manager functions. Used to communicate IDs between stages and apps. * * @order 7 * @ignore */ class SSM { /** * Return the parameter name */ static parameter(type, id, appName, name) { return `/cloudcamp/${appName || "global"}/${type}/${name || id}`; } } /** * @experimental * @ignore true */ class Ref extends constructs_1.Construct { constructor(scope, id) { super(scope, id); } /** * @experimental */ static addHostedZone(scope, id, hostedZone, props) { let global = new Ref(scope, id); new ssm.StringParameter(global, "parameter", { parameterName: SSM.parameter("hosted-zone", id, props === null || props === void 0 ? void 0 : props.appName, props === null || props === void 0 ? void 0 : props.name), stringValue: hostedZone.hostedZoneId, }); } /** * @experimental */ static getHostedZone(scope, id, props) { let global = new Ref(scope, id); let hostedZoneId = ssm.StringParameter.fromStringParameterName(global, "parameter", SSM.parameter("hosted-zone", id, props === null || props === void 0 ? void 0 : props.appName, props === null || props === void 0 ? void 0 : props.name)).stringValue; return route53.HostedZone.fromHostedZoneId(global, "construct", hostedZoneId); } /** * @experimental */ static addCertificate(scope, id, certificate, props) { let global = new Ref(scope, id); new ssm.StringParameter(global, "parameter", { parameterName: SSM.parameter("certificate", id, props === null || props === void 0 ? void 0 : props.appName, props === null || props === void 0 ? void 0 : props.name), stringValue: certificate.certificateArn, }); } /** * @experimental */ static getCertificate(scope, id, props) { let global = new Ref(scope, id); let certificateArn = ssm.StringParameter.fromStringParameterName(global, "parameter", SSM.parameter("certificate", id, props === null || props === void 0 ? void 0 : props.appName, props === null || props === void 0 ? void 0 : props.name)).stringValue; return certificatemanager.Certificate.fromCertificateArn(global, "construct", certificateArn); } /** * @experimental */ static addServerlessCluster(scope, id, serverlessCluster, props) { let global = new Ref(scope, id); new ssm.StringParameter(global, "parameter", { parameterName: SSM.parameter("serverless-cluster", id, props === null || props === void 0 ? void 0 : props.appName, props === null || props === void 0 ? void 0 : props.name), stringValue: serverlessCluster.clusterIdentifier, }); } /** * @experimental */ static getServerlessCluster(scope, id, props) { let global = new Ref(scope, id); let clusterIdentifier = ssm.StringParameter.fromStringParameterName(global, "parameter", SSM.parameter("serverless-cluster", id, props === null || props === void 0 ? void 0 : props.appName, props === null || props === void 0 ? void 0 : props.name)).stringValue; return rds.ServerlessCluster.fromServerlessClusterAttributes(global, "construct", { clusterIdentifier: clusterIdentifier }); } } exports.Ref = Ref; _a = JSII_RTTI_SYMBOL_1; Ref[_a] = { fqn: "@cloudcamp/aws-runtime.Ref", version: "0.0.1" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3JlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDJDQUEyQztBQUMzQyxtREFBbUQ7QUFDbkQseUVBQXlFO0FBQ3pFLDJDQUEyQztBQUMzQywyQ0FBdUM7QUFFdkM7Ozs7O0dBS0c7QUFDSCxNQUFNLEdBQUc7SUFDUDs7T0FFRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQ2QsSUFBWSxFQUNaLEVBQVUsRUFDVixPQUFnQixFQUNoQixJQUFhO1FBRWIsT0FBTyxjQUFjLE9BQU8sSUFBSSxRQUFRLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQztJQUNuRSxDQUFDO0NBQ0Y7Ozs7O0FBUUQsTUFBYSxHQUFJLFNBQVEsc0JBQVM7SUFDaEMsWUFBb0IsS0FBZ0IsRUFBRSxFQUFVO1FBQzlDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbkIsQ0FBQzs7OztJQUVELE1BQU0sQ0FBQyxhQUFhLENBQ2xCLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixVQUErQixFQUMvQixLQUF5QjtRQUV6QixJQUFJLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDaEMsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUU7WUFDM0MsYUFBYSxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQzFCLGFBQWEsRUFDYixFQUFFLEVBQ0YsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLE9BQU8sRUFDZCxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsSUFBSSxDQUNaO1lBQ0QsV0FBVyxFQUFFLFVBQVUsQ0FBQyxZQUFZO1NBQ3JDLENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUNsQixLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBeUI7UUFF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QUssdUJBQUwsS0FBSyxDQUFFLE9BQU8sRUFBRSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsSUFBSSxDQUFDLENBQ3JFLENBQUMsV0FBVyxDQUFDO1FBQ2QsT0FBTyxHQUFHLENBQUMsaUJBQWlCLENBQUMsK0JBQStCLENBQzFELE1BQU0sRUFDTixXQUFXLEVBQ1gsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxDQUN6QyxDQUFDO0lBQ0osQ0FBQzs7QUEvR0gsa0JBZ0hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgc3NtIGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc3NtXCI7XG5pbXBvcnQgKiBhcyByb3V0ZTUzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0ICogYXMgY2VydGlmaWNhdGVtYW5hZ2VyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyXCI7XG5pbXBvcnQgKiBhcyByZHMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1yZHNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbi8qKlxuICogQVdTIFN5c3RlbXMgTWFuYWdlciBmdW5jdGlvbnMuIFVzZWQgdG8gY29tbXVuaWNhdGUgSURzIGJldHdlZW4gc3RhZ2VzIGFuZCBhcHBzLlxuICpcbiAqIEBvcmRlciA3XG4gKiBAaWdub3JlXG4gKi9cbmNsYXNzIFNTTSB7XG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHBhcmFtZXRlciBuYW1lXG4gICAqL1xuICBzdGF0aWMgcGFyYW1ldGVyKFxuICAgIHR5cGU6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nLFxuICAgIGFwcE5hbWU/OiBzdHJpbmcsXG4gICAgbmFtZT86IHN0cmluZ1xuICApOiBzdHJpbmcge1xuICAgIHJldHVybiBgL2Nsb3VkY2FtcC8ke2FwcE5hbWUgfHwgXCJnbG9iYWxcIn0vJHt0eXBlfS8ke25hbWUgfHwgaWR9YDtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlZlBhcmFtZXRlclByb3BzIHtcbiAgcmVhZG9ubHkgYXBwTmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbn1cblxuICAgICAgICAgICAgICAgICAgXG5leHBvcnQgY2xhc3MgUmVmIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIHN0YXRpYyBhZGRIb3N0ZWRab25lKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBob3N0ZWRab25lOiByb3V0ZTUzLklIb3N0ZWRab25lLFxuICAgIHByb3BzPzogUmVmUGFyYW1ldGVyUHJvcHNcbiAgKSB7XG4gICAgbGV0IGdsb2JhbCA9IG5ldyBSZWYoc2NvcGUsIGlkKTtcbiAgICBuZXcgc3NtLlN0cmluZ1BhcmFtZXRlcihnbG9iYWwsIFwicGFyYW1ldGVyXCIsIHtcbiAgICAgIHBhcmFtZXRlck5hbWU6IFNTTS5wYXJhbWV0ZXIoXG4gICAgICAgIFwiaG9zdGVkLXpvbmVcIixcbiAgICAgICAgaWQsXG4gICAgICAgIHByb3BzPy5hcHBOYW1lLFxuICAgICAgICBwcm9wcz8ubmFtZVxuICAgICAgKSxcbiAgICAgIHN0cmluZ1ZhbHVlOiBob3N0ZWRab25lLmhvc3RlZFpvbmVJZCxcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRIb3N0ZWRab25lKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wcz86IFJlZlBhcmFtZXRlclByb3BzXG4gICk6IHJvdXRlNTMuSUhvc3RlZFpvbmUge1xuICAgIGxldCBnbG9iYWwgPSBuZXcgUmVmKHNjb3BlLCBpZCk7XG4gICAgbGV0IGhvc3RlZFpvbmVJZCA9IHNzbS5TdHJpbmdQYXJhbWV0ZXIuZnJvbVN0cmluZ1BhcmFtZXRlck5hbWUoXG4gICAgICBnbG9iYWwsXG4gICAgICBcInBhcmFtZXRlclwiLFxuICAgICAgU1NNLnBhcmFtZXRlcihcImhvc3RlZC16b25lXCIsIGlkLCBwcm9wcz8uYXBwTmFtZSwgcHJvcHM/Lm5hbWUpXG4gICAgKS5zdHJpbmdWYWx1ZTtcbiAgICByZXR1cm4gcm91dGU1My5Ib3N0ZWRab25lLmZyb21Ib3N0ZWRab25lSWQoXG4gICAgICBnbG9iYWwsXG4gICAgICBcImNvbnN0cnVjdFwiLFxuICAgICAgaG9zdGVkWm9uZUlkXG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBhZGRDZXJ0aWZpY2F0ZShcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgY2VydGlmaWNhdGU6IGNlcnRpZmljYXRlbWFuYWdlci5JQ2VydGlmaWNhdGUsXG4gICAgcHJvcHM/OiBSZWZQYXJhbWV0ZXJQcm9wc1xuICApIHtcbiAgICBsZXQgZ2xvYmFsID0gbmV3IFJlZihzY29wZSwgaWQpO1xuICAgIG5ldyBzc20uU3RyaW5nUGFyYW1ldGVyKGdsb2JhbCwgXCJwYXJhbWV0ZXJcIiwge1xuICAgICAgcGFyYW1ldGVyTmFtZTogU1NNLnBhcmFtZXRlcihcbiAgICAgICAgXCJjZXJ0aWZpY2F0ZVwiLFxuICAgICAgICBpZCxcbiAgICAgICAgcHJvcHM/LmFwcE5hbWUsXG4gICAgICAgIHByb3BzPy5uYW1lXG4gICAgICApLFxuICAgICAgc3RyaW5nVmFsdWU6IGNlcnRpZmljYXRlLmNlcnRpZmljYXRlQXJuLFxuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIGdldENlcnRpZmljYXRlKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wcz86IFJlZlBhcmFtZXRlclByb3BzXG4gICk6IGNlcnRpZmljYXRlbWFuYWdlci5JQ2VydGlmaWNhdGUge1xuICAgIGxldCBnbG9iYWwgPSBuZXcgUmVmKHNjb3BlLCBpZCk7XG4gICAgbGV0IGNlcnRpZmljYXRlQXJuID0gc3NtLlN0cmluZ1BhcmFtZXRlci5mcm9tU3RyaW5nUGFyYW1ldGVyTmFtZShcbiAgICAgIGdsb2JhbCxcbiAgICAgIFwicGFyYW1ldGVyXCIsXG4gICAgICBTU00ucGFyYW1ldGVyKFwiY2VydGlmaWNhdGVcIiwgaWQsIHByb3BzPy5hcHBOYW1lLCBwcm9wcz8ubmFtZSlcbiAgICApLnN0cmluZ1ZhbHVlO1xuICAgIHJldHVybiBjZXJ0aWZpY2F0ZW1hbmFnZXIuQ2VydGlmaWNhdGUuZnJvbUNlcnRpZmljYXRlQXJuKFxuICAgICAgZ2xvYmFsLFxuICAgICAgXCJjb25zdHJ1Y3RcIixcbiAgICAgIGNlcnRpZmljYXRlQXJuXG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBhZGRTZXJ2ZXJsZXNzQ2x1c3RlcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgc2VydmVybGVzc0NsdXN0ZXI6IHJkcy5JU2VydmVybGVzc0NsdXN0ZXIsXG4gICAgcHJvcHM/OiBSZWZQYXJhbWV0ZXJQcm9wc1xuICApIHtcbiAgICBsZXQgZ2xvYmFsID0gbmV3IFJlZihzY29wZSwgaWQpO1xuICAgIG5ldyBzc20uU3RyaW5nUGFyYW1ldGVyKGdsb2JhbCwgXCJwYXJhbWV0ZXJcIiwge1xuICAgICAgcGFyYW1ldGVyTmFtZTogU1NNLnBhcmFtZXRlcihcbiAgICAgICAgXCJzZXJ2ZXJsZXNzLWNsdXN0ZXJcIixcbiAgICAgICAgaWQsXG4gICAgICAgIHByb3BzPy5hcHBOYW1lLFxuICAgICAgICBwcm9wcz8ubmFtZVxuICAgICAgKSxcbiAgICAgIHN0cmluZ1ZhbHVlOiBzZXJ2ZXJsZXNzQ2x1c3Rlci5jbHVzdGVySWRlbnRpZmllcixcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRTZXJ2ZXJsZXNzQ2x1c3RlcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM/OiBSZWZQYXJhbWV0ZXJQcm9wc1xuICApOiByZHMuSVNlcnZlcmxlc3NDbHVzdGVyIHtcbiAgICBsZXQgZ2xvYmFsID0gbmV3IFJlZihzY29wZSwgaWQpO1xuICAgIGxldCBjbHVzdGVySWRlbnRpZmllciA9IHNzbS5TdHJpbmdQYXJhbWV0ZXIuZnJvbVN0cmluZ1BhcmFtZXRlck5hbWUoXG4gICAgICBnbG9iYWwsXG4gICAgICBcInBhcmFtZXRlclwiLFxuICAgICAgU1NNLnBhcmFtZXRlcihcInNlcnZlcmxlc3MtY2x1c3RlclwiLCBpZCwgcHJvcHM/LmFwcE5hbWUsIHByb3BzPy5uYW1lKVxuICAgICkuc3RyaW5nVmFsdWU7XG4gICAgcmV0dXJuIHJkcy5TZXJ2ZXJsZXNzQ2x1c3Rlci5mcm9tU2VydmVybGVzc0NsdXN0ZXJBdHRyaWJ1dGVzKFxuICAgICAgZ2xvYmFsLFxuICAgICAgXCJjb25zdHJ1Y3RcIixcbiAgICAgIHsgY2x1c3RlcklkZW50aWZpZXI6IGNsdXN0ZXJJZGVudGlmaWVyIH1cbiAgICApO1xuICB9XG59XG4iXX0=