72 lines
2.1 KiB
TypeScript
72 lines
2.1 KiB
TypeScript
import type { Construct } from 'constructs';
|
|
import type * as kms from '../../aws-kms';
|
|
import * as secretsmanager from '../../aws-secretsmanager';
|
|
/**
|
|
* Construction properties for a DatabaseSecret.
|
|
*/
|
|
export interface DatabaseSecretProps {
|
|
/**
|
|
* The username.
|
|
*/
|
|
readonly username: string;
|
|
/**
|
|
* The database name, if not using the default one
|
|
*
|
|
* @default - whatever the secret generates after the attach method is run
|
|
*/
|
|
readonly dbname?: string;
|
|
/**
|
|
* A name for the secret.
|
|
*
|
|
* @default - A name is generated by CloudFormation.
|
|
*/
|
|
readonly secretName?: string;
|
|
/**
|
|
* The KMS key to use to encrypt the secret.
|
|
*
|
|
* @default default master key
|
|
*/
|
|
readonly encryptionKey?: kms.IKey;
|
|
/**
|
|
* The master secret which will be used to rotate this secret.
|
|
*
|
|
* @default - no master secret information will be included
|
|
*/
|
|
readonly masterSecret?: secretsmanager.ISecret;
|
|
/**
|
|
* Characters to not include in the generated password.
|
|
*
|
|
* @default " %+~`#$&*()|[]{}:;<>?!'/@\"\\"
|
|
*/
|
|
readonly excludeCharacters?: string;
|
|
/**
|
|
* Whether to replace this secret when the criteria for the password change.
|
|
*
|
|
* This is achieved by overriding the logical id of the AWS::SecretsManager::Secret
|
|
* with a hash of the options that influence the password generation. This
|
|
* way a new secret will be created when the password is regenerated and the
|
|
* cluster or instance consuming this secret will have its credentials updated.
|
|
*
|
|
* @default false
|
|
*/
|
|
readonly replaceOnPasswordCriteriaChanges?: boolean;
|
|
/**
|
|
* A list of regions where to replicate this secret.
|
|
*
|
|
* @default - Secret is not replicated
|
|
*/
|
|
readonly replicaRegions?: secretsmanager.ReplicaRegion[];
|
|
}
|
|
/**
|
|
* A database secret.
|
|
*
|
|
* @resource AWS::SecretsManager::Secret
|
|
*/
|
|
export declare class DatabaseSecret extends secretsmanager.Secret {
|
|
/**
|
|
* Uniquely identifies this class.
|
|
*/
|
|
static readonly PROPERTY_INJECTION_ID: string;
|
|
constructor(scope: Construct, id: string, props: DatabaseSecretProps);
|
|
}
|