# WARNING ABOUT GENERATED CODE## This file is generated. See the contributing guide for more information:# https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md## WARNING ABOUT GENERATED CODEmoduleAws::S3classBucketVersioningextendAws::Deprecations# @overload def initialize(bucket_name, options = {})# @param [String] bucket_name# @option options [Client] :client# @overload def initialize(options = {})# @option options [required, String] :bucket_name# @option options [Client] :clientdefinitialize(*args)options=Hash===args.last?args.pop.dup:{}@bucket_name=extract_bucket_name(args,options)@data=options.delete(:data)@client=options.delete(:client)||Client.new(options)end# @!group Read-Only Attributes# @return [String]defbucket_name@bucket_nameend# The versioning state of the bucket.# @return [String]defstatusdata[:status]end# Specifies whether MFA delete is enabled in the bucket versioning# configuration. This element is only returned if the bucket has been# configured with MFA delete. If the bucket has never been so# configured, this element is not returned.# @return [String]defmfa_deletedata[:mfa_delete]end# @!endgroup# @return [Client]defclient@clientend# Loads, or reloads {#data} for the current {BucketVersioning}.# Returns `self` making it possible to chain methods.## bucket_versioning.reload.data## @return [self]defloadresp=@client.get_bucket_versioning(bucket: @bucket_name)@data=resp.dataselfendalias:reload:load# @return [Types::GetBucketVersioningOutput]# Returns the data for this {BucketVersioning}. Calls# {Client#get_bucket_versioning} if {#data_loaded?} is `false`.defdataloadunless@data@dataend# @return [Boolean]# Returns `true` if this resource is loaded. Accessing attributes or# {#data} on an unloaded resource will trigger a call to {#load}.defdata_loaded?!!@dataend# @deprecated Use [Aws::S3::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) {|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### @yield param [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 successfuldefwait_until(options={},&block)self_copy=self.dupattempts=0options[:max_attempts]=10unlessoptions.key?(:max_attempts)options[:delay]||=10options[:poller]=Proc.newdoattempts+=1ifblock.call(self_copy)[:success,self_copy]elseself_copy.reloadunlessattempts==options[:max_attempts]:retryendendAws::Waiters::Waiter.new(options).wait({})end# @!group Actions# @example Request syntax with placeholder values## bucket_versioning.enable({# content_md5: "ContentMD5",# mfa: "MFA",# })# @param [Hash] options ({})# @option options [String] :content_md5# @option options [String] :mfa# The concatenation of the authentication device's serial number, a# space, and the value that is displayed on your authentication device.# @return [EmptyStructure]defenable(options={})options=Aws::Util.deep_merge(options,bucket: @bucket_name,versioning_configuration: {status: "Enabled"})resp=@client.put_bucket_versioning(options)resp.dataend# @example Request syntax with placeholder values## bucket_versioning.put({# content_md5: "ContentMD5",# mfa: "MFA",# versioning_configuration: { # required# mfa_delete: "Enabled", # accepts Enabled, Disabled# status: "Enabled", # accepts Enabled, Suspended# },# })# @param [Hash] options ({})# @option options [String] :content_md5# @option options [String] :mfa# The concatenation of the authentication device's serial number, a# space, and the value that is displayed on your authentication device.# @option options [required, Types::VersioningConfiguration] :versioning_configuration# @return [EmptyStructure]defput(options={})options=options.merge(bucket: @bucket_name)resp=@client.put_bucket_versioning(options)resp.dataend# @example Request syntax with placeholder values## bucket_versioning.suspend({# content_md5: "ContentMD5",# mfa: "MFA",# })# @param [Hash] options ({})# @option options [String] :content_md5# @option options [String] :mfa# The concatenation of the authentication device's serial number, a# space, and the value that is displayed on your authentication device.# @return [EmptyStructure]defsuspend(options={})options=Aws::Util.deep_merge(options,bucket: @bucket_name,versioning_configuration: {status: "Suspended"})resp=@client.put_bucket_versioning(options)resp.dataend# @!group Associations# @return [Bucket]defbucketBucket.new(name: @bucket_name,client: @client)end# @deprecated# @api privatedefidentifiers{bucket_name: @bucket_name}enddeprecated(:identifiers)privatedefextract_bucket_name(args,options)value=args[0]||options.delete(:bucket_name)casevaluewhenStringthenvaluewhennilthenraiseArgumentError,"missing required option :bucket_name"elsemsg="expected :bucket_name to be a String, got #{value.class}"raiseArgumentError,msgendendclassCollection<Aws::Resources::Collection;endendend