@cdklabs/aws-data-solutions-framework
Version:
L3 CDK Constructs used to build data solutions with AWS
28 lines • 4.84 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const cdk = require("aws-cdk-lib");
const dsf = require("../../index");
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
class ExampleOpenSearchApiStackDeps extends cdk.Stack {
constructor(scope, id, props) {
super(scope, id, props);
this.node.setContext('@data-solutions-framework-on-aws/removeDataOnDestroy', true);
/// !show
const domainEndpoint = 'search-XXXXXX.XXXXXX.es.amazonaws.com';
const apiRole = aws_iam_1.Role.fromRoleName(this, 'ApiRole', '<IAMRoleWithOpenSearchPermissions>');
const osApi = new dsf.consumption.OpenSearchApi(this, 'MyOpenSearchApi', {
iamHandlerRole: apiRole,
openSearchEndpoint: domainEndpoint,
openSearchClusterType: dsf.consumption.OpenSearchClusterType.PROVISIONED,
removalPolicy: cdk.RemovalPolicy.DESTROY
});
const firstCall = osApi.addRoleMapping('AnotherAdmin', 'all_access', '<IAMRole>', true);
const secondCall = osApi.addRoleMapping('AnotherAdmin', 'all_access', '<IAMRole>', true);
//dependency to enforce sequential API calls
secondCall.node.addDependency(firstCall);
/// !hide
}
}
const app = new cdk.App();
new ExampleOpenSearchApiStackDeps(app, 'ExampleOpenSearchApiStandaloneDepsStack', { env: { region: 'us-east-1' } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbnNlYXJjaC1hcGktc3RhbmRhbG9uZS1kZXBzLmxpdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb25zdW1wdGlvbi9leGFtcGxlcy9vcGVuc2VhcmNoLWFwaS1zdGFuZGFsb25lLWRlcHMubGl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbUNBQW1DO0FBRW5DLG1DQUFtQztBQUNuQyxpREFBMkM7QUFHM0MsTUFBTSw2QkFBOEIsU0FBUSxHQUFHLENBQUMsS0FBSztJQUVuRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFHLEtBQW9CO1FBRTdELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLHNEQUFzRCxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25GLFNBQVM7UUFDVCxNQUFNLGNBQWMsR0FBQyx1Q0FBdUMsQ0FBQztRQUM3RCxNQUFNLE9BQU8sR0FBRyxjQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsb0NBQW9DLENBQUMsQ0FBQztRQUN6RixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBQztZQUN0RSxjQUFjLEVBQUMsT0FBTztZQUN0QixrQkFBa0IsRUFBQyxjQUFjO1lBQ2pDLHFCQUFxQixFQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsV0FBVztZQUN2RSxhQUFhLEVBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxPQUFPO1NBQ3hDLENBQUMsQ0FBQztRQUVILE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFLFlBQVksRUFBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkYsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsWUFBWSxFQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUV4Riw0Q0FBNEM7UUFDNUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekMsU0FBUztJQUVYLENBQUM7Q0FDRjtBQUVELE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQzFCLElBQUksNkJBQTZCLENBQUMsR0FBRyxFQUFFLHlDQUF5QyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUMsTUFBTSxFQUFDLFdBQVcsRUFBQyxFQUFFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIGRzZiBmcm9tICcuLi8uLi9pbmRleCc7XG5pbXBvcnQgeyBSb2xlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5cblxuY2xhc3MgRXhhbXBsZU9wZW5TZWFyY2hBcGlTdGFja0RlcHMgZXh0ZW5kcyBjZGsuU3RhY2sge1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcgLCBwcm9wczpjZGsuU3RhY2tQcm9wcykge1xuXG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gICAgdGhpcy5ub2RlLnNldENvbnRleHQoJ0BkYXRhLXNvbHV0aW9ucy1mcmFtZXdvcmstb24tYXdzL3JlbW92ZURhdGFPbkRlc3Ryb3knLCB0cnVlKTtcbiAgICAvLy8gIXNob3dcbiAgICBjb25zdCBkb21haW5FbmRwb2ludD0nc2VhcmNoLVhYWFhYWC5YWFhYWFguZXMuYW1hem9uYXdzLmNvbSc7XG4gICAgY29uc3QgYXBpUm9sZSA9IFJvbGUuZnJvbVJvbGVOYW1lKHRoaXMsICdBcGlSb2xlJywgJzxJQU1Sb2xlV2l0aE9wZW5TZWFyY2hQZXJtaXNzaW9ucz4nKTtcbiAgICBjb25zdCBvc0FwaSA9IG5ldyBkc2YuY29uc3VtcHRpb24uT3BlblNlYXJjaEFwaSh0aGlzLCAnTXlPcGVuU2VhcmNoQXBpJyx7XG4gICAgICBpYW1IYW5kbGVyUm9sZTphcGlSb2xlLFxuICAgICAgb3BlblNlYXJjaEVuZHBvaW50OmRvbWFpbkVuZHBvaW50LFxuICAgICAgb3BlblNlYXJjaENsdXN0ZXJUeXBlOmRzZi5jb25zdW1wdGlvbi5PcGVuU2VhcmNoQ2x1c3RlclR5cGUuUFJPVklTSU9ORUQsXG4gICAgICByZW1vdmFsUG9saWN5OmNkay5SZW1vdmFsUG9saWN5LkRFU1RST1lcbiAgICB9KTtcblxuICAgIGNvbnN0IGZpcnN0Q2FsbCA9IG9zQXBpLmFkZFJvbGVNYXBwaW5nKCdBbm90aGVyQWRtaW4nLCAnYWxsX2FjY2VzcycsJzxJQU1Sb2xlPicsIHRydWUpO1xuICAgIGNvbnN0IHNlY29uZENhbGwgPSBvc0FwaS5hZGRSb2xlTWFwcGluZygnQW5vdGhlckFkbWluJywgJ2FsbF9hY2Nlc3MnLCc8SUFNUm9sZT4nLCB0cnVlKTtcbiAgICBcbiAgICAvL2RlcGVuZGVuY3kgdG8gZW5mb3JjZSBzZXF1ZW50aWFsIEFQSSBjYWxsc1xuICAgIHNlY29uZENhbGwubm9kZS5hZGREZXBlbmRlbmN5KGZpcnN0Q2FsbCk7XG4gICAgLy8vICFoaWRlXG5cbiAgfVxufVxuXG5jb25zdCBhcHAgPSBuZXcgY2RrLkFwcCgpO1xubmV3IEV4YW1wbGVPcGVuU2VhcmNoQXBpU3RhY2tEZXBzKGFwcCwgJ0V4YW1wbGVPcGVuU2VhcmNoQXBpU3RhbmRhbG9uZURlcHNTdGFjaycsIHsgZW52OiB7cmVnaW9uOid1cy1lYXN0LTEnfSB9KTsiXX0=