@altostra/core
Version:
Core library for shared types and logic
1 lines • 1.95 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.isVPC=exports.isStorageEncryption=exports.multiVendorPropertyValidation=exports.isResourceBase=exports.resourceBaseValidators=exports.isRef=void 0;const Arn_1=require("../../aws/CustomTypes/Arn"),NonEmptyString_1=require("../../common/CustomTypes/NonEmptyString"),type_validations_1=require("@altostra/type-validations"),primitives_1=require("@altostra/type-validations/lib/primitives"),ResourceId_1=require("./ResourceId");function multiVendorPropertyValidation(e){var i,t,s;let r,o,a;"function"==typeof e?r=o=a=e:(r=null!==(i=e.aws)&&void 0!==i?i:primitives_1.never,o=null!==(t=e.gcp)&&void 0!==t?t:primitives_1.never,a=null!==(s=e.azure)&&void 0!==s?s:primitives_1.never);const n={aws:(0,type_validations_1.maybe)(r),gcp:(0,type_validations_1.maybe)(o),azure:(0,type_validations_1.maybe)(a)};return(0,type_validations_1.anyOf)((0,type_validations_1.objectOf)(Object.assign(Object.assign({},n),{aws:r})),(0,type_validations_1.objectOf)(Object.assign(Object.assign({},n),{gcp:o})),(0,type_validations_1.objectOf)(Object.assign(Object.assign({},n),{azure:a})))}exports.isRef=(0,type_validations_1.objectOf)({type:(0,type_validations_1.is)("ref"),id:primitives_1.string}),exports.resourceBaseValidators={id:ResourceId_1.isResourceId,name:primitives_1.string,description:(0,type_validations_1.maybe)(primitives_1.string)},exports.isResourceBase=(0,type_validations_1.objectOf)(exports.resourceBaseValidators,{strict:!1}),exports.multiVendorPropertyValidation=multiVendorPropertyValidation,exports.isStorageEncryption=multiVendorPropertyValidation({aws:(0,type_validations_1.objectOf)({kmsKeyId:(0,type_validations_1.anyOf)(Arn_1.isArn,primitives_1.nullValidation)})}),exports.isVPC=(0,type_validations_1.objectOf)({securityGroups:(0,type_validations_1.arrayOf)(NonEmptyString_1.isNonEmptyString),subnets:(0,type_validations_1.arrayOf)(NonEmptyString_1.isNonEmptyString)});