@enfo/aws-cdkompliance
Version:
Tagging and compliant resources using the CDK
45 lines • 3.68 kB
JavaScript
;
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==