@altostra/core
Version:
Core library for shared types and logic
76 lines (75 loc) • 3.42 kB
TypeScript
import type { NonEmptyString } from "../../../common/CustomTypes/NonEmptyString";
import type { Integer, NaturalNumber } from "../../../common/CustomTypes/Numerics";
import type { Arn } from "../../CustomTypes/Arn";
import type { AwsResourceCommon, CloudFormationTags } from "../common";
import type { CloudFormationString, CloudFormationValue } from "../IntrinsicFunctions";
import type { DBRole } from "./common";
export declare type DBInstanceType = 'AWS::RDS::DBInstance';
export interface DBInstance extends AwsResourceCommon {
Type: DBInstanceType;
Properties: DBInstanceProperties;
}
export interface DBInstanceProperties {
AllocatedStorage?: NaturalNumber | string;
AllowMajorVersionUpgrade?: boolean;
AssociatedRoles?: DBRole[];
AutoMinorVersionUpgrade?: boolean;
AvailabilityZone?: CloudFormationValue;
BackupRetentionPeriod?: NaturalNumber | 0;
CACertificateIdentifier?: string;
CharacterSetName?: string;
CopyTagsToSnapshot?: boolean;
DBClusterIdentifier?: CloudFormationValue;
DBInstanceClass: string;
DBInstanceIdentifier?: CloudFormationValue;
DBName?: NonEmptyString;
DBParameterGroupName?: CloudFormationValue;
DBSecurityGroups?: CloudFormationValue[];
DBSnapshotIdentifier?: CloudFormationValue<Arn>;
DBSubnetGroupName?: CloudFormationValue;
DeleteAutomatedBackups?: boolean;
DeletionProtection?: boolean;
Domain?: string;
DomainIAMRoleName?: string;
EnableCloudwatchLogsExports?: string;
EnableIAMDatabaseAuthentication?: boolean;
EnablePerformanceInsights?: boolean;
Engine: InstanceEngine;
EngineVersion?: string;
Iops?: Integer;
KmsKeyId?: CloudFormationValue<Arn>;
LicenseModel?: LicenseModel;
MasterUsername?: CloudFormationValue;
MasterUserPassword?: CloudFormationValue;
MaxAllocatedStorage?: NaturalNumber;
MonitoringInterval?: MonitoringInterval;
MonitoringRoleArn?: CloudFormationValue<Arn>;
MultiAZ?: boolean;
OptionGroupName?: CloudFormationString;
PerformanceInsightsKMSKeyId?: CloudFormationString;
PerformanceInsightsRetentionPeriod?: PerformanceInsightsRetentionPeriod;
Port?: NaturalNumber;
PreferredBackupWindow?: string;
PreferredMaintenanceWindow?: string;
ProcessorFeatures?: ProcessorFeature[];
PromotionTier?: NaturalNumber | 0;
PubliclyAccessible?: boolean;
SourceDBInstanceIdentifier?: CloudFormationValue;
SourceRegion?: CloudFormationValue;
StorageEncrypted?: boolean;
StorageType?: StorageType;
Tags?: CloudFormationTags;
Timezone?: string;
UseDefaultProcessorFeatures?: boolean;
VPCSecurityGroups?: CloudFormationValue[];
}
export declare type InstanceEngine = 'aurora-mysql' | 'aurora-postgresql' | 'aurora' | 'mariadb' | 'mysql' | 'oracle-ee' | 'oracle-se' | 'oracle-se1' | 'oracle-se2' | 'postgres' | 'sqlserver-ee' | 'sqlserver-ex' | 'sqlserver-se' | 'sqlserver-web';
export declare type LicenseModel = 'bring-your-own-license' | 'general-public-license' | 'license-included';
export declare type MonitoringInterval = 0 | 1 | 5 | 10 | 15 | 30 | 60;
export declare type PerformanceInsightsRetentionPeriod = 2 | 731;
export interface ProcessorFeature {
Name?: ProcessorFeatureName;
Value?: Integer | string;
}
export declare type ProcessorFeatureName = 'coreCount' | 'threadsPerCore';
export declare type StorageType = 'gp2' | 'io1' | 'standard';