@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
JavaScript
;
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