@aws-cdk/aws-kinesisanalytics-flink-alpha
Version:
A CDK Construct Library for Kinesis Analytics Flink applications
87 lines • 8.54 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return 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++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateFlinkApplicationProps = validateFlinkApplicationProps;
const core = __importStar(require("aws-cdk-lib/core"));
/**
* Early validation for the props used to create FlinkApplications.
*/
function validateFlinkApplicationProps(props) {
validateApplicationName(props.applicationName);
validateParallelism(props.parallelism);
validateParallelismPerKpu(props.parallelismPerKpu);
validateVpcProps(props);
}
function validateApplicationName(applicationName) {
if (applicationName === undefined || core.Token.isUnresolved(applicationName)) {
return;
}
if (applicationName.length === 0) {
throw new Error('applicationName cannot be empty. It must contain at least 1 character.');
}
if (!/^[a-zA-Z0-9_.-]+$/.test(applicationName)) {
throw new Error(`applicationName may only contain letters, numbers, underscores, hyphens, and periods. Name: ${applicationName}`);
}
if (applicationName.length > 128) {
throw new Error(`applicationName max length is 128. Name: ${applicationName} is ${applicationName.length} characters.`);
}
}
function validateParallelism(parallelism) {
if (parallelism === undefined || core.Token.isUnresolved(parallelism)) {
return;
}
if (parallelism < 1) {
throw new Error('parallelism must be at least 1');
}
}
function validateParallelismPerKpu(parallelismPerKpu) {
if (parallelismPerKpu === undefined || core.Token.isUnresolved(parallelismPerKpu)) {
return;
}
if (parallelismPerKpu < 1) {
throw new Error('parallelismPerKpu must be at least 1');
}
}
function validateVpcProps({ vpc, securityGroups = [], vpcSubnets }) {
if (!vpc) {
if (vpcSubnets) {
throw new Error('vpc prop required when passing vpcSubnets');
}
if (securityGroups.length > 0) {
throw new Error('vpc prop required when passing securityGroups');
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInZhbGlkYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFlQSxzRUFLQztBQW5CRCx1REFBeUM7QUFXekM7O0dBRUc7QUFDSCxTQUFnQiw2QkFBNkIsQ0FBQyxLQUFxQjtJQUNqRSx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDL0MsbUJBQW1CLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZDLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ25ELGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzFCLENBQUM7QUFFRCxTQUFTLHVCQUF1QixDQUFDLGVBQXdCO0lBQ3ZELElBQUksZUFBZSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1FBQzlFLE9BQU87SUFDVCxDQUFDO0lBRUQsSUFBSSxlQUFlLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMsd0VBQXdFLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRUQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1FBQy9DLE1BQU0sSUFBSSxLQUFLLENBQUMsK0ZBQStGLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDcEksQ0FBQztJQUVELElBQUksZUFBZSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxlQUFlLE9BQU8sZUFBZSxDQUFDLE1BQU0sY0FBYyxDQUFDLENBQUM7SUFDMUgsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLFdBQW9CO0lBQy9DLElBQUksV0FBVyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1FBQ3RFLE9BQU87SUFDVCxDQUFDO0lBRUQsSUFBSSxXQUFXLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO0lBQ3BELENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyx5QkFBeUIsQ0FBQyxpQkFBMEI7SUFDM0QsSUFBSSxpQkFBaUIsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1FBQ2xGLE9BQU87SUFDVCxDQUFDO0lBRUQsSUFBSSxpQkFBaUIsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLEVBQUUsR0FBRyxFQUFFLGNBQWMsR0FBRyxFQUFFLEVBQUUsVUFBVSxFQUFrQjtJQUNoRixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDVCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFFRCxJQUFJLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1FBQ25FLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgZWMyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0ICogYXMgY29yZSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcblxuaW50ZXJmYWNlIFZhbGlkYXRlZFByb3BzIHtcbiAgYXBwbGljYXRpb25OYW1lPzogc3RyaW5nO1xuICBwYXJhbGxlbGlzbT86IG51bWJlcjtcbiAgcGFyYWxsZWxpc21QZXJLcHU/OiBudW1iZXI7XG4gIHZwYz86IGVjMi5JVnBjO1xuICB2cGNTdWJuZXRzPzogZWMyLlN1Ym5ldFNlbGVjdGlvbjtcbiAgc2VjdXJpdHlHcm91cHM/OiBlYzIuSVNlY3VyaXR5R3JvdXBbXTtcbn1cblxuLyoqXG4gKiBFYXJseSB2YWxpZGF0aW9uIGZvciB0aGUgcHJvcHMgdXNlZCB0byBjcmVhdGUgRmxpbmtBcHBsaWNhdGlvbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUZsaW5rQXBwbGljYXRpb25Qcm9wcyhwcm9wczogVmFsaWRhdGVkUHJvcHMpIHtcbiAgdmFsaWRhdGVBcHBsaWNhdGlvbk5hbWUocHJvcHMuYXBwbGljYXRpb25OYW1lKTtcbiAgdmFsaWRhdGVQYXJhbGxlbGlzbShwcm9wcy5wYXJhbGxlbGlzbSk7XG4gIHZhbGlkYXRlUGFyYWxsZWxpc21QZXJLcHUocHJvcHMucGFyYWxsZWxpc21QZXJLcHUpO1xuICB2YWxpZGF0ZVZwY1Byb3BzKHByb3BzKTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVBcHBsaWNhdGlvbk5hbWUoYXBwbGljYXRpb25OYW1lPzogc3RyaW5nKSB7XG4gIGlmIChhcHBsaWNhdGlvbk5hbWUgPT09IHVuZGVmaW5lZCB8fCBjb3JlLlRva2VuLmlzVW5yZXNvbHZlZChhcHBsaWNhdGlvbk5hbWUpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGFwcGxpY2F0aW9uTmFtZS5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2FwcGxpY2F0aW9uTmFtZSBjYW5ub3QgYmUgZW1wdHkuIEl0IG11c3QgY29udGFpbiBhdCBsZWFzdCAxIGNoYXJhY3Rlci4nKTtcbiAgfVxuXG4gIGlmICghL15bYS16QS1aMC05Xy4tXSskLy50ZXN0KGFwcGxpY2F0aW9uTmFtZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGFwcGxpY2F0aW9uTmFtZSBtYXkgb25seSBjb250YWluIGxldHRlcnMsIG51bWJlcnMsIHVuZGVyc2NvcmVzLCBoeXBoZW5zLCBhbmQgcGVyaW9kcy4gTmFtZTogJHthcHBsaWNhdGlvbk5hbWV9YCk7XG4gIH1cblxuICBpZiAoYXBwbGljYXRpb25OYW1lLmxlbmd0aCA+IDEyOCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgYXBwbGljYXRpb25OYW1lIG1heCBsZW5ndGggaXMgMTI4LiBOYW1lOiAke2FwcGxpY2F0aW9uTmFtZX0gaXMgJHthcHBsaWNhdGlvbk5hbWUubGVuZ3RofSBjaGFyYWN0ZXJzLmApO1xuICB9XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlUGFyYWxsZWxpc20ocGFyYWxsZWxpc20/OiBudW1iZXIpIHtcbiAgaWYgKHBhcmFsbGVsaXNtID09PSB1bmRlZmluZWQgfHwgY29yZS5Ub2tlbi5pc1VucmVzb2x2ZWQocGFyYWxsZWxpc20pKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKHBhcmFsbGVsaXNtIDwgMSkge1xuICAgIHRocm93IG5ldyBFcnJvcigncGFyYWxsZWxpc20gbXVzdCBiZSBhdCBsZWFzdCAxJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVQYXJhbGxlbGlzbVBlcktwdShwYXJhbGxlbGlzbVBlcktwdT86IG51bWJlcikge1xuICBpZiAocGFyYWxsZWxpc21QZXJLcHUgPT09IHVuZGVmaW5lZCB8fCBjb3JlLlRva2VuLmlzVW5yZXNvbHZlZChwYXJhbGxlbGlzbVBlcktwdSkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAocGFyYWxsZWxpc21QZXJLcHUgPCAxKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwYXJhbGxlbGlzbVBlcktwdSBtdXN0IGJlIGF0IGxlYXN0IDEnKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVZwY1Byb3BzKHsgdnBjLCBzZWN1cml0eUdyb3VwcyA9IFtdLCB2cGNTdWJuZXRzIH06IFZhbGlkYXRlZFByb3BzKSB7XG4gIGlmICghdnBjKSB7XG4gICAgaWYgKHZwY1N1Ym5ldHMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndnBjIHByb3AgcmVxdWlyZWQgd2hlbiBwYXNzaW5nIHZwY1N1Ym5ldHMnKTtcbiAgICB9XG5cbiAgICBpZiAoc2VjdXJpdHlHcm91cHMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd2cGMgcHJvcCByZXF1aXJlZCB3aGVuIHBhc3Npbmcgc2VjdXJpdHlHcm91cHMnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==