@cloudcomponents/cdk-codepipeline-check-parameter-action
Version:
Cdk component that checks if system parameters are set correctly
68 lines • 9.25 kB
JavaScript
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CodePipelineCheckParameterAction = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const aws_cdk_lib_1 = require("aws-cdk-lib");
const aws_codepipeline_1 = require("aws-cdk-lib/aws-codepipeline");
const aws_codepipeline_actions_1 = require("aws-cdk-lib/aws-codepipeline-actions");
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
const check_parameter_function_1 = require("./check-parameter-function");
/**
* Represents a reference to a CodePipelineCheckParameterAction.
*/
class CodePipelineCheckParameterAction extends aws_codepipeline_actions_1.Action {
constructor(props) {
super({
...props,
category: aws_codepipeline_1.ActionCategory.INVOKE,
provider: 'Lambda',
artifactBounds: {
minInputs: 0,
maxInputs: 0,
minOutputs: 0,
maxOutputs: 0,
},
});
this.props = props;
}
bound(scope, _stage, options) {
const { parameterName, regExp, logParameter = false, crossAccountRole } = this.props;
const checkParameterFunction = new check_parameter_function_1.CheckParameterFunction(scope, 'CheckParamterFunction', {
parameterName,
crossAccountRole,
});
// allow pipeline to list functions
options.role.addToPrincipalPolicy(new aws_iam_1.PolicyStatement({
actions: ['lambda:ListFunctions'],
resources: ['*'],
}));
// allow pipeline to invoke this lambda functionn
options.role.addToPrincipalPolicy(new aws_iam_1.PolicyStatement({
actions: ['lambda:InvokeFunction'],
resources: [checkParameterFunction.functionArn],
}));
// allow lambda to put job results for this pipeline
// CodePipeline requires this to be granted to '*'
// (the Pipeline ARN will not be enough)
checkParameterFunction.addToRolePolicy(new aws_iam_1.PolicyStatement({
resources: ['*'],
actions: ['codepipeline:PutJobSuccessResult', 'codepipeline:PutJobFailureResult'],
}));
return {
configuration: {
FunctionName: checkParameterFunction.functionName,
UserParameters: aws_cdk_lib_1.Stack.of(scope).toJsonString({
parameterName,
regExp: regExp ? regExp.source : undefined,
logParameter,
crossAccountRole,
}),
},
};
}
}
exports.CodePipelineCheckParameterAction = CodePipelineCheckParameterAction;
_a = JSII_RTTI_SYMBOL_1;
CodePipelineCheckParameterAction[_a] = { fqn: "@cloudcomponents/cdk-codepipeline-check-parameter-action.CodePipelineCheckParameterAction", version: "2.4.0" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZXBpcGVsaW5lLWNoZWNrLXBhcmFtZXRlci1hY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29kZXBpcGVsaW5lLWNoZWNrLXBhcmFtZXRlci1hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBb0M7QUFDcEMsbUVBTXNDO0FBQ3RDLG1GQUE4RDtBQUM5RCxpREFBNkQ7QUFHN0QseUVBQW9FO0FBZ0NwRTs7R0FFRztBQUNILE1BQWEsZ0NBQWlDLFNBQVEsaUNBQU07SUFHMUQsWUFBWSxLQUE0QztRQUN0RCxLQUFLLENBQUM7WUFDSixHQUFHLEtBQUs7WUFDUixRQUFRLEVBQUUsaUNBQWMsQ0FBQyxNQUFNO1lBQy9CLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLGNBQWMsRUFBRTtnQkFDZCxTQUFTLEVBQUUsQ0FBQztnQkFDWixTQUFTLEVBQUUsQ0FBQztnQkFDWixVQUFVLEVBQUUsQ0FBQztnQkFDYixVQUFVLEVBQUUsQ0FBQzthQUNkO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVTLEtBQUssQ0FBQyxLQUFnQixFQUFFLE1BQWMsRUFBRSxPQUEwQjtRQUMxRSxNQUFNLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxZQUFZLEdBQUcsS0FBSyxFQUFFLGdCQUFnQixFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUVyRixNQUFNLHNCQUFzQixHQUFHLElBQUksaURBQXNCLENBQUMsS0FBSyxFQUFFLHVCQUF1QixFQUFFO1lBQ3hGLGFBQWE7WUFDYixnQkFBZ0I7U0FDakIsQ0FBQyxDQUFDO1FBRUgsbUNBQW1DO1FBQ25DLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQy9CLElBQUkseUJBQWUsQ0FBQztZQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztZQUNqQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7U0FDakIsQ0FBQyxDQUNILENBQUM7UUFFRixpREFBaUQ7UUFDakQsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FDL0IsSUFBSSx5QkFBZSxDQUFDO1lBQ2xCLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixDQUFDO1lBQ2xDLFNBQVMsRUFBRSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsQ0FBQztTQUNoRCxDQUFDLENBQ0gsQ0FBQztRQUVGLG9EQUFvRDtRQUNwRCxrREFBa0Q7UUFDbEQsd0NBQXdDO1FBQ3hDLHNCQUFzQixDQUFDLGVBQWUsQ0FDcEMsSUFBSSx5QkFBZSxDQUFDO1lBQ2xCLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztZQUNoQixPQUFPLEVBQUUsQ0FBQyxrQ0FBa0MsRUFBRSxrQ0FBa0MsQ0FBQztTQUNsRixDQUFDLENBQ0gsQ0FBQztRQUVGLE9BQU87WUFDTCxhQUFhLEVBQUU7Z0JBQ2IsWUFBWSxFQUFFLHNCQUFzQixDQUFDLFlBQVk7Z0JBQ2pELGNBQWMsRUFBRSxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUM7b0JBQzNDLGFBQWE7b0JBQ2IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUztvQkFDMUMsWUFBWTtvQkFDWixnQkFBZ0I7aUJBQ2pCLENBQUM7YUFDSDtTQUNGLENBQUM7SUFDSixDQUFDOztBQWhFSCw0RUFpRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7XG4gIEFjdGlvbkNhdGVnb3J5LFxuICBDb21tb25Bd3NBY3Rpb25Qcm9wcyxcbiAgSVN0YWdlLFxuICBBY3Rpb25CaW5kT3B0aW9ucyxcbiAgQWN0aW9uQ29uZmlnLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29kZXBpcGVsaW5lJztcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2RlcGlwZWxpbmUtYWN0aW9ucyc7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQsIElSb2xlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuaW1wb3J0IHsgQ2hlY2tQYXJhbWV0ZXJGdW5jdGlvbiB9IGZyb20gJy4vY2hlY2stcGFyYW1ldGVyLWZ1bmN0aW9uJztcblxuZXhwb3J0IGludGVyZmFjZSBSZWdFeHAge1xuICByZWFkb25seSBzb3VyY2U6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21tb25Db2RlUGlwZWxpbmVDaGVja1BhcmFtZXRlckFjdGlvblByb3BzIGV4dGVuZHMgQ29tbW9uQXdzQWN0aW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHBhcmFtZXRlci5cbiAgICovXG4gIHJlYWRvbmx5IHBhcmFtZXRlck5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogUGFyYW1ldGVyIGlzIGxvZ2dlZCBhZnRlciBzdWNjZXNzZnVsIGNoZWNrXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlIFRoZSBwYXJhbWV0ZXIgaXMgbm90IGxvZ2dlZFxuICAgKi9cbiAgcmVhZG9ubHkgbG9nUGFyYW1ldGVyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUm9sZSBmb3IgY3Jvc3NBY2NvdW50IHBlcm1pc3Npb25cbiAgICovXG4gIHJlYWRvbmx5IGNyb3NzQWNjb3VudFJvbGU/OiBJUm9sZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2RlUGlwZWxpbmVDaGVja1BhcmFtZXRlckFjdGlvblByb3BzIGV4dGVuZHMgQ29tbW9uQ29kZVBpcGVsaW5lQ2hlY2tQYXJhbWV0ZXJBY3Rpb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBSZWd1bGFyIGV4cHJlc3Npb24gdG8gdmFsaWRhdGUgdGhlIHBhcmFtZXRlci5cbiAgICovXG4gIHJlYWRvbmx5IHJlZ0V4cD86IFJlZ0V4cDtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgcmVmZXJlbmNlIHRvIGEgQ29kZVBpcGVsaW5lQ2hlY2tQYXJhbWV0ZXJBY3Rpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBDb2RlUGlwZWxpbmVDaGVja1BhcmFtZXRlckFjdGlvbiBleHRlbmRzIEFjdGlvbiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IENvZGVQaXBlbGluZUNoZWNrUGFyYW1ldGVyQWN0aW9uUHJvcHM7XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IENvZGVQaXBlbGluZUNoZWNrUGFyYW1ldGVyQWN0aW9uUHJvcHMpIHtcbiAgICBzdXBlcih7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNhdGVnb3J5OiBBY3Rpb25DYXRlZ29yeS5JTlZPS0UsXG4gICAgICBwcm92aWRlcjogJ0xhbWJkYScsXG4gICAgICBhcnRpZmFjdEJvdW5kczoge1xuICAgICAgICBtaW5JbnB1dHM6IDAsXG4gICAgICAgIG1heElucHV0czogMCxcbiAgICAgICAgbWluT3V0cHV0czogMCxcbiAgICAgICAgbWF4T3V0cHV0czogMCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gIH1cblxuICBwcm90ZWN0ZWQgYm91bmQoc2NvcGU6IENvbnN0cnVjdCwgX3N0YWdlOiBJU3RhZ2UsIG9wdGlvbnM6IEFjdGlvbkJpbmRPcHRpb25zKTogQWN0aW9uQ29uZmlnIHtcbiAgICBjb25zdCB7IHBhcmFtZXRlck5hbWUsIHJlZ0V4cCwgbG9nUGFyYW1ldGVyID0gZmFsc2UsIGNyb3NzQWNjb3VudFJvbGUgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjaGVja1BhcmFtZXRlckZ1bmN0aW9uID0gbmV3IENoZWNrUGFyYW1ldGVyRnVuY3Rpb24oc2NvcGUsICdDaGVja1BhcmFtdGVyRnVuY3Rpb24nLCB7XG4gICAgICBwYXJhbWV0ZXJOYW1lLFxuICAgICAgY3Jvc3NBY2NvdW50Um9sZSxcbiAgICB9KTtcblxuICAgIC8vIGFsbG93IHBpcGVsaW5lIHRvIGxpc3QgZnVuY3Rpb25zXG4gICAgb3B0aW9ucy5yb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KFxuICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFsnbGFtYmRhOkxpc3RGdW5jdGlvbnMnXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICAvLyBhbGxvdyBwaXBlbGluZSB0byBpbnZva2UgdGhpcyBsYW1iZGEgZnVuY3Rpb25uXG4gICAgb3B0aW9ucy5yb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KFxuICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFsnbGFtYmRhOkludm9rZUZ1bmN0aW9uJ10sXG4gICAgICAgIHJlc291cmNlczogW2NoZWNrUGFyYW1ldGVyRnVuY3Rpb24uZnVuY3Rpb25Bcm5dLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIC8vIGFsbG93IGxhbWJkYSB0byBwdXQgam9iIHJlc3VsdHMgZm9yIHRoaXMgcGlwZWxpbmVcbiAgICAvLyBDb2RlUGlwZWxpbmUgcmVxdWlyZXMgdGhpcyB0byBiZSBncmFudGVkIHRvICcqJ1xuICAgIC8vICh0aGUgUGlwZWxpbmUgQVJOIHdpbGwgbm90IGJlIGVub3VnaClcbiAgICBjaGVja1BhcmFtZXRlckZ1bmN0aW9uLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICBhY3Rpb25zOiBbJ2NvZGVwaXBlbGluZTpQdXRKb2JTdWNjZXNzUmVzdWx0JywgJ2NvZGVwaXBlbGluZTpQdXRKb2JGYWlsdXJlUmVzdWx0J10sXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgRnVuY3Rpb25OYW1lOiBjaGVja1BhcmFtZXRlckZ1bmN0aW9uLmZ1bmN0aW9uTmFtZSxcbiAgICAgICAgVXNlclBhcmFtZXRlcnM6IFN0YWNrLm9mKHNjb3BlKS50b0pzb25TdHJpbmcoe1xuICAgICAgICAgIHBhcmFtZXRlck5hbWUsXG4gICAgICAgICAgcmVnRXhwOiByZWdFeHAgPyByZWdFeHAuc291cmNlIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGxvZ1BhcmFtZXRlcixcbiAgICAgICAgICBjcm9zc0FjY291bnRSb2xlLFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuIl19
;