aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
180 lines (179 loc) • 5.03 kB
TypeScript
import { Construct } from 'constructs';
import { IDatabaseCluster } from './cluster-ref';
import { Endpoint } from './endpoint';
import * as ec2 from '../../aws-ec2';
import { CaCertificate } from '../../aws-rds';
import * as cdk from '../../core';
/**
* A database instance
*/
export interface IDatabaseInstance extends cdk.IResource {
/**
* The instance identifier.
*/
readonly instanceIdentifier: string;
/**
* The instance arn.
*/
readonly instanceArn: string;
/**
* The instance endpoint address.
*
* @attribute Endpoint
*/
readonly dbInstanceEndpointAddress: string;
/**
* The instance endpoint port.
*
* @attribute Port
*/
readonly dbInstanceEndpointPort: string;
/**
* The instance endpoint.
*/
readonly instanceEndpoint: Endpoint;
}
/**
* Properties that describe an existing instance
*/
export interface DatabaseInstanceAttributes {
/**
* The instance identifier.
*/
readonly instanceIdentifier: string;
/**
* The endpoint address.
*/
readonly instanceEndpointAddress: string;
/**
* The database port.
*/
readonly port: number;
}
/**
* A new or imported database instance.
*/
declare abstract class DatabaseInstanceBase extends cdk.Resource implements IDatabaseInstance {
/**
* Import an existing database instance.
*/
static fromDatabaseInstanceAttributes(scope: Construct, id: string, attrs: DatabaseInstanceAttributes): IDatabaseInstance;
/**
* @inheritdoc
*/
abstract readonly instanceIdentifier: string;
/**
* @inheritdoc
*/
abstract readonly dbInstanceEndpointAddress: string;
/**
* @inheritdoc
*/
abstract readonly dbInstanceEndpointPort: string;
/**
* @inheritdoc
*/
abstract readonly instanceEndpoint: Endpoint;
/**
* The instance arn.
*/
get instanceArn(): string;
}
/**
* Construction properties for a DatabaseInstanceNew
*/
export interface DatabaseInstanceProps {
/**
* The DocumentDB database cluster the instance should launch into.
*/
readonly cluster: IDatabaseCluster;
/**
* The name of the compute and memory capacity classes.
*/
readonly instanceType: ec2.InstanceType;
/**
* The name of the Availability Zone where the DB instance will be located.
*
* @default - no preference
*/
readonly availabilityZone?: string;
/**
* A name for the DB instance. If you specify a name, AWS CloudFormation
* converts it to lowercase.
*
* @default - a CloudFormation generated name
*/
readonly dbInstanceName?: string;
/**
* Indicates that minor engine upgrades are applied automatically to the
* DB instance during the maintenance window.
*
* @default true
*/
readonly autoMinorVersionUpgrade?: boolean;
/**
* The weekly time range (in UTC) during which system maintenance can occur.
*
* Format: `ddd:hh24:mi-ddd:hh24:mi`
* Constraint: Minimum 30-minute window
*
* @default - a 30-minute window selected at random from an 8-hour block of
* time for each AWS Region, occurring on a random day of the week. To see
* the time blocks available, see https://docs.aws.amazon.com/documentdb/latest/developerguide/db-instance-maintain.html#maintenance-window
*/
readonly preferredMaintenanceWindow?: string;
/**
* The CloudFormation policy to apply when the instance is removed from the
* stack or replaced during an update.
*
* @default RemovalPolicy.Retain
*/
readonly removalPolicy?: cdk.RemovalPolicy;
/**
* A value that indicates whether to enable Performance Insights for the DB Instance.
*
* @default - false
*/
readonly enablePerformanceInsights?: boolean;
/**
* The identifier of the CA certificate for this DB instance.
*
* Specifying or updating this property triggers a reboot.
*
* @see https://docs.aws.amazon.com/documentdb/latest/developerguide/ca_cert_rotation.html
*
* @default - DocumentDB will choose a certificate authority
*/
readonly caCertificate?: CaCertificate;
}
/**
* A database instance
*
* @resource AWS::DocDB::DBInstance
*/
export declare class DatabaseInstance extends DatabaseInstanceBase implements IDatabaseInstance {
/** Uniquely identifies this class. */
static readonly PROPERTY_INJECTION_ID: string;
/**
* The instance's database cluster
*/
readonly cluster: IDatabaseCluster;
/**
* @inheritdoc
*/
readonly instanceIdentifier: string;
/**
* @inheritdoc
*/
readonly dbInstanceEndpointAddress: string;
/**
* @inheritdoc
*/
readonly dbInstanceEndpointPort: string;
/**
* @inheritdoc
*/
readonly instanceEndpoint: Endpoint;
constructor(scope: Construct, id: string, props: DatabaseInstanceProps);
}
export {};