Class: Aws::RDS::DBSnapshotAttribute
- Inherits:
- 
      Object
      
        - Object
- Aws::RDS::DBSnapshotAttribute
 
- Extended by:
- Deprecations
- Defined in:
- lib/aws-sdk-rds/db_snapshot_attribute.rb
Defined Under Namespace
Classes: Collection
Read-Only Attributes collapse
- 
  
    
      #attribute_values  ⇒ Array<String> 
    
    
  
  
  
  
  
  
  
  
  
    The value or values for the manual DB snapshot attribute. 
- #name ⇒ String (also: #attribute_name)
- #snapshot_id ⇒ String
Actions collapse
- #identifiers ⇒ Object deprecated private Deprecated.
- #modify(options = {}) ⇒ Types::ModifyDBSnapshotAttributeResult
Instance Method Summary collapse
- #client ⇒ Client
- 
  
    
      #data  ⇒ Types::DBSnapshotAttribute 
    
    
  
  
  
  
  
  
  
  
  
    Returns the data for this DBSnapshotAttribute. 
- 
  
    
      #data_loaded?  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    Returns ‘true` if this resource is loaded. 
- 
  
    
      #initialize(*args)  ⇒ DBSnapshotAttribute 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of DBSnapshotAttribute. 
- #load ⇒ Object (also: #reload) private
- 
  
    
      #wait_until(options = {}) {|resource| ... } ⇒ Resource 
    
    
  
  
  
  
  
  
  deprecated
  
  
    Deprecated. Use [Aws::RDS::Client] #wait_until instead 
Constructor Details
#initialize(snapshot_id, name, options = {}) ⇒ DBSnapshotAttribute #initialize(options = {}) ⇒ DBSnapshotAttribute
Returns a new instance of DBSnapshotAttribute.
| 24 25 26 27 28 29 30 31 | # File 'lib/aws-sdk-rds/db_snapshot_attribute.rb', line 24 def initialize(*args) = Hash === args.last ? args.pop.dup : {} @snapshot_id = extract_snapshot_id(args, ) @name = extract_name(args, ) @data = .delete(:data) @client = .delete(:client) || Client.new() @waiter_block_warned = false end | 
Instance Method Details
#attribute_values ⇒ Array<String>
The value or values for the manual DB snapshot attribute.
If the ‘AttributeName` field is set to `restore`, then this element returns a list of IDs of the Amazon Web Services accounts that are authorized to copy or restore the manual DB snapshot. If a value of `all` is in the list, then the manual DB snapshot is public and available for any Amazon Web Services account to copy or restore.
| 54 55 56 | # File 'lib/aws-sdk-rds/db_snapshot_attribute.rb', line 54 def attribute_values data[:attribute_values] end | 
#client ⇒ Client
| 61 62 63 | # File 'lib/aws-sdk-rds/db_snapshot_attribute.rb', line 61 def client @client end | 
#data ⇒ Types::DBSnapshotAttribute
Returns the data for this Aws::RDS::DBSnapshotAttribute.
| 76 77 78 79 | # File 'lib/aws-sdk-rds/db_snapshot_attribute.rb', line 76 def data load unless @data @data end | 
#data_loaded? ⇒ Boolean
| 84 85 86 | # File 'lib/aws-sdk-rds/db_snapshot_attribute.rb', line 84 def data_loaded? !!@data 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.
| 231 232 233 234 235 236 | # File 'lib/aws-sdk-rds/db_snapshot_attribute.rb', line 231 def identifiers { snapshot_id: @snapshot_id, name: @name } end | 
#load ⇒ Object Also known as: reload
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.
| 67 68 69 70 | # File 'lib/aws-sdk-rds/db_snapshot_attribute.rb', line 67 def load msg = "#load is not implemented, data only available via enumeration" raise NotImplementedError, msg end | 
#modify(options = {}) ⇒ Types::ModifyDBSnapshotAttributeResult
| 218 219 220 221 222 223 224 225 226 227 | # File 'lib/aws-sdk-rds/db_snapshot_attribute.rb', line 218 def modify( = {}) = .merge( attribute_name: @name, db_snapshot_identifier: @snapshot_id ) resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do @client.modify_db_snapshot_attribute() end resp.data end | 
#name ⇒ String Also known as: attribute_name
| 41 42 43 | # File 'lib/aws-sdk-rds/db_snapshot_attribute.rb', line 41 def name @name end | 
#snapshot_id ⇒ String
| 36 37 38 | # File 'lib/aws-sdk-rds/db_snapshot_attribute.rb', line 36 def snapshot_id @snapshot_id end | 
#wait_until(options = {}) {|resource| ... } ⇒ 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) 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
| 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 | # File 'lib/aws-sdk-rds/db_snapshot_attribute.rb', line 168 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::Plugins::UserAgent.metric('RESOURCE_MODEL') do Aws::Waiters::Waiter.new().wait({}) end end |