@altostra/core
Version:
Core library for shared types and logic
34 lines (33 loc) • 1.74 kB
TypeScript
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;