@altostra/core
Version:
Core library for shared types and logic
1 lines • 3.35 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.isTable=exports.isAwsTableSpecific=exports.isAwsTableProvisionedSpecific=exports.isAwsTablePayPerRequestSpecific=exports.isTableIndex=exports.isTableIndexProjection=exports.isTableKey=exports.isTableKeyPart=exports.isSimpleTable=exports.isTableThroughput=void 0;const Integer_1=require("../../common/CustomTypes/Integer"),NonEmptyString_1=require("../../common/CustomTypes/NonEmptyString"),type_validations_1=require("@altostra/type-validations"),primitives_1=require("@altostra/type-validations/lib/primitives"),Common_1=require("./Common");exports.isTableThroughput=(0,type_validations_1.objectOf)({readUnits:Integer_1.isInteger,writeUnits:Integer_1.isInteger}),exports.isSimpleTable=(0,type_validations_1.objectOf)(Object.assign(Object.assign({},Common_1.resourceBaseValidators),{type:(0,type_validations_1.is)("resource.table.simple"),tableName:primitives_1.string,key:primitives_1.string,throughput:(0,type_validations_1.maybe)(exports.isTableThroughput)})),exports.isTableKeyPart=(0,type_validations_1.objectOf)({name:primitives_1.string,type:(0,type_validations_1.enumOf)("STRING","NUMBER","BINARY")}),exports.isTableKey=(0,type_validations_1.objectOf)({hash:exports.isTableKeyPart,range:(0,type_validations_1.maybe)(exports.isTableKeyPart)}),exports.isTableIndexProjection=(0,type_validations_1.anyOf)((0,type_validations_1.objectOf)({type:(0,type_validations_1.is)("table.index.projection.all")}),(0,type_validations_1.objectOf)({type:(0,type_validations_1.is)("table.index.projection.keys")}),(0,type_validations_1.objectOf)({type:(0,type_validations_1.is)("table.index.projection.include"),attributes:(0,type_validations_1.arrayOf)(primitives_1.string)})),exports.isTableIndex=(0,type_validations_1.objectOf)({name:primitives_1.string,key:exports.isTableKey,projection:exports.isTableIndexProjection,throughput:(0,type_validations_1.maybe)(exports.isTableThroughput)}),exports.isAwsTablePayPerRequestSpecific=(0,type_validations_1.objectOf)({billingModel:(0,type_validations_1.is)("PAY_PER_REQUEST"),throughput:primitives_1.undefinedValidation}),exports.isAwsTableProvisionedSpecific=(0,type_validations_1.objectOf)({billingModel:(0,type_validations_1.is)("PROVISIONED"),throughput:exports.isTableThroughput}),exports.isAwsTableSpecific=(0,type_validations_1.anyOf)(exports.isAwsTablePayPerRequestSpecific,exports.isAwsTableProvisionedSpecific),exports.isTable=(0,type_validations_1.objectOf)(Object.assign(Object.assign({},Common_1.resourceBaseValidators),{type:(0,type_validations_1.is)("resource.table"),deletionPolicy:(0,type_validations_1.maybe)((0,type_validations_1.enumOf)("Delete","Retain")),tableName:primitives_1.string,key:exports.isTableKey,primaryIndexes:(0,type_validations_1.maybe)((0,type_validations_1.arrayOf)(exports.isTableIndex)),secondaryIndexes:(0,type_validations_1.maybe)((0,type_validations_1.arrayOf)(exports.isTableIndex)),stream:(0,type_validations_1.maybe)((0,type_validations_1.objectOf)({streamViewType:(0,type_validations_1.enumOf)("KEYS_ONLY","NEW_AND_OLD_IMAGES","NEW_IMAGE","OLD_IMAGE")})),TTL:(0,type_validations_1.maybe)((0,type_validations_1.objectOf)({attributeName:NonEmptyString_1.isNonEmptyString,disabled:primitives_1.maybeBoolean})),aws:exports.isAwsTableSpecific,isPointInTimeRecoveryEnabled:primitives_1.maybeBoolean}));