aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
2 lines (1 loc) • 2.44 kB
JavaScript
;var __createBinding=exports&&exports.__createBinding||(Object.create?(function(o,m,k,k2){k2===void 0&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))&&(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}):(function(o,m,k,k2){k2===void 0&&(k2=k),o[k2]=m[k]})),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?(function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}):function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||(function(){var ownKeys=function(o){return ownKeys=Object.getOwnPropertyNames||function(o2){var ar=[];for(var k in o2)Object.prototype.hasOwnProperty.call(o2,k)&&(ar[ar.length]=k);return ar},ownKeys(o)};return function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k=ownKeys(mod),i=0;i<k.length;i++)k[i]!=="default"&&__createBinding(result,mod,k[i]);return __setModuleDefault(result,mod),result}})();Object.defineProperty(exports,"__esModule",{value:!0}),exports.ElasticsearchAccessPolicy=void 0;var iam=()=>{var tmp=__importStar(require("../../aws-iam"));return iam=()=>tmp,tmp},helpers_internal_1=()=>{var tmp=require("../../core/lib/helpers-internal");return helpers_internal_1=()=>tmp,tmp},cr=()=>{var tmp=__importStar(require("../../custom-resources"));return cr=()=>tmp,tmp};class ElasticsearchAccessPolicy extends cr().AwsCustomResource{accessPolicyStatements;constructor(scope,id,props){const accessPolicyStatements=helpers_internal_1().Box.fromArray([],{omitEmpty:!1});super(scope,id,{resourceType:"Custom::ElasticsearchAccessPolicy",installLatestAwsSdk:!1,onUpdate:{action:"updateElasticsearchDomainConfig",service:"ES",parameters:{DomainName:props.domainName,AccessPolicies:accessPolicyStatements.derive(statements=>JSON.stringify(new(iam()).PolicyDocument({statements:[...statements]}).toJSON()))},outputPaths:["DomainConfig.ElasticsearchClusterConfig.AccessPolicies"],physicalResourceId:cr().PhysicalResourceId.of(`${props.domainName}AccessPolicy`)},policy:cr().AwsCustomResourcePolicy.fromSdkCalls({resources:[props.domainArn]})}),this.accessPolicyStatements=accessPolicyStatements,this.addAccessPolicies(...props.accessPolicies)}addAccessPolicies(...accessPolicyStatements){this.accessPolicyStatements.push(...accessPolicyStatements)}}exports.ElasticsearchAccessPolicy=ElasticsearchAccessPolicy;