UNPKG

@studion/infra-code-blocks

Version:
31 lines (30 loc) 1.46 kB
"use strict"; 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;