aws-sdk-s3control 1.23.0 → 1.24.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.
@@ -28,6 +28,8 @@ module Aws::S3Control
28
28
  #
29
29
  # ## Error Classes
30
30
  # * {BadRequestException}
31
+ # * {BucketAlreadyExists}
32
+ # * {BucketAlreadyOwnedByYou}
31
33
  # * {IdempotencyException}
32
34
  # * {InternalServiceException}
33
35
  # * {InvalidNextTokenException}
@@ -59,6 +61,26 @@ module Aws::S3Control
59
61
  end
60
62
  end
61
63
 
64
+ class BucketAlreadyExists < ServiceError
65
+
66
+ # @param [Seahorse::Client::RequestContext] context
67
+ # @param [String] message
68
+ # @param [Aws::S3Control::Types::BucketAlreadyExists] data
69
+ def initialize(context, message, data = Aws::EmptyStructure.new)
70
+ super(context, message, data)
71
+ end
72
+ end
73
+
74
+ class BucketAlreadyOwnedByYou < ServiceError
75
+
76
+ # @param [Seahorse::Client::RequestContext] context
77
+ # @param [String] message
78
+ # @param [Aws::S3Control::Types::BucketAlreadyOwnedByYou] data
79
+ def initialize(context, message, data = Aws::EmptyStructure.new)
80
+ super(context, message, data)
81
+ end
82
+ end
83
+
62
84
  class IdempotencyException < ServiceError
63
85
 
64
86
  # @param [Seahorse::Client::RequestContext] context
@@ -0,0 +1,215 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../arn/outpost_access_point_arn'
4
+ require_relative '../arn/outpost_bucket_arn'
5
+
6
+ module Aws
7
+ module S3Control
8
+ module Plugins
9
+ # When an ARN is provided for :bucket or :name in S3Control operations,
10
+ # this plugin resolves the request endpoint from the ARN when possible.
11
+ # @api private
12
+ class ARN < Seahorse::Client::Plugin
13
+ option(
14
+ :s3_use_arn_region,
15
+ default: true,
16
+ doc_type: 'Boolean',
17
+ docstring: <<-DOCS) do |cfg|
18
+ For S3 and S3 Outposts ARNs passed into the `:bucket` or `:name`
19
+ parameter, this option will use the region in the ARN, allowing
20
+ for cross-region requests to be made. Set to `false` to use the
21
+ client's region instead.
22
+ DOCS
23
+ resolve_s3_use_arn_region(cfg)
24
+ end
25
+
26
+ # param validator is validate:50 (required to add account_id from arn)
27
+ # endpoint is build:90 (populates the URI for the first time)
28
+ # endpoint pattern is build:10 (prefix account id to host)
29
+ def add_handlers(handlers, _config)
30
+ handlers.add(ARNHandler, step: :validate, priority: 75)
31
+ handlers.add(UrlHandler)
32
+ end
33
+
34
+ class UrlHandler < Seahorse::Client::Handler
35
+ def call(context)
36
+ if context.metadata[:s3_arn]
37
+ ARN.resolve_url!(
38
+ context.http_request.endpoint,
39
+ context.metadata[:s3_arn][:arn],
40
+ context.metadata[:s3_arn][:resolved_region],
41
+ context.metadata[:s3_arn][:dualstack]
42
+ )
43
+ end
44
+ @handler.call(context)
45
+ end
46
+ end
47
+
48
+ class ARNHandler < Seahorse::Client::Handler
49
+ def call(context)
50
+ arn_member = _arn_member(context.operation.input.shape)
51
+ if arn_member && (bucket = context.params[arn_member])
52
+ resolved_region, arn = ARN.resolve_arn!(
53
+ bucket,
54
+ context.config.region,
55
+ context.config.s3_use_arn_region
56
+ )
57
+ if arn
58
+ validate_config!(context, arn)
59
+
60
+ if arn.is_a?(OutpostAccessPointARN) ||
61
+ arn.is_a?(OutpostBucketARN)
62
+ set_outpost_header!(context, arn)
63
+ # disable account_id prefix for outposts urls
64
+ context.config.disable_host_prefix_injection = true
65
+ end
66
+ set_account_param!(context, arn)
67
+
68
+ # depending on the ARN's resource type, put the resource value
69
+ # back onto params
70
+ context.params[arn_member] = arn.input_member
71
+
72
+ context.metadata[:s3_arn] = {
73
+ arn: arn,
74
+ resolved_region: resolved_region,
75
+ dualstack: extract_dualstack_config!(context)
76
+ }
77
+ end
78
+ end
79
+ @handler.call(context)
80
+ end
81
+
82
+ private
83
+
84
+ # This looks for BucketName or AccessPointName, but prefers BucketName
85
+ # for CreateAccessPoint because it contains both but should not have
86
+ # an Access Point ARN as AccessPointName.
87
+ def _arn_member(input)
88
+ input.members.each do |member, ref|
89
+ if ref.shape.name == 'BucketName' ||
90
+ (ref.shape.name == 'AccessPointName' &&
91
+ input.name != 'CreateAccessPointRequest')
92
+ return member
93
+ end
94
+ end
95
+ end
96
+
97
+ # other plugins use dualstack so disable it when we're done
98
+ def extract_dualstack_config!(context)
99
+ dualstack = context[:use_dualstack_endpoint]
100
+ context[:use_dualstack_endpoint] = false if dualstack
101
+ dualstack
102
+ end
103
+
104
+ def validate_config!(context, arn)
105
+ unless context.config.regional_endpoint
106
+ raise ArgumentError,
107
+ 'Cannot provide both an Access Point ARN and setting '\
108
+ ':endpoint.'
109
+ end
110
+
111
+ if !arn.support_dualstack? && context[:use_dualstack_endpoint]
112
+ raise ArgumentError,
113
+ 'Cannot provide both an Outpost Access Point ARN and '\
114
+ 'setting :use_dualstack_endpoint to true.'
115
+ end
116
+ end
117
+
118
+ def set_outpost_header!(context, arn)
119
+ context.http_request.headers['x-amz-outpost-id'] = arn.outpost_id
120
+ end
121
+
122
+ def set_account_param!(context, arn)
123
+ if context.params[:account_id] &&
124
+ context.params[:account_id] != arn.account_id
125
+ raise ArgumentError,
126
+ 'Cannot provide an Account ID that is different from the '\
127
+ 'Account ID in the ARN.'
128
+ end
129
+ context.params[:account_id] = arn.account_id
130
+ end
131
+ end
132
+
133
+ class << self
134
+ # @api private
135
+ def resolve_arn!(member_value, region, use_arn_region)
136
+ if Aws::ARNParser.arn?(member_value)
137
+ arn = Aws::ARNParser.parse(member_value)
138
+ if arn.resource.include?('bucket')
139
+ s3_arn = Aws::S3Control::OutpostBucketARN.new(arn.to_h)
140
+ elsif arn.resource.include?('accesspoint')
141
+ s3_arn = Aws::S3Control::OutpostAccessPointARN.new(arn.to_h)
142
+ else
143
+ raise ArgumentError,
144
+ 'Only Outpost Bucket and Outpost Access Point ARNs are '\
145
+ 'currently supported.'
146
+ end
147
+ s3_arn.validate_arn!
148
+ validate_region_config!(s3_arn, region, use_arn_region)
149
+ region = s3_arn.region if use_arn_region
150
+ [region, s3_arn]
151
+ else
152
+ [region]
153
+ end
154
+ end
155
+
156
+ # @api private
157
+ def resolve_url!(url, arn, region, dualstack = false)
158
+ url.host = arn.host_url(region, dualstack)
159
+ url
160
+ end
161
+
162
+ private
163
+
164
+ def resolve_s3_use_arn_region(cfg)
165
+ value = ENV['AWS_S3_USE_ARN_REGION'] ||
166
+ Aws.shared_config.s3_use_arn_region(profile: cfg.profile) ||
167
+ 'true'
168
+ value = Aws::Util.str_2_bool(value)
169
+ # Raise if provided value is not true or false
170
+ if value.nil?
171
+ raise ArgumentError,
172
+ 'Must provide either `true` or `false` for '\
173
+ 's3_use_arn_region profile option or for '\
174
+ "ENV['AWS_S3_USE_ARN_REGION']"
175
+ end
176
+ value
177
+ end
178
+
179
+ def validate_region_config!(arn, region, use_arn_region)
180
+ fips = arn.support_fips?
181
+
182
+ # s3-external-1 is specific just to s3 and not part of partitions
183
+ # aws-global is a partition region
184
+ unless arn.partition == 'aws' &&
185
+ (region == 's3-external-1' || region == 'aws-global')
186
+ if !fips && arn.region.include?('fips')
187
+ raise ArgumentError,
188
+ 'FIPS region ARNs are not supported for this type of ARN.'
189
+ end
190
+
191
+ if !fips && !use_arn_region && region.include?('fips')
192
+ raise ArgumentError,
193
+ 'FIPS client regions are not supported for this type of '\
194
+ 'ARN without s3_use_arn_region.'
195
+ end
196
+
197
+ # if it's a fips region, attempt to normalize it
198
+ if fips || use_arn_region
199
+ region = region.gsub('fips-', '').gsub('-fips', '')
200
+ end
201
+ if use_arn_region &&
202
+ !Aws::Partitions.partition(arn.partition).region?(region)
203
+ raise Aws::Errors::InvalidARNPartitionError
204
+ end
205
+
206
+ if !use_arn_region && region != arn.region
207
+ raise Aws::Errors::InvalidARNRegionError
208
+ end
209
+ end
210
+ end
211
+ end
212
+ end
213
+ end
214
+ end
215
+ end
@@ -7,10 +7,15 @@ module Aws
7
7
  module Plugins
8
8
  # This plugin is an implementation detail and may be modified.
9
9
  # @api private
10
- class S3Signer < Seahorse::Client::Plugin
10
+ class S3ControlSigner < Seahorse::Client::Plugin
11
+ SPECIAL_OUTPOST_OPERATIONS = [
12
+ 'CreateBucket',
13
+ 'ListRegionalBuckets'
14
+ ].freeze
11
15
 
12
16
  option(:sigv4_signer) do |cfg|
13
- S3Signer.build_v4_signer(
17
+ S3ControlSigner.build_v4_signer(
18
+ service: 's3',
14
19
  region: cfg.sigv4_region,
15
20
  credentials: cfg.credentials
16
21
  )
@@ -22,12 +27,11 @@ module Aws
22
27
  Aws::Partitions::EndpointProvider.signing_region(cfg.region, 's3')
23
28
  end
24
29
 
25
- def add_handlers(handlers, cfg)
30
+ def add_handlers(handlers, _cfg)
26
31
  handlers.add(V4Handler, step: :sign)
27
32
  end
28
33
 
29
34
  class V4Handler < Seahorse::Client::Handler
30
-
31
35
  def call(context)
32
36
  Aws::Plugins::SignatureV4.apply_signature(
33
37
  context: context,
@@ -39,47 +43,48 @@ module Aws
39
43
  private
40
44
 
41
45
  def sigv4_signer(context)
42
- # If the client was configured with the wrong region,
43
- # we have to build a new signer.
44
- if
45
- context[:cached_sigv4_region] &&
46
- context[:cached_sigv4_region] != context.config.sigv4_signer.region
47
- then
48
- S3Signer.build_v4_signer(
49
- region: context[:cached_sigv4_region],
46
+ if (arn = context.metadata[:s3_arn]) &&
47
+ arn[:arn].respond_to?(:outpost_id)
48
+ S3ControlSigner.build_v4_signer(
49
+ service: 's3-outposts',
50
+ region: arn[:resolved_region],
51
+ credentials: context.config.credentials
52
+ )
53
+ elsif outpost_operation?(context)
54
+ context.http_request.endpoint.host =
55
+ "s3-outposts.#{context.config.region}.amazonaws.com"
56
+ S3ControlSigner.build_v4_signer(
57
+ service: 's3-outposts',
58
+ region: context.config.region,
50
59
  credentials: context.config.credentials
51
60
  )
52
61
  else
53
62
  context.config.sigv4_signer
54
63
  end
55
64
  end
65
+
66
+ # Some operations do not take an ARN parameter and are special cases
67
+ # For these operations, the presence of the outpost_id parameter
68
+ # must trigger special endpoint and signer redirection
69
+ def outpost_operation?(context)
70
+ SPECIAL_OUTPOST_OPERATIONS.include?(context.operation.name) &&
71
+ context.params[:outpost_id]
72
+ end
56
73
  end
57
74
 
58
75
  class << self
59
-
60
76
  # @option options [required, String] :region
61
77
  # @option options [required, #credentials] :credentials
62
78
  # @api private
63
79
  def build_v4_signer(options = {})
64
- Aws::Sigv4::Signer.new({
65
- service: 's3',
80
+ Aws::Sigv4::Signer.new(
81
+ service: options[:service],
66
82
  region: options[:region],
67
83
  credentials_provider: options[:credentials],
68
84
  uri_escape_path: false,
69
- unsigned_headers: ['content-length', 'x-amzn-trace-id'],
70
- })
71
- end
72
-
73
- def new_hostname(context, region)
74
- bucket = context.params[:bucket]
75
- if region == 'us-east-1'
76
- "#{bucket}.s3.amazonaws.com"
77
- else
78
- endpoint = Aws::Partitions::EndpointProvider.resolve(region, 's3')
79
- bucket + '.' + URI.parse(endpoint).host
80
- end
85
+ unsigned_headers: ['content-length', 'x-amzn-trace-id']
86
+ )
81
87
  end
82
-
83
88
  end
84
89
  end
85
90
  end
@@ -10,6 +10,28 @@
10
10
  module Aws::S3Control
11
11
  module Types
12
12
 
13
+ # The container for abort incomplete multipart upload
14
+ #
15
+ # @note When making an API call, you may pass AbortIncompleteMultipartUpload
16
+ # data as a hash:
17
+ #
18
+ # {
19
+ # days_after_initiation: 1,
20
+ # }
21
+ #
22
+ # @!attribute [rw] days_after_initiation
23
+ # Specifies the number of days after which Amazon S3 aborts an
24
+ # incomplete multipart upload to the Outposts bucket.
25
+ # @return [Integer]
26
+ #
27
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/AbortIncompleteMultipartUpload AWS API Documentation
28
+ #
29
+ class AbortIncompleteMultipartUpload < Struct.new(
30
+ :days_after_initiation)
31
+ SENSITIVE = []
32
+ include Aws::Structure
33
+ end
34
+
13
35
  # An access point used to access a bucket.
14
36
  #
15
37
  # @!attribute [rw] name
@@ -34,13 +56,18 @@ module Aws::S3Control
34
56
  # The name of the bucket associated with this access point.
35
57
  # @return [String]
36
58
  #
59
+ # @!attribute [rw] access_point_arn
60
+ # The ARN for the access point.
61
+ # @return [String]
62
+ #
37
63
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/AccessPoint AWS API Documentation
38
64
  #
39
65
  class AccessPoint < Struct.new(
40
66
  :name,
41
67
  :network_origin,
42
68
  :vpc_configuration,
43
- :bucket)
69
+ :bucket,
70
+ :access_point_arn)
44
71
  SENSITIVE = []
45
72
  include Aws::Structure
46
73
  end
@@ -56,6 +83,21 @@ module Aws::S3Control
56
83
  include Aws::Structure
57
84
  end
58
85
 
86
+ # The requested Outposts bucket name is not available. The bucket
87
+ # namespace is shared by all users of the AWS Outposts in this Region.
88
+ # Select a different name and try again.
89
+ #
90
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/BucketAlreadyExists AWS API Documentation
91
+ #
92
+ class BucketAlreadyExists < Aws::EmptyStructure; end
93
+
94
+ # The Outposts bucket you tried to create already exists, and you own
95
+ # it.
96
+ #
97
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/BucketAlreadyOwnedByYou AWS API Documentation
98
+ #
99
+ class BucketAlreadyOwnedByYou < Aws::EmptyStructure; end
100
+
59
101
  # @note When making an API call, you may pass CreateAccessPointRequest
60
102
  # data as a hash:
61
103
  #
@@ -86,11 +128,25 @@ module Aws::S3Control
86
128
  # @!attribute [rw] bucket
87
129
  # The name of the bucket that you want to associate this access point
88
130
  # with.
131
+ #
132
+ # For Amazon S3 on Outposts specify the ARN of the bucket accessed in
133
+ # the format
134
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
135
+ # For example, to access the bucket `reports` through outpost
136
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
137
+ # use the URL encoding of
138
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
139
+ # The value must be URL encoded.
89
140
  # @return [String]
90
141
  #
91
142
  # @!attribute [rw] vpc_configuration
92
143
  # If you include this field, Amazon S3 restricts access to this access
93
144
  # point to requests from the specified virtual private cloud (VPC).
145
+ #
146
+ # <note markdown="1"> This is required for creating an access point for Amazon S3 on
147
+ # Outposts buckets.
148
+ #
149
+ # </note>
94
150
  # @return [Types::VpcConfiguration]
95
151
  #
96
152
  # @!attribute [rw] public_access_block_configuration
@@ -98,7 +154,9 @@ module Aws::S3Control
98
154
  # Amazon S3 bucket. You can enable the configuration options in any
99
155
  # combination. For more information about when Amazon S3 considers a
100
156
  # bucket or object public, see [The Meaning of "Public"][1] in the
101
- # Amazon Simple Storage Service Developer Guide.
157
+ # *Amazon Simple Storage Service Developer Guide*.
158
+ #
159
+ # This is not supported for Amazon S3 on Outposts.
102
160
  #
103
161
  #
104
162
  #
@@ -117,6 +175,189 @@ module Aws::S3Control
117
175
  include Aws::Structure
118
176
  end
119
177
 
178
+ # @!attribute [rw] access_point_arn
179
+ # The ARN of the access point.
180
+ # @return [String]
181
+ #
182
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateAccessPointResult AWS API Documentation
183
+ #
184
+ class CreateAccessPointResult < Struct.new(
185
+ :access_point_arn)
186
+ SENSITIVE = []
187
+ include Aws::Structure
188
+ end
189
+
190
+ # The container for the bucket configuration.
191
+ #
192
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
193
+ #
194
+ # </note>
195
+ #
196
+ # @note When making an API call, you may pass CreateBucketConfiguration
197
+ # data as a hash:
198
+ #
199
+ # {
200
+ # location_constraint: "EU", # accepts EU, eu-west-1, us-west-1, us-west-2, ap-south-1, ap-southeast-1, ap-southeast-2, ap-northeast-1, sa-east-1, cn-north-1, eu-central-1
201
+ # }
202
+ #
203
+ # @!attribute [rw] location_constraint
204
+ # Specifies the Region where the bucket will be created. If you are
205
+ # creating a bucket on the US East (N. Virginia) Region (us-east-1),
206
+ # you do not need to specify the location.
207
+ #
208
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
209
+ #
210
+ # </note>
211
+ # @return [String]
212
+ #
213
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateBucketConfiguration AWS API Documentation
214
+ #
215
+ class CreateBucketConfiguration < Struct.new(
216
+ :location_constraint)
217
+ SENSITIVE = []
218
+ include Aws::Structure
219
+ end
220
+
221
+ # @note When making an API call, you may pass CreateBucketRequest
222
+ # data as a hash:
223
+ #
224
+ # {
225
+ # acl: "private", # accepts private, public-read, public-read-write, authenticated-read
226
+ # bucket: "BucketName", # required
227
+ # create_bucket_configuration: {
228
+ # location_constraint: "EU", # accepts EU, eu-west-1, us-west-1, us-west-2, ap-south-1, ap-southeast-1, ap-southeast-2, ap-northeast-1, sa-east-1, cn-north-1, eu-central-1
229
+ # },
230
+ # grant_full_control: "GrantFullControl",
231
+ # grant_read: "GrantRead",
232
+ # grant_read_acp: "GrantReadACP",
233
+ # grant_write: "GrantWrite",
234
+ # grant_write_acp: "GrantWriteACP",
235
+ # object_lock_enabled_for_bucket: false,
236
+ # outpost_id: "NonEmptyMaxLength64String",
237
+ # }
238
+ #
239
+ # @!attribute [rw] acl
240
+ # The canned ACL to apply to the bucket.
241
+ #
242
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
243
+ #
244
+ # </note>
245
+ # @return [String]
246
+ #
247
+ # @!attribute [rw] bucket
248
+ # The name of the bucket.
249
+ # @return [String]
250
+ #
251
+ # @!attribute [rw] create_bucket_configuration
252
+ # The configuration information for the bucket.
253
+ #
254
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
255
+ #
256
+ # </note>
257
+ # @return [Types::CreateBucketConfiguration]
258
+ #
259
+ # @!attribute [rw] grant_full_control
260
+ # Allows grantee the read, write, read ACP, and write ACP permissions
261
+ # on the bucket.
262
+ #
263
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
264
+ #
265
+ # </note>
266
+ # @return [String]
267
+ #
268
+ # @!attribute [rw] grant_read
269
+ # Allows grantee to list the objects in the bucket.
270
+ #
271
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
272
+ #
273
+ # </note>
274
+ # @return [String]
275
+ #
276
+ # @!attribute [rw] grant_read_acp
277
+ # Allows grantee to read the bucket ACL.
278
+ #
279
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
280
+ #
281
+ # </note>
282
+ # @return [String]
283
+ #
284
+ # @!attribute [rw] grant_write
285
+ # Allows grantee to create, overwrite, and delete any object in the
286
+ # bucket.
287
+ #
288
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
289
+ #
290
+ # </note>
291
+ # @return [String]
292
+ #
293
+ # @!attribute [rw] grant_write_acp
294
+ # Allows grantee to write the ACL for the applicable bucket.
295
+ #
296
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
297
+ #
298
+ # </note>
299
+ # @return [String]
300
+ #
301
+ # @!attribute [rw] object_lock_enabled_for_bucket
302
+ # Specifies whether you want S3 Object Lock to be enabled for the new
303
+ # bucket.
304
+ #
305
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
306
+ #
307
+ # </note>
308
+ # @return [Boolean]
309
+ #
310
+ # @!attribute [rw] outpost_id
311
+ # The ID of the Outposts where the bucket is being created.
312
+ #
313
+ # <note markdown="1"> This is required by Amazon S3 on Outposts buckets.
314
+ #
315
+ # </note>
316
+ # @return [String]
317
+ #
318
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateBucketRequest AWS API Documentation
319
+ #
320
+ class CreateBucketRequest < Struct.new(
321
+ :acl,
322
+ :bucket,
323
+ :create_bucket_configuration,
324
+ :grant_full_control,
325
+ :grant_read,
326
+ :grant_read_acp,
327
+ :grant_write,
328
+ :grant_write_acp,
329
+ :object_lock_enabled_for_bucket,
330
+ :outpost_id)
331
+ SENSITIVE = []
332
+ include Aws::Structure
333
+ end
334
+
335
+ # @!attribute [rw] location
336
+ # The location of the bucket.
337
+ # @return [String]
338
+ #
339
+ # @!attribute [rw] bucket_arn
340
+ # The Amazon Resource Name (ARN) of the bucket.
341
+ #
342
+ # For Amazon S3 on Outposts specify the ARN of the bucket accessed in
343
+ # the format
344
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
345
+ # For example, to access the bucket `reports` through outpost
346
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
347
+ # use the URL encoding of
348
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
349
+ # The value must be URL encoded.
350
+ # @return [String]
351
+ #
352
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateBucketResult AWS API Documentation
353
+ #
354
+ class CreateBucketResult < Struct.new(
355
+ :location,
356
+ :bucket_arn)
357
+ SENSITIVE = []
358
+ include Aws::Structure
359
+ end
360
+
120
361
  # @note When making an API call, you may pass CreateJobRequest
121
362
  # data as a hash:
122
363
  #
@@ -250,6 +491,7 @@ module Aws::S3Control
250
491
  # }
251
492
  #
252
493
  # @!attribute [rw] account_id
494
+ # The AWS account ID that creates the job.
253
495
  # @return [String]
254
496
  #
255
497
  # @!attribute [rw] confirmation_required
@@ -261,8 +503,8 @@ module Aws::S3Control
261
503
  # @!attribute [rw] operation
262
504
  # The operation that you want this job to perform on each object
263
505
  # listed in the manifest. For more information about the available
264
- # operations, see [Available Operations][1] in the *Amazon Simple
265
- # Storage Service Developer Guide*.
506
+ # operations, see [Operations][1] in the *Amazon Simple Storage
507
+ # Service Developer Guide*.
266
508
  #
267
509
  #
268
510
  #
@@ -299,13 +541,13 @@ module Aws::S3Control
299
541
  #
300
542
  # @!attribute [rw] role_arn
301
543
  # The Amazon Resource Name (ARN) for the AWS Identity and Access
302
- # Management (IAM) role that Batch Operations will use to execute this
544
+ # Management (IAM) role that Batch Operations will use to run this
303
545
  # job's operation on each object in the manifest.
304
546
  # @return [String]
305
547
  #
306
548
  # @!attribute [rw] tags
307
- # A set of tags to associate with the Amazon S3 Batch Operations job.
308
- # This is an optional parameter.
549
+ # A set of tags to associate with the S3 Batch Operations job. This is
550
+ # an optional parameter.
309
551
  # @return [Array<Types::S3Tag>]
310
552
  #
311
553
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateJobRequest AWS API Documentation
@@ -352,6 +594,15 @@ module Aws::S3Control
352
594
  #
353
595
  # @!attribute [rw] name
354
596
  # The name of the access point whose policy you want to delete.
597
+ #
598
+ # For Amazon S3 on Outposts specify the ARN of the access point
599
+ # accessed in the format
600
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>`.
601
+ # For example, to access the access point `reports-ap` through outpost
602
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
603
+ # use the URL encoding of
604
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap`.
605
+ # The value must be URL encoded.
355
606
  # @return [String]
356
607
  #
357
608
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPointPolicyRequest AWS API Documentation
@@ -377,6 +628,15 @@ module Aws::S3Control
377
628
  #
378
629
  # @!attribute [rw] name
379
630
  # The name of the access point you want to delete.
631
+ #
632
+ # For Amazon S3 on Outposts specify the ARN of the access point
633
+ # accessed in the format
634
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>`.
635
+ # For example, to access the access point `reports-ap` through outpost
636
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
637
+ # use the URL encoding of
638
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap`.
639
+ # The value must be URL encoded.
380
640
  # @return [String]
381
641
  #
382
642
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPointRequest AWS API Documentation
@@ -388,6 +648,142 @@ module Aws::S3Control
388
648
  include Aws::Structure
389
649
  end
390
650
 
651
+ # @note When making an API call, you may pass DeleteBucketLifecycleConfigurationRequest
652
+ # data as a hash:
653
+ #
654
+ # {
655
+ # account_id: "AccountId", # required
656
+ # bucket: "BucketName", # required
657
+ # }
658
+ #
659
+ # @!attribute [rw] account_id
660
+ # The account ID of the lifecycle configuration to delete.
661
+ # @return [String]
662
+ #
663
+ # @!attribute [rw] bucket
664
+ # The bucket ARN of the bucket.
665
+ #
666
+ # For Amazon S3 on Outposts specify the ARN of the bucket accessed in
667
+ # the format
668
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
669
+ # For example, to access the bucket `reports` through outpost
670
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
671
+ # use the URL encoding of
672
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
673
+ # The value must be URL encoded.
674
+ # @return [String]
675
+ #
676
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketLifecycleConfigurationRequest AWS API Documentation
677
+ #
678
+ class DeleteBucketLifecycleConfigurationRequest < Struct.new(
679
+ :account_id,
680
+ :bucket)
681
+ SENSITIVE = []
682
+ include Aws::Structure
683
+ end
684
+
685
+ # @note When making an API call, you may pass DeleteBucketPolicyRequest
686
+ # data as a hash:
687
+ #
688
+ # {
689
+ # account_id: "AccountId", # required
690
+ # bucket: "BucketName", # required
691
+ # }
692
+ #
693
+ # @!attribute [rw] account_id
694
+ # The account ID of the Outposts bucket.
695
+ # @return [String]
696
+ #
697
+ # @!attribute [rw] bucket
698
+ # The ARN of the bucket.
699
+ #
700
+ # For Amazon S3 on Outposts specify the ARN of the bucket accessed in
701
+ # the format
702
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
703
+ # For example, to access the bucket `reports` through outpost
704
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
705
+ # use the URL encoding of
706
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
707
+ # The value must be URL encoded.
708
+ # @return [String]
709
+ #
710
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketPolicyRequest AWS API Documentation
711
+ #
712
+ class DeleteBucketPolicyRequest < Struct.new(
713
+ :account_id,
714
+ :bucket)
715
+ SENSITIVE = []
716
+ include Aws::Structure
717
+ end
718
+
719
+ # @note When making an API call, you may pass DeleteBucketRequest
720
+ # data as a hash:
721
+ #
722
+ # {
723
+ # account_id: "AccountId", # required
724
+ # bucket: "BucketName", # required
725
+ # }
726
+ #
727
+ # @!attribute [rw] account_id
728
+ # The account ID that owns the Outposts bucket.
729
+ # @return [String]
730
+ #
731
+ # @!attribute [rw] bucket
732
+ # Specifies the bucket being deleted.
733
+ #
734
+ # For Amazon S3 on Outposts specify the ARN of the bucket accessed in
735
+ # the format
736
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
737
+ # For example, to access the bucket `reports` through outpost
738
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
739
+ # use the URL encoding of
740
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
741
+ # The value must be URL encoded.
742
+ # @return [String]
743
+ #
744
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketRequest AWS API Documentation
745
+ #
746
+ class DeleteBucketRequest < Struct.new(
747
+ :account_id,
748
+ :bucket)
749
+ SENSITIVE = []
750
+ include Aws::Structure
751
+ end
752
+
753
+ # @note When making an API call, you may pass DeleteBucketTaggingRequest
754
+ # data as a hash:
755
+ #
756
+ # {
757
+ # account_id: "AccountId", # required
758
+ # bucket: "BucketName", # required
759
+ # }
760
+ #
761
+ # @!attribute [rw] account_id
762
+ # The AWS account ID of the Outposts bucket tag set to be removed.
763
+ # @return [String]
764
+ #
765
+ # @!attribute [rw] bucket
766
+ # The bucket ARN that has the tag set to be removed.
767
+ #
768
+ # For Amazon S3 on Outposts specify the ARN of the bucket accessed in
769
+ # the format
770
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
771
+ # For example, to access the bucket `reports` through outpost
772
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
773
+ # use the URL encoding of
774
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
775
+ # The value must be URL encoded.
776
+ # @return [String]
777
+ #
778
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketTaggingRequest AWS API Documentation
779
+ #
780
+ class DeleteBucketTaggingRequest < Struct.new(
781
+ :account_id,
782
+ :bucket)
783
+ SENSITIVE = []
784
+ include Aws::Structure
785
+ end
786
+
391
787
  # @note When making an API call, you may pass DeleteJobTaggingRequest
392
788
  # data as a hash:
393
789
  #
@@ -397,12 +793,11 @@ module Aws::S3Control
397
793
  # }
398
794
  #
399
795
  # @!attribute [rw] account_id
400
- # The AWS account ID associated with the Amazon S3 Batch Operations
401
- # job.
796
+ # The AWS account ID associated with the S3 Batch Operations job.
402
797
  # @return [String]
403
798
  #
404
799
  # @!attribute [rw] job_id
405
- # The ID for the Amazon S3 Batch Operations job whose tags you want to
800
+ # The ID for the S3 Batch Operations job whose tags you want to
406
801
  # delete.
407
802
  # @return [String]
408
803
  #
@@ -427,8 +822,8 @@ module Aws::S3Control
427
822
  # }
428
823
  #
429
824
  # @!attribute [rw] account_id
430
- # The account ID for the Amazon Web Services account whose
431
- # `PublicAccessBlock` configuration you want to remove.
825
+ # The account ID for the AWS account whose `PublicAccessBlock`
826
+ # configuration you want to remove.
432
827
  # @return [String]
433
828
  #
434
829
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeletePublicAccessBlockRequest AWS API Documentation
@@ -490,6 +885,15 @@ module Aws::S3Control
490
885
  #
491
886
  # @!attribute [rw] name
492
887
  # The name of the access point whose policy you want to retrieve.
888
+ #
889
+ # For Amazon S3 on Outposts specify the ARN of the access point
890
+ # accessed in the format
891
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>`.
892
+ # For example, to access the access point `reports-ap` through outpost
893
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
894
+ # use the URL encoding of
895
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap`.
896
+ # The value must be URL encoded.
493
897
  # @return [String]
494
898
  #
495
899
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyRequest AWS API Documentation
@@ -566,6 +970,15 @@ module Aws::S3Control
566
970
  # @!attribute [rw] name
567
971
  # The name of the access point whose configuration information you
568
972
  # want to retrieve.
973
+ #
974
+ # For Amazon S3 on Outposts specify the ARN of the access point
975
+ # accessed in the format
976
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>`.
977
+ # For example, to access the access point `reports-ap` through outpost
978
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
979
+ # use the URL encoding of
980
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap`.
981
+ # The value must be URL encoded.
569
982
  # @return [String]
570
983
  #
571
984
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointRequest AWS API Documentation
@@ -592,6 +1005,8 @@ module Aws::S3Control
592
1005
  # access from the public internet. Otherwise, `NetworkOrigin` is
593
1006
  # `Internet`, and the access point allows access from the public
594
1007
  # internet, subject to the access point and bucket access policies.
1008
+ #
1009
+ # This will always be true for an Amazon S3 on Outposts access point
595
1010
  # @return [String]
596
1011
  #
597
1012
  # @!attribute [rw] vpc_configuration
@@ -604,7 +1019,9 @@ module Aws::S3Control
604
1019
  # Amazon S3 bucket. You can enable the configuration options in any
605
1020
  # combination. For more information about when Amazon S3 considers a
606
1021
  # bucket or object public, see [The Meaning of "Public"][1] in the
607
- # Amazon Simple Storage Service Developer Guide.
1022
+ # *Amazon Simple Storage Service Developer Guide*.
1023
+ #
1024
+ # This is not supported for Amazon S3 on Outposts.
608
1025
  #
609
1026
  #
610
1027
  #
@@ -628,6 +1045,199 @@ module Aws::S3Control
628
1045
  include Aws::Structure
629
1046
  end
630
1047
 
1048
+ # @note When making an API call, you may pass GetBucketLifecycleConfigurationRequest
1049
+ # data as a hash:
1050
+ #
1051
+ # {
1052
+ # account_id: "AccountId", # required
1053
+ # bucket: "BucketName", # required
1054
+ # }
1055
+ #
1056
+ # @!attribute [rw] account_id
1057
+ # The AWS account ID of the Outposts bucket.
1058
+ # @return [String]
1059
+ #
1060
+ # @!attribute [rw] bucket
1061
+ # The Amazon Resource Name (ARN) of the bucket.
1062
+ #
1063
+ # For Amazon S3 on Outposts specify the ARN of the bucket accessed in
1064
+ # the format
1065
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
1066
+ # For example, to access the bucket `reports` through outpost
1067
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
1068
+ # use the URL encoding of
1069
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
1070
+ # The value must be URL encoded.
1071
+ # @return [String]
1072
+ #
1073
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketLifecycleConfigurationRequest AWS API Documentation
1074
+ #
1075
+ class GetBucketLifecycleConfigurationRequest < Struct.new(
1076
+ :account_id,
1077
+ :bucket)
1078
+ SENSITIVE = []
1079
+ include Aws::Structure
1080
+ end
1081
+
1082
+ # @!attribute [rw] rules
1083
+ # Container for the lifecycle rule of the Outposts bucket.
1084
+ # @return [Array<Types::LifecycleRule>]
1085
+ #
1086
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketLifecycleConfigurationResult AWS API Documentation
1087
+ #
1088
+ class GetBucketLifecycleConfigurationResult < Struct.new(
1089
+ :rules)
1090
+ SENSITIVE = []
1091
+ include Aws::Structure
1092
+ end
1093
+
1094
+ # @note When making an API call, you may pass GetBucketPolicyRequest
1095
+ # data as a hash:
1096
+ #
1097
+ # {
1098
+ # account_id: "AccountId", # required
1099
+ # bucket: "BucketName", # required
1100
+ # }
1101
+ #
1102
+ # @!attribute [rw] account_id
1103
+ # The AWS account ID of the Outposts bucket.
1104
+ # @return [String]
1105
+ #
1106
+ # @!attribute [rw] bucket
1107
+ # The ARN of the bucket.
1108
+ #
1109
+ # For Amazon S3 on Outposts specify the ARN of the bucket accessed in
1110
+ # the format
1111
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
1112
+ # For example, to access the bucket `reports` through outpost
1113
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
1114
+ # use the URL encoding of
1115
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
1116
+ # The value must be URL encoded.
1117
+ # @return [String]
1118
+ #
1119
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketPolicyRequest AWS API Documentation
1120
+ #
1121
+ class GetBucketPolicyRequest < Struct.new(
1122
+ :account_id,
1123
+ :bucket)
1124
+ SENSITIVE = []
1125
+ include Aws::Structure
1126
+ end
1127
+
1128
+ # @!attribute [rw] policy
1129
+ # The policy of the Outposts bucket.
1130
+ # @return [String]
1131
+ #
1132
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketPolicyResult AWS API Documentation
1133
+ #
1134
+ class GetBucketPolicyResult < Struct.new(
1135
+ :policy)
1136
+ SENSITIVE = []
1137
+ include Aws::Structure
1138
+ end
1139
+
1140
+ # @note When making an API call, you may pass GetBucketRequest
1141
+ # data as a hash:
1142
+ #
1143
+ # {
1144
+ # account_id: "AccountId", # required
1145
+ # bucket: "BucketName", # required
1146
+ # }
1147
+ #
1148
+ # @!attribute [rw] account_id
1149
+ # The AWS account ID of the Outposts bucket.
1150
+ # @return [String]
1151
+ #
1152
+ # @!attribute [rw] bucket
1153
+ # The ARN of the bucket.
1154
+ #
1155
+ # For Amazon S3 on Outposts specify the ARN of the bucket accessed in
1156
+ # the format
1157
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
1158
+ # For example, to access the bucket `reports` through outpost
1159
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
1160
+ # use the URL encoding of
1161
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
1162
+ # The value must be URL encoded.
1163
+ # @return [String]
1164
+ #
1165
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketRequest AWS API Documentation
1166
+ #
1167
+ class GetBucketRequest < Struct.new(
1168
+ :account_id,
1169
+ :bucket)
1170
+ SENSITIVE = []
1171
+ include Aws::Structure
1172
+ end
1173
+
1174
+ # @!attribute [rw] bucket
1175
+ # The Outposts bucket requested.
1176
+ # @return [String]
1177
+ #
1178
+ # @!attribute [rw] public_access_block_enabled
1179
+ # @return [Boolean]
1180
+ #
1181
+ # @!attribute [rw] creation_date
1182
+ # The creation date of the Outposts bucket.
1183
+ # @return [Time]
1184
+ #
1185
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketResult AWS API Documentation
1186
+ #
1187
+ class GetBucketResult < Struct.new(
1188
+ :bucket,
1189
+ :public_access_block_enabled,
1190
+ :creation_date)
1191
+ SENSITIVE = []
1192
+ include Aws::Structure
1193
+ end
1194
+
1195
+ # @note When making an API call, you may pass GetBucketTaggingRequest
1196
+ # data as a hash:
1197
+ #
1198
+ # {
1199
+ # account_id: "AccountId", # required
1200
+ # bucket: "BucketName", # required
1201
+ # }
1202
+ #
1203
+ # @!attribute [rw] account_id
1204
+ # The AWS account ID of the Outposts bucket.
1205
+ # @return [String]
1206
+ #
1207
+ # @!attribute [rw] bucket
1208
+ # The ARN of the bucket.
1209
+ #
1210
+ # For Amazon S3 on Outposts specify the ARN of the bucket accessed in
1211
+ # the format
1212
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
1213
+ # For example, to access the bucket `reports` through outpost
1214
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
1215
+ # use the URL encoding of
1216
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
1217
+ # The value must be URL encoded.
1218
+ # @return [String]
1219
+ #
1220
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketTaggingRequest AWS API Documentation
1221
+ #
1222
+ class GetBucketTaggingRequest < Struct.new(
1223
+ :account_id,
1224
+ :bucket)
1225
+ SENSITIVE = []
1226
+ include Aws::Structure
1227
+ end
1228
+
1229
+ # @!attribute [rw] tag_set
1230
+ # The tags set of the Outposts bucket.
1231
+ # @return [Array<Types::S3Tag>]
1232
+ #
1233
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketTaggingResult AWS API Documentation
1234
+ #
1235
+ class GetBucketTaggingResult < Struct.new(
1236
+ :tag_set)
1237
+ SENSITIVE = []
1238
+ include Aws::Structure
1239
+ end
1240
+
631
1241
  # @note When making an API call, you may pass GetJobTaggingRequest
632
1242
  # data as a hash:
633
1243
  #
@@ -637,12 +1247,11 @@ module Aws::S3Control
637
1247
  # }
638
1248
  #
639
1249
  # @!attribute [rw] account_id
640
- # The AWS account ID associated with the Amazon S3 Batch Operations
641
- # job.
1250
+ # The AWS account ID associated with the S3 Batch Operations job.
642
1251
  # @return [String]
643
1252
  #
644
1253
  # @!attribute [rw] job_id
645
- # The ID for the Amazon S3 Batch Operations job whose tags you want to
1254
+ # The ID for the S3 Batch Operations job whose tags you want to
646
1255
  # retrieve.
647
1256
  # @return [String]
648
1257
  #
@@ -656,7 +1265,7 @@ module Aws::S3Control
656
1265
  end
657
1266
 
658
1267
  # @!attribute [rw] tags
659
- # The set of tags associated with the Amazon S3 Batch Operations job.
1268
+ # The set of tags associated with the S3 Batch Operations job.
660
1269
  # @return [Array<Types::S3Tag>]
661
1270
  #
662
1271
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetJobTaggingResult AWS API Documentation
@@ -669,7 +1278,7 @@ module Aws::S3Control
669
1278
 
670
1279
  # @!attribute [rw] public_access_block_configuration
671
1280
  # The `PublicAccessBlock` configuration currently in effect for this
672
- # Amazon Web Services account.
1281
+ # AWS account.
673
1282
  # @return [Types::PublicAccessBlockConfiguration]
674
1283
  #
675
1284
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlockOutput AWS API Documentation
@@ -688,8 +1297,8 @@ module Aws::S3Control
688
1297
  # }
689
1298
  #
690
1299
  # @!attribute [rw] account_id
691
- # The account ID for the Amazon Web Services account whose
692
- # `PublicAccessBlock` configuration you want to retrieve.
1300
+ # The account ID for the AWS account whose `PublicAccessBlock`
1301
+ # configuration you want to retrieve.
693
1302
  # @return [String]
694
1303
  #
695
1304
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlockRequest AWS API Documentation
@@ -776,7 +1385,7 @@ module Aws::S3Control
776
1385
  # @return [Types::JobManifest]
777
1386
  #
778
1387
  # @!attribute [rw] operation
779
- # The operation that the specified job is configured to execute on the
1388
+ # The operation that the specified job is configured to run on the
780
1389
  # objects listed in the manifest.
781
1390
  # @return [Types::JobOperation]
782
1391
  #
@@ -785,12 +1394,13 @@ module Aws::S3Control
785
1394
  # @return [Integer]
786
1395
  #
787
1396
  # @!attribute [rw] progress_summary
788
- # Describes the total number of tasks that the specified job has
789
- # executed, the number of tasks that succeeded, and the number of
790
- # tasks that failed.
1397
+ # Describes the total number of tasks that the specified job has run,
1398
+ # the number of tasks that succeeded, and the number of tasks that
1399
+ # failed.
791
1400
  # @return [Types::JobProgressSummary]
792
1401
  #
793
1402
  # @!attribute [rw] status_update_reason
1403
+ # The reason for updating the job.
794
1404
  # @return [String]
795
1405
  #
796
1406
  # @!attribute [rw] failure_reasons
@@ -815,7 +1425,7 @@ module Aws::S3Control
815
1425
  #
816
1426
  # @!attribute [rw] role_arn
817
1427
  # The Amazon Resource Name (ARN) for the AWS Identity and Access
818
- # Management (IAM) role assigned to execute the tasks for this job.
1428
+ # Management (IAM) role assigned to run the tasks for this job.
819
1429
  # @return [String]
820
1430
  #
821
1431
  # @!attribute [rw] suspended_date
@@ -909,9 +1519,9 @@ module Aws::S3Control
909
1519
  # @return [Time]
910
1520
  #
911
1521
  # @!attribute [rw] progress_summary
912
- # Describes the total number of tasks that the specified job has
913
- # executed, the number of tasks that succeeded, and the number of
914
- # tasks that failed.
1522
+ # Describes the total number of tasks that the specified job has run,
1523
+ # the number of tasks that succeeded, and the number of tasks that
1524
+ # failed.
915
1525
  # @return [Types::JobProgressSummary]
916
1526
  #
917
1527
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/JobListDescriptor AWS API Documentation
@@ -1033,8 +1643,8 @@ module Aws::S3Control
1033
1643
 
1034
1644
  # The operation that you want this job to perform on each object listed
1035
1645
  # in the manifest. For more information about the available operations,
1036
- # see [Available Operations][1] in the *Amazon Simple Storage Service
1037
- # Developer Guide*.
1646
+ # see [Operations][1] in the *Amazon Simple Storage Service Developer
1647
+ # Guide*.
1038
1648
  #
1039
1649
  #
1040
1650
  #
@@ -1146,45 +1756,48 @@ module Aws::S3Control
1146
1756
  # @return [Types::LambdaInvokeOperation]
1147
1757
  #
1148
1758
  # @!attribute [rw] s3_put_object_copy
1149
- # Directs the specified job to execute a PUT Copy object call on each
1759
+ # Directs the specified job to run a PUT Copy object call on each
1150
1760
  # object in the manifest.
1151
1761
  # @return [Types::S3CopyObjectOperation]
1152
1762
  #
1153
1763
  # @!attribute [rw] s3_put_object_acl
1154
- # Directs the specified job to execute a PUT Object acl call on each
1764
+ # Directs the specified job to run a PUT Object acl call on each
1155
1765
  # object in the manifest.
1156
1766
  # @return [Types::S3SetObjectAclOperation]
1157
1767
  #
1158
1768
  # @!attribute [rw] s3_put_object_tagging
1159
- # Directs the specified job to execute a PUT Object tagging call on
1160
- # each object in the manifest.
1769
+ # Directs the specified job to run a PUT Object tagging call on each
1770
+ # object in the manifest.
1161
1771
  # @return [Types::S3SetObjectTaggingOperation]
1162
1772
  #
1163
1773
  # @!attribute [rw] s3_initiate_restore_object
1164
- # Directs the specified job to execute an Initiate Glacier Restore
1165
- # call on each object in the manifest.
1774
+ # Directs the specified job to run an Initiate Glacier Restore call on
1775
+ # each object in the manifest.
1166
1776
  # @return [Types::S3InitiateRestoreObjectOperation]
1167
1777
  #
1168
1778
  # @!attribute [rw] s3_put_object_legal_hold
1169
- # Contains the configuration parameters for a Set Object Legal Hold
1170
- # operation. Amazon S3 Batch Operations passes each value through to
1171
- # the underlying PUT Object Legal Hold API. For more information about
1172
- # the parameters for this operation, see [PUT Object Legal Hold][1].
1779
+ # Contains the configuration for an S3 Object Lock legal hold
1780
+ # operation that an S3 Batch Operations job passes each object through
1781
+ # to the underlying `PutObjectLegalHold` API. For more information,
1782
+ # see [Using S3 Object Lock legal hold with S3 Batch Operations][1] in
1783
+ # the *Amazon Simple Storage Service Developer Guide*.
1173
1784
  #
1174
1785
  #
1175
1786
  #
1176
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.htmll#object-lock-legal-holds
1787
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-legal-hold.html
1177
1788
  # @return [Types::S3SetObjectLegalHoldOperation]
1178
1789
  #
1179
1790
  # @!attribute [rw] s3_put_object_retention
1180
- # Contains the configuration parameters for a Set Object Retention
1181
- # operation. Amazon S3 Batch Operations passes each value through to
1182
- # the underlying PUT Object Retention API. For more information about
1183
- # the parameters for this operation, see [PUT Object Retention][1].
1791
+ # Contains the configuration parameters for the Object Lock retention
1792
+ # action for an S3 Batch Operations job. Batch Operations passes each
1793
+ # value through to the underlying `PutObjectRetention` API. For more
1794
+ # information, see [Using S3 Object Lock retention with S3 Batch
1795
+ # Operations][1] in the *Amazon Simple Storage Service Developer
1796
+ # Guide*.
1184
1797
  #
1185
1798
  #
1186
1799
  #
1187
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes
1800
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html
1188
1801
  # @return [Types::S3SetObjectRetentionOperation]
1189
1802
  #
1190
1803
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/JobOperation AWS API Documentation
@@ -1202,7 +1815,7 @@ module Aws::S3Control
1202
1815
  end
1203
1816
 
1204
1817
  # Describes the total number of tasks that the specified job has
1205
- # executed, the number of tasks that succeeded, and the number of tasks
1818
+ # started, the number of tasks that succeeded, and the number of tasks
1206
1819
  # that failed.
1207
1820
  #
1208
1821
  # @!attribute [rw] total_number_of_tasks
@@ -1253,9 +1866,8 @@ module Aws::S3Control
1253
1866
  #
1254
1867
  # @!attribute [rw] prefix
1255
1868
  # An optional prefix to describe where in the specified bucket the
1256
- # job-completion report will be stored. Amazon S3 will store the
1257
- # job-completion report at
1258
- # &lt;prefix&gt;/job-&lt;job-id&gt;/report.json.
1869
+ # job-completion report will be stored. Amazon S3 stores the
1870
+ # job-completion report at `<prefix>/job-<job-id>/report.json`.
1259
1871
  # @return [String]
1260
1872
  #
1261
1873
  # @!attribute [rw] report_scope
@@ -1300,10 +1912,316 @@ module Aws::S3Control
1300
1912
  # specified job will invoke for each object in the manifest.
1301
1913
  # @return [String]
1302
1914
  #
1303
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/LambdaInvokeOperation AWS API Documentation
1915
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/LambdaInvokeOperation AWS API Documentation
1916
+ #
1917
+ class LambdaInvokeOperation < Struct.new(
1918
+ :function_arn)
1919
+ SENSITIVE = []
1920
+ include Aws::Structure
1921
+ end
1922
+
1923
+ # The container for the Outposts bucket lifecycle configuration.
1924
+ #
1925
+ # @note When making an API call, you may pass LifecycleConfiguration
1926
+ # data as a hash:
1927
+ #
1928
+ # {
1929
+ # rules: [
1930
+ # {
1931
+ # expiration: {
1932
+ # date: Time.now,
1933
+ # days: 1,
1934
+ # expired_object_delete_marker: false,
1935
+ # },
1936
+ # id: "ID",
1937
+ # filter: {
1938
+ # prefix: "Prefix",
1939
+ # tag: {
1940
+ # key: "TagKeyString", # required
1941
+ # value: "TagValueString", # required
1942
+ # },
1943
+ # and: {
1944
+ # prefix: "Prefix",
1945
+ # tags: [
1946
+ # {
1947
+ # key: "TagKeyString", # required
1948
+ # value: "TagValueString", # required
1949
+ # },
1950
+ # ],
1951
+ # },
1952
+ # },
1953
+ # status: "Enabled", # required, accepts Enabled, Disabled
1954
+ # transitions: [
1955
+ # {
1956
+ # date: Time.now,
1957
+ # days: 1,
1958
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
1959
+ # },
1960
+ # ],
1961
+ # noncurrent_version_transitions: [
1962
+ # {
1963
+ # noncurrent_days: 1,
1964
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
1965
+ # },
1966
+ # ],
1967
+ # noncurrent_version_expiration: {
1968
+ # noncurrent_days: 1,
1969
+ # },
1970
+ # abort_incomplete_multipart_upload: {
1971
+ # days_after_initiation: 1,
1972
+ # },
1973
+ # },
1974
+ # ],
1975
+ # }
1976
+ #
1977
+ # @!attribute [rw] rules
1978
+ # A lifecycle rule for individual objects in an Outposts bucket.
1979
+ # @return [Array<Types::LifecycleRule>]
1980
+ #
1981
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/LifecycleConfiguration AWS API Documentation
1982
+ #
1983
+ class LifecycleConfiguration < Struct.new(
1984
+ :rules)
1985
+ SENSITIVE = []
1986
+ include Aws::Structure
1987
+ end
1988
+
1989
+ # The container of the Outposts bucket lifecycle expiration.
1990
+ #
1991
+ # @note When making an API call, you may pass LifecycleExpiration
1992
+ # data as a hash:
1993
+ #
1994
+ # {
1995
+ # date: Time.now,
1996
+ # days: 1,
1997
+ # expired_object_delete_marker: false,
1998
+ # }
1999
+ #
2000
+ # @!attribute [rw] date
2001
+ # Indicates at what date the object is to be deleted. Should be in GMT
2002
+ # ISO 8601 format.
2003
+ # @return [Time]
2004
+ #
2005
+ # @!attribute [rw] days
2006
+ # Indicates the lifetime, in days, of the objects that are subject to
2007
+ # the rule. The value must be a non-zero positive integer.
2008
+ # @return [Integer]
2009
+ #
2010
+ # @!attribute [rw] expired_object_delete_marker
2011
+ # Indicates whether Amazon S3 will remove a delete marker with no
2012
+ # noncurrent versions. If set to true, the delete marker will be
2013
+ # expired. If set to false, the policy takes no action. This cannot be
2014
+ # specified with Days or Date in a Lifecycle Expiration Policy.
2015
+ # @return [Boolean]
2016
+ #
2017
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/LifecycleExpiration AWS API Documentation
2018
+ #
2019
+ class LifecycleExpiration < Struct.new(
2020
+ :date,
2021
+ :days,
2022
+ :expired_object_delete_marker)
2023
+ SENSITIVE = []
2024
+ include Aws::Structure
2025
+ end
2026
+
2027
+ # The container for the Outposts bucket lifecycle rule.
2028
+ #
2029
+ # @note When making an API call, you may pass LifecycleRule
2030
+ # data as a hash:
2031
+ #
2032
+ # {
2033
+ # expiration: {
2034
+ # date: Time.now,
2035
+ # days: 1,
2036
+ # expired_object_delete_marker: false,
2037
+ # },
2038
+ # id: "ID",
2039
+ # filter: {
2040
+ # prefix: "Prefix",
2041
+ # tag: {
2042
+ # key: "TagKeyString", # required
2043
+ # value: "TagValueString", # required
2044
+ # },
2045
+ # and: {
2046
+ # prefix: "Prefix",
2047
+ # tags: [
2048
+ # {
2049
+ # key: "TagKeyString", # required
2050
+ # value: "TagValueString", # required
2051
+ # },
2052
+ # ],
2053
+ # },
2054
+ # },
2055
+ # status: "Enabled", # required, accepts Enabled, Disabled
2056
+ # transitions: [
2057
+ # {
2058
+ # date: Time.now,
2059
+ # days: 1,
2060
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
2061
+ # },
2062
+ # ],
2063
+ # noncurrent_version_transitions: [
2064
+ # {
2065
+ # noncurrent_days: 1,
2066
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
2067
+ # },
2068
+ # ],
2069
+ # noncurrent_version_expiration: {
2070
+ # noncurrent_days: 1,
2071
+ # },
2072
+ # abort_incomplete_multipart_upload: {
2073
+ # days_after_initiation: 1,
2074
+ # },
2075
+ # }
2076
+ #
2077
+ # @!attribute [rw] expiration
2078
+ # Specifies the expiration for the lifecycle of the object in the form
2079
+ # of date, days and, whether the object has a delete marker.
2080
+ # @return [Types::LifecycleExpiration]
2081
+ #
2082
+ # @!attribute [rw] id
2083
+ # Unique identifier for the rule. The value cannot be longer than 255
2084
+ # characters.
2085
+ # @return [String]
2086
+ #
2087
+ # @!attribute [rw] filter
2088
+ # The container for the filter of lifecycle rule.
2089
+ # @return [Types::LifecycleRuleFilter]
2090
+ #
2091
+ # @!attribute [rw] status
2092
+ # If 'Enabled', the rule is currently being applied. If
2093
+ # 'Disabled', the rule is not currently being applied.
2094
+ # @return [String]
2095
+ #
2096
+ # @!attribute [rw] transitions
2097
+ # Specifies when an Amazon S3 object transitions to a specified
2098
+ # storage class.
2099
+ #
2100
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
2101
+ #
2102
+ # </note>
2103
+ # @return [Array<Types::Transition>]
2104
+ #
2105
+ # @!attribute [rw] noncurrent_version_transitions
2106
+ # Specifies the transition rule for the lifecycle rule that describes
2107
+ # when noncurrent objects transition to a specific storage class. If
2108
+ # your bucket is versioning-enabled (or versioning is suspended), you
2109
+ # can set this action to request that Amazon S3 transition noncurrent
2110
+ # object versions to a specific storage class at a set period in the
2111
+ # object's lifetime.
2112
+ #
2113
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
2114
+ #
2115
+ # </note>
2116
+ # @return [Array<Types::NoncurrentVersionTransition>]
2117
+ #
2118
+ # @!attribute [rw] noncurrent_version_expiration
2119
+ # The noncurrent version expiration of the lifecycle rule.
2120
+ #
2121
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
2122
+ #
2123
+ # </note>
2124
+ # @return [Types::NoncurrentVersionExpiration]
2125
+ #
2126
+ # @!attribute [rw] abort_incomplete_multipart_upload
2127
+ # Specifies the days since the initiation of an incomplete multipart
2128
+ # upload that Amazon S3 waits before permanently removing all parts of
2129
+ # the upload. For more information, see [ Aborting Incomplete
2130
+ # Multipart Uploads Using a Bucket Lifecycle Policy][1] in the *Amazon
2131
+ # Simple Storage Service Developer Guide*.
2132
+ #
2133
+ #
2134
+ #
2135
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config
2136
+ # @return [Types::AbortIncompleteMultipartUpload]
2137
+ #
2138
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/LifecycleRule AWS API Documentation
2139
+ #
2140
+ class LifecycleRule < Struct.new(
2141
+ :expiration,
2142
+ :id,
2143
+ :filter,
2144
+ :status,
2145
+ :transitions,
2146
+ :noncurrent_version_transitions,
2147
+ :noncurrent_version_expiration,
2148
+ :abort_incomplete_multipart_upload)
2149
+ SENSITIVE = []
2150
+ include Aws::Structure
2151
+ end
2152
+
2153
+ # The container for the Outposts bucket lifecycle rule and operator.
2154
+ #
2155
+ # @note When making an API call, you may pass LifecycleRuleAndOperator
2156
+ # data as a hash:
2157
+ #
2158
+ # {
2159
+ # prefix: "Prefix",
2160
+ # tags: [
2161
+ # {
2162
+ # key: "TagKeyString", # required
2163
+ # value: "TagValueString", # required
2164
+ # },
2165
+ # ],
2166
+ # }
2167
+ #
2168
+ # @!attribute [rw] prefix
2169
+ # Prefix identifying one or more objects to which the rule applies.
2170
+ # @return [String]
2171
+ #
2172
+ # @!attribute [rw] tags
2173
+ # All of these tags must exist in the object's tag set in order for
2174
+ # the rule to apply.
2175
+ # @return [Array<Types::S3Tag>]
2176
+ #
2177
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/LifecycleRuleAndOperator AWS API Documentation
2178
+ #
2179
+ class LifecycleRuleAndOperator < Struct.new(
2180
+ :prefix,
2181
+ :tags)
2182
+ SENSITIVE = []
2183
+ include Aws::Structure
2184
+ end
2185
+
2186
+ # The container for the filter of the lifecycle rule.
2187
+ #
2188
+ # @note When making an API call, you may pass LifecycleRuleFilter
2189
+ # data as a hash:
2190
+ #
2191
+ # {
2192
+ # prefix: "Prefix",
2193
+ # tag: {
2194
+ # key: "TagKeyString", # required
2195
+ # value: "TagValueString", # required
2196
+ # },
2197
+ # and: {
2198
+ # prefix: "Prefix",
2199
+ # tags: [
2200
+ # {
2201
+ # key: "TagKeyString", # required
2202
+ # value: "TagValueString", # required
2203
+ # },
2204
+ # ],
2205
+ # },
2206
+ # }
2207
+ #
2208
+ # @!attribute [rw] prefix
2209
+ # Prefix identifying one or more objects to which the rule applies.
2210
+ # @return [String]
2211
+ #
2212
+ # @!attribute [rw] tag
2213
+ # @return [Types::S3Tag]
2214
+ #
2215
+ # @!attribute [rw] and
2216
+ # The container for the `AND` condition for the lifecycle rule.
2217
+ # @return [Types::LifecycleRuleAndOperator]
1304
2218
  #
1305
- class LambdaInvokeOperation < Struct.new(
1306
- :function_arn)
2219
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/LifecycleRuleFilter AWS API Documentation
2220
+ #
2221
+ class LifecycleRuleFilter < Struct.new(
2222
+ :prefix,
2223
+ :tag,
2224
+ :and)
1307
2225
  SENSITIVE = []
1308
2226
  include Aws::Structure
1309
2227
  end
@@ -1326,6 +2244,15 @@ module Aws::S3Control
1326
2244
  # @!attribute [rw] bucket
1327
2245
  # The name of the bucket whose associated access points you want to
1328
2246
  # list.
2247
+ #
2248
+ # For Amazon S3 on Outposts specify the ARN of the bucket accessed in
2249
+ # the format
2250
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
2251
+ # For example, to access the bucket `reports` through outpost
2252
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
2253
+ # use the URL encoding of
2254
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
2255
+ # The value must be URL encoded.
1329
2256
  # @return [String]
1330
2257
  #
1331
2258
  # @!attribute [rw] next_token
@@ -1361,9 +2288,9 @@ module Aws::S3Control
1361
2288
  #
1362
2289
  # @!attribute [rw] next_token
1363
2290
  # If the specified bucket has more access points than can be returned
1364
- # in one call to this API, then this field contains a continuation
1365
- # token that you can provide in subsequent calls to this API to
1366
- # retrieve additional access points.
2291
+ # in one call to this API, this field contains a continuation token
2292
+ # that you can provide in subsequent calls to this API to retrieve
2293
+ # additional access points.
1367
2294
  # @return [String]
1368
2295
  #
1369
2296
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPointsResult AWS API Documentation
@@ -1437,6 +2364,64 @@ module Aws::S3Control
1437
2364
  include Aws::Structure
1438
2365
  end
1439
2366
 
2367
+ # @note When making an API call, you may pass ListRegionalBucketsRequest
2368
+ # data as a hash:
2369
+ #
2370
+ # {
2371
+ # account_id: "AccountId", # required
2372
+ # next_token: "NonEmptyMaxLength1024String",
2373
+ # max_results: 1,
2374
+ # outpost_id: "NonEmptyMaxLength64String",
2375
+ # }
2376
+ #
2377
+ # @!attribute [rw] account_id
2378
+ # The AWS account ID of the Outposts bucket.
2379
+ # @return [String]
2380
+ #
2381
+ # @!attribute [rw] next_token
2382
+ # @return [String]
2383
+ #
2384
+ # @!attribute [rw] max_results
2385
+ # @return [Integer]
2386
+ #
2387
+ # @!attribute [rw] outpost_id
2388
+ # The ID of the AWS Outposts.
2389
+ #
2390
+ # <note markdown="1"> This is required by Amazon S3 on Outposts buckets.
2391
+ #
2392
+ # </note>
2393
+ # @return [String]
2394
+ #
2395
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListRegionalBucketsRequest AWS API Documentation
2396
+ #
2397
+ class ListRegionalBucketsRequest < Struct.new(
2398
+ :account_id,
2399
+ :next_token,
2400
+ :max_results,
2401
+ :outpost_id)
2402
+ SENSITIVE = []
2403
+ include Aws::Structure
2404
+ end
2405
+
2406
+ # @!attribute [rw] regional_bucket_list
2407
+ # @return [Array<Types::RegionalBucket>]
2408
+ #
2409
+ # @!attribute [rw] next_token
2410
+ # `NextToken` is sent when `isTruncated` is true, which means there
2411
+ # are more buckets that can be listed. The next list requests to
2412
+ # Amazon S3 can be continued with this `NextToken`. `NextToken` is
2413
+ # obfuscated and is not a real key.
2414
+ # @return [String]
2415
+ #
2416
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListRegionalBucketsResult AWS API Documentation
2417
+ #
2418
+ class ListRegionalBucketsResult < Struct.new(
2419
+ :regional_bucket_list,
2420
+ :next_token)
2421
+ SENSITIVE = []
2422
+ include Aws::Structure
2423
+ end
2424
+
1440
2425
  # Amazon S3 throws this exception if you make a `GetPublicAccessBlock`
1441
2426
  # request against an account that doesn't have a
1442
2427
  # `PublicAccessBlockConfiguration` set.
@@ -1452,6 +2437,70 @@ module Aws::S3Control
1452
2437
  include Aws::Structure
1453
2438
  end
1454
2439
 
2440
+ # The container of the noncurrent version expiration.
2441
+ #
2442
+ # @note When making an API call, you may pass NoncurrentVersionExpiration
2443
+ # data as a hash:
2444
+ #
2445
+ # {
2446
+ # noncurrent_days: 1,
2447
+ # }
2448
+ #
2449
+ # @!attribute [rw] noncurrent_days
2450
+ # Specifies the number of days an object is noncurrent before Amazon
2451
+ # S3 can perform the associated action. For information about the
2452
+ # noncurrent days calculations, see [How Amazon S3 Calculates When an
2453
+ # Object Became Noncurrent][1] in the *Amazon Simple Storage Service
2454
+ # Developer Guide*.
2455
+ #
2456
+ #
2457
+ #
2458
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations
2459
+ # @return [Integer]
2460
+ #
2461
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/NoncurrentVersionExpiration AWS API Documentation
2462
+ #
2463
+ class NoncurrentVersionExpiration < Struct.new(
2464
+ :noncurrent_days)
2465
+ SENSITIVE = []
2466
+ include Aws::Structure
2467
+ end
2468
+
2469
+ # The container for the noncurrent version transition.
2470
+ #
2471
+ # @note When making an API call, you may pass NoncurrentVersionTransition
2472
+ # data as a hash:
2473
+ #
2474
+ # {
2475
+ # noncurrent_days: 1,
2476
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
2477
+ # }
2478
+ #
2479
+ # @!attribute [rw] noncurrent_days
2480
+ # Specifies the number of days an object is noncurrent before Amazon
2481
+ # S3 can perform the associated action. For information about the
2482
+ # noncurrent days calculations, see [ How Amazon S3 Calculates How
2483
+ # Long an Object Has Been Noncurrent][1] in the *Amazon Simple Storage
2484
+ # Service Developer Guide*.
2485
+ #
2486
+ #
2487
+ #
2488
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations
2489
+ # @return [Integer]
2490
+ #
2491
+ # @!attribute [rw] storage_class
2492
+ # The class of storage used to store the object.
2493
+ # @return [String]
2494
+ #
2495
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/NoncurrentVersionTransition AWS API Documentation
2496
+ #
2497
+ class NoncurrentVersionTransition < Struct.new(
2498
+ :noncurrent_days,
2499
+ :storage_class)
2500
+ SENSITIVE = []
2501
+ include Aws::Structure
2502
+ end
2503
+
1455
2504
  # @!attribute [rw] message
1456
2505
  # @return [String]
1457
2506
  #
@@ -1487,7 +2536,9 @@ module Aws::S3Control
1487
2536
  # Amazon S3 bucket. You can enable the configuration options in any
1488
2537
  # combination. For more information about when Amazon S3 considers a
1489
2538
  # bucket or object public, see [The Meaning of "Public"][1] in the
1490
- # Amazon Simple Storage Service Developer Guide.
2539
+ # *Amazon Simple Storage Service Developer Guide*.
2540
+ #
2541
+ # This is not supported for Amazon S3 on Outposts.
1491
2542
  #
1492
2543
  #
1493
2544
  #
@@ -1516,6 +2567,8 @@ module Aws::S3Control
1516
2567
  # * PUT Bucket calls fail if the request includes a public ACL.
1517
2568
  #
1518
2569
  # Enabling this setting doesn't affect existing policies or ACLs.
2570
+ #
2571
+ # This is not supported for Amazon S3 on Outposts.
1519
2572
  # @return [Boolean]
1520
2573
  #
1521
2574
  # @!attribute [rw] ignore_public_acls
@@ -1526,6 +2579,8 @@ module Aws::S3Control
1526
2579
  #
1527
2580
  # Enabling this setting doesn't affect the persistence of any
1528
2581
  # existing ACLs and doesn't prevent new public ACLs from being set.
2582
+ #
2583
+ # This is not supported for Amazon S3 on Outposts.
1529
2584
  # @return [Boolean]
1530
2585
  #
1531
2586
  # @!attribute [rw] block_public_policy
@@ -1535,6 +2590,8 @@ module Aws::S3Control
1535
2590
  # bucket policy allows public access.
1536
2591
  #
1537
2592
  # Enabling this setting doesn't affect existing bucket policies.
2593
+ #
2594
+ # This is not supported for Amazon S3 on Outposts.
1538
2595
  # @return [Boolean]
1539
2596
  #
1540
2597
  # @!attribute [rw] restrict_public_buckets
@@ -1547,6 +2604,8 @@ module Aws::S3Control
1547
2604
  # policies, except that public and cross-account access within any
1548
2605
  # public bucket policy, including non-public delegation to specific
1549
2606
  # accounts, is blocked.
2607
+ #
2608
+ # This is not supported for Amazon S3 on Outposts.
1550
2609
  # @return [Boolean]
1551
2610
  #
1552
2611
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PublicAccessBlockConfiguration AWS API Documentation
@@ -1577,6 +2636,15 @@ module Aws::S3Control
1577
2636
  # @!attribute [rw] name
1578
2637
  # The name of the access point that you want to associate with the
1579
2638
  # specified policy.
2639
+ #
2640
+ # For Amazon S3 on Outposts specify the ARN of the access point
2641
+ # accessed in the format
2642
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>`.
2643
+ # For example, to access the access point `reports-ap` through outpost
2644
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
2645
+ # use the URL encoding of
2646
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap`.
2647
+ # The value must be URL encoded.
1580
2648
  # @return [String]
1581
2649
  #
1582
2650
  # @!attribute [rw] policy
@@ -1600,6 +2668,181 @@ module Aws::S3Control
1600
2668
  include Aws::Structure
1601
2669
  end
1602
2670
 
2671
+ # @note When making an API call, you may pass PutBucketLifecycleConfigurationRequest
2672
+ # data as a hash:
2673
+ #
2674
+ # {
2675
+ # account_id: "AccountId", # required
2676
+ # bucket: "BucketName", # required
2677
+ # lifecycle_configuration: {
2678
+ # rules: [
2679
+ # {
2680
+ # expiration: {
2681
+ # date: Time.now,
2682
+ # days: 1,
2683
+ # expired_object_delete_marker: false,
2684
+ # },
2685
+ # id: "ID",
2686
+ # filter: {
2687
+ # prefix: "Prefix",
2688
+ # tag: {
2689
+ # key: "TagKeyString", # required
2690
+ # value: "TagValueString", # required
2691
+ # },
2692
+ # and: {
2693
+ # prefix: "Prefix",
2694
+ # tags: [
2695
+ # {
2696
+ # key: "TagKeyString", # required
2697
+ # value: "TagValueString", # required
2698
+ # },
2699
+ # ],
2700
+ # },
2701
+ # },
2702
+ # status: "Enabled", # required, accepts Enabled, Disabled
2703
+ # transitions: [
2704
+ # {
2705
+ # date: Time.now,
2706
+ # days: 1,
2707
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
2708
+ # },
2709
+ # ],
2710
+ # noncurrent_version_transitions: [
2711
+ # {
2712
+ # noncurrent_days: 1,
2713
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
2714
+ # },
2715
+ # ],
2716
+ # noncurrent_version_expiration: {
2717
+ # noncurrent_days: 1,
2718
+ # },
2719
+ # abort_incomplete_multipart_upload: {
2720
+ # days_after_initiation: 1,
2721
+ # },
2722
+ # },
2723
+ # ],
2724
+ # },
2725
+ # }
2726
+ #
2727
+ # @!attribute [rw] account_id
2728
+ # The AWS account ID of the Outposts bucket.
2729
+ # @return [String]
2730
+ #
2731
+ # @!attribute [rw] bucket
2732
+ # The name of the bucket for which to set the configuration.
2733
+ # @return [String]
2734
+ #
2735
+ # @!attribute [rw] lifecycle_configuration
2736
+ # Container for lifecycle rules. You can add as many as 1,000 rules.
2737
+ # @return [Types::LifecycleConfiguration]
2738
+ #
2739
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketLifecycleConfigurationRequest AWS API Documentation
2740
+ #
2741
+ class PutBucketLifecycleConfigurationRequest < Struct.new(
2742
+ :account_id,
2743
+ :bucket,
2744
+ :lifecycle_configuration)
2745
+ SENSITIVE = []
2746
+ include Aws::Structure
2747
+ end
2748
+
2749
+ # @note When making an API call, you may pass PutBucketPolicyRequest
2750
+ # data as a hash:
2751
+ #
2752
+ # {
2753
+ # account_id: "AccountId", # required
2754
+ # bucket: "BucketName", # required
2755
+ # confirm_remove_self_bucket_access: false,
2756
+ # policy: "Policy", # required
2757
+ # }
2758
+ #
2759
+ # @!attribute [rw] account_id
2760
+ # The AWS account ID of the Outposts bucket.
2761
+ # @return [String]
2762
+ #
2763
+ # @!attribute [rw] bucket
2764
+ # The ARN of the bucket.
2765
+ #
2766
+ # For Amazon S3 on Outposts specify the ARN of the bucket accessed in
2767
+ # the format
2768
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
2769
+ # For example, to access the bucket `reports` through outpost
2770
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
2771
+ # use the URL encoding of
2772
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
2773
+ # The value must be URL encoded.
2774
+ # @return [String]
2775
+ #
2776
+ # @!attribute [rw] confirm_remove_self_bucket_access
2777
+ # Set this parameter to true to confirm that you want to remove your
2778
+ # permissions to change this bucket policy in the future.
2779
+ #
2780
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
2781
+ #
2782
+ # </note>
2783
+ # @return [Boolean]
2784
+ #
2785
+ # @!attribute [rw] policy
2786
+ # The bucket policy as a JSON document.
2787
+ # @return [String]
2788
+ #
2789
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketPolicyRequest AWS API Documentation
2790
+ #
2791
+ class PutBucketPolicyRequest < Struct.new(
2792
+ :account_id,
2793
+ :bucket,
2794
+ :confirm_remove_self_bucket_access,
2795
+ :policy)
2796
+ SENSITIVE = []
2797
+ include Aws::Structure
2798
+ end
2799
+
2800
+ # @note When making an API call, you may pass PutBucketTaggingRequest
2801
+ # data as a hash:
2802
+ #
2803
+ # {
2804
+ # account_id: "AccountId", # required
2805
+ # bucket: "BucketName", # required
2806
+ # tagging: { # required
2807
+ # tag_set: [ # required
2808
+ # {
2809
+ # key: "TagKeyString", # required
2810
+ # value: "TagValueString", # required
2811
+ # },
2812
+ # ],
2813
+ # },
2814
+ # }
2815
+ #
2816
+ # @!attribute [rw] account_id
2817
+ # The AWS account ID of the Outposts bucket.
2818
+ # @return [String]
2819
+ #
2820
+ # @!attribute [rw] bucket
2821
+ # The Amazon Resource Name (ARN) of the bucket.
2822
+ #
2823
+ # For Amazon S3 on Outposts specify the ARN of the bucket accessed in
2824
+ # the format
2825
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
2826
+ # For example, to access the bucket `reports` through outpost
2827
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
2828
+ # use the URL encoding of
2829
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
2830
+ # The value must be URL encoded.
2831
+ # @return [String]
2832
+ #
2833
+ # @!attribute [rw] tagging
2834
+ # @return [Types::Tagging]
2835
+ #
2836
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketTaggingRequest AWS API Documentation
2837
+ #
2838
+ class PutBucketTaggingRequest < Struct.new(
2839
+ :account_id,
2840
+ :bucket,
2841
+ :tagging)
2842
+ SENSITIVE = []
2843
+ include Aws::Structure
2844
+ end
2845
+
1603
2846
  # @note When making an API call, you may pass PutJobTaggingRequest
1604
2847
  # data as a hash:
1605
2848
  #
@@ -1615,18 +2858,16 @@ module Aws::S3Control
1615
2858
  # }
1616
2859
  #
1617
2860
  # @!attribute [rw] account_id
1618
- # The AWS account ID associated with the Amazon S3 Batch Operations
1619
- # job.
2861
+ # The AWS account ID associated with the S3 Batch Operations job.
1620
2862
  # @return [String]
1621
2863
  #
1622
2864
  # @!attribute [rw] job_id
1623
- # The ID for the Amazon S3 Batch Operations job whose tags you want to
2865
+ # The ID for the S3 Batch Operations job whose tags you want to
1624
2866
  # replace.
1625
2867
  # @return [String]
1626
2868
  #
1627
2869
  # @!attribute [rw] tags
1628
- # The set of tags to associate with the Amazon S3 Batch Operations
1629
- # job.
2870
+ # The set of tags to associate with the S3 Batch Operations job.
1630
2871
  # @return [Array<Types::S3Tag>]
1631
2872
  #
1632
2873
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutJobTaggingRequest AWS API Documentation
@@ -1658,12 +2899,12 @@ module Aws::S3Control
1658
2899
  #
1659
2900
  # @!attribute [rw] public_access_block_configuration
1660
2901
  # The `PublicAccessBlock` configuration that you want to apply to the
1661
- # specified Amazon Web Services account.
2902
+ # specified AWS account.
1662
2903
  # @return [Types::PublicAccessBlockConfiguration]
1663
2904
  #
1664
2905
  # @!attribute [rw] account_id
1665
- # The account ID for the Amazon Web Services account whose
1666
- # `PublicAccessBlock` configuration you want to set.
2906
+ # The account ID for the AWS account whose `PublicAccessBlock`
2907
+ # configuration you want to set.
1667
2908
  # @return [String]
1668
2909
  #
1669
2910
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutPublicAccessBlockRequest AWS API Documentation
@@ -1675,6 +2916,38 @@ module Aws::S3Control
1675
2916
  include Aws::Structure
1676
2917
  end
1677
2918
 
2919
+ # The container for the regional bucket.
2920
+ #
2921
+ # @!attribute [rw] bucket
2922
+ # @return [String]
2923
+ #
2924
+ # @!attribute [rw] bucket_arn
2925
+ # The Amazon Resource Name (ARN) for the regional bucket.
2926
+ # @return [String]
2927
+ #
2928
+ # @!attribute [rw] public_access_block_enabled
2929
+ # @return [Boolean]
2930
+ #
2931
+ # @!attribute [rw] creation_date
2932
+ # The creation date of the regional bucket
2933
+ # @return [Time]
2934
+ #
2935
+ # @!attribute [rw] outpost_id
2936
+ # The AWS Outposts ID of the regional bucket.
2937
+ # @return [String]
2938
+ #
2939
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/RegionalBucket AWS API Documentation
2940
+ #
2941
+ class RegionalBucket < Struct.new(
2942
+ :bucket,
2943
+ :bucket_arn,
2944
+ :public_access_block_enabled,
2945
+ :creation_date,
2946
+ :outpost_id)
2947
+ SENSITIVE = []
2948
+ include Aws::Structure
2949
+ end
2950
+
1678
2951
  # @note When making an API call, you may pass S3AccessControlList
1679
2952
  # data as a hash:
1680
2953
  #
@@ -1749,9 +3022,9 @@ module Aws::S3Control
1749
3022
  end
1750
3023
 
1751
3024
  # Contains the configuration parameters for a PUT Copy object operation.
1752
- # Amazon S3 Batch Operations passes each value through to the underlying
1753
- # PUT Copy object API. For more information about the parameters for
1754
- # this operation, see [PUT Object - Copy][1].
3025
+ # S3 Batch Operations passes each value through to the underlying PUT
3026
+ # Copy object API. For more information about the parameters for this
3027
+ # operation, see [PUT Object - Copy][1].
1755
3028
  #
1756
3029
  #
1757
3030
  #
@@ -1847,18 +3120,18 @@ module Aws::S3Control
1847
3120
  # @return [String]
1848
3121
  #
1849
3122
  # @!attribute [rw] object_lock_legal_hold_status
1850
- # The Legal Hold status to be applied to all objects in the Batch
3123
+ # The legal hold status to be applied to all objects in the Batch
1851
3124
  # Operations job.
1852
3125
  # @return [String]
1853
3126
  #
1854
3127
  # @!attribute [rw] object_lock_mode
1855
- # The Retention mode to be applied to all objects in the Batch
3128
+ # The retention mode to be applied to all objects in the Batch
1856
3129
  # Operations job.
1857
3130
  # @return [String]
1858
3131
  #
1859
3132
  # @!attribute [rw] object_lock_retain_until_date
1860
- # The date when the applied Object Retention configuration will expire
1861
- # on all objects in the Batch Operations job.
3133
+ # The date when the applied object retention configuration expires on
3134
+ # all objects in the Batch Operations job.
1862
3135
  # @return [Time]
1863
3136
  #
1864
3137
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3CopyObjectOperation AWS API Documentation
@@ -1940,9 +3213,9 @@ module Aws::S3Control
1940
3213
  end
1941
3214
 
1942
3215
  # Contains the configuration parameters for an Initiate Glacier Restore
1943
- # job. Amazon S3 Batch Operations passes each value through to the
1944
- # underlying POST Object restore API. For more information about the
1945
- # parameters for this operation, see [Restoring Archives][1].
3216
+ # job. S3 Batch Operations passes each value through to the underlying
3217
+ # POST Object restore API. For more information about the parameters for
3218
+ # this operation, see [RestoreObject][1].
1946
3219
  #
1947
3220
  #
1948
3221
  #
@@ -1971,6 +3244,9 @@ module Aws::S3Control
1971
3244
  include Aws::Structure
1972
3245
  end
1973
3246
 
3247
+ # Whether S3 Object Lock legal hold will be applied to objects in an S3
3248
+ # Batch Operations job.
3249
+ #
1974
3250
  # @note When making an API call, you may pass S3ObjectLockLegalHold
1975
3251
  # data as a hash:
1976
3252
  #
@@ -1979,8 +3255,8 @@ module Aws::S3Control
1979
3255
  # }
1980
3256
  #
1981
3257
  # @!attribute [rw] status
1982
- # The Legal Hold status to be applied to all objects in the Batch
1983
- # Operations job.
3258
+ # The Object Lock legal hold status to be applied to all objects in
3259
+ # the Batch Operations job.
1984
3260
  # @return [String]
1985
3261
  #
1986
3262
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3ObjectLockLegalHold AWS API Documentation
@@ -2084,6 +3360,17 @@ module Aws::S3Control
2084
3360
  include Aws::Structure
2085
3361
  end
2086
3362
 
3363
+ # Contains the S3 Object Lock retention mode to be applied to all
3364
+ # objects in the S3 Batch Operations job. If you don't provide `Mode`
3365
+ # and `RetainUntilDate` data types in your operation, you will remove
3366
+ # the retention from your objects. For more information, see [Using S3
3367
+ # Object Lock retention with S3 Batch Operations][1] in the *Amazon
3368
+ # Simple Storage Service Developer Guide*.
3369
+ #
3370
+ #
3371
+ #
3372
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html
3373
+ #
2087
3374
  # @note When making an API call, you may pass S3Retention
2088
3375
  # data as a hash:
2089
3376
  #
@@ -2093,13 +3380,13 @@ module Aws::S3Control
2093
3380
  # }
2094
3381
  #
2095
3382
  # @!attribute [rw] retain_until_date
2096
- # The date when the applied Object Retention will expire on all
2097
- # objects in the Batch Operations job.
3383
+ # The date when the applied Object Lock retention will expire on all
3384
+ # objects set by the Batch Operations job.
2098
3385
  # @return [Time]
2099
3386
  #
2100
3387
  # @!attribute [rw] mode
2101
- # The Retention mode to be applied to all objects in the Batch
2102
- # Operations job.
3388
+ # The Object Lock retention mode to be applied to all objects in the
3389
+ # Batch Operations job.
2103
3390
  # @return [String]
2104
3391
  #
2105
3392
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3Retention AWS API Documentation
@@ -2112,8 +3399,8 @@ module Aws::S3Control
2112
3399
  end
2113
3400
 
2114
3401
  # Contains the configuration parameters for a Set Object ACL operation.
2115
- # Amazon S3 Batch Operations passes each value through to the underlying
2116
- # PUT Object acl API. For more information about the parameters for this
3402
+ # S3 Batch Operations passes each value through to the underlying PUT
3403
+ # Object acl API. For more information about the parameters for this
2117
3404
  # operation, see [PUT Object acl][1].
2118
3405
  #
2119
3406
  #
@@ -2156,14 +3443,15 @@ module Aws::S3Control
2156
3443
  include Aws::Structure
2157
3444
  end
2158
3445
 
2159
- # Contains the configuration parameters for a Set Object Legal Hold
2160
- # operation. Amazon S3 Batch Operations passes each value through to the
2161
- # underlying PUT Object Legal Hold API. For more information about the
2162
- # parameters for this operation, see [PUT Object Legal Hold][1].
3446
+ # Contains the configuration for an S3 Object Lock legal hold operation
3447
+ # that an S3 Batch Operations job passes each object through to the
3448
+ # underlying `PutObjectLegalHold` API. For more information, see [Using
3449
+ # S3 Object Lock legal hold with S3 Batch Operations][1] in the *Amazon
3450
+ # Simple Storage Service Developer Guide*.
2163
3451
  #
2164
3452
  #
2165
3453
  #
2166
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.htmll#object-lock-legal-holds
3454
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-legal-hold.html
2167
3455
  #
2168
3456
  # @note When making an API call, you may pass S3SetObjectLegalHoldOperation
2169
3457
  # data as a hash:
@@ -2175,8 +3463,8 @@ module Aws::S3Control
2175
3463
  # }
2176
3464
  #
2177
3465
  # @!attribute [rw] legal_hold
2178
- # The Legal Hold contains the status to be applied to all objects in
2179
- # the Batch Operations job.
3466
+ # Contains the Object Lock legal hold status to be applied to all
3467
+ # objects in the Batch Operations job.
2180
3468
  # @return [Types::S3ObjectLockLegalHold]
2181
3469
  #
2182
3470
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3SetObjectLegalHoldOperation AWS API Documentation
@@ -2187,14 +3475,15 @@ module Aws::S3Control
2187
3475
  include Aws::Structure
2188
3476
  end
2189
3477
 
2190
- # Contains the configuration parameters for a Set Object Retention
2191
- # operation. Amazon S3 Batch Operations passes each value through to the
2192
- # underlying PUT Object Retention API. For more information about the
2193
- # parameters for this operation, see [PUT Object Retention][1].
3478
+ # Contains the configuration parameters for the Object Lock retention
3479
+ # action for an S3 Batch Operations job. Batch Operations passes each
3480
+ # value through to the underlying `PutObjectRetention` API. For more
3481
+ # information, see [Using S3 Object Lock retention with S3 Batch
3482
+ # Operations][1] in the *Amazon Simple Storage Service Developer Guide*.
2194
3483
  #
2195
3484
  #
2196
3485
  #
2197
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes
3486
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html
2198
3487
  #
2199
3488
  # @note When making an API call, you may pass S3SetObjectRetentionOperation
2200
3489
  # data as a hash:
@@ -2208,14 +3497,20 @@ module Aws::S3Control
2208
3497
  # }
2209
3498
  #
2210
3499
  # @!attribute [rw] bypass_governance_retention
2211
- # Indicates if the operation should be applied to objects in the Batch
2212
- # Operations job even if they have Governance-type Object Lock in
3500
+ # Indicates if the action should be applied to objects in the Batch
3501
+ # Operations job even if they have Object Lock ` GOVERNANCE` type in
2213
3502
  # place.
2214
3503
  # @return [Boolean]
2215
3504
  #
2216
3505
  # @!attribute [rw] retention
2217
- # Amazon S3 object lock Retention contains the retention mode to be
2218
- # applied to all objects in the Batch Operations job.
3506
+ # Contains the Object Lock retention mode to be applied to all objects
3507
+ # in the Batch Operations job. For more information, see [Using S3
3508
+ # Object Lock retention with S3 Batch Operations][1] in the *Amazon
3509
+ # Simple Storage Service Developer Guide*.
3510
+ #
3511
+ #
3512
+ #
3513
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html
2219
3514
  # @return [Types::S3Retention]
2220
3515
  #
2221
3516
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3SetObjectRetentionOperation AWS API Documentation
@@ -2228,7 +3523,7 @@ module Aws::S3Control
2228
3523
  end
2229
3524
 
2230
3525
  # Contains the configuration parameters for a Set Object Tagging
2231
- # operation. Amazon S3 Batch Operations passes each value through to the
3526
+ # operation. S3 Batch Operations passes each value through to the
2232
3527
  # underlying PUT Object tagging API. For more information about the
2233
3528
  # parameters for this operation, see [PUT Object tagging][1].
2234
3529
  #
@@ -2282,6 +3577,30 @@ module Aws::S3Control
2282
3577
  include Aws::Structure
2283
3578
  end
2284
3579
 
3580
+ # @note When making an API call, you may pass Tagging
3581
+ # data as a hash:
3582
+ #
3583
+ # {
3584
+ # tag_set: [ # required
3585
+ # {
3586
+ # key: "TagKeyString", # required
3587
+ # value: "TagValueString", # required
3588
+ # },
3589
+ # ],
3590
+ # }
3591
+ #
3592
+ # @!attribute [rw] tag_set
3593
+ # A collection for a set of tags.
3594
+ # @return [Array<Types::S3Tag>]
3595
+ #
3596
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/Tagging AWS API Documentation
3597
+ #
3598
+ class Tagging < Struct.new(
3599
+ :tag_set)
3600
+ SENSITIVE = []
3601
+ include Aws::Structure
3602
+ end
3603
+
2285
3604
  # @!attribute [rw] message
2286
3605
  # @return [String]
2287
3606
  #
@@ -2293,6 +3612,9 @@ module Aws::S3Control
2293
3612
  include Aws::Structure
2294
3613
  end
2295
3614
 
3615
+ # Amazon S3 throws this exception if you have too many tags in your tag
3616
+ # set.
3617
+ #
2296
3618
  # @!attribute [rw] message
2297
3619
  # @return [String]
2298
3620
  #
@@ -2304,6 +3626,50 @@ module Aws::S3Control
2304
3626
  include Aws::Structure
2305
3627
  end
2306
3628
 
3629
+ # Specifies when an object transitions to a specified storage class. For
3630
+ # more information about Amazon S3 Lifecycle configuration rules, see [
3631
+ # Transitioning Objects Using Amazon S3 Lifecycle][1] in the *Amazon
3632
+ # Simple Storage Service Developer Guide*.
3633
+ #
3634
+ #
3635
+ #
3636
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-transition-general-considerations.html
3637
+ #
3638
+ # @note When making an API call, you may pass Transition
3639
+ # data as a hash:
3640
+ #
3641
+ # {
3642
+ # date: Time.now,
3643
+ # days: 1,
3644
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
3645
+ # }
3646
+ #
3647
+ # @!attribute [rw] date
3648
+ # Indicates when objects are transitioned to the specified storage
3649
+ # class. The date value must be in ISO 8601 format. The time is always
3650
+ # midnight UTC.
3651
+ # @return [Time]
3652
+ #
3653
+ # @!attribute [rw] days
3654
+ # Indicates the number of days after creation when objects are
3655
+ # transitioned to the specified storage class. The value must be a
3656
+ # positive integer.
3657
+ # @return [Integer]
3658
+ #
3659
+ # @!attribute [rw] storage_class
3660
+ # The storage class to which you want the object to transition.
3661
+ # @return [String]
3662
+ #
3663
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/Transition AWS API Documentation
3664
+ #
3665
+ class Transition < Struct.new(
3666
+ :date,
3667
+ :days,
3668
+ :storage_class)
3669
+ SENSITIVE = []
3670
+ include Aws::Structure
3671
+ end
3672
+
2307
3673
  # @note When making an API call, you may pass UpdateJobPriorityRequest
2308
3674
  # data as a hash:
2309
3675
  #