@studion/infra-code-blocks
Version:
Studion common infra components
31 lines (30 loc) • 1.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AcmCertificate = void 0;
const pulumi = require("@pulumi/pulumi");
const aws = require("@pulumi/aws");
const constants_1 = require("../constants");
class AcmCertificate extends pulumi.ComponentResource {
constructor(name, args, opts = {}) {
super('studion:acm:Certificate', name, {}, opts);
this.certificate = new aws.acm.Certificate(`${args.domain}-certificate`, { domainName: args.domain, validationMethod: 'DNS', tags: constants_1.commonTags }, { parent: this });
const certificateValidationDomain = new aws.route53.Record(`${args.domain}-cert-validation-domain`, {
name: this.certificate.domainValidationOptions[0].resourceRecordName,
type: this.certificate.domainValidationOptions[0].resourceRecordType,
zoneId: args.hostedZoneId,
records: [
this.certificate.domainValidationOptions[0].resourceRecordValue,
],
ttl: 600,
}, {
parent: this,
deleteBeforeReplace: true,
});
const certificateValidation = new aws.acm.CertificateValidation(`${args.domain}-cert-validation`, {
certificateArn: this.certificate.arn,
validationRecordFqdns: [certificateValidationDomain.fqdn],
}, { parent: this });
this.registerOutputs();
}
}
exports.AcmCertificate = AcmCertificate;