UNPKG

@altostra/core

Version:

Core library for shared types and logic

34 lines (33 loc) 1.74 kB
import type { Arn } from "../../../aws/CustomTypes/Arn"; import type { NonEmptyString } from "../../../common/CustomTypes/NonEmptyString"; import type { TypeValidation } from '@altostra/type-validations'; import type { Resource } from ".."; import type { RelationalDBClusterType, RelationalDBEngine, RelationalDBInstanceType } from "../RelationalDatabase"; import type { ExternalResourceBase } from "./common"; export declare type ExternalRelationalDatabaseType = 'external.rdb'; export declare type ExternalRelationalDbResourceType = RelationalDBClusterType | RelationalDBInstanceType; export declare const DB_TYPES: Record<ExternalRelationalDbResourceType, true>; export declare function isExternalRelationalResource(resource: Resource): resource is ExternalRelationalDatabase; export interface ExternalRelationalDatabase extends ExternalResourceBase { externalResourceType: ExternalRelationalDbResourceType; /** Database ARN */ identifier: Arn; databaseSecretArn: Arn; endpoint: NonEmptyString; dbEngine: RelationalDBEngine; } export declare const isExternalRelationalDatabase: TypeValidation<ExternalRelationalDatabase>; export declare const VALID_ARN_RESOURCE_TYPES: { db: boolean; cluster: boolean; }; export declare type ValidArnDbResource = keyof typeof VALID_ARN_RESOURCE_TYPES; export declare function isValidArnResourceTypePart(part: string): part is ValidArnDbResource; export declare const ARN_SERVICE_PARTS_COUNT = 2; export declare const ARN_SERVICE_NAME = "rds"; export declare enum RdbArnParts { resourceType = 0, dbName = 1 } export declare function isValidDatabaseArn(arn: Arn): boolean; export declare function validateArnParts(service: string, resourceParts: string[]): boolean;