cdk-amazon-chime-resources
Version:

78 lines • 10.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MediaPipelineResources = void 0;
/* eslint-disable @typescript-eslint/indent */
const aws_cdk_lib_1 = require("aws-cdk-lib");
const constructs_1 = require("constructs");
class MediaPipelineResources extends constructs_1.Construct {
constructor(scope, id, props) {
super(scope, id);
const mediaPipelineCustomResource = aws_cdk_lib_1.CustomResourceProvider.getOrCreateProvider(this, 'Custom::MediaPipelineResources', {
codeDirectory: 'node_modules/cdk-amazon-chime-resources/assets/resources/media-pipelines',
runtime: aws_cdk_lib_1.CustomResourceProviderRuntime.NODEJS_18_X,
timeout: aws_cdk_lib_1.Duration.seconds(300),
policyStatements: [
{
Action: [
'chime:*MediaInsightsPipelineConfiguration',
'chime:*MediaPipelineKinesisVideoStreamPool',
'chime:ListVoiceConnectors',
'chime:tagResource',
's3:ListBucket',
'kinesis:DescribeStream',
'lambda:GetPolicy',
'lambda:AddPermission',
'chime:*',
],
Resource: '*',
Effect: 'Allow',
},
{
Action: [
'iam:PutRolePolicy',
'iam:CreateServiceLinkedRole',
'iam:PassRole',
],
Resource: '*',
Effect: 'Allow',
},
{
Action: [
'logs:DescribeLogGroups',
'logs:CreateLogGroup',
'logs:CreateLogStream',
'logs:ListLogDeliveries',
'logs:CreateLogDelivery',
'logs:GetLogDelivery',
'logs:DeleteLogDelivery',
],
Resource: '*',
Effect: 'Allow',
},
{
Action: 'ssm:*Parameter*',
Resource: `arn:aws:ssm:${aws_cdk_lib_1.Stack.of(this).region}:${aws_cdk_lib_1.Stack.of(this).account}:parameter/chime/*`,
Effect: 'Allow',
},
],
});
if (props.resourceType === 'KinesisVideoStreamPool') {
mediaPipelineCustomResource.addToRolePolicy({
Action: ['kinesisvideo:ListStreams'],
Resource: '*',
Effect: 'Allow',
});
mediaPipelineCustomResource.addToRolePolicy({
Action: ['kinesisvideo:DeleteStream'],
Resource: `arn:aws:kinesisvideo:${aws_cdk_lib_1.Stack.of(this).region}:${aws_cdk_lib_1.Stack.of(this).account}:stream/ChimeMediaPipelines-${props.properties.poolName}*`,
Effect: 'Allow',
});
}
this.mediaPipelineCustomResource = new aws_cdk_lib_1.CustomResource(this, 'mediaPipelineCustomResource', {
serviceToken: mediaPipelineCustomResource.serviceToken,
properties: { ...props },
});
}
}
exports.MediaPipelineResources = MediaPipelineResources;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWFQaXBlbGluZXNDdXN0b21SZXNvdXJjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWVkaWEtcGlwZWxpbmVzL21lZGlhUGlwZWxpbmVzQ3VzdG9tUmVzb3VyY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhDQUE4QztBQUM5Qyw2Q0FPcUI7QUFDckIsMkNBQXVDO0FBU3ZDLE1BQWEsc0JBQXVCLFNBQVEsc0JBQVM7SUFHbkQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFpQztRQUN6RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sMkJBQTJCLEdBQy9CLG9DQUFzQixDQUFDLG1CQUFtQixDQUN4QyxJQUFJLEVBQ0osZ0NBQWdDLEVBQ2hDO1lBQ0UsYUFBYSxFQUNYLDBFQUEwRTtZQUM1RSxPQUFPLEVBQUUsMkNBQTZCLENBQUMsV0FBVztZQUNsRCxPQUFPLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQzlCLGdCQUFnQixFQUFFO2dCQUNoQjtvQkFDRSxNQUFNLEVBQUU7d0JBQ04sMkNBQTJDO3dCQUMzQyw0Q0FBNEM7d0JBQzVDLDJCQUEyQjt3QkFDM0IsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLHdCQUF3Qjt3QkFDeEIsa0JBQWtCO3dCQUNsQixzQkFBc0I7d0JBQ3RCLFNBQVM7cUJBQ1Y7b0JBQ0QsUUFBUSxFQUFFLEdBQUc7b0JBQ2IsTUFBTSxFQUFFLE9BQU87aUJBQ2hCO2dCQUNEO29CQUNFLE1BQU0sRUFBRTt3QkFDTixtQkFBbUI7d0JBQ25CLDZCQUE2Qjt3QkFDN0IsY0FBYztxQkFDZjtvQkFDRCxRQUFRLEVBQUUsR0FBRztvQkFDYixNQUFNLEVBQUUsT0FBTztpQkFDaEI7Z0JBQ0Q7b0JBQ0UsTUFBTSxFQUFFO3dCQUNOLHdCQUF3Qjt3QkFDeEIscUJBQXFCO3dCQUNyQixzQkFBc0I7d0JBQ3RCLHdCQUF3Qjt3QkFDeEIsd0JBQXdCO3dCQUN4QixxQkFBcUI7d0JBQ3JCLHdCQUF3QjtxQkFDekI7b0JBQ0QsUUFBUSxFQUFFLEdBQUc7b0JBQ2IsTUFBTSxFQUFFLE9BQU87aUJBQ2hCO2dCQUNEO29CQUNFLE1BQU0sRUFBRSxpQkFBaUI7b0JBQ3pCLFFBQVEsRUFBRSxlQUFlLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFDNUMsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsT0FDakIsb0JBQW9CO29CQUNwQixNQUFNLEVBQUUsT0FBTztpQkFDaEI7YUFDRjtTQUNGLENBQ0YsQ0FBQztRQUVKLElBQUksS0FBSyxDQUFDLFlBQVksS0FBSyx3QkFBd0IsRUFBRSxDQUFDO1lBQ3BELDJCQUEyQixDQUFDLGVBQWUsQ0FBQztnQkFDMUMsTUFBTSxFQUFFLENBQUMsMEJBQTBCLENBQUM7Z0JBQ3BDLFFBQVEsRUFBRSxHQUFHO2dCQUNiLE1BQU0sRUFBRSxPQUFPO2FBQ2hCLENBQUMsQ0FBQztZQUNILDJCQUEyQixDQUFDLGVBQWUsQ0FBQztnQkFDMUMsTUFBTSxFQUFFLENBQUMsMkJBQTJCLENBQUM7Z0JBQ3JDLFFBQVEsRUFBRSx3QkFBd0IsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUNyRCxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUNqQiwrQkFBK0IsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUc7Z0JBQzNELE1BQU0sRUFBRSxPQUFPO2FBQ2hCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLENBQUMsMkJBQTJCLEdBQUcsSUFBSSw0QkFBYyxDQUNuRCxJQUFJLEVBQ0osNkJBQTZCLEVBQzdCO1lBQ0UsWUFBWSxFQUFFLDJCQUEyQixDQUFDLFlBQVk7WUFDdEQsVUFBVSxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUU7U0FDekIsQ0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBeEZELHdEQXdGQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9pbmRlbnQgKi9cbmltcG9ydCB7XG4gIER1cmF0aW9uLFxuICBDdXN0b21SZXNvdXJjZSxcbiAgUmVzb3VyY2VQcm9wcyxcbiAgU3RhY2ssXG4gIEN1c3RvbVJlc291cmNlUHJvdmlkZXIsXG4gIEN1c3RvbVJlc291cmNlUHJvdmlkZXJSdW50aW1lLFxufSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbi8vIGltcG9ydCB7IE1lZGlhUGlwZWxpbmVzRnVuY3Rpb24gfSBmcm9tICcuLi9yZXNvdXJjZXMvbWVkaWEtcGlwZWxpbmVzL21lZGlhLXBpcGVsaW5lcy1mdW5jdGlvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVkaWFQaXBlbGluZVJlc291cmNlUHJvcHMgZXh0ZW5kcyBSZXNvdXJjZVByb3BzIHtcbiAgcmVhZG9ubHkgcHJvcGVydGllczogeyBbcHJvcG5hbWU6IHN0cmluZ106IGFueSB9O1xuICByZWFkb25seSByZXNvdXJjZVR5cGU6ICdNZWRpYVBpcGVsaW5lSW5zaWdodHMnIHwgJ0tpbmVzaXNWaWRlb1N0cmVhbVBvb2wnO1xuICByZWFkb25seSB1aWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIE1lZGlhUGlwZWxpbmVSZXNvdXJjZXMgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgbWVkaWFQaXBlbGluZUN1c3RvbVJlc291cmNlOiBDdXN0b21SZXNvdXJjZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTWVkaWFQaXBlbGluZVJlc291cmNlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgbWVkaWFQaXBlbGluZUN1c3RvbVJlc291cmNlID1cbiAgICAgIEN1c3RvbVJlc291cmNlUHJvdmlkZXIuZ2V0T3JDcmVhdGVQcm92aWRlcihcbiAgICAgICAgdGhpcyxcbiAgICAgICAgJ0N1c3RvbTo6TWVkaWFQaXBlbGluZVJlc291cmNlcycsXG4gICAgICAgIHtcbiAgICAgICAgICBjb2RlRGlyZWN0b3J5OlxuICAgICAgICAgICAgJ25vZGVfbW9kdWxlcy9jZGstYW1hem9uLWNoaW1lLXJlc291cmNlcy9hc3NldHMvcmVzb3VyY2VzL21lZGlhLXBpcGVsaW5lcycsXG4gICAgICAgICAgcnVudGltZTogQ3VzdG9tUmVzb3VyY2VQcm92aWRlclJ1bnRpbWUuTk9ERUpTXzE4X1gsXG4gICAgICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcygzMDApLFxuICAgICAgICAgIHBvbGljeVN0YXRlbWVudHM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgQWN0aW9uOiBbXG4gICAgICAgICAgICAgICAgJ2NoaW1lOipNZWRpYUluc2lnaHRzUGlwZWxpbmVDb25maWd1cmF0aW9uJyxcbiAgICAgICAgICAgICAgICAnY2hpbWU6Kk1lZGlhUGlwZWxpbmVLaW5lc2lzVmlkZW9TdHJlYW1Qb29sJyxcbiAgICAgICAgICAgICAgICAnY2hpbWU6TGlzdFZvaWNlQ29ubmVjdG9ycycsXG4gICAgICAgICAgICAgICAgJ2NoaW1lOnRhZ1Jlc291cmNlJyxcbiAgICAgICAgICAgICAgICAnczM6TGlzdEJ1Y2tldCcsXG4gICAgICAgICAgICAgICAgJ2tpbmVzaXM6RGVzY3JpYmVTdHJlYW0nLFxuICAgICAgICAgICAgICAgICdsYW1iZGE6R2V0UG9saWN5JyxcbiAgICAgICAgICAgICAgICAnbGFtYmRhOkFkZFBlcm1pc3Npb24nLFxuICAgICAgICAgICAgICAgICdjaGltZToqJyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgUmVzb3VyY2U6ICcqJyxcbiAgICAgICAgICAgICAgRWZmZWN0OiAnQWxsb3cnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgQWN0aW9uOiBbXG4gICAgICAgICAgICAgICAgJ2lhbTpQdXRSb2xlUG9saWN5JyxcbiAgICAgICAgICAgICAgICAnaWFtOkNyZWF0ZVNlcnZpY2VMaW5rZWRSb2xlJyxcbiAgICAgICAgICAgICAgICAnaWFtOlBhc3NSb2xlJyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgUmVzb3VyY2U6ICcqJyxcbiAgICAgICAgICAgICAgRWZmZWN0OiAnQWxsb3cnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgQWN0aW9uOiBbXG4gICAgICAgICAgICAgICAgJ2xvZ3M6RGVzY3JpYmVMb2dHcm91cHMnLFxuICAgICAgICAgICAgICAgICdsb2dzOkNyZWF0ZUxvZ0dyb3VwJyxcbiAgICAgICAgICAgICAgICAnbG9nczpDcmVhdGVMb2dTdHJlYW0nLFxuICAgICAgICAgICAgICAgICdsb2dzOkxpc3RMb2dEZWxpdmVyaWVzJyxcbiAgICAgICAgICAgICAgICAnbG9nczpDcmVhdGVMb2dEZWxpdmVyeScsXG4gICAgICAgICAgICAgICAgJ2xvZ3M6R2V0TG9nRGVsaXZlcnknLFxuICAgICAgICAgICAgICAgICdsb2dzOkRlbGV0ZUxvZ0RlbGl2ZXJ5JyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgUmVzb3VyY2U6ICcqJyxcbiAgICAgICAgICAgICAgRWZmZWN0OiAnQWxsb3cnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgQWN0aW9uOiAnc3NtOipQYXJhbWV0ZXIqJyxcbiAgICAgICAgICAgICAgUmVzb3VyY2U6IGBhcm46YXdzOnNzbToke1N0YWNrLm9mKHRoaXMpLnJlZ2lvbn06JHtcbiAgICAgICAgICAgICAgICBTdGFjay5vZih0aGlzKS5hY2NvdW50XG4gICAgICAgICAgICAgIH06cGFyYW1ldGVyL2NoaW1lLypgLFxuICAgICAgICAgICAgICBFZmZlY3Q6ICdBbGxvdycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgaWYgKHByb3BzLnJlc291cmNlVHlwZSA9PT0gJ0tpbmVzaXNWaWRlb1N0cmVhbVBvb2wnKSB7XG4gICAgICBtZWRpYVBpcGVsaW5lQ3VzdG9tUmVzb3VyY2UuYWRkVG9Sb2xlUG9saWN5KHtcbiAgICAgICAgQWN0aW9uOiBbJ2tpbmVzaXN2aWRlbzpMaXN0U3RyZWFtcyddLFxuICAgICAgICBSZXNvdXJjZTogJyonLFxuICAgICAgICBFZmZlY3Q6ICdBbGxvdycsXG4gICAgICB9KTtcbiAgICAgIG1lZGlhUGlwZWxpbmVDdXN0b21SZXNvdXJjZS5hZGRUb1JvbGVQb2xpY3koe1xuICAgICAgICBBY3Rpb246IFsna2luZXNpc3ZpZGVvOkRlbGV0ZVN0cmVhbSddLFxuICAgICAgICBSZXNvdXJjZTogYGFybjphd3M6a2luZXNpc3ZpZGVvOiR7U3RhY2sub2YodGhpcykucmVnaW9ufToke1xuICAgICAgICAgIFN0YWNrLm9mKHRoaXMpLmFjY291bnRcbiAgICAgICAgfTpzdHJlYW0vQ2hpbWVNZWRpYVBpcGVsaW5lcy0ke3Byb3BzLnByb3BlcnRpZXMucG9vbE5hbWV9KmAsXG4gICAgICAgIEVmZmVjdDogJ0FsbG93JyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMubWVkaWFQaXBlbGluZUN1c3RvbVJlc291cmNlID0gbmV3IEN1c3RvbVJlc291cmNlKFxuICAgICAgdGhpcyxcbiAgICAgICdtZWRpYVBpcGVsaW5lQ3VzdG9tUmVzb3VyY2UnLFxuICAgICAge1xuICAgICAgICBzZXJ2aWNlVG9rZW46IG1lZGlhUGlwZWxpbmVDdXN0b21SZXNvdXJjZS5zZXJ2aWNlVG9rZW4sXG4gICAgICAgIHByb3BlcnRpZXM6IHsgLi4ucHJvcHMgfSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxufVxuIl19