UNPKG

@pepperize/cdk-organizations

Version:

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

50 lines 7.2 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.EnablePolicyType = 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"); /** * Enables and disables Enables a policy type in a root. After you enable a policy type in a root, you can attach policies of that type to the root, any organizational unit (OU), or account in that root. * * @see https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_enable-disable.html */ class EnablePolicyType extends constructs_1.Construct { constructor(scope, id, props) { super(scope, id); const { root, policyType } = props; const organizationsRegion = process.env.CDK_AWS_PARTITION === "aws-cn" ? "cn-northwest-1" : "us-east-1"; new custom_resources_1.AwsCustomResource(this, "EnablePolicyTypeCustomResource", { resourceType: "Custom::Organizations_EnablePolicyType", onCreate: { service: "Organizations", action: "enablePolicyType", // https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Organizations.html#enablePolicyType-property region: organizationsRegion, physicalResourceId: custom_resources_1.PhysicalResourceId.of(`${root.rootId}:${policyType}`), parameters: { RootId: root.rootId, PolicyType: policyType, }, ignoreErrorCodesMatching: "PolicyTypeAlreadyEnabledException", // https://docs.aws.amazon.com/organizations/latest/APIReference/API_EnablePolicyType.html#API_EnablePolicyType_Errors }, onDelete: { service: "Organizations", action: "disablePolicyType", // https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Organizations.html#disablePolicyType-property region: organizationsRegion, parameters: { RootId: root.rootId, PolicyType: policyType, }, }, installLatestAwsSdk: false, policy: custom_resources_1.AwsCustomResourcePolicy.fromSdkCalls({ resources: custom_resources_1.AwsCustomResourcePolicy.ANY_RESOURCE, }), }); } } exports.EnablePolicyType = EnablePolicyType; _a = JSII_RTTI_SYMBOL_1; EnablePolicyType[_a] = { fqn: "@pepperize/cdk-organizations.EnablePolicyType", version: "0.7.988" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5hYmxlLXBvbGljeS10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2VuYWJsZS1wb2xpY3ktdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1FQUE4RztBQUM5RywyQ0FBdUM7QUFTdkM7Ozs7R0FJRztBQUNILE1BQWEsZ0JBQWlCLFNBQVEsc0JBQVM7SUFDN0MsWUFBbUIsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNEI7UUFDM0UsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxHQUFHLEtBQUssQ0FBQztRQUNuQyxNQUFNLG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO1FBRXhHLElBQUksb0NBQWlCLENBQUMsSUFBSSxFQUFFLGdDQUFnQyxFQUFFO1lBQzVELFlBQVksRUFBRSx3Q0FBd0M7WUFDdEQsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxlQUFlO2dCQUN4QixNQUFNLEVBQUUsa0JBQWtCLEVBQUUsdUdBQXVHO2dCQUNuSSxNQUFNLEVBQUUsbUJBQW1CO2dCQUMzQixrQkFBa0IsRUFBRSxxQ0FBa0IsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUN6RSxVQUFVLEVBQUU7b0JBQ1YsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO29CQUNuQixVQUFVLEVBQUUsVUFBVTtpQkFDdkI7Z0JBQ0Qsd0JBQXdCLEVBQUUsbUNBQW1DLEVBQUUsc0hBQXNIO2FBQ3RMO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxlQUFlO2dCQUN4QixNQUFNLEVBQUUsbUJBQW1CLEVBQUUsd0dBQXdHO2dCQUNySSxNQUFNLEVBQUUsbUJBQW1CO2dCQUMzQixVQUFVLEVBQUU7b0JBQ1YsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO29CQUNuQixVQUFVLEVBQUUsVUFBVTtpQkFDdkI7YUFDRjtZQUNELG1CQUFtQixFQUFFLEtBQUs7WUFDMUIsTUFBTSxFQUFFLDBDQUF1QixDQUFDLFlBQVksQ0FBQztnQkFDM0MsU0FBUyxFQUFFLDBDQUF1QixDQUFDLFlBQVk7YUFDaEQsQ0FBQztTQUNILENBQUMsQ0FBQztJQUNMLENBQUM7O0FBbENILDRDQW1DQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF3c0N1c3RvbVJlc291cmNlLCBBd3NDdXN0b21SZXNvdXJjZVBvbGljeSwgUGh5c2ljYWxSZXNvdXJjZUlkIH0gZnJvbSBcImF3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBSb290IH0gZnJvbSBcIi4vb3JnYW5pemF0aW9uXCI7XG5pbXBvcnQgeyBQb2xpY3lUeXBlIH0gZnJvbSBcIi4vcG9saWN5XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW5hYmxlUG9saWN5VHlwZVByb3BzIHtcbiAgcmVhZG9ubHkgcm9vdDogUm9vdDtcbiAgcmVhZG9ubHkgcG9saWN5VHlwZTogUG9saWN5VHlwZTtcbn1cblxuLyoqXG4gKiBFbmFibGVzIGFuZCBkaXNhYmxlcyBFbmFibGVzIGEgcG9saWN5IHR5cGUgaW4gYSByb290LiBBZnRlciB5b3UgZW5hYmxlIGEgcG9saWN5IHR5cGUgaW4gYSByb290LCB5b3UgY2FuIGF0dGFjaCBwb2xpY2llcyBvZiB0aGF0IHR5cGUgdG8gdGhlIHJvb3QsIGFueSBvcmdhbml6YXRpb25hbCB1bml0IChPVSksIG9yIGFjY291bnQgaW4gdGhhdCByb290LlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL29yZ2FuaXphdGlvbnMvbGF0ZXN0L3VzZXJndWlkZS9vcmdzX21hbmFnZV9wb2xpY2llc19lbmFibGUtZGlzYWJsZS5odG1sXG4gKi9cbmV4cG9ydCBjbGFzcyBFbmFibGVQb2xpY3lUeXBlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBFbmFibGVQb2xpY3lUeXBlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgeyByb290LCBwb2xpY3lUeXBlIH0gPSBwcm9wcztcbiAgICBjb25zdCBvcmdhbml6YXRpb25zUmVnaW9uID0gcHJvY2Vzcy5lbnYuQ0RLX0FXU19QQVJUSVRJT04gPT09IFwiYXdzLWNuXCIgPyBcImNuLW5vcnRod2VzdC0xXCIgOiBcInVzLWVhc3QtMVwiO1xuXG4gICAgbmV3IEF3c0N1c3RvbVJlc291cmNlKHRoaXMsIFwiRW5hYmxlUG9saWN5VHlwZUN1c3RvbVJlc291cmNlXCIsIHtcbiAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206Ok9yZ2FuaXphdGlvbnNfRW5hYmxlUG9saWN5VHlwZVwiLFxuICAgICAgb25DcmVhdGU6IHtcbiAgICAgICAgc2VydmljZTogXCJPcmdhbml6YXRpb25zXCIsXG4gICAgICAgIGFjdGlvbjogXCJlbmFibGVQb2xpY3lUeXBlXCIsIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL2xhdGVzdC9BV1MvT3JnYW5pemF0aW9ucy5odG1sI2VuYWJsZVBvbGljeVR5cGUtcHJvcGVydHlcbiAgICAgICAgcmVnaW9uOiBvcmdhbml6YXRpb25zUmVnaW9uLFxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IFBoeXNpY2FsUmVzb3VyY2VJZC5vZihgJHtyb290LnJvb3RJZH06JHtwb2xpY3lUeXBlfWApLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgUm9vdElkOiByb290LnJvb3RJZCxcbiAgICAgICAgICBQb2xpY3lUeXBlOiBwb2xpY3lUeXBlLFxuICAgICAgICB9LFxuICAgICAgICBpZ25vcmVFcnJvckNvZGVzTWF0Y2hpbmc6IFwiUG9saWN5VHlwZUFscmVhZHlFbmFibGVkRXhjZXB0aW9uXCIsIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9vcmdhbml6YXRpb25zL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0VuYWJsZVBvbGljeVR5cGUuaHRtbCNBUElfRW5hYmxlUG9saWN5VHlwZV9FcnJvcnNcbiAgICAgIH0sXG4gICAgICBvbkRlbGV0ZToge1xuICAgICAgICBzZXJ2aWNlOiBcIk9yZ2FuaXphdGlvbnNcIixcbiAgICAgICAgYWN0aW9uOiBcImRpc2FibGVQb2xpY3lUeXBlXCIsIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL2xhdGVzdC9BV1MvT3JnYW5pemF0aW9ucy5odG1sI2Rpc2FibGVQb2xpY3lUeXBlLXByb3BlcnR5XG4gICAgICAgIHJlZ2lvbjogb3JnYW5pemF0aW9uc1JlZ2lvbixcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIFJvb3RJZDogcm9vdC5yb290SWQsXG4gICAgICAgICAgUG9saWN5VHlwZTogcG9saWN5VHlwZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBpbnN0YWxsTGF0ZXN0QXdzU2RrOiBmYWxzZSxcbiAgICAgIHBvbGljeTogQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVNka0NhbGxzKHtcbiAgICAgICAgcmVzb3VyY2VzOiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5BTllfUkVTT1VSQ0UsXG4gICAgICB9KSxcbiAgICB9KTtcbiAgfVxufVxuIl19