# 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::S3classBucketWebsiteextendAws::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# Specifies the redirect behavior of all requests to a website endpoint# of an Amazon S3 bucket.# @return [Types::RedirectAllRequestsTo]defredirect_all_requests_todata[:redirect_all_requests_to]end# The name of the index document for the website (for example# `index.html`).# @return [Types::IndexDocument]defindex_documentdata[:index_document]end# The object key name of the website error document to use for 4XX class# errors.# @return [Types::ErrorDocument]deferror_documentdata[:error_document]end# Rules that define when a redirect is applied and the redirect# behavior.# @return [Array<Types::RoutingRule>]defrouting_rulesdata[:routing_rules]end# @!endgroup# @return [Client]defclient@clientend# Loads, or reloads {#data} for the current {BucketWebsite}.# Returns `self` making it possible to chain methods.## bucket_website.reload.data## @return [self]defloadresp=@client.get_bucket_website(bucket: @bucket_name)@data=resp.dataselfendalias:reload:load# @return [Types::GetBucketWebsiteOutput]# Returns the data for this {BucketWebsite}. Calls# {Client#get_bucket_website} 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_website.delete({# expected_bucket_owner: "AccountId",# })# @param [Hash] options ({})# @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]defdelete(options={})options=options.merge(bucket: @bucket_name)resp=@client.delete_bucket_website(options)resp.dataend# @example Request syntax with placeholder values## bucket_website.put({# content_md5: "ContentMD5",# website_configuration: { # required# error_document: {# key: "ObjectKey", # required# },# index_document: {# suffix: "Suffix", # required# },# redirect_all_requests_to: {# host_name: "HostName", # required# protocol: "http", # accepts http, https# },# routing_rules: [# {# condition: {# http_error_code_returned_equals: "HttpErrorCodeReturnedEquals",# key_prefix_equals: "KeyPrefixEquals",# },# redirect: { # required# host_name: "HostName",# http_redirect_code: "HttpRedirectCode",# protocol: "http", # accepts http, https# replace_key_prefix_with: "ReplaceKeyPrefixWith",# replace_key_with: "ReplaceKeyWith",# },# },# ],# },# expected_bucket_owner: "AccountId",# })# @param [Hash] options ({})# @option options [String] :content_md5# The base64-encoded 128-bit MD5 digest of the data. You must use this# header as a message integrity check to verify that the request body# was not corrupted in transit. For more information, see [RFC 1864][1].## For requests made using the AWS Command Line Interface (CLI) or AWS# SDKs, this field is calculated automatically.#### [1]: http://www.ietf.org/rfc/rfc1864.txt# @option options [required, Types::WebsiteConfiguration] :website_configuration# Container for the request.# @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_website(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