# frozen_string_literal: true
# WARNING ABOUT GENERATED CODE
#
# This file is generated. See the contributing guide for more information:
# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
#
# WARNING ABOUT GENERATED CODE
module Aws::RDS
class DBInstance
extend Aws::Deprecations
# @overload def initialize(id, options = {})
# @param [String] id
# @option options [Client] :client
# @overload def initialize(options = {})
# @option options [required, String] :id
# @option options [Client] :client
def initialize(*args)
options = Hash === args.last ? args.pop.dup : {}
@id = extract_id(args, options)
@data = options.delete(:data)
@client = options.delete(:client) || Client.new(options)
@waiter_block_warned = false
end
# @!group Read-Only Attributes
# @return [String]
def id
@id
end
alias :db_instance_identifier :id
# Contains the name of the compute and memory capacity class of the DB
# instance.
# @return [String]
def db_instance_class
data[:db_instance_class]
end
# The name of the database engine to be used for this DB instance.
# @return [String]
def engine
data[:engine]
end
# Specifies the current state of this database.
#
# For information about DB instance statuses, see [Viewing DB instance
# status][1] in the *Amazon RDS User Guide.*
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/accessing-monitoring.html#Overview.DBInstance.Status
# @return [String]
def db_instance_status
data[:db_instance_status]
end
# The time when a stopped DB instance is restarted automatically.
# @return [Time]
def automatic_restart_time
data[:automatic_restart_time]
end
# Contains the master username for the DB instance.
# @return [String]
def master_username
data[:master_username]
end
# The meaning of this parameter differs according to the database engine
# you use.
#
# **MySQL, MariaDB, SQL Server, PostgreSQL**
#
# Contains the name of the initial database of this instance that was
# provided at create time, if one was specified when the DB instance was
# created. This same name is returned for the life of the DB instance.
#
# Type: String
#
# **Oracle**
#
# Contains the Oracle System ID (SID) of the created DB instance. Not
# shown when the returned parameters do not apply to an Oracle DB
# instance.
# @return [String]
def db_name
data[:db_name]
end
# Specifies the connection endpoint.
#
# The endpoint might not be shown for instances whose status is
# `creating`.
#
#
# @return [Types::Endpoint]
def endpoint
data[:endpoint]
end
# Specifies the allocated storage size specified in gibibytes (GiB).
# @return [Integer]
def allocated_storage
data[:allocated_storage]
end
# Provides the date and time the DB instance was created.
# @return [Time]
def instance_create_time
data[:instance_create_time]
end
# Specifies the daily time range during which automated backups are
# created if automated backups are enabled, as determined by the
# `BackupRetentionPeriod`.
# @return [String]
def preferred_backup_window
data[:preferred_backup_window]
end
# Specifies the number of days for which automatic DB snapshots are
# retained.
# @return [Integer]
def backup_retention_period
data[:backup_retention_period]
end
# A list of DB security group elements containing `DBSecurityGroup.Name`
# and `DBSecurityGroup.Status` subelements.
# @return [Array]
def db_security_groups
data[:db_security_groups]
end
# Provides a list of VPC security group elements that the DB instance
# belongs to.
# @return [Array]
def vpc_security_groups
data[:vpc_security_groups]
end
# Provides the list of DB parameter groups applied to this DB instance.
# @return [Array]
def db_parameter_groups
data[:db_parameter_groups]
end
# Specifies the name of the Availability Zone the DB instance is located
# in.
# @return [String]
def availability_zone
data[:availability_zone]
end
# Specifies information on the subnet group associated with the DB
# instance, including the name, description, and subnets in the subnet
# group.
# @return [Types::DBSubnetGroup]
def db_subnet_group
data[:db_subnet_group]
end
# Specifies the weekly time range during which system maintenance can
# occur, in Universal Coordinated Time (UTC).
# @return [String]
def preferred_maintenance_window
data[:preferred_maintenance_window]
end
# A value that specifies that changes to the DB instance are pending.
# This element is only included when changes are pending. Specific
# changes are identified by subelements.
# @return [Types::PendingModifiedValues]
def pending_modified_values
data[:pending_modified_values]
end
# Specifies the latest time to which a database can be restored with
# point-in-time restore.
# @return [Time]
def latest_restorable_time
data[:latest_restorable_time]
end
# Specifies if the DB instance is a Multi-AZ deployment. This setting
# doesn't apply to RDS Custom.
# @return [Boolean]
def multi_az
data[:multi_az]
end
# Indicates the database engine version.
# @return [String]
def engine_version
data[:engine_version]
end
# A value that indicates that minor version patches are applied
# automatically.
# @return [Boolean]
def auto_minor_version_upgrade
data[:auto_minor_version_upgrade]
end
# Contains the identifier of the source DB instance if this DB instance
# is a read replica.
# @return [String]
def read_replica_source_db_instance_identifier
data[:read_replica_source_db_instance_identifier]
end
# Contains one or more identifiers of the read replicas associated with
# this DB instance.
# @return [Array]
def read_replica_db_instance_identifiers
data[:read_replica_db_instance_identifiers]
end
# Contains one or more identifiers of Aurora DB clusters to which the
# RDS DB instance is replicated as a read replica. For example, when you
# create an Aurora read replica of an RDS for MySQL DB instance, the
# Aurora MySQL DB cluster for the Aurora read replica is shown. This
# output doesn't contain information about cross-Region Aurora read
# replicas.
#
# Currently, each RDS DB instance can have only one Aurora read replica.
#
#
# @return [Array]
def read_replica_db_cluster_identifiers
data[:read_replica_db_cluster_identifiers]
end
# The open mode of an Oracle read replica. The default is
# `open-read-only`. For more information, see [Working with Oracle Read
# Replicas for Amazon RDS][1] in the *Amazon RDS User Guide*.
#
# This attribute is only supported in RDS for Oracle.
#
#
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html
# @return [String]
def replica_mode
data[:replica_mode]
end
# License model information for this DB instance. This setting doesn't
# apply to RDS Custom.
# @return [String]
def license_model
data[:license_model]
end
# Specifies the Provisioned IOPS (I/O operations per second) value.
# @return [Integer]
def iops
data[:iops]
end
# Provides the list of option group memberships for this DB instance.
# @return [Array]
def option_group_memberships
data[:option_group_memberships]
end
# If present, specifies the name of the character set that this instance
# is associated with.
# @return [String]
def character_set_name
data[:character_set_name]
end
# The name of the NCHAR character set for the Oracle DB instance. This
# character set specifies the Unicode encoding for data stored in table
# columns of type NCHAR, NCLOB, or NVARCHAR2.
# @return [String]
def nchar_character_set_name
data[:nchar_character_set_name]
end
# If present, specifies the name of the secondary Availability Zone for
# a DB instance with multi-AZ support.
# @return [String]
def secondary_availability_zone
data[:secondary_availability_zone]
end
# Specifies the accessibility options for the DB instance.
#
# When the DB cluster is publicly accessible, its Domain Name System
# (DNS) endpoint resolves to the private IP address from within the DB
# cluster's virtual private cloud (VPC). It resolves to the public IP
# address from outside of the DB cluster's VPC. Access to the DB
# cluster is ultimately controlled by the security group it uses. That
# public access isn't permitted if the security group assigned to the
# DB cluster doesn't permit it.
#
# When the DB instance isn't publicly accessible, it is an internal DB
# instance with a DNS name that resolves to a private IP address.
#
# For more information, see CreateDBInstance.
# @return [Boolean]
def publicly_accessible
data[:publicly_accessible]
end
# The status of a read replica. If the instance isn't a read replica,
# this is blank.
# @return [Array]
def status_infos
data[:status_infos]
end
# Specifies the storage type associated with DB instance.
# @return [String]
def storage_type
data[:storage_type]
end
# The ARN from the key store with which the instance is associated for
# TDE encryption.
# @return [String]
def tde_credential_arn
data[:tde_credential_arn]
end
# Specifies the port that the DB instance listens on. If the DB instance
# is part of a DB cluster, this can be a different port than the DB
# cluster port.
# @return [Integer]
def db_instance_port
data[:db_instance_port]
end
# If the DB instance is a member of a DB cluster, contains the name of
# the DB cluster that the DB instance is a member of.
# @return [String]
def db_cluster_identifier
data[:db_cluster_identifier]
end
# Specifies whether the DB instance is encrypted.
# @return [Boolean]
def storage_encrypted
data[:storage_encrypted]
end
# If `StorageEncrypted` is true, the Amazon Web Services KMS key
# identifier for the encrypted DB instance.
#
# The Amazon Web Services KMS key identifier is the key ARN, key ID,
# alias ARN, or alias name for the KMS key.
# @return [String]
def kms_key_id
data[:kms_key_id]
end
# The Amazon Web Services Region-unique, immutable identifier for the DB
# instance. This identifier is found in Amazon Web Services CloudTrail
# log entries whenever the Amazon Web Services KMS key for the DB
# instance is accessed.
# @return [String]
def dbi_resource_id
data[:dbi_resource_id]
end
# The identifier of the CA certificate for this DB instance.
# @return [String]
def ca_certificate_identifier
data[:ca_certificate_identifier]
end
# The Active Directory Domain membership records associated with the DB
# instance.
# @return [Array]
def domain_memberships
data[:domain_memberships]
end
# Specifies whether tags are copied from the DB instance to snapshots of
# the DB instance.
#
# **Amazon Aurora**
#
# Not applicable. Copying tags to snapshots is managed by the DB
# cluster. Setting this value for an Aurora DB instance has no effect on
# the DB cluster setting. For more information, see `DBCluster`.
# @return [Boolean]
def copy_tags_to_snapshot
data[:copy_tags_to_snapshot]
end
# The interval, in seconds, between points when Enhanced Monitoring
# metrics are collected for the DB instance.
# @return [Integer]
def monitoring_interval
data[:monitoring_interval]
end
# The Amazon Resource Name (ARN) of the Amazon CloudWatch Logs log
# stream that receives the Enhanced Monitoring metrics data for the DB
# instance.
# @return [String]
def enhanced_monitoring_resource_arn
data[:enhanced_monitoring_resource_arn]
end
# The ARN for the IAM role that permits RDS to send Enhanced Monitoring
# metrics to Amazon CloudWatch Logs.
# @return [String]
def monitoring_role_arn
data[:monitoring_role_arn]
end
# A value that specifies the order in which an Aurora Replica is
# promoted to the primary instance after a failure of the existing
# primary instance. For more information, see [ Fault Tolerance for an
# Aurora DB Cluster][1] in the *Amazon Aurora User Guide*.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.FaultTolerance
# @return [Integer]
def promotion_tier
data[:promotion_tier]
end
# The Amazon Resource Name (ARN) for the DB instance.
# @return [String]
def db_instance_arn
data[:db_instance_arn]
end
# The time zone of the DB instance. In most cases, the `Timezone`
# element is empty. `Timezone` content appears only for Microsoft SQL
# Server DB instances that were created with a time zone specified.
# @return [String]
def timezone
data[:timezone]
end
# True if mapping of Amazon Web Services Identity and Access Management
# (IAM) accounts to database accounts is enabled, and otherwise false.
#
# IAM database authentication can be enabled for the following database
# engines
#
# * For MySQL 5.6, minor version 5.6.34 or higher
#
# * For MySQL 5.7, minor version 5.7.16 or higher
#
# * Aurora 5.6 or higher. To enable IAM database authentication for
# Aurora, see DBCluster Type.
# @return [Boolean]
def iam_database_authentication_enabled
data[:iam_database_authentication_enabled]
end
# True if Performance Insights is enabled for the DB instance, and
# otherwise false.
# @return [Boolean]
def performance_insights_enabled
data[:performance_insights_enabled]
end
# The Amazon Web Services KMS key identifier for encryption of
# Performance Insights data.
#
# The Amazon Web Services KMS key identifier is the key ARN, key ID,
# alias ARN, or alias name for the KMS key.
# @return [String]
def performance_insights_kms_key_id
data[:performance_insights_kms_key_id]
end
# The amount of time, in days, to retain Performance Insights data.
# Valid values are 7 or 731 (2 years).
# @return [Integer]
def performance_insights_retention_period
data[:performance_insights_retention_period]
end
# A list of log types that this DB instance is configured to export to
# CloudWatch Logs.
#
# Log types vary by DB engine. For information about the log types for
# each DB engine, see [Amazon RDS Database Log Files][1] in the *Amazon
# RDS User Guide.*
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html
# @return [Array]
def enabled_cloudwatch_logs_exports
data[:enabled_cloudwatch_logs_exports]
end
# The number of CPU cores and the number of threads per core for the DB
# instance class of the DB instance.
# @return [Array]
def processor_features
data[:processor_features]
end
# Indicates if the DB instance has deletion protection enabled. The
# database can't be deleted when deletion protection is enabled. For
# more information, see [ Deleting a DB Instance][1].
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html
# @return [Boolean]
def deletion_protection
data[:deletion_protection]
end
# The Amazon Web Services Identity and Access Management (IAM) roles
# associated with the DB instance.
# @return [Array]
def associated_roles
data[:associated_roles]
end
# Specifies the listener connection endpoint for SQL Server Always On.
# @return [Types::Endpoint]
def listener_endpoint
data[:listener_endpoint]
end
# The upper limit in gibibytes (GiB) to which Amazon RDS can
# automatically scale the storage of the DB instance.
# @return [Integer]
def max_allocated_storage
data[:max_allocated_storage]
end
# A list of tags. For more information, see [Tagging Amazon RDS
# Resources][1] in the *Amazon RDS User Guide.*
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html
# @return [Array]
def tag_list
data[:tag_list]
end
# The list of replicated automated backups associated with the DB
# instance.
# @return [Array]
def db_instance_automated_backups_replications
data[:db_instance_automated_backups_replications]
end
# Specifies whether a customer-owned IP address (CoIP) is enabled for an
# RDS on Outposts DB instance.
#
# A CoIP provides local or external connectivity to resources in
# your Outpost subnets through your on-premises network. For some use
# cases, a CoIP can provide lower latency for connections to the DB
# instance from outside of its virtual private cloud (VPC) on your local
# network.
#
# For more information about RDS on Outposts, see [Working with Amazon
# RDS on Amazon Web Services Outposts][1] in the *Amazon RDS User
# Guide*.
#
# For more information about CoIPs, see [Customer-owned IP addresses][2]
# in the *Amazon Web Services Outposts User Guide*.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html
# [2]: https://docs.aws.amazon.com/outposts/latest/userguide/outposts-networking-components.html#ip-addressing
# @return [Boolean]
def customer_owned_ip_enabled
data[:customer_owned_ip_enabled]
end
# The Amazon Resource Name (ARN) of the recovery point in Amazon Web
# Services Backup.
# @return [String]
def aws_backup_recovery_point_arn
data[:aws_backup_recovery_point_arn]
end
# The status of the database activity stream.
# @return [String]
def activity_stream_status
data[:activity_stream_status]
end
# The Amazon Web Services KMS key identifier used for encrypting
# messages in the database activity stream. The Amazon Web Services KMS
# key identifier is the key ARN, key ID, alias ARN, or alias name for
# the KMS key.
# @return [String]
def activity_stream_kms_key_id
data[:activity_stream_kms_key_id]
end
# The name of the Amazon Kinesis data stream used for the database
# activity stream.
# @return [String]
def activity_stream_kinesis_stream_name
data[:activity_stream_kinesis_stream_name]
end
# The mode of the database activity stream. Database events such as a
# change or access generate an activity stream event. RDS for Oracle
# always handles these events asynchronously.
# @return [String]
def activity_stream_mode
data[:activity_stream_mode]
end
# Indicates whether engine-native audit fields are included in the
# database activity stream.
# @return [Boolean]
def activity_stream_engine_native_audit_fields_included
data[:activity_stream_engine_native_audit_fields_included]
end
# The automation mode of the RDS Custom DB instance: `full` or `all
# paused`. If `full`, the DB instance automates monitoring and instance
# recovery. If `all paused`, the instance pauses automation for the
# duration set by `--resume-full-automation-mode-minutes`.
# @return [String]
def automation_mode
data[:automation_mode]
end
# The number of minutes to pause the automation. When the time period
# ends, RDS Custom resumes full automation. The minimum value is 60
# (default). The maximum value is 1,440.
# @return [Time]
def resume_full_automation_mode_time
data[:resume_full_automation_mode_time]
end
# The instance profile associated with the underlying Amazon EC2
# instance of an RDS Custom DB instance. The instance profile must meet
# the following requirements:
#
# * The profile must exist in your account.
#
# * The profile must have an IAM role that Amazon EC2 has permissions to
# assume.
#
# * The instance profile name and the associated IAM role name must
# start with the prefix `AWSRDSCustom`.
#
# For the list of permissions required for the IAM role, see [ Configure
# IAM and your VPC][1] in the *Amazon Relational Database Service User
# Guide*.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-setup-orcl.html#custom-setup-orcl.iam-vpc
# @return [String]
def custom_iam_instance_profile
data[:custom_iam_instance_profile]
end
# Specifies where automated backups and manual snapshots are stored:
# Amazon Web Services Outposts or the Amazon Web Services Region.
# @return [String]
def backup_target
data[:backup_target]
end
# @!endgroup
# @return [Client]
def client
@client
end
# Loads, or reloads {#data} for the current {DBInstance}.
# Returns `self` making it possible to chain methods.
#
# db_instance.reload.data
#
# @return [self]
def load
resp = @client.describe_db_instances(db_instance_identifier: @id)
@data = resp.db_instances[0]
self
end
alias :reload :load
# @return [Types::DBInstance]
# Returns the data for this {DBInstance}. Calls
# {Client#describe_db_instances} if {#data_loaded?} is `false`.
def data
load unless @data
@data
end
# @return [Boolean]
# Returns `true` if this resource is loaded. Accessing attributes or
# {#data} on an unloaded resource will trigger a call to {#load}.
def data_loaded?
!!@data
end
# @deprecated Use [Aws::RDS::Client] #wait_until instead
#
# Waiter polls an API operation until a resource enters a desired
# state.
#
# @note The waiting operation is performed on a copy. The original resource
# remains unchanged.
#
# ## Basic Usage
#
# Waiter will polls until it is successful, it fails by
# entering a terminal state, or until a maximum number of attempts
# are made.
#
# # polls in a loop until condition is true
# resource.wait_until(options) {|resource| condition}
#
# ## Example
#
# instance.wait_until(max_attempts:10, delay:5) do |instance|
# instance.state.name == 'running'
# end
#
# ## Configuration
#
# You can configure the maximum number of polling attempts, and the
# delay (in seconds) between each polling attempt. The waiting condition is
# set by passing a block to {#wait_until}:
#
# # poll for ~25 seconds
# resource.wait_until(max_attempts:5,delay:5) {|resource|...}
#
# ## Callbacks
#
# You can be notified before each polling attempt and before each
# delay. If you throw `:success` or `:failure` from these callbacks,
# it will terminate the waiter.
#
# started_at = Time.now
# # poll for 1 hour, instead of a number of attempts
# proc = Proc.new do |attempts, response|
# throw :failure if Time.now - started_at > 3600
# end
#
# # disable max attempts
# instance.wait_until(before_wait:proc, max_attempts:nil) {...}
#
# ## Handling Errors
#
# When a waiter is successful, it returns the Resource. When a waiter
# fails, it raises an error.
#
# begin
# resource.wait_until(...)
# rescue Aws::Waiters::Errors::WaiterFailed
# # resource did not enter the desired state in time
# end
#
# @yieldparam [Resource] resource to be used in the waiting condition.
#
# @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter
# terminates because the waiter has entered a state that it will not
# transition out of, preventing success.
#
# yet successful.
#
# @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is
# encountered while polling for a resource that is not expected.
#
# @raise [NotImplementedError] Raised when the resource does not
#
# @option options [Integer] :max_attempts (10) Maximum number of
# attempts
# @option options [Integer] :delay (10) Delay between each
# attempt in seconds
# @option options [Proc] :before_attempt (nil) Callback
# invoked before each attempt
# @option options [Proc] :before_wait (nil) Callback
# invoked before each wait
# @return [Resource] if the waiter was successful
def wait_until(options = {}, &block)
self_copy = self.dup
attempts = 0
options[:max_attempts] = 10 unless options.key?(:max_attempts)
options[:delay] ||= 10
options[:poller] = Proc.new do
attempts += 1
if block.call(self_copy)
[:success, self_copy]
else
self_copy.reload unless attempts == options[:max_attempts]
:retry
end
end
Aws::Waiters::Waiter.new(options).wait({})
end
# @!group Actions
# @example Request syntax with placeholder values
#
# dbinstance = db_instance.create({
# db_name: "String",
# allocated_storage: 1,
# db_instance_class: "String", # required
# engine: "String", # required
# master_username: "String",
# master_user_password: "String",
# db_security_groups: ["String"],
# vpc_security_group_ids: ["String"],
# availability_zone: "String",
# db_subnet_group_name: "String",
# preferred_maintenance_window: "String",
# db_parameter_group_name: "String",
# backup_retention_period: 1,
# preferred_backup_window: "String",
# port: 1,
# multi_az: false,
# engine_version: "String",
# auto_minor_version_upgrade: false,
# license_model: "String",
# iops: 1,
# option_group_name: "String",
# character_set_name: "String",
# nchar_character_set_name: "String",
# publicly_accessible: false,
# tags: [
# {
# key: "String",
# value: "String",
# },
# ],
# db_cluster_identifier: "String",
# storage_type: "String",
# tde_credential_arn: "String",
# tde_credential_password: "String",
# storage_encrypted: false,
# kms_key_id: "String",
# domain: "String",
# copy_tags_to_snapshot: false,
# monitoring_interval: 1,
# monitoring_role_arn: "String",
# domain_iam_role_name: "String",
# promotion_tier: 1,
# timezone: "String",
# enable_iam_database_authentication: false,
# enable_performance_insights: false,
# performance_insights_kms_key_id: "String",
# performance_insights_retention_period: 1,
# enable_cloudwatch_logs_exports: ["String"],
# processor_features: [
# {
# name: "String",
# value: "String",
# },
# ],
# deletion_protection: false,
# max_allocated_storage: 1,
# enable_customer_owned_ip: false,
# custom_iam_instance_profile: "String",
# backup_target: "String",
# })
# @param [Hash] options ({})
# @option options [String] :db_name
# The meaning of this parameter differs according to the database engine
# you use.
#
# **MySQL**
#
# The name of the database to create when the DB instance is created. If
# this parameter isn't specified, no database is created in the DB
# instance.
#
# Constraints:
#
# * Must contain 1 to 64 letters or numbers.
#
# * Must begin with a letter. Subsequent characters can be letters,
# underscores, or digits (0-9).
#
# * Can't be a word reserved by the specified database engine
#
# **MariaDB**
#
# The name of the database to create when the DB instance is created. If
# this parameter isn't specified, no database is created in the DB
# instance.
#
# Constraints:
#
# * Must contain 1 to 64 letters or numbers.
#
# * Must begin with a letter. Subsequent characters can be letters,
# underscores, or digits (0-9).
#
# * Can't be a word reserved by the specified database engine
#
# **PostgreSQL**
#
# The name of the database to create when the DB instance is created. If
# this parameter isn't specified, a database named `postgres` is
# created in the DB instance.
#
# Constraints:
#
# * Must contain 1 to 63 letters, numbers, or underscores.
#
# * Must begin with a letter. Subsequent characters can be letters,
# underscores, or digits (0-9).
#
# * Can't be a word reserved by the specified database engine
#
# **Oracle**
#
# The Oracle System ID (SID) of the created DB instance. If you specify
# `null`, the default value `ORCL` is used. You can't specify the
# string NULL, or any other reserved word, for `DBName`.
#
# Default: `ORCL`
#
# Constraints:
#
# * Can't be longer than 8 characters
#
# ^
#
# **Amazon RDS Custom for Oracle**
#
# The Oracle System ID (SID) of the created RDS Custom DB instance. If
# you don't specify a value, the default value is `ORCL`.
#
# Default: `ORCL`
#
# Constraints:
#
# * It must contain 1 to 8 alphanumeric characters.
#
# * It must contain a letter.
#
# * It can't be a word reserved by the database engine.
#
# **Amazon RDS Custom for SQL Server**
#
# Not applicable. Must be null.
#
# **SQL Server**
#
# Not applicable. Must be null.
#
# **Amazon Aurora MySQL**
#
# The name of the database to create when the primary DB instance of the
# Aurora MySQL DB cluster is created. If this parameter isn't specified
# for an Aurora MySQL DB cluster, no database is created in the DB
# cluster.
#
# Constraints:
#
# * It must contain 1 to 64 alphanumeric characters.
#
# * It can't be a word reserved by the database engine.
#
# **Amazon Aurora PostgreSQL**
#
# The name of the database to create when the primary DB instance of the
# Aurora PostgreSQL DB cluster is created. If this parameter isn't
# specified for an Aurora PostgreSQL DB cluster, a database named
# `postgres` is created in the DB cluster.
#
# Constraints:
#
# * It must contain 1 to 63 alphanumeric characters.
#
# * It must begin with a letter or an underscore. Subsequent characters
# can be letters, underscores, or digits (0 to 9).
#
# * It can't be a word reserved by the database engine.
# @option options [Integer] :allocated_storage
# The amount of storage in gibibytes (GiB) to allocate for the DB
# instance.
#
# Type: Integer
#
# **Amazon Aurora**
#
# Not applicable. Aurora cluster volumes automatically grow as the
# amount of data in your database increases, though you are only charged
# for the space that you use in an Aurora cluster volume.
#
# **Amazon RDS Custom**
#
# Constraints to the amount of storage for each storage type are the
# following:
#
# * General Purpose (SSD) storage (gp2): Must be an integer from 40 to
# 65536 for RDS Custom for Oracle, 16384 for RDS Custom for SQL
# Server.
#
# * Provisioned IOPS storage (io1): Must be an integer from 40 to 65536
# for RDS Custom for Oracle, 16384 for RDS Custom for SQL Server.
#
# **MySQL**
#
# Constraints to the amount of storage for each storage type are the
# following:
#
# * General Purpose (SSD) storage (gp2): Must be an integer from 20 to
# 65536.
#
# * Provisioned IOPS storage (io1): Must be an integer from 100 to
# 65536.
#
# * Magnetic storage (standard): Must be an integer from 5 to 3072.
#
# **MariaDB**
#
# Constraints to the amount of storage for each storage type are the
# following:
#
# * General Purpose (SSD) storage (gp2): Must be an integer from 20 to
# 65536.
#
# * Provisioned IOPS storage (io1): Must be an integer from 100 to
# 65536.
#
# * Magnetic storage (standard): Must be an integer from 5 to 3072.
#
# **PostgreSQL**
#
# Constraints to the amount of storage for each storage type are the
# following:
#
# * General Purpose (SSD) storage (gp2): Must be an integer from 20 to
# 65536.
#
# * Provisioned IOPS storage (io1): Must be an integer from 100 to
# 65536.
#
# * Magnetic storage (standard): Must be an integer from 5 to 3072.
#
# **Oracle**
#
# Constraints to the amount of storage for each storage type are the
# following:
#
# * General Purpose (SSD) storage (gp2): Must be an integer from 20 to
# 65536.
#
# * Provisioned IOPS storage (io1): Must be an integer from 100 to
# 65536.
#
# * Magnetic storage (standard): Must be an integer from 10 to 3072.
#
# **SQL Server**
#
# Constraints to the amount of storage for each storage type are the
# following:
#
# * General Purpose (SSD) storage (gp2):
#
# * Enterprise and Standard editions: Must be an integer from 20 to
# 16384.
#
# * Web and Express editions: Must be an integer from 20 to 16384.
#
# * Provisioned IOPS storage (io1):
#
# * Enterprise and Standard editions: Must be an integer from 100 to
# 16384.
#
# * Web and Express editions: Must be an integer from 100 to 16384.
#
# * Magnetic storage (standard):
#
# * Enterprise and Standard editions: Must be an integer from 20 to
# 1024.
#
# * Web and Express editions: Must be an integer from 20 to 1024.
# @option options [required, String] :db_instance_class
# The compute and memory capacity of the DB instance, for example
# db.m4.large. Not all DB instance classes are available in all Amazon
# Web Services Regions, or for all database engines. For the full list
# of DB instance classes, and availability for your engine, see [DB
# Instance Class][1] in the *Amazon RDS User Guide.*
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html
# @option options [required, String] :engine
# The name of the database engine to be used for this instance.
#
# Not every database engine is available for every Amazon Web Services
# Region.
#
# Valid Values:
#
# * `aurora` (for MySQL 5.6-compatible Aurora)
#
# * `aurora-mysql` (for MySQL 5.7-compatible and MySQL 8.0-compatible
# Aurora)
#
# * `aurora-postgresql`
#
# * `custom-oracle-ee (for RDS Custom for Oracle instances)`
#
# * `custom-sqlserver-ee (for RDS Custom for SQL Server instances)`
#
# * `custom-sqlserver-se (for RDS Custom for SQL Server instances)`
#
# * `custom-sqlserver-web (for RDS Custom for SQL Server instances)`
#
# * `mariadb`
#
# * `mysql`
#
# * `oracle-ee`
#
# * `oracle-ee-cdb`
#
# * `oracle-se2`
#
# * `oracle-se2-cdb`
#
# * `postgres`
#
# * `sqlserver-ee`
#
# * `sqlserver-se`
#
# * `sqlserver-ex`
#
# * `sqlserver-web`
# @option options [String] :master_username
# The name for the master user.
#
# **Amazon Aurora**
#
# Not applicable. The name for the master user is managed by the DB
# cluster.
#
# **Amazon RDS**
#
# Constraints:
#
# * Required.
#
# * Must be 1 to 16 letters, numbers, or underscores.
#
# * First character must be a letter.
#
# * Can't be a reserved word for the chosen database engine.
# @option options [String] :master_user_password
# The password for the master user. The password can include any
# printable ASCII character except "/", """, or "@".
#
# **Amazon Aurora**
#
# Not applicable. The password for the master user is managed by the DB
# cluster.
#
# **MariaDB**
#
# Constraints: Must contain from 8 to 41 characters.
#
# **Microsoft SQL Server**
#
# Constraints: Must contain from 8 to 128 characters.
#
# **MySQL**
#
# Constraints: Must contain from 8 to 41 characters.
#
# **Oracle**
#
# Constraints: Must contain from 8 to 30 characters.
#
# **PostgreSQL**
#
# Constraints: Must contain from 8 to 128 characters.
# @option options [Array] :db_security_groups
# A list of DB security groups to associate with this DB instance.
#
# Default: The default DB security group for the database engine.
# @option options [Array] :vpc_security_group_ids
# A list of Amazon EC2 VPC security groups to associate with this DB
# instance.
#
# **Amazon Aurora**
#
# Not applicable. The associated list of EC2 VPC security groups is
# managed by the DB cluster.
#
# Default: The default EC2 VPC security group for the DB subnet group's
# VPC.
# @option options [String] :availability_zone
# The Availability Zone (AZ) where the database will be created. For
# information on Amazon Web Services Regions and Availability Zones, see
# [Regions and Availability Zones][1].
#
# **Amazon Aurora**
#
# Not applicable. Availability Zones are managed by the DB cluster.
#
# Default: A random, system-chosen Availability Zone in the endpoint's
# Amazon Web Services Region.
#
# Example: `us-east-1d`
#
# Constraint: The `AvailabilityZone` parameter can't be specified if
# the DB instance is a Multi-AZ deployment. The specified Availability
# Zone must be in the same Amazon Web Services Region as the current
# endpoint.
#
# If you're creating a DB instance in an RDS on VMware environment,
# specify the identifier of the custom Availability Zone to create the
# DB instance in.
#
# For more information about RDS on VMware, see the [ RDS on VMware User
# Guide.][2]
#
#
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html
# [2]: https://docs.aws.amazon.com/AmazonRDS/latest/RDSonVMwareUserGuide/rds-on-vmware.html
# @option options [String] :db_subnet_group_name
# A DB subnet group to associate with this DB instance.
#
# If there is no DB subnet group, then it is a non-VPC DB instance.
# @option options [String] :preferred_maintenance_window
# The time range each week during which system maintenance can occur, in
# Universal Coordinated Time (UTC). For more information, see [Amazon
# RDS Maintenance Window][1].
#
# Format: `ddd:hh24:mi-ddd:hh24:mi`
#
# The default is a 30-minute window selected at random from an 8-hour
# block of time for each Amazon Web Services Region, occurring on a
# random day of the week.
#
# Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.
#
# Constraints: Minimum 30-minute window.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#Concepts.DBMaintenance
# @option options [String] :db_parameter_group_name
# The name of the DB parameter group to associate with this DB instance.
# If you do not specify a value, then the default DB parameter group for
# the specified DB engine and version is used.
#
# This setting doesn't apply to RDS Custom.
#
# Constraints:
#
# * Must be 1 to 255 letters, numbers, or hyphens.
#
# * First character must be a letter
#
# * Can't end with a hyphen or contain two consecutive hyphens
# @option options [Integer] :backup_retention_period
# The number of days for which automated backups are retained. Setting
# this parameter to a positive number enables backups. Setting this
# parameter to 0 disables automated backups.
#
# **Amazon Aurora**
#
# Not applicable. The retention period for automated backups is managed
# by the DB cluster.
#
# Default: 1
#
# Constraints:
#
# * Must be a value from 0 to 35
#
# * Can't be set to 0 if the DB instance is a source to read replicas
#
# * Can't be set to 0 or 35 for an RDS Custom for Oracle DB instance
# @option options [String] :preferred_backup_window
# The daily time range during which automated backups are created if
# automated backups are enabled, using the `BackupRetentionPeriod`
# parameter. The default is a 30-minute window selected at random from
# an 8-hour block of time for each Amazon Web Services Region. For more
# information, see [Backup window][1] in the *Amazon RDS User Guide*.
#
# **Amazon Aurora**
#
# Not applicable. The daily time range for creating automated backups is
# managed by the DB cluster.
#
# Constraints:
#
# * Must be in the format `hh24:mi-hh24:mi`.
#
# * Must be in Universal Coordinated Time (UTC).
#
# * Must not conflict with the preferred maintenance window.
#
# * Must be at least 30 minutes.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#USER_WorkingWithAutomatedBackups.BackupWindow
# @option options [Integer] :port
# The port number on which the database accepts connections.
#
# **MySQL**
#
# Default: `3306`
#
# Valid values: `1150-65535`
#
# Type: Integer
#
# **MariaDB**
#
# Default: `3306`
#
# Valid values: `1150-65535`
#
# Type: Integer
#
# **PostgreSQL**
#
# Default: `5432`
#
# Valid values: `1150-65535`
#
# Type: Integer
#
# **Oracle**
#
# Default: `1521`
#
# Valid values: `1150-65535`
#
# **SQL Server**
#
# Default: `1433`
#
# Valid values: `1150-65535` except `1234`, `1434`, `3260`, `3343`,
# `3389`, `47001`, and `49152-49156`.
#
# **Amazon Aurora**
#
# Default: `3306`
#
# Valid values: `1150-65535`
#
# Type: Integer
# @option options [Boolean] :multi_az
# A value that indicates whether the DB instance is a Multi-AZ
# deployment. You can't set the `AvailabilityZone` parameter if the DB
# instance is a Multi-AZ deployment.
#
# This setting doesn't apply to RDS Custom.
# @option options [String] :engine_version
# The version number of the database engine to use.
#
# For a list of valid engine versions, use the
# `DescribeDBEngineVersions` action.
#
# The following are the database engines and links to information about
# the major and minor versions that are available with Amazon RDS. Not
# every database engine is available for every Amazon Web Services
# Region.
#
# **Amazon Aurora**
#
# Not applicable. The version number of the database engine to be used
# by the DB instance is managed by the DB cluster.
#
# **Amazon RDS Custom for Oracle**
#
# A custom engine version (CEV) that you have previously created. This
# setting is required for RDS Custom for Oracle. The CEV name has the
# following format: `19.customized_string `. An example identifier is
# `19.my_cev1`. For more information, see [ Creating an RDS Custom for
# Oracle DB instance][1] in the *Amazon RDS User Guide.*.
#
# **Amazon RDS Custom for SQL Server**
#
# See [RDS Custom for SQL Server general requirements][2] in the *Amazon
# RDS User Guide.*
#
# **MariaDB**
#
# For information, see [MariaDB on Amazon RDS Versions][3] in the
# *Amazon RDS User Guide.*
#
# **Microsoft SQL Server**
#
# For information, see [Microsoft SQL Server Versions on Amazon RDS][4]
# in the *Amazon RDS User Guide.*
#
# **MySQL**
#
# For information, see [MySQL on Amazon RDS Versions][5] in the *Amazon
# RDS User Guide.*
#
# **Oracle**
#
# For information, see [Oracle Database Engine Release Notes][6] in the
# *Amazon RDS User Guide.*
#
# **PostgreSQL**
#
# For information, see [Amazon RDS for PostgreSQL versions and
# extensions][7] in the *Amazon RDS User Guide.*
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-creating.html#custom-creating.create
# [2]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-reqs-limits.html#custom-reqs-limits.reqsMS
# [3]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html#MariaDB.Concepts.VersionMgmt
# [4]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.VersionSupport
# [5]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.VersionMgmt
# [6]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.PatchComposition.html
# [7]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts
# @option options [Boolean] :auto_minor_version_upgrade
# A value that indicates whether minor engine upgrades are applied
# automatically to the DB instance during the maintenance window. By
# default, minor engine upgrades are applied automatically.
#
# If you create an RDS Custom DB instance, you must set
# `AutoMinorVersionUpgrade` to `false`.
# @option options [String] :license_model
# License model information for this DB instance.
#
# Valid values: `license-included` \| `bring-your-own-license` \|
# `general-public-license`
#
# This setting doesn't apply to RDS Custom.
# @option options [Integer] :iops
# The amount of Provisioned IOPS (input/output operations per second) to
# be initially allocated for the DB instance. For information about
# valid `Iops` values, see [Amazon RDS Provisioned IOPS storage to
# improve performance][1] in the *Amazon RDS User Guide*.
#
# Constraints: For MariaDB, MySQL, Oracle, and PostgreSQL DB instances,
# must be a multiple between .5 and 50 of the storage amount for the DB
# instance. For SQL Server DB instances, must be a multiple between 1
# and 50 of the storage amount for the DB instance.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS
# @option options [String] :option_group_name
# A value that indicates that the DB instance should be associated with
# the specified option group.
#
# Permanent options, such as the TDE option for Oracle Advanced Security
# TDE, can't be removed from an option group. Also, that option group
# can't be removed from a DB instance after it is associated with a DB
# instance.
#
# This setting doesn't apply to RDS Custom.
# @option options [String] :character_set_name
# For supported engines, this value indicates that the DB instance
# should be associated with the specified `CharacterSet`.
#
# This setting doesn't apply to RDS Custom. However, if you need to
# change the character set, you can change it on the database itself.
#
# **Amazon Aurora**
#
# Not applicable. The character set is managed by the DB cluster. For
# more information, see `CreateDBCluster`.
# @option options [String] :nchar_character_set_name
# The name of the NCHAR character set for the Oracle DB instance.
#
# This parameter doesn't apply to RDS Custom.
# @option options [Boolean] :publicly_accessible
# A value that indicates whether the DB instance is publicly accessible.
#
# When the DB instance is publicly accessible, its Domain Name System
# (DNS) endpoint resolves to the private IP address from within the DB
# instance's virtual private cloud (VPC). It resolves to the public IP
# address from outside of the DB instance's VPC. Access to the DB
# instance is ultimately controlled by the security group it uses. That
# public access is not permitted if the security group assigned to the
# DB instance doesn't permit it.
#
# When the DB instance isn't publicly accessible, it is an internal DB
# instance with a DNS name that resolves to a private IP address.
#
# Default: The default behavior varies depending on whether
# `DBSubnetGroupName` is specified.
#
# If `DBSubnetGroupName` isn't specified, and `PubliclyAccessible`
# isn't specified, the following applies:
#
# * If the default VPC in the target Region doesn’t have an internet
# gateway attached to it, the DB instance is private.
#
# * If the default VPC in the target Region has an internet gateway
# attached to it, the DB instance is public.
#
# If `DBSubnetGroupName` is specified, and `PubliclyAccessible` isn't
# specified, the following applies:
#
# * If the subnets are part of a VPC that doesn’t have an internet
# gateway attached to it, the DB instance is private.
#
# * If the subnets are part of a VPC that has an internet gateway
# attached to it, the DB instance is public.
# @option options [Array] :tags
# Tags to assign to the DB instance.
# @option options [String] :db_cluster_identifier
# The identifier of the DB cluster that the instance will belong to.
#
# This setting doesn't apply to RDS Custom.
# @option options [String] :storage_type
# Specifies the storage type to be associated with the DB instance.
#
# Valid values: `standard | gp2 | io1`
#
# If you specify `io1`, you must also include a value for the `Iops`
# parameter.
#
# Default: `io1` if the `Iops` parameter is specified, otherwise `gp2`
# @option options [String] :tde_credential_arn
# The ARN from the key store with which to associate the instance for
# TDE encryption.
#
# This setting doesn't apply to RDS Custom.
# @option options [String] :tde_credential_password
# The password for the given ARN from the key store in order to access
# the device.
#
# This setting doesn't apply to RDS Custom.
# @option options [Boolean] :storage_encrypted
# A value that indicates whether the DB instance is encrypted. By
# default, it isn't encrypted.
#
# For RDS Custom instances, either set this parameter to `true` or leave
# it unset. If you set this parameter to `false`, RDS reports an error.
#
# **Amazon Aurora**
#
# Not applicable. The encryption for DB instances is managed by the DB
# cluster.
# @option options [String] :kms_key_id
# The Amazon Web Services KMS key identifier for an encrypted DB
# instance.
#
# The Amazon Web Services KMS key identifier is the key ARN, key ID,
# alias ARN, or alias name for the KMS key. To use a KMS key in a
# different Amazon Web Services account, specify the key ARN or alias
# ARN.
#
# **Amazon Aurora**
#
# Not applicable. The Amazon Web Services KMS key identifier is managed
# by the DB cluster. For more information, see `CreateDBCluster`.
#
# If `StorageEncrypted` is enabled, and you do not specify a value for
# the `KmsKeyId` parameter, then Amazon RDS uses your default KMS key.
# There is a default KMS key for your Amazon Web Services account. Your
# Amazon Web Services account has a different default KMS key for each
# Amazon Web Services Region.
#
# **Amazon RDS Custom**
#
# A KMS key is required for RDS Custom instances. For most RDS engines,
# if you leave this parameter empty while enabling `StorageEncrypted`,
# the engine uses the default KMS key. However, RDS Custom doesn't use
# the default key when this parameter is empty. You must explicitly
# specify a key.
# @option options [String] :domain
# The Active Directory directory ID to create the DB instance in.
# Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB
# instances can be created in an Active Directory Domain.
#
# For more information, see [ Kerberos Authentication][1] in the *Amazon
# RDS User Guide*.
#
# This setting doesn't apply to RDS Custom.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html
# @option options [Boolean] :copy_tags_to_snapshot
# A value that indicates whether to copy tags from the DB instance to
# snapshots of the DB instance. By default, tags are not copied.
#
# **Amazon Aurora**
#
# Not applicable. Copying tags to snapshots is managed by the DB
# cluster. Setting this value for an Aurora DB instance has no effect on
# the DB cluster setting.
# @option options [Integer] :monitoring_interval
# The interval, in seconds, between points when Enhanced Monitoring
# metrics are collected for the DB instance. To disable collection of
# Enhanced Monitoring metrics, specify 0. The default is 0.
#
# If `MonitoringRoleArn` is specified, then you must set
# `MonitoringInterval` to a value other than 0.
#
# This setting doesn't apply to RDS Custom.
#
# Valid Values: `0, 1, 5, 10, 15, 30, 60`
# @option options [String] :monitoring_role_arn
# The ARN for the IAM role that permits RDS to send enhanced monitoring
# metrics to Amazon CloudWatch Logs. For example,
# `arn:aws:iam:123456789012:role/emaccess`. For information on creating
# a monitoring role, see [Setting Up and Enabling Enhanced
# Monitoring][1] in the *Amazon RDS User Guide*.
#
# If `MonitoringInterval` is set to a value other than 0, then you must
# supply a `MonitoringRoleArn` value.
#
# This setting doesn't apply to RDS Custom.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling
# @option options [String] :domain_iam_role_name
# Specify the name of the IAM role to be used when making API calls to
# the Directory Service.
#
# This setting doesn't apply to RDS Custom.
# @option options [Integer] :promotion_tier
# A value that specifies the order in which an Aurora Replica is
# promoted to the primary instance after a failure of the existing
# primary instance. For more information, see [ Fault Tolerance for an
# Aurora DB Cluster][1] in the *Amazon Aurora User Guide*.
#
# This setting doesn't apply to RDS Custom.
#
# Default: 1
#
# Valid Values: 0 - 15
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.FaultTolerance
# @option options [String] :timezone
# The time zone of the DB instance. The time zone parameter is currently
# supported only by [Microsoft SQL Server][1].
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.TimeZone
# @option options [Boolean] :enable_iam_database_authentication
# A value that indicates whether to enable mapping of Amazon Web
# Services Identity and Access Management (IAM) accounts to database
# accounts. By default, mapping isn't enabled.
#
# This setting doesn't apply to RDS Custom or Amazon Aurora. In Aurora,
# mapping Amazon Web Services IAM accounts to database accounts is
# managed by the DB cluster.
#
# For more information, see [ IAM Database Authentication for MySQL and
# PostgreSQL][1] in the *Amazon RDS User Guide.*
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html
# @option options [Boolean] :enable_performance_insights
# A value that indicates whether to enable Performance Insights for the
# DB instance. For more information, see [Using Amazon Performance
# Insights][1] in the *Amazon Relational Database Service User Guide*.
#
# This setting doesn't apply to RDS Custom.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html
# @option options [String] :performance_insights_kms_key_id
# The Amazon Web Services KMS key identifier for encryption of
# Performance Insights data.
#
# The Amazon Web Services KMS key identifier is the key ARN, key ID,
# alias ARN, or alias name for the KMS key.
#
# If you do not specify a value for `PerformanceInsightsKMSKeyId`, then
# Amazon RDS uses your default KMS key. There is a default KMS key for
# your Amazon Web Services account. Your Amazon Web Services account has
# a different default KMS key for each Amazon Web Services Region.
#
# This setting doesn't apply to RDS Custom.
# @option options [Integer] :performance_insights_retention_period
# The amount of time, in days, to retain Performance Insights data.
# Valid values are 7 or 731 (2 years).
#
# This setting doesn't apply to RDS Custom.
# @option options [Array] :enable_cloudwatch_logs_exports
# The list of log types that need to be enabled for exporting to
# CloudWatch Logs. The values in the list depend on the DB engine. For
# more information, see [Publishing Database Logs to Amazon CloudWatch
# Logs][1] in the *Amazon Relational Database Service User Guide*.
#
# **Amazon Aurora**
#
# Not applicable. CloudWatch Logs exports are managed by the DB cluster.
#
# **RDS Custom**
#
# Not applicable.
#
# **MariaDB**
#
# Possible values are `audit`, `error`, `general`, and `slowquery`.
#
# **Microsoft SQL Server**
#
# Possible values are `agent` and `error`.
#
# **MySQL**
#
# Possible values are `audit`, `error`, `general`, and `slowquery`.
#
# **Oracle**
#
# Possible values are `alert`, `audit`, `listener`, `trace`, and
# `oemagent`.
#
# **PostgreSQL**
#
# Possible values are `postgresql` and `upgrade`.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch
# @option options [Array] :processor_features
# The number of CPU cores and the number of threads per core for the DB
# instance class of the DB instance.
#
# This setting doesn't apply to RDS Custom.
# @option options [Boolean] :deletion_protection
# A value that indicates whether the DB instance has deletion protection
# enabled. The database can't be deleted when deletion protection is
# enabled. By default, deletion protection isn't enabled. For more
# information, see [ Deleting a DB Instance][1].
#
# **Amazon Aurora**
#
# Not applicable. You can enable or disable deletion protection for the
# DB cluster. For more information, see `CreateDBCluster`. DB instances
# in a DB cluster can be deleted even when deletion protection is
# enabled for the DB cluster.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html
# @option options [Integer] :max_allocated_storage
# The upper limit in gibibytes (GiB) to which Amazon RDS can
# automatically scale the storage of the DB instance.
#
# For more information about this setting, including limitations that
# apply to it, see [ Managing capacity automatically with Amazon RDS
# storage autoscaling][1] in the *Amazon RDS User Guide*.
#
# This setting doesn't apply to RDS Custom.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.Autoscaling
# @option options [Boolean] :enable_customer_owned_ip
# A value that indicates whether to enable a customer-owned IP address
# (CoIP) for an RDS on Outposts DB instance.
#
# A *CoIP* provides local or external connectivity to resources in your
# Outpost subnets through your on-premises network. For some use cases,
# a CoIP can provide lower latency for connections to the DB instance
# from outside of its virtual private cloud (VPC) on your local network.
#
# For more information about RDS on Outposts, see [Working with Amazon
# RDS on Amazon Web Services Outposts][1] in the *Amazon RDS User
# Guide*.
#
# For more information about CoIPs, see [Customer-owned IP addresses][2]
# in the *Amazon Web Services Outposts User Guide*.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html
# [2]: https://docs.aws.amazon.com/outposts/latest/userguide/outposts-networking-components.html#ip-addressing
# @option options [String] :custom_iam_instance_profile
# The instance profile associated with the underlying Amazon EC2
# instance of an RDS Custom DB instance. The instance profile must meet
# the following requirements:
#
# * The profile must exist in your account.
#
# * The profile must have an IAM role that Amazon EC2 has permissions to
# assume.
#
# * The instance profile name and the associated IAM role name must
# start with the prefix `AWSRDSCustom`.
#
# For the list of permissions required for the IAM role, see [ Configure
# IAM and your VPC][1] in the *Amazon Relational Database Service User
# Guide*.
#
# This setting is required for RDS Custom.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-setup-orcl.html#custom-setup-orcl.iam-vpc
# @option options [String] :backup_target
# Specifies where automated backups and manual snapshots are stored.
#
# Possible values are `outposts` (Amazon Web Services Outposts) and
# `region` (Amazon Web Services Region). The default is `region`.
#
# For more information, see [Working with Amazon RDS on Amazon Web
# Services Outposts][1] in the *Amazon RDS User Guide*.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html
# @return [DBInstance]
def create(options = {})
options = options.merge(db_instance_identifier: @id)
resp = @client.create_db_instance(options)
DBInstance.new(
id: resp.data.db_instance.db_instance_identifier,
data: resp.data.db_instance,
client: @client
)
end
# @example Request syntax with placeholder values
#
# dbinstance = db_instance.create_read_replica({
# db_instance_identifier: "String", # required
# db_instance_class: "String",
# availability_zone: "String",
# port: 1,
# multi_az: false,
# auto_minor_version_upgrade: false,
# iops: 1,
# option_group_name: "String",
# db_parameter_group_name: "String",
# publicly_accessible: false,
# tags: [
# {
# key: "String",
# value: "String",
# },
# ],
# db_subnet_group_name: "String",
# vpc_security_group_ids: ["String"],
# storage_type: "String",
# copy_tags_to_snapshot: false,
# monitoring_interval: 1,
# monitoring_role_arn: "String",
# kms_key_id: "String",
# pre_signed_url: "String",
# enable_iam_database_authentication: false,
# enable_performance_insights: false,
# performance_insights_kms_key_id: "String",
# performance_insights_retention_period: 1,
# enable_cloudwatch_logs_exports: ["String"],
# processor_features: [
# {
# name: "String",
# value: "String",
# },
# ],
# use_default_processor_features: false,
# deletion_protection: false,
# domain: "String",
# domain_iam_role_name: "String",
# replica_mode: "open-read-only", # accepts open-read-only, mounted
# max_allocated_storage: 1,
# custom_iam_instance_profile: "String",
# source_region: "String",
# })
# @param [Hash] options ({})
# @option options [required, String] :db_instance_identifier
# The DB instance identifier of the read replica. This identifier is the
# unique key that identifies a DB instance. This parameter is stored as
# a lowercase string.
# @option options [String] :db_instance_class
# The compute and memory capacity of the read replica, for example
# db.m4.large. Not all DB instance classes are available in all Amazon
# Web Services Regions, or for all database engines. For the full list
# of DB instance classes, and availability for your engine, see [DB
# Instance Class][1] in the *Amazon RDS User Guide.*
#
# Default: Inherits from the source DB instance.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html
# @option options [String] :availability_zone
# The Availability Zone (AZ) where the read replica will be created.
#
# Default: A random, system-chosen Availability Zone in the endpoint's
# Amazon Web Services Region.
#
# Example: `us-east-1d`
# @option options [Integer] :port
# The port number that the DB instance uses for connections.
#
# Default: Inherits from the source DB instance
#
# Valid Values: `1150-65535`
# @option options [Boolean] :multi_az
# A value that indicates whether the read replica is in a Multi-AZ
# deployment.
#
# You can create a read replica as a Multi-AZ DB instance. RDS creates a
# standby of your replica in another Availability Zone for failover
# support for the replica. Creating your read replica as a Multi-AZ DB
# instance is independent of whether the source database is a Multi-AZ
# DB instance.
#
# This setting doesn't apply to RDS Custom.
# @option options [Boolean] :auto_minor_version_upgrade
# A value that indicates whether minor engine upgrades are applied
# automatically to the read replica during the maintenance window.
#
# This setting doesn't apply to RDS Custom.
#
# Default: Inherits from the source DB instance
# @option options [Integer] :iops
# The amount of Provisioned IOPS (input/output operations per second) to
# be initially allocated for the DB instance.
# @option options [String] :option_group_name
# The option group the DB instance is associated with. If omitted, the
# option group associated with the source instance is used.
#
# For SQL Server, you must use the option group associated with the
# source instance.
#
#
#
# This setting doesn't apply to RDS Custom.
# @option options [String] :db_parameter_group_name
# The name of the DB parameter group to associate with this DB instance.
#
# If you do not specify a value for `DBParameterGroupName`, then Amazon
# RDS uses the `DBParameterGroup` of source DB instance for a same
# Region read replica, or the default `DBParameterGroup` for the
# specified DB engine for a cross-Region read replica.
#
# Specifying a parameter group for this operation is only supported for
# Oracle DB instances. It isn't supported for RDS Custom.
#
# Constraints:
#
# * Must be 1 to 255 letters, numbers, or hyphens.
#
# * First character must be a letter
#
# * Can't end with a hyphen or contain two consecutive hyphens
# @option options [Boolean] :publicly_accessible
# A value that indicates whether the DB instance is publicly accessible.
#
# When the DB cluster is publicly accessible, its Domain Name System
# (DNS) endpoint resolves to the private IP address from within the DB
# cluster's virtual private cloud (VPC). It resolves to the public IP
# address from outside of the DB cluster's VPC. Access to the DB
# cluster is ultimately controlled by the security group it uses. That
# public access isn't permitted if the security group assigned to the
# DB cluster doesn't permit it.
#
# When the DB instance isn't publicly accessible, it is an internal DB
# instance with a DNS name that resolves to a private IP address.
#
# For more information, see CreateDBInstance.
# @option options [Array] :tags
# A list of tags. For more information, see [Tagging Amazon RDS
# Resources][1] in the *Amazon RDS User Guide.*
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html
# @option options [String] :db_subnet_group_name
# Specifies a DB subnet group for the DB instance. The new DB instance
# is created in the VPC associated with the DB subnet group. If no DB
# subnet group is specified, then the new DB instance isn't created in
# a VPC.
#
# Constraints:
#
# * Can only be specified if the source DB instance identifier specifies
# a DB instance in another Amazon Web Services Region.
#
# * If supplied, must match the name of an existing DBSubnetGroup.
#
# * The specified DB subnet group must be in the same Amazon Web
# Services Region in which the operation is running.
#
# * All read replicas in one Amazon Web Services Region that are created
# from the same source DB instance must either:>
#
# * Specify DB subnet groups from the same VPC. All these read
# replicas are created in the same VPC.
#
# * Not specify a DB subnet group. All these read replicas are created
# outside of any VPC.
#
# Example: `mySubnetgroup`
# @option options [Array] :vpc_security_group_ids
# A list of Amazon EC2 VPC security groups to associate with the read
# replica.
#
# This setting doesn't apply to RDS Custom.
#
# Default: The default EC2 VPC security group for the DB subnet group's
# VPC.
# @option options [String] :storage_type
# Specifies the storage type to be associated with the read replica.
#
# Valid values: `standard | gp2 | io1`
#
# If you specify `io1`, you must also include a value for the `Iops`
# parameter.
#
# Default: `io1` if the `Iops` parameter is specified, otherwise `gp2`
# @option options [Boolean] :copy_tags_to_snapshot
# A value that indicates whether to copy all tags from the read replica
# to snapshots of the read replica. By default, tags are not copied.
# @option options [Integer] :monitoring_interval
# The interval, in seconds, between points when Enhanced Monitoring
# metrics are collected for the read replica. To disable collecting
# Enhanced Monitoring metrics, specify 0. The default is 0.
#
# If `MonitoringRoleArn` is specified, then you must also set
# `MonitoringInterval` to a value other than 0.
#
# This setting doesn't apply to RDS Custom.
#
# Valid Values: `0, 1, 5, 10, 15, 30, 60`
# @option options [String] :monitoring_role_arn
# The ARN for the IAM role that permits RDS to send enhanced monitoring
# metrics to Amazon CloudWatch Logs. For example,
# `arn:aws:iam:123456789012:role/emaccess`. For information on creating
# a monitoring role, go to [To create an IAM role for Amazon RDS
# Enhanced Monitoring][1] in the *Amazon RDS User Guide*.
#
# If `MonitoringInterval` is set to a value other than 0, then you must
# supply a `MonitoringRoleArn` value.
#
# This setting doesn't apply to RDS Custom.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html#USER_Monitoring.OS.IAMRole
# @option options [String] :kms_key_id
# The Amazon Web Services KMS key identifier for an encrypted read
# replica.
#
# The Amazon Web Services KMS key identifier is the key ARN, key ID,
# alias ARN, or alias name for the KMS key.
#
# If you create an encrypted read replica in the same Amazon Web
# Services Region as the source DB instance, then do not specify a value
# for this parameter. A read replica in the same Amazon Web Services
# Region is always encrypted with the same KMS key as the source DB
# instance.
#
# If you create an encrypted read replica in a different Amazon Web
# Services Region, then you must specify a KMS key identifier for the
# destination Amazon Web Services Region. KMS keys are specific to the
# Amazon Web Services Region that they are created in, and you can't
# use KMS keys from one Amazon Web Services Region in another Amazon Web
# Services Region.
#
# You can't create an encrypted read replica from an unencrypted DB
# instance.
#
# This setting doesn't apply to RDS Custom, which uses the same KMS key
# as the primary replica.
# @option options [String] :pre_signed_url
# The URL that contains a Signature Version 4 signed request for the
# `CreateDBInstanceReadReplica` API action in the source Amazon Web
# Services Region that contains the source DB instance.
#
# You must specify this parameter when you create an encrypted read
# replica from another Amazon Web Services Region by using the Amazon
# RDS API. Don't specify `PreSignedUrl` when you are creating an
# encrypted read replica in the same Amazon Web Services Region.
#
# The presigned URL must be a valid request for the
# `CreateDBInstanceReadReplica` API action that can be executed in the
# source Amazon Web Services Region that contains the encrypted source
# DB instance. The presigned URL request must contain the following
# parameter values:
#
# * `DestinationRegion` - The Amazon Web Services Region that the
# encrypted read replica is created in. This Amazon Web Services
# Region is the same one where the `CreateDBInstanceReadReplica`
# action is called that contains this presigned URL.
#
# For example, if you create an encrypted DB instance in the us-west-1
# Amazon Web Services Region, from a source DB instance in the
# us-east-2 Amazon Web Services Region, then you call the
# `CreateDBInstanceReadReplica` action in the us-east-1 Amazon Web
# Services Region and provide a presigned URL that contains a call to
# the `CreateDBInstanceReadReplica` action in the us-west-2 Amazon Web
# Services Region. For this example, the `DestinationRegion` in the
# presigned URL must be set to the us-east-1 Amazon Web Services
# Region.
#
# * `KmsKeyId` - The Amazon Web Services KMS key identifier for the key
# to use to encrypt the read replica in the destination Amazon Web
# Services Region. This is the same identifier for both the
# `CreateDBInstanceReadReplica` action that is called in the
# destination Amazon Web Services Region, and the action contained in
# the presigned URL.
#
# * `SourceDBInstanceIdentifier` - The DB instance identifier for the
# encrypted DB instance to be replicated. This identifier must be in
# the Amazon Resource Name (ARN) format for the source Amazon Web
# Services Region. For example, if you are creating an encrypted read
# replica from a DB instance in the us-west-2 Amazon Web Services
# Region, then your `SourceDBInstanceIdentifier` looks like the
# following example:
# `arn:aws:rds:us-west-2:123456789012:instance:mysql-instance1-20161115`.
#
# To learn how to generate a Signature Version 4 signed request, see
# [Authenticating Requests: Using Query Parameters (Amazon Web Services
# Signature Version 4)][1] and [Signature Version 4 Signing Process][2].
#
# If you are using an Amazon Web Services SDK tool or the CLI, you can
# specify `SourceRegion` (or `--source-region` for the CLI) instead of
# specifying `PreSignedUrl` manually. Specifying `SourceRegion`
# autogenerates a presigned URL that is a valid request for the
# operation that can be executed in the source Amazon Web Services
# Region.
#
# `SourceRegion` isn't supported for SQL Server, because SQL Server on
# Amazon RDS doesn't support cross-Region read replicas.
#
#
#
# This setting doesn't apply to RDS Custom.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html
# [2]: https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html
# @option options [Boolean] :enable_iam_database_authentication
# A value that indicates whether to enable mapping of Amazon Web
# Services Identity and Access Management (IAM) accounts to database
# accounts. By default, mapping isn't enabled.
#
# For more information about IAM database authentication, see [ IAM
# Database Authentication for MySQL and PostgreSQL][1] in the *Amazon
# RDS User Guide.*
#
# This setting doesn't apply to RDS Custom.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html
# @option options [Boolean] :enable_performance_insights
# A value that indicates whether to enable Performance Insights for the
# read replica.
#
# For more information, see [Using Amazon Performance Insights][1] in
# the *Amazon RDS User Guide*.
#
# This setting doesn't apply to RDS Custom.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html
# @option options [String] :performance_insights_kms_key_id
# The Amazon Web Services KMS key identifier for encryption of
# Performance Insights data.
#
# The Amazon Web Services KMS key identifier is the key ARN, key ID,
# alias ARN, or alias name for the KMS key.
#
# If you do not specify a value for `PerformanceInsightsKMSKeyId`, then
# Amazon RDS uses your default KMS key. There is a default KMS key for
# your Amazon Web Services account. Your Amazon Web Services account has
# a different default KMS key for each Amazon Web Services Region.
#
# This setting doesn't apply to RDS Custom.
# @option options [Integer] :performance_insights_retention_period
# The amount of time, in days, to retain Performance Insights data.
# Valid values are 7 or 731 (2 years).
#
# This setting doesn't apply to RDS Custom.
# @option options [Array] :enable_cloudwatch_logs_exports
# The list of logs that the new DB instance is to export to CloudWatch
# Logs. The values in the list depend on the DB engine being used. For
# more information, see [Publishing Database Logs to Amazon CloudWatch
# Logs ][1] in the *Amazon RDS User Guide*.
#
# This setting doesn't apply to RDS Custom.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch
# @option options [Array] :processor_features
# The number of CPU cores and the number of threads per core for the DB
# instance class of the DB instance.
#
# This setting doesn't apply to RDS Custom.
# @option options [Boolean] :use_default_processor_features
# A value that indicates whether the DB instance class of the DB
# instance uses its default processor features.
#
# This setting doesn't apply to RDS Custom.
# @option options [Boolean] :deletion_protection
# A value that indicates whether the DB instance has deletion protection
# enabled. The database can't be deleted when deletion protection is
# enabled. By default, deletion protection isn't enabled. For more
# information, see [ Deleting a DB Instance][1].
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html
# @option options [String] :domain
# The Active Directory directory ID to create the DB instance in.
# Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB
# instances can be created in an Active Directory Domain.
#
# For more information, see [ Kerberos Authentication][1] in the *Amazon
# RDS User Guide*.
#
# This setting doesn't apply to RDS Custom.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html
# @option options [String] :domain_iam_role_name
# Specify the name of the IAM role to be used when making API calls to
# the Directory Service.
#
# This setting doesn't apply to RDS Custom.
# @option options [String] :replica_mode
# The open mode of the replica database: mounted or read-only.
#
# This parameter is only supported for Oracle DB instances.
#
#
#
# Mounted DB replicas are included in Oracle Database Enterprise
# Edition. The main use case for mounted replicas is cross-Region
# disaster recovery. The primary database doesn't use Active Data Guard
# to transmit information to the mounted replica. Because it doesn't
# accept user connections, a mounted replica can't serve a read-only
# workload.
#
# You can create a combination of mounted and read-only DB replicas for
# the same primary DB instance. For more information, see [Working with
# Oracle Read Replicas for Amazon RDS][1] in the *Amazon RDS User
# Guide*.
#
# For RDS Custom, you must specify this parameter and set it to
# `mounted`. The value won't be set by default. After replica creation,
# you can manage the open mode manually.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html
# @option options [Integer] :max_allocated_storage
# The upper limit in gibibytes (GiB) to which Amazon RDS can
# automatically scale the storage of the DB instance.
#
# For more information about this setting, including limitations that
# apply to it, see [ Managing capacity automatically with Amazon RDS
# storage autoscaling][1] in the *Amazon RDS User Guide*.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.Autoscaling
# @option options [String] :custom_iam_instance_profile
# The instance profile associated with the underlying Amazon EC2
# instance of an RDS Custom DB instance. The instance profile must meet
# the following requirements:
#
# * The profile must exist in your account.
#
# * The profile must have an IAM role that Amazon EC2 has permissions to
# assume.
#
# * The instance profile name and the associated IAM role name must
# start with the prefix `AWSRDSCustom`.
#
# For the list of permissions required for the IAM role, see [ Configure
# IAM and your VPC][1] in the *Amazon Relational Database Service User
# Guide*.
#
# This setting is required for RDS Custom.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-setup-orcl.html#custom-setup-orcl.iam-vpc
# @option options [String] :source_region
# The source region of the snapshot. This is only needed when the
# shapshot is encrypted and in a different region.
# @return [DBInstance]
def create_read_replica(options = {})
options = options.merge(source_db_instance_identifier: @id)
resp = @client.create_db_instance_read_replica(options)
DBInstance.new(
id: resp.data.db_instance.db_instance_identifier,
data: resp.data.db_instance,
client: @client
)
end
# @example Request syntax with placeholder values
#
# dbsnapshot = db_instance.create_snapshot({
# db_snapshot_identifier: "String", # required
# tags: [
# {
# key: "String",
# value: "String",
# },
# ],
# })
# @param [Hash] options ({})
# @option options [required, String] :db_snapshot_identifier
# The identifier for the DB snapshot.
#
# Constraints:
#
# * Can't be null, empty, or blank
#
# * Must contain from 1 to 255 letters, numbers, or hyphens
#
# * First character must be a letter
#
# * Can't end with a hyphen or contain two consecutive hyphens
#
# Example: `my-snapshot-id`
# @option options [Array] :tags
# A list of tags. For more information, see [Tagging Amazon RDS
# Resources][1] in the *Amazon RDS User Guide.*
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html
# @return [DBSnapshot]
def create_snapshot(options = {})
options = options.merge(db_instance_identifier: @id)
resp = @client.create_db_snapshot(options)
DBSnapshot.new(
instance_id: resp.data.db_snapshot.db_instance_identifier,
snapshot_id: resp.data.db_snapshot.db_snapshot_identifier,
data: resp.data.db_snapshot,
client: @client
)
end
# @example Request syntax with placeholder values
#
# dbinstance = db_instance.delete({
# skip_final_snapshot: false,
# final_db_snapshot_identifier: "String",
# delete_automated_backups: false,
# })
# @param [Hash] options ({})
# @option options [Boolean] :skip_final_snapshot
# A value that indicates whether to skip the creation of a final DB
# snapshot before deleting the instance. If you enable this parameter,
# RDS doesn't create a DB snapshot. If you don't enable this
# parameter, RDS creates a DB snapshot before the DB instance is
# deleted. By default, skip isn't enabled, and the DB snapshot is
# created.
#
# If you don't enable this parameter, you must specify the
# `FinalDBSnapshotIdentifier` parameter.
#
#
#
# When a DB instance is in a failure state and has a status of `failed`,
# `incompatible-restore`, or `incompatible-network`, RDS can delete the
# instance only if you enable this parameter.
#
# If you delete a read replica or an RDS Custom instance, you must
# enable this setting.
#
# This setting is required for RDS Custom.
# @option options [String] :final_db_snapshot_identifier
# The `DBSnapshotIdentifier` of the new `DBSnapshot` created when the
# `SkipFinalSnapshot` parameter is disabled.
#
# If you enable this parameter and also enable SkipFinalShapshot, the
# command results in an error.
#
#
#
# This setting doesn't apply to RDS Custom.
#
# Constraints:
#
# * Must be 1 to 255 letters or numbers.
#
# * First character must be a letter.
#
# * Can't end with a hyphen or contain two consecutive hyphens.
#
# * Can't be specified when deleting a read replica.
# @option options [Boolean] :delete_automated_backups
# A value that indicates whether to remove automated backups immediately
# after the DB instance is deleted. This parameter isn't
# case-sensitive. The default is to remove automated backups immediately
# after the DB instance is deleted.
# @return [DBInstance]
def delete(options = {})
options = options.merge(db_instance_identifier: @id)
resp = @client.delete_db_instance(options)
DBInstance.new(
id: resp.data.db_instance.db_instance_identifier,
data: resp.data.db_instance,
client: @client
)
end
# @example Request syntax with placeholder values
#
# dbinstance = db_instance.modify({
# allocated_storage: 1,
# db_instance_class: "String",
# db_subnet_group_name: "String",
# db_security_groups: ["String"],
# vpc_security_group_ids: ["String"],
# apply_immediately: false,
# master_user_password: "String",
# db_parameter_group_name: "String",
# backup_retention_period: 1,
# preferred_backup_window: "String",
# preferred_maintenance_window: "String",
# multi_az: false,
# engine_version: "String",
# allow_major_version_upgrade: false,
# auto_minor_version_upgrade: false,
# license_model: "String",
# iops: 1,
# option_group_name: "String",
# new_db_instance_identifier: "String",
# storage_type: "String",
# tde_credential_arn: "String",
# tde_credential_password: "String",
# ca_certificate_identifier: "String",
# domain: "String",
# copy_tags_to_snapshot: false,
# monitoring_interval: 1,
# db_port_number: 1,
# publicly_accessible: false,
# monitoring_role_arn: "String",
# domain_iam_role_name: "String",
# promotion_tier: 1,
# enable_iam_database_authentication: false,
# enable_performance_insights: false,
# performance_insights_kms_key_id: "String",
# performance_insights_retention_period: 1,
# cloudwatch_logs_export_configuration: {
# enable_log_types: ["String"],
# disable_log_types: ["String"],
# },
# processor_features: [
# {
# name: "String",
# value: "String",
# },
# ],
# use_default_processor_features: false,
# deletion_protection: false,
# max_allocated_storage: 1,
# certificate_rotation_restart: false,
# replica_mode: "open-read-only", # accepts open-read-only, mounted
# enable_customer_owned_ip: false,
# aws_backup_recovery_point_arn: "AwsBackupRecoveryPointArn",
# automation_mode: "full", # accepts full, all-paused
# resume_full_automation_mode_minutes: 1,
# })
# @param [Hash] options ({})
# @option options [Integer] :allocated_storage
# The new amount of storage in gibibytes (GiB) to allocate for the DB
# instance.
#
# For MariaDB, MySQL, Oracle, and PostgreSQL, the value supplied must be
# at least 10% greater than the current value. Values that are not at
# least 10% greater than the existing value are rounded up so that they
# are 10% greater than the current value.
#
# For the valid values for allocated storage for each engine, see
# `CreateDBInstance`.
# @option options [String] :db_instance_class
# The new compute and memory capacity of the DB instance, for example
# db.m4.large. Not all DB instance classes are available in all Amazon
# Web Services Regions, or for all database engines. For the full list
# of DB instance classes, and availability for your engine, see [DB
# Instance Class][1] in the *Amazon RDS User Guide*.
#
# If you modify the DB instance class, an outage occurs during the
# change. The change is applied during the next maintenance window,
# unless `ApplyImmediately` is enabled for this request.
#
# This setting doesn't apply to RDS Custom for Oracle.
#
# Default: Uses existing setting
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html
# @option options [String] :db_subnet_group_name
# The new DB subnet group for the DB instance. You can use this
# parameter to move your DB instance to a different VPC. If your DB
# instance isn't in a VPC, you can also use this parameter to move your
# DB instance into a VPC. For more information, see [Working with a DB
# instance in a VPC][1] in the *Amazon RDS User Guide*.
#
# Changing the subnet group causes an outage during the change. The
# change is applied during the next maintenance window, unless you
# enable `ApplyImmediately`.
#
# This parameter doesn't apply to RDS Custom.
#
# Constraints: If supplied, must match the name of an existing
# DBSubnetGroup.
#
# Example: `mySubnetGroup`
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html#USER_VPC.Non-VPC2VPC
# @option options [Array] :db_security_groups
# A list of DB security groups to authorize on this DB instance.
# Changing this setting doesn't result in an outage and the change is
# asynchronously applied as soon as possible.
#
# This setting doesn't apply to RDS Custom.
#
# Constraints:
#
# * If supplied, must match existing DBSecurityGroups.
#
# ^
# @option options [Array] :vpc_security_group_ids
# A list of Amazon EC2 VPC security groups to authorize on this DB
# instance. This change is asynchronously applied as soon as possible.
#
# This setting doesn't apply to RDS Custom.
#
# **Amazon Aurora**
#
# Not applicable. The associated list of EC2 VPC security groups is
# managed by the DB cluster. For more information, see
# `ModifyDBCluster`.
#
# Constraints:
#
# * If supplied, must match existing VpcSecurityGroupIds.
#
# ^
# @option options [Boolean] :apply_immediately
# A value that indicates whether the modifications in this request and
# any pending modifications are asynchronously applied as soon as
# possible, regardless of the `PreferredMaintenanceWindow` setting for
# the DB instance. By default, this parameter is disabled.
#
# If this parameter is disabled, changes to the DB instance are applied
# during the next maintenance window. Some parameter changes can cause
# an outage and are applied on the next call to RebootDBInstance, or the
# next failure reboot. Review the table of parameters in [Modifying a DB
# Instance][1] in the *Amazon RDS User Guide* to see the impact of
# enabling or disabling `ApplyImmediately` for each modified parameter
# and to determine when the changes are applied.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html
# @option options [String] :master_user_password
# The new password for the master user. The password can include any
# printable ASCII character except "/", """, or "@".
#
# Changing this parameter doesn't result in an outage and the change is
# asynchronously applied as soon as possible. Between the time of the
# request and the completion of the request, the `MasterUserPassword`
# element exists in the `PendingModifiedValues` element of the operation
# response.
#
# This setting doesn't apply to RDS Custom.
#
# **Amazon Aurora**
#
# Not applicable. The password for the master user is managed by the DB
# cluster. For more information, see `ModifyDBCluster`.
#
# Default: Uses existing setting
#
# **MariaDB**
#
# Constraints: Must contain from 8 to 41 characters.
#
# **Microsoft SQL Server**
#
# Constraints: Must contain from 8 to 128 characters.
#
# **MySQL**
#
# Constraints: Must contain from 8 to 41 characters.
#
# **Oracle**
#
# Constraints: Must contain from 8 to 30 characters.
#
# **PostgreSQL**
#
# Constraints: Must contain from 8 to 128 characters.
#
# Amazon RDS API actions never return the password, so this action
# provides a way to regain access to a primary instance user if the
# password is lost. This includes restoring privileges that might have
# been accidentally revoked.
#
#
# @option options [String] :db_parameter_group_name
# The name of the DB parameter group to apply to the DB instance.
#
# Changing this setting doesn't result in an outage. The parameter
# group name itself is changed immediately, but the actual parameter
# changes are not applied until you reboot the instance without
# failover. In this case, the DB instance isn't rebooted automatically,
# and the parameter changes aren't applied during the next maintenance
# window. However, if you modify dynamic parameters in the newly
# associated DB parameter group, these changes are applied immediately
# without a reboot.
#
# This setting doesn't apply to RDS Custom.
#
# Default: Uses existing setting
#
# Constraints: The DB parameter group must be in the same DB parameter
# group family as the DB instance.
# @option options [Integer] :backup_retention_period
# The number of days to retain automated backups. Setting this parameter
# to a positive number enables backups. Setting this parameter to 0
# disables automated backups.
#
# Enabling and disabling backups can result in a brief I/O suspension
# that lasts from a few seconds to a few minutes, depending on the size
# and class of your DB instance.
#
#
#
# These changes are applied during the next maintenance window unless
# the `ApplyImmediately` parameter is enabled for this request. If you
# change the parameter from one non-zero value to another non-zero
# value, the change is asynchronously applied as soon as possible.
#
# **Amazon Aurora**
#
# Not applicable. The retention period for automated backups is managed
# by the DB cluster. For more information, see `ModifyDBCluster`.
#
# Default: Uses existing setting
#
# Constraints:
#
# * It must be a value from 0 to 35. It can't be set to 0 if the DB
# instance is a source to read replicas. It can't be set to 0 or 35
# for an RDS Custom for Oracle DB instance.
#
# * It can be specified for a MySQL read replica only if the source is
# running MySQL 5.6 or later.
#
# * It can be specified for a PostgreSQL read replica only if the source
# is running PostgreSQL 9.3.5.
# @option options [String] :preferred_backup_window
# The daily time range during which automated backups are created if
# automated backups are enabled, as determined by the
# `BackupRetentionPeriod` parameter. Changing this parameter doesn't
# result in an outage and the change is asynchronously applied as soon
# as possible. The default is a 30-minute window selected at random from
# an 8-hour block of time for each Amazon Web Services Region. For more
# information, see [Backup window][1] in the *Amazon RDS User Guide.*
#
# **Amazon Aurora**
#
# Not applicable. The daily time range for creating automated backups is
# managed by the DB cluster. For more information, see
# `ModifyDBCluster`.
#
# Constraints:
#
# * Must be in the format hh24:mi-hh24:mi
#
# * Must be in Universal Time Coordinated (UTC)
#
# * Must not conflict with the preferred maintenance window
#
# * Must be at least 30 minutes
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#USER_WorkingWithAutomatedBackups.BackupWindow
# @option options [String] :preferred_maintenance_window
# The weekly time range (in UTC) during which system maintenance can
# occur, which might result in an outage. Changing this parameter
# doesn't result in an outage, except in the following situation, and
# the change is asynchronously applied as soon as possible. If there are
# pending actions that cause a reboot, and the maintenance window is
# changed to include the current time, then changing this parameter will
# cause a reboot of the DB instance. If moving this window to the
# current time, there must be at least 30 minutes between the current
# time and end of the window to ensure pending changes are applied.
#
# For more information, see [Amazon RDS Maintenance Window][1] in the
# *Amazon RDS User Guide.*
#
# Default: Uses existing setting
#
# Format: ddd:hh24:mi-ddd:hh24:mi
#
# Valid Days: Mon \| Tue \| Wed \| Thu \| Fri \| Sat \| Sun
#
# Constraints: Must be at least 30 minutes
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#Concepts.DBMaintenance
# @option options [Boolean] :multi_az
# A value that indicates whether the DB instance is a Multi-AZ
# deployment. Changing this parameter doesn't result in an outage. The
# change is applied during the next maintenance window unless the
# `ApplyImmediately` parameter is enabled for this request.
#
# This setting doesn't apply to RDS Custom.
# @option options [String] :engine_version
# The version number of the database engine to upgrade to. Changing this
# parameter results in an outage and the change is applied during the
# next maintenance window unless the `ApplyImmediately` parameter is
# enabled for this request.
#
# For major version upgrades, if a nondefault DB parameter group is
# currently in use, a new DB parameter group in the DB parameter group
# family for the new engine version must be specified. The new DB
# parameter group can be the default for that DB parameter group family.
#
# If you specify only a major version, Amazon RDS will update the DB
# instance to the default minor version if the current minor version is
# lower. For information about valid engine versions, see
# `CreateDBInstance`, or call `DescribeDBEngineVersions`.
#
# In RDS Custom for Oracle, this parameter is supported for read
# replicas only if they are in the `PATCH_DB_FAILURE` lifecycle.
# @option options [Boolean] :allow_major_version_upgrade
# A value that indicates whether major version upgrades are allowed.
# Changing this parameter doesn't result in an outage and the change is
# asynchronously applied as soon as possible.
#
# This setting doesn't apply to RDS Custom.
#
# Constraints: Major version upgrades must be allowed when specifying a
# value for the EngineVersion parameter that is a different major
# version than the DB instance's current version.
# @option options [Boolean] :auto_minor_version_upgrade
# A value that indicates whether minor version upgrades are applied
# automatically to the DB instance during the maintenance window. An
# outage occurs when all the following conditions are met:
#
# * The automatic upgrade is enabled for the maintenance window.
#
# * A newer minor version is available.
#
# * RDS has enabled automatic patching for the engine version.
#
# If any of the preceding conditions isn't met, RDS applies the change
# as soon as possible and doesn't cause an outage.
#
# For an RDS Custom DB instance, set `AutoMinorVersionUpgrade` to
# `false`. Otherwise, the operation returns an error.
# @option options [String] :license_model
# The license model for the DB instance.
#
# This setting doesn't apply to RDS Custom.
#
# Valid values: `license-included` \| `bring-your-own-license` \|
# `general-public-license`
# @option options [Integer] :iops
# The new Provisioned IOPS (I/O operations per second) value for the RDS
# instance.
#
# Changing this setting doesn't result in an outage and the change is
# applied during the next maintenance window unless the
# `ApplyImmediately` parameter is enabled for this request. If you are
# migrating from Provisioned IOPS to standard storage, set this value to
# 0. The DB instance will require a reboot for the change in storage
# type to take effect.
#
# If you choose to migrate your DB instance from using standard storage
# to using Provisioned IOPS, or from using Provisioned IOPS to using
# standard storage, the process can take time. The duration of the
# migration depends on several factors such as database load, storage
# size, storage type (standard or Provisioned IOPS), amount of IOPS
# provisioned (if any), and the number of prior scale storage
# operations. Typical migration times are under 24 hours, but the
# process can take up to several days in some cases. During the
# migration, the DB instance is available for use, but might experience
# performance degradation. While the migration takes place, nightly
# backups for the instance are suspended. No other Amazon RDS operations
# can take place for the instance, including modifying the instance,
# rebooting the instance, deleting the instance, creating a read replica
# for the instance, and creating a DB snapshot of the instance.
#
# Constraints: For MariaDB, MySQL, Oracle, and PostgreSQL, the value
# supplied must be at least 10% greater than the current value. Values
# that are not at least 10% greater than the existing value are rounded
# up so that they are 10% greater than the current value.
#
# Default: Uses existing setting
# @option options [String] :option_group_name
# A value that indicates the DB instance should be associated with the
# specified option group.
#
# Changing this parameter doesn't result in an outage, with one
# exception. If the parameter change results in an option group that
# enables OEM, it can cause a brief period, lasting less than a second,
# during which new connections are rejected but existing connections
# aren't interrupted.
#
# The change is applied during the next maintenance window unless the
# `ApplyImmediately` parameter is enabled for this request.
#
# Permanent options, such as the TDE option for Oracle Advanced Security
# TDE, can't be removed from an option group, and that option group
# can't be removed from a DB instance after it is associated with a DB
# instance.
#
# This setting doesn't apply to RDS Custom.
# @option options [String] :new_db_instance_identifier
# The new DB instance identifier for the DB instance when renaming a DB
# instance. When you change the DB instance identifier, an instance
# reboot occurs immediately if you enable `ApplyImmediately`, or will
# occur during the next maintenance window if you disable Apply
# Immediately. This value is stored as a lowercase string.
#
# This setting doesn't apply to RDS Custom.
#
# Constraints:
#
# * Must contain from 1 to 63 letters, numbers, or hyphens.
#
# * The first character must be a letter.
#
# * Can't end with a hyphen or contain two consecutive hyphens.
#
# Example: `mydbinstance`
# @option options [String] :storage_type
# Specifies the storage type to be associated with the DB instance.
#
# If you specify Provisioned IOPS (`io1`), you must also include a value
# for the `Iops` parameter.
#
# If you choose to migrate your DB instance from using standard storage
# to using Provisioned IOPS, or from using Provisioned IOPS to using
# standard storage, the process can take time. The duration of the
# migration depends on several factors such as database load, storage
# size, storage type (standard or Provisioned IOPS), amount of IOPS
# provisioned (if any), and the number of prior scale storage
# operations. Typical migration times are under 24 hours, but the
# process can take up to several days in some cases. During the
# migration, the DB instance is available for use, but might experience
# performance degradation. While the migration takes place, nightly
# backups for the instance are suspended. No other Amazon RDS operations
# can take place for the instance, including modifying the instance,
# rebooting the instance, deleting the instance, creating a read replica
# for the instance, and creating a DB snapshot of the instance.
#
# Valid values: `standard | gp2 | io1`
#
# Default: `io1` if the `Iops` parameter is specified, otherwise `gp2`
# @option options [String] :tde_credential_arn
# The ARN from the key store with which to associate the instance for
# TDE encryption.
#
# This setting doesn't apply to RDS Custom.
# @option options [String] :tde_credential_password
# The password for the given ARN from the key store in order to access
# the device.
#
# This setting doesn't apply to RDS Custom.
# @option options [String] :ca_certificate_identifier
# Specifies the certificate to associate with the DB instance.
#
# This setting doesn't apply to RDS Custom.
# @option options [String] :domain
# The Active Directory directory ID to move the DB instance to. Specify
# `none` to remove the instance from its current domain. You must create
# the domain before this operation. Currently, you can create only
# MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances in an
# Active Directory Domain.
#
# For more information, see [ Kerberos Authentication][1] in the *Amazon
# RDS User Guide*.
#
# This setting doesn't apply to RDS Custom.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html
# @option options [Boolean] :copy_tags_to_snapshot
# A value that indicates whether to copy all tags from the DB instance
# to snapshots of the DB instance. By default, tags are not copied.
#
# **Amazon Aurora**
#
# Not applicable. Copying tags to snapshots is managed by the DB
# cluster. Setting this value for an Aurora DB instance has no effect on
# the DB cluster setting. For more information, see `ModifyDBCluster`.
# @option options [Integer] :monitoring_interval
# The interval, in seconds, between points when Enhanced Monitoring
# metrics are collected for the DB instance. To disable collecting
# Enhanced Monitoring metrics, specify 0, which is the default.
#
# If `MonitoringRoleArn` is specified, set `MonitoringInterval` to a
# value other than 0.
#
# This setting doesn't apply to RDS Custom.
#
# Valid Values: `0, 1, 5, 10, 15, 30, 60`
# @option options [Integer] :db_port_number
# The port number on which the database accepts connections.
#
# The value of the `DBPortNumber` parameter must not match any of the
# port values specified for options in the option group for the DB
# instance.
#
# If you change the `DBPortNumber` value, your database restarts
# regardless of the value of the `ApplyImmediately` parameter.
#
# This setting doesn't apply to RDS Custom.
#
# **MySQL**
#
# Default: `3306`
#
# Valid values: `1150-65535`
#
# **MariaDB**
#
# Default: `3306`
#
# Valid values: `1150-65535`
#
# **PostgreSQL**
#
# Default: `5432`
#
# Valid values: `1150-65535`
#
# Type: Integer
#
# **Oracle**
#
# Default: `1521`
#
# Valid values: `1150-65535`
#
# **SQL Server**
#
# Default: `1433`
#
# Valid values: `1150-65535` except `1234`, `1434`, `3260`, `3343`,
# `3389`, `47001`, and `49152-49156`.
#
# **Amazon Aurora**
#
# Default: `3306`
#
# Valid values: `1150-65535`
# @option options [Boolean] :publicly_accessible
# A value that indicates whether the DB instance is publicly accessible.
#
# When the DB cluster is publicly accessible, its Domain Name System
# (DNS) endpoint resolves to the private IP address from within the DB
# cluster's virtual private cloud (VPC). It resolves to the public IP
# address from outside of the DB cluster's VPC. Access to the DB
# cluster is ultimately controlled by the security group it uses. That
# public access isn't permitted if the security group assigned to the
# DB cluster doesn't permit it.
#
# When the DB instance isn't publicly accessible, it is an internal DB
# instance with a DNS name that resolves to a private IP address.
#
# `PubliclyAccessible` only applies to DB instances in a VPC. The DB
# instance must be part of a public subnet and `PubliclyAccessible` must
# be enabled for it to be publicly accessible.
#
# Changes to the `PubliclyAccessible` parameter are applied immediately
# regardless of the value of the `ApplyImmediately` parameter.
# @option options [String] :monitoring_role_arn
# The ARN for the IAM role that permits RDS to send enhanced monitoring
# metrics to Amazon CloudWatch Logs. For example,
# `arn:aws:iam:123456789012:role/emaccess`. For information on creating
# a monitoring role, see [To create an IAM role for Amazon RDS Enhanced
# Monitoring][1] in the *Amazon RDS User Guide.*
#
# If `MonitoringInterval` is set to a value other than 0, supply a
# `MonitoringRoleArn` value.
#
# This setting doesn't apply to RDS Custom.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html#USER_Monitoring.OS.IAMRole
# @option options [String] :domain_iam_role_name
# The name of the IAM role to use when making API calls to the Directory
# Service.
#
# This setting doesn't apply to RDS Custom.
# @option options [Integer] :promotion_tier
# A value that specifies the order in which an Aurora Replica is
# promoted to the primary instance after a failure of the existing
# primary instance. For more information, see [ Fault Tolerance for an
# Aurora DB Cluster][1] in the *Amazon Aurora User Guide*.
#
# This setting doesn't apply to RDS Custom.
#
# Default: 1
#
# Valid Values: 0 - 15
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.FaultTolerance
# @option options [Boolean] :enable_iam_database_authentication
# A value that indicates whether to enable mapping of Amazon Web
# Services Identity and Access Management (IAM) accounts to database
# accounts. By default, mapping isn't enabled.
#
# This setting doesn't apply to Amazon Aurora. Mapping Amazon Web
# Services IAM accounts to database accounts is managed by the DB
# cluster.
#
# For more information about IAM database authentication, see [ IAM
# Database Authentication for MySQL and PostgreSQL][1] in the *Amazon
# RDS User Guide.*
#
# This setting doesn't apply to RDS Custom.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html
# @option options [Boolean] :enable_performance_insights
# A value that indicates whether to enable Performance Insights for the
# DB instance.
#
# For more information, see [Using Amazon Performance Insights][1] in
# the *Amazon Relational Database Service User Guide*.
#
# This setting doesn't apply to RDS Custom.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html
# @option options [String] :performance_insights_kms_key_id
# The Amazon Web Services KMS key identifier for encryption of
# Performance Insights data.
#
# The Amazon Web Services KMS key identifier is the key ARN, key ID,
# alias ARN, or alias name for the KMS key.
#
# If you do not specify a value for `PerformanceInsightsKMSKeyId`, then
# Amazon RDS uses your default KMS key. There is a default KMS key for
# your Amazon Web Services account. Your Amazon Web Services account has
# a different default KMS key for each Amazon Web Services Region.
#
# This setting doesn't apply to RDS Custom.
# @option options [Integer] :performance_insights_retention_period
# The amount of time, in days, to retain Performance Insights data.
# Valid values are 7 or 731 (2 years).
#
# This setting doesn't apply to RDS Custom.
# @option options [Types::CloudwatchLogsExportConfiguration] :cloudwatch_logs_export_configuration
# The configuration setting for the log types to be enabled for export
# to CloudWatch Logs for a specific DB instance.
#
# A change to the `CloudwatchLogsExportConfiguration` parameter is
# always applied to the DB instance immediately. Therefore, the
# `ApplyImmediately` parameter has no effect.
#
# This setting doesn't apply to RDS Custom.
# @option options [Array] :processor_features
# The number of CPU cores and the number of threads per core for the DB
# instance class of the DB instance.
#
# This setting doesn't apply to RDS Custom.
# @option options [Boolean] :use_default_processor_features
# A value that indicates whether the DB instance class of the DB
# instance uses its default processor features.
#
# This setting doesn't apply to RDS Custom.
# @option options [Boolean] :deletion_protection
# A value that indicates whether the DB instance has deletion protection
# enabled. The database can't be deleted when deletion protection is
# enabled. By default, deletion protection isn't enabled. For more
# information, see [ Deleting a DB Instance][1].
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html
# @option options [Integer] :max_allocated_storage
# The upper limit in gibibytes (GiB) to which Amazon RDS can
# automatically scale the storage of the DB instance.
#
# For more information about this setting, including limitations that
# apply to it, see [ Managing capacity automatically with Amazon RDS
# storage autoscaling][1] in the *Amazon RDS User Guide*.
#
# This setting doesn't apply to RDS Custom.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.Autoscaling
# @option options [Boolean] :certificate_rotation_restart
# A value that indicates whether the DB instance is restarted when you
# rotate your SSL/TLS certificate.
#
# By default, the DB instance is restarted when you rotate your SSL/TLS
# certificate. The certificate is not updated until the DB instance is
# restarted.
#
# Set this parameter only if you are *not* using SSL/TLS to connect to
# the DB instance.
#
# If you are using SSL/TLS to connect to the DB instance, follow the
# appropriate instructions for your DB engine to rotate your SSL/TLS
# certificate:
#
# * For more information about rotating your SSL/TLS certificate for RDS
# DB engines, see [ Rotating Your SSL/TLS Certificate.][1] in the
# *Amazon RDS User Guide.*
#
# * For more information about rotating your SSL/TLS certificate for
# Aurora DB engines, see [ Rotating Your SSL/TLS Certificate][2] in
# the *Amazon Aurora User Guide.*
#
# This setting doesn't apply to RDS Custom.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html
# [2]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL-certificate-rotation.html
# @option options [String] :replica_mode
# A value that sets the open mode of a replica database to either
# mounted or read-only.
#
# Currently, this parameter is only supported for Oracle DB instances.
#
#
#
# Mounted DB replicas are included in Oracle Enterprise Edition. The
# main use case for mounted replicas is cross-Region disaster recovery.
# The primary database doesn't use Active Data Guard to transmit
# information to the mounted replica. Because it doesn't accept user
# connections, a mounted replica can't serve a read-only workload. For
# more information, see [Working with Oracle Read Replicas for Amazon
# RDS][1] in the *Amazon RDS User Guide*.
#
# This setting doesn't apply to RDS Custom.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html
# @option options [Boolean] :enable_customer_owned_ip
# A value that indicates whether to enable a customer-owned IP address
# (CoIP) for an RDS on Outposts DB instance.
#
# A *CoIP* provides local or external connectivity to resources in your
# Outpost subnets through your on-premises network. For some use cases,
# a CoIP can provide lower latency for connections to the DB instance
# from outside of its virtual private cloud (VPC) on your local network.
#
# For more information about RDS on Outposts, see [Working with Amazon
# RDS on Amazon Web Services Outposts][1] in the *Amazon RDS User
# Guide*.
#
# For more information about CoIPs, see [Customer-owned IP addresses][2]
# in the *Amazon Web Services Outposts User Guide*.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html
# [2]: https://docs.aws.amazon.com/outposts/latest/userguide/outposts-networking-components.html#ip-addressing
# @option options [String] :aws_backup_recovery_point_arn
# The Amazon Resource Name (ARN) of the recovery point in Amazon Web
# Services Backup.
#
# This setting doesn't apply to RDS Custom.
# @option options [String] :automation_mode
# The automation mode of the RDS Custom DB instance: `full` or `all
# paused`. If `full`, the DB instance automates monitoring and instance
# recovery. If `all paused`, the instance pauses automation for the
# duration set by `ResumeFullAutomationModeMinutes`.
# @option options [Integer] :resume_full_automation_mode_minutes
# The number of minutes to pause the automation. When the time period
# ends, RDS Custom resumes full automation. The minimum value is `60`
# (default). The maximum value is `1,440`.
# @return [DBInstance]
def modify(options = {})
options = options.merge(db_instance_identifier: @id)
resp = @client.modify_db_instance(options)
DBInstance.new(
id: resp.data.db_instance.db_instance_identifier,
data: resp.data.db_instance,
client: @client
)
end
# @example Request syntax with placeholder values
#
# dbinstance = db_instance.promote({
# backup_retention_period: 1,
# preferred_backup_window: "String",
# })
# @param [Hash] options ({})
# @option options [Integer] :backup_retention_period
# The number of days for which automated backups are retained. Setting
# this parameter to a positive number enables backups. Setting this
# parameter to 0 disables automated backups.
#
# Default: 1
#
# Constraints:
#
# * Must be a value from 0 to 35.
#
# * Can't be set to 0 if the DB instance is a source to read replicas.
# @option options [String] :preferred_backup_window
# The daily time range during which automated backups are created if
# automated backups are enabled, using the `BackupRetentionPeriod`
# parameter.
#
# The default is a 30-minute window selected at random from an 8-hour
# block of time for each Amazon Web Services Region. To see the time
# blocks available, see [ Adjusting the Preferred Maintenance Window][1]
# in the *Amazon RDS User Guide.*
#
# Constraints:
#
# * Must be in the format `hh24:mi-hh24:mi`.
#
# * Must be in Universal Coordinated Time (UTC).
#
# * Must not conflict with the preferred maintenance window.
#
# * Must be at least 30 minutes.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AdjustingTheMaintenanceWindow.html
# @return [DBInstance]
def promote(options = {})
options = options.merge(db_instance_identifier: @id)
resp = @client.promote_read_replica(options)
DBInstance.new(
id: resp.data.db_instance.db_instance_identifier,
data: resp.data.db_instance,
client: @client
)
end
# @example Request syntax with placeholder values
#
# dbinstance = db_instance.reboot({
# force_failover: false,
# })
# @param [Hash] options ({})
# @option options [Boolean] :force_failover
# A value that indicates whether the reboot is conducted through a
# Multi-AZ failover.
#
# Constraint: You can't enable force failover if the instance isn't
# configured for Multi-AZ.
# @return [DBInstance]
def reboot(options = {})
options = options.merge(db_instance_identifier: @id)
resp = @client.reboot_db_instance(options)
DBInstance.new(
id: resp.data.db_instance.db_instance_identifier,
data: resp.data.db_instance,
client: @client
)
end
# @example Request syntax with placeholder values
#
# dbinstance = db_instance.restore({
# target_db_instance_identifier: "String", # required
# restore_time: Time.now,
# use_latest_restorable_time: false,
# db_instance_class: "String",
# port: 1,
# availability_zone: "String",
# db_subnet_group_name: "String",
# multi_az: false,
# publicly_accessible: false,
# auto_minor_version_upgrade: false,
# license_model: "String",
# db_name: "String",
# engine: "String",
# iops: 1,
# option_group_name: "String",
# copy_tags_to_snapshot: false,
# tags: [
# {
# key: "String",
# value: "String",
# },
# ],
# storage_type: "String",
# tde_credential_arn: "String",
# tde_credential_password: "String",
# vpc_security_group_ids: ["String"],
# domain: "String",
# domain_iam_role_name: "String",
# enable_iam_database_authentication: false,
# enable_cloudwatch_logs_exports: ["String"],
# processor_features: [
# {
# name: "String",
# value: "String",
# },
# ],
# use_default_processor_features: false,
# db_parameter_group_name: "String",
# deletion_protection: false,
# source_dbi_resource_id: "String",
# max_allocated_storage: 1,
# source_db_instance_automated_backups_arn: "String",
# enable_customer_owned_ip: false,
# custom_iam_instance_profile: "String",
# backup_target: "String",
# })
# @param [Hash] options ({})
# @option options [required, String] :target_db_instance_identifier
# The name of the new DB instance to be created.
#
# Constraints:
#
# * Must contain from 1 to 63 letters, numbers, or hyphens
#
# * First character must be a letter
#
# * Can't end with a hyphen or contain two consecutive hyphens
# @option options [Time,DateTime,Date,Integer,String] :restore_time
# The date and time to restore from.
#
# Valid Values: Value must be a time in Universal Coordinated Time (UTC)
# format
#
# Constraints:
#
# * Must be before the latest restorable time for the DB instance
#
# * Can't be specified if the `UseLatestRestorableTime` parameter is
# enabled
#
# Example: `2009-09-07T23:45:00Z`
# @option options [Boolean] :use_latest_restorable_time
# A value that indicates whether the DB instance is restored from the
# latest backup time. By default, the DB instance isn't restored from
# the latest backup time.
#
# Constraints: Can't be specified if the `RestoreTime` parameter is
# provided.
# @option options [String] :db_instance_class
# The compute and memory capacity of the Amazon RDS DB instance, for
# example db.m4.large. Not all DB instance classes are available in all
# Amazon Web Services Regions, or for all database engines. For the full
# list of DB instance classes, and availability for your engine, see [DB
# Instance Class][1] in the *Amazon RDS User Guide.*
#
# Default: The same DBInstanceClass as the original DB instance.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html
# @option options [Integer] :port
# The port number on which the database accepts connections.
#
# Constraints: Value must be `1150-65535`
#
# Default: The same port as the original DB instance.
# @option options [String] :availability_zone
# The Availability Zone (AZ) where the DB instance will be created.
#
# Default: A random, system-chosen Availability Zone.
#
# Constraint: You can't specify the `AvailabilityZone` parameter if the
# DB instance is a Multi-AZ deployment.
#
# Example: `us-east-1a`
# @option options [String] :db_subnet_group_name
# The DB subnet group name to use for the new instance.
#
# Constraints: If supplied, must match the name of an existing
# DBSubnetGroup.
#
# Example: `mySubnetgroup`
# @option options [Boolean] :multi_az
# A value that indicates whether the DB instance is a Multi-AZ
# deployment.
#
# This setting doesn't apply to RDS Custom.
#
# Constraint: You can't specify the `AvailabilityZone` parameter if the
# DB instance is a Multi-AZ deployment.
# @option options [Boolean] :publicly_accessible
# A value that indicates whether the DB instance is publicly accessible.
#
# When the DB cluster is publicly accessible, its Domain Name System
# (DNS) endpoint resolves to the private IP address from within the DB
# cluster's virtual private cloud (VPC). It resolves to the public IP
# address from outside of the DB cluster's VPC. Access to the DB
# cluster is ultimately controlled by the security group it uses. That
# public access isn't permitted if the security group assigned to the
# DB cluster doesn't permit it.
#
# When the DB instance isn't publicly accessible, it is an internal DB
# instance with a DNS name that resolves to a private IP address.
#
# For more information, see CreateDBInstance.
# @option options [Boolean] :auto_minor_version_upgrade
# A value that indicates whether minor version upgrades are applied
# automatically to the DB instance during the maintenance window.
#
# This setting doesn't apply to RDS Custom.
# @option options [String] :license_model
# License model information for the restored DB instance.
#
# This setting doesn't apply to RDS Custom.
#
# Default: Same as source.
#
# Valid values: `license-included` \| `bring-your-own-license` \|
# `general-public-license`
# @option options [String] :db_name
# The database name for the restored DB instance.
#
# This parameter isn't supported for the MySQL or MariaDB engines. It
# also doesn't apply to RDS Custom.
#
#
# @option options [String] :engine
# The database engine to use for the new instance.
#
# This setting doesn't apply to RDS Custom.
#
# Default: The same as source
#
# Constraint: Must be compatible with the engine of the source
#
# Valid Values:
#
# * `mariadb`
#
# * `mysql`
#
# * `oracle-ee`
#
# * `oracle-ee-cdb`
#
# * `oracle-se2`
#
# * `oracle-se2-cdb`
#
# * `postgres`
#
# * `sqlserver-ee`
#
# * `sqlserver-se`
#
# * `sqlserver-ex`
#
# * `sqlserver-web`
# @option options [Integer] :iops
# The amount of Provisioned IOPS (input/output operations per second) to
# be initially allocated for the DB instance.
#
# Constraints: Must be an integer greater than 1000.
#
# **SQL Server**
#
# Setting the IOPS value for the SQL Server database engine isn't
# supported.
# @option options [String] :option_group_name
# The name of the option group to be used for the restored DB instance.
#
# Permanent options, such as the TDE option for Oracle Advanced Security
# TDE, can't be removed from an option group, and that option group
# can't be removed from a DB instance after it is associated with a DB
# instance
#
# This setting doesn't apply to RDS Custom.
# @option options [Boolean] :copy_tags_to_snapshot
# A value that indicates whether to copy all tags from the restored DB
# instance to snapshots of the DB instance. By default, tags are not
# copied.
# @option options [Array] :tags
# A list of tags. For more information, see [Tagging Amazon RDS
# Resources][1] in the *Amazon RDS User Guide.*
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html
# @option options [String] :storage_type
# Specifies the storage type to be associated with the DB instance.
#
# Valid values: `standard | gp2 | io1`
#
# If you specify `io1`, you must also include a value for the `Iops`
# parameter.
#
# Default: `io1` if the `Iops` parameter is specified, otherwise `gp2`
# @option options [String] :tde_credential_arn
# The ARN from the key store with which to associate the instance for
# TDE encryption.
#
# This setting doesn't apply to RDS Custom.
# @option options [String] :tde_credential_password
# The password for the given ARN from the key store in order to access
# the device.
#
# This setting doesn't apply to RDS Custom.
# @option options [Array] :vpc_security_group_ids
# A list of EC2 VPC security groups to associate with this DB instance.
#
# Default: The default EC2 VPC security group for the DB subnet group's
# VPC.
# @option options [String] :domain
# Specify the Active Directory directory ID to restore the DB instance
# in. Create the domain before running this command. Currently, you can
# create only the MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB
# instances in an Active Directory Domain.
#
# This setting doesn't apply to RDS Custom.
#
# For more information, see [ Kerberos Authentication][1] in the *Amazon
# RDS User Guide*.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html
# @option options [String] :domain_iam_role_name
# Specify the name of the IAM role to be used when making API calls to
# the Directory Service.
#
# This setting doesn't apply to RDS Custom.
# @option options [Boolean] :enable_iam_database_authentication
# A value that indicates whether to enable mapping of Amazon Web
# Services Identity and Access Management (IAM) accounts to database
# accounts. By default, mapping isn't enabled.
#
# This setting doesn't apply to RDS Custom.
#
# For more information about IAM database authentication, see [ IAM
# Database Authentication for MySQL and PostgreSQL][1] in the *Amazon
# RDS User Guide.*
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html
# @option options [Array] :enable_cloudwatch_logs_exports
# The list of logs that the restored DB instance is to export to
# CloudWatch Logs. The values in the list depend on the DB engine being
# used. For more information, see [Publishing Database Logs to Amazon
# CloudWatch Logs][1] in the *Amazon RDS User Guide*.
#
# This setting doesn't apply to RDS Custom.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch
# @option options [Array] :processor_features
# The number of CPU cores and the number of threads per core for the DB
# instance class of the DB instance.
#
# This setting doesn't apply to RDS Custom.
# @option options [Boolean] :use_default_processor_features
# A value that indicates whether the DB instance class of the DB
# instance uses its default processor features.
#
# This setting doesn't apply to RDS Custom.
# @option options [String] :db_parameter_group_name
# The name of the DB parameter group to associate with this DB instance.
#
# If you do not specify a value for `DBParameterGroupName`, then the
# default `DBParameterGroup` for the specified DB engine is used.
#
# This setting doesn't apply to RDS Custom.
#
# Constraints:
#
# * If supplied, must match the name of an existing DBParameterGroup.
#
# * Must be 1 to 255 letters, numbers, or hyphens.
#
# * First character must be a letter.
#
# * Can't end with a hyphen or contain two consecutive hyphens.
# @option options [Boolean] :deletion_protection
# A value that indicates whether the DB instance has deletion protection
# enabled. The database can't be deleted when deletion protection is
# enabled. By default, deletion protection isn't enabled. For more
# information, see [ Deleting a DB Instance][1].
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html
# @option options [String] :source_dbi_resource_id
# The resource ID of the source DB instance from which to restore.
# @option options [Integer] :max_allocated_storage
# The upper limit in gibibytes (GiB) to which Amazon RDS can
# automatically scale the storage of the DB instance.
#
# For more information about this setting, including limitations that
# apply to it, see [ Managing capacity automatically with Amazon RDS
# storage autoscaling][1] in the *Amazon RDS User Guide*.
#
# This setting doesn't apply to RDS Custom.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.Autoscaling
# @option options [String] :source_db_instance_automated_backups_arn
# The Amazon Resource Name (ARN) of the replicated automated backups
# from which to restore, for example,
# `arn:aws:rds:useast-1:123456789012:auto-backup:ab-L2IJCEXJP7XQ7HOJ4SIEXAMPLE`.
#
# This setting doesn't apply to RDS Custom.
# @option options [Boolean] :enable_customer_owned_ip
# A value that indicates whether to enable a customer-owned IP address
# (CoIP) for an RDS on Outposts DB instance.
#
# A *CoIP* provides local or external connectivity to resources in your
# Outpost subnets through your on-premises network. For some use cases,
# a CoIP can provide lower latency for connections to the DB instance
# from outside of its virtual private cloud (VPC) on your local network.
#
# This setting doesn't apply to RDS Custom.
#
# For more information about RDS on Outposts, see [Working with Amazon
# RDS on Amazon Web Services Outposts][1] in the *Amazon RDS User
# Guide*.
#
# For more information about CoIPs, see [Customer-owned IP addresses][2]
# in the *Amazon Web Services Outposts User Guide*.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html
# [2]: https://docs.aws.amazon.com/outposts/latest/userguide/outposts-networking-components.html#ip-addressing
# @option options [String] :custom_iam_instance_profile
# The instance profile associated with the underlying Amazon EC2
# instance of an RDS Custom DB instance. The instance profile must meet
# the following requirements:
#
# * The profile must exist in your account.
#
# * The profile must have an IAM role that Amazon EC2 has permissions to
# assume.
#
# * The instance profile name and the associated IAM role name must
# start with the prefix `AWSRDSCustom`.
#
# For the list of permissions required for the IAM role, see [ Configure
# IAM and your VPC][1] in the *Amazon Relational Database Service User
# Guide*.
#
# This setting is required for RDS Custom.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-setup-orcl.html#custom-setup-orcl.iam-vpc
# @option options [String] :backup_target
# Specifies where automated backups and manual snapshots are stored for
# the restored DB instance.
#
# Possible values are `outposts` (Amazon Web Services Outposts) and
# `region` (Amazon Web Services Region). The default is `region`.
#
# For more information, see [Working with Amazon RDS on Amazon Web
# Services Outposts][1] in the *Amazon RDS User Guide*.
#
#
#
# [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html
# @return [DBInstance]
def restore(options = {})
options = options.merge(source_db_instance_identifier: @id)
resp = @client.restore_db_instance_to_point_in_time(options)
DBInstance.new(
id: resp.data.db_instance.db_instance_identifier,
data: resp.data.db_instance,
client: @client
)
end
# @example Request syntax with placeholder values
#
# eventsubscription = db_instance.subscribe_to({
# subscription_name: "String", # required
# })
# @param [Hash] options ({})
# @option options [required, String] :subscription_name
# The name of the RDS event notification subscription you want to add a
# source identifier to.
# @return [EventSubscription]
def subscribe_to(options = {})
options = options.merge(source_identifier: @id)
resp = @client.add_source_identifier_to_subscription(options)
EventSubscription.new(
name: resp.data.event_subscription.cust_subscription_id,
data: resp.data.event_subscription,
client: @client
)
end
# @example Request syntax with placeholder values
#
# eventsubscription = db_instance.unsubscribe_from({
# subscription_name: "String", # required
# })
# @param [Hash] options ({})
# @option options [required, String] :subscription_name
# The name of the RDS event notification subscription you want to remove
# a source identifier from.
# @return [EventSubscription]
def unsubscribe_from(options = {})
options = options.merge(source_identifier: @id)
resp = @client.remove_source_identifier_from_subscription(options)
EventSubscription.new(
name: resp.data.event_subscription.cust_subscription_id,
data: resp.data.event_subscription,
client: @client
)
end
# @!group Associations
# @return [Certificate, nil]
def certificate
if data[:ca_certificate_identifier]
Certificate.new(
id: data[:ca_certificate_identifier],
client: @client
)
else
nil
end
end
# @return [DBCluster, nil]
def cluster
if data[:db_cluster_identifier]
DBCluster.new(
id: data[:db_cluster_identifier],
client: @client
)
else
nil
end
end
# @example Request syntax with placeholder values
#
# events = db_instance.events({
# start_time: Time.now,
# end_time: Time.now,
# duration: 1,
# event_categories: ["String"],
# filters: [
# {
# name: "String", # required
# values: ["String"], # required
# },
# ],
# })
# @param [Hash] options ({})
# @option options [Time,DateTime,Date,Integer,String] :start_time
# The beginning of the time interval to retrieve events for, specified
# in ISO 8601 format. For more information about ISO 8601, go to the
# [ISO8601 Wikipedia page.][1]
#
# Example: 2009-07-08T18:00Z
#
#
#
# [1]: http://en.wikipedia.org/wiki/ISO_8601
# @option options [Time,DateTime,Date,Integer,String] :end_time
# The end of the time interval for which to retrieve events, specified
# in ISO 8601 format. For more information about ISO 8601, go to the
# [ISO8601 Wikipedia page.][1]
#
# Example: 2009-07-08T18:00Z
#
#
#
# [1]: http://en.wikipedia.org/wiki/ISO_8601
# @option options [Integer] :duration
# The number of minutes to retrieve events for.
#
# Default: 60
# @option options [Array] :event_categories
# A list of event categories that trigger notifications for a event
# notification subscription.
# @option options [Array] :filters
# This parameter isn't currently supported.
# @return [Event::Collection]
def events(options = {})
batches = Enumerator.new do |y|
options = options.merge(
source_type: "db-instance",
source_identifier: @id
)
resp = @client.describe_events(options)
resp.each_page do |page|
batch = []
page.data.events.each do |e|
batch << Event.new(
source_id: e.source_identifier,
date: e.date,
data: e,
client: @client
)
end
y.yield(batch)
end
end
Event::Collection.new(batches)
end
# @example Request syntax with placeholder values
#
# log_files = db_instance.log_files({
# filename_contains: "String",
# file_last_written: 1,
# file_size: 1,
# filters: [
# {
# name: "String", # required
# values: ["String"], # required
# },
# ],
# })
# @param [Hash] options ({})
# @option options [String] :filename_contains
# Filters the available log files for log file names that contain the
# specified string.
# @option options [Integer] :file_last_written
# Filters the available log files for files written since the specified
# date, in POSIX timestamp format with milliseconds.
# @option options [Integer] :file_size
# Filters the available log files for files larger than the specified
# size.
# @option options [Array] :filters
# This parameter isn't currently supported.
# @return [DBLogFile::Collection]
def log_files(options = {})
batches = Enumerator.new do |y|
options = options.merge(db_instance_identifier: @id)
resp = @client.describe_db_log_files(options)
resp.each_page do |page|
batch = []
page.data.describe_db_log_files.each do |d|
batch << DBLogFile.new(
instance_id: @id,
name: d.log_file_name,
data: d,
client: @client
)
end
y.yield(batch)
end
end
DBLogFile::Collection.new(batches)
end
# @return [OptionGroup::Collection]
def option_groups
batch = []
data[:option_group_memberships].each do |d|
batch << OptionGroup.new(
name: d[:option_group_name],
client: @client
)
end
OptionGroup::Collection.new([batch], size: batch.size)
end
# @return [DBParameterGroup::Collection]
def parameter_groups
batch = []
data[:db_parameter_groups].each do |d|
batch << DBParameterGroup.new(
name: d[:db_parameter_group_name],
client: @client
)
end
DBParameterGroup::Collection.new([batch], size: batch.size)
end
# @example Request syntax with placeholder values
#
# pending_maintenance_actions = db_instance.pending_maintenance_actions({
# resource_identifier: "String",
# filters: [
# {
# name: "String", # required
# values: ["String"], # required
# },
# ],
# })
# @param [Hash] options ({})
# @option options [String] :resource_identifier
# The ARN of a resource to return pending maintenance actions for.
# @option options [Array] :filters
# A filter that specifies one or more resources to return pending
# maintenance actions for.
#
# Supported filters:
#
# * `db-cluster-id` - Accepts DB cluster identifiers and DB cluster
# Amazon Resource Names (ARNs). The results list will only include
# pending maintenance actions for the DB clusters identified by these
# ARNs.
#
# * `db-instance-id` - Accepts DB instance identifiers and DB instance
# ARNs. The results list will only include pending maintenance actions
# for the DB instances identified by these ARNs.
# @return [PendingMaintenanceAction::Collection]
def pending_maintenance_actions(options = {})
batches = Enumerator.new do |y|
options = Aws::Util.deep_merge(options, filters: [{
name: "db-instance-id",
values: [@id]
}])
resp = @client.describe_pending_maintenance_actions(options)
resp.each_page do |page|
batch = []
page.data.pending_maintenance_actions_0.pending_maintenance_action_details.each do |p|
batch << PendingMaintenanceAction.new(
target_arn: resp.data.pending_maintenance_actions[0].resource_identifier,
name: p.action,
data: p,
client: @client
)
end
y.yield(batch)
end
end
PendingMaintenanceAction::Collection.new(batches)
end
# @return [DBInstance::Collection]
def read_replicas
batch = []
data[:read_replica_db_instance_identifiers].each do |d|
batch << DBInstance.new(
id: d,
client: @client
)
end
DBInstance::Collection.new([batch], size: batch.size)
end
# @return [DBSecurityGroup::Collection]
def security_groups
batch = []
data[:db_security_groups].each do |d|
batch << DBSecurityGroup.new(
name: d[:db_security_group_name],
client: @client
)
end
DBSecurityGroup::Collection.new([batch], size: batch.size)
end
# @example Request syntax with placeholder values
#
# snapshots = db_instance.snapshots({
# db_snapshot_identifier: "String",
# snapshot_type: "String",
# filters: [
# {
# name: "String", # required
# values: ["String"], # required
# },
# ],
# include_shared: false,
# include_public: false,
# dbi_resource_id: "String",
# })
# @param [Hash] options ({})
# @option options [String] :db_snapshot_identifier
# A specific DB snapshot identifier to describe. This parameter can't
# be used in conjunction with `DBInstanceIdentifier`. This value is
# stored as a lowercase string.
#
# Constraints:
#
# * If supplied, must match the identifier of an existing DBSnapshot.
#
# * If this identifier is for an automated snapshot, the `SnapshotType`
# parameter must also be specified.
# @option options [String] :snapshot_type
# The type of snapshots to be returned. You can specify one of the
# following values:
#
# * `automated` - Return all DB snapshots that have been automatically
# taken by Amazon RDS for my Amazon Web Services account.
#
# * `manual` - Return all DB snapshots that have been taken by my Amazon
# Web Services account.
#
# * `shared` - Return all manual DB snapshots that have been shared to
# my Amazon Web Services account.
#
# * `public` - Return all DB snapshots that have been marked as public.
#
# * `awsbackup` - Return the DB snapshots managed by the Amazon Web
# Services Backup service.
#
# For information about Amazon Web Services Backup, see the [ *Amazon
# Web Services Backup Developer Guide.* ][1]
#
# The `awsbackup` type does not apply to Aurora.
#
# If you don't specify a `SnapshotType` value, then both automated and
# manual snapshots are returned. Shared and public DB snapshots are not
# included in the returned results by default. You can include shared
# snapshots with these results by enabling the `IncludeShared`
# parameter. You can include public snapshots with these results by
# enabling the `IncludePublic` parameter.
#
# The `IncludeShared` and `IncludePublic` parameters don't apply for
# `SnapshotType` values of `manual` or `automated`. The `IncludePublic`
# parameter doesn't apply when `SnapshotType` is set to `shared`. The
# `IncludeShared` parameter doesn't apply when `SnapshotType` is set to
# `public`.
#
#
#
# [1]: https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html
# @option options [Array] :filters
# A filter that specifies one or more DB snapshots to describe.
#
# Supported filters:
#
# * `db-instance-id` - Accepts DB instance identifiers and DB instance
# Amazon Resource Names (ARNs).
#
# * `db-snapshot-id` - Accepts DB snapshot identifiers.
#
# * `dbi-resource-id` - Accepts identifiers of source DB instances.
#
# * `snapshot-type` - Accepts types of DB snapshots.
#
# * `engine` - Accepts names of database engines.
# @option options [Boolean] :include_shared
# A value that indicates whether to include shared manual DB cluster
# snapshots from other Amazon Web Services accounts that this Amazon Web
# Services account has been given permission to copy or restore. By
# default, these snapshots are not included.
#
# You can give an Amazon Web Services account permission to restore a
# manual DB snapshot from another Amazon Web Services account by using
# the `ModifyDBSnapshotAttribute` API action.
#
# This setting doesn't apply to RDS Custom.
# @option options [Boolean] :include_public
# A value that indicates whether to include manual DB cluster snapshots
# that are public and can be copied or restored by any Amazon Web
# Services account. By default, the public snapshots are not included.
#
# You can share a manual DB snapshot as public by using the
# ModifyDBSnapshotAttribute API.
#
# This setting doesn't apply to RDS Custom.
# @option options [String] :dbi_resource_id
# A specific DB resource ID to describe.
# @return [DBSnapshot::Collection]
def snapshots(options = {})
batches = Enumerator.new do |y|
options = options.merge(db_instance_identifier: @id)
resp = @client.describe_db_snapshots(options)
resp.each_page do |page|
batch = []
page.data.db_snapshots.each do |d|
batch << DBSnapshot.new(
instance_id: options[:db_instance_identifier],
snapshot_id: d.db_snapshot_identifier,
data: d,
client: @client
)
end
y.yield(batch)
end
end
DBSnapshot::Collection.new(batches)
end
# @return [DBInstance, nil]
def source
if data[:read_replica_source_db_instance_identifier]
DBInstance.new(
id: data[:read_replica_source_db_instance_identifier],
client: @client
)
else
nil
end
end
# @return [DBSubnetGroup, nil]
def subnet_group
if data[:db_subnet_group][:db_subnet_group_name]
DBSubnetGroup.new(
name: data[:db_subnet_group][:db_subnet_group_name],
client: @client
)
else
nil
end
end
# @deprecated
# @api private
def identifiers
{ id: @id }
end
deprecated(:identifiers)
private
def extract_id(args, options)
value = args[0] || options.delete(:id)
case value
when String then value
when nil then raise ArgumentError, "missing required option :id"
else
msg = "expected :id to be a String, got #{value.class}"
raise ArgumentError, msg
end
end
class Collection < Aws::Resources::Collection; end
end
end