@studion/infra-code-blocks
Version:
Studion common infra components
71 lines • 2.8 kB
TypeScript
import * as aws from '@pulumi/aws';
import * as awsx from '@pulumi/awsx';
import * as pulumi from '@pulumi/pulumi';
import { DatabaseReplica } from './database-replica';
import { Ec2SSMConnect } from './ec2-ssm-connect';
import { Password } from '../password';
export declare namespace Database {
type Instance = {
dbName?: pulumi.Input<string>;
engineVersion?: pulumi.Input<string>;
multiAz?: pulumi.Input<boolean>;
instanceClass?: pulumi.Input<string>;
allowMajorVersionUpgrade?: pulumi.Input<boolean>;
autoMinorVersionUpgrade?: pulumi.Input<boolean>;
applyImmediately?: pulumi.Input<boolean>;
skipFinalSnapshot?: pulumi.Input<boolean>;
};
type Credentials = {
username?: pulumi.Input<string>;
password?: pulumi.Input<string>;
};
type Storage = {
allocatedStorage?: pulumi.Input<number>;
maxAllocatedStorage?: pulumi.Input<number>;
};
type ReplicaConfig = Partial<Omit<DatabaseReplica.Args, 'replicateSourceDb' | keyof DatabaseReplica.Security>> & {
/**
* Enables monitoring for the replica instance and
* reuses the same monitoring role from the primary instance
* if you don't provide a custom `monitoringRole`.
*/
enableMonitoring?: pulumi.Input<boolean>;
};
type SSMConnectConfig = Omit<Ec2SSMConnect.Args, 'vpc'>;
type Args = Instance & Credentials & Storage & {
vpc: pulumi.Input<awsx.ec2.Vpc>;
enableMonitoring?: pulumi.Input<boolean>;
snapshotIdentifier?: pulumi.Input<string>;
parameterGroupName?: pulumi.Input<string>;
kmsKeyId?: pulumi.Input<string>;
replicaConfigs?: Map<string, ReplicaConfig>;
enableSSMConnect?: pulumi.Input<boolean>;
ssmConnectConfig?: SSMConnectConfig;
tags?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
};
}
export declare class Database extends pulumi.ComponentResource {
name: string;
instance: aws.rds.Instance;
vpc: pulumi.Output<awsx.ec2.Vpc>;
dbSubnetGroup: aws.rds.SubnetGroup;
dbSecurityGroup: aws.ec2.SecurityGroup;
password: Password;
kmsKeyId: pulumi.Output<string>;
monitoringRole?: aws.iam.Role;
encryptedSnapshotCopy?: aws.rds.SnapshotCopy;
replicas?: DatabaseReplica[];
ec2SSMConnect?: Ec2SSMConnect;
constructor(name: string, args: Database.Args, opts?: pulumi.ComponentResourceOptions);
private createSubnetGroup;
private createSecurityGroup;
private createEncryptionKey;
private createMonitoringRole;
private createEncryptedSnapshotCopy;
private createDatabaseReplica;
private createEc2SSMConnect;
private createDatabaseInstance;
}
//# sourceMappingURL=index.d.ts.map