cdk-amazon-chime-resources
Version:

28 lines • 4.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.kinesisVideoStreamPoolValidator = void 0;
const POOL_NAME_PATTERN = /^[0-9a-zA-Z._-]{1,128}$/;
const CLIENT_REQUEST_TOKEN_PATTERN = /^[-_a-zA-Z0-9]{2,64}$/;
const REGION_PATTERN = /^([a-z]+-){2,}\d+$/;
function kinesisVideoStreamPoolValidator(props) {
if (props.poolName) {
if (!POOL_NAME_PATTERN.test(props.poolName)) {
throw new Error('PoolName must be between 1 and 128 characters long and contain only alphanumeric characters, dots, underscores, or hyphens.');
}
}
if (props.clientRequestToken) {
if (!CLIENT_REQUEST_TOKEN_PATTERN.test(props.clientRequestToken)) {
throw new Error('ClientRequestToken must be between 2 and 64 characters long and contain only alphanumeric characters, hyphens, or underscores.');
}
}
if (!REGION_PATTERN.test(props.streamConfiguration.region)) {
throw new Error('Region must be between 1 and 32 characters long and match the pattern ^([a-z]+-){2,}\\d+$');
}
if (props.streamConfiguration.dataRetentionInHours !== undefined &&
props.streamConfiguration.dataRetentionInHours < 0) {
throw new Error('DataRetentionInHours must be a non-negative integer.');
}
return true;
}
exports.kinesisVideoStreamPoolValidator = kinesisVideoStreamPoolValidator;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2luZXNpc1ZpZGVvU3RyZWFtUG9vbFZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tZWRpYS1waXBlbGluZXMva2luZXNpc1ZpZGVvU3RyZWFtUG9vbFZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxNQUFNLGlCQUFpQixHQUFHLHlCQUF5QixDQUFDO0FBQ3BELE1BQU0sNEJBQTRCLEdBQUcsdUJBQXVCLENBQUM7QUFDN0QsTUFBTSxjQUFjLEdBQUcsb0JBQW9CLENBQUM7QUFFNUMsU0FBZ0IsK0JBQStCLENBQzdDLEtBQWtDO0lBRWxDLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDNUMsTUFBTSxJQUFJLEtBQUssQ0FDYiw2SEFBNkgsQ0FDOUgsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7WUFDakUsTUFBTSxJQUFJLEtBQUssQ0FDYixnSUFBZ0ksQ0FDakksQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDM0QsTUFBTSxJQUFJLEtBQUssQ0FDYiwyRkFBMkYsQ0FDNUYsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUNFLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsS0FBSyxTQUFTO1FBQzVELEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLEVBQ2xELENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQWpDRCwwRUFpQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLaW5lc2lzVmlkZW9TdHJlYW1Qb29sUHJvcHMgfSBmcm9tICcuL2tpbmVzaXNWaWRlb1N0cmVhbVBvb2wnO1xuXG5jb25zdCBQT09MX05BTUVfUEFUVEVSTiA9IC9eWzAtOWEtekEtWi5fLV17MSwxMjh9JC87XG5jb25zdCBDTElFTlRfUkVRVUVTVF9UT0tFTl9QQVRURVJOID0gL15bLV9hLXpBLVowLTldezIsNjR9JC87XG5jb25zdCBSRUdJT05fUEFUVEVSTiA9IC9eKFthLXpdKy0pezIsfVxcZCskLztcblxuZXhwb3J0IGZ1bmN0aW9uIGtpbmVzaXNWaWRlb1N0cmVhbVBvb2xWYWxpZGF0b3IoXG4gIHByb3BzOiBLaW5lc2lzVmlkZW9TdHJlYW1Qb29sUHJvcHMsXG4pIHtcbiAgaWYgKHByb3BzLnBvb2xOYW1lKSB7XG4gICAgaWYgKCFQT09MX05BTUVfUEFUVEVSTi50ZXN0KHByb3BzLnBvb2xOYW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnUG9vbE5hbWUgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDEyOCBjaGFyYWN0ZXJzIGxvbmcgYW5kIGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgZG90cywgdW5kZXJzY29yZXMsIG9yIGh5cGhlbnMuJyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHByb3BzLmNsaWVudFJlcXVlc3RUb2tlbikge1xuICAgIGlmICghQ0xJRU5UX1JFUVVFU1RfVE9LRU5fUEFUVEVSTi50ZXN0KHByb3BzLmNsaWVudFJlcXVlc3RUb2tlbikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0NsaWVudFJlcXVlc3RUb2tlbiBtdXN0IGJlIGJldHdlZW4gMiBhbmQgNjQgY2hhcmFjdGVycyBsb25nIGFuZCBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIGh5cGhlbnMsIG9yIHVuZGVyc2NvcmVzLicsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGlmICghUkVHSU9OX1BBVFRFUk4udGVzdChwcm9wcy5zdHJlYW1Db25maWd1cmF0aW9uLnJlZ2lvbikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnUmVnaW9uIG11c3QgYmUgYmV0d2VlbiAxIGFuZCAzMiBjaGFyYWN0ZXJzIGxvbmcgYW5kIG1hdGNoIHRoZSBwYXR0ZXJuIF4oW2Etel0rLSl7Mix9XFxcXGQrJCcsXG4gICAgKTtcbiAgfVxuXG4gIGlmIChcbiAgICBwcm9wcy5zdHJlYW1Db25maWd1cmF0aW9uLmRhdGFSZXRlbnRpb25JbkhvdXJzICE9PSB1bmRlZmluZWQgJiZcbiAgICBwcm9wcy5zdHJlYW1Db25maWd1cmF0aW9uLmRhdGFSZXRlbnRpb25JbkhvdXJzIDwgMFxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0RhdGFSZXRlbnRpb25JbkhvdXJzIG11c3QgYmUgYSBub24tbmVnYXRpdmUgaW50ZWdlci4nKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuIl19