UNPKG

@pepperize/cdk-organizations

Version:

Manage AWS organizations, organizational units (OU), accounts and service control policies (SCP).

72 lines 9.1 kB
"use strict"; var _a, _b; Object.defineProperty(exports, "__esModule", { value: true }); exports.Parent = exports.ParentBase = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const custom_resources_1 = require("aws-cdk-lib/custom-resources"); const constructs_1 = require("constructs"); class ParentBase extends constructs_1.Construct { constructor(scope, id, props) { super(scope, id); const { childId } = props; const organizationsRegion = process.env.CDK_AWS_PARTITION === "aws-cn" ? "cn-northwest-1" : "us-east-1"; const parent = new custom_resources_1.AwsCustomResource(this, "ListParentsCustomResource", { onCreate: { service: "Organizations", action: "listParents", // https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Organizations.html#listParents-property region: organizationsRegion, physicalResourceId: custom_resources_1.PhysicalResourceId.fromResponse("Parents.0.Id"), parameters: { ChildId: childId, }, }, onUpdate: { service: "Organizations", action: "listParents", // https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Organizations.html#listParents-property region: organizationsRegion, physicalResourceId: custom_resources_1.PhysicalResourceId.fromResponse("Parents.0.Id"), parameters: { ChildId: childId, }, }, onDelete: { service: "Organizations", action: "listParents", // https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Organizations.html#listParents-property region: organizationsRegion, parameters: { ChildId: childId, }, }, installLatestAwsSdk: false, policy: custom_resources_1.AwsCustomResourcePolicy.fromSdkCalls({ resources: custom_resources_1.AwsCustomResourcePolicy.ANY_RESOURCE, }), }); this.parentId = parent.getResponseField("Parents.0.Id"); } identifier() { return this.parentId; } } exports.ParentBase = ParentBase; _a = JSII_RTTI_SYMBOL_1; ParentBase[_a] = { fqn: "@pepperize/cdk-organizations.ParentBase", version: "0.7.988" }; class Parent extends ParentBase { static fromChildId(scope, id, childId) { class Import extends ParentBase { constructor() { super(scope, id, { childId: childId }); } } return new Import(); } constructor(scope, id, props) { const { child } = props; super(scope, id, { childId: child.identifier() }); this.node.addDependency(child); } } exports.Parent = Parent; _b = JSII_RTTI_SYMBOL_1; Parent[_b] = { fqn: "@pepperize/cdk-organizations.Parent", version: "0.7.988" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3BhcmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1FQUE4RztBQUM5RywyQ0FBbUQ7QUFlbkQsTUFBc0IsVUFBVyxTQUFRLHNCQUFTO0lBR2hELFlBQXNCLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXNCO1FBQ3hFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEtBQUssQ0FBQztRQUMxQixNQUFNLG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO1FBRXhHLE1BQU0sTUFBTSxHQUFHLElBQUksb0NBQWlCLENBQUMsSUFBSSxFQUFFLDJCQUEyQixFQUFFO1lBQ3RFLFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUsZUFBZTtnQkFDeEIsTUFBTSxFQUFFLGFBQWEsRUFBRSxrR0FBa0c7Z0JBQ3pILE1BQU0sRUFBRSxtQkFBbUI7Z0JBQzNCLGtCQUFrQixFQUFFLHFDQUFrQixDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUM7Z0JBQ25FLFVBQVUsRUFBRTtvQkFDVixPQUFPLEVBQUUsT0FBTztpQkFDakI7YUFDRjtZQUNELFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUsZUFBZTtnQkFDeEIsTUFBTSxFQUFFLGFBQWEsRUFBRSxrR0FBa0c7Z0JBQ3pILE1BQU0sRUFBRSxtQkFBbUI7Z0JBQzNCLGtCQUFrQixFQUFFLHFDQUFrQixDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUM7Z0JBQ25FLFVBQVUsRUFBRTtvQkFDVixPQUFPLEVBQUUsT0FBTztpQkFDakI7YUFDRjtZQUNELFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUsZUFBZTtnQkFDeEIsTUFBTSxFQUFFLGFBQWEsRUFBRSxrR0FBa0c7Z0JBQ3pILE1BQU0sRUFBRSxtQkFBbUI7Z0JBQzNCLFVBQVUsRUFBRTtvQkFDVixPQUFPLEVBQUUsT0FBTztpQkFDakI7YUFDRjtZQUNELG1CQUFtQixFQUFFLEtBQUs7WUFDMUIsTUFBTSxFQUFFLDBDQUF1QixDQUFDLFlBQVksQ0FBQztnQkFDM0MsU0FBUyxFQUFFLDBDQUF1QixDQUFDLFlBQVk7YUFDaEQsQ0FBQztTQUNILENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7O0FBL0NILGdDQWdEQzs7O0FBRUQsTUFBYSxNQUFPLFNBQVEsVUFBVTtJQUM3QixNQUFNLENBQUMsV0FBVyxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLE9BQWU7UUFDckUsTUFBTSxNQUFPLFNBQVEsVUFBVTtZQUM3QjtnQkFDRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ3pDLENBQUM7U0FDRjtRQUVELE9BQU8sSUFBSSxNQUFNLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsWUFBbUIsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBa0I7UUFDakUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssQ0FBQztRQUV4QixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWxELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7O0FBakJILHdCQWtCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF3c0N1c3RvbVJlc291cmNlLCBBd3NDdXN0b21SZXNvdXJjZVBvbGljeSwgUGh5c2ljYWxSZXNvdXJjZUlkIH0gZnJvbSBcImF3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCwgSUNvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBJUmVzb3VyY2UgfSBmcm9tIFwiLi9yZXNvdXJjZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElQYXJlbnQgZXh0ZW5kcyBJQ29uc3RydWN0LCBJUmVzb3VyY2Uge31cblxuZXhwb3J0IGludGVyZmFjZSBJQ2hpbGQgZXh0ZW5kcyBJQ29uc3RydWN0LCBJUmVzb3VyY2Uge31cblxuZXhwb3J0IGludGVyZmFjZSBQYXJlbnRQcm9wcyB7XG4gIHJlYWRvbmx5IGNoaWxkOiBJQ2hpbGQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyZW50QmFzZVByb3BzIHtcbiAgcmVhZG9ubHkgY2hpbGRJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGFyZW50QmFzZSBleHRlbmRzIENvbnN0cnVjdCBpbXBsZW1lbnRzIElQYXJlbnQge1xuICBwdWJsaWMgcmVhZG9ubHkgcGFyZW50SWQ6IHN0cmluZztcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFBhcmVudEJhc2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCB7IGNoaWxkSWQgfSA9IHByb3BzO1xuICAgIGNvbnN0IG9yZ2FuaXphdGlvbnNSZWdpb24gPSBwcm9jZXNzLmVudi5DREtfQVdTX1BBUlRJVElPTiA9PT0gXCJhd3MtY25cIiA/IFwiY24tbm9ydGh3ZXN0LTFcIiA6IFwidXMtZWFzdC0xXCI7XG5cbiAgICBjb25zdCBwYXJlbnQgPSBuZXcgQXdzQ3VzdG9tUmVzb3VyY2UodGhpcywgXCJMaXN0UGFyZW50c0N1c3RvbVJlc291cmNlXCIsIHtcbiAgICAgIG9uQ3JlYXRlOiB7XG4gICAgICAgIHNlcnZpY2U6IFwiT3JnYW5pemF0aW9uc1wiLFxuICAgICAgICBhY3Rpb246IFwibGlzdFBhcmVudHNcIiwgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0phdmFTY3JpcHRTREsvbGF0ZXN0L0FXUy9Pcmdhbml6YXRpb25zLmh0bWwjbGlzdFBhcmVudHMtcHJvcGVydHlcbiAgICAgICAgcmVnaW9uOiBvcmdhbml6YXRpb25zUmVnaW9uLFxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IFBoeXNpY2FsUmVzb3VyY2VJZC5mcm9tUmVzcG9uc2UoXCJQYXJlbnRzLjAuSWRcIiksXG4gICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBDaGlsZElkOiBjaGlsZElkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIG9uVXBkYXRlOiB7XG4gICAgICAgIHNlcnZpY2U6IFwiT3JnYW5pemF0aW9uc1wiLFxuICAgICAgICBhY3Rpb246IFwibGlzdFBhcmVudHNcIiwgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0phdmFTY3JpcHRTREsvbGF0ZXN0L0FXUy9Pcmdhbml6YXRpb25zLmh0bWwjbGlzdFBhcmVudHMtcHJvcGVydHlcbiAgICAgICAgcmVnaW9uOiBvcmdhbml6YXRpb25zUmVnaW9uLFxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IFBoeXNpY2FsUmVzb3VyY2VJZC5mcm9tUmVzcG9uc2UoXCJQYXJlbnRzLjAuSWRcIiksXG4gICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBDaGlsZElkOiBjaGlsZElkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIG9uRGVsZXRlOiB7XG4gICAgICAgIHNlcnZpY2U6IFwiT3JnYW5pemF0aW9uc1wiLFxuICAgICAgICBhY3Rpb246IFwibGlzdFBhcmVudHNcIiwgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0phdmFTY3JpcHRTREsvbGF0ZXN0L0FXUy9Pcmdhbml6YXRpb25zLmh0bWwjbGlzdFBhcmVudHMtcHJvcGVydHlcbiAgICAgICAgcmVnaW9uOiBvcmdhbml6YXRpb25zUmVnaW9uLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgQ2hpbGRJZDogY2hpbGRJZCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBpbnN0YWxsTGF0ZXN0QXdzU2RrOiBmYWxzZSxcbiAgICAgIHBvbGljeTogQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVNka0NhbGxzKHtcbiAgICAgICAgcmVzb3VyY2VzOiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5BTllfUkVTT1VSQ0UsXG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIHRoaXMucGFyZW50SWQgPSBwYXJlbnQuZ2V0UmVzcG9uc2VGaWVsZChcIlBhcmVudHMuMC5JZFwiKTtcbiAgfVxuXG4gIHB1YmxpYyBpZGVudGlmaWVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50SWQ7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBhcmVudCBleHRlbmRzIFBhcmVudEJhc2Uge1xuICBwdWJsaWMgc3RhdGljIGZyb21DaGlsZElkKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGNoaWxkSWQ6IHN0cmluZyk6IElQYXJlbnQge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFBhcmVudEJhc2Uge1xuICAgICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcihzY29wZSwgaWQsIHsgY2hpbGRJZDogY2hpbGRJZCB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydCgpO1xuICB9XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQYXJlbnRQcm9wcykge1xuICAgIGNvbnN0IHsgY2hpbGQgfSA9IHByb3BzO1xuXG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7IGNoaWxkSWQ6IGNoaWxkLmlkZW50aWZpZXIoKSB9KTtcblxuICAgIHRoaXMubm9kZS5hZGREZXBlbmRlbmN5KGNoaWxkKTtcbiAgfVxufVxuIl19