UNPKG

aws-ddk-core

Version:

The AWS DataOps Development Kit is an open source development framework for customers that build data workflows and modern data architecture on AWS.

52 lines 6.09 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.S3EventStage = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const stage_1 = require("../pipelines/stage"); /** * Stage implements an S3 event pattern based on event names, a bucket name and optional key prefix. * Amazon EventBridge notifications must be enabled on the bucket in order to use this construct. */ class S3EventStage extends stage_1.EventStage { /** * Constructs `S3EventStage`. * @param scope Scope within which this construct is defined. * @param id Identifier of the stage. * @param props Properties for the stage. */ constructor(scope, id, props) { super(scope, id, props); if (Array.isArray(props.bucket)) { var buckets = props.bucket; } else { var buckets = [props.bucket]; } var detail = { bucket: { name: Array.from(buckets, (bucket) => bucket.bucketName), }, }; if (props.keyPrefix) { if (typeof props.keyPrefix === "string") { var prefixes = [props.keyPrefix]; } else { var prefixes = props.keyPrefix; } detail.object = { key: prefixes.map((p) => ({ prefix: p })), }; } this.eventPattern = { source: ["aws.s3"], detail: detail, detailType: props.eventNames, }; } } exports.S3EventStage = S3EventStage; _a = JSII_RTTI_SYMBOL_1; S3EventStage[_a] = { fqn: "aws-ddk-core.S3EventStage", version: "1.4.1" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMtZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RhZ2VzL3MzLWV2ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBR0EsOENBQWlFO0FBdUJqRTs7O0dBR0c7QUFDSCxNQUFhLFlBQWEsU0FBUSxrQkFBVTtJQUcxQzs7Ozs7T0FLRztJQUNILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBd0I7UUFDaEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMvQixJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1NBQzVCO2FBQU07WUFDTCxJQUFJLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM5QjtRQUVELElBQUksTUFBTSxHQUEyQjtZQUNuQyxNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO2FBQ3pEO1NBQ0YsQ0FBQztRQUVGLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRTtZQUNuQixJQUFJLE9BQU8sS0FBSyxDQUFDLFNBQVMsS0FBSyxRQUFRLEVBQUU7Z0JBQ3ZDLElBQUksUUFBUSxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ2xDO2lCQUFNO2dCQUNMLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7YUFDaEM7WUFDRCxNQUFNLENBQUMsTUFBTSxHQUFHO2dCQUNkLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDMUMsQ0FBQztTQUNIO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRztZQUNsQixNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7WUFDbEIsTUFBTSxFQUFFLE1BQU07WUFDZCxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7U0FDN0IsQ0FBQztJQUNKLENBQUM7O0FBeENILG9DQXlDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGV2ZW50cyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWV2ZW50c1wiO1xuaW1wb3J0ICogYXMgczMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEV2ZW50U3RhZ2UsIEV2ZW50U3RhZ2VQcm9wcyB9IGZyb20gXCIuLi9waXBlbGluZXMvc3RhZ2VcIjtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBgUzNFdmVudFN0YWdlYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTM0V2ZW50U3RhZ2VQcm9wcyBleHRlbmRzIEV2ZW50U3RhZ2VQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBldmVudHMgdG8gY2FwdHVyZSwgZm9yIGV4YW1wbGU6IFtcIk9iamVjdCBDcmVhdGVkXCJdLlxuICAgKlxuICAgKiBAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L3VzZXJndWlkZS9FdmVudEJyaWRnZS5odG1sXG4gICAqL1xuICByZWFkb25seSBldmVudE5hbWVzOiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIFMzIEJ1Y2tldCBvciBsaXN0IG9mIGJ1Y2tldHMuXG4gICAqIEFtYXpvbiBFdmVudEJyaWRnZSBub3RpZmljYXRpb25zIG11c3QgYmUgZW5hYmxlZCBvbiB0aGUgYnVja2V0IGluIG9yZGVyIHRvIHVzZSB0aGlzIGNvbnN0cnVjdC5cbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldDogczMuSUJ1Y2tldCB8IHMzLklCdWNrZXRbXTtcbiAgLyoqXG4gICAqIFRoZSBTMyBwcmVmaXggb3IgbGlzdCBvZiBwcmVmaXhlcy4gQ2FwdHVyZSByb290IGxldmVsIHByZWZpeCAoXCIvXCIpIGJ5IGRlZmF1bHQuXG4gICAqL1xuICByZWFkb25seSBrZXlQcmVmaXg/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBTdGFnZSBpbXBsZW1lbnRzIGFuIFMzIGV2ZW50IHBhdHRlcm4gYmFzZWQgb24gZXZlbnQgbmFtZXMsIGEgYnVja2V0IG5hbWUgYW5kIG9wdGlvbmFsIGtleSBwcmVmaXguXG4gKiBBbWF6b24gRXZlbnRCcmlkZ2Ugbm90aWZpY2F0aW9ucyBtdXN0IGJlIGVuYWJsZWQgb24gdGhlIGJ1Y2tldCBpbiBvcmRlciB0byB1c2UgdGhpcyBjb25zdHJ1Y3QuXG4gKi9cbmV4cG9ydCBjbGFzcyBTM0V2ZW50U3RhZ2UgZXh0ZW5kcyBFdmVudFN0YWdlIHtcbiAgcmVhZG9ubHkgZXZlbnRQYXR0ZXJuPzogZXZlbnRzLkV2ZW50UGF0dGVybjtcblxuICAvKipcbiAgICogQ29uc3RydWN0cyBgUzNFdmVudFN0YWdlYC5cbiAgICogQHBhcmFtIHNjb3BlIFNjb3BlIHdpdGhpbiB3aGljaCB0aGlzIGNvbnN0cnVjdCBpcyBkZWZpbmVkLlxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgc3RhZ2UuXG4gICAqIEBwYXJhbSBwcm9wcyBQcm9wZXJ0aWVzIGZvciB0aGUgc3RhZ2UuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUzNFdmVudFN0YWdlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KHByb3BzLmJ1Y2tldCkpIHtcbiAgICAgIHZhciBidWNrZXRzID0gcHJvcHMuYnVja2V0O1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgYnVja2V0cyA9IFtwcm9wcy5idWNrZXRdO1xuICAgIH1cblxuICAgIHZhciBkZXRhaWw6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7XG4gICAgICBidWNrZXQ6IHtcbiAgICAgICAgbmFtZTogQXJyYXkuZnJvbShidWNrZXRzLCAoYnVja2V0KSA9PiBidWNrZXQuYnVja2V0TmFtZSksXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBpZiAocHJvcHMua2V5UHJlZml4KSB7XG4gICAgICBpZiAodHlwZW9mIHByb3BzLmtleVByZWZpeCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICB2YXIgcHJlZml4ZXMgPSBbcHJvcHMua2V5UHJlZml4XTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBwcmVmaXhlcyA9IHByb3BzLmtleVByZWZpeDtcbiAgICAgIH1cbiAgICAgIGRldGFpbC5vYmplY3QgPSB7XG4gICAgICAgIGtleTogcHJlZml4ZXMubWFwKChwKSA9PiAoeyBwcmVmaXg6IHAgfSkpLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aGlzLmV2ZW50UGF0dGVybiA9IHtcbiAgICAgIHNvdXJjZTogW1wiYXdzLnMzXCJdLFxuICAgICAgZGV0YWlsOiBkZXRhaWwsXG4gICAgICBkZXRhaWxUeXBlOiBwcm9wcy5ldmVudE5hbWVzLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==