rds

package
v1.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 6, 2026 License: MIT Imports: 40 Imported by: 0

README

RDS

Parity grade: A · SDK aws-sdk-go-v2/service/rds@v1.124.1 · last audited 2026-09-19 (68761ba3a)

Coverage

Metric Value
PARITY entries audited 52 (51 ok, 1 partial)
Feature families 28 (27 ok, 1 partial)
Known gaps 8
Deferred items 0
Resource leaks fixed
Known gaps
  • "OPEN 2026-10-04 (gopherstack-1jkv): two different roles added to a cluster with FeatureName omitted on both coexist (placeholder); the pinned SDK documents no collision rule and real-AWS evidence is needed."
  • "OPEN 2026-10-03: ManageMasterUserPassword/MasterUserSecretKmsKeyId record a MasterUserSecret (ARN, status, KMS key) on instances, clusters and tenant databases, but no secret is created in services/secretsmanager (rds has no sibling accessor), RotateMasterUserPassword is unread, and an unset MasterUserSecretKmsKeyId leaves KmsKeyId empty rather than the aws/secretsmanager key ARN."
  • "OPEN 2026-10-03: with --rds-engine=docker read replicas, restore-based instances, custom cluster endpoints, DBPortNumber changes and non-Postgres/MySQL/MariaDB engines stay metadata-only. Restore relaunches empty containers."
  • OPEN 2026-10-05 (gopherstack-9x62): FailoverGlobalCluster/SwitchoverGlobalCluster do not move the writer role between members; CreateDBInstanceReadReplica.SourceDBClusterIdentifier, CopyDBClusterSnapshot/CreateDBCluster.SourceRegion and PreSignedUrl (cross-region) are not read; DBInstance.MaxAllocatedStorage is stored and echoed but never autoscales; the cluster restores copy only a subset of the source/snapshot attributes.
  • "OPEN: DescribeDBClusterSnapshots/DescribeDBSnapshots .IncludePublic/.IncludeShared are dropped; single-account backend has no cross-account snapshot data to reveal."
  • "OPEN 2026-09-13 (gopherstack-xhu2t tier-5 sweep, consolidated 2026-09-26): five fields describe transient/async state this backend never produces because the matching operation applies synchronously -- ModifyDBInstance .CertificateRotationRestart (no per-instance CACertificateIdentifier, so no rotation/restart to control), RestoreDBClusterToPointInTime/ RestoreDBInstanceToPointInTime.UseLatestRestorableTime (restore always uses the source's current live state; only the SDK-documented conflict with RestoreTime/RestoreToTime is validated), SwitchoverBlueGreenDeployment.SwitchoverTimeout (switchover completes synchronously, nothing to time out), and DBInstance/DBInstanceAutomatedBackup's StorageOperationPercentProgress/StorageOperationStatus (storage modifications apply synchronously, so there's never an in-progress op to report)."
  • "OPEN 2026-09-11 (gopherstack-qpxye, consolidated 2026-09-26): three Describe ops return honestly-empty/dropped data because the pinned SDK module (aws-sdk-go-v2/service/rds@v1.124.1) has no enumerable catalog to source real values from -- DescribeEngineDefaultParameters (empty Parameters; no seeded per-family default-parameter table anywhere in this repo's dependencies), DescribeDBEngineVersions.ListSupportedCharacterSets/.ListSupportedTimezones/ .IncludeAll (no per-version character-set/timezone/deprecated-status catalog behind engine_versions.go's static builtin list), and DescribeServerlessV2PlatformVersions (ServerlessV2PlatformVersion is a plain *string with no documented enum to enumerate). Fabricating any of these would be invented data with nothing in this SDK module to verify it against."
  • "GetPerformanceInsightsMetrics is not a real operation name/shape on either the RDS client or the Performance Insights ('pi') client (real op: GetResourceMetrics, a separate client/endpoint not in this repo's go.mod). Kept wired as real, seeded, non-stub functionality with no accurate replacement to redirect callers to; sdkcheck's phantomAllowlist (gopherstack-vhw2) documents the exception. See the performance_insights family note. (parity-5/phantom-triage, 2026-07-31)"

More

Documentation

Index

Constants

View Source
const (
	EngineStub   = "stub"
	EngineDocker = "docker"
)

Engine modes for RDS.

Variables

View Source
var (
	// ErrInstanceNotFound is returned when an RDS instance does not exist.
	ErrInstanceNotFound = awserr.New("DBInstanceNotFound", awserr.ErrNotFound)
	// ErrInstanceAlreadyExists is returned when an RDS instance already exists.
	ErrInstanceAlreadyExists = awserr.New("DBInstanceAlreadyExists", awserr.ErrAlreadyExists)
	// ErrSnapshotNotFound is returned when a snapshot does not exist.
	ErrSnapshotNotFound = awserr.New("DBSnapshotNotFound", awserr.ErrNotFound)
	// ErrSnapshotAlreadyExists is returned when a snapshot already exists.
	ErrSnapshotAlreadyExists = awserr.New("DBSnapshotAlreadyExists", awserr.ErrAlreadyExists)
	// ErrSubnetGroupNotFound is returned when a subnet group does not exist.
	ErrSubnetGroupNotFound = awserr.New("DBSubnetGroupNotFound", awserr.ErrNotFound)
	// ErrSubnetGroupAlreadyExists is returned when a subnet group already exists.
	ErrSubnetGroupAlreadyExists = awserr.New("DBSubnetGroupAlreadyExists", awserr.ErrAlreadyExists)
	// ErrSubnetGroupInUse is returned when a subnet group is still associated with a DB instance.
	ErrSubnetGroupInUse = awserr.New("InvalidDBSubnetGroupStateFault", awserr.ErrConflict)
	// ErrInvalidParameter is returned for invalid input.
	ErrInvalidParameter = awserr.New("InvalidParameterValue", awserr.ErrInvalidParameter)
	// ErrInvalidParameterCombination is returned when a set of otherwise-valid
	// parameters cannot be used together (e.g. MonitoringInterval>0 without a
	// MonitoringRoleArn). AWS returns the InvalidParameterCombination error code.
	ErrInvalidParameterCombination = awserr.New("InvalidParameterCombination", awserr.ErrInvalidParameter)
	// ErrUnknownAction is returned for unrecognized RDS actions.
	ErrUnknownAction = awserr.New("InvalidAction", awserr.ErrInvalidParameter)
	// ErrInvalidDBInstanceState is returned when an instance operation is invalid given its current state.
	ErrInvalidDBInstanceState = awserr.New("InvalidDBInstanceState", awserr.ErrConflict)
	// ErrResourceNotFound is the generic not-found error for operations whose
	// ResourceArn/ResourceIdentifier can name more than one resource type
	// (verified against aws-sdk-go-v2/service/rds@v1.124.1's deserializers.go
	// declared error sets for ApplyPendingMaintenanceAction, EnableHttpEndpoint,
	// and DisableHttpEndpoint, none of which declare a resource-type-specific
	// not-found code).
	ErrResourceNotFound = awserr.New("ResourceNotFoundFault", awserr.ErrNotFound)

	// ErrParameterGroupNotFound is returned when a DB parameter group does not exist.
	ErrParameterGroupNotFound = awserr.New("DBParameterGroupNotFound", awserr.ErrNotFound)
	// ErrParameterGroupAlreadyExists is returned when a DB parameter group already exists.
	ErrParameterGroupAlreadyExists = awserr.New("DBParameterGroupAlreadyExists", awserr.ErrAlreadyExists)
	// ErrOptionGroupNotFound is returned when an option group does not exist.
	ErrOptionGroupNotFound = awserr.New("OptionGroupNotFound", awserr.ErrNotFound)
	// ErrOptionGroupAlreadyExists is returned when an option group already exists.
	ErrOptionGroupAlreadyExists = awserr.New("OptionGroupAlreadyExists", awserr.ErrAlreadyExists)
	// ErrClusterNotFound is returned when a DB cluster does not exist.
	ErrClusterNotFound = awserr.New("DBClusterNotFound", awserr.ErrNotFound)
	// ErrClusterAlreadyExists is returned when a DB cluster already exists.
	ErrClusterAlreadyExists = awserr.New("DBClusterAlreadyExists", awserr.ErrAlreadyExists)
	// ErrClusterRoleAlreadyExists is returned when the role is already associated with the cluster feature.
	ErrClusterRoleAlreadyExists = awserr.New("DBClusterRoleAlreadyExists", awserr.ErrAlreadyExists)
	// ErrClusterRoleNotFound is returned when the role is not associated with the cluster feature.
	ErrClusterRoleNotFound = awserr.New("DBClusterRoleNotFound", awserr.ErrNotFound)
	// ErrClusterSnapshotNotFound is returned when a DB cluster snapshot does not exist.
	ErrClusterSnapshotNotFound = awserr.New("DBClusterSnapshotNotFound", awserr.ErrNotFound)
	// ErrClusterSnapshotAlreadyExists is returned when a DB cluster snapshot already exists.
	ErrClusterSnapshotAlreadyExists = awserr.New("DBClusterSnapshotAlreadyExists", awserr.ErrAlreadyExists)
	// ErrClusterEndpointNotFound is returned when a DB cluster endpoint does not exist.
	ErrClusterEndpointNotFound = awserr.New("DBClusterEndpointNotFound", awserr.ErrNotFound)
	// ErrClusterEndpointAlreadyExists is returned when a DB cluster endpoint already exists.
	ErrClusterEndpointAlreadyExists = awserr.New("DBClusterEndpointAlreadyExists", awserr.ErrAlreadyExists)
	// ErrExportTaskNotFound is returned when an export task does not exist.
	ErrExportTaskNotFound = awserr.New("ExportTaskNotFound", awserr.ErrNotFound)
	// ErrExportTaskAlreadyExists is returned when an export task already exists.
	ErrExportTaskAlreadyExists = awserr.New("ExportTaskAlreadyExists", awserr.ErrAlreadyExists)
	// ErrGlobalClusterNotFound is returned when a global cluster does not exist.
	ErrGlobalClusterNotFound = awserr.New("GlobalClusterNotFound", awserr.ErrNotFound)
	// ErrGlobalClusterAlreadyExists is returned when a global cluster already exists.
	ErrGlobalClusterAlreadyExists = awserr.New("GlobalClusterAlreadyExists", awserr.ErrAlreadyExists)
	// ErrInvalidDBClusterStateFault is returned when a cluster operation is invalid given its current state.
	ErrInvalidDBClusterStateFault = awserr.New("InvalidDBClusterStateFault", awserr.ErrConflict)
	// ErrInvalidGlobalClusterState is returned when a global cluster operation is invalid given its current state.
	ErrInvalidGlobalClusterState = awserr.New("InvalidGlobalClusterStateFault", awserr.ErrConflict)
	// ErrEventSubscriptionNotFound is returned when an event subscription does not exist.
	ErrEventSubscriptionNotFound = awserr.New("SubscriptionNotFound", awserr.ErrNotFound)
	// ErrEventSubscriptionAlreadyExists is returned when an event subscription already exists.
	ErrEventSubscriptionAlreadyExists = awserr.New("SubscriptionAlreadyExist", awserr.ErrAlreadyExists)
	// ErrDBSecurityGroupNotFound is returned when a DB security group does not exist.
	ErrDBSecurityGroupNotFound = awserr.New("DBSecurityGroupNotFound", awserr.ErrNotFound)
	// ErrDBSecurityGroupAlreadyExists is returned when a DB security group already exists.
	ErrDBSecurityGroupAlreadyExists = awserr.New("DBSecurityGroupAlreadyExists", awserr.ErrAlreadyExists)
	// ErrDBSecurityGroupInvalidState is returned by DeleteDBSecurityGroup for
	// the default DB security group. Real AWS: DeleteDBSecurityGroupInput.
	// DBSecurityGroupName's own doc comment, "You can't delete the default
	// DB security group" ("Must not be \"Default\"").
	ErrDBSecurityGroupInvalidState = awserr.New("InvalidDBSecurityGroupState", awserr.ErrConflict)
	// ErrBlueGreenDeploymentNotFound is returned when a Blue/Green Deployment does not exist.
	ErrBlueGreenDeploymentNotFound = awserr.New("BlueGreenDeploymentNotFound", awserr.ErrNotFound)
	// ErrBlueGreenDeploymentAlreadyExists is returned when a Blue/Green Deployment already exists.
	ErrBlueGreenDeploymentAlreadyExists = awserr.New("BlueGreenDeploymentAlreadyExists", awserr.ErrAlreadyExists)
	// ErrNoServerlessV2Config is a sentinel indicating no ServerlessV2ScalingConfiguration was provided.
	ErrNoServerlessV2Config = errors.New("noServerlessV2Config")

	// ErrDBShardGroupNotFound is returned when a DB shard group does not exist.
	ErrDBShardGroupNotFound = awserr.New("DBShardGroupNotFound", awserr.ErrNotFound)
	// ErrDBShardGroupAlreadyExists is returned when a DB shard group already exists.
	ErrDBShardGroupAlreadyExists = awserr.New("DBShardGroupAlreadyExists", awserr.ErrAlreadyExists)

	// ErrIntegrationNotFound is returned when an integration does not exist.
	ErrIntegrationNotFound = awserr.New("IntegrationNotFound", awserr.ErrNotFound)
	// ErrIntegrationAlreadyExists is returned when an integration already exists.
	ErrIntegrationAlreadyExists = awserr.New("IntegrationAlreadyExists", awserr.ErrAlreadyExists)

	// ErrTenantDatabaseNotFound is returned when a tenant database does not exist.
	ErrTenantDatabaseNotFound = awserr.New("TenantDatabaseNotFound", awserr.ErrNotFound)
	// ErrTenantDatabaseAlreadyExists is returned when a tenant database already exists.
	ErrTenantDatabaseAlreadyExists = awserr.New("TenantDatabaseAlreadyExists", awserr.ErrAlreadyExists)

	// ErrCustomDBEngineVersionNotFound is returned when a custom DB engine version does not exist.
	ErrCustomDBEngineVersionNotFound = awserr.New("CustomDBEngineVersionNotFoundFault", awserr.ErrNotFound)
	// ErrCustomDBEngineVersionAlreadyExists is returned when a custom DB engine version already exists.
	ErrCustomDBEngineVersionAlreadyExists = awserr.New(
		"CustomDBEngineVersionAlreadyExistsFault",
		awserr.ErrAlreadyExists,
	)

	// ErrDBClusterAutomatedBackupNotFound is returned when a cluster automated backup does not exist.
	ErrDBClusterAutomatedBackupNotFound = awserr.New("DBClusterAutomatedBackupNotFound", awserr.ErrNotFound)
	// ErrDBInstanceAutomatedBackupNotFound is returned when an instance automated backup does not exist.
	ErrDBInstanceAutomatedBackupNotFound = awserr.New("DBInstanceAutomatedBackupNotFound", awserr.ErrNotFound)
)
View Source
var (
	// ErrDBProxyAlreadyExists is returned when a DB proxy with the same name already exists.
	ErrDBProxyAlreadyExists         = awserr.New("DBProxyAlreadyExists", awserr.ErrAlreadyExists)
	ErrDBProxyEndpointAlreadyExists = awserr.New("DBProxyEndpointAlreadyExists", awserr.ErrAlreadyExists)
	// ErrDBProxyNotFound is returned for an unknown DBProxyName (confirmed against
	// DescribeDBProxies/DeleteDBProxy's declared error sets in rds@v1.124.1
	// deserializers.go, both DBProxyNotFoundFault -- not the generic
	// InvalidParameterValue this backend previously returned, which left the real
	// AWS provider's delete waiter unable to recognize "already gone" as success).
	ErrDBProxyNotFound = awserr.New("DBProxyNotFoundFault", awserr.ErrNotFound)
	// ErrDBProxyTargetGroupNotFound is the documented fault for an unknown target group.
	ErrDBProxyTargetGroupNotFound = awserr.New("DBProxyTargetGroupNotFoundFault", awserr.ErrNotFound)
	// ErrDBProxyEndpointNotFound is returned for an unknown DBProxyEndpointName
	// (confirmed against DescribeDBProxyEndpoints/DeleteDBProxyEndpoint's declared
	// error sets, both DBProxyEndpointNotFoundFault).
	ErrDBProxyEndpointNotFound          = awserr.New("DBProxyEndpointNotFoundFault", awserr.ErrNotFound)
	ErrCannotDeleteDefaultProxyEndpoint = awserr.New("InvalidDBProxyEndpointStateFault", awserr.ErrConflict)
	ErrActivityStreamAlreadyStarted     = awserr.New("InvalidDBClusterStateFault", awserr.ErrConflict)
	ErrActivityStreamNotStarted         = awserr.New("InvalidDBClusterStateFault", awserr.ErrConflict)
)
View Source
var ErrNilAppContext = errors.New("nil AppContext passed to RDS Provider.Init")

ErrNilAppContext is returned by Init when a nil AppContext is passed.

View Source
var ErrRebootFailed = errors.New("aws:rds:reboot-db-instances failed")

ErrRebootFailed is returned when one or more FIS reboot-instance actions fail.

Functions

func ValidateEngineLifecycleSupport

func ValidateEngineLifecycleSupport(val string) error

ValidateEngineLifecycleSupport returns an error if the value is not a recognized EngineLifecycleSupport option.

func ValidateStorageTypeForCluster

func ValidateStorageTypeForCluster(storageType string) error

ValidateStorageTypeForCluster returns an error if the storage type is not valid for an Aurora cluster.

Types

type AccountAttribute

type AccountAttribute struct {
	AttributeName string `json:"attributeName"`
	Used          int    `json:"used"`
	Max           int    `json:"max"`
}

AccountAttribute represents an RDS account quota attribute.

type BlueGreenDeployment

type BlueGreenDeployment struct {
	BlueGreenDeploymentIdentifier string `json:"blueGreenDeploymentIdentifier"`
	BlueGreenDeploymentName       string `json:"blueGreenDeploymentName"`
	Source                        string `json:"source"`
	Target                        string `json:"target,omitempty"`
	Status                        string `json:"status"`
}

BlueGreenDeployment represents an RDS Blue/Green Deployment.

type Certificate

type Certificate struct {
	CertificateIdentifier string `json:"certificateIdentifier"`
	CertificateType       string `json:"certificateType"`
	ValidTill             string `json:"validTill"`
	ValidFrom             string `json:"validFrom"`
	Thumbprint            string `json:"thumbprint"`
	CustomerOverride      bool   `json:"customerOverride"`
}

Certificate represents an RDS CA certificate.

type CharacterSet

type CharacterSet struct {
	Name        string `json:"name"`
	Description string `json:"description"`
}

CharacterSet is an engine-supported CharacterSetName value.

type ConnectionPoolConfig

type ConnectionPoolConfig struct {
	InitQuery                 string   `json:"initQuery"`
	SessionPinningFilters     []string `json:"sessionPinningFilters"`
	ConnectionBorrowTimeout   int      `json:"connectionBorrowTimeout"`
	MaxConnectionsPercent     int      `json:"maxConnectionsPercent"`
	MaxIdleConnectionsPercent int      `json:"maxIdleConnectionsPercent"`
}

ConnectionPoolConfig holds connection pooling parameters for a proxy target group.

type CopyDBSnapshotOptions

type CopyDBSnapshotOptions struct {
	KmsKeyID     string
	SourceRegion string
	CopyTags     bool
}

CopyDBSnapshotOptions holds optional fields for CopyDBSnapshot.

type CustomDBEngineVersion

type CustomDBEngineVersion struct {
	Engine             string `json:"engine"`
	EngineVersion      string `json:"engineVersion"`
	DBEngineVersionArn string `json:"dbEngineVersionArn,omitempty"`
	Status             string `json:"status"`
	Description        string `json:"description"`
	ImageID            string `json:"imageId,omitempty"`
}

CustomDBEngineVersion represents a custom engine version for RDS.

type DBCluster

type DBCluster struct {
	MasterSecret
	ClusterCreateTime         time.Time                         `json:"clusterCreateTime"`
	ServerlessV2ScalingConfig *ServerlessV2ScalingConfiguration `json:"serverlessV2ScalingConfiguration,omitempty"`

	MonitoringRoleArn               string `json:"monitoringRoleArn,omitempty"`
	StorageType                     string `json:"storageType,omitempty"`
	Status                          string `json:"status"`
	MasterUsername                  string `json:"masterUsername"`
	DatabaseName                    string `json:"databaseName"`
	DBClusterParameterGroupName     string `json:"dbClusterParameterGroupName"`
	DBClusterArn                    string `json:"dbClusterArn,omitempty"`
	DBClusterResourceID             string `json:"dbClusterResourceId,omitempty"`
	Engine                          string `json:"engine"`
	EngineVersion                   string `json:"engineVersion,omitempty"`
	ActivityStreamAuditPolicy       string `json:"activityStreamAuditPolicy"`
	DBClusterIdentifier             string `json:"dbClusterIdentifier"`
	ActivityStreamKinesisStreamName string `json:"activityStreamKinesisStreamName"`
	ActivityStreamKMSKeyID          string `json:"activityStreamKmsKeyId"`
	ActivityStreamMode              string `json:"activityStreamMode"`
	PreferredBackupWindow           string `json:"preferredBackupWindow,omitempty"`
	PreferredMaintenanceWindow      string `json:"preferredMaintenanceWindow,omitempty"`
	KmsKeyID                        string `json:"kmsKeyID,omitempty"`
	ActivityStreamStatus            string `json:"activityStreamStatus"`
	EngineLifecycleSupport          string `json:"engineLifecycleSupport,omitempty"`
	NetworkType                     string `json:"networkType,omitempty"`
	ReaderEndpoint                  string `json:"readerEndpoint,omitempty"`
	Endpoint                        string `json:"endpoint"`
	ReplicationSourceIdentifier     string `json:"replicationSourceIdentifier,omitempty"`
	OptionGroupName                 string `json:"optionGroupName,omitempty"`
	PerformanceInsightsKMSKeyID     string `json:"performanceInsightsKmsKeyId,omitempty"`
	DBInstanceParameterGroupName    string `json:"dbInstanceParameterGroupName,omitempty"`
	ClusterScalabilityType          string `json:"clusterScalabilityType,omitempty"`
	DBSubnetGroupName               string `json:"dbSubnetGroupName,omitempty"`

	VpcSecurityGroups            []VpcSecurityGroupMembership `json:"vpcSecurityGroups,omitempty"`
	EnabledCloudwatchLogsExports []string                     `json:"enabledCloudwatchLogsExports,omitempty"`
	ReaderAvailabilityZones      []string                     `json:"readerAvailabilityZones,omitempty"`
	AvailabilityZones            []string                     `json:"availabilityZones,omitempty"`
	DBClusterMembers             []DBClusterMember            `json:"dbClusterMembers,omitempty"`
	ReadReplicaIdentifiers       []string                     `json:"readReplicaIdentifiers,omitempty"`

	BacktrackWindow                    int64 `json:"backtrackWindow,omitempty"`
	Port                               int   `json:"port"`
	BackupRetentionPeriod              int   `json:"backupRetentionPeriod"`
	MonitoringInterval                 int   `json:"monitoringInterval,omitempty"`
	ServerlessCapacity                 int   `json:"serverlessCapacity"`
	PerformanceInsightsRetentionPeriod int   `json:"performanceInsightsRetentionPeriod,omitempty"`
	AllocatedStorage                   int   `json:"allocatedStorage,omitempty"`
	Iops                               int   `json:"iops,omitempty"`

	MultiAZ                          bool `json:"multiAZ,omitempty"`
	HTTPEndpointEnabled              bool `json:"httpEndpointEnabled"`
	StorageEncrypted                 bool `json:"storageEncrypted,omitempty"`
	CopyTagsToSnapshot               bool `json:"copyTagsToSnapshot,omitempty"`
	DeletionProtection               bool `json:"deletionProtection,omitempty"`
	OptimizedWrites                  bool `json:"optimizedWrites,omitempty"`
	AutoMinorVersionUpgrade          bool `json:"autoMinorVersionUpgrade,omitempty"`
	PubliclyAccessible               bool `json:"publiclyAccessible,omitempty"`
	IAMDatabaseAuthenticationEnabled bool `json:"iamDatabaseAuthenticationEnabled,omitempty"`
	EnableGlobalWriteForwarding      bool `json:"enableGlobalWriteForwarding,omitempty"`
	EnableLocalWriteForwarding       bool `json:"enableLocalWriteForwarding,omitempty"`
	PerformanceInsightsEnabled       bool `json:"performanceInsightsEnabled,omitempty"`

	// ActivityStreamEngineNativeAuditFieldsIncluded gets its own group: at 46
	// chars it's by far the longest field name here, and gofmt aligns every
	// field in a contiguous block to the widest one.
	ActivityStreamEngineNativeAuditFieldsIncluded bool `json:"activityStreamEngineNativeAuditFieldsIncluded,omitempty"`
}

DBCluster represents an Aurora-style RDS cluster.

type DBClusterAutomatedBackup

type DBClusterAutomatedBackup struct {
	DBClusterIdentifier   string `json:"dbClusterIdentifier"`
	DBClusterResourceID   string `json:"dbClusterResourceId"`
	Engine                string `json:"engine"`
	EngineVersion         string `json:"engineVersion"`
	Region                string `json:"region"`
	Status                string `json:"status"`
	BackupRetentionPeriod int    `json:"backupRetentionPeriod"`
	StorageEncrypted      bool   `json:"storageEncrypted"`
}

DBClusterAutomatedBackup represents an automated backup record for an RDS cluster.

type DBClusterBacktrack

type DBClusterBacktrack struct {
	DBClusterIdentifier string `json:"dbClusterIdentifier"`
	BacktrackIdentifier string `json:"backtrackIdentifier"`
	BacktrackTo         string `json:"backtrackTo"`
	Status              string `json:"status"`
}

DBClusterBacktrack represents backtrack information for an Aurora cluster.

type DBClusterEndpoint

type DBClusterEndpoint struct {
	DBClusterEndpointIdentifier string `json:"dbClusterEndpointIdentifier"`
	DBClusterIdentifier         string `json:"dbClusterIdentifier"`
	DBClusterEndpointArn        string `json:"dbClusterEndpointArn,omitempty"`
	EndpointType                string `json:"endpointType"`
	Status                      string `json:"status"`
	Endpoint                    string `json:"endpoint"`
}

DBClusterEndpoint represents a custom endpoint for an RDS cluster.

type DBClusterMember

type DBClusterMember struct {
	DBInstanceIdentifier        string `json:"dbInstanceIdentifier"`
	DBClusterParameterGroupName string `json:"dbClusterParameterGroupName"`
	PromotionTier               int    `json:"promotionTier"`
	IsClusterWriter             bool   `json:"isClusterWriter"`
}

DBClusterMember represents a member instance in a DB cluster.

type DBClusterOptions

type DBClusterOptions struct {
	MasterSecretRequest
	MasterUserPassword                 string
	EngineVersion                      string
	KmsKeyID                           string
	PreferredBackupWindow              string
	PreferredMaintenanceWindow         string
	MonitoringRoleArn                  string
	StorageType                        string
	NetworkType                        string
	EngineLifecycleSupport             string
	ReplicationSourceIdentifier        string
	OptionGroupName                    string
	ClusterScalabilityType             string
	DBInstanceParameterGroupName       string
	PerformanceInsightsKMSKeyID        string
	DBSubnetGroupName                  string
	GlobalClusterIdentifier            string
	VpcSecurityGroupIDs                []string
	EnabledCloudwatchLogsExports       []string
	AvailabilityZones                  []string
	BacktrackWindow                    int64
	BackupRetentionPeriod              int
	MonitoringInterval                 int
	PerformanceInsightsRetentionPeriod int
	AllocatedStorage                   int
	Iops                               int
	AllowMajorVersionUpgrade           bool
	MultiAZ                            bool
	StorageEncrypted                   bool
	StorageEncryptedChanged            bool
	CopyTagsToSnapshot                 bool
	DeletionProtection                 bool
	DeletionProtectionSet              bool
	OptimizedWrites                    bool
	AutoMinorVersionUpgrade            bool
	PubliclyAccessible                 bool
	EnableIAMDatabaseAuthentication    bool
	EnableGlobalWriteForwarding        bool
	EnableLocalWriteForwarding         bool
	EnableHTTPEndpoint                 bool
	EnableHTTPEndpointSet              bool
	PerformanceInsightsEnabled         bool
	ApplyImmediately                   bool
}

DBClusterOptions holds optional fields for CreateDBCluster and ModifyDBCluster.

type DBClusterRole added in v1.3.1

type DBClusterRole struct {
	RoleArn     string `json:"roleArn"`
	FeatureName string `json:"featureName"`
	Status      string `json:"status"`
}

DBClusterRole associates an IAM role with a DB cluster for a feature slot (rds@v1.124.1 types.go:1511, AssociatedRoles on DBCluster). Unlike the instance-side FeatureName (required, fixed in gopherstack-i101), FeatureName is optional here (api_op_AddRoleToDBCluster.go:39-43), so an empty FeatureName means the client omitted it, not that AWS reported one as empty -- see db_clusters.go's upsertClusterRole/removeClusterRole for how the omitted case is handled. That handling is a documented placeholder, not verified against real AWS; see gopherstack-1jkv and PARITY.md.

type DBClusterSnapshot

type DBClusterSnapshot struct {
	SnapshotCreateTime          time.Time `json:"snapshotCreateTime"`
	EngineVersion               string    `json:"engineVersion,omitempty"`
	DBClusterSnapshotArn        string    `json:"dbClusterSnapshotArn,omitempty"`
	DBClusterIdentifier         string    `json:"dbClusterIdentifier"`
	DBClusterResourceID         string    `json:"dbClusterResourceId,omitempty"`
	Engine                      string    `json:"engine"`
	DBClusterSnapshotIdentifier string    `json:"dbClusterSnapshotIdentifier"`
	Status                      string    `json:"status"`
	SnapshotType                string    `json:"snapshotType,omitempty"`
	KmsKeyID                    string    `json:"kmsKeyId,omitempty"`
	SourceDBClusterSnapshotArn  string    `json:"sourceDBClusterSnapshotArn,omitempty"`
	PercentProgress             int       `json:"percentProgress"`
	StorageEncrypted            bool      `json:"storageEncrypted,omitempty"`
	CopyTagsToSnapshot          bool      `json:"copyTagsToSnapshot,omitempty"`
}

DBClusterSnapshot represents an RDS cluster snapshot.

type DBClusterSnapshotAttributesResult

type DBClusterSnapshotAttributesResult struct {
	DBClusterSnapshotIdentifier string                `json:"dbClusterSnapshotIdentifier"`
	DBClusterSnapshotAttributes []DBSnapshotAttribute `json:"dbClusterSnapshotAttributes"`
}

DBClusterSnapshotAttributesResult holds attributes for a cluster snapshot.

type DBEngineVersion

type DBEngineVersion struct {
	Engine              string `json:"engine"`
	EngineVersion       string `json:"engineVersion"`
	DBEngineDescription string `json:"dbEngineDescription"`
	// Status is only meaningful for custom engine versions; builtin engines leave it empty like
	// real AWS. terraform's waitCustomDBEngineVersionCreated reads an empty Status as "not found".
	Status string `json:"status,omitempty"`
	// ImageID is only meaningful for custom engine versions (rds@v1.124.1 types.DBEngineVersion.Image.ImageId);
	// builtin engines leave it empty like real AWS.
	ImageID string `json:"imageId,omitempty"`
	// SupportedCharacterSets and SupportedTimezones back ListSupportedCharacterSets/ListSupportedTimezones.
	SupportedCharacterSets []CharacterSet `json:"supportedCharacterSets,omitempty"`
	SupportedTimezones     []string       `json:"supportedTimezones,omitempty"`
	// IsDefault is internal bookkeeping for DescribeDBEngineVersions.DefaultOnly
	// filtering -- real AWS's DBEngineVersion output type has no corresponding
	// wire field (rds@v1.124.1 types.DBEngineVersion), so this never appears in
	// xmlDBEngineVersion.
	IsDefault bool `json:"isDefault,omitempty"`
}

DBEngineVersion represents an available RDS engine version.

type DBInstance

type DBInstance struct {
	MasterSecret
	ResumeFullAutomationModeTime       time.Time                    `json:"resumeFullAutomationModeTime,omitzero"`
	AutomationMode                     string                       `json:"automationMode,omitempty"`
	InstanceCreateTime                 time.Time                    `json:"instanceCreateTime"`
	PendingModifiedValues              *PendingModifiedValues       `json:"pendingModifiedValues,omitempty"`
	EngineLifecycleSupport             string                       `json:"engineLifecycleSupport,omitempty"`
	DBSubnetGroupName                  string                       `json:"dbSubnetGroupName"`
	PreferredBackupWindow              string                       `json:"preferredBackupWindow,omitempty"`
	KmsKeyID                           string                       `json:"kmsKeyID,omitempty"`
	DBClusterIdentifier                string                       `json:"dbClusterIdentifier,omitempty"`
	Engine                             string                       `json:"engine"`
	EngineVersion                      string                       `json:"engineVersion"`
	DBInstanceStatus                   string                       `json:"dbInstanceStatus"`
	MasterUsername                     string                       `json:"masterUsername"`
	DBName                             string                       `json:"dbName"`
	Endpoint                           string                       `json:"endpoint"`
	VpcID                              string                       `json:"vpcID"`
	ReplicaMode                        string                       `json:"replicaMode,omitempty"`
	DBParameterGroupName               string                       `json:"dbParameterGroupName"`
	OptionGroupName                    string                       `json:"optionGroupName,omitempty"`
	ReplicaSourceDBInstanceIdentifier  string                       `json:"replicaSourceDBInstanceIdentifier"`
	AvailabilityZone                   string                       `json:"availabilityZone"`
	StorageType                        string                       `json:"storageType"`
	LicenseModel                       string                       `json:"licenseModel,omitempty"`
	MonitoringRoleArn                  string                       `json:"monitoringRoleArn,omitempty"`
	DBInstanceIdentifier               string                       `json:"dbInstanceIdentifier"`
	DbiResourceID                      string                       `json:"dbiResourceID"`
	PreferredMaintenanceWindow         string                       `json:"preferredMaintenanceWindow,omitempty"`
	DBInstanceClass                    string                       `json:"dbInstanceClass"`
	EnhancedMonitoringResourceArn      string                       `json:"enhancedMonitoringResourceArn,omitempty"`
	BackupTarget                       string                       `json:"backupTarget,omitempty"`
	DBInstanceArn                      string                       `json:"dbInstanceArn,omitempty"`
	PerformanceInsightsKMSKeyID        string                       `json:"performanceInsightsKmsKeyId,omitempty"`
	NetworkType                        string                       `json:"networkType,omitempty"`
	VpcSecurityGroups                  []VpcSecurityGroupMembership `json:"vpcSecurityGroups,omitempty"`
	DBSecurityGroups                   []DBSecurityGroupMembership  `json:"dbSecurityGroups,omitempty"`
	ReadReplicaIdentifiers             []string                     `json:"readReplicaIdentifiers,omitempty"`
	EnabledCloudwatchLogsExports       []string                     `json:"enabledCloudwatchLogsExports,omitempty"`
	PerformanceInsightsRetentionPeriod int                          `json:"performanceInsightsRetentionPeriod,omitempty"`
	Port                               int                          `json:"port"`
	AllocatedStorage                   int                          `json:"allocatedStorage"`
	Iops                               int                          `json:"iops,omitempty"`
	StorageThroughput                  int                          `json:"storageThroughput,omitempty"`
	MaxAllocatedStorage                int                          `json:"maxAllocatedStorage,omitempty"`
	BackupRetentionPeriod              int                          `json:"backupRetentionPeriod"`
	MonitoringInterval                 int                          `json:"monitoringInterval,omitempty"`
	PromotionTier                      int                          `json:"promotionTier,omitempty"`
	OptimizedWrites                    bool                         `json:"optimizedWrites,omitempty"`
	MultiAZ                            bool                         `json:"multiAZ"`
	DeletionProtection                 bool                         `json:"deletionProtection"`
	CopyTagsToSnapshot                 bool                         `json:"copyTagsToSnapshot,omitempty"`
	PubliclyAccessible                 bool                         `json:"publiclyAccessible,omitempty"`
	PerformanceInsightsEnabled         bool                         `json:"performanceInsightsEnabled,omitempty"`
	StorageOptimized                   bool                         `json:"storageOptimized,omitempty"`
	IAMDatabaseAuthenticationEnabled   bool                         `json:"iamDatabaseAuthenticationEnabled"`
	StorageEncrypted                   bool                         `json:"storageEncrypted"`
	AutoMinorVersionUpgrade            bool                         `json:"autoMinorVersionUpgrade,omitempty"`
	MultiTenant                        bool                         `json:"multiTenant,omitempty"`
	UseDefaultProcessorFeatures        bool                         `json:"useDefaultProcessorFeatures,omitempty"`
}

DBInstance represents an RDS database instance.

type DBInstanceAutomatedBackup

type DBInstanceAutomatedBackup struct {
	DBInstanceIdentifier          string `json:"dbInstanceIdentifier"`
	DbiResourceID                 string `json:"dbiResourceId"`
	Engine                        string `json:"engine"`
	EngineVersion                 string `json:"engineVersion"`
	DBInstanceArn                 string `json:"dbInstanceArn"`
	DBInstanceAutomatedBackupsArn string `json:"dbInstanceAutomatedBackupsArn"`
	Region                        string `json:"region"`
	Status                        string `json:"status"`
	AllocatedStorage              int    `json:"allocatedStorage"`
	Port                          int    `json:"port"`
	BackupRetentionPeriod         int    `json:"backupRetentionPeriod"`
	Encrypted                     bool   `json:"encrypted"`
}

DBInstanceAutomatedBackup represents an automated backup record for an RDS instance.

type DBInstanceOptions

type DBInstanceOptions struct {
	DBClusterIdentifier          string
	AutomationMode               string
	EngineVersion                string
	PerformanceInsightsKMSKeyID  string
	MasterUserPassword           string
	EngineLifecycleSupport       string
	ReplicaMode                  string
	AvailabilityZone             string
	DBParameterGroupName         string
	OptionGroupName              string
	SourceRegion                 string
	LicenseModel                 string
	MonitoringRoleArn            string
	PreferredMaintenanceWindow   string
	PreferredBackupWindow        string
	KmsKeyID                     string
	BackupTarget                 string
	StorageType                  string
	DBSubnetGroupName            string
	NetworkType                  string
	DBInstanceClass              string
	VpcSecurityGroupIDs          []string
	EnabledCloudwatchLogsExports []string
	DBSecurityGroupNames         []string
	MasterSecretRequest
	DBPortNumber                       int
	ResumeFullAutomationModeMinutes    int
	BackupRetentionPeriod              int
	Iops                               int
	StorageThroughput                  int
	MaxAllocatedStorage                int
	MonitoringInterval                 int
	PerformanceInsightsRetentionPeriod int
	PromotionTier                      int
	AllowMajorVersionUpgrade           bool
	MultiAZSet                         bool
	CopyTagsToSnapshot                 bool
	ResumeFullAutomationModeMinutesSet bool
	ApplyImmediately                   bool
	PubliclyAccessible                 bool
	PerformanceInsightsEnabled         bool
	StorageOptimized                   bool
	OptimizedWrites                    bool
	AutoMinorVersionUpgrade            bool
	MultiTenant                        bool
	UseDefaultProcessorFeatures        bool
	DeletionProtectionSet              bool
	DeletionProtection                 bool
	IAMDatabaseAuthSet                 bool
	IAMDatabaseAuthenticationEnabled   bool
	StorageEncrypted                   bool
	MultiAZ                            bool
}

DBInstanceOptions holds optional fields for CreateDBInstance and ModifyDBInstance.

type DBInstanceRole

type DBInstanceRole struct {
	RoleArn     string `json:"roleArn"`
	FeatureName string `json:"featureName"`
	Status      string `json:"status"`
}

DBInstanceRole represents an IAM role association on a DB instance (AssociatedRoles on DescribeDBInstances' DBInstance, rds@v1.124.1 types.go:1956).

type DBLogFile

type DBLogFile struct {
	LogFileName string `json:"logFileName"`
	// LastWritten is the epoch-millisecond timestamp at which the log file was
	// last written, matching the RDS DescribeDBLogFilesDetails.LastWritten field.
	LastWritten int64 `json:"lastWritten"`
	Size        int64 `json:"size"`
}

DBLogFile represents a log file for a DB instance.

type DBMajorEngineVersion

type DBMajorEngineVersion struct {
	Engine             string `json:"engine"`
	MajorEngineVersion string `json:"majorEngineVersion"`
	Status             string `json:"status"`
}

DBMajorEngineVersion represents a major engine version.

type DBParameter

type DBParameter struct {
	ParameterName  string `json:"parameterName"`
	ParameterValue string `json:"parameterValue"`
	Description    string `json:"description"`
	ApplyType      string `json:"applyType"`
	DataType       string `json:"dataType"`
	Source         string `json:"source"`
	ApplyMethod    string `json:"applyMethod"`
	IsModifiable   bool   `json:"isModifiable"`
}

DBParameter represents a single RDS parameter.

type DBParameterGroup

type DBParameterGroup struct {
	Parameters             map[string]DBParameter `json:"parameters"`
	DBParameterGroupName   string                 `json:"dbParameterGroupName"`
	DBParameterGroupArn    string                 `json:"dbParameterGroupArn,omitempty"`
	DBParameterGroupFamily string                 `json:"dbParameterGroupFamily"`
	Description            string                 `json:"description"`
}

DBParameterGroup represents an RDS DB parameter group.

type DBProxy

type DBProxy struct {
	CreatedDate                 time.Time            `json:"createdDate"`
	UpdatedDate                 time.Time            `json:"updatedDate"`
	DefaultAuthScheme           string               `json:"defaultAuthScheme,omitempty"`
	RoleARN                     string               `json:"roleArn"`
	Endpoint                    string               `json:"endpoint"`
	EngineFamily                string               `json:"engineFamily"`
	DBProxyARN                  string               `json:"dbProxyArn"`
	DBProxyName                 string               `json:"dbProxyName"`
	TargetConnectionNetworkType string               `json:"targetConnectionNetworkType,omitempty"`
	EndpointNetworkType         string               `json:"endpointNetworkType,omitempty"`
	Status                      string               `json:"status"`
	VpcSubnetIDs                []string             `json:"vpcSubnetIds"`
	Auth                        []UserAuthConfig     `json:"auth"`
	VpcSecurityGroupIDs         []string             `json:"vpcSecurityGroupIds"`
	ConnectionPoolConfig        ConnectionPoolConfig `json:"connectionPoolConfig"`
	IdleClientTimeout           int                  `json:"idleClientTimeout"`
	DebugLogging                bool                 `json:"debugLogging"`
	RequireTLS                  bool                 `json:"requireTls"`
}

DBProxy represents an RDS DB proxy.

type DBProxyEndpoint

type DBProxyEndpoint struct {
	CreatedDate         time.Time `json:"createdDate"`
	DBProxyEndpointName string    `json:"dbProxyEndpointName"`
	DBProxyEndpointARN  string    `json:"dbProxyEndpointArn"`
	DBProxyName         string    `json:"dbProxyName"`
	Status              string    `json:"status"`
	VpcID               string    `json:"vpcId"`
	Endpoint            string    `json:"endpoint"`
	TargetRole          string    `json:"targetRole"`
	EndpointNetworkType string    `json:"endpointNetworkType,omitempty"`
	VpcSecurityGroupIDs []string  `json:"vpcSecurityGroupIds"`
	VpcSubnetIDs        []string  `json:"vpcSubnetIds"`
	IsDefault           bool      `json:"isDefault"`
}

DBProxyEndpoint represents a custom endpoint for a DB proxy.

type DBProxyTarget

type DBProxyTarget struct {
	TargetARN        string `json:"targetArn"`
	Endpoint         string `json:"endpoint"`
	TrackedClusterID string `json:"trackedClusterId"`
	RdsResourceID    string `json:"rdsResourceId"`
	Type             string `json:"type"`
	Role             string `json:"role"`
	TargetHealth     string `json:"targetHealth"`
	Port             int    `json:"port"`
}

DBProxyTarget represents a single target within a DB proxy target group.

type DBProxyTargetGroup

type DBProxyTargetGroup struct {
	CreatedDate          time.Time            `json:"createdDate"`
	UpdatedDate          time.Time            `json:"updatedDate"`
	DBProxyName          string               `json:"dbProxyName"`
	TargetGroupName      string               `json:"targetGroupName"`
	TargetGroupARN       string               `json:"targetGroupArn"`
	Status               string               `json:"status"`
	ConnectionPoolConfig ConnectionPoolConfig `json:"connectionPoolConfig"`
	IsDefault            bool                 `json:"isDefault"`
}

DBProxyTargetGroup represents a group of targets for a DB proxy.

type DBRecommendation

type DBRecommendation struct {
	RecommendationID string `json:"recommendationId"`
	TypeID           string `json:"typeId"`
	Severity         string `json:"severity"`
	Status           string `json:"status"`
	Description      string `json:"description"`
	Reason           string `json:"reason"`
	ResourceARN      string `json:"resourceArn"`
	UpdatedTime      string `json:"updatedTime"`
	CreatedTime      string `json:"createdTime"`
}

DBRecommendation represents an RDS performance recommendation.

type DBSecurityGroup

type DBSecurityGroup struct {
	DBSecurityGroupName        string    `json:"dbSecurityGroupName"`
	DBSecurityGroupDescription string    `json:"dbSecurityGroupDescription"`
	DBSecurityGroupArn         string    `json:"dbSecurityGroupArn,omitempty"`
	IPRanges                   []IPRange `json:"ipRanges"`
}

DBSecurityGroup represents an RDS DB security group.

type DBSecurityGroupMembership

type DBSecurityGroupMembership struct {
	DBSecurityGroupName string `json:"dbSecurityGroupName"`
	Status              string `json:"status"`
}

DBSecurityGroupMembership represents a classic (EC2-Classic) DB security group association on a DB instance.

type DBShardGroup

type DBShardGroup struct {
	DBShardGroupIdentifier string  `json:"dbShardGroupIdentifier"`
	DBClusterIdentifier    string  `json:"dbClusterIdentifier"`
	DBShardGroupArn        string  `json:"dbShardGroupArn,omitempty"`
	DBShardGroupResourceID string  `json:"dbShardGroupResourceId,omitempty"`
	Status                 string  `json:"status"`
	Endpoint               string  `json:"endpoint,omitempty"`
	MaxACU                 float64 `json:"maxACU,omitempty"`
	MinACU                 float64 `json:"minACU,omitempty"`
	ComputeRedundancy      int     `json:"computeRedundancy,omitempty"`
	PubliclyAccessible     bool    `json:"publiclyAccessible,omitempty"`
}

DBShardGroup represents an Aurora Limitless DB shard group.

type DBSnapshot

type DBSnapshot struct {
	SnapshotCreateTime   time.Time `json:"snapshotCreateTime"`
	DBSnapshotIdentifier string    `json:"dbSnapshotIdentifier"`
	DBSnapshotArn        string    `json:"dbSnapshotArn,omitempty"`
	DBInstanceIdentifier string    `json:"dbInstanceIdentifier"`
	DbiResourceID        string    `json:"dbiResourceId,omitempty"`
	Engine               string    `json:"engine"`
	EngineVersion        string    `json:"engineVersion"`
	Status               string    `json:"status"`
	StorageType          string    `json:"storageType"`
	OptionGroupName      string    `json:"optionGroupName"`
	KmsKeyID             string    `json:"kmsKeyID,omitempty"`
	SourceRegion         string    `json:"sourceRegion,omitempty"`
	SnapshotType         string    `json:"snapshotType,omitempty"`
	AllocatedStorage     int       `json:"allocatedStorage"`
	Port                 int       `json:"port"`
	PercentProgress      int       `json:"percentProgress"`
	StorageEncrypted     bool      `json:"storageEncrypted"`
	CopyTagsToSnapshot   bool      `json:"copyTagsToSnapshot,omitempty"`
}

DBSnapshot represents an RDS database snapshot.

type DBSnapshotAttribute

type DBSnapshotAttribute struct {
	AttributeName   string   `json:"attributeName"`
	AttributeValues []string `json:"attributeValues"`
}

DBSnapshotAttribute represents an attribute of a DB snapshot.

type DBSnapshotAttributesResult

type DBSnapshotAttributesResult struct {
	DBSnapshotIdentifier string                `json:"dbSnapshotIdentifier"`
	DBSnapshotAttributes []DBSnapshotAttribute `json:"dbSnapshotAttributes"`
}

DBSnapshotAttributesResult holds attributes for a DB snapshot.

type DBSnapshotTenantDatabase

type DBSnapshotTenantDatabase struct {
	DBSnapshotIdentifier string `json:"dbSnapshotIdentifier"`
	DBInstanceIdentifier string `json:"dbInstanceIdentifier"`
	TenantDatabaseName   string `json:"tenantDatabaseName"`
	Engine               string `json:"engine"`
	Status               string `json:"status"`
}

DBSnapshotTenantDatabase represents a tenant database within a DB snapshot.

type DBSubnetGroup

type DBSubnetGroup struct {
	DBSubnetGroupName        string   `json:"dbSubnetGroupName"`
	DBSubnetGroupDescription string   `json:"dbSubnetGroupDescription"`
	DBSubnetGroupArn         string   `json:"dbSubnetGroupArn,omitempty"`
	VpcID                    string   `json:"vpcID"`
	Status                   string   `json:"status"`
	SubnetIDs                []string `json:"subnetIDs"`
}

DBSubnetGroup represents an RDS DB subnet group.

type DNSRegistrar

type DNSRegistrar interface {
	Register(hostname string)
	Deregister(hostname string)
}

DNSRegistrar can register and deregister hostnames with an embedded DNS server.

type DeleteTenantDatabaseOptions

type DeleteTenantDatabaseOptions struct {
	FinalDBSnapshotIdentifier string
	SkipFinalSnapshot         bool
}

DeleteTenantDatabaseOptions carries the final-snapshot inputs of DeleteTenantDatabase.

type EngineConfig

type EngineConfig struct {
	Runtime EngineRuntime
	// Ports hands out host ports; nil falls back to OS-chosen free ports.
	Ports *portalloc.Allocator
	// Probe returns nil once the login works against the engine; nil uses the real drivers.
	Probe func(ctx context.Context, l EngineLogin) error
	// SetPassword changes the login's own password inside the engine; nil uses the real drivers.
	SetPassword func(ctx context.Context, l EngineLogin, newPassword string) error
	// Host is the address clients use to reach published ports; default 127.0.0.1.
	Host string
	// StartTimeout bounds how long a database may stay unreachable before it is marked failed.
	StartTimeout time.Duration
}

EngineConfig configures docker-backed RDS databases.

type EngineLogin

type EngineLogin struct {
	Kind     string
	Addr     string
	User     string
	Password string
	DBName   string
}

EngineLogin identifies a database login on a running engine.

type EngineModeConfig

type EngineModeConfig interface {
	GetRDSEngine() string
}

EngineModeConfig exposes the RDS engine mode (stub or docker).

type EngineRuntime

type EngineRuntime interface {
	CreateAndStart(ctx context.Context, spec container.Spec) (string, error)
	StopAndRemove(ctx context.Context, containerID string) error
	StopContainer(ctx context.Context, containerID string) error
	StartContainer(ctx context.Context, containerID string) error
}

EngineRuntime is the slice of the container runtime the database engine needs.

type Event

type Event struct {
	CreatedAt        time.Time `json:"createdAt"`
	Message          string    `json:"message"`
	SourceIdentifier string    `json:"sourceIdentifier"`
	SourceType       string    `json:"sourceType"`
	SourceArn        string    `json:"sourceArn,omitempty"`
}

Event represents a published RDS lifecycle event.

type EventSubscription

type EventSubscription struct {
	SubscriptionName     string   `json:"subscriptionName"`
	SnsTopicArn          string   `json:"snsTopicArn"`
	EventSubscriptionArn string   `json:"eventSubscriptionArn,omitempty"`
	Status               string   `json:"status"`
	SourceType           string   `json:"sourceType"`
	SourceIDs            []string `json:"sourceIds"`
	EventCategories      []string `json:"eventCategories,omitempty"`
	Enabled              bool     `json:"enabled"`
}

EventSubscription represents an RDS event notification subscription.

type ExportTask

type ExportTask struct {
	ExportTaskIdentifier string `json:"exportTaskIdentifier"`
	SourceArn            string `json:"sourceArn"`
	Status               string `json:"status"`
	S3Bucket             string `json:"s3Bucket"`
	IamRoleArn           string `json:"iamRoleArn"`
	KmsKeyID             string `json:"kmsKeyId"`
}

ExportTask represents an RDS export task.

type GlobalCluster

type GlobalCluster struct {
	GlobalClusterIdentifier string                `json:"globalClusterIdentifier"`
	GlobalClusterArn        string                `json:"globalClusterArn,omitempty"`
	Engine                  string                `json:"engine"`
	EngineVersion           string                `json:"engineVersion"`
	Status                  string                `json:"status"`
	PrimaryRegion           string                `json:"primaryRegion,omitempty"`
	EngineLifecycleSupport  string                `json:"engineLifecycleSupport,omitempty"`
	DatabaseName            string                `json:"databaseName,omitempty"`
	GlobalClusterMembers    []GlobalClusterMember `json:"globalClusterMembers,omitempty"`
	ClusterARNs             []string              `json:"clusterARNs"`
	StorageEncrypted        bool                  `json:"storageEncrypted"`
	DeletionProtection      bool                  `json:"deletionProtection"`
}

GlobalCluster represents an RDS global cluster.

type GlobalClusterMember

type GlobalClusterMember struct {
	DBClusterArn          string `json:"dbClusterArn"`
	GlobalWriteForwarding bool   `json:"globalWriteForwarding"`
	IsWriter              bool   `json:"isWriter"`
}

GlobalClusterMember represents a member cluster in a global cluster.

type Handler

type Handler struct {
	Backend *InMemoryBackend
	// contains filtered or unexported fields
}

Handler is the Echo HTTP handler for RDS operations.

func NewHandler

func NewHandler(backend *InMemoryBackend) *Handler

NewHandler creates a new RDS handler.

func (*Handler) BackendFor

func (h *Handler) BackendFor(region string) *InMemoryBackend

BackendFor returns the backend serving region, creating it on first use; "" is the home region.

func (*Handler) ChaosOperations

func (h *Handler) ChaosOperations() []string

ChaosOperations returns all operations that can be fault-injected.

func (*Handler) ChaosRegions

func (h *Handler) ChaosRegions() []string

ChaosRegions returns all regions this RDS instance handles.

func (*Handler) ChaosServiceName

func (h *Handler) ChaosServiceName() string

ChaosServiceName returns the lowercase AWS service name for fault rule matching.

func (*Handler) ExecuteFISAction

func (h *Handler) ExecuteFISAction(ctx context.Context, action service.FISActionExecution) error

ExecuteFISAction executes a FIS action against resolved RDS targets.

func (*Handler) ExtractOperation

func (h *Handler) ExtractOperation(c *echo.Context) string

ExtractOperation extracts the RDS action from the request.

func (*Handler) ExtractResource

func (h *Handler) ExtractResource(c *echo.Context) string

ExtractResource returns the DB instance identifier from the request.

func (*Handler) FISActions

func (h *Handler) FISActions() []service.FISActionDefinition

FISActions returns the FIS action definitions that the RDS service supports.

func (*Handler) GetSupportedOperations

func (h *Handler) GetSupportedOperations() []string

GetSupportedOperations returns supported RDS operations.

func (*Handler) Handler

func (h *Handler) Handler() echo.HandlerFunc

Handler returns the Echo handler function.

func (*Handler) MatchPriority

func (h *Handler) MatchPriority() int

MatchPriority returns the routing priority.

func (*Handler) Name

func (h *Handler) Name() string

Name returns the service name.

func (*Handler) Reset

func (h *Handler) Reset()

Reset clears all backend state. Useful for test isolation.

func (*Handler) Restore

func (h *Handler) Restore(ctx context.Context, data []byte) error

Restore implements persistence.Persistable by delegating to the backend.

func (*Handler) RouteMatcher

func (h *Handler) RouteMatcher() service.Matcher

RouteMatcher returns a function that matches RDS requests.

func (*Handler) Shutdown

func (h *Handler) Shutdown(_ context.Context)

Shutdown removes every database container; a no-op when already closed.

func (*Handler) Snapshot

func (h *Handler) Snapshot(ctx context.Context) []byte

Snapshot implements persistence.Persistable by delegating to the backend.

type IPRange

type IPRange struct {
	CIDRIP string `json:"cidrip"`
	Status string `json:"status"`
}

IPRange represents a CIDR IP range authorized for a DB security group.

type InMemoryBackend

type InMemoryBackend struct {
	// contains filtered or unexported fields
}

InMemoryBackend is the in-memory store for RDS resources.

func NewInMemoryBackend

func NewInMemoryBackend(accountID, region string) *InMemoryBackend

NewInMemoryBackend creates a new InMemoryBackend with a background reconciler.

func (*InMemoryBackend) AccountID

func (b *InMemoryBackend) AccountID() string

AccountID returns the AWS account ID this backend is configured for.

func (*InMemoryBackend) AddBlueGreenDeploymentInternal

func (b *InMemoryBackend) AddBlueGreenDeploymentInternal(name, source string) *BlueGreenDeployment

AddBlueGreenDeploymentInternal creates a Blue/Green Deployment directly. Used for seeding tests.

func (*InMemoryBackend) AddClusterInternal

func (b *InMemoryBackend) AddClusterInternal(id, engine string) *DBCluster

AddClusterInternal creates a DB cluster directly, bypassing normal validation. Used for seeding tests.

func (*InMemoryBackend) AddDBRecommendation

func (b *InMemoryBackend) AddDBRecommendation(rec DBRecommendation)

AddDBRecommendation adds a recommendation to the backend. Used by tests and internal workflows to seed recommendations so that ModifyDBRecommendation and DescribeDBRecommendations can exercise real state transitions.

func (*InMemoryBackend) AddDBSnapshotTenantDatabase

func (b *InMemoryBackend) AddDBSnapshotTenantDatabase(
	snapshotID, instanceID, tenantDBName, engine string,
)

AddDBSnapshotTenantDatabase records a tenant database within a snapshot. CreateDBSnapshot (db_snapshots.go) now calls this itself for every tenant database on the snapshotted instance; exported for direct test seeding too.

func (*InMemoryBackend) AddEventSubscriptionInternal

func (b *InMemoryBackend) AddEventSubscriptionInternal(name, snsTopicArn string) *EventSubscription

AddEventSubscriptionInternal creates an event subscription directly. Used for seeding tests.

func (*InMemoryBackend) AddGlobalClusterMemberInternal

func (b *InMemoryBackend) AddGlobalClusterMemberInternal(globalClusterID string, member GlobalClusterMember)

AddGlobalClusterMemberInternal seeds a member (e.g. a secondary in another region), bypassing validation.

func (*InMemoryBackend) AddInstanceInternal

func (b *InMemoryBackend) AddInstanceInternal(id, engine string) *DBInstance

AddInstanceInternal creates a DB instance directly, bypassing normal validation. Used for seeding tests.

func (*InMemoryBackend) AddRoleToDBCluster

func (b *InMemoryBackend) AddRoleToDBCluster(clusterID, roleARN, featureName string) error

AddRoleToDBCluster associates an IAM role with the cluster for a feature. Re-adding the identical (FeatureName, RoleArn) pair is DBClusterRoleAlreadyExists.

func (*InMemoryBackend) AddRoleToDBInstance

func (b *InMemoryBackend) AddRoleToDBInstance(instanceID, roleARN, featureName string) error

AddRoleToDBInstance associates an IAM role with the given DB instance for the given feature (e.g. S3_INTEGRATION, SQLSERVER_AUDIT). FeatureName selects the feature slot: real AWS allows at most one role per feature per instance, so re-adding the same (feature, role) pair is a no-op and adding a different role for a feature already in use replaces it.

func (*InMemoryBackend) AddSecurityGroupInternal

func (b *InMemoryBackend) AddSecurityGroupInternal(name, description string) *DBSecurityGroup

AddSecurityGroupInternal creates a DB security group directly. Used for seeding tests.

func (*InMemoryBackend) AddSourceIdentifierToSubscription

func (b *InMemoryBackend) AddSourceIdentifierToSubscription(
	subscriptionName, sourceIdentifier string,
) (*EventSubscription, error)

AddSourceIdentifierToSubscription adds a source identifier to an event notification subscription. If the subscription does not exist it is created automatically.

func (*InMemoryBackend) AddTagsToResource

func (b *InMemoryBackend) AddTagsToResource(arn string, tags []Tag)

AddTagsToResource adds or overwrites tags on the resource identified by arn.

func (*InMemoryBackend) ApplyPendingMaintenanceAction

func (b *InMemoryBackend) ApplyPendingMaintenanceAction(
	resourceID, applyAction, optInType string,
) (string, error)

ApplyPendingMaintenanceAction applies a pending maintenance action to a resource. The resource is identified by its ARN. OptInType is required and validated against its documented enum. OptInType=immediate on the db-upgrade action this backend models (see registerDBUpgradeActionLocked) applies the instance's deferred EngineVersion change now and clears the action; next-maintenance and undo-opt-in are validated but otherwise have no further modelled effect.

func (*InMemoryBackend) AuthorizeDBSecurityGroupIngress

func (b *InMemoryBackend) AuthorizeDBSecurityGroupIngress(
	groupName, cidrIP string,
) (*DBSecurityGroup, error)

AuthorizeDBSecurityGroupIngress authorizes CIDR IP access to a DB security group. If the group does not exist it is created automatically (matching AWS behaviour for legacy VPC-less accounts).

func (*InMemoryBackend) BacktrackDBCluster

func (b *InMemoryBackend) BacktrackDBCluster(
	clusterID, backtrackTo string,
) (*DBClusterBacktrack, error)

BacktrackDBCluster backtracks an Aurora DB cluster to a specific time.

func (*InMemoryBackend) CancelExportTask

func (b *InMemoryBackend) CancelExportTask(taskID string) (*ExportTask, error)

CancelExportTask cancels and removes the export task with the given identifier.

func (*InMemoryBackend) Close

func (b *InMemoryBackend) Close()

Close removes every database container and waits for in-flight work to finish.

func (*InMemoryBackend) ClusterAssociatedRoles added in v1.3.1

func (b *InMemoryBackend) ClusterAssociatedRoles(clusterID string) []DBClusterRole

ClusterAssociatedRoles returns a copy of the IAM roles associated with the given cluster (AssociatedRoles on DescribeDBClusters' DBCluster, rds@v1.124.1 types.go:1511). Returns nil if the cluster does not exist.

func (*InMemoryBackend) CopyDBClusterParameterGroup

func (b *InMemoryBackend) CopyDBClusterParameterGroup(
	sourceGroupName, targetGroupName, targetDescription string,
) (*DBParameterGroup, error)

CopyDBClusterParameterGroup creates a copy of the source cluster parameter group.

func (*InMemoryBackend) CopyDBClusterSnapshot

func (b *InMemoryBackend) CopyDBClusterSnapshot(
	sourceSnapshotID, targetSnapshotID string, copyTags bool,
) (*DBClusterSnapshot, error)

CopyDBClusterSnapshot creates a copy of the given cluster snapshot. copyTags mirrors CopyDBSnapshot's CopyTags contract (rds@v1.124.1 api_op_CopyDBClusterSnapshot.go's CopyTags: "By default, tags are not copied"): when true, the source snapshot's tags are copied onto the new target snapshot.

func (*InMemoryBackend) CopyDBClusterSnapshotWithKMS

func (b *InMemoryBackend) CopyDBClusterSnapshotWithKMS(
	sourceSnapshotID, targetSnapshotID string, copyTags bool, kmsKeyID string,
) (*DBClusterSnapshot, error)

CopyDBClusterSnapshotWithKMS is CopyDBClusterSnapshot plus KmsKeyId, which re-encrypts the copy.

func (*InMemoryBackend) CopyDBParameterGroup

func (b *InMemoryBackend) CopyDBParameterGroup(
	sourceGroupName, targetGroupName, targetDescription string,
) (*DBParameterGroup, error)

CopyDBParameterGroup creates a copy of the source parameter group.

func (*InMemoryBackend) CopyDBSnapshot

func (b *InMemoryBackend) CopyDBSnapshot(
	sourceSnapshotID, targetSnapshotID string,
	opts CopyDBSnapshotOptions,
) (*DBSnapshot, error)

CopyDBSnapshot creates a copy of the given snapshot with a new identifier.

func (*InMemoryBackend) CopyOptionGroup

func (b *InMemoryBackend) CopyOptionGroup(
	sourceGroupName, targetGroupName, targetDescription string,
) (*OptionGroup, error)

CopyOptionGroup creates a copy of the source option group.

func (*InMemoryBackend) CreateBlueGreenDeployment

func (b *InMemoryBackend) CreateBlueGreenDeployment(
	name, source string,
) (*BlueGreenDeployment, error)

CreateBlueGreenDeployment creates a new Blue/Green Deployment.

func (*InMemoryBackend) CreateCustomDBEngineVersion

func (b *InMemoryBackend) CreateCustomDBEngineVersion(
	engine, engineVersion, description, imageID string,
) (*CustomDBEngineVersion, error)

CreateCustomDBEngineVersion creates a custom DB engine version.

func (*InMemoryBackend) CreateDBCluster

func (b *InMemoryBackend) CreateDBCluster(
	id, engine, masterUser, dbName, paramGroupName string,
	port int,
	serverlessV2Cfg *ServerlessV2ScalingConfiguration,
	opts DBClusterOptions,
) (*DBCluster, error)

CreateDBCluster creates a new DB cluster.

func (*InMemoryBackend) CreateDBClusterAutomatedBackup

func (b *InMemoryBackend) CreateDBClusterAutomatedBackup(
	clusterID string,
) *DBClusterAutomatedBackup

CreateDBClusterAutomatedBackup records an automated backup for a cluster. Called internally when creating clusters with backup retention > 0 (see CreateDBCluster, db_clusters.go).

func (*InMemoryBackend) CreateDBClusterEndpoint

func (b *InMemoryBackend) CreateDBClusterEndpoint(
	endpointID, clusterID, endpointType string,
) (*DBClusterEndpoint, error)

CreateDBClusterEndpoint creates a custom endpoint for the given cluster.

func (*InMemoryBackend) CreateDBClusterParameterGroup

func (b *InMemoryBackend) CreateDBClusterParameterGroup(name, family, description string) (*DBParameterGroup, error)

CreateDBClusterParameterGroup creates a new cluster parameter group.

func (*InMemoryBackend) CreateDBClusterSnapshot

func (b *InMemoryBackend) CreateDBClusterSnapshot(snapshotID, clusterID string) (*DBClusterSnapshot, error)

CreateDBClusterSnapshot creates a snapshot of the given cluster.

func (*InMemoryBackend) CreateDBInstance

func (b *InMemoryBackend) CreateDBInstance(
	id, engine, instanceClass, dbName, masterUser, paramGroupName string,
	allocatedStorage int,
	opts DBInstanceOptions,
) (*DBInstance, error)

func (*InMemoryBackend) CreateDBInstanceReadReplica

func (b *InMemoryBackend) CreateDBInstanceReadReplica(
	id, sourceID, sourceRegion, paramGroupName, optionGroupName string,
	opts DBInstanceOptions,
) (*DBInstance, error)

CreateDBInstanceReadReplica creates a read replica of the given source instance. sourceRegion is optional; when non-empty it indicates a cross-region replica. paramGroupName and optionGroupName are honored when supplied; their documented defaults are contingent on the source's region (rds@v1.124.1 api_op_CreateDBInstanceReadReplica.go:157,412) and are left unimplemented rather than guessed.

func (*InMemoryBackend) CreateDBParameterGroup

func (b *InMemoryBackend) CreateDBParameterGroup(name, family, description string) (*DBParameterGroup, error)

CreateDBParameterGroup creates a new DB parameter group.

func (*InMemoryBackend) CreateDBProxy

func (b *InMemoryBackend) CreateDBProxy(
	name, engineFamily, roleARN string,
	auth []UserAuthConfig,
	vpcSubnetIDs, vpcSecurityGroupIDs []string,
	defaultAuthScheme, endpointNetworkType, targetConnectionNetworkType string,
) (*DBProxy, error)

CreateDBProxy creates a new RDS DB proxy.

func (*InMemoryBackend) CreateDBProxyEndpoint

func (b *InMemoryBackend) CreateDBProxyEndpoint(
	proxyName, endpointName, targetRole string,
	vpcSubnetIDs, vpcSGIDs []string,
	endpointNetworkType string,
) (*DBProxyEndpoint, error)

CreateDBProxyEndpoint creates a custom endpoint for a DB proxy.

func (*InMemoryBackend) CreateDBSecurityGroup

func (b *InMemoryBackend) CreateDBSecurityGroup(name, description string) (*DBSecurityGroup, error)

CreateDBSecurityGroup creates a new DB security group.

func (*InMemoryBackend) CreateDBShardGroup

func (b *InMemoryBackend) CreateDBShardGroup(
	id, clusterID string,
	maxACU float64,
	minACU float64,
	computeRedundancy int,
	publiclyAccessible bool,
) (*DBShardGroup, error)

CreateDBShardGroup creates a new Aurora Limitless DB shard group.

func (*InMemoryBackend) CreateDBSnapshot

func (b *InMemoryBackend) CreateDBSnapshot(snapshotID, instanceID string) (*DBSnapshot, error)

CreateDBSnapshot creates a snapshot of the given DB instance.

func (*InMemoryBackend) CreateDBSubnetGroup

func (b *InMemoryBackend) CreateDBSubnetGroup(
	name, description, vpcID string,
	subnetIDs []string,
) (*DBSubnetGroup, error)

CreateDBSubnetGroup creates a DB subnet group.

func (*InMemoryBackend) CreateEventSubscription

func (b *InMemoryBackend) CreateEventSubscription(
	name, snsTopicARN, sourceType string,
	sourceIDs, eventCategories []string,
) (*EventSubscription, error)

CreateEventSubscription creates a new event notification subscription.

func (*InMemoryBackend) CreateGlobalCluster

func (b *InMemoryBackend) CreateGlobalCluster(
	id, engine, engineVersion, engineLifecycleSupport string,
	storageEncrypted, deletionProtection bool,
) (*GlobalCluster, error)

CreateGlobalCluster creates a new global cluster.

func (*InMemoryBackend) CreateGlobalClusterFromSource

func (b *InMemoryBackend) CreateGlobalClusterFromSource(
	id, engine, engineVersion, engineLifecycleSupport, sourceCluster, databaseName string,
	storageEncrypted, deletionProtection bool,
) (*GlobalCluster, error)

CreateGlobalClusterFromSource is CreateGlobalCluster plus SourceDBClusterIdentifier (id or ARN, becomes the writer and lends engine, version and encryption) and DatabaseName.

func (*InMemoryBackend) CreateIntegration

func (b *InMemoryBackend) CreateIntegration(
	name, sourceARN, targetARN, kmsKeyID, dataFilter, description string,
) (*Integration, error)

CreateIntegration creates a new zero-ETL integration.

func (*InMemoryBackend) CreateOptionGroup

func (b *InMemoryBackend) CreateOptionGroup(name, engine, majorVersion, description string) (*OptionGroup, error)

CreateOptionGroup creates a new option group.

func (*InMemoryBackend) CreateTenantDatabase

func (b *InMemoryBackend) CreateTenantDatabase(
	instanceID, tenantDBName, masterUsername string,
) (*TenantDatabase, error)

CreateTenantDatabase creates a new tenant database within an RDS instance.

func (*InMemoryBackend) CreateTenantDatabaseWithSecret

func (b *InMemoryBackend) CreateTenantDatabaseWithSecret(
	instanceID, tenantDBName, masterUsername, masterPassword string,
	req MasterSecretRequest,
) (*TenantDatabase, error)

CreateTenantDatabaseWithSecret creates a tenant database, optionally with an RDS-managed master secret.

func (*InMemoryBackend) DataAPITarget

func (b *InMemoryBackend) DataAPITarget(resourceARN string) (rdsdata.RealTarget, error)

DataAPITarget resolves the real engine behind a docker-backed cluster for the RDS Data API; rdsdata.ErrNotRealCluster means the cluster has none and the SQLite engine serves it.

func (*InMemoryBackend) DeleteBlueGreenDeployment

func (b *InMemoryBackend) DeleteBlueGreenDeployment(id string) (*BlueGreenDeployment, error)

DeleteBlueGreenDeployment deletes the named blue/green deployment.

func (*InMemoryBackend) DeleteCustomDBEngineVersion

func (b *InMemoryBackend) DeleteCustomDBEngineVersion(engine, engineVersion string) (*CustomDBEngineVersion, error)

DeleteCustomDBEngineVersion deletes a custom DB engine version.

func (*InMemoryBackend) DeleteDBCluster

func (b *InMemoryBackend) DeleteDBCluster(id string) (*DBCluster, error)

DeleteDBCluster removes the given cluster. DeleteDBCluster removes the DB cluster with the given identifier, skipping the AWS final-snapshot contract (SkipFinalSnapshot=true). It exists for existing callers (e.g. CloudFormation resource cleanup) that pre-date the SkipFinalSnapshot/FinalDBSnapshotIdentifier parameters. New callers that need AWS-accurate DeleteDBCluster behavior should use DeleteDBClusterWithOptions.

func (*InMemoryBackend) DeleteDBClusterAutomatedBackup

func (b *InMemoryBackend) DeleteDBClusterAutomatedBackup(
	resourceID string,
) (*DBClusterAutomatedBackup, error)

DeleteDBClusterAutomatedBackup deletes a cluster automated backup by resource ID.

func (*InMemoryBackend) DeleteDBClusterEndpoint

func (b *InMemoryBackend) DeleteDBClusterEndpoint(endpointID string) (*DBClusterEndpoint, error)

DeleteDBClusterEndpoint removes the given custom cluster endpoint.

func (*InMemoryBackend) DeleteDBClusterParameterGroup

func (b *InMemoryBackend) DeleteDBClusterParameterGroup(name string) error

DeleteDBClusterParameterGroup deletes a cluster parameter group.

func (*InMemoryBackend) DeleteDBClusterSnapshot

func (b *InMemoryBackend) DeleteDBClusterSnapshot(snapshotID string) (*DBClusterSnapshot, error)

DeleteDBClusterSnapshot removes the given cluster snapshot.

func (*InMemoryBackend) DeleteDBClusterWithOptions

func (b *InMemoryBackend) DeleteDBClusterWithOptions(
	id string, skipFinalSnapshot bool, finalSnapshotID string, deleteAutomatedBackups bool,
) (*DBCluster, error)

DeleteDBClusterWithOptions removes the DB cluster with the given identifier, honoring the AWS DeleteDBCluster parameter contract:

  • SkipFinalSnapshot=false (the AWS default) requires a non-empty finalSnapshotID; a manual cluster snapshot is taken before the cluster is removed.
  • SkipFinalSnapshot=true is mutually exclusive with a non-empty finalSnapshotID (AWS: InvalidParameterCombination either way).

func (*InMemoryBackend) DeleteDBInstance

func (b *InMemoryBackend) DeleteDBInstance(id string) (*DBInstance, error)

DeleteDBInstance removes the DB instance with the given identifier, skipping the AWS final-snapshot contract (SkipFinalSnapshot=true). It exists for existing callers (e.g. CloudFormation resource cleanup) that pre-date the SkipFinalSnapshot/FinalDBSnapshotIdentifier parameters and manage their own snapshot semantics. New callers that need AWS-accurate DeleteDBInstance behavior (final snapshot, DeleteAutomatedBackups) should use DeleteDBInstanceWithOptions.

func (*InMemoryBackend) DeleteDBInstanceAutomatedBackup

func (b *InMemoryBackend) DeleteDBInstanceAutomatedBackup(
	resourceID string,
) (*DBInstanceAutomatedBackup, error)

DeleteDBInstanceAutomatedBackup marks an automated backup as deleted.

func (*InMemoryBackend) DeleteDBInstanceWithOptions

func (b *InMemoryBackend) DeleteDBInstanceWithOptions(
	id string,
	skipFinalSnapshot bool,
	finalSnapshotID string,
	deleteAutomatedBackups bool,
) (*DBInstance, error)

DeleteDBInstanceWithOptions removes the DB instance with the given identifier, honoring the AWS DeleteDBInstance parameter contract:

  • SkipFinalSnapshot=false (the AWS default) requires a non-empty finalSnapshotID; a manual snapshot of the instance is taken before it is removed.
  • SkipFinalSnapshot=true is mutually exclusive with a non-empty finalSnapshotID (AWS: InvalidParameterCombination either way).
  • deleteAutomatedBackups (AWS default true) controls whether the instance's automated backup record is removed along with the instance.

func (*InMemoryBackend) DeleteDBParameterGroup

func (b *InMemoryBackend) DeleteDBParameterGroup(name string) error

DeleteDBParameterGroup removes the given parameter group.

func (*InMemoryBackend) DeleteDBProxy

func (b *InMemoryBackend) DeleteDBProxy(name string) (*DBProxy, error)

DeleteDBProxy deletes a DB proxy.

func (*InMemoryBackend) DeleteDBProxyEndpoint

func (b *InMemoryBackend) DeleteDBProxyEndpoint(endpointName string) (*DBProxyEndpoint, error)

DeleteDBProxyEndpoint deletes a custom proxy endpoint.

func (*InMemoryBackend) DeleteDBSecurityGroup

func (b *InMemoryBackend) DeleteDBSecurityGroup(name string) error

DeleteDBSecurityGroup removes the named security group.

func (*InMemoryBackend) DeleteDBShardGroup

func (b *InMemoryBackend) DeleteDBShardGroup(id string) (*DBShardGroup, error)

DeleteDBShardGroup deletes a DB shard group.

func (*InMemoryBackend) DeleteDBSnapshot

func (b *InMemoryBackend) DeleteDBSnapshot(snapshotID string) (*DBSnapshot, error)

DeleteDBSnapshot removes the given snapshot.

func (*InMemoryBackend) DeleteDBSubnetGroup

func (b *InMemoryBackend) DeleteDBSubnetGroup(name string) error

DeleteDBSubnetGroup removes the given subnet group.

func (*InMemoryBackend) DeleteEventSubscription

func (b *InMemoryBackend) DeleteEventSubscription(name string) (*EventSubscription, error)

DeleteEventSubscription deletes the named event subscription.

func (*InMemoryBackend) DeleteGlobalCluster

func (b *InMemoryBackend) DeleteGlobalCluster(id string) (*GlobalCluster, error)

DeleteGlobalCluster removes the given global cluster.

func (*InMemoryBackend) DeleteIntegration

func (b *InMemoryBackend) DeleteIntegration(identifier string) (*Integration, error)

DeleteIntegration deletes an integration by name or ARN identifier.

func (*InMemoryBackend) DeleteOptionGroup

func (b *InMemoryBackend) DeleteOptionGroup(name string) error

DeleteOptionGroup removes the given option group.

func (*InMemoryBackend) DeleteTenantDatabase

func (b *InMemoryBackend) DeleteTenantDatabase(
	instanceID, tenantDBName string,
	opts DeleteTenantDatabaseOptions,
) (*TenantDatabase, error)

DeleteTenantDatabase deletes a tenant database, first snapshotting it unless skipped.

func (*InMemoryBackend) DeregisterDBProxyTargets

func (b *InMemoryBackend) DeregisterDBProxyTargets(
	proxyName, _ string,
	dbInstanceIDs, dbClusterIDs []string,
) error

DeregisterDBProxyTargets removes targets from a DB proxy.

func (*InMemoryBackend) DescribeAccountAttributes

func (b *InMemoryBackend) DescribeAccountAttributes() []AccountAttribute

DescribeAccountAttributes returns RDS account-level quota attributes.

func (*InMemoryBackend) DescribeBlueGreenDeployments

func (b *InMemoryBackend) DescribeBlueGreenDeployments(id string) ([]BlueGreenDeployment, error)

DescribeBlueGreenDeployments returns blue/green deployments, optionally by ID.

func (*InMemoryBackend) DescribeCertificates

func (b *InMemoryBackend) DescribeCertificates(certID string) ([]Certificate, error)

DescribeCertificates returns RDS CA certificates, optionally filtered by ID. The certificate currently set as the account default (via ModifyCertificates) is reported with CustomerOverride=true.

func (*InMemoryBackend) DescribeCustomDBEngineVersions

func (b *InMemoryBackend) DescribeCustomDBEngineVersions(engine, engineVersion string) []CustomDBEngineVersion

DescribeCustomDBEngineVersions returns all custom engine versions, filtered by engine and/or engineVersion if non-empty.

func (*InMemoryBackend) DescribeDBClusterAutomatedBackups

func (b *InMemoryBackend) DescribeDBClusterAutomatedBackups(
	clusterID string,
) []DBClusterAutomatedBackup

DescribeDBClusterAutomatedBackups lists cluster automated backups, optionally filtered.

func (*InMemoryBackend) DescribeDBClusterBacktracks

func (b *InMemoryBackend) DescribeDBClusterBacktracks(
	clusterID string,
) ([]DBClusterBacktrack, error)

DescribeDBClusterBacktracks returns backtracks for a DB cluster, in the order BacktrackDBCluster (db_clusters.go) recorded them.

func (*InMemoryBackend) DescribeDBClusterEndpoints

func (b *InMemoryBackend) DescribeDBClusterEndpoints(clusterID, endpointID string) ([]DBClusterEndpoint, error)

DescribeDBClusterEndpoints returns cluster endpoints, filtered by cluster or endpoint ID. DBClusterEndpointIdentifier is a filter like DBClusterIdentifier's matching below, not an existence check: real AWS declares no not-found error for it. DBClusterIdentifier is the opposite (gopherstack-l20u): it's the op's one declared error, DBClusterNotFoundFault, so a supplied-but-unknown cluster must fault rather than silently filter to empty; an omitted DBClusterIdentifier still lists all endpoints.

func (*InMemoryBackend) DescribeDBClusterParameterGroups

func (b *InMemoryBackend) DescribeDBClusterParameterGroups(name string) ([]DBParameterGroup, error)

DescribeDBClusterParameterGroups returns cluster parameter groups.

func (*InMemoryBackend) DescribeDBClusterParameters

func (b *InMemoryBackend) DescribeDBClusterParameters(groupName string) ([]DBParameter, error)

DescribeDBClusterParameters returns parameters for a cluster parameter group.

func (*InMemoryBackend) DescribeDBClusterSnapshotAttributes

func (b *InMemoryBackend) DescribeDBClusterSnapshotAttributes(
	snapshotID string,
) (*DBClusterSnapshotAttributesResult, error)

DescribeDBClusterSnapshotAttributes returns attributes for a DB cluster snapshot.

func (*InMemoryBackend) DescribeDBClusterSnapshots

func (b *InMemoryBackend) DescribeDBClusterSnapshots(snapshotID, clusterID string) ([]DBClusterSnapshot, error)

DescribeDBClusterSnapshots returns cluster snapshots. If clusterID is non-empty, only snapshots whose DBClusterIdentifier matches are returned.

func (*InMemoryBackend) DescribeDBClusters

func (b *InMemoryBackend) DescribeDBClusters(id string) ([]DBCluster, error)

DescribeDBClusters returns clusters. If id is non-empty, returns only that cluster.

func (*InMemoryBackend) DescribeDBEngineVersions

func (b *InMemoryBackend) DescribeDBEngineVersions(engine, engineVersion string) []DBEngineVersion

DescribeDBEngineVersions returns available engine versions, filtered by engine and/or version. This includes custom engine versions created via CreateCustomDBEngineVersion: real AWS has no separate "describe custom engine versions" operation on this client -- custom engine versions (custom-oracle-ee, custom-oracle-se2, etc.) are returned by this same operation like any other engine/version pair, distinguished only by their Engine value.

func (*InMemoryBackend) DescribeDBInstanceAutomatedBackups

func (b *InMemoryBackend) DescribeDBInstanceAutomatedBackups(instanceID string) []DBInstanceAutomatedBackup

DescribeDBInstanceAutomatedBackups returns automated backup records for instances. If instanceID is non-empty, filters to that instance.

func (*InMemoryBackend) DescribeDBInstanceAutomatedBackupsByArn

func (b *InMemoryBackend) DescribeDBInstanceAutomatedBackupsByArn(backupsArn string) []DBInstanceAutomatedBackup

DescribeDBInstanceAutomatedBackupsByArn returns the automated backup record whose DBInstanceAutomatedBackupsArn matches backupsArn, or nil if none does.

func (*InMemoryBackend) DescribeDBInstances

func (b *InMemoryBackend) DescribeDBInstances(id string) ([]DBInstance, error)

DescribeDBInstances returns instances. If id is non-empty, returns only that instance. id may be a bare DBInstanceIdentifier or the instance's ARN (real AWS accepts both).

func (*InMemoryBackend) DescribeDBLogFiles

func (b *InMemoryBackend) DescribeDBLogFiles(instanceID string, filter LogFileFilter) ([]DBLogFile, error)

DescribeDBLogFiles returns the log files for the given instance, filtered by the supplied LogFileFilter. The instance is seeded with a small set of realistic log files on first access.

func (*InMemoryBackend) DescribeDBMajorEngineVersions

func (b *InMemoryBackend) DescribeDBMajorEngineVersions(engine string) []DBMajorEngineVersion

DescribeDBMajorEngineVersions returns available major engine versions.

func (*InMemoryBackend) DescribeDBParameterGroups

func (b *InMemoryBackend) DescribeDBParameterGroups(name string) ([]DBParameterGroup, error)

DescribeDBParameterGroups returns parameter groups. If name is non-empty, returns only that group.

func (*InMemoryBackend) DescribeDBParameters

func (b *InMemoryBackend) DescribeDBParameters(groupName string) ([]DBParameter, error)

DescribeDBParameters returns parameters for a parameter group.

func (*InMemoryBackend) DescribeDBProxies

func (b *InMemoryBackend) DescribeDBProxies(name string) ([]DBProxy, error)

DescribeDBProxies returns DB proxies, optionally filtered by name.

func (*InMemoryBackend) DescribeDBProxyEndpoints

func (b *InMemoryBackend) DescribeDBProxyEndpoints(proxyName, endpointName string) ([]DBProxyEndpoint, error)

DescribeDBProxyEndpoints returns proxy endpoints, optionally filtered.

func (*InMemoryBackend) DescribeDBProxyTargetGroups

func (b *InMemoryBackend) DescribeDBProxyTargetGroups(proxyName, targetGroupName string) ([]DBProxyTargetGroup, error)

DescribeDBProxyTargetGroups returns target groups for a DB proxy.

func (*InMemoryBackend) DescribeDBProxyTargets

func (b *InMemoryBackend) DescribeDBProxyTargets(proxyName, _ string) ([]DBProxyTarget, error)

DescribeDBProxyTargets returns the targets for a DB proxy.

func (*InMemoryBackend) DescribeDBRecommendations

func (b *InMemoryBackend) DescribeDBRecommendations(recID, status string) []DBRecommendation

DescribeDBRecommendations returns DB recommendations filtered by optional parameters.

func (*InMemoryBackend) DescribeDBSecurityGroups

func (b *InMemoryBackend) DescribeDBSecurityGroups(name string) ([]DBSecurityGroup, error)

DescribeDBSecurityGroups returns security groups, optionally by name.

func (*InMemoryBackend) DescribeDBShardGroups

func (b *InMemoryBackend) DescribeDBShardGroups(id string) ([]DBShardGroup, error)

DescribeDBShardGroups returns DB shard groups, optionally filtered by ID.

func (*InMemoryBackend) DescribeDBSnapshotAttributes

func (b *InMemoryBackend) DescribeDBSnapshotAttributes(snapshotID string) (*DBSnapshotAttributesResult, error)

DescribeDBSnapshotAttributes returns attributes for a DB snapshot.

func (*InMemoryBackend) DescribeDBSnapshotTenantDatabases

func (b *InMemoryBackend) DescribeDBSnapshotTenantDatabases(
	snapshotID, instanceID string,
) []DBSnapshotTenantDatabase

DescribeDBSnapshotTenantDatabases lists tenant databases within snapshots.

func (*InMemoryBackend) DescribeDBSnapshots

func (b *InMemoryBackend) DescribeDBSnapshots(snapshotID, instanceID string) ([]DBSnapshot, error)

DescribeDBSnapshots returns snapshots. If snapshotID is non-empty, returns only that snapshot. If instanceID is non-empty, returns all snapshots for that instance.

func (*InMemoryBackend) DescribeDBSubnetGroups

func (b *InMemoryBackend) DescribeDBSubnetGroups(name string) ([]DBSubnetGroup, error)

DescribeDBSubnetGroups returns subnet groups. If name is non-empty, returns only that group.

func (*InMemoryBackend) DescribeEngineDefaultClusterParameters

func (b *InMemoryBackend) DescribeEngineDefaultClusterParameters(_ string) []DBParameter

DescribeEngineDefaultClusterParameters returns default cluster parameters for an engine family.

func (*InMemoryBackend) DescribeEngineDefaultParameters

func (b *InMemoryBackend) DescribeEngineDefaultParameters(_ string) []DBParameter

DescribeEngineDefaultParameters returns default parameters for an engine family. This backend has no seeded default-parameter data for any family (CreateDBParameterGroup starts every group with an empty Parameters map, and there is no default.<family> seeding on startup) and the pinned SDK module carries no enumerable default-value data to derive a real set from, so this always returns an empty slice rather than fabricate one -- see the dated gap entry in PARITY.md (gopherstack-qpxye) for the full reasoning. Its Filters contract ("The only supported filter is parameter-name", api_op_DescribeEngineDefaultParameters.go:97-98) is the same contract DescribeDBParameters and DescribeDBClusterParameters share, so applyDBParameterFilters (shared.go) is wired into its handler to validate and narrow it for wire correctness -- but with no data ever populated, only its unrecognized-filter-name rejection is observable through the real API today.

func (*InMemoryBackend) DescribeEventCategories

func (b *InMemoryBackend) DescribeEventCategories(_ string) ([]string, error)

DescribeEventCategories returns event category names, optionally filtered by source type.

func (*InMemoryBackend) DescribeEventSubscriptions

func (b *InMemoryBackend) DescribeEventSubscriptions(name string) ([]EventSubscription, error)

DescribeEventSubscriptions returns all subscriptions or the named one.

func (*InMemoryBackend) DescribeEvents

func (b *InMemoryBackend) DescribeEvents(sourceID, sourceType string, durationMinutes int) ([]Event, error)

DescribeEvents returns published events filtered by sourceID, sourceType, and/or duration minutes. Results are sorted by creation time ascending, matching AWS behaviour.

func (*InMemoryBackend) DescribeExportTasks

func (b *InMemoryBackend) DescribeExportTasks(taskID string) ([]ExportTask, error)

DescribeExportTasks returns export tasks, optionally filtered by task ID.

func (*InMemoryBackend) DescribeGlobalClusters

func (b *InMemoryBackend) DescribeGlobalClusters(id string) ([]GlobalCluster, error)

DescribeGlobalClusters returns global clusters, optionally filtered by identifier.

func (*InMemoryBackend) DescribeIntegrations

func (b *InMemoryBackend) DescribeIntegrations(identifier string) ([]Integration, error)

DescribeIntegrations returns integrations, optionally filtered by identifier.

func (*InMemoryBackend) DescribeOptionGroups

func (b *InMemoryBackend) DescribeOptionGroups(name string) ([]OptionGroup, error)

DescribeOptionGroups returns option groups. If name is non-empty, returns only that group.

func (*InMemoryBackend) DescribeOrderableDBInstanceOptions

func (b *InMemoryBackend) DescribeOrderableDBInstanceOptions(engine, engineVersion string) []OrderableDBInstanceOption

DescribeOrderableDBInstanceOptions returns orderable instance options for the given engine.

func (*InMemoryBackend) DescribePendingMaintenanceActions

func (b *InMemoryBackend) DescribePendingMaintenanceActions(resourceID string) []PendingMaintenanceAction

DescribePendingMaintenanceActions returns pending maintenance actions, optionally narrowed to a single resource ARN or identifier.

func (*InMemoryBackend) DescribeReservedDBInstances

func (b *InMemoryBackend) DescribeReservedDBInstances(
	reservedDBInstanceID, dbInstanceClass string,
) []ReservedDBInstance

DescribeReservedDBInstances returns reserved DB instances.

func (*InMemoryBackend) DescribeReservedDBInstancesOfferings

func (b *InMemoryBackend) DescribeReservedDBInstancesOfferings(
	offeringID, dbInstanceClass string,
) []ReservedDBInstancesOffering

DescribeReservedDBInstancesOfferings returns available reserved DB instance offerings.

func (*InMemoryBackend) DescribeServerlessV2PlatformVersions added in v1.2.0

func (b *InMemoryBackend) DescribeServerlessV2PlatformVersions(
	engine, version string, defaultOnly, includeAll bool,
) ([]ServerlessV2PlatformVersionInfo, error)

DescribeServerlessV2PlatformVersions returns Aurora Serverless v2 platform versions, filtered by engine, a specific version, "default only", and "include all" (disabled versions).

This backend's catalog is deliberately empty: aws-sdk-go-v2/service/rds/types's ServerlessV2PlatformVersionInfo.ServerlessV2PlatformVersion is a plain *string on the wire (confirmed via `go doc`), and the only enumerable values documented anywhere in the installed SDK module are the two valid Engine values checked above -- there is no SDK-side list of real platform version numbers/descriptions to derive from. Inventing specific version strings (e.g. "3", "4") would fabricate data indistinguishable from genuine AWS output with nothing in this SDK module to field-diff them against, so an honestly empty catalog is returned instead (see PARITY.md). The filtering logic below is real and ready to activate correctly the moment genuine entries are ever added to staticServerlessV2PlatformVersions -- it is not dead code, just currently applied to zero rows.

func (*InMemoryBackend) DescribeSourceRegions

func (b *InMemoryBackend) DescribeSourceRegions(regionName string) []SourceRegion

DescribeSourceRegions returns available source regions for cross-region operations.

func (*InMemoryBackend) DescribeTenantDatabases

func (b *InMemoryBackend) DescribeTenantDatabases(
	instanceID, tenantDBName string,
) ([]TenantDatabase, error)

DescribeTenantDatabases returns tenant databases, optionally filtered by instance and name.

func (*InMemoryBackend) DescribeValidDBInstanceModifications

func (b *InMemoryBackend) DescribeValidDBInstanceModifications(id string) (*DBInstance, error)

DescribeValidDBInstanceModifications returns the valid modifications for the given instance. This is a stub that returns a minimal set of valid instance classes.

func (*InMemoryBackend) DisableHTTPEndpoint

func (b *InMemoryBackend) DisableHTTPEndpoint(resourceARN string) error

DisableHTTPEndpoint disables the HTTP endpoint for an Aurora Serverless cluster.

func (*InMemoryBackend) DownloadDBLogFilePortion

func (b *InMemoryBackend) DownloadDBLogFilePortion(
	instanceID, logFileName, marker string,
	numberOfLines int,
) (LogFilePortion, error)

DownloadDBLogFilePortion returns a portion of the named log file for the given instance, honoring the supplied marker and line count. Marker is "0" or "" for the start of the file; the returned marker is the next line offset to read from.

func (*InMemoryBackend) EnableEngine

func (b *InMemoryBackend) EnableEngine(cfg EngineConfig)

EnableEngine switches the backend to docker mode: postgres/mysql/mariadb (and Aurora) get a real container.

func (*InMemoryBackend) EnableHTTPEndpoint

func (b *InMemoryBackend) EnableHTTPEndpoint(resourceARN string) error

EnableHTTPEndpoint enables the HTTP endpoint for an Aurora Serverless cluster.

func (*InMemoryBackend) FailoverDBCluster

func (b *InMemoryBackend) FailoverDBCluster(
	clusterID, targetDBInstanceIdentifier string,
) (*DBCluster, error)

FailoverDBCluster triggers a failover on an Aurora DB cluster, promoting an Aurora Replica to be the new cluster writer (rds@v1.124.1 api_op_FailoverDBCluster.go:13-14). targetDBInstanceIdentifier, when given, must name an existing cluster member other than the current writer; when empty, the first non-writer member is promoted instead, mirroring AWS auto-selecting a replica.

func (*InMemoryBackend) FailoverGlobalCluster

func (b *InMemoryBackend) FailoverGlobalCluster(
	globalClusterID, _ string,
) (*GlobalCluster, error)

FailoverGlobalCluster initiates a failover for a global cluster.

func (*InMemoryBackend) GetPerformanceInsightsData

func (b *InMemoryBackend) GetPerformanceInsightsData(
	resourceID, metric string,
	_ time.Time, _ time.Time,
	_ int,
) ([]PIDataPoint, error)

GetPerformanceInsightsData returns synthetic Performance Insights metric data points for the given resource identifier, metric name, and time range. The data is deterministically generated based on the resource identifier and time bucket so tests get repeatable results without external state.

func (*InMemoryBackend) InstanceAssociatedRoles

func (b *InMemoryBackend) InstanceAssociatedRoles(instanceID string) []DBInstanceRole

InstanceAssociatedRoles returns the IAM roles associated with the given DB instance (AssociatedRoles on DescribeDBInstances' DBInstance, rds@v1.124.1 types.go:1956). Returns nil if the instance does not exist or has no associated roles. Every entry in b.instanceRoles is applied synchronously by AddRoleToDBInstance, so Status is always ACTIVE -- there is no PENDING/INVALID state this backend ever produces.

func (*InMemoryBackend) IsClusterFailoverActive

func (b *InMemoryBackend) IsClusterFailoverActive(clusterID string) bool

IsClusterFailoverActive reports whether a FIS failover simulation is currently active for the cluster with the given identifier. Expired entries are lazily evicted to prevent unbounded map growth.

func (*InMemoryBackend) ListTagsForResource

func (b *InMemoryBackend) ListTagsForResource(arn string) []Tag

ListTagsForResource returns the tags for the resource identified by arn.

func (*InMemoryBackend) ModifyActivityStream

func (b *InMemoryBackend) ModifyActivityStream(clusterID string, auditPolicy string) (*DBCluster, error)

ModifyActivityStream modifies activity stream settings for a DB cluster.

Real ModifyActivityStream (unlike Start/StopActivityStream) is documented as "supported for RDS for Oracle and Microsoft SQL Server" only, and its ResourceArn field doc names a DB instance ARN, not a cluster ARN (api_op_ModifyActivityStream.go). Its declared error set (deserializers.go awsAwsquery_deserializeOpErrorModifyActivityStream) has no DBClusterNotFoundFault or InvalidDBClusterStateFault at all -- only DBInstanceNotFound/InvalidDBInstanceState/ResourceNotFoundFault -- so a not-found ARN or a not-started conflict emits those codes instead of the cluster-shaped ones Start/StopActivityStream declare (gopherstack-fm1e, gopherstack-74yw), even though this backend still tracks activity-stream state on the DBCluster record.

func (*InMemoryBackend) ModifyCertificates

func (b *InMemoryBackend) ModifyCertificates(certID string, removeCustomerOverride bool) (*Certificate, error)

ModifyCertificates sets (or, when certID is empty, resets) the default CA certificate identifier for the account and returns the resulting default.

func (*InMemoryBackend) ModifyCurrentDBClusterCapacity

func (b *InMemoryBackend) ModifyCurrentDBClusterCapacity(
	clusterID string,
	capacity int,
) (*DBCluster, error)

ModifyCurrentDBClusterCapacity modifies the serverless capacity of a DB cluster.

func (*InMemoryBackend) ModifyCustomDBEngineVersion

func (b *InMemoryBackend) ModifyCustomDBEngineVersion(
	engine, engineVersion, description, status string,
) (*CustomDBEngineVersion, error)

ModifyCustomDBEngineVersion modifies a custom DB engine version.

func (*InMemoryBackend) ModifyDBCluster

func (b *InMemoryBackend) ModifyDBCluster(
	id, paramGroupName string,
	opts DBClusterOptions,
) (*DBCluster, error)

ModifyDBCluster modifies a DB cluster.

func (*InMemoryBackend) ModifyDBClusterEndpoint

func (b *InMemoryBackend) ModifyDBClusterEndpoint(endpointID, endpointType string) (*DBClusterEndpoint, error)

ModifyDBClusterEndpoint modifies a custom DB cluster endpoint.

func (*InMemoryBackend) ModifyDBClusterParameterGroup

func (b *InMemoryBackend) ModifyDBClusterParameterGroup(name string, params []DBParameter) (string, error)

ModifyDBClusterParameterGroup modifies parameters in a cluster parameter group.

func (*InMemoryBackend) ModifyDBClusterSnapshotAttribute

func (b *InMemoryBackend) ModifyDBClusterSnapshotAttribute(
	snapshotID, attributeName string,
	valuesToAdd, valuesToRemove []string,
) (*DBClusterSnapshotAttributesResult, error)

ModifyDBClusterSnapshotAttribute adds or removes attribute values for a cluster snapshot.

func (*InMemoryBackend) ModifyDBInstance

func (b *InMemoryBackend) ModifyDBInstance(
	id, instanceClass string,
	allocatedStorage int,
	opts DBInstanceOptions,
) (*DBInstance, error)

func (*InMemoryBackend) ModifyDBParameterGroup

func (b *InMemoryBackend) ModifyDBParameterGroup(name string, params []DBParameter) (*DBParameterGroup, error)

ModifyDBParameterGroup modifies parameters in a parameter group.

func (*InMemoryBackend) ModifyDBProxy

func (b *InMemoryBackend) ModifyDBProxy(
	name string,
	requireTLS *bool,
	idleClientTimeout *int,
	auth []UserAuthConfig,
	defaultAuthScheme string,
) (*DBProxy, error)

ModifyDBProxy modifies a DB proxy's settings.

func (*InMemoryBackend) ModifyDBProxyEndpoint

func (b *InMemoryBackend) ModifyDBProxyEndpoint(endpointName string, vpcSGIDs []string) (*DBProxyEndpoint, error)

ModifyDBProxyEndpoint modifies a proxy endpoint's settings.

func (*InMemoryBackend) ModifyDBProxyTargetGroup

func (b *InMemoryBackend) ModifyDBProxyTargetGroup(
	proxyName, targetGroupName, newName string,
	cfg ConnectionPoolConfig,
) (*DBProxyTargetGroup, error)

ModifyDBProxyTargetGroup modifies the connection pool settings for a proxy target group.

func (*InMemoryBackend) ModifyDBRecommendation

func (b *InMemoryBackend) ModifyDBRecommendation(recID, status string) (*DBRecommendation, error)

ModifyDBRecommendation modifies the status of a DB recommendation.

func (*InMemoryBackend) ModifyDBShardGroup

func (b *InMemoryBackend) ModifyDBShardGroup(
	id string,
	maxACU float64,
	computeRedundancy int,
) (*DBShardGroup, error)

ModifyDBShardGroup modifies a DB shard group's settings.

func (*InMemoryBackend) ModifyDBSnapshot

func (b *InMemoryBackend) ModifyDBSnapshot(snapshotID, optionGroupName, engineVersion string) (*DBSnapshot, error)

ModifyDBSnapshot modifies settings of a DB snapshot.

func (*InMemoryBackend) ModifyDBSnapshotAttribute

func (b *InMemoryBackend) ModifyDBSnapshotAttribute(
	snapshotID, attributeName string,
	valuesToAdd, valuesToRemove []string,
) (*DBSnapshotAttributesResult, error)

ModifyDBSnapshotAttribute adds or removes attribute values for a DB snapshot.

func (*InMemoryBackend) ModifyDBSubnetGroup

func (b *InMemoryBackend) ModifyDBSubnetGroup(name, description string, subnetIDs []string) (*DBSubnetGroup, error)

ModifyDBSubnetGroup modifies an existing DB subnet group.

func (*InMemoryBackend) ModifyEventSubscription

func (b *InMemoryBackend) ModifyEventSubscription(
	name, snsTopicARN, sourceType string,
	sourceIDs, eventCategories []string,
	enabled *bool,
) (*EventSubscription, error)

ModifyEventSubscription modifies an existing event subscription.

func (*InMemoryBackend) ModifyGlobalCluster

func (b *InMemoryBackend) ModifyGlobalCluster(
	id, newGlobalClusterID, engineVersion string,
	deletionProtection *bool,
	allowMajorVersionUpgrade bool,
) (*GlobalCluster, error)

ModifyGlobalCluster modifies properties of a global cluster.

func (*InMemoryBackend) ModifyIntegration

func (b *InMemoryBackend) ModifyIntegration(
	identifier, dataFilter, description, newName string,
) (*Integration, error)

ModifyIntegration modifies an integration's description or data filter. ModifyIntegration also applies IntegrationName -- a real, documented rename field (rds@v1.124.1 api_op_ModifyIntegration.go:46) that was previously not accepted as a parameter at all, so every real client's rename request was silently dropped regardless of the value sent.

func (*InMemoryBackend) ModifyOptionGroup

func (b *InMemoryBackend) ModifyOptionGroup(
	name string,
	optionsToAdd []OptionGroupOption,
	optionsToRemove []string,
) (*OptionGroup, error)

ModifyOptionGroup modifies an option group by adding/removing options.

func (*InMemoryBackend) ModifyTenantDatabase

func (b *InMemoryBackend) ModifyTenantDatabase(
	instanceID, tenantDBName, newTenantDBName string,
) (*TenantDatabase, error)

ModifyTenantDatabase renames a tenant database (NewTenantDBName).

func (*InMemoryBackend) ModifyTenantDatabaseWithSecret

func (b *InMemoryBackend) ModifyTenantDatabaseWithSecret(
	instanceID, tenantDBName, newTenantDBName, masterPassword string,
	req MasterSecretRequest,
) (*TenantDatabase, error)

ModifyTenantDatabaseWithSecret also applies the master-password management fields.

func (*InMemoryBackend) PromoteReadReplica

func (b *InMemoryBackend) PromoteReadReplica(id string) (*DBInstance, error)

PromoteReadReplica promotes a read replica to a standalone instance.

func (*InMemoryBackend) PromoteReadReplicaDBCluster

func (b *InMemoryBackend) PromoteReadReplicaDBCluster(clusterID string) (*DBCluster, error)

PromoteReadReplicaDBCluster promotes a read replica DB cluster.

func (*InMemoryBackend) PurchaseReservedDBInstancesOffering

func (b *InMemoryBackend) PurchaseReservedDBInstancesOffering(
	offeringID, reservedDBInstanceID string,
	dbInstanceCount int,
) (*ReservedDBInstance, error)

PurchaseReservedDBInstancesOffering purchases a reserved DB instance offering.

func (*InMemoryBackend) RebootDBCluster

func (b *InMemoryBackend) RebootDBCluster(clusterID string) (*DBCluster, error)

RebootDBCluster reboots the named Aurora DB cluster. The cluster transitions to "rebooting" status and reverts to "available" after a brief delay.

func (*InMemoryBackend) RebootDBInstance

func (b *InMemoryBackend) RebootDBInstance(id string) (*DBInstance, error)

RebootDBInstance reboots the given instance. AWS returns the instance in "rebooting" state; it transitions to "available" after the delay.

func (*InMemoryBackend) RebootDBShardGroup

func (b *InMemoryBackend) RebootDBShardGroup(id string) (*DBShardGroup, error)

RebootDBShardGroup reboots a DB shard group.

func (*InMemoryBackend) Region

func (b *InMemoryBackend) Region() string

Region returns the AWS region this backend is configured for.

func (*InMemoryBackend) RegisterDBProxyTargets

func (b *InMemoryBackend) RegisterDBProxyTargets(
	proxyName, _ string,
	dbInstanceIDs, dbClusterIDs []string,
) ([]DBProxyTarget, error)

RegisterDBProxyTargets registers DB instances or clusters as targets for a proxy.

func (*InMemoryBackend) RemoveFromGlobalCluster

func (b *InMemoryBackend) RemoveFromGlobalCluster(globalClusterID, dbClusterARN string) (*GlobalCluster, error)

RemoveFromGlobalCluster removes a DB cluster from a global cluster.

func (*InMemoryBackend) RemoveRoleFromDBCluster

func (b *InMemoryBackend) RemoveRoleFromDBCluster(clusterID, roleARN, featureName string) error

RemoveRoleFromDBCluster disassociates an IAM role from the given cluster's feature slot. Removing a (FeatureName, RoleArn) pair that is not associated returns DBClusterRoleNotFound.

func (*InMemoryBackend) RemoveRoleFromDBInstance

func (b *InMemoryBackend) RemoveRoleFromDBInstance(instanceID, roleARN, featureName string) error

RemoveRoleFromDBInstance disassociates an IAM role from the given instance's feature slot. Returns an error if the instance does not exist. Removing a role that is not associated, or whose ARN doesn't match what's currently associated with that feature, is a no-op -- it must only remove the matching (feature, role) association, not any role sharing the instance.

func (*InMemoryBackend) RemoveSourceIdentifierFromSubscription

func (b *InMemoryBackend) RemoveSourceIdentifierFromSubscription(
	subscriptionName, sourceIdentifier string,
) (*EventSubscription, error)

RemoveSourceIdentifierFromSubscription removes a source identifier from an event subscription. Returns an error if the subscription does not exist.

func (*InMemoryBackend) RemoveTagsFromResource

func (b *InMemoryBackend) RemoveTagsFromResource(arn string, keys []string)

RemoveTagsFromResource removes the named tags from the resource identified by arn.

func (*InMemoryBackend) Reset

func (b *InMemoryBackend) Reset()

Reset clears all backend state, returning it to a clean empty state.

func (*InMemoryBackend) ResetDBClusterParameterGroup

func (b *InMemoryBackend) ResetDBClusterParameterGroup(
	groupName string,
	resetAllParameters bool,
	params []string,
) (string, error)

ResetDBClusterParameterGroup resets parameters in a cluster parameter group.

func (*InMemoryBackend) ResetDBParameterGroup

func (b *InMemoryBackend) ResetDBParameterGroup(
	name string,
	resetAll bool,
	params []string,
) (*DBParameterGroup, error)

ResetDBParameterGroup resets parameters in a parameter group.

func (*InMemoryBackend) Restore

func (b *InMemoryBackend) Restore(ctx context.Context, data []byte) error

Restore loads backend state from a JSON snapshot. It implements persistence.Persistable.

func (*InMemoryBackend) RestoreDBClusterFromS3

func (b *InMemoryBackend) RestoreDBClusterFromS3(
	id, engine, masterUsername, s3Bucket, s3IngestionRoleArn, sourceEngine, sourceEngineVersion string,
	opts DBClusterOptions,
) (*DBCluster, error)

RestoreDBClusterFromS3 restores a DB cluster from an S3 backup. s3IngestionRoleArn, sourceEngine and sourceEngineVersion are required members of RestoreDBClusterFromS3Input (api_op_RestoreDBClusterFromS3.go:90,97,105,114) describing the source backup; the real DBCluster response shape has no fields for them (grepped types/types.go), so they're validated as required but not persisted -- there's no real state to echo them into.

func (*InMemoryBackend) RestoreDBClusterFromSnapshot

func (b *InMemoryBackend) RestoreDBClusterFromSnapshot(
	clusterID, snapshotID, engine string,
	opts DBClusterOptions,
) (*DBCluster, error)

RestoreDBClusterFromSnapshot creates a new DB cluster from the given snapshot.

func (*InMemoryBackend) RestoreDBClusterToPointInTime

func (b *InMemoryBackend) RestoreDBClusterToPointInTime(
	clusterID, sourceClusterID string,
	opts DBClusterOptions,
) (*DBCluster, error)

RestoreDBClusterToPointInTime creates a new DB cluster as a point-in-time restore of the source cluster.

func (*InMemoryBackend) RestoreDBInstanceFromDBSnapshot

func (b *InMemoryBackend) RestoreDBInstanceFromDBSnapshot(
	id, snapshotID string,
	opts DBInstanceOptions,
) (*DBInstance, error)

RestoreDBInstanceFromDBSnapshot creates a new DB instance from the given snapshot. DBParameterGroupName defaults to "default.<engine>" when omitted, matching the documented "default DBParameterGroup for the specified DB engine" (rds@v1.124.1 api_op_RestoreDBInstanceFromDBSnapshot.go:241) and the same convention CreateDBCluster already uses. OptionGroupName has no documented default and is honored only when supplied.

func (*InMemoryBackend) RestoreDBInstanceFromS3

func (b *InMemoryBackend) RestoreDBInstanceFromS3(
	id, engine, dbInstanceClass, s3Bucket, s3IngestionRoleArn, sourceEngine, sourceEngineVersion string,
	paramGroupName, optionGroupName string,
	opts DBInstanceOptions,
) (*DBInstance, error)

RestoreDBInstanceFromS3 restores a DB instance from an S3 backup. s3IngestionRoleArn, sourceEngine and sourceEngineVersion are required members of RestoreDBInstanceFromS3Input (api_op_RestoreDBInstanceFromS3.go:84,91,100) describing the source backup; the real DBInstance response shape has no fields for them (grepped types/types.go), so they're validated as required but not persisted -- there's no real state to echo them into. paramGroupName defaults to "default.<engine>" when omitted, matching the documented "default DBParameterGroup for the specified DB engine" (api_op_RestoreDBInstanceFromS3.go:171). optionGroupName has no established default convention in this backend and is honored only when supplied.

func (*InMemoryBackend) RestoreDBInstanceToPointInTime

func (b *InMemoryBackend) RestoreDBInstanceToPointInTime(
	id, sourceID string,
	opts DBInstanceOptions,
) (*DBInstance, error)

RestoreDBInstanceToPointInTime creates a new DB instance as a point-in-time restore of the source. DBParameterGroupName defaults to the source's group when omitted (pre-existing behavior; left unchanged even though api_op_RestoreDBInstanceToPointInTime.go:210 documents the absent case as "the default DBParameterGroup for the specified DB engine" -- correcting that default is out of this pass's scope) and is honored when the caller supplies one. OptionGroupName has no documented default and is honored only when supplied.

func (*InMemoryBackend) RevokeDBSecurityGroupIngress

func (b *InMemoryBackend) RevokeDBSecurityGroupIngress(groupName, cidrIP string) (*DBSecurityGroup, error)

RevokeDBSecurityGroupIngress revokes a CIDR IP from a security group.

func (*InMemoryBackend) SetDNSRegistrar

func (b *InMemoryBackend) SetDNSRegistrar(dns DNSRegistrar)

SetDNSRegistrar wires a DNS server so RDS instance hostnames are auto-registered.

func (*InMemoryBackend) SetPerformanceInsightsData

func (b *InMemoryBackend) SetPerformanceInsightsData(resourceID, metric string, points []PIDataPoint)

SetPerformanceInsightsData stores PI metrics for testing.

func (*InMemoryBackend) Snapshot

func (b *InMemoryBackend) Snapshot(ctx context.Context) []byte

Snapshot serialises the backend state to JSON. It implements persistence.Persistable.

func (*InMemoryBackend) StartActivityStream

func (b *InMemoryBackend) StartActivityStream(
	clusterID, kmsKeyID, mode string, engineNativeAuditFieldsIncluded bool,
) (*DBCluster, error)

StartActivityStream starts the database activity stream for a DB cluster.

func (*InMemoryBackend) StartDBCluster

func (b *InMemoryBackend) StartDBCluster(id string) (*DBCluster, error)

StartDBCluster starts a stopped DB cluster.

func (*InMemoryBackend) StartDBInstance

func (b *InMemoryBackend) StartDBInstance(id string) (*DBInstance, error)

StartDBInstance starts a stopped DB instance.

func (*InMemoryBackend) StartDBInstanceAutomatedBackupsReplication

func (b *InMemoryBackend) StartDBInstanceAutomatedBackupsReplication(
	sourceInstanceARN string,
	backupRetentionPeriod int,
) (*DBInstanceAutomatedBackup, error)

StartDBInstanceAutomatedBackupsReplication starts cross-region replication for an instance backup.

func (*InMemoryBackend) StartExportTask

func (b *InMemoryBackend) StartExportTask(
	taskID, sourceARN, s3Bucket, iamRoleARN, kmsKeyID string,
) (*ExportTask, error)

StartExportTask creates a new export task for the given source ARN.

func (*InMemoryBackend) StopActivityStream

func (b *InMemoryBackend) StopActivityStream(clusterID string) (*DBCluster, error)

StopActivityStream stops the database activity stream for a DB cluster.

func (*InMemoryBackend) StopDBCluster

func (b *InMemoryBackend) StopDBCluster(id string) (*DBCluster, error)

StopDBCluster stops a running DB cluster.

func (*InMemoryBackend) StopDBInstance

func (b *InMemoryBackend) StopDBInstance(id string) (*DBInstance, error)

StopDBInstance stops a running DB instance.

func (*InMemoryBackend) StopDBInstanceAutomatedBackupsReplication

func (b *InMemoryBackend) StopDBInstanceAutomatedBackupsReplication(
	sourceInstanceARN string,
) (*DBInstanceAutomatedBackup, error)

StopDBInstanceAutomatedBackupsReplication stops cross-region replication for an instance backup.

func (*InMemoryBackend) SwitchoverBlueGreenDeployment

func (b *InMemoryBackend) SwitchoverBlueGreenDeployment(id string) (*BlueGreenDeployment, error)

SwitchoverBlueGreenDeployment switches over a blue/green deployment.

func (*InMemoryBackend) SwitchoverGlobalCluster

func (b *InMemoryBackend) SwitchoverGlobalCluster(
	globalClusterID, _ string,
) (*GlobalCluster, error)

SwitchoverGlobalCluster initiates a switchover for a global cluster.

func (*InMemoryBackend) SwitchoverReadReplica

func (b *InMemoryBackend) SwitchoverReadReplica(instanceID string) (*DBInstance, error)

SwitchoverReadReplica converts a read replica to a standalone instance.

func (*InMemoryBackend) TaggedResources added in v1.2.0

func (b *InMemoryBackend) TaggedResources() []TaggedEntry

TaggedResources returns every RDS resource ARN that currently has at least one tag.

type Integration

type Integration struct {
	CreatedAt              time.Time          `json:"createdAt"`
	IntegrationArn         string             `json:"integrationArn"`
	IntegrationName        string             `json:"integrationName"`
	SourceArn              string             `json:"sourceArn"`
	TargetArn              string             `json:"targetArn"`
	KmsKeyID               string             `json:"kmsKeyId,omitempty"`
	DataFilter             string             `json:"dataFilter,omitempty"`
	IntegrationDescription string             `json:"integrationDescription,omitempty"`
	Status                 string             `json:"status"`
	Errors                 []IntegrationError `json:"errors,omitempty"`
}

Integration represents an RDS zero-ETL integration to Amazon Redshift.

type IntegrationError added in v1.2.0

type IntegrationError struct {
	ErrorCode    string `json:"errorCode"`
	ErrorMessage string `json:"errorMessage,omitempty"`
}

IntegrationError describes a single error associated with a zero-ETL integration, matching aws-sdk-go-v2's types.IntegrationError.

type LogFileFilter

type LogFileFilter struct {
	// FilenameContains, when non-empty, keeps only log files whose name contains it.
	FilenameContains string
	// FileLastWritten, when > 0, keeps only files written at or after this epoch-ms time.
	FileLastWritten int64
	// FileSize, when > 0, keeps only files strictly larger than this many
	// bytes (AWS: "Filters the available log files for files larger than
	// the specified size" -- exclusive, not "at least").
	FileSize int64
}

LogFileFilter narrows the results returned by DescribeDBLogFiles, matching the RDS DescribeDBLogFiles request filters.

type LogFilePortion

type LogFilePortion struct {
	LogFileData           string
	Marker                string
	AdditionalDataPending bool
}

LogFilePortion is a chunk of a DB log file returned by DownloadDBLogFilePortion.

type MasterSecret

type MasterSecret struct {
	MasterUserSecretARN      string `json:"masterUserSecretArn,omitempty"`
	MasterUserSecretStatus   string `json:"masterUserSecretStatus,omitempty"`
	MasterUserSecretKmsKeyID string `json:"masterUserSecretKmsKeyId,omitempty"`
}

MasterSecret is the RDS-managed master-user secret surfaced as MasterUserSecret.

type MasterSecretRequest

type MasterSecretRequest struct {
	MasterUserSecretKmsKeyID string
	ManageMasterUserPassword bool
	ManageSet                bool
}

MasterSecretRequest carries ManageMasterUserPassword and MasterUserSecretKmsKeyId.

type OptionGroup

type OptionGroup struct {
	OptionGroupName        string              `json:"optionGroupName"`
	OptionGroupDescription string              `json:"optionGroupDescription"`
	OptionGroupArn         string              `json:"optionGroupArn,omitempty"`
	EngineName             string              `json:"engineName"`
	MajorEngineVersion     string              `json:"majorEngineVersion"`
	Options                []OptionGroupOption `json:"options"`
}

OptionGroup represents an RDS option group.

type OptionGroupOption

type OptionGroupOption struct {
	OptionName    string `json:"optionName"`
	OptionVersion string `json:"optionVersion"`
}

OptionGroupOption represents an option within an option group.

type OrderableDBInstanceOption

type OrderableDBInstanceOption struct {
	Engine          string `json:"engine"`
	EngineVersion   string `json:"engineVersion"`
	DBInstanceClass string `json:"dbInstanceClass"`
	MultiAZCapable  bool   `json:"multiAZCapable"`
}

OrderableDBInstanceOption represents an orderable DB instance option.

type PIDataPoint

type PIDataPoint struct {
	Timestamp string
	Value     float64
}

PIDataPoint is a single Performance Insights metric data point.

type PendingMaintenanceAction

type PendingMaintenanceAction struct {
	ResourceIdentifier   string `json:"resourceIdentifier"`
	Action               string `json:"action"`
	AutoAppliedAfterDate string `json:"autoAppliedAfterDate"`
	CurrentApplyDate     string `json:"currentApplyDate"`
	Description          string `json:"description"`
}

PendingMaintenanceAction represents a pending maintenance action for a resource.

type PendingModifiedValues

type PendingModifiedValues struct {
	MultiAZChange    *bool  `json:"multiAZChange,omitempty"`
	DBInstanceClass  string `json:"dbInstanceClass,omitempty"`
	EngineVersion    string `json:"engineVersion,omitempty"`
	StorageType      string `json:"storageType,omitempty"`
	AllocatedStorage int    `json:"allocatedStorage,omitempty"`
	Iops             int    `json:"iops,omitempty"`
}

PendingModifiedValues holds deferred instance changes (ApplyImmediately=false). A non-nil pointer means at least one field is pending. Nil means nothing pending.

type Provider

type Provider struct{}

Provider implements service.Provider for RDS.

func (*Provider) Init

Init initializes the RDS service backend and handler.

func (*Provider) Name

func (p *Provider) Name() string

Name returns the provider name.

type ReservedDBInstance

type ReservedDBInstance struct {
	ReservedDBInstanceID          string  `json:"reservedDBInstanceId"`
	ReservedDBInstancesOfferingID string  `json:"reservedDBInstancesOfferingId"`
	DBInstanceClass               string  `json:"dbInstanceClass"`
	StartTime                     string  `json:"startTime"`
	ProductDescription            string  `json:"productDescription"`
	OfferingType                  string  `json:"offeringType"`
	State                         string  `json:"state"`
	CurrencyCode                  string  `json:"currencyCode"`
	FixedPrice                    float64 `json:"fixedPrice"`
	UsagePrice                    float64 `json:"usagePrice"`
	Duration                      int     `json:"duration"`
	DBInstanceCount               int     `json:"dbInstanceCount"`
	MultiAZ                       bool    `json:"multiAZ"`
}

ReservedDBInstance represents a purchased reserved DB instance.

type ReservedDBInstancesOffering

type ReservedDBInstancesOffering struct {
	ReservedDBInstancesOfferingID string  `json:"reservedDBInstancesOfferingId"`
	DBInstanceClass               string  `json:"dbInstanceClass"`
	ProductDescription            string  `json:"productDescription"`
	OfferingType                  string  `json:"offeringType"`
	CurrencyCode                  string  `json:"currencyCode"`
	FixedPrice                    float64 `json:"fixedPrice"`
	UsagePrice                    float64 `json:"usagePrice"`
	Duration                      int     `json:"duration"`
	MultiAZ                       bool    `json:"multiAZ"`
}

ReservedDBInstancesOffering represents an available reserved DB instance offering.

type ServerlessV2FeaturesSupport added in v1.2.0

type ServerlessV2FeaturesSupport struct {
	MinCapacity float64 `json:"minCapacity"`
	MaxCapacity float64 `json:"maxCapacity"`
}

ServerlessV2FeaturesSupport describes Aurora Serverless v2 capacity limits that differ between engine/platform versions (aws-sdk-go-v2/service/rds/types's ServerlessV2FeaturesSupport: MinCapacity/MaxCapacity are both *float64 on the wire).

type ServerlessV2PlatformVersionInfo added in v1.2.0

type ServerlessV2PlatformVersionInfo struct {
	ServerlessV2FeaturesSupport            *ServerlessV2FeaturesSupport `json:"serverlessV2FeaturesSupport,omitempty"`
	Engine                                 string                       `json:"engine"`
	ServerlessV2PlatformVersion            string                       `json:"serverlessV2PlatformVersion"`
	ServerlessV2PlatformVersionDescription string                       `json:"serverlessV2PlatformVersionDescription"`
	Status                                 string                       `json:"status"`
	IsDefault                              bool                         `json:"isDefault"`
}

ServerlessV2PlatformVersionInfo represents a single Aurora Serverless v2 platform version, as returned by DescribeServerlessV2PlatformVersions (aws-sdk-go-v2/service/ rds/types's ServerlessV2PlatformVersionInfo). See DescribeServerlessV2PlatformVersions in reference_data.go for why this backend's catalog is always empty.

type ServerlessV2ScalingConfiguration

type ServerlessV2ScalingConfiguration struct {
	MinCapacity float64 `json:"minCapacity"`
	MaxCapacity float64 `json:"maxCapacity"`
}

ServerlessV2ScalingConfiguration holds Aurora Serverless v2 capacity settings.

type SourceRegion

type SourceRegion struct {
	RegionName string `json:"regionName"`
	Endpoint   string `json:"endpoint"`
	Status     string `json:"status"`
}

SourceRegion represents an available source region for cross-region operations.

type StorageBackend

type StorageBackend interface {
	// Lifecycle
	Region() string
	AccountID() string
	Reset()
	Snapshot(ctx context.Context) []byte
	Restore(ctx context.Context, data []byte) error

	// DB instance operations
	CreateDBInstance(
		id, engine, instanceClass, dbName, masterUser, paramGroupName string,
		allocatedStorage int,
		opts DBInstanceOptions,
	) (*DBInstance, error)
	DeleteDBInstance(id string) (*DBInstance, error)
	DeleteDBInstanceWithOptions(
		id string,
		skipFinalSnapshot bool,
		finalSnapshotID string,
		deleteAutomatedBackups bool,
	) (*DBInstance, error)
	DescribeDBInstances(id string) ([]DBInstance, error)
	ModifyDBInstance(
		id, instanceClass string,
		allocatedStorage int,
		opts DBInstanceOptions,
	) (*DBInstance, error)
	StartDBInstance(id string) (*DBInstance, error)
	StopDBInstance(id string) (*DBInstance, error)
	RebootDBInstance(id string) (*DBInstance, error)
	CreateDBInstanceReadReplica(
		id, sourceID, sourceRegion, paramGroupName, optionGroupName string,
		opts DBInstanceOptions,
	) (*DBInstance, error)
	PromoteReadReplica(id string) (*DBInstance, error)
	DescribeDBInstanceAutomatedBackups(instanceID string) []DBInstanceAutomatedBackup
	DescribeDBInstanceAutomatedBackupsByArn(backupsArn string) []DBInstanceAutomatedBackup
	DescribeValidDBInstanceModifications(id string) (*DBInstance, error)

	// DB snapshot operations
	CreateDBSnapshot(snapshotID, instanceID string) (*DBSnapshot, error)
	DescribeDBSnapshots(snapshotID, instanceID string) ([]DBSnapshot, error)
	DeleteDBSnapshot(snapshotID string) (*DBSnapshot, error)
	CopyDBSnapshot(
		sourceSnapshotID, targetSnapshotID string,
		opts CopyDBSnapshotOptions,
	) (*DBSnapshot, error)
	RestoreDBInstanceFromDBSnapshot(
		id, snapshotID string,
		opts DBInstanceOptions,
	) (*DBInstance, error)
	RestoreDBInstanceToPointInTime(id, sourceID string, opts DBInstanceOptions) (*DBInstance, error)

	// DB subnet group operations
	CreateDBSubnetGroup(name, description, vpcID string, subnetIDs []string) (*DBSubnetGroup, error)
	DescribeDBSubnetGroups(name string) ([]DBSubnetGroup, error)
	DeleteDBSubnetGroup(name string) error

	// DB parameter group operations
	CreateDBParameterGroup(name, family, description string) (*DBParameterGroup, error)
	DescribeDBParameterGroups(name string) ([]DBParameterGroup, error)
	DeleteDBParameterGroup(name string) error
	ModifyDBParameterGroup(name string, params []DBParameter) (*DBParameterGroup, error)
	DescribeDBParameters(groupName string) ([]DBParameter, error)
	ResetDBParameterGroup(name string, resetAll bool, params []string) (*DBParameterGroup, error)
	CopyDBParameterGroup(
		sourceGroupName, targetGroupName, targetDescription string,
	) (*DBParameterGroup, error)

	// Option group operations
	CreateOptionGroup(name, engine, majorVersion, description string) (*OptionGroup, error)
	DescribeOptionGroups(name string) ([]OptionGroup, error)
	DeleteOptionGroup(name string) error
	ModifyOptionGroup(
		name string,
		optionsToAdd []OptionGroupOption,
		optionsToRemove []string,
	) (*OptionGroup, error)
	CopyOptionGroup(
		sourceGroupName, targetGroupName, targetDescription string,
	) (*OptionGroup, error)

	// DB cluster operations
	CreateDBCluster(
		id, engine, masterUser, dbName, paramGroupName string,
		port int,
		serverlessV2Cfg *ServerlessV2ScalingConfiguration,
		opts DBClusterOptions,
	) (*DBCluster, error)
	DescribeDBClusters(id string) ([]DBCluster, error)
	DeleteDBCluster(id string) (*DBCluster, error)
	DeleteDBClusterWithOptions(
		id string,
		skipFinalSnapshot bool,
		finalSnapshotID string,
		deleteAutomatedBackups bool,
	) (*DBCluster, error)
	ModifyDBCluster(id, paramGroupName string, opts DBClusterOptions) (*DBCluster, error)
	StartDBCluster(id string) (*DBCluster, error)
	StopDBCluster(id string) (*DBCluster, error)
	RestoreDBClusterFromSnapshot(clusterID, snapshotID, engine string, opts DBClusterOptions) (*DBCluster, error)
	RestoreDBClusterToPointInTime(clusterID, sourceClusterID string, opts DBClusterOptions) (*DBCluster, error)

	// DB cluster parameter group operations
	CreateDBClusterParameterGroup(name, family, description string) (*DBParameterGroup, error)
	DescribeDBClusterParameterGroups(name string) ([]DBParameterGroup, error)
	CopyDBClusterParameterGroup(
		sourceGroupName, targetGroupName, targetDescription string,
	) (*DBParameterGroup, error)

	// DB cluster snapshot operations
	CreateDBClusterSnapshot(snapshotID, clusterID string) (*DBClusterSnapshot, error)
	DescribeDBClusterSnapshots(snapshotID, clusterID string) ([]DBClusterSnapshot, error)
	DeleteDBClusterSnapshot(snapshotID string) (*DBClusterSnapshot, error)
	CopyDBClusterSnapshot(sourceSnapshotID, targetSnapshotID string, copyTags bool) (*DBClusterSnapshot, error)

	// DB cluster endpoint operations
	CreateDBClusterEndpoint(endpointID, clusterID, endpointType string) (*DBClusterEndpoint, error)
	DescribeDBClusterEndpoints(clusterID, endpointID string) ([]DBClusterEndpoint, error)
	DeleteDBClusterEndpoint(endpointID string) (*DBClusterEndpoint, error)

	// Global cluster operations
	CreateGlobalCluster(
		id, engine, engineVersion, engineLifecycleSupport string,
		storageEncrypted, deletionProtection bool,
	) (*GlobalCluster, error)
	DescribeGlobalClusters(id string) ([]GlobalCluster, error)
	DeleteGlobalCluster(id string) (*GlobalCluster, error)
	ModifyGlobalCluster(
		id, newID, engineVersion string,
		deletionProtection *bool,
		allowMajorVersionUpgrade bool,
	) (*GlobalCluster, error)

	// Export task operations
	StartExportTask(taskID, sourceARN, s3Bucket, iamRoleARN, kmsKeyID string) (*ExportTask, error)
	DescribeExportTasks(taskID string) ([]ExportTask, error)
	CancelExportTask(taskID string) (*ExportTask, error)

	// Tag operations
	AddTagsToResource(arn string, tags []Tag)
	RemoveTagsFromResource(arn string, keys []string)
	ListTagsForResource(arn string) []Tag

	// Engine and instance metadata
	DescribeDBEngineVersions(engine, engineVersion string) []DBEngineVersion
	CreateCustomDBEngineVersion(
		engine, engineVersion, description, imageID string,
	) (*CustomDBEngineVersion, error)
	DeleteCustomDBEngineVersion(engine, engineVersion string) (*CustomDBEngineVersion, error)
	ModifyCustomDBEngineVersion(
		engine, engineVersion, description, status string,
	) (*CustomDBEngineVersion, error)
	DescribeCustomDBEngineVersions(engine, engineVersion string) []CustomDBEngineVersion
	DescribeOrderableDBInstanceOptions(engine, engineVersion string) []OrderableDBInstanceOption
	DescribeDBLogFiles(instanceID string, filter LogFileFilter) ([]DBLogFile, error)
	DownloadDBLogFilePortion(
		instanceID, logFileName, marker string,
		numberOfLines int,
	) (LogFilePortion, error)

	// IAM role operations
	AddRoleToDBCluster(clusterID, roleARN, featureName string) error
	RemoveRoleFromDBCluster(clusterID, roleARN, featureName string) error
	AddRoleToDBInstance(instanceID, roleARN, featureName string) error
	RemoveRoleFromDBInstance(instanceID, roleARN, featureName string) error

	// Event subscription operations
	AddSourceIdentifierToSubscription(
		subscriptionName, sourceIdentifier string,
	) (*EventSubscription, error)
	RemoveSourceIdentifierFromSubscription(
		subscriptionName, sourceIdentifier string,
	) (*EventSubscription, error)

	// Maintenance operations
	ApplyPendingMaintenanceAction(resourceID, applyAction, optInType string) (string, error)
	BacktrackDBCluster(clusterID, backtrackTo string) (*DBClusterBacktrack, error)

	// Security group operations
	AuthorizeDBSecurityGroupIngress(groupName, cidrIP string) (*DBSecurityGroup, error)
	CreateDBSecurityGroup(name, description string) (*DBSecurityGroup, error)

	// Blue/Green Deployment operations
	CreateBlueGreenDeployment(name, source string) (*BlueGreenDeployment, error)

	// Global cluster membership operations
	RemoveFromGlobalCluster(globalClusterID, dbClusterARN string) (*GlobalCluster, error)
	FailoverGlobalCluster(globalClusterID, targetDBClusterIdentifier string) (*GlobalCluster, error)
	SwitchoverGlobalCluster(
		globalClusterID, targetDBClusterIdentifier string,
	) (*GlobalCluster, error)

	// Read replica promotion operations
	SwitchoverReadReplica(instanceID string) (*DBInstance, error)
	PromoteReadReplicaDBCluster(clusterID string) (*DBCluster, error)

	// Account and certificate operations
	DescribeAccountAttributes() []AccountAttribute
	DescribeCertificates(certID string) ([]Certificate, error)
	ModifyCertificates(certID string, removeCustomerOverride bool) (*Certificate, error)
	DescribePendingMaintenanceActions(resourceARN string) []PendingMaintenanceAction
	DescribeSourceRegions(regionName string) []SourceRegion
	DescribeDBMajorEngineVersions(engine string) []DBMajorEngineVersion
	DescribeEngineDefaultParameters(dbParameterGroupFamily string) []DBParameter
	DescribeEngineDefaultClusterParameters(dbParameterGroupFamily string) []DBParameter

	// Snapshot attribute operations
	DescribeDBSnapshotAttributes(snapshotID string) (*DBSnapshotAttributesResult, error)
	ModifyDBSnapshot(snapshotID, optionGroupName, engineVersion string) (*DBSnapshot, error)
	ModifyDBSnapshotAttribute(
		snapshotID, attributeName string,
		valuesToAdd, valuesToRemove []string,
	) (*DBSnapshotAttributesResult, error)
	DescribeDBClusterSnapshotAttributes(
		snapshotID string,
	) (*DBClusterSnapshotAttributesResult, error)
	ModifyDBClusterSnapshotAttribute(
		snapshotID, attributeName string,
		valuesToAdd, valuesToRemove []string,
	) (*DBClusterSnapshotAttributesResult, error)
	DescribeDBClusterBacktracks(clusterID string) ([]DBClusterBacktrack, error)

	// HTTP endpoint operations
	EnableHTTPEndpoint(resourceARN string) error
	DisableHTTPEndpoint(resourceARN string) error
	ModifyCurrentDBClusterCapacity(clusterID string, capacity int) (*DBCluster, error)

	// S3 restore operations
	RestoreDBInstanceFromS3(
		id, engine, dbInstanceClass, s3Bucket, s3IngestionRoleArn, sourceEngine, sourceEngineVersion string,
		paramGroupName, optionGroupName string,
		opts DBInstanceOptions,
	) (*DBInstance, error)
	RestoreDBClusterFromS3(
		id, engine, masterUsername, s3Bucket, s3IngestionRoleArn, sourceEngine, sourceEngineVersion string,
		opts DBClusterOptions,
	) (*DBCluster, error)

	// Recommendation operations
	ModifyDBRecommendation(recID, status string) (*DBRecommendation, error)
	DescribeDBRecommendations(recID, status string) []DBRecommendation

	// Reserved instance operations
	PurchaseReservedDBInstancesOffering(
		offeringID, reservedDBInstanceID string,
		dbInstanceCount int,
	) (*ReservedDBInstance, error)
	DescribeReservedDBInstances(reservedDBInstanceID, dbInstanceClass string) []ReservedDBInstance
	DescribeReservedDBInstancesOfferings(
		offeringID, dbInstanceClass string,
	) []ReservedDBInstancesOffering

	// DB Proxy operations
	CreateDBProxy(
		name, engineFamily, roleARN string,
		auth []UserAuthConfig,
		vpcSubnetIDs, vpcSecurityGroupIDs []string,
		defaultAuthScheme, endpointNetworkType, targetConnectionNetworkType string,
	) (*DBProxy, error)
	DeleteDBProxy(name string) (*DBProxy, error)
	DescribeDBProxies(name string) ([]DBProxy, error)
	ModifyDBProxy(
		name string,
		requireTLS *bool,
		idleClientTimeout *int,
		auth []UserAuthConfig,
		defaultAuthScheme string,
	) (*DBProxy, error)

	// DB Proxy target operations
	RegisterDBProxyTargets(
		proxyName, targetGroupName string,
		dbInstanceIDs, dbClusterIDs []string,
	) ([]DBProxyTarget, error)
	DeregisterDBProxyTargets(
		proxyName, targetGroupName string,
		dbInstanceIDs, dbClusterIDs []string,
	) error
	DescribeDBProxyTargets(proxyName, targetGroupName string) ([]DBProxyTarget, error)
	DescribeDBProxyTargetGroups(proxyName, targetGroupName string) ([]DBProxyTargetGroup, error)
	ModifyDBProxyTargetGroup(
		proxyName, targetGroupName, newName string,
		cfg ConnectionPoolConfig,
	) (*DBProxyTargetGroup, error)

	// DB Proxy endpoint operations
	CreateDBProxyEndpoint(
		proxyName, endpointName, targetRole string,
		vpcSubnetIDs, vpcSGIDs []string,
		endpointNetworkType string,
	) (*DBProxyEndpoint, error)
	DeleteDBProxyEndpoint(endpointName string) (*DBProxyEndpoint, error)
	DescribeDBProxyEndpoints(proxyName, endpointName string) ([]DBProxyEndpoint, error)
	ModifyDBProxyEndpoint(endpointName string, vpcSGIDs []string) (*DBProxyEndpoint, error)

	// Activity stream operations
	StartActivityStream(clusterID, kmsKeyID, mode string, engineNativeAuditFieldsIncluded bool) (*DBCluster, error)
	StopActivityStream(clusterID string) (*DBCluster, error)
	ModifyActivityStream(clusterID string, auditPolicy string) (*DBCluster, error)

	// DB Shard Group operations
	CreateDBShardGroup(
		id, clusterID string,
		maxACU, minACU float64,
		computeRedundancy int,
		publiclyAccessible bool,
	) (*DBShardGroup, error)
	DeleteDBShardGroup(id string) (*DBShardGroup, error)
	DescribeDBShardGroups(id string) ([]DBShardGroup, error)
	ModifyDBShardGroup(id string, maxACU float64, computeRedundancy int) (*DBShardGroup, error)
	RebootDBShardGroup(id string) (*DBShardGroup, error)

	// Integration operations
	CreateIntegration(
		name, sourceARN, targetARN, kmsKeyID, dataFilter, description string,
	) (*Integration, error)
	DeleteIntegration(identifier string) (*Integration, error)
	DescribeIntegrations(identifier string) ([]Integration, error)
	ModifyIntegration(identifier, dataFilter, description, newName string) (*Integration, error)

	// Tenant Database operations
	CreateTenantDatabase(instanceID, tenantDBName, masterUsername string) (*TenantDatabase, error)
	CreateTenantDatabaseWithSecret(
		instanceID, tenantDBName, masterUsername, masterPassword string, req MasterSecretRequest,
	) (*TenantDatabase, error)
	DeleteTenantDatabase(instanceID, tenantDBName string, opts DeleteTenantDatabaseOptions) (*TenantDatabase, error)
	DescribeTenantDatabases(instanceID, tenantDBName string) ([]TenantDatabase, error)
	ModifyTenantDatabase(instanceID, tenantDBName, newTenantDBName string) (*TenantDatabase, error)
	ModifyTenantDatabaseWithSecret(
		instanceID, tenantDBName, newTenantDBName, masterPassword string, req MasterSecretRequest,
	) (*TenantDatabase, error)

	// DB Cluster Automated Backup operations
	DeleteDBClusterAutomatedBackup(resourceID string) (*DBClusterAutomatedBackup, error)
	DescribeDBClusterAutomatedBackups(clusterID string) []DBClusterAutomatedBackup

	// DB Instance Automated Backup enhanced operations
	DeleteDBInstanceAutomatedBackup(resourceID string) (*DBInstanceAutomatedBackup, error)
	StartDBInstanceAutomatedBackupsReplication(
		sourceInstanceARN string,
		backupRetentionPeriod int,
	) (*DBInstanceAutomatedBackup, error)
	StopDBInstanceAutomatedBackupsReplication(
		sourceInstanceARN string,
	) (*DBInstanceAutomatedBackup, error)

	// DB Snapshot Tenant Database operations
	DescribeDBSnapshotTenantDatabases(snapshotID, instanceID string) []DBSnapshotTenantDatabase

	// Performance Insights operations
	GetPerformanceInsightsData(
		resourceID, metric string,
		startTime, endTime time.Time,
		periodInSeconds int,
	) ([]PIDataPoint, error)
}

StorageBackend defines the interface for RDS backend implementations. All mutating methods must be safe for concurrent use.

type Tag

type Tag struct {
	Key   string `json:"key"`
	Value string `json:"value"`
}

Tag is a key/value tag attached to an RDS resource.

type TaggedEntry added in v1.2.0

type TaggedEntry struct {
	Tags map[string]string
	ARN  string
}

TaggedEntry pairs a resource ARN with its tag map, for cross-service tag enumeration by the Resource Groups Tagging API (see cli.go's wireTaggingRDS). RDS keeps tags for every taggable resource kind (DB instances, clusters, snapshots, parameter groups, and more) in one flat ARN-keyed map rather than inline per typed resource, so this is a direct walk of that map instead of one per-kind loop.

type TenantDatabase

type TenantDatabase struct {
	MasterSecret
	CreatedAt            time.Time `json:"createdAt"`
	DBInstanceIdentifier string    `json:"dbInstanceIdentifier"`
	TenantDBName         string    `json:"tenantDBName"`
	MasterUsername       string    `json:"masterUsername"`
	TenantDatabaseARN    string    `json:"tenantDatabaseArn"`
	DbiResourceID        string    `json:"dbiResourceId"`
	Status               string    `json:"status"`
}

TenantDatabase represents a tenant database within a multi-tenant RDS instance.

type UserAuthConfig

type UserAuthConfig struct {
	AuthScheme  string `json:"authScheme"`
	Description string `json:"description"`
	IAMAuth     string `json:"iamAuth"`
	SecretARN   string `json:"secretArn"`
	UserName    string `json:"userName"`
}

UserAuthConfig holds authentication details for a DB proxy.

type VpcSecurityGroupMembership

type VpcSecurityGroupMembership struct {
	VpcSecurityGroupID string `json:"vpcSecurityGroupId"`
	Status             string `json:"status"`
}

VpcSecurityGroupMembership represents a VPC security group association.

Source Files

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL