UNPKG

@common-creation/aws-cdk-ses-domain-identity

Version:

Constructs for provisioning and referencing domain identities which can be used in SES RuleSets and Actions Construct.

48 lines 1.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.UpdateCustomResourceHandler = void 0; const verifier_1 = require("../verifier"); const base_1 = require("./base"); class UpdateCustomResourceHandler extends base_1.CustomResourceHandler { async consumeEvent() { const dnsChanged = this.hasChanged("DomainName") || this.hasChanged("HostedZoneId"); const dkimChanged = this.hasChanged("DKIM"); // If DNS is changed, Verify changed domain first and then revoke old one if (dnsChanged) { const newVerifier = verifier_1.Verifier.from(this.event.ResourceProperties); const oldVerifier = verifier_1.Verifier.from(this.event.OldResourceProperties); await newVerifier.verifyIdentity(true); if (this.event.ResourceProperties.DKIM) { await newVerifier.enableDKIM(true); } if (this.event.OldResourceProperties.DKIM) { await oldVerifier.disableDKIM(); } await oldVerifier.revokeIdentity(); return { // Update Physical Resource ID physicalResourceId: newVerifier.domainName, data: {}, }; } if (dkimChanged) { const verifier = verifier_1.Verifier.from(this.event.ResourceProperties); if (this.event.ResourceProperties.DKIM) { await verifier.enableDKIM(true); } else { await verifier.disableDKIM(); } } return { // Keep Physical Resource ID physicalResourceId: this.event.PhysicalResourceId, data: {}, }; } hasChanged(name) { return this.event.OldResourceProperties[name] !== this.event.ResourceProperties[name]; } } exports.UpdateCustomResourceHandler = UpdateCustomResourceHandler; //# sourceMappingURL=update.js.map