Class: Aws::RDS::DBEngineVersion

Inherits:
Object
  • Object
show all
Defined in:
gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb

Defined Under Namespace

Classes: Collection

Read-Only Attributes collapse

Associations collapse

Instance Method Summary collapse

Constructor Details

#initialize(engine_name, version, options = {}) ⇒ DBEngineVersion #initialize(options = {}) ⇒ DBEngineVersion

Returns a new instance of DBEngineVersion.

Overloads:

  • #initialize(engine_name, version, options = {}) ⇒ DBEngineVersion

    Parameters:

    • engine_name (String)
    • version (String)

    Options Hash (options):

  • #initialize(options = {}) ⇒ DBEngineVersion

    Options Hash (options):

    • :engine_name (required, String)
    • :version (required, String)
    • :client (Client)


24
25
26
27
28
29
30
31
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 24

def initialize(*args)
  options = Hash === args.last ? args.pop.dup : {}
  @engine_name = extract_engine_name(args, options)
  @version = extract_version(args, options)
  @data = options.delete(:data)
  @client = options.delete(:client) || Client.new(options)
  @waiter_block_warned = false
end

Instance Method Details

#clientClient

Returns:



323
324
325
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 323

def client
  @client
end

#create_timeTime

The creation time of the DB engine version.

Returns:

  • (Time)


137
138
139
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 137

def create_time
  data[:create_time]
end

#custom_db_engine_version_manifestString

JSON string that lists the installation files and parameters that RDS Custom uses to create a custom engine version (CEV). RDS Custom applies the patches in the order in which they're listed in the manifest. You can set the Oracle home, Oracle base, and UNIX/Linux user and group using the installation parameters. For more information, see JSON fields in the CEV manifest in the Amazon RDS User Guide.

Returns:

  • (String)


79
80
81
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 79

def custom_db_engine_version_manifest
  data[:custom_db_engine_version_manifest]
end

#dataTypes::DBEngineVersion

Returns the data for this Aws::RDS::DBEngineVersion. Calls Client#describe_db_engine_versions if #data_loaded? is false.

Returns:



348
349
350
351
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 348

def data
  load unless @data
  @data
end

#data_loaded?Boolean

Returns true if this resource is loaded. Accessing attributes or #data on an unloaded resource will trigger a call to #load.

Returns:

  • (Boolean)

    Returns true if this resource is loaded. Accessing attributes or #data on an unloaded resource will trigger a call to #load.



356
357
358
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 356

def data_loaded?
  !!@data
end

#database_installation_files_s3_bucket_nameString

The name of the Amazon S3 bucket that contains your database installation files.

Returns:

  • (String)


56
57
58
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 56

def database_installation_files_s3_bucket_name
  data[:database_installation_files_s3_bucket_name]
end

#database_installation_files_s3_prefixString

The Amazon S3 directory that contains the database installation files. If not specified, then no prefix is assumed.

Returns:

  • (String)


63
64
65
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 63

def database_installation_files_s3_prefix
  data[:database_installation_files_s3_prefix]
end

#db_engine_descriptionString

The description of the database engine.

Returns:

  • (String)


91
92
93
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 91

def db_engine_description
  data[:db_engine_description]
end

#db_engine_media_typeString

A value that indicates the source media provider of the AMI based on the usage operation. Applicable for RDS Custom for SQL Server.

Returns:

  • (String)


124
125
126
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 124

def db_engine_media_type
  data[:db_engine_media_type]
end

#db_engine_version_arnString

The ARN of the custom engine version.

Returns:

  • (String)


97
98
99
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 97

def db_engine_version_arn
  data[:db_engine_version_arn]
end

#db_engine_version_descriptionString

The description of the database engine version.

Returns:

  • (String)


103
104
105
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 103

def db_engine_version_description
  data[:db_engine_version_description]
end

#db_parameter_group_familyString

The name of the DB parameter group family for the database engine.

Returns:

  • (String)


85
86
87
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 85

def db_parameter_group_family
  data[:db_parameter_group_family]
end

#default_character_setTypes::CharacterSet

The default character set for new instances of this engine version, if the CharacterSetName parameter of the CreateDBInstance API isn't specified.

Returns:



111
112
113
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 111

def default_character_set
  data[:default_character_set]
end

#engine_nameString Also known as: engine

Returns:

  • (String)


36
37
38
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 36

def engine_name
  @engine_name
end

#exportable_log_typesArray<String>

The types of logs that the database engine has available for export to CloudWatch Logs.

Returns:

  • (Array<String>)


172
173
174
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 172

def exportable_log_types
  data[:exportable_log_types]
end

#imageTypes::CustomDBEngineVersionAMI

The EC2 image



117
118
119
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 117

def image
  data[:image]
end

#kms_key_idString

The Amazon Web Services KMS key identifier for an encrypted CEV. This parameter is required for RDS Custom, but optional for Amazon RDS.

Returns:

  • (String)


131
132
133
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 131

def kms_key_id
  data[:kms_key_id]
end

#loadself Also known as: reload

Loads, or reloads #data for the current Aws::RDS::DBEngineVersion. Returns self making it possible to chain methods.

db_engine_version.reload.data

Returns:

  • (self)


333
334
335
336
337
338
339
340
341
342
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 333

def load
  resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
    @client.describe_db_engine_versions(
    engine: @engine_name,
    engine_version: @version
  )
  end
  @data = resp.db_engine_versions[0]
  self
end

#major_engine_versionString

The major engine version of the CEV.

Returns:

  • (String)


49
50
51
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 49

def major_engine_version
  data[:major_engine_version]
end

#option_group_options(options = {}) ⇒ OptionGroupOption::Collection

Examples:

Request syntax with placeholder values


option_group_options = db_engine_version.option_group_options({
  filters: [
    {
      name: "String", # required
      values: ["String"], # required
    },
  ],
})

Parameters:

  • options (Hash) (defaults to: {})

    ({})

Options Hash (options):

  • :filters (Array<Types::Filter>)

    This parameter isn't currently supported.

Returns:



483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 483

def option_group_options(options = {})
  batches = Enumerator.new do |y|
    options = options.merge(
      engine_name: @engine,
      major_engine_version: @version
    )
    resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
      @client.describe_option_group_options(options)
    end
    resp.each_page do |page|
      batch = []
      page.data.option_group_options.each do |o|
        batch << OptionGroupOption.new(
          name: o.name,
          data: o,
          client: @client
        )
      end
      y.yield(batch)
    end
  end
  OptionGroupOption::Collection.new(batches)
end

#option_groups(options = {}) ⇒ OptionGroup::Collection

Examples:

Request syntax with placeholder values


option_groups = db_engine_version.option_groups({
  option_group_name: "String",
  filters: [
    {
      name: "String", # required
      values: ["String"], # required
    },
  ],
})

Parameters:

  • options (Hash) (defaults to: {})

    ({})

Options Hash (options):

  • :option_group_name (String)

    The name of the option group to describe. Can't be supplied together with EngineName or MajorEngineVersion.

  • :filters (Array<Types::Filter>)

    This parameter isn't currently supported.

Returns:



525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 525

def option_groups(options = {})
  batches = Enumerator.new do |y|
    options = options.merge(
      engine_name: @engine,
      major_engine_version: @version
    )
    resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
      @client.describe_option_groups(options)
    end
    resp.each_page do |page|
      batch = []
      page.data.option_groups_list.each do |o|
        batch << OptionGroup.new(
          name: o.option_group_name,
          data: o,
          client: @client
        )
      end
      y.yield(batch)
    end
  end
  OptionGroup::Collection.new(batches)
end

#parameter_group_familyDBParameterGroupFamily?

Returns:



550
551
552
553
554
555
556
557
558
559
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 550

def parameter_group_family
  if data[:db_parameter_group_family]
    DBParameterGroupFamily.new(
      name: data[:db_parameter_group_family],
      client: @client
    )
  else
    nil
  end
end

#serverless_v2_features_supportTypes::ServerlessV2FeaturesSupport

Specifies any Aurora Serverless v2 properties or limits that differ between Aurora engine versions. You can test the values of this attribute when deciding which Aurora version to use in a new or upgraded DB cluster. You can also retrieve the version of an existing DB cluster and check whether that version supports certain Aurora Serverless v2 features before you attempt to use those features.



316
317
318
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 316

def serverless_v2_features_support
  data[:serverless_v2_features_support]
end

#statusString

The status of the DB engine version, either available or deprecated.

Returns:

  • (String)


221
222
223
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 221

def status
  data[:status]
end

#supported_ca_certificate_identifiersArray<String>

A list of the supported CA certificate identifiers.

For more information, see Using SSL/TLS to encrypt a connection to a DB instance in the Amazon RDS User Guide and Using SSL/TLS to encrypt a connection to a DB cluster in the Amazon Aurora User Guide.

Returns:

  • (Array<String>)


287
288
289
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 287

def supported_ca_certificate_identifiers
  data[:supported_ca_certificate_identifiers]
end

#supported_character_setsArray<Types::CharacterSet>

A list of the character sets supported by this engine for the CharacterSetName parameter of the CreateDBInstance operation.

Returns:



144
145
146
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 144

def supported_character_sets
  data[:supported_character_sets]
end

#supported_engine_modesArray<String>

A list of the supported DB engine modes.

Returns:

  • (Array<String>)


191
192
193
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 191

def supported_engine_modes
  data[:supported_engine_modes]
end

#supported_feature_namesArray<String>

A list of features supported by the DB engine.

The supported features vary by DB engine and DB engine version.

To determine the supported features for a specific DB engine and DB engine version using the CLI, use the following command:

aws rds describe-db-engine-versions --engine <engine_name> --engine-version <engine_version>

For example, to determine the supported features for RDS for PostgreSQL version 13.3 using the CLI, use the following command:

aws rds describe-db-engine-versions --engine postgres --engine-version 13.3

The supported features are listed under SupportedFeatureNames in the output.

Returns:

  • (Array<String>)


214
215
216
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 214

def supported_feature_names
  data[:supported_feature_names]
end

#supported_nchar_character_setsArray<Types::CharacterSet>

A list of the character sets supported by the Oracle DB engine for the NcharCharacterSetName parameter of the CreateDBInstance operation.

Returns:



151
152
153
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 151

def supported_nchar_character_sets
  data[:supported_nchar_character_sets]
end

#supported_timezonesArray<Types::Timezone>

A list of the time zones supported by this engine for the Timezone parameter of the CreateDBInstance action.

Returns:



165
166
167
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 165

def supported_timezones
  data[:supported_timezones]
end

#supports_babelfishBoolean

Indicates whether the engine version supports Babelfish for Aurora PostgreSQL.

Returns:

  • (Boolean)


257
258
259
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 257

def supports_babelfish
  data[:supports_babelfish]
end

#supports_certificate_rotation_without_restartBoolean

Indicates whether the engine version supports rotating the server certificate without rebooting the DB instance.

Returns:

  • (Boolean)


271
272
273
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 271

def supports_certificate_rotation_without_restart
  data[:supports_certificate_rotation_without_restart]
end

#supports_global_databasesBoolean

Indicates whether you can use Aurora global databases with a specific DB engine version.

Returns:

  • (Boolean)


235
236
237
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 235

def supports_global_databases
  data[:supports_global_databases]
end

#supports_integrationsBoolean

Indicates whether the DB engine version supports zero-ETL integrations with Amazon Redshift.

Returns:

  • (Boolean)


305
306
307
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 305

def supports_integrations
  data[:supports_integrations]
end

#supports_limitless_databaseBoolean

Indicates whether the DB engine version supports Aurora Limitless Database.

Returns:

  • (Boolean)


264
265
266
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 264

def supports_limitless_database
  data[:supports_limitless_database]
end

#supports_local_write_forwardingBoolean

Indicates whether the DB engine version supports forwarding write operations from reader DB instances to the writer DB instance in the DB cluster. By default, write operations aren't allowed on reader DB instances.

Valid for: Aurora DB clusters only

Returns:

  • (Boolean)


298
299
300
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 298

def supports_local_write_forwarding
  data[:supports_local_write_forwarding]
end

#supports_log_exports_to_cloudwatch_logsBoolean

Indicates whether the engine version supports exporting the log types specified by ExportableLogTypes to CloudWatch Logs.

Returns:

  • (Boolean)


179
180
181
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 179

def supports_log_exports_to_cloudwatch_logs
  data[:supports_log_exports_to_cloudwatch_logs]
end

#supports_parallel_queryBoolean

Indicates whether you can use Aurora parallel query with a specific DB engine version.

Returns:

  • (Boolean)


228
229
230
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 228

def supports_parallel_query
  data[:supports_parallel_query]
end

#supports_read_replicaBoolean

Indicates whether the database engine version supports read replicas.

Returns:

  • (Boolean)


185
186
187
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 185

def supports_read_replica
  data[:supports_read_replica]
end

#tag_listArray<Types::Tag>

A list of tags.

For more information, see Tagging Amazon RDS resources in the Amazon RDS User Guide or Tagging Amazon Aurora and Amazon RDS resources in the Amazon Aurora User Guide.

Returns:



250
251
252
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 250

def tag_list
  data[:tag_list]
end

#valid_upgrade_targetArray<Types::UpgradeTarget>

A list of engine versions that this database engine version can be upgraded to.

Returns:



158
159
160
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 158

def valid_upgrade_target
  data[:valid_upgrade_target]
end

#versionString Also known as: engine_version

Returns:

  • (String)


42
43
44
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 42

def version
  @version
end

#wait_until(options = {}) {|resource| ... } ⇒ Resource

Deprecated.

Use [Aws::RDS::Client] #wait_until instead

Note:

The waiting operation is performed on a copy. The original resource remains unchanged.

Waiter polls an API operation until a resource enters a desired state.

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

attempts attempt in seconds invoked before each attempt invoked before each wait

Parameters:

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • :max_attempts (Integer) — default: 10

    Maximum number of

  • :delay (Integer) — default: 10

    Delay between each

  • :before_attempt (Proc) — default: nil

    Callback

  • :before_wait (Proc) — default: nil

    Callback

Yield Parameters:

  • resource (Resource)

    to be used in the waiting condition.

Returns:

  • (Resource)

    if the waiter was successful

Raises:

  • (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.

  • (Aws::Waiters::Errors::UnexpectedError)

    Raised when an error is encountered while polling for a resource that is not expected.

  • (NotImplementedError)

    Raised when the resource does not



440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
# File 'gems/aws-sdk-rds/lib/aws-sdk-rds/db_engine_version.rb', line 440

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::Plugins::UserAgent.metric('RESOURCE_MODEL') do
    Aws::Waiters::Waiter.new(options).wait({})
  end
end