aws-sdk-s3 1.200.0 → 1.202.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/CHANGELOG.md +12 -0
 - data/VERSION +1 -1
 - data/lib/aws-sdk-s3/bucket_versioning.rb +33 -0
 - data/lib/aws-sdk-s3/client.rb +644 -155
 - data/lib/aws-sdk-s3/client_api.rb +2 -0
 - data/lib/aws-sdk-s3/endpoint_parameters.rb +17 -17
 - data/lib/aws-sdk-s3/multipart_file_uploader.rb +22 -11
 - data/lib/aws-sdk-s3/object.rb +52 -23
 - data/lib/aws-sdk-s3/object_summary.rb +38 -9
 - data/lib/aws-sdk-s3/object_version.rb +7 -9
 - data/lib/aws-sdk-s3/plugins/endpoints.rb +1 -1
 - data/lib/aws-sdk-s3/types.rb +198 -142
 - data/lib/aws-sdk-s3.rb +1 -1
 - data/sig/client.rbs +2 -0
 - data/sig/object.rbs +2 -0
 - data/sig/object_summary.rbs +2 -0
 - data/sig/types.rbs +2 -0
 - metadata +3 -3
 
| 
         @@ -907,6 +907,8 @@ module Aws::S3 
     | 
|
| 
       907 
907 
     | 
    
         
             
                CopyObjectRequest.add_member(:grant_read, Shapes::ShapeRef.new(shape: GrantRead, location: "header", location_name: "x-amz-grant-read"))
         
     | 
| 
       908 
908 
     | 
    
         
             
                CopyObjectRequest.add_member(:grant_read_acp, Shapes::ShapeRef.new(shape: GrantReadACP, location: "header", location_name: "x-amz-grant-read-acp"))
         
     | 
| 
       909 
909 
     | 
    
         
             
                CopyObjectRequest.add_member(:grant_write_acp, Shapes::ShapeRef.new(shape: GrantWriteACP, location: "header", location_name: "x-amz-grant-write-acp"))
         
     | 
| 
      
 910 
     | 
    
         
            +
                CopyObjectRequest.add_member(:if_match, Shapes::ShapeRef.new(shape: IfMatch, location: "header", location_name: "If-Match"))
         
     | 
| 
      
 911 
     | 
    
         
            +
                CopyObjectRequest.add_member(:if_none_match, Shapes::ShapeRef.new(shape: IfNoneMatch, location: "header", location_name: "If-None-Match"))
         
     | 
| 
       910 
912 
     | 
    
         
             
                CopyObjectRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key", metadata: {"contextParam" => {"name" => "Key"}}))
         
     | 
| 
       911 
913 
     | 
    
         
             
                CopyObjectRequest.add_member(:metadata, Shapes::ShapeRef.new(shape: Metadata, location: "headers", location_name: "x-amz-meta-"))
         
     | 
| 
       912 
914 
     | 
    
         
             
                CopyObjectRequest.add_member(:metadata_directive, Shapes::ShapeRef.new(shape: MetadataDirective, location: "header", location_name: "x-amz-metadata-directive"))
         
     | 
| 
         @@ -13,87 +13,87 @@ module Aws::S3 
     | 
|
| 
       13 
13 
     | 
    
         
             
              # @!attribute bucket
         
     | 
| 
       14 
14 
     | 
    
         
             
              #   The S3 bucket used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 bucket.
         
     | 
| 
       15 
15 
     | 
    
         
             
              #
         
     | 
| 
       16 
     | 
    
         
            -
              #   @return [ 
     | 
| 
      
 16 
     | 
    
         
            +
              #   @return [string]
         
     | 
| 
       17 
17 
     | 
    
         
             
              #
         
     | 
| 
       18 
18 
     | 
    
         
             
              # @!attribute region
         
     | 
| 
       19 
19 
     | 
    
         
             
              #   The AWS region used to dispatch the request.
         
     | 
| 
       20 
20 
     | 
    
         
             
              #
         
     | 
| 
       21 
     | 
    
         
            -
              #   @return [ 
     | 
| 
      
 21 
     | 
    
         
            +
              #   @return [string]
         
     | 
| 
       22 
22 
     | 
    
         
             
              #
         
     | 
| 
       23 
23 
     | 
    
         
             
              # @!attribute use_fips
         
     | 
| 
       24 
24 
     | 
    
         
             
              #   When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.
         
     | 
| 
       25 
25 
     | 
    
         
             
              #
         
     | 
| 
       26 
     | 
    
         
            -
              #   @return [ 
     | 
| 
      
 26 
     | 
    
         
            +
              #   @return [boolean]
         
     | 
| 
       27 
27 
     | 
    
         
             
              #
         
     | 
| 
       28 
28 
     | 
    
         
             
              # @!attribute use_dual_stack
         
     | 
| 
       29 
29 
     | 
    
         
             
              #   When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
         
     | 
| 
       30 
30 
     | 
    
         
             
              #
         
     | 
| 
       31 
     | 
    
         
            -
              #   @return [ 
     | 
| 
      
 31 
     | 
    
         
            +
              #   @return [boolean]
         
     | 
| 
       32 
32 
     | 
    
         
             
              #
         
     | 
| 
       33 
33 
     | 
    
         
             
              # @!attribute endpoint
         
     | 
| 
       34 
34 
     | 
    
         
             
              #   Override the endpoint used to send this request
         
     | 
| 
       35 
35 
     | 
    
         
             
              #
         
     | 
| 
       36 
     | 
    
         
            -
              #   @return [ 
     | 
| 
      
 36 
     | 
    
         
            +
              #   @return [string]
         
     | 
| 
       37 
37 
     | 
    
         
             
              #
         
     | 
| 
       38 
38 
     | 
    
         
             
              # @!attribute force_path_style
         
     | 
| 
       39 
39 
     | 
    
         
             
              #   When true, force a path-style endpoint to be used where the bucket name is part of the path.
         
     | 
| 
       40 
40 
     | 
    
         
             
              #
         
     | 
| 
       41 
     | 
    
         
            -
              #   @return [ 
     | 
| 
      
 41 
     | 
    
         
            +
              #   @return [boolean]
         
     | 
| 
       42 
42 
     | 
    
         
             
              #
         
     | 
| 
       43 
43 
     | 
    
         
             
              # @!attribute accelerate
         
     | 
| 
       44 
44 
     | 
    
         
             
              #   When true, use S3 Accelerate. NOTE: Not all regions support S3 accelerate.
         
     | 
| 
       45 
45 
     | 
    
         
             
              #
         
     | 
| 
       46 
     | 
    
         
            -
              #   @return [ 
     | 
| 
      
 46 
     | 
    
         
            +
              #   @return [boolean]
         
     | 
| 
       47 
47 
     | 
    
         
             
              #
         
     | 
| 
       48 
48 
     | 
    
         
             
              # @!attribute use_global_endpoint
         
     | 
| 
       49 
49 
     | 
    
         
             
              #   Whether the global endpoint should be used, rather then the regional endpoint for us-east-1.
         
     | 
| 
       50 
50 
     | 
    
         
             
              #
         
     | 
| 
       51 
     | 
    
         
            -
              #   @return [ 
     | 
| 
      
 51 
     | 
    
         
            +
              #   @return [boolean]
         
     | 
| 
       52 
52 
     | 
    
         
             
              #
         
     | 
| 
       53 
53 
     | 
    
         
             
              # @!attribute use_object_lambda_endpoint
         
     | 
| 
       54 
54 
     | 
    
         
             
              #   Internal parameter to use object lambda endpoint for an operation (eg: WriteGetObjectResponse)
         
     | 
| 
       55 
55 
     | 
    
         
             
              #
         
     | 
| 
       56 
     | 
    
         
            -
              #   @return [ 
     | 
| 
      
 56 
     | 
    
         
            +
              #   @return [boolean]
         
     | 
| 
       57 
57 
     | 
    
         
             
              #
         
     | 
| 
       58 
58 
     | 
    
         
             
              # @!attribute key
         
     | 
| 
       59 
59 
     | 
    
         
             
              #   The S3 Key used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 Key.
         
     | 
| 
       60 
60 
     | 
    
         
             
              #
         
     | 
| 
       61 
     | 
    
         
            -
              #   @return [ 
     | 
| 
      
 61 
     | 
    
         
            +
              #   @return [string]
         
     | 
| 
       62 
62 
     | 
    
         
             
              #
         
     | 
| 
       63 
63 
     | 
    
         
             
              # @!attribute prefix
         
     | 
| 
       64 
64 
     | 
    
         
             
              #   The S3 Prefix used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 Prefix.
         
     | 
| 
       65 
65 
     | 
    
         
             
              #
         
     | 
| 
       66 
     | 
    
         
            -
              #   @return [ 
     | 
| 
      
 66 
     | 
    
         
            +
              #   @return [string]
         
     | 
| 
       67 
67 
     | 
    
         
             
              #
         
     | 
| 
       68 
68 
     | 
    
         
             
              # @!attribute copy_source
         
     | 
| 
       69 
69 
     | 
    
         
             
              #   The Copy Source used for Copy Object request. This is an optional parameter that will be set automatically for operations that are scoped to Copy Source.
         
     | 
| 
       70 
70 
     | 
    
         
             
              #
         
     | 
| 
       71 
     | 
    
         
            -
              #   @return [ 
     | 
| 
      
 71 
     | 
    
         
            +
              #   @return [string]
         
     | 
| 
       72 
72 
     | 
    
         
             
              #
         
     | 
| 
       73 
73 
     | 
    
         
             
              # @!attribute disable_access_points
         
     | 
| 
       74 
74 
     | 
    
         
             
              #   Internal parameter to disable Access Point Buckets
         
     | 
| 
       75 
75 
     | 
    
         
             
              #
         
     | 
| 
       76 
     | 
    
         
            -
              #   @return [ 
     | 
| 
      
 76 
     | 
    
         
            +
              #   @return [boolean]
         
     | 
| 
       77 
77 
     | 
    
         
             
              #
         
     | 
| 
       78 
78 
     | 
    
         
             
              # @!attribute disable_multi_region_access_points
         
     | 
| 
       79 
79 
     | 
    
         
             
              #   Whether multi-region access points (MRAP) should be disabled.
         
     | 
| 
       80 
80 
     | 
    
         
             
              #
         
     | 
| 
       81 
     | 
    
         
            -
              #   @return [ 
     | 
| 
      
 81 
     | 
    
         
            +
              #   @return [boolean]
         
     | 
| 
       82 
82 
     | 
    
         
             
              #
         
     | 
| 
       83 
83 
     | 
    
         
             
              # @!attribute use_arn_region
         
     | 
| 
       84 
84 
     | 
    
         
             
              #   When an Access Point ARN is provided and this flag is enabled, the SDK MUST use the ARN's region when constructing the endpoint instead of the client's configured region.
         
     | 
| 
       85 
85 
     | 
    
         
             
              #
         
     | 
| 
       86 
     | 
    
         
            -
              #   @return [ 
     | 
| 
      
 86 
     | 
    
         
            +
              #   @return [boolean]
         
     | 
| 
       87 
87 
     | 
    
         
             
              #
         
     | 
| 
       88 
88 
     | 
    
         
             
              # @!attribute use_s3_express_control_endpoint
         
     | 
| 
       89 
89 
     | 
    
         
             
              #   Internal parameter to indicate whether S3Express operation should use control plane, (ex. CreateBucket)
         
     | 
| 
       90 
90 
     | 
    
         
             
              #
         
     | 
| 
       91 
     | 
    
         
            -
              #   @return [ 
     | 
| 
      
 91 
     | 
    
         
            +
              #   @return [boolean]
         
     | 
| 
       92 
92 
     | 
    
         
             
              #
         
     | 
| 
       93 
93 
     | 
    
         
             
              # @!attribute disable_s3_express_session_auth
         
     | 
| 
       94 
94 
     | 
    
         
             
              #   Parameter to indicate whether S3Express session auth should be disabled
         
     | 
| 
       95 
95 
     | 
    
         
             
              #
         
     | 
| 
       96 
     | 
    
         
            -
              #   @return [ 
     | 
| 
      
 96 
     | 
    
         
            +
              #   @return [boolean]
         
     | 
| 
       97 
97 
     | 
    
         
             
              #
         
     | 
| 
       98 
98 
     | 
    
         
             
              EndpointParameters = Struct.new(
         
     | 
| 
       99 
99 
     | 
    
         
             
                :bucket,
         
     | 
| 
         @@ -51,11 +51,10 @@ module Aws 
     | 
|
| 
       51 
51 
     | 
    
         | 
| 
       52 
52 
     | 
    
         
             
                  def complete_upload(upload_id, parts, file_size, options)
         
     | 
| 
       53 
53 
     | 
    
         
             
                    @client.complete_multipart_upload(
         
     | 
| 
       54 
     | 
    
         
            -
                      **complete_opts(options) 
     | 
| 
       55 
     | 
    
         
            -
             
     | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
       57 
     | 
    
         
            -
             
     | 
| 
       58 
     | 
    
         
            -
                      )
         
     | 
| 
      
 54 
     | 
    
         
            +
                      **complete_opts(options),
         
     | 
| 
      
 55 
     | 
    
         
            +
                      upload_id: upload_id,
         
     | 
| 
      
 56 
     | 
    
         
            +
                      multipart_upload: { parts: parts },
         
     | 
| 
      
 57 
     | 
    
         
            +
                      mpu_object_size: file_size
         
     | 
| 
       59 
58 
     | 
    
         
             
                    )
         
     | 
| 
       60 
59 
     | 
    
         
             
                  rescue StandardError => e
         
     | 
| 
       61 
60 
     | 
    
         
             
                    abort_upload(upload_id, options, [e])
         
     | 
| 
         @@ -79,8 +78,8 @@ module Aws 
     | 
|
| 
       79 
78 
     | 
    
         
             
                  rescue MultipartUploadError => e
         
     | 
| 
       80 
79 
     | 
    
         
             
                    raise e
         
     | 
| 
       81 
80 
     | 
    
         
             
                  rescue StandardError => e
         
     | 
| 
       82 
     | 
    
         
            -
                    msg = "failed to abort multipart upload: #{e.message}. "\
         
     | 
| 
       83 
     | 
    
         
            -
             
     | 
| 
      
 81 
     | 
    
         
            +
                    msg = "failed to abort multipart upload: #{e.message}. " \
         
     | 
| 
      
 82 
     | 
    
         
            +
                          "Multipart upload failed: #{errors.map(&:message).join('; ')}"
         
     | 
| 
       84 
83 
     | 
    
         
             
                    raise MultipartUploadError.new(msg, errors + [e])
         
     | 
| 
       85 
84 
     | 
    
         
             
                  end
         
     | 
| 
       86 
85 
     | 
    
         | 
| 
         @@ -113,8 +112,15 @@ module Aws 
     | 
|
| 
       113 
112 
     | 
    
         
             
                    keys.any? { |key| checksum_key?(key) }
         
     | 
| 
       114 
113 
     | 
    
         
             
                  end
         
     | 
| 
       115 
114 
     | 
    
         | 
| 
      
 115 
     | 
    
         
            +
                  def checksum_not_required?(options)
         
     | 
| 
      
 116 
     | 
    
         
            +
                    @client.config.request_checksum_calculation == 'when_required' && !options[:checksum_algorithm]
         
     | 
| 
      
 117 
     | 
    
         
            +
                  end
         
     | 
| 
      
 118 
     | 
    
         
            +
             
     | 
| 
       116 
119 
     | 
    
         
             
                  def create_opts(options)
         
     | 
| 
       117 
     | 
    
         
            -
                    opts = { 
     | 
| 
      
 120 
     | 
    
         
            +
                    opts = {}
         
     | 
| 
      
 121 
     | 
    
         
            +
                    unless checksum_not_required?(options)
         
     | 
| 
      
 122 
     | 
    
         
            +
                      opts[:checksum_algorithm] = Aws::Plugins::ChecksumAlgorithm::DEFAULT_CHECKSUM
         
     | 
| 
      
 123 
     | 
    
         
            +
                    end
         
     | 
| 
       118 
124 
     | 
    
         
             
                    opts[:checksum_type] = 'FULL_OBJECT' if has_checksum_key?(options.keys)
         
     | 
| 
       119 
125 
     | 
    
         
             
                    CREATE_OPTIONS.each_with_object(opts) { |k, h| h[k] = options[k] if options.key?(k) }
         
     | 
| 
       120 
126 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -148,9 +154,7 @@ module Aws 
     | 
|
| 
       148 
154 
     | 
    
         
             
                        resp = @client.upload_part(p)
         
     | 
| 
       149 
155 
     | 
    
         
             
                        p[:body].close
         
     | 
| 
       150 
156 
     | 
    
         
             
                        completed_part = { etag: resp.etag, part_number: p[:part_number] }
         
     | 
| 
       151 
     | 
    
         
            -
                         
     | 
| 
       152 
     | 
    
         
            -
                        k = "checksum_#{algorithm}".to_sym
         
     | 
| 
       153 
     | 
    
         
            -
                        completed_part[k] = resp.send(k)
         
     | 
| 
      
 157 
     | 
    
         
            +
                        apply_part_checksum(resp, completed_part)
         
     | 
| 
       154 
158 
     | 
    
         
             
                        completed.push(completed_part)
         
     | 
| 
       155 
159 
     | 
    
         
             
                      rescue StandardError => e
         
     | 
| 
       156 
160 
     | 
    
         
             
                        abort_upload = true
         
     | 
| 
         @@ -164,6 +168,13 @@ module Aws 
     | 
|
| 
       164 
168 
     | 
    
         
             
                    errors
         
     | 
| 
       165 
169 
     | 
    
         
             
                  end
         
     | 
| 
       166 
170 
     | 
    
         | 
| 
      
 171 
     | 
    
         
            +
                  def apply_part_checksum(resp, part)
         
     | 
| 
      
 172 
     | 
    
         
            +
                    return unless (checksum = resp.context.params[:checksum_algorithm])
         
     | 
| 
      
 173 
     | 
    
         
            +
             
     | 
| 
      
 174 
     | 
    
         
            +
                    k = :"checksum_#{checksum.downcase}"
         
     | 
| 
      
 175 
     | 
    
         
            +
                    part[k] = resp.send(k)
         
     | 
| 
      
 176 
     | 
    
         
            +
                  end
         
     | 
| 
      
 177 
     | 
    
         
            +
             
     | 
| 
       167 
178 
     | 
    
         
             
                  def compute_default_part_size(file_size)
         
     | 
| 
       168 
179 
     | 
    
         
             
                    [(file_size.to_f / MAX_PARTS).ceil, MIN_PART_SIZE].max.to_i
         
     | 
| 
       169 
180 
     | 
    
         
             
                  end
         
     | 
    
        data/lib/aws-sdk-s3/object.rb
    CHANGED
    
    | 
         @@ -136,10 +136,10 @@ module Aws::S3 
     | 
|
| 
       136 
136 
     | 
    
         
             
                end
         
     | 
| 
       137 
137 
     | 
    
         | 
| 
       138 
138 
     | 
    
         
             
                # The Base64 encoded, 32-bit `CRC32 checksum` of the object. This
         
     | 
| 
       139 
     | 
    
         
            -
                # checksum is only  
     | 
| 
       140 
     | 
    
         
            -
                #  
     | 
| 
       141 
     | 
    
         
            -
                #  
     | 
| 
       142 
     | 
    
         
            -
                #  
     | 
| 
      
 139 
     | 
    
         
            +
                # checksum is only present if the checksum was uploaded with the object.
         
     | 
| 
      
 140 
     | 
    
         
            +
                # When you use an API operation on an object that was uploaded using
         
     | 
| 
      
 141 
     | 
    
         
            +
                # multipart uploads, this value may not be a direct checksum value of
         
     | 
| 
      
 142 
     | 
    
         
            +
                # the full object. Instead, it's a calculation based on the checksum
         
     | 
| 
       143 
143 
     | 
    
         
             
                # values of each individual part. For more information about how
         
     | 
| 
       144 
144 
     | 
    
         
             
                # checksums are calculated with multipart uploads, see [ Checking object
         
     | 
| 
       145 
145 
     | 
    
         
             
                # integrity][1] in the *Amazon S3 User Guide*.
         
     | 
| 
         @@ -181,8 +181,8 @@ module Aws::S3 
     | 
|
| 
       181 
181 
     | 
    
         
             
                  data[:checksum_crc64nvme]
         
     | 
| 
       182 
182 
     | 
    
         
             
                end
         
     | 
| 
       183 
183 
     | 
    
         | 
| 
       184 
     | 
    
         
            -
                # The Base64 encoded, 160-bit `SHA1` digest of the object. This  
     | 
| 
       185 
     | 
    
         
            -
                # only  
     | 
| 
      
 184 
     | 
    
         
            +
                # The Base64 encoded, 160-bit `SHA1` digest of the object. This checksum
         
     | 
| 
      
 185 
     | 
    
         
            +
                # is only present if the checksum was uploaded with the object. When you
         
     | 
| 
       186 
186 
     | 
    
         
             
                # use the API operation on an object that was uploaded using multipart
         
     | 
| 
       187 
187 
     | 
    
         
             
                # uploads, this value may not be a direct checksum value of the full
         
     | 
| 
       188 
188 
     | 
    
         
             
                # object. Instead, it's a calculation based on the checksum values of
         
     | 
| 
         @@ -198,14 +198,14 @@ module Aws::S3 
     | 
|
| 
       198 
198 
     | 
    
         
             
                  data[:checksum_sha1]
         
     | 
| 
       199 
199 
     | 
    
         
             
                end
         
     | 
| 
       200 
200 
     | 
    
         | 
| 
       201 
     | 
    
         
            -
                # The Base64 encoded, 256-bit `SHA256` digest of the object. This 
     | 
| 
       202 
     | 
    
         
            -
                # only  
     | 
| 
       203 
     | 
    
         
            -
                # use an API operation on an object that was uploaded using 
     | 
| 
       204 
     | 
    
         
            -
                # uploads, this value may not be a direct checksum value of 
     | 
| 
       205 
     | 
    
         
            -
                # object. Instead, it's a calculation based on the checksum 
     | 
| 
       206 
     | 
    
         
            -
                # each individual part. For more information about how 
     | 
| 
       207 
     | 
    
         
            -
                # calculated with multipart uploads, see [ Checking object 
     | 
| 
       208 
     | 
    
         
            -
                # in the *Amazon S3 User Guide*.
         
     | 
| 
      
 201 
     | 
    
         
            +
                # The Base64 encoded, 256-bit `SHA256` digest of the object. This
         
     | 
| 
      
 202 
     | 
    
         
            +
                # checksum is only present if the checksum was uploaded with the object.
         
     | 
| 
      
 203 
     | 
    
         
            +
                # When you use an API operation on an object that was uploaded using
         
     | 
| 
      
 204 
     | 
    
         
            +
                # multipart uploads, this value may not be a direct checksum value of
         
     | 
| 
      
 205 
     | 
    
         
            +
                # the full object. Instead, it's a calculation based on the checksum
         
     | 
| 
      
 206 
     | 
    
         
            +
                # values of each individual part. For more information about how
         
     | 
| 
      
 207 
     | 
    
         
            +
                # checksums are calculated with multipart uploads, see [ Checking object
         
     | 
| 
      
 208 
     | 
    
         
            +
                # integrity][1] in the *Amazon S3 User Guide*.
         
     | 
| 
       209 
209 
     | 
    
         
             
                #
         
     | 
| 
       210 
210 
     | 
    
         
             
                #
         
     | 
| 
       211 
211 
     | 
    
         
             
                #
         
     | 
| 
         @@ -757,6 +757,8 @@ module Aws::S3 
     | 
|
| 
       757 
757 
     | 
    
         
             
                #     grant_read: "GrantRead",
         
     | 
| 
       758 
758 
     | 
    
         
             
                #     grant_read_acp: "GrantReadACP",
         
     | 
| 
       759 
759 
     | 
    
         
             
                #     grant_write_acp: "GrantWriteACP",
         
     | 
| 
      
 760 
     | 
    
         
            +
                #     if_match: "IfMatch",
         
     | 
| 
      
 761 
     | 
    
         
            +
                #     if_none_match: "IfNoneMatch",
         
     | 
| 
       760 
762 
     | 
    
         
             
                #     metadata: {
         
     | 
| 
       761 
763 
     | 
    
         
             
                #       "MetadataKey" => "MetadataValue",
         
     | 
| 
       762 
764 
     | 
    
         
             
                #     },
         
     | 
| 
         @@ -1013,6 +1015,35 @@ module Aws::S3 
     | 
|
| 
       1013 
1015 
     | 
    
         
             
                #   * This functionality is not supported for Amazon S3 on Outposts.
         
     | 
| 
       1014 
1016 
     | 
    
         
             
                #
         
     | 
| 
       1015 
1017 
     | 
    
         
             
                #    </note>
         
     | 
| 
      
 1018 
     | 
    
         
            +
                # @option options [String] :if_match
         
     | 
| 
      
 1019 
     | 
    
         
            +
                #   Copies the object if the entity tag (ETag) of the destination object
         
     | 
| 
      
 1020 
     | 
    
         
            +
                #   matches the specified tag. If the ETag values do not match, the
         
     | 
| 
      
 1021 
     | 
    
         
            +
                #   operation returns a `412 Precondition Failed` error. If a concurrent
         
     | 
| 
      
 1022 
     | 
    
         
            +
                #   operation occurs during the upload S3 returns a `409
         
     | 
| 
      
 1023 
     | 
    
         
            +
                #   ConditionalRequestConflict` response. On a 409 failure you should
         
     | 
| 
      
 1024 
     | 
    
         
            +
                #   fetch the object's ETag and retry the upload.
         
     | 
| 
      
 1025 
     | 
    
         
            +
                #
         
     | 
| 
      
 1026 
     | 
    
         
            +
                #   Expects the ETag value as a string.
         
     | 
| 
      
 1027 
     | 
    
         
            +
                #
         
     | 
| 
      
 1028 
     | 
    
         
            +
                #   For more information about conditional requests, see [RFC 7232][1].
         
     | 
| 
      
 1029 
     | 
    
         
            +
                #
         
     | 
| 
      
 1030 
     | 
    
         
            +
                #
         
     | 
| 
      
 1031 
     | 
    
         
            +
                #
         
     | 
| 
      
 1032 
     | 
    
         
            +
                #   [1]: https://tools.ietf.org/html/rfc7232
         
     | 
| 
      
 1033 
     | 
    
         
            +
                # @option options [String] :if_none_match
         
     | 
| 
      
 1034 
     | 
    
         
            +
                #   Copies the object only if the object key name at the destination does
         
     | 
| 
      
 1035 
     | 
    
         
            +
                #   not already exist in the bucket specified. Otherwise, Amazon S3
         
     | 
| 
      
 1036 
     | 
    
         
            +
                #   returns a `412 Precondition Failed` error. If a concurrent operation
         
     | 
| 
      
 1037 
     | 
    
         
            +
                #   occurs during the upload S3 returns a `409 ConditionalRequestConflict`
         
     | 
| 
      
 1038 
     | 
    
         
            +
                #   response. On a 409 failure you should retry the upload.
         
     | 
| 
      
 1039 
     | 
    
         
            +
                #
         
     | 
| 
      
 1040 
     | 
    
         
            +
                #   Expects the '*' (asterisk) character.
         
     | 
| 
      
 1041 
     | 
    
         
            +
                #
         
     | 
| 
      
 1042 
     | 
    
         
            +
                #   For more information about conditional requests, see [RFC 7232][1].
         
     | 
| 
      
 1043 
     | 
    
         
            +
                #
         
     | 
| 
      
 1044 
     | 
    
         
            +
                #
         
     | 
| 
      
 1045 
     | 
    
         
            +
                #
         
     | 
| 
      
 1046 
     | 
    
         
            +
                #   [1]: https://tools.ietf.org/html/rfc7232
         
     | 
| 
       1016 
1047 
     | 
    
         
             
                # @option options [Hash<String,String>] :metadata
         
     | 
| 
       1017 
1048 
     | 
    
         
             
                #   A map of metadata to store with the object in S3.
         
     | 
| 
       1018 
1049 
     | 
    
         
             
                # @option options [String] :metadata_directive
         
     | 
| 
         @@ -1535,17 +1566,15 @@ module Aws::S3 
     | 
|
| 
       1535 
1566 
     | 
    
         
             
                #   you provide does not match the actual owner of the bucket, the request
         
     | 
| 
       1536 
1567 
     | 
    
         
             
                #   fails with the HTTP status code `403 Forbidden` (access denied).
         
     | 
| 
       1537 
1568 
     | 
    
         
             
                # @option options [String] :if_match
         
     | 
| 
       1538 
     | 
    
         
            -
                #    
     | 
| 
       1539 
     | 
    
         
            -
                #    
     | 
| 
       1540 
     | 
    
         
            -
                #    
     | 
| 
       1541 
     | 
    
         
            -
                #    
     | 
| 
       1542 
     | 
    
         
            -
                #   response`.
         
     | 
| 
       1543 
     | 
    
         
            -
                #
         
     | 
| 
       1544 
     | 
    
         
            -
                #   For more information about conditional requests, see [RFC 7232][1].
         
     | 
| 
      
 1569 
     | 
    
         
            +
                #   Deletes the object if the ETag (entity tag) value provided during the
         
     | 
| 
      
 1570 
     | 
    
         
            +
                #   delete operation matches the ETag of the object in S3. If the ETag
         
     | 
| 
      
 1571 
     | 
    
         
            +
                #   values do not match, the operation returns a `412 Precondition Failed`
         
     | 
| 
      
 1572 
     | 
    
         
            +
                #   error.
         
     | 
| 
       1545 
1573 
     | 
    
         
             
                #
         
     | 
| 
       1546 
     | 
    
         
            -
                #    
     | 
| 
      
 1574 
     | 
    
         
            +
                #   Expects the ETag value as a string. `If-Match` does accept a string
         
     | 
| 
      
 1575 
     | 
    
         
            +
                #   value of an '*' (asterisk) character to denote a match of any ETag.
         
     | 
| 
       1547 
1576 
     | 
    
         
             
                #
         
     | 
| 
       1548 
     | 
    
         
            -
                # 
     | 
| 
      
 1577 
     | 
    
         
            +
                #   For more information about conditional requests, see [RFC 7232][1].
         
     | 
| 
       1549 
1578 
     | 
    
         
             
                #
         
     | 
| 
       1550 
1579 
     | 
    
         
             
                #
         
     | 
| 
       1551 
1580 
     | 
    
         
             
                #
         
     | 
| 
         @@ -354,6 +354,8 @@ module Aws::S3 
     | 
|
| 
       354 
354 
     | 
    
         
             
                #     grant_read: "GrantRead",
         
     | 
| 
       355 
355 
     | 
    
         
             
                #     grant_read_acp: "GrantReadACP",
         
     | 
| 
       356 
356 
     | 
    
         
             
                #     grant_write_acp: "GrantWriteACP",
         
     | 
| 
      
 357 
     | 
    
         
            +
                #     if_match: "IfMatch",
         
     | 
| 
      
 358 
     | 
    
         
            +
                #     if_none_match: "IfNoneMatch",
         
     | 
| 
       357 
359 
     | 
    
         
             
                #     metadata: {
         
     | 
| 
       358 
360 
     | 
    
         
             
                #       "MetadataKey" => "MetadataValue",
         
     | 
| 
       359 
361 
     | 
    
         
             
                #     },
         
     | 
| 
         @@ -610,6 +612,35 @@ module Aws::S3 
     | 
|
| 
       610 
612 
     | 
    
         
             
                #   * This functionality is not supported for Amazon S3 on Outposts.
         
     | 
| 
       611 
613 
     | 
    
         
             
                #
         
     | 
| 
       612 
614 
     | 
    
         
             
                #    </note>
         
     | 
| 
      
 615 
     | 
    
         
            +
                # @option options [String] :if_match
         
     | 
| 
      
 616 
     | 
    
         
            +
                #   Copies the object if the entity tag (ETag) of the destination object
         
     | 
| 
      
 617 
     | 
    
         
            +
                #   matches the specified tag. If the ETag values do not match, the
         
     | 
| 
      
 618 
     | 
    
         
            +
                #   operation returns a `412 Precondition Failed` error. If a concurrent
         
     | 
| 
      
 619 
     | 
    
         
            +
                #   operation occurs during the upload S3 returns a `409
         
     | 
| 
      
 620 
     | 
    
         
            +
                #   ConditionalRequestConflict` response. On a 409 failure you should
         
     | 
| 
      
 621 
     | 
    
         
            +
                #   fetch the object's ETag and retry the upload.
         
     | 
| 
      
 622 
     | 
    
         
            +
                #
         
     | 
| 
      
 623 
     | 
    
         
            +
                #   Expects the ETag value as a string.
         
     | 
| 
      
 624 
     | 
    
         
            +
                #
         
     | 
| 
      
 625 
     | 
    
         
            +
                #   For more information about conditional requests, see [RFC 7232][1].
         
     | 
| 
      
 626 
     | 
    
         
            +
                #
         
     | 
| 
      
 627 
     | 
    
         
            +
                #
         
     | 
| 
      
 628 
     | 
    
         
            +
                #
         
     | 
| 
      
 629 
     | 
    
         
            +
                #   [1]: https://tools.ietf.org/html/rfc7232
         
     | 
| 
      
 630 
     | 
    
         
            +
                # @option options [String] :if_none_match
         
     | 
| 
      
 631 
     | 
    
         
            +
                #   Copies the object only if the object key name at the destination does
         
     | 
| 
      
 632 
     | 
    
         
            +
                #   not already exist in the bucket specified. Otherwise, Amazon S3
         
     | 
| 
      
 633 
     | 
    
         
            +
                #   returns a `412 Precondition Failed` error. If a concurrent operation
         
     | 
| 
      
 634 
     | 
    
         
            +
                #   occurs during the upload S3 returns a `409 ConditionalRequestConflict`
         
     | 
| 
      
 635 
     | 
    
         
            +
                #   response. On a 409 failure you should retry the upload.
         
     | 
| 
      
 636 
     | 
    
         
            +
                #
         
     | 
| 
      
 637 
     | 
    
         
            +
                #   Expects the '*' (asterisk) character.
         
     | 
| 
      
 638 
     | 
    
         
            +
                #
         
     | 
| 
      
 639 
     | 
    
         
            +
                #   For more information about conditional requests, see [RFC 7232][1].
         
     | 
| 
      
 640 
     | 
    
         
            +
                #
         
     | 
| 
      
 641 
     | 
    
         
            +
                #
         
     | 
| 
      
 642 
     | 
    
         
            +
                #
         
     | 
| 
      
 643 
     | 
    
         
            +
                #   [1]: https://tools.ietf.org/html/rfc7232
         
     | 
| 
       613 
644 
     | 
    
         
             
                # @option options [Hash<String,String>] :metadata
         
     | 
| 
       614 
645 
     | 
    
         
             
                #   A map of metadata to store with the object in S3.
         
     | 
| 
       615 
646 
     | 
    
         
             
                # @option options [String] :metadata_directive
         
     | 
| 
         @@ -1132,17 +1163,15 @@ module Aws::S3 
     | 
|
| 
       1132 
1163 
     | 
    
         
             
                #   you provide does not match the actual owner of the bucket, the request
         
     | 
| 
       1133 
1164 
     | 
    
         
             
                #   fails with the HTTP status code `403 Forbidden` (access denied).
         
     | 
| 
       1134 
1165 
     | 
    
         
             
                # @option options [String] :if_match
         
     | 
| 
       1135 
     | 
    
         
            -
                #    
     | 
| 
       1136 
     | 
    
         
            -
                #    
     | 
| 
       1137 
     | 
    
         
            -
                #    
     | 
| 
       1138 
     | 
    
         
            -
                #    
     | 
| 
       1139 
     | 
    
         
            -
                #   response`.
         
     | 
| 
      
 1166 
     | 
    
         
            +
                #   Deletes the object if the ETag (entity tag) value provided during the
         
     | 
| 
      
 1167 
     | 
    
         
            +
                #   delete operation matches the ETag of the object in S3. If the ETag
         
     | 
| 
      
 1168 
     | 
    
         
            +
                #   values do not match, the operation returns a `412 Precondition Failed`
         
     | 
| 
      
 1169 
     | 
    
         
            +
                #   error.
         
     | 
| 
       1140 
1170 
     | 
    
         
             
                #
         
     | 
| 
       1141 
     | 
    
         
            -
                #    
     | 
| 
      
 1171 
     | 
    
         
            +
                #   Expects the ETag value as a string. `If-Match` does accept a string
         
     | 
| 
      
 1172 
     | 
    
         
            +
                #   value of an '*' (asterisk) character to denote a match of any ETag.
         
     | 
| 
       1142 
1173 
     | 
    
         
             
                #
         
     | 
| 
       1143 
     | 
    
         
            -
                #    
     | 
| 
       1144 
     | 
    
         
            -
                #
         
     | 
| 
       1145 
     | 
    
         
            -
                #    </note>
         
     | 
| 
      
 1174 
     | 
    
         
            +
                #   For more information about conditional requests, see [RFC 7232][1].
         
     | 
| 
       1146 
1175 
     | 
    
         
             
                #
         
     | 
| 
       1147 
1176 
     | 
    
         
             
                #
         
     | 
| 
       1148 
1177 
     | 
    
         
             
                #
         
     | 
| 
         @@ -312,17 +312,15 @@ module Aws::S3 
     | 
|
| 
       312 
312 
     | 
    
         
             
                #   you provide does not match the actual owner of the bucket, the request
         
     | 
| 
       313 
313 
     | 
    
         
             
                #   fails with the HTTP status code `403 Forbidden` (access denied).
         
     | 
| 
       314 
314 
     | 
    
         
             
                # @option options [String] :if_match
         
     | 
| 
       315 
     | 
    
         
            -
                #    
     | 
| 
       316 
     | 
    
         
            -
                #    
     | 
| 
       317 
     | 
    
         
            -
                #    
     | 
| 
       318 
     | 
    
         
            -
                #    
     | 
| 
       319 
     | 
    
         
            -
                #   response`.
         
     | 
| 
       320 
     | 
    
         
            -
                #
         
     | 
| 
       321 
     | 
    
         
            -
                #   For more information about conditional requests, see [RFC 7232][1].
         
     | 
| 
      
 315 
     | 
    
         
            +
                #   Deletes the object if the ETag (entity tag) value provided during the
         
     | 
| 
      
 316 
     | 
    
         
            +
                #   delete operation matches the ETag of the object in S3. If the ETag
         
     | 
| 
      
 317 
     | 
    
         
            +
                #   values do not match, the operation returns a `412 Precondition Failed`
         
     | 
| 
      
 318 
     | 
    
         
            +
                #   error.
         
     | 
| 
       322 
319 
     | 
    
         
             
                #
         
     | 
| 
       323 
     | 
    
         
            -
                #    
     | 
| 
      
 320 
     | 
    
         
            +
                #   Expects the ETag value as a string. `If-Match` does accept a string
         
     | 
| 
      
 321 
     | 
    
         
            +
                #   value of an '*' (asterisk) character to denote a match of any ETag.
         
     | 
| 
       324 
322 
     | 
    
         
             
                #
         
     | 
| 
       325 
     | 
    
         
            -
                # 
     | 
| 
      
 323 
     | 
    
         
            +
                #   For more information about conditional requests, see [RFC 7232][1].
         
     | 
| 
       326 
324 
     | 
    
         
             
                #
         
     | 
| 
       327 
325 
     | 
    
         
             
                #
         
     | 
| 
       328 
326 
     | 
    
         
             
                #
         
     | 
| 
         @@ -25,7 +25,7 @@ The endpoint provider used to resolve endpoints. Any object that responds to 
     | 
|
| 
       25 
25 
     | 
    
         | 
| 
       26 
26 
     | 
    
         
             
                  option(
         
     | 
| 
       27 
27 
     | 
    
         
             
                    :disable_s3_express_session_auth,
         
     | 
| 
       28 
     | 
    
         
            -
                    doc_type: ' 
     | 
| 
      
 28 
     | 
    
         
            +
                    doc_type: 'boolean',
         
     | 
| 
       29 
29 
     | 
    
         
             
                    docstring: <<~DOCS) do |cfg|
         
     | 
| 
       30 
30 
     | 
    
         
             
            Parameter to indicate whether S3Express session auth should be disabled
         
     | 
| 
       31 
31 
     | 
    
         
             
                    DOCS
         
     |