Class: Aws::RDS::DBSnapshot
- Inherits:
-
Object
- Object
- Aws::RDS::DBSnapshot
- Extended by:
- Deprecations
- Defined in:
- lib/aws-sdk-rds/db_snapshot.rb
Defined Under Namespace
Classes: Collection
Read-Only Attributes collapse
-
#allocated_storage ⇒ Integer
Specifies the allocated storage size in gibibytes (GiB).
-
#availability_zone ⇒ String
Specifies the name of the Availability Zone the DB instance was located in at the time of the DB snapshot.
-
#db_snapshot_arn ⇒ String
The Amazon Resource Name (ARN) for the DB snapshot.
-
#dbi_resource_id ⇒ String
The identifier for the source DB instance, which can’t be changed and which is unique to an AWS Region.
-
#encrypted ⇒ Boolean
Specifies whether the DB snapshot is encrypted.
-
#engine ⇒ String
Specifies the name of the database engine.
-
#engine_version ⇒ String
Specifies the version of the database engine.
-
#iam_database_authentication_enabled ⇒ Boolean
True if mapping of AWS Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.
-
#instance_create_time ⇒ Time
Specifies the time when the snapshot was taken, in Universal Coordinated Time (UTC).
- #instance_id ⇒ String (also: #db_instance_identifier)
-
#iops ⇒ Integer
Specifies the Provisioned IOPS (I/O operations per second) value of the DB instance at the time of the snapshot.
-
#kms_key_id ⇒ String
If ‘Encrypted` is true, the AWS KMS key identifier for the encrypted DB snapshot.
-
#license_model ⇒ String
License model information for the restored DB instance.
-
#master_username ⇒ String
Provides the master username for the DB snapshot.
-
#option_group_name ⇒ String
Provides the option group name for the DB snapshot.
-
#percent_progress ⇒ Integer
The percentage of the estimated data that has been transferred.
-
#port ⇒ Integer
Specifies the port that the database engine was listening on at the time of the snapshot.
-
#processor_features ⇒ Array<Types::ProcessorFeature>
The number of CPU cores and the number of threads per core for the DB instance class of the DB instance when the DB snapshot was created.
-
#snapshot_create_time ⇒ Time
Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC).
- #snapshot_id ⇒ String (also: #db_snapshot_identifier)
-
#snapshot_type ⇒ String
Provides the type of the DB snapshot.
-
#source_db_snapshot_identifier ⇒ String
The DB snapshot Amazon Resource Name (ARN) that the DB snapshot was copied from.
-
#source_region ⇒ String
The AWS Region that the DB snapshot was created in or copied from.
-
#status ⇒ String
Specifies the status of this DB snapshot.
-
#storage_type ⇒ String
Specifies the storage type associated with DB snapshot.
-
#tde_credential_arn ⇒ String
The ARN from the key store with which to associate the instance for TDE encryption.
-
#timezone ⇒ String
The time zone of the DB snapshot.
-
#vpc_id ⇒ String
Provides the VPC ID associated with the DB snapshot.
Actions collapse
- #copy(options = {}) ⇒ DBSnapshot
- #create(options = {}) ⇒ DBSnapshot
- #delete(options = {}) ⇒ DBSnapshot
- #restore(options = {}) ⇒ DBInstance
- #subscribe_to(options = {}) ⇒ EventSubscription
- #unsubscribe_from(options = {}) ⇒ EventSubscription
Associations collapse
- #attributes(options = {}) ⇒ DBSnapshotAttribute::Collection
- #events(options = {}) ⇒ Event::Collection
- #identifiers ⇒ Object deprecated private Deprecated.
- #instance ⇒ DBInstance
- #option_group ⇒ OptionGroup?
Instance Method Summary collapse
- #client ⇒ Client
-
#data ⇒ Types::DBSnapshot
Returns the data for this DBSnapshot.
-
#data_loaded? ⇒ Boolean
Returns ‘true` if this resource is loaded.
-
#initialize(*args) ⇒ DBSnapshot
constructor
A new instance of DBSnapshot.
-
#load ⇒ self
(also: #reload)
Loads, or reloads #data for the current DBSnapshot.
-
#wait_until(options = {}, &block) ⇒ Resource
deprecated
Deprecated.
Use [Aws::RDS::Client] #wait_until instead
Constructor Details
#initialize(instance_id, snapshot_id, options = {}) ⇒ DBSnapshot #initialize(options = {}) ⇒ DBSnapshot
Returns a new instance of DBSnapshot.
21 22 23 24 25 26 27 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 21 def initialize(*args) = Hash === args.last ? args.pop.dup : {} @instance_id = extract_instance_id(args, ) @snapshot_id = extract_snapshot_id(args, ) @data = .delete(:data) @client = .delete(:client) || Client.new() end |
Instance Method Details
#allocated_storage ⇒ Integer
Specifies the allocated storage size in gibibytes (GiB).
58 59 60 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 58 def allocated_storage data[:allocated_storage] end |
#attributes(options = {}) ⇒ DBSnapshotAttribute::Collection
853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 853 def attributes( = {}) batches = Enumerator.new do |y| batch = [] = .merge(db_snapshot_identifier: @snapshot_id) resp = @client.describe_db_snapshot_attributes() resp.data.db_snapshot_attributes_result.db_snapshot_attributes.each do |d| batch << DBSnapshotAttribute.new( snapshot_id: @snapshot_id, name: d.attribute_name, data: d, client: @client ) end y.yield(batch) end DBSnapshotAttribute::Collection.new(batches) end |
#availability_zone ⇒ String
Specifies the name of the Availability Zone the DB instance was located in at the time of the DB snapshot.
78 79 80 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 78 def availability_zone data[:availability_zone] end |
#client ⇒ Client
217 218 219 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 217 def client @client end |
#copy(options = {}) ⇒ DBSnapshot
508 509 510 511 512 513 514 515 516 517 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 508 def copy( = {}) = .merge(source_db_snapshot_identifier: @snapshot_id) resp = @client.copy_db_snapshot() 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 |
#create(options = {}) ⇒ DBSnapshot
365 366 367 368 369 370 371 372 373 374 375 376 377 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 365 def create( = {}) = .merge( db_instance_identifier: @instance_id, db_snapshot_identifier: @snapshot_id ) resp = @client.create_db_snapshot() 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 |
#data ⇒ Types::DBSnapshot
Returns the data for this Aws::RDS::DBSnapshot. Calls Client#describe_db_snapshots if #data_loaded? is ‘false`.
237 238 239 240 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 237 def data load unless @data @data end |
#data_loaded? ⇒ Boolean
245 246 247 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 245 def data_loaded? !!@data end |
#db_snapshot_arn ⇒ String
The Amazon Resource Name (ARN) for the DB snapshot.
180 181 182 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 180 def db_snapshot_arn data[:db_snapshot_arn] end |
#dbi_resource_id ⇒ String
The identifier for the source DB instance, which can’t be changed and which is unique to an AWS Region.
210 211 212 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 210 def dbi_resource_id data[:dbi_resource_id] end |
#delete(options = {}) ⇒ DBSnapshot
524 525 526 527 528 529 530 531 532 533 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 524 def delete( = {}) = .merge(db_snapshot_identifier: @snapshot_id) resp = @client.delete_db_snapshot() 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 |
#encrypted ⇒ Boolean
Specifies whether the DB snapshot is encrypted.
167 168 169 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 167 def encrypted data[:encrypted] end |
#engine ⇒ String
Specifies the name of the database engine.
52 53 54 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 52 def engine data[:engine] end |
#engine_version ⇒ String
Specifies the version of the database engine.
103 104 105 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 103 def engine_version data[:engine_version] end |
#events(options = {}) ⇒ Event::Collection
916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 916 def events( = {}) batches = Enumerator.new do |y| = .merge( source_type: "db-snapshot", source_identifier: @snapshot_id ) resp = @client.describe_events() 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 |
#iam_database_authentication_enabled ⇒ Boolean
True if mapping of AWS Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.
196 197 198 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 196 def iam_database_authentication_enabled data[:iam_database_authentication_enabled] end |
#identifiers ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
961 962 963 964 965 966 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 961 def identifiers { instance_id: @instance_id, snapshot_id: @snapshot_id } end |
#instance ⇒ DBInstance
940 941 942 943 944 945 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 940 def instance DBInstance.new( id: @instance_id, client: @client ) end |
#instance_create_time ⇒ Time
Specifies the time when the snapshot was taken, in Universal Coordinated Time (UTC).
91 92 93 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 91 def instance_create_time data[:instance_create_time] end |
#instance_id ⇒ String Also known as: db_instance_identifier
32 33 34 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 32 def instance_id @instance_id end |
#iops ⇒ Integer
Specifies the Provisioned IOPS (I/O operations per second) value of the DB instance at the time of the snapshot.
122 123 124 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 122 def iops data[:iops] end |
#kms_key_id ⇒ String
If ‘Encrypted` is true, the AWS KMS key identifier for the encrypted DB snapshot.
174 175 176 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 174 def kms_key_id data[:kms_key_id] end |
#license_model ⇒ String
License model information for the restored DB instance.
109 110 111 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 109 def license_model data[:license_model] end |
#load ⇒ self Also known as: reload
Loads, or reloads #data for the current Aws::RDS::DBSnapshot. Returns ‘self` making it possible to chain methods.
db_snapshot.reload.data
227 228 229 230 231 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 227 def load resp = @client.describe_db_snapshots(db_snapshot_identifier: @snapshot_id) @data = resp.db_snapshots[0] self end |
#master_username ⇒ String
Provides the master username for the DB snapshot.
97 98 99 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 97 def master_username data[:master_username] end |
#option_group ⇒ OptionGroup?
948 949 950 951 952 953 954 955 956 957 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 948 def option_group if data[:db_snapshot][:option_group_name] OptionGroup.new( name: data[:db_snapshot][:option_group_name], client: @client ) else nil end end |
#option_group_name ⇒ String
Provides the option group name for the DB snapshot.
128 129 130 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 128 def option_group_name data[:option_group_name] end |
#percent_progress ⇒ Integer
The percentage of the estimated data that has been transferred.
134 135 136 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 134 def percent_progress data[:percent_progress] end |
#port ⇒ Integer
Specifies the port that the database engine was listening on at the time of the snapshot.
71 72 73 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 71 def port data[:port] end |
#processor_features ⇒ Array<Types::ProcessorFeature>
The number of CPU cores and the number of threads per core for the DB instance class of the DB instance when the DB snapshot was created.
203 204 205 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 203 def processor_features data[:processor_features] end |
#restore(options = {}) ⇒ DBInstance
796 797 798 799 800 801 802 803 804 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 796 def restore( = {}) = .merge(db_snapshot_identifier: @snapshot_id) resp = @client.restore_db_instance_from_db_snapshot() DBInstance.new( id: resp.data.db_instance.db_instance_identifier, data: resp.data.db_instance, client: @client ) end |
#snapshot_create_time ⇒ Time
Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC).
46 47 48 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 46 def snapshot_create_time data[:snapshot_create_time] end |
#snapshot_id ⇒ String Also known as: db_snapshot_identifier
38 39 40 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 38 def snapshot_id @snapshot_id end |
#snapshot_type ⇒ String
Provides the type of the DB snapshot.
115 116 117 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 115 def snapshot_type data[:snapshot_type] end |
#source_db_snapshot_identifier ⇒ String
The DB snapshot Amazon Resource Name (ARN) that the DB snapshot was copied from. It only has value in case of cross-customer or cross-region copy.
148 149 150 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 148 def source_db_snapshot_identifier data[:source_db_snapshot_identifier] end |
#source_region ⇒ String
The AWS Region that the DB snapshot was created in or copied from.
140 141 142 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 140 def source_region data[:source_region] end |
#status ⇒ String
Specifies the status of this DB snapshot.
64 65 66 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 64 def status data[:status] end |
#storage_type ⇒ String
Specifies the storage type associated with DB snapshot.
154 155 156 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 154 def storage_type data[:storage_type] end |
#subscribe_to(options = {}) ⇒ EventSubscription
816 817 818 819 820 821 822 823 824 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 816 def subscribe_to( = {}) = .merge(source_identifier: @snapshot_id) resp = @client.add_source_identifier_to_subscription() EventSubscription.new( name: resp.data.event_subscription.cust_subscription_id, data: resp.data.event_subscription, client: @client ) end |
#tde_credential_arn ⇒ String
The ARN from the key store with which to associate the instance for TDE encryption.
161 162 163 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 161 def tde_credential_arn data[:tde_credential_arn] end |
#timezone ⇒ String
The time zone of the DB snapshot. In most cases, the ‘Timezone` element is empty. `Timezone` content appears only for snapshots taken from Microsoft SQL Server DB instances that were created with a time zone specified.
189 190 191 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 189 def timezone data[:timezone] end |
#unsubscribe_from(options = {}) ⇒ EventSubscription
836 837 838 839 840 841 842 843 844 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 836 def unsubscribe_from( = {}) = .merge(source_identifier: @snapshot_id) resp = @client.remove_source_identifier_from_subscription() EventSubscription.new( name: resp.data.event_subscription.cust_subscription_id, data: resp.data.event_subscription, client: @client ) end |
#vpc_id ⇒ String
Provides the VPC ID associated with the DB snapshot.
84 85 86 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 84 def vpc_id data[:vpc_id] end |
#wait_until(options = {}, &block) ⇒ Resource
Use [Aws::RDS::Client] #wait_until instead
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() {|resource| condition}
## Example
instance.wait_until(max_attempts:10, delay:5) {|instance| instance.state.name == 'running' }
## 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
327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 |
# File 'lib/aws-sdk-rds/db_snapshot.rb', line 327 def wait_until( = {}, &block) self_copy = self.dup attempts = 0 [:max_attempts] = 10 unless .key?(:max_attempts) [:delay] ||= 10 [:poller] = Proc.new do attempts += 1 if block.call(self_copy) [:success, self_copy] else self_copy.reload unless attempts == [:max_attempts] :retry end end Aws::Waiters::Waiter.new().wait({}) end |