UNPKG

@altostra/core

Version:

Core library for shared types and logic

1 lines 2.12 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.validateArnParts=exports.isValidDatabaseArn=exports.RdbArnParts=exports.ARN_SERVICE_NAME=exports.ARN_SERVICE_PARTS_COUNT=exports.isValidArnResourceTypePart=exports.VALID_ARN_RESOURCE_TYPES=exports.isExternalRelationalDatabase=exports.isExternalRelationalResource=exports.DB_TYPES=void 0;const Arn_1=require("../../../aws/CustomTypes/Arn"),NonEmptyString_1=require("../../../common/CustomTypes/NonEmptyString"),type_validations_1=require("@altostra/type-validations"),common_1=require("./common");function isExternalRelationalResource(e){return"resource.external"===e.type&&e.externalResourceType in exports.DB_TYPES}function isValidArnResourceTypePart(e){return e in exports.VALID_ARN_RESOURCE_TYPES}var RdbArnParts;function isValidDatabaseArn(e){let r,t;try{const s=(0,Arn_1.parseArn)(e);r=s.service,t=s.resource}catch(e){return!1}return validateArnParts(r,t.split(":"))}function validateArnParts(e,r){return e===exports.ARN_SERVICE_NAME&&r.length===exports.ARN_SERVICE_PARTS_COUNT&&isValidArnResourceTypePart(r[RdbArnParts.resourceType])&&(0,NonEmptyString_1.isNonEmptyString)(r[RdbArnParts.dbName])}exports.DB_TYPES={"resource.rdb.cluster":!0,"resource.rdb.instance":!0},exports.isExternalRelationalResource=isExternalRelationalResource,exports.isExternalRelationalDatabase=(0,type_validations_1.objectOf)(Object.assign(Object.assign({},common_1.externalResourceBaseValidations),{externalResourceType:(0,type_validations_1.enumOf)("resource.rdb.cluster","resource.rdb.instance"),identifier:Arn_1.isArn,databaseSecretArn:Arn_1.isArn,endpoint:NonEmptyString_1.isNonEmptyString,dbEngine:(0,type_validations_1.enumOf)("mysql","postgresql")})),exports.VALID_ARN_RESOURCE_TYPES={db:!0,cluster:!0},exports.isValidArnResourceTypePart=isValidArnResourceTypePart,exports.ARN_SERVICE_PARTS_COUNT=2,exports.ARN_SERVICE_NAME="rds",function(e){e[e.resourceType=0]="resourceType",e[e.dbName=1]="dbName"}(RdbArnParts=exports.RdbArnParts||(exports.RdbArnParts={})),exports.isValidDatabaseArn=isValidDatabaseArn,exports.validateArnParts=validateArnParts;