Class: Aws::S3::BucketLifecycle
- Inherits:
- 
      Object
      
        - Object
- Aws::S3::BucketLifecycle
 
- Defined in:
- gems/aws-sdk-s3/lib/aws-sdk-s3/bucket_lifecycle.rb
Defined Under Namespace
Classes: Collection
Read-Only Attributes collapse
- 
  
    
      #bucket_name  ⇒ String 
    
    
  
  
  
  
  
  
  
  
  
    
- 
  
    
      #rules  ⇒ Array<Types::Rule> 
    
    
  
  
  
  
  
  
  
  
  
    Container for a lifecycle rule. 
Actions collapse
Associations collapse
Instance Method Summary collapse
- 
  
    
      #client  ⇒ Client 
    
    
  
  
  
  
  
  
  
  
  
    
- 
  
    
      #data  ⇒ Types::GetBucketLifecycleOutput 
    
    
  
  
  
  
  
  
  
  
  
    Returns the data for this BucketLifecycle. 
- 
  
    
      #data_loaded?  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    Returns trueif this resource is loaded.
- 
  
    
      #initialize(*args)  ⇒ BucketLifecycle 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of BucketLifecycle. 
- 
  
    
      #load  ⇒ self 
    
    
      (also: #reload)
    
  
  
  
  
  
  
  
  
  
    Loads, or reloads #data for the current BucketLifecycle. 
- 
  
    
      #wait_until(options = {}) {|resource| ... } ⇒ Resource 
    
    
  
  
  
  
  
  
  deprecated
  
  
    Deprecated. Use [Aws::S3::Client] #wait_until instead 
Constructor Details
#initialize(bucket_name, options = {}) ⇒ BucketLifecycle #initialize(options = {}) ⇒ BucketLifecycle
Returns a new instance of BucketLifecycle.
| 22 23 24 25 26 27 28 | # File 'gems/aws-sdk-s3/lib/aws-sdk-s3/bucket_lifecycle.rb', line 22 def initialize(*args) = Hash === args.last ? args.pop.dup : {} @bucket_name = extract_bucket_name(args, ) @data = .delete(:data) @client = .delete(:client) || Client.new() @waiter_block_warned = false end | 
Instance Method Details
#bucket ⇒ Bucket
| 280 281 282 283 284 285 | # File 'gems/aws-sdk-s3/lib/aws-sdk-s3/bucket_lifecycle.rb', line 280 def bucket Bucket.new( name: @bucket_name, client: @client ) end | 
#bucket_name ⇒ String
| 33 34 35 | # File 'gems/aws-sdk-s3/lib/aws-sdk-s3/bucket_lifecycle.rb', line 33 def bucket_name @bucket_name end | 
#client ⇒ Client
| 46 47 48 | # File 'gems/aws-sdk-s3/lib/aws-sdk-s3/bucket_lifecycle.rb', line 46 def client @client end | 
#data ⇒ Types::GetBucketLifecycleOutput
Returns the data for this Aws::S3::BucketLifecycle. Calls
Client#get_bucket_lifecycle if #data_loaded? is false.
| 68 69 70 71 | # File 'gems/aws-sdk-s3/lib/aws-sdk-s3/bucket_lifecycle.rb', line 68 def data load unless @data @data end | 
#data_loaded? ⇒ Boolean
| 76 77 78 | # File 'gems/aws-sdk-s3/lib/aws-sdk-s3/bucket_lifecycle.rb', line 76 def data_loaded? !!@data end | 
#delete(options = {}) ⇒ EmptyStructure
| 197 198 199 200 201 202 203 | # File 'gems/aws-sdk-s3/lib/aws-sdk-s3/bucket_lifecycle.rb', line 197 def delete( = {}) = .merge(bucket: @bucket_name) resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do @client.delete_bucket_lifecycle() end resp.data end | 
#load ⇒ self Also known as: reload
Loads, or reloads #data for the current Aws::S3::BucketLifecycle.
Returns self making it possible to chain methods.
bucket_lifecycle.reload.data
| 56 57 58 59 60 61 62 | # File 'gems/aws-sdk-s3/lib/aws-sdk-s3/bucket_lifecycle.rb', line 56 def load resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do @client.get_bucket_lifecycle(bucket: @bucket_name) end @data = resp.data self end | 
#put(options = {}) ⇒ EmptyStructure
| 269 270 271 272 273 274 275 | # File 'gems/aws-sdk-s3/lib/aws-sdk-s3/bucket_lifecycle.rb', line 269 def put( = {}) = .merge(bucket: @bucket_name) resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do @client.put_bucket_lifecycle() end resp.data end | 
#rules ⇒ Array<Types::Rule>
Container for a lifecycle rule.
| 39 40 41 | # File 'gems/aws-sdk-s3/lib/aws-sdk-s3/bucket_lifecycle.rb', line 39 def rules data[:rules] end | 
#wait_until(options = {}) {|resource| ... } ⇒ Resource
Use [Aws::S3::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
| 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 | # File 'gems/aws-sdk-s3/lib/aws-sdk-s3/bucket_lifecycle.rb', line 160 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 |