UNPKG

@enfo/aws-cdkompliance

Version:

Tagging and compliant resources using the CDK

45 lines 3.68 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.Queue = exports.defaultQueueProps = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const aws_sqs_1 = require("aws-cdk-lib/aws-sqs"); /** * Properties for a new Compliant SQS Queue */ exports.defaultQueueProps = { encryption: aws_sqs_1.QueueEncryption.KMS_MANAGED }; /** * Compliant SQS Queue. * * See README for usage examples */ class Queue extends aws_sqs_1.Queue { constructor(scope, id, props) { super(scope, id, { ...exports.defaultQueueProps, ...props }); this.calculatedProps = { ...exports.defaultQueueProps, ...props }; this.node.addValidation({ validate: () => { return [ ...this.checkEncryption() ]; } }); } checkEncryption() { return (!this.calculatedProps.encryption || this.calculatedProps.encryption === aws_sqs_1.QueueEncryption.UNENCRYPTED) ? ['queue must be encrypted'] : []; } } exports.Queue = Queue; _a = JSII_RTTI_SYMBOL_1; Queue[_a] = { fqn: "@enfo/aws-cdkompliance.Queue", version: "1.1.0" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3FzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsaURBQW9GO0FBR3BGOztHQUVHO0FBQ1UsUUFBQSxpQkFBaUIsR0FBRztJQUMvQixVQUFVLEVBQUUseUJBQWUsQ0FBQyxXQUFXO0NBQ3hDLENBQUE7QUFFRDs7OztHQUlHO0FBQ0gsTUFBYSxLQUFNLFNBQVEsZUFBUTtJQUVqQyxZQUFhLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWtCO1FBQzNELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyx5QkFBaUI7WUFDcEIsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLGVBQWUsR0FBRztZQUNyQixHQUFHLHlCQUFpQjtZQUNwQixHQUFHLEtBQUs7U0FDVCxDQUFBO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDdEIsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDYixPQUFPO29CQUNMLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRTtpQkFDMUIsQ0FBQTtZQUNILENBQUM7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO0lBRVMsZUFBZTtRQUN2QixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsS0FBSyx5QkFBZSxDQUFDLFdBQVcsQ0FBQztZQUMxRyxDQUFDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQztZQUM3QixDQUFDLENBQUMsRUFBRSxDQUFBO0lBQ1IsQ0FBQzs7QUF6Qkgsc0JBMEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVldWUgYXMgU1FTUXVldWUsIFF1ZXVlUHJvcHMsIFF1ZXVlRW5jcnlwdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zcXMnXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJ1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGEgbmV3IENvbXBsaWFudCBTUVMgUXVldWVcbiAqL1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRRdWV1ZVByb3BzID0ge1xuICBlbmNyeXB0aW9uOiBRdWV1ZUVuY3J5cHRpb24uS01TX01BTkFHRURcbn1cblxuLyoqXG4gKiBDb21wbGlhbnQgU1FTIFF1ZXVlLlxuICpcbiAqIFNlZSBSRUFETUUgZm9yIHVzYWdlIGV4YW1wbGVzXG4gKi9cbmV4cG9ydCBjbGFzcyBRdWV1ZSBleHRlbmRzIFNRU1F1ZXVlIHtcbiAgcHJvdGVjdGVkIGNhbGN1bGF0ZWRQcm9wczogUXVldWVQcm9wc1xuICBjb25zdHJ1Y3RvciAoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBRdWV1ZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5kZWZhdWx0UXVldWVQcm9wcyxcbiAgICAgIC4uLnByb3BzXG4gICAgfSlcbiAgICB0aGlzLmNhbGN1bGF0ZWRQcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRRdWV1ZVByb3BzLFxuICAgICAgLi4ucHJvcHNcbiAgICB9XG5cbiAgICB0aGlzLm5vZGUuYWRkVmFsaWRhdGlvbih7XG4gICAgICB2YWxpZGF0ZTogKCkgPT4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIC4uLnRoaXMuY2hlY2tFbmNyeXB0aW9uKClcbiAgICAgICAgXVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBwcm90ZWN0ZWQgY2hlY2tFbmNyeXB0aW9uICgpIHtcbiAgICByZXR1cm4gKCF0aGlzLmNhbGN1bGF0ZWRQcm9wcy5lbmNyeXB0aW9uIHx8IHRoaXMuY2FsY3VsYXRlZFByb3BzLmVuY3J5cHRpb24gPT09IFF1ZXVlRW5jcnlwdGlvbi5VTkVOQ1JZUFRFRClcbiAgICAgID8gWydxdWV1ZSBtdXN0IGJlIGVuY3J5cHRlZCddXG4gICAgICA6IFtdXG4gIH1cbn1cbiJdfQ==