cdk-amazon-chime-resources
Version:

54 lines • 6.97 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.sipRuleValidator = void 0;
var E164_NUMBER = /^\+[1-9]\d{1,14}$/;
var URI_HOSTNAME = /^[0-9a-z]{22}.voiceconnector.chime.aws$/;
var SMA_ID = /^[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}$/;
function sipRuleValidator(props) {
if (props.triggerType) {
if (props.triggerValue.includes('Token')) {
}
else {
if (props.triggerType === 'ToPhoneNumber' &&
!E164_NUMBER.test(props.triggerValue)) {
throw new Error('Trigger Value must be must be valid E.164 number');
}
if (props.triggerType === 'RequestUriHostname' &&
!URI_HOSTNAME.test(props.triggerValue)) {
throw new Error('Trigger Value must be valid Chime Voice Connector');
}
}
}
if (props.targetApplications) {
for (var target of props.targetApplications) {
if (target.sipMediaApplicationId) {
if (target.sipMediaApplicationId.includes('Token')) {
}
else {
if (!SMA_ID.test(target.sipMediaApplicationId)) {
throw new Error('sipMediaApplicationId must be valid');
}
}
}
for (var target of props.targetApplications) {
if (target.priority) {
if (target.priority < 1 || target.priority > 25) {
throw new Error('priority should be between 1 and 25');
}
}
}
for (var target of props.targetApplications) {
if (target.region) {
if (!(target.region.includes('Token[AWS.Region.') ||
target.region === 'us-east-1' ||
target.region === 'us-west-2')) {
throw new Error('Region must be us-east-1 or us-west-2');
}
}
}
}
}
return true;
}
exports.sipRuleValidator = sipRuleValidator;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lwUnVsZVZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wc3RuL3NpcFJ1bGVWYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsSUFBSSxXQUFXLEdBQUcsbUJBQW1CLENBQUM7QUFFdEMsSUFBSSxZQUFZLEdBQUcseUNBQXlDLENBQUM7QUFFN0QsSUFBSSxNQUFNLEdBQUcsZ0VBQWdFLENBQUM7QUFFOUUsU0FBZ0IsZ0JBQWdCLENBQUMsS0FBbUI7SUFDbEQsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdEIsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzNDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFDRSxLQUFLLENBQUMsV0FBVyxLQUFLLGVBQWU7Z0JBQ3JDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQ3JDLENBQUM7Z0JBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO1lBQ3RFLENBQUM7WUFDRCxJQUNFLEtBQUssQ0FBQyxXQUFXLEtBQUssb0JBQW9CO2dCQUMxQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUN0QyxDQUFDO2dCQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztZQUN2RSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzdCLEtBQUssSUFBSSxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDNUMsSUFBSSxNQUFNLENBQUMscUJBQXFCLEVBQUUsQ0FBQztnQkFDakMsSUFBSSxNQUFNLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ3JELENBQUM7cUJBQU0sQ0FBQztvQkFDTixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDO3dCQUMvQyxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7b0JBQ3pELENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7WUFDRCxLQUFLLElBQUksTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUM1QyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDcEIsSUFBSSxNQUFNLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxHQUFHLEVBQUUsRUFBRSxDQUFDO3dCQUNoRCxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7b0JBQ3pELENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7WUFFRCxLQUFLLElBQUksTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUM1QyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDbEIsSUFDRSxDQUFDLENBQ0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUM7d0JBQzNDLE1BQU0sQ0FBQyxNQUFNLEtBQUssV0FBVzt3QkFDN0IsTUFBTSxDQUFDLE1BQU0sS0FBSyxXQUFXLENBQzlCLEVBQ0QsQ0FBQzt3QkFDRCxNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7b0JBQzNELENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQXRERCw0Q0FzREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaXBSdWxlUHJvcHMgfSBmcm9tICcuL3NpcFJ1bGUnO1xuXG52YXIgRTE2NF9OVU1CRVIgPSAvXlxcK1sxLTldXFxkezEsMTR9JC87XG5cbnZhciBVUklfSE9TVE5BTUUgPSAvXlswLTlhLXpdezIyfS52b2ljZWNvbm5lY3Rvci5jaGltZS5hd3MkLztcblxudmFyIFNNQV9JRCA9IC9eWzAtOWEtel17OH0tWzAtOWEtel17NH0tWzAtOWEtel17NH0tWzAtOWEtel17NH0tWzAtOWEtel17MTJ9JC87XG5cbmV4cG9ydCBmdW5jdGlvbiBzaXBSdWxlVmFsaWRhdG9yKHByb3BzOiBTaXBSdWxlUHJvcHMpIHtcbiAgaWYgKHByb3BzLnRyaWdnZXJUeXBlKSB7XG4gICAgaWYgKHByb3BzLnRyaWdnZXJWYWx1ZS5pbmNsdWRlcygnVG9rZW4nKSkge1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoXG4gICAgICAgIHByb3BzLnRyaWdnZXJUeXBlID09PSAnVG9QaG9uZU51bWJlcicgJiZcbiAgICAgICAgIUUxNjRfTlVNQkVSLnRlc3QocHJvcHMudHJpZ2dlclZhbHVlKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVHJpZ2dlciBWYWx1ZSBtdXN0IGJlIG11c3QgYmUgdmFsaWQgRS4xNjQgbnVtYmVyJyk7XG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIHByb3BzLnRyaWdnZXJUeXBlID09PSAnUmVxdWVzdFVyaUhvc3RuYW1lJyAmJlxuICAgICAgICAhVVJJX0hPU1ROQU1FLnRlc3QocHJvcHMudHJpZ2dlclZhbHVlKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVHJpZ2dlciBWYWx1ZSBtdXN0IGJlIHZhbGlkIENoaW1lIFZvaWNlIENvbm5lY3RvcicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChwcm9wcy50YXJnZXRBcHBsaWNhdGlvbnMpIHtcbiAgICBmb3IgKHZhciB0YXJnZXQgb2YgcHJvcHMudGFyZ2V0QXBwbGljYXRpb25zKSB7XG4gICAgICBpZiAodGFyZ2V0LnNpcE1lZGlhQXBwbGljYXRpb25JZCkge1xuICAgICAgICBpZiAodGFyZ2V0LnNpcE1lZGlhQXBwbGljYXRpb25JZC5pbmNsdWRlcygnVG9rZW4nKSkge1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICghU01BX0lELnRlc3QodGFyZ2V0LnNpcE1lZGlhQXBwbGljYXRpb25JZCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignc2lwTWVkaWFBcHBsaWNhdGlvbklkIG11c3QgYmUgdmFsaWQnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZvciAodmFyIHRhcmdldCBvZiBwcm9wcy50YXJnZXRBcHBsaWNhdGlvbnMpIHtcbiAgICAgICAgaWYgKHRhcmdldC5wcmlvcml0eSkge1xuICAgICAgICAgIGlmICh0YXJnZXQucHJpb3JpdHkgPCAxIHx8IHRhcmdldC5wcmlvcml0eSA+IDI1KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3ByaW9yaXR5IHNob3VsZCBiZSBiZXR3ZWVuIDEgYW5kIDI1Jyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGZvciAodmFyIHRhcmdldCBvZiBwcm9wcy50YXJnZXRBcHBsaWNhdGlvbnMpIHtcbiAgICAgICAgaWYgKHRhcmdldC5yZWdpb24pIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhKFxuICAgICAgICAgICAgICB0YXJnZXQucmVnaW9uLmluY2x1ZGVzKCdUb2tlbltBV1MuUmVnaW9uLicpIHx8XG4gICAgICAgICAgICAgIHRhcmdldC5yZWdpb24gPT09ICd1cy1lYXN0LTEnIHx8XG4gICAgICAgICAgICAgIHRhcmdldC5yZWdpb24gPT09ICd1cy13ZXN0LTInXG4gICAgICAgICAgICApXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlZ2lvbiBtdXN0IGJlIHVzLWVhc3QtMSBvciB1cy13ZXN0LTInKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cbiJdfQ==