# frozen_string_literal: true# WARNING ABOUT GENERATED CODE## This file is generated. See the contributing guide for more information:# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md## WARNING ABOUT GENERATED CODEmoduleAws::S3classBucketLoggingextendAws::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)@waiter_block_warned=falseend# @!group Read-Only Attributes# @return [String]defbucket_name@bucket_nameend# Describes where logs are stored and the prefix that Amazon S3 assigns# to all log object keys for a bucket. For more information, see [PUT# Bucket logging][1] in the *Amazon S3 API Reference*.#### [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html# @return [Types::LoggingEnabled]deflogging_enableddata[:logging_enabled]end# @!endgroup# @return [Client]defclient@clientend# Loads, or reloads {#data} for the current {BucketLogging}.# Returns `self` making it possible to chain methods.## bucket_logging.reload.data## @return [self]defloadresp=@client.get_bucket_logging(bucket: @bucket_name)@data=resp.dataselfendalias:reload:load# @return [Types::GetBucketLoggingOutput]# Returns the data for this {BucketLogging}. Calls# {Client#get_bucket_logging} 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) 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## @yieldparam [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_logging.put({# bucket_logging_status: { # required# logging_enabled: {# target_bucket: "TargetBucket", # required# target_grants: [# {# grantee: {# display_name: "DisplayName",# email_address: "EmailAddress",# id: "ID",# type: "CanonicalUser", # required, accepts CanonicalUser, AmazonCustomerByEmail, Group# uri: "URI",# },# permission: "FULL_CONTROL", # accepts FULL_CONTROL, READ, WRITE# },# ],# target_prefix: "TargetPrefix", # required# },# },# content_md5: "ContentMD5",# expected_bucket_owner: "AccountId",# })# @param [Hash] options ({})# @option options [required, Types::BucketLoggingStatus] :bucket_logging_status# Container for logging status information.# @option options [String] :content_md5# The MD5 hash of the `PutBucketLogging` request body.## For requests made using the AWS Command Line Interface (CLI) or AWS# SDKs, this field is calculated automatically.# @option options [String] :expected_bucket_owner# The account ID of the expected bucket owner. If the bucket is owned by# a different account, the request will fail with an HTTP `403 (Access# Denied)` error.# @return [EmptyStructure]defput(options={})options=options.merge(bucket: @bucket_name)resp=@client.put_bucket_logging(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