aws-sdk-s3control 1.21.0 → 1.26.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
@@ -22,7 +22,9 @@ for all operations.
22
22
  # @api private
23
23
  class OptionHandler < Seahorse::Client::Handler
24
24
  def call(context)
25
- dualstack = context.params.delete(:use_dualstack_endpoint)
25
+ if context.params.is_a?(Hash)
26
+ dualstack = context.params.delete(:use_dualstack_endpoint)
27
+ end
26
28
  dualstack = context.config.use_dualstack_endpoint if dualstack.nil?
27
29
  context[:use_dualstack_endpoint] = dualstack
28
30
  @handler.call(context)
@@ -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,83 @@ 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)
71
+ SENSITIVE = []
72
+ include Aws::Structure
73
+ end
74
+
75
+ # A container for the account level Amazon S3 Storage Lens
76
+ # configuration.
77
+ #
78
+ # @note When making an API call, you may pass AccountLevel
79
+ # data as a hash:
80
+ #
81
+ # {
82
+ # activity_metrics: {
83
+ # is_enabled: false,
84
+ # },
85
+ # bucket_level: { # required
86
+ # activity_metrics: {
87
+ # is_enabled: false,
88
+ # },
89
+ # prefix_level: {
90
+ # storage_metrics: { # required
91
+ # is_enabled: false,
92
+ # selection_criteria: {
93
+ # delimiter: "StorageLensPrefixLevelDelimiter",
94
+ # max_depth: 1,
95
+ # min_storage_bytes_percentage: 1.0,
96
+ # },
97
+ # },
98
+ # },
99
+ # },
100
+ # }
101
+ #
102
+ # @!attribute [rw] activity_metrics
103
+ # A container for the S3 Storage Lens activity metrics.
104
+ # @return [Types::ActivityMetrics]
105
+ #
106
+ # @!attribute [rw] bucket_level
107
+ # A container for the S3 Storage Lens bucket-level configuration.
108
+ # @return [Types::BucketLevel]
109
+ #
110
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/AccountLevel AWS API Documentation
111
+ #
112
+ class AccountLevel < Struct.new(
113
+ :activity_metrics,
114
+ :bucket_level)
115
+ SENSITIVE = []
116
+ include Aws::Structure
117
+ end
118
+
119
+ # A container for the activity metrics.
120
+ #
121
+ # @note When making an API call, you may pass ActivityMetrics
122
+ # data as a hash:
123
+ #
124
+ # {
125
+ # is_enabled: false,
126
+ # }
127
+ #
128
+ # @!attribute [rw] is_enabled
129
+ # A container for whether the activity metrics are enabled.
130
+ # @return [Boolean]
131
+ #
132
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ActivityMetrics AWS API Documentation
133
+ #
134
+ class ActivityMetrics < Struct.new(
135
+ :is_enabled)
44
136
  SENSITIVE = []
45
137
  include Aws::Structure
46
138
  end
@@ -56,6 +148,61 @@ module Aws::S3Control
56
148
  include Aws::Structure
57
149
  end
58
150
 
151
+ # The requested Outposts bucket name is not available. The bucket
152
+ # namespace is shared by all users of the AWS Outposts in this Region.
153
+ # Select a different name and try again.
154
+ #
155
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/BucketAlreadyExists AWS API Documentation
156
+ #
157
+ class BucketAlreadyExists < Aws::EmptyStructure; end
158
+
159
+ # The Outposts bucket you tried to create already exists, and you own
160
+ # it.
161
+ #
162
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/BucketAlreadyOwnedByYou AWS API Documentation
163
+ #
164
+ class BucketAlreadyOwnedByYou < Aws::EmptyStructure; end
165
+
166
+ # A container for the bucket-level configuration.
167
+ #
168
+ # @note When making an API call, you may pass BucketLevel
169
+ # data as a hash:
170
+ #
171
+ # {
172
+ # activity_metrics: {
173
+ # is_enabled: false,
174
+ # },
175
+ # prefix_level: {
176
+ # storage_metrics: { # required
177
+ # is_enabled: false,
178
+ # selection_criteria: {
179
+ # delimiter: "StorageLensPrefixLevelDelimiter",
180
+ # max_depth: 1,
181
+ # min_storage_bytes_percentage: 1.0,
182
+ # },
183
+ # },
184
+ # },
185
+ # }
186
+ #
187
+ # @!attribute [rw] activity_metrics
188
+ # A container for the bucket-level activity metrics for Amazon S3
189
+ # Storage Lens
190
+ # @return [Types::ActivityMetrics]
191
+ #
192
+ # @!attribute [rw] prefix_level
193
+ # A container for the bucket-level prefix-level metrics for S3 Storage
194
+ # Lens
195
+ # @return [Types::PrefixLevel]
196
+ #
197
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/BucketLevel AWS API Documentation
198
+ #
199
+ class BucketLevel < Struct.new(
200
+ :activity_metrics,
201
+ :prefix_level)
202
+ SENSITIVE = []
203
+ include Aws::Structure
204
+ end
205
+
59
206
  # @note When making an API call, you may pass CreateAccessPointRequest
60
207
  # data as a hash:
61
208
  #
@@ -86,19 +233,38 @@ module Aws::S3Control
86
233
  # @!attribute [rw] bucket
87
234
  # The name of the bucket that you want to associate this access point
88
235
  # with.
236
+ #
237
+ # For using this parameter with Amazon S3 on Outposts with the REST
238
+ # API, you must specify the name and the x-amz-outpost-id as well.
239
+ #
240
+ # For using this parameter with S3 on Outposts with the AWS SDK and
241
+ # CLI, you must specify the ARN of the bucket accessed in the format
242
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
243
+ # For example, to access the bucket `reports` through outpost
244
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
245
+ # use the URL encoding of
246
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
247
+ # The value must be URL encoded.
89
248
  # @return [String]
90
249
  #
91
250
  # @!attribute [rw] vpc_configuration
92
251
  # If you include this field, Amazon S3 restricts access to this access
93
252
  # point to requests from the specified virtual private cloud (VPC).
253
+ #
254
+ # <note markdown="1"> This is required for creating an access point for Amazon S3 on
255
+ # Outposts buckets.
256
+ #
257
+ # </note>
94
258
  # @return [Types::VpcConfiguration]
95
259
  #
96
260
  # @!attribute [rw] public_access_block_configuration
97
261
  # The `PublicAccessBlock` configuration that you want to apply to this
98
- # Amazon S3 bucket. You can enable the configuration options in any
262
+ # Amazon S3 account. You can enable the configuration options in any
99
263
  # combination. For more information about when Amazon S3 considers a
100
264
  # bucket or object public, see [The Meaning of "Public"][1] in the
101
- # Amazon Simple Storage Service Developer Guide.
265
+ # *Amazon Simple Storage Service Developer Guide*.
266
+ #
267
+ # This is not supported for Amazon S3 on Outposts.
102
268
  #
103
269
  #
104
270
  #
@@ -117,6 +283,196 @@ module Aws::S3Control
117
283
  include Aws::Structure
118
284
  end
119
285
 
286
+ # @!attribute [rw] access_point_arn
287
+ # The ARN of the access point.
288
+ #
289
+ # <note markdown="1"> This is only supported by Amazon S3 on Outposts.
290
+ #
291
+ # </note>
292
+ # @return [String]
293
+ #
294
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateAccessPointResult AWS API Documentation
295
+ #
296
+ class CreateAccessPointResult < Struct.new(
297
+ :access_point_arn)
298
+ SENSITIVE = []
299
+ include Aws::Structure
300
+ end
301
+
302
+ # The container for the bucket configuration.
303
+ #
304
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
305
+ #
306
+ # </note>
307
+ #
308
+ # @note When making an API call, you may pass CreateBucketConfiguration
309
+ # data as a hash:
310
+ #
311
+ # {
312
+ # 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
313
+ # }
314
+ #
315
+ # @!attribute [rw] location_constraint
316
+ # Specifies the Region where the bucket will be created. If you are
317
+ # creating a bucket on the US East (N. Virginia) Region (us-east-1),
318
+ # you do not need to specify the location.
319
+ #
320
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
321
+ #
322
+ # </note>
323
+ # @return [String]
324
+ #
325
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateBucketConfiguration AWS API Documentation
326
+ #
327
+ class CreateBucketConfiguration < Struct.new(
328
+ :location_constraint)
329
+ SENSITIVE = []
330
+ include Aws::Structure
331
+ end
332
+
333
+ # @note When making an API call, you may pass CreateBucketRequest
334
+ # data as a hash:
335
+ #
336
+ # {
337
+ # acl: "private", # accepts private, public-read, public-read-write, authenticated-read
338
+ # bucket: "BucketName", # required
339
+ # create_bucket_configuration: {
340
+ # 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
341
+ # },
342
+ # grant_full_control: "GrantFullControl",
343
+ # grant_read: "GrantRead",
344
+ # grant_read_acp: "GrantReadACP",
345
+ # grant_write: "GrantWrite",
346
+ # grant_write_acp: "GrantWriteACP",
347
+ # object_lock_enabled_for_bucket: false,
348
+ # outpost_id: "NonEmptyMaxLength64String",
349
+ # }
350
+ #
351
+ # @!attribute [rw] acl
352
+ # The canned ACL to apply to the bucket.
353
+ #
354
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
355
+ #
356
+ # </note>
357
+ # @return [String]
358
+ #
359
+ # @!attribute [rw] bucket
360
+ # The name of the bucket.
361
+ # @return [String]
362
+ #
363
+ # @!attribute [rw] create_bucket_configuration
364
+ # The configuration information for the bucket.
365
+ #
366
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
367
+ #
368
+ # </note>
369
+ # @return [Types::CreateBucketConfiguration]
370
+ #
371
+ # @!attribute [rw] grant_full_control
372
+ # Allows grantee the read, write, read ACP, and write ACP permissions
373
+ # on the bucket.
374
+ #
375
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
376
+ #
377
+ # </note>
378
+ # @return [String]
379
+ #
380
+ # @!attribute [rw] grant_read
381
+ # Allows grantee to list the objects in the bucket.
382
+ #
383
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
384
+ #
385
+ # </note>
386
+ # @return [String]
387
+ #
388
+ # @!attribute [rw] grant_read_acp
389
+ # Allows grantee to read the bucket ACL.
390
+ #
391
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
392
+ #
393
+ # </note>
394
+ # @return [String]
395
+ #
396
+ # @!attribute [rw] grant_write
397
+ # Allows grantee to create, overwrite, and delete any object in the
398
+ # bucket.
399
+ #
400
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
401
+ #
402
+ # </note>
403
+ # @return [String]
404
+ #
405
+ # @!attribute [rw] grant_write_acp
406
+ # Allows grantee to write the ACL for the applicable bucket.
407
+ #
408
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
409
+ #
410
+ # </note>
411
+ # @return [String]
412
+ #
413
+ # @!attribute [rw] object_lock_enabled_for_bucket
414
+ # Specifies whether you want S3 Object Lock to be enabled for the new
415
+ # bucket.
416
+ #
417
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
418
+ #
419
+ # </note>
420
+ # @return [Boolean]
421
+ #
422
+ # @!attribute [rw] outpost_id
423
+ # The ID of the Outposts where the bucket is being created.
424
+ #
425
+ # <note markdown="1"> This is required by Amazon S3 on Outposts buckets.
426
+ #
427
+ # </note>
428
+ # @return [String]
429
+ #
430
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateBucketRequest AWS API Documentation
431
+ #
432
+ class CreateBucketRequest < Struct.new(
433
+ :acl,
434
+ :bucket,
435
+ :create_bucket_configuration,
436
+ :grant_full_control,
437
+ :grant_read,
438
+ :grant_read_acp,
439
+ :grant_write,
440
+ :grant_write_acp,
441
+ :object_lock_enabled_for_bucket,
442
+ :outpost_id)
443
+ SENSITIVE = []
444
+ include Aws::Structure
445
+ end
446
+
447
+ # @!attribute [rw] location
448
+ # The location of the bucket.
449
+ # @return [String]
450
+ #
451
+ # @!attribute [rw] bucket_arn
452
+ # The Amazon Resource Name (ARN) of the bucket.
453
+ #
454
+ # For using this parameter with Amazon S3 on Outposts with the REST
455
+ # API, you must specify the name and the x-amz-outpost-id as well.
456
+ #
457
+ # For using this parameter with S3 on Outposts with the AWS SDK and
458
+ # CLI, you must specify the ARN of the bucket accessed in the format
459
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
460
+ # For example, to access the bucket `reports` through outpost
461
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
462
+ # use the URL encoding of
463
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
464
+ # The value must be URL encoded.
465
+ # @return [String]
466
+ #
467
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateBucketResult AWS API Documentation
468
+ #
469
+ class CreateBucketResult < Struct.new(
470
+ :location,
471
+ :bucket_arn)
472
+ SENSITIVE = []
473
+ include Aws::Structure
474
+ end
475
+
120
476
  # @note When making an API call, you may pass CreateJobRequest
121
477
  # data as a hash:
122
478
  #
@@ -250,6 +606,7 @@ module Aws::S3Control
250
606
  # }
251
607
  #
252
608
  # @!attribute [rw] account_id
609
+ # The AWS account ID that creates the job.
253
610
  # @return [String]
254
611
  #
255
612
  # @!attribute [rw] confirmation_required
@@ -259,10 +616,10 @@ module Aws::S3Control
259
616
  # @return [Boolean]
260
617
  #
261
618
  # @!attribute [rw] operation
262
- # The operation that you want this job to perform on each object
619
+ # The operation that you want this job to perform on every object
263
620
  # 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*.
621
+ # operations, see [Operations][1] in the *Amazon Simple Storage
622
+ # Service Developer Guide*.
266
623
  #
267
624
  #
268
625
  #
@@ -299,13 +656,13 @@ module Aws::S3Control
299
656
  #
300
657
  # @!attribute [rw] role_arn
301
658
  # The Amazon Resource Name (ARN) for the AWS Identity and Access
302
- # Management (IAM) role that Batch Operations will use to execute this
303
- # job's operation on each object in the manifest.
659
+ # Management (IAM) role that Batch Operations will use to run this
660
+ # job's operation on every object in the manifest.
304
661
  # @return [String]
305
662
  #
306
663
  # @!attribute [rw] tags
307
- # A set of tags to associate with the Amazon S3 Batch Operations job.
308
- # This is an optional parameter.
664
+ # A set of tags to associate with the S3 Batch Operations job. This is
665
+ # an optional parameter.
309
666
  # @return [Array<Types::S3Tag>]
310
667
  #
311
668
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateJobRequest AWS API Documentation
@@ -352,6 +709,19 @@ module Aws::S3Control
352
709
  #
353
710
  # @!attribute [rw] name
354
711
  # The name of the access point whose policy you want to delete.
712
+ #
713
+ # For using this parameter with Amazon S3 on Outposts with the REST
714
+ # API, you must specify the name and the x-amz-outpost-id as well.
715
+ #
716
+ # For using this parameter with S3 on Outposts with the AWS SDK and
717
+ # CLI, you must specify the ARN of the access point accessed in the
718
+ # format
719
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>`.
720
+ # For example, to access the access point `reports-ap` through outpost
721
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
722
+ # use the URL encoding of
723
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap`.
724
+ # The value must be URL encoded.
355
725
  # @return [String]
356
726
  #
357
727
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPointPolicyRequest AWS API Documentation
@@ -377,6 +747,19 @@ module Aws::S3Control
377
747
  #
378
748
  # @!attribute [rw] name
379
749
  # The name of the access point you want to delete.
750
+ #
751
+ # For using this parameter with Amazon S3 on Outposts with the REST
752
+ # API, you must specify the name and the x-amz-outpost-id as well.
753
+ #
754
+ # For using this parameter with S3 on Outposts with the AWS SDK and
755
+ # CLI, you must specify the ARN of the access point accessed in the
756
+ # format
757
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>`.
758
+ # For example, to access the access point `reports-ap` through outpost
759
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
760
+ # use the URL encoding of
761
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap`.
762
+ # The value must be URL encoded.
380
763
  # @return [String]
381
764
  #
382
765
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPointRequest AWS API Documentation
@@ -388,159 +771,400 @@ module Aws::S3Control
388
771
  include Aws::Structure
389
772
  end
390
773
 
391
- # @note When making an API call, you may pass DeleteJobTaggingRequest
774
+ # @note When making an API call, you may pass DeleteBucketLifecycleConfigurationRequest
392
775
  # data as a hash:
393
776
  #
394
777
  # {
395
778
  # account_id: "AccountId", # required
396
- # job_id: "JobId", # required
779
+ # bucket: "BucketName", # required
397
780
  # }
398
781
  #
399
782
  # @!attribute [rw] account_id
400
- # The AWS account ID associated with the Amazon S3 Batch Operations
401
- # job.
783
+ # The account ID of the lifecycle configuration to delete.
402
784
  # @return [String]
403
785
  #
404
- # @!attribute [rw] job_id
405
- # The ID for the Amazon S3 Batch Operations job whose tags you want to
406
- # delete.
786
+ # @!attribute [rw] bucket
787
+ # Specifies the bucket.
788
+ #
789
+ # For using this parameter with Amazon S3 on Outposts with the REST
790
+ # API, you must specify the name and the x-amz-outpost-id as well.
791
+ #
792
+ # For using this parameter with S3 on Outposts with the AWS SDK and
793
+ # CLI, you must specify the ARN of the bucket accessed in the format
794
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
795
+ # For example, to access the bucket `reports` through outpost
796
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
797
+ # use the URL encoding of
798
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
799
+ # The value must be URL encoded.
407
800
  # @return [String]
408
801
  #
409
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteJobTaggingRequest AWS API Documentation
802
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketLifecycleConfigurationRequest AWS API Documentation
410
803
  #
411
- class DeleteJobTaggingRequest < Struct.new(
804
+ class DeleteBucketLifecycleConfigurationRequest < Struct.new(
412
805
  :account_id,
413
- :job_id)
806
+ :bucket)
414
807
  SENSITIVE = []
415
808
  include Aws::Structure
416
809
  end
417
810
 
418
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteJobTaggingResult AWS API Documentation
419
- #
420
- class DeleteJobTaggingResult < Aws::EmptyStructure; end
421
-
422
- # @note When making an API call, you may pass DeletePublicAccessBlockRequest
811
+ # @note When making an API call, you may pass DeleteBucketPolicyRequest
423
812
  # data as a hash:
424
813
  #
425
814
  # {
426
815
  # account_id: "AccountId", # required
816
+ # bucket: "BucketName", # required
427
817
  # }
428
818
  #
429
819
  # @!attribute [rw] account_id
430
- # The account ID for the Amazon Web Services account whose
431
- # `PublicAccessBlock` configuration you want to remove.
820
+ # The account ID of the Outposts bucket.
432
821
  # @return [String]
433
822
  #
434
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeletePublicAccessBlockRequest AWS API Documentation
823
+ # @!attribute [rw] bucket
824
+ # Specifies the bucket.
825
+ #
826
+ # For using this parameter with Amazon S3 on Outposts with the REST
827
+ # API, you must specify the name and the x-amz-outpost-id as well.
828
+ #
829
+ # For using this parameter with S3 on Outposts with the AWS SDK and
830
+ # CLI, you must specify the ARN of the bucket accessed in the format
831
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
832
+ # For example, to access the bucket `reports` through outpost
833
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
834
+ # use the URL encoding of
835
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
836
+ # The value must be URL encoded.
837
+ # @return [String]
435
838
  #
436
- class DeletePublicAccessBlockRequest < Struct.new(
437
- :account_id)
839
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketPolicyRequest AWS API Documentation
840
+ #
841
+ class DeleteBucketPolicyRequest < Struct.new(
842
+ :account_id,
843
+ :bucket)
438
844
  SENSITIVE = []
439
845
  include Aws::Structure
440
846
  end
441
847
 
442
- # @note When making an API call, you may pass DescribeJobRequest
848
+ # @note When making an API call, you may pass DeleteBucketRequest
443
849
  # data as a hash:
444
850
  #
445
851
  # {
446
852
  # account_id: "AccountId", # required
447
- # job_id: "JobId", # required
853
+ # bucket: "BucketName", # required
448
854
  # }
449
855
  #
450
856
  # @!attribute [rw] account_id
857
+ # The account ID that owns the Outposts bucket.
451
858
  # @return [String]
452
859
  #
453
- # @!attribute [rw] job_id
454
- # The ID for the job whose information you want to retrieve.
860
+ # @!attribute [rw] bucket
861
+ # Specifies the bucket being deleted.
862
+ #
863
+ # For using this parameter with Amazon S3 on Outposts with the REST
864
+ # API, you must specify the name and the x-amz-outpost-id as well.
865
+ #
866
+ # For using this parameter with S3 on Outposts with the AWS SDK and
867
+ # CLI, you must specify the ARN of the bucket accessed in the format
868
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
869
+ # For example, to access the bucket `reports` through outpost
870
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
871
+ # use the URL encoding of
872
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
873
+ # The value must be URL encoded.
455
874
  # @return [String]
456
875
  #
457
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DescribeJobRequest AWS API Documentation
876
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketRequest AWS API Documentation
458
877
  #
459
- class DescribeJobRequest < Struct.new(
878
+ class DeleteBucketRequest < Struct.new(
460
879
  :account_id,
461
- :job_id)
462
- SENSITIVE = []
463
- include Aws::Structure
464
- end
465
-
466
- # @!attribute [rw] job
467
- # Contains the configuration parameters and status for the job
468
- # specified in the `Describe Job` request.
469
- # @return [Types::JobDescriptor]
470
- #
471
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DescribeJobResult AWS API Documentation
472
- #
473
- class DescribeJobResult < Struct.new(
474
- :job)
880
+ :bucket)
475
881
  SENSITIVE = []
476
882
  include Aws::Structure
477
883
  end
478
884
 
479
- # @note When making an API call, you may pass GetAccessPointPolicyRequest
885
+ # @note When making an API call, you may pass DeleteBucketTaggingRequest
480
886
  # data as a hash:
481
887
  #
482
888
  # {
483
889
  # account_id: "AccountId", # required
484
- # name: "AccessPointName", # required
890
+ # bucket: "BucketName", # required
485
891
  # }
486
892
  #
487
893
  # @!attribute [rw] account_id
488
- # The account ID for the account that owns the specified access point.
894
+ # The AWS account ID of the Outposts bucket tag set to be removed.
489
895
  # @return [String]
490
896
  #
491
- # @!attribute [rw] name
492
- # The name of the access point whose policy you want to retrieve.
897
+ # @!attribute [rw] bucket
898
+ # The bucket ARN that has the tag set to be removed.
899
+ #
900
+ # For using this parameter with Amazon S3 on Outposts with the REST
901
+ # API, you must specify the name and the x-amz-outpost-id as well.
902
+ #
903
+ # For using this parameter with S3 on Outposts with the AWS SDK and
904
+ # CLI, you must specify the ARN of the bucket accessed in the format
905
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
906
+ # For example, to access the bucket `reports` through outpost
907
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
908
+ # use the URL encoding of
909
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
910
+ # The value must be URL encoded.
493
911
  # @return [String]
494
912
  #
495
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyRequest AWS API Documentation
913
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketTaggingRequest AWS API Documentation
496
914
  #
497
- class GetAccessPointPolicyRequest < Struct.new(
915
+ class DeleteBucketTaggingRequest < Struct.new(
498
916
  :account_id,
499
- :name)
500
- SENSITIVE = []
501
- include Aws::Structure
502
- end
503
-
504
- # @!attribute [rw] policy
505
- # The access point policy associated with the specified access point.
506
- # @return [String]
507
- #
508
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyResult AWS API Documentation
509
- #
510
- class GetAccessPointPolicyResult < Struct.new(
511
- :policy)
917
+ :bucket)
512
918
  SENSITIVE = []
513
919
  include Aws::Structure
514
920
  end
515
921
 
516
- # @note When making an API call, you may pass GetAccessPointPolicyStatusRequest
922
+ # @note When making an API call, you may pass DeleteJobTaggingRequest
517
923
  # data as a hash:
518
924
  #
519
925
  # {
520
926
  # account_id: "AccountId", # required
521
- # name: "AccessPointName", # required
927
+ # job_id: "JobId", # required
522
928
  # }
523
929
  #
524
930
  # @!attribute [rw] account_id
525
- # The account ID for the account that owns the specified access point.
931
+ # The AWS account ID associated with the S3 Batch Operations job.
526
932
  # @return [String]
527
933
  #
528
- # @!attribute [rw] name
529
- # The name of the access point whose policy status you want to
530
- # retrieve.
934
+ # @!attribute [rw] job_id
935
+ # The ID for the S3 Batch Operations job whose tags you want to
936
+ # delete.
531
937
  # @return [String]
532
938
  #
533
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatusRequest AWS API Documentation
939
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteJobTaggingRequest AWS API Documentation
534
940
  #
535
- class GetAccessPointPolicyStatusRequest < Struct.new(
941
+ class DeleteJobTaggingRequest < Struct.new(
536
942
  :account_id,
537
- :name)
943
+ :job_id)
538
944
  SENSITIVE = []
539
945
  include Aws::Structure
540
946
  end
541
947
 
542
- # @!attribute [rw] policy_status
543
- # Indicates the current policy status of the specified access point.
948
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteJobTaggingResult AWS API Documentation
949
+ #
950
+ class DeleteJobTaggingResult < Aws::EmptyStructure; end
951
+
952
+ # @note When making an API call, you may pass DeletePublicAccessBlockRequest
953
+ # data as a hash:
954
+ #
955
+ # {
956
+ # account_id: "AccountId", # required
957
+ # }
958
+ #
959
+ # @!attribute [rw] account_id
960
+ # The account ID for the AWS account whose `PublicAccessBlock`
961
+ # configuration you want to remove.
962
+ # @return [String]
963
+ #
964
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeletePublicAccessBlockRequest AWS API Documentation
965
+ #
966
+ class DeletePublicAccessBlockRequest < Struct.new(
967
+ :account_id)
968
+ SENSITIVE = []
969
+ include Aws::Structure
970
+ end
971
+
972
+ # @note When making an API call, you may pass DeleteStorageLensConfigurationRequest
973
+ # data as a hash:
974
+ #
975
+ # {
976
+ # config_id: "ConfigId", # required
977
+ # account_id: "AccountId", # required
978
+ # }
979
+ #
980
+ # @!attribute [rw] config_id
981
+ # The ID of the S3 Storage Lens configuration.
982
+ # @return [String]
983
+ #
984
+ # @!attribute [rw] account_id
985
+ # The account ID of the requester.
986
+ # @return [String]
987
+ #
988
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteStorageLensConfigurationRequest AWS API Documentation
989
+ #
990
+ class DeleteStorageLensConfigurationRequest < Struct.new(
991
+ :config_id,
992
+ :account_id)
993
+ SENSITIVE = []
994
+ include Aws::Structure
995
+ end
996
+
997
+ # @note When making an API call, you may pass DeleteStorageLensConfigurationTaggingRequest
998
+ # data as a hash:
999
+ #
1000
+ # {
1001
+ # config_id: "ConfigId", # required
1002
+ # account_id: "AccountId", # required
1003
+ # }
1004
+ #
1005
+ # @!attribute [rw] config_id
1006
+ # The ID of the S3 Storage Lens configuration.
1007
+ # @return [String]
1008
+ #
1009
+ # @!attribute [rw] account_id
1010
+ # The account ID of the requester.
1011
+ # @return [String]
1012
+ #
1013
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteStorageLensConfigurationTaggingRequest AWS API Documentation
1014
+ #
1015
+ class DeleteStorageLensConfigurationTaggingRequest < Struct.new(
1016
+ :config_id,
1017
+ :account_id)
1018
+ SENSITIVE = []
1019
+ include Aws::Structure
1020
+ end
1021
+
1022
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteStorageLensConfigurationTaggingResult AWS API Documentation
1023
+ #
1024
+ class DeleteStorageLensConfigurationTaggingResult < Aws::EmptyStructure; end
1025
+
1026
+ # @note When making an API call, you may pass DescribeJobRequest
1027
+ # data as a hash:
1028
+ #
1029
+ # {
1030
+ # account_id: "AccountId", # required
1031
+ # job_id: "JobId", # required
1032
+ # }
1033
+ #
1034
+ # @!attribute [rw] account_id
1035
+ # @return [String]
1036
+ #
1037
+ # @!attribute [rw] job_id
1038
+ # The ID for the job whose information you want to retrieve.
1039
+ # @return [String]
1040
+ #
1041
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DescribeJobRequest AWS API Documentation
1042
+ #
1043
+ class DescribeJobRequest < Struct.new(
1044
+ :account_id,
1045
+ :job_id)
1046
+ SENSITIVE = []
1047
+ include Aws::Structure
1048
+ end
1049
+
1050
+ # @!attribute [rw] job
1051
+ # Contains the configuration parameters and status for the job
1052
+ # specified in the `Describe Job` request.
1053
+ # @return [Types::JobDescriptor]
1054
+ #
1055
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DescribeJobResult AWS API Documentation
1056
+ #
1057
+ class DescribeJobResult < Struct.new(
1058
+ :job)
1059
+ SENSITIVE = []
1060
+ include Aws::Structure
1061
+ end
1062
+
1063
+ # A container for what Amazon S3 Storage Lens will exclude.
1064
+ #
1065
+ # @note When making an API call, you may pass Exclude
1066
+ # data as a hash:
1067
+ #
1068
+ # {
1069
+ # buckets: ["S3BucketArnString"],
1070
+ # regions: ["S3AWSRegion"],
1071
+ # }
1072
+ #
1073
+ # @!attribute [rw] buckets
1074
+ # A container for the S3 Storage Lens bucket excludes.
1075
+ # @return [Array<String>]
1076
+ #
1077
+ # @!attribute [rw] regions
1078
+ # A container for the S3 Storage Lens Region excludes.
1079
+ # @return [Array<String>]
1080
+ #
1081
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/Exclude AWS API Documentation
1082
+ #
1083
+ class Exclude < Struct.new(
1084
+ :buckets,
1085
+ :regions)
1086
+ SENSITIVE = []
1087
+ include Aws::Structure
1088
+ end
1089
+
1090
+ # @note When making an API call, you may pass GetAccessPointPolicyRequest
1091
+ # data as a hash:
1092
+ #
1093
+ # {
1094
+ # account_id: "AccountId", # required
1095
+ # name: "AccessPointName", # required
1096
+ # }
1097
+ #
1098
+ # @!attribute [rw] account_id
1099
+ # The account ID for the account that owns the specified access point.
1100
+ # @return [String]
1101
+ #
1102
+ # @!attribute [rw] name
1103
+ # The name of the access point whose policy you want to retrieve.
1104
+ #
1105
+ # For using this parameter with Amazon S3 on Outposts with the REST
1106
+ # API, you must specify the name and the x-amz-outpost-id as well.
1107
+ #
1108
+ # For using this parameter with S3 on Outposts with the AWS SDK and
1109
+ # CLI, you must specify the ARN of the access point accessed in the
1110
+ # format
1111
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>`.
1112
+ # For example, to access the access point `reports-ap` 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/accesspoint/reports-ap`.
1116
+ # The value must be URL encoded.
1117
+ # @return [String]
1118
+ #
1119
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyRequest AWS API Documentation
1120
+ #
1121
+ class GetAccessPointPolicyRequest < Struct.new(
1122
+ :account_id,
1123
+ :name)
1124
+ SENSITIVE = []
1125
+ include Aws::Structure
1126
+ end
1127
+
1128
+ # @!attribute [rw] policy
1129
+ # The access point policy associated with the specified access point.
1130
+ # @return [String]
1131
+ #
1132
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyResult AWS API Documentation
1133
+ #
1134
+ class GetAccessPointPolicyResult < Struct.new(
1135
+ :policy)
1136
+ SENSITIVE = []
1137
+ include Aws::Structure
1138
+ end
1139
+
1140
+ # @note When making an API call, you may pass GetAccessPointPolicyStatusRequest
1141
+ # data as a hash:
1142
+ #
1143
+ # {
1144
+ # account_id: "AccountId", # required
1145
+ # name: "AccessPointName", # required
1146
+ # }
1147
+ #
1148
+ # @!attribute [rw] account_id
1149
+ # The account ID for the account that owns the specified access point.
1150
+ # @return [String]
1151
+ #
1152
+ # @!attribute [rw] name
1153
+ # The name of the access point whose policy status you want to
1154
+ # retrieve.
1155
+ # @return [String]
1156
+ #
1157
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatusRequest AWS API Documentation
1158
+ #
1159
+ class GetAccessPointPolicyStatusRequest < Struct.new(
1160
+ :account_id,
1161
+ :name)
1162
+ SENSITIVE = []
1163
+ include Aws::Structure
1164
+ end
1165
+
1166
+ # @!attribute [rw] policy_status
1167
+ # Indicates the current policy status of the specified access point.
544
1168
  # @return [Types::PolicyStatus]
545
1169
  #
546
1170
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatusResult AWS API Documentation
@@ -566,6 +1190,19 @@ module Aws::S3Control
566
1190
  # @!attribute [rw] name
567
1191
  # The name of the access point whose configuration information you
568
1192
  # want to retrieve.
1193
+ #
1194
+ # For using this parameter with Amazon S3 on Outposts with the REST
1195
+ # API, you must specify the name and the x-amz-outpost-id as well.
1196
+ #
1197
+ # For using this parameter with S3 on Outposts with the AWS SDK and
1198
+ # CLI, you must specify the ARN of the access point accessed in the
1199
+ # format
1200
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>`.
1201
+ # For example, to access the access point `reports-ap` through outpost
1202
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
1203
+ # use the URL encoding of
1204
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap`.
1205
+ # The value must be URL encoded.
569
1206
  # @return [String]
570
1207
  #
571
1208
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointRequest AWS API Documentation
@@ -592,6 +1229,8 @@ module Aws::S3Control
592
1229
  # access from the public internet. Otherwise, `NetworkOrigin` is
593
1230
  # `Internet`, and the access point allows access from the public
594
1231
  # internet, subject to the access point and bucket access policies.
1232
+ #
1233
+ # This will always be true for an Amazon S3 on Outposts access point
595
1234
  # @return [String]
596
1235
  #
597
1236
  # @!attribute [rw] vpc_configuration
@@ -601,10 +1240,12 @@ module Aws::S3Control
601
1240
  #
602
1241
  # @!attribute [rw] public_access_block_configuration
603
1242
  # The `PublicAccessBlock` configuration that you want to apply to this
604
- # Amazon S3 bucket. You can enable the configuration options in any
1243
+ # Amazon S3 account. You can enable the configuration options in any
605
1244
  # combination. For more information about when Amazon S3 considers a
606
1245
  # bucket or object public, see [The Meaning of "Public"][1] in the
607
- # Amazon Simple Storage Service Developer Guide.
1246
+ # *Amazon Simple Storage Service Developer Guide*.
1247
+ #
1248
+ # This is not supported for Amazon S3 on Outposts.
608
1249
  #
609
1250
  #
610
1251
  #
@@ -628,6 +1269,211 @@ module Aws::S3Control
628
1269
  include Aws::Structure
629
1270
  end
630
1271
 
1272
+ # @note When making an API call, you may pass GetBucketLifecycleConfigurationRequest
1273
+ # data as a hash:
1274
+ #
1275
+ # {
1276
+ # account_id: "AccountId", # required
1277
+ # bucket: "BucketName", # required
1278
+ # }
1279
+ #
1280
+ # @!attribute [rw] account_id
1281
+ # The AWS account ID of the Outposts bucket.
1282
+ # @return [String]
1283
+ #
1284
+ # @!attribute [rw] bucket
1285
+ # The Amazon Resource Name (ARN) of the bucket.
1286
+ #
1287
+ # For using this parameter with Amazon S3 on Outposts with the REST
1288
+ # API, you must specify the name and the x-amz-outpost-id as well.
1289
+ #
1290
+ # For using this parameter with S3 on Outposts with the AWS SDK and
1291
+ # CLI, you must specify the ARN of the bucket accessed in the format
1292
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
1293
+ # For example, to access the bucket `reports` through outpost
1294
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
1295
+ # use the URL encoding of
1296
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
1297
+ # The value must be URL encoded.
1298
+ # @return [String]
1299
+ #
1300
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketLifecycleConfigurationRequest AWS API Documentation
1301
+ #
1302
+ class GetBucketLifecycleConfigurationRequest < Struct.new(
1303
+ :account_id,
1304
+ :bucket)
1305
+ SENSITIVE = []
1306
+ include Aws::Structure
1307
+ end
1308
+
1309
+ # @!attribute [rw] rules
1310
+ # Container for the lifecycle rule of the Outposts bucket.
1311
+ # @return [Array<Types::LifecycleRule>]
1312
+ #
1313
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketLifecycleConfigurationResult AWS API Documentation
1314
+ #
1315
+ class GetBucketLifecycleConfigurationResult < Struct.new(
1316
+ :rules)
1317
+ SENSITIVE = []
1318
+ include Aws::Structure
1319
+ end
1320
+
1321
+ # @note When making an API call, you may pass GetBucketPolicyRequest
1322
+ # data as a hash:
1323
+ #
1324
+ # {
1325
+ # account_id: "AccountId", # required
1326
+ # bucket: "BucketName", # required
1327
+ # }
1328
+ #
1329
+ # @!attribute [rw] account_id
1330
+ # The AWS account ID of the Outposts bucket.
1331
+ # @return [String]
1332
+ #
1333
+ # @!attribute [rw] bucket
1334
+ # Specifies the bucket.
1335
+ #
1336
+ # For using this parameter with Amazon S3 on Outposts with the REST
1337
+ # API, you must specify the name and the x-amz-outpost-id as well.
1338
+ #
1339
+ # For using this parameter with S3 on Outposts with the AWS SDK and
1340
+ # CLI, you must specify the ARN of the bucket accessed in the format
1341
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
1342
+ # For example, to access the bucket `reports` through outpost
1343
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
1344
+ # use the URL encoding of
1345
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
1346
+ # The value must be URL encoded.
1347
+ # @return [String]
1348
+ #
1349
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketPolicyRequest AWS API Documentation
1350
+ #
1351
+ class GetBucketPolicyRequest < Struct.new(
1352
+ :account_id,
1353
+ :bucket)
1354
+ SENSITIVE = []
1355
+ include Aws::Structure
1356
+ end
1357
+
1358
+ # @!attribute [rw] policy
1359
+ # The policy of the Outposts bucket.
1360
+ # @return [String]
1361
+ #
1362
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketPolicyResult AWS API Documentation
1363
+ #
1364
+ class GetBucketPolicyResult < Struct.new(
1365
+ :policy)
1366
+ SENSITIVE = []
1367
+ include Aws::Structure
1368
+ end
1369
+
1370
+ # @note When making an API call, you may pass GetBucketRequest
1371
+ # data as a hash:
1372
+ #
1373
+ # {
1374
+ # account_id: "AccountId", # required
1375
+ # bucket: "BucketName", # required
1376
+ # }
1377
+ #
1378
+ # @!attribute [rw] account_id
1379
+ # The AWS account ID of the Outposts bucket.
1380
+ # @return [String]
1381
+ #
1382
+ # @!attribute [rw] bucket
1383
+ # Specifies the bucket.
1384
+ #
1385
+ # For using this parameter with Amazon S3 on Outposts with the REST
1386
+ # API, you must specify the name and the x-amz-outpost-id as well.
1387
+ #
1388
+ # For using this parameter with S3 on Outposts with the AWS SDK and
1389
+ # CLI, you must specify the ARN of the bucket accessed in the format
1390
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
1391
+ # For example, to access the bucket `reports` through outpost
1392
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
1393
+ # use the URL encoding of
1394
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
1395
+ # The value must be URL encoded.
1396
+ # @return [String]
1397
+ #
1398
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketRequest AWS API Documentation
1399
+ #
1400
+ class GetBucketRequest < Struct.new(
1401
+ :account_id,
1402
+ :bucket)
1403
+ SENSITIVE = []
1404
+ include Aws::Structure
1405
+ end
1406
+
1407
+ # @!attribute [rw] bucket
1408
+ # The Outposts bucket requested.
1409
+ # @return [String]
1410
+ #
1411
+ # @!attribute [rw] public_access_block_enabled
1412
+ # @return [Boolean]
1413
+ #
1414
+ # @!attribute [rw] creation_date
1415
+ # The creation date of the Outposts bucket.
1416
+ # @return [Time]
1417
+ #
1418
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketResult AWS API Documentation
1419
+ #
1420
+ class GetBucketResult < Struct.new(
1421
+ :bucket,
1422
+ :public_access_block_enabled,
1423
+ :creation_date)
1424
+ SENSITIVE = []
1425
+ include Aws::Structure
1426
+ end
1427
+
1428
+ # @note When making an API call, you may pass GetBucketTaggingRequest
1429
+ # data as a hash:
1430
+ #
1431
+ # {
1432
+ # account_id: "AccountId", # required
1433
+ # bucket: "BucketName", # required
1434
+ # }
1435
+ #
1436
+ # @!attribute [rw] account_id
1437
+ # The AWS account ID of the Outposts bucket.
1438
+ # @return [String]
1439
+ #
1440
+ # @!attribute [rw] bucket
1441
+ # Specifies the bucket.
1442
+ #
1443
+ # For using this parameter with Amazon S3 on Outposts with the REST
1444
+ # API, you must specify the name and the x-amz-outpost-id as well.
1445
+ #
1446
+ # For using this parameter with S3 on Outposts with the AWS SDK and
1447
+ # CLI, you must specify the ARN of the bucket accessed in the format
1448
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
1449
+ # For example, to access the bucket `reports` through outpost
1450
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
1451
+ # use the URL encoding of
1452
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
1453
+ # The value must be URL encoded.
1454
+ # @return [String]
1455
+ #
1456
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketTaggingRequest AWS API Documentation
1457
+ #
1458
+ class GetBucketTaggingRequest < Struct.new(
1459
+ :account_id,
1460
+ :bucket)
1461
+ SENSITIVE = []
1462
+ include Aws::Structure
1463
+ end
1464
+
1465
+ # @!attribute [rw] tag_set
1466
+ # The tags set of the Outposts bucket.
1467
+ # @return [Array<Types::S3Tag>]
1468
+ #
1469
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketTaggingResult AWS API Documentation
1470
+ #
1471
+ class GetBucketTaggingResult < Struct.new(
1472
+ :tag_set)
1473
+ SENSITIVE = []
1474
+ include Aws::Structure
1475
+ end
1476
+
631
1477
  # @note When making an API call, you may pass GetJobTaggingRequest
632
1478
  # data as a hash:
633
1479
  #
@@ -637,12 +1483,11 @@ module Aws::S3Control
637
1483
  # }
638
1484
  #
639
1485
  # @!attribute [rw] account_id
640
- # The AWS account ID associated with the Amazon S3 Batch Operations
641
- # job.
1486
+ # The AWS account ID associated with the S3 Batch Operations job.
642
1487
  # @return [String]
643
1488
  #
644
1489
  # @!attribute [rw] job_id
645
- # The ID for the Amazon S3 Batch Operations job whose tags you want to
1490
+ # The ID for the S3 Batch Operations job whose tags you want to
646
1491
  # retrieve.
647
1492
  # @return [String]
648
1493
  #
@@ -656,50 +1501,124 @@ module Aws::S3Control
656
1501
  end
657
1502
 
658
1503
  # @!attribute [rw] tags
659
- # The set of tags associated with the Amazon S3 Batch Operations job.
1504
+ # The set of tags associated with the S3 Batch Operations job.
660
1505
  # @return [Array<Types::S3Tag>]
661
1506
  #
662
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetJobTaggingResult AWS API Documentation
1507
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetJobTaggingResult AWS API Documentation
1508
+ #
1509
+ class GetJobTaggingResult < Struct.new(
1510
+ :tags)
1511
+ SENSITIVE = []
1512
+ include Aws::Structure
1513
+ end
1514
+
1515
+ # @!attribute [rw] public_access_block_configuration
1516
+ # The `PublicAccessBlock` configuration currently in effect for this
1517
+ # AWS account.
1518
+ # @return [Types::PublicAccessBlockConfiguration]
1519
+ #
1520
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlockOutput AWS API Documentation
1521
+ #
1522
+ class GetPublicAccessBlockOutput < Struct.new(
1523
+ :public_access_block_configuration)
1524
+ SENSITIVE = []
1525
+ include Aws::Structure
1526
+ end
1527
+
1528
+ # @note When making an API call, you may pass GetPublicAccessBlockRequest
1529
+ # data as a hash:
1530
+ #
1531
+ # {
1532
+ # account_id: "AccountId", # required
1533
+ # }
1534
+ #
1535
+ # @!attribute [rw] account_id
1536
+ # The account ID for the AWS account whose `PublicAccessBlock`
1537
+ # configuration you want to retrieve.
1538
+ # @return [String]
1539
+ #
1540
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlockRequest AWS API Documentation
1541
+ #
1542
+ class GetPublicAccessBlockRequest < Struct.new(
1543
+ :account_id)
1544
+ SENSITIVE = []
1545
+ include Aws::Structure
1546
+ end
1547
+
1548
+ # @note When making an API call, you may pass GetStorageLensConfigurationRequest
1549
+ # data as a hash:
1550
+ #
1551
+ # {
1552
+ # config_id: "ConfigId", # required
1553
+ # account_id: "AccountId", # required
1554
+ # }
1555
+ #
1556
+ # @!attribute [rw] config_id
1557
+ # The ID of the Amazon S3 Storage Lens configuration.
1558
+ # @return [String]
1559
+ #
1560
+ # @!attribute [rw] account_id
1561
+ # The account ID of the requester.
1562
+ # @return [String]
663
1563
  #
664
- class GetJobTaggingResult < Struct.new(
665
- :tags)
1564
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfigurationRequest AWS API Documentation
1565
+ #
1566
+ class GetStorageLensConfigurationRequest < Struct.new(
1567
+ :config_id,
1568
+ :account_id)
666
1569
  SENSITIVE = []
667
1570
  include Aws::Structure
668
1571
  end
669
1572
 
670
- # @!attribute [rw] public_access_block_configuration
671
- # The `PublicAccessBlock` configuration currently in effect for this
672
- # Amazon Web Services account.
673
- # @return [Types::PublicAccessBlockConfiguration]
1573
+ # @!attribute [rw] storage_lens_configuration
1574
+ # The S3 Storage Lens configuration requested.
1575
+ # @return [Types::StorageLensConfiguration]
674
1576
  #
675
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlockOutput AWS API Documentation
1577
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfigurationResult AWS API Documentation
676
1578
  #
677
- class GetPublicAccessBlockOutput < Struct.new(
678
- :public_access_block_configuration)
1579
+ class GetStorageLensConfigurationResult < Struct.new(
1580
+ :storage_lens_configuration)
679
1581
  SENSITIVE = []
680
1582
  include Aws::Structure
681
1583
  end
682
1584
 
683
- # @note When making an API call, you may pass GetPublicAccessBlockRequest
1585
+ # @note When making an API call, you may pass GetStorageLensConfigurationTaggingRequest
684
1586
  # data as a hash:
685
1587
  #
686
1588
  # {
1589
+ # config_id: "ConfigId", # required
687
1590
  # account_id: "AccountId", # required
688
1591
  # }
689
1592
  #
1593
+ # @!attribute [rw] config_id
1594
+ # The ID of the Amazon S3 Storage Lens configuration.
1595
+ # @return [String]
1596
+ #
690
1597
  # @!attribute [rw] account_id
691
- # The account ID for the Amazon Web Services account whose
692
- # `PublicAccessBlock` configuration you want to retrieve.
1598
+ # The account ID of the requester.
693
1599
  # @return [String]
694
1600
  #
695
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlockRequest AWS API Documentation
1601
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfigurationTaggingRequest AWS API Documentation
696
1602
  #
697
- class GetPublicAccessBlockRequest < Struct.new(
1603
+ class GetStorageLensConfigurationTaggingRequest < Struct.new(
1604
+ :config_id,
698
1605
  :account_id)
699
1606
  SENSITIVE = []
700
1607
  include Aws::Structure
701
1608
  end
702
1609
 
1610
+ # @!attribute [rw] tags
1611
+ # The tags of S3 Storage Lens configuration requested.
1612
+ # @return [Array<Types::StorageLensTag>]
1613
+ #
1614
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfigurationTaggingResult AWS API Documentation
1615
+ #
1616
+ class GetStorageLensConfigurationTaggingResult < Struct.new(
1617
+ :tags)
1618
+ SENSITIVE = []
1619
+ include Aws::Structure
1620
+ end
1621
+
703
1622
  # @!attribute [rw] message
704
1623
  # @return [String]
705
1624
  #
@@ -711,6 +1630,33 @@ module Aws::S3Control
711
1630
  include Aws::Structure
712
1631
  end
713
1632
 
1633
+ # A container for what Amazon S3 Storage Lens configuration includes.
1634
+ #
1635
+ # @note When making an API call, you may pass Include
1636
+ # data as a hash:
1637
+ #
1638
+ # {
1639
+ # buckets: ["S3BucketArnString"],
1640
+ # regions: ["S3AWSRegion"],
1641
+ # }
1642
+ #
1643
+ # @!attribute [rw] buckets
1644
+ # A container for the S3 Storage Lens bucket includes.
1645
+ # @return [Array<String>]
1646
+ #
1647
+ # @!attribute [rw] regions
1648
+ # A container for the S3 Storage Lens Region includes.
1649
+ # @return [Array<String>]
1650
+ #
1651
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/Include AWS API Documentation
1652
+ #
1653
+ class Include < Struct.new(
1654
+ :buckets,
1655
+ :regions)
1656
+ SENSITIVE = []
1657
+ include Aws::Structure
1658
+ end
1659
+
714
1660
  # @!attribute [rw] message
715
1661
  # @return [String]
716
1662
  #
@@ -776,7 +1722,7 @@ module Aws::S3Control
776
1722
  # @return [Types::JobManifest]
777
1723
  #
778
1724
  # @!attribute [rw] operation
779
- # The operation that the specified job is configured to execute on the
1725
+ # The operation that the specified job is configured to run on the
780
1726
  # objects listed in the manifest.
781
1727
  # @return [Types::JobOperation]
782
1728
  #
@@ -785,12 +1731,13 @@ module Aws::S3Control
785
1731
  # @return [Integer]
786
1732
  #
787
1733
  # @!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.
1734
+ # Describes the total number of tasks that the specified job has run,
1735
+ # the number of tasks that succeeded, and the number of tasks that
1736
+ # failed.
791
1737
  # @return [Types::JobProgressSummary]
792
1738
  #
793
1739
  # @!attribute [rw] status_update_reason
1740
+ # The reason for updating the job.
794
1741
  # @return [String]
795
1742
  #
796
1743
  # @!attribute [rw] failure_reasons
@@ -815,7 +1762,7 @@ module Aws::S3Control
815
1762
  #
816
1763
  # @!attribute [rw] role_arn
817
1764
  # The Amazon Resource Name (ARN) for the AWS Identity and Access
818
- # Management (IAM) role assigned to execute the tasks for this job.
1765
+ # Management (IAM) role assigned to run the tasks for this job.
819
1766
  # @return [String]
820
1767
  #
821
1768
  # @!attribute [rw] suspended_date
@@ -886,7 +1833,7 @@ module Aws::S3Control
886
1833
  # @return [String]
887
1834
  #
888
1835
  # @!attribute [rw] operation
889
- # The operation that the specified job is configured to run on each
1836
+ # The operation that the specified job is configured to run on every
890
1837
  # object listed in the manifest.
891
1838
  # @return [String]
892
1839
  #
@@ -909,9 +1856,9 @@ module Aws::S3Control
909
1856
  # @return [Time]
910
1857
  #
911
1858
  # @!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.
1859
+ # Describes the total number of tasks that the specified job has run,
1860
+ # the number of tasks that succeeded, and the number of tasks that
1861
+ # failed.
915
1862
  # @return [Types::JobProgressSummary]
916
1863
  #
917
1864
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/JobListDescriptor AWS API Documentation
@@ -1031,10 +1978,10 @@ module Aws::S3Control
1031
1978
  include Aws::Structure
1032
1979
  end
1033
1980
 
1034
- # The operation that you want this job to perform on each object listed
1981
+ # The operation that you want this job to perform on every object listed
1035
1982
  # in the manifest. For more information about the available operations,
1036
- # see [Available Operations][1] in the *Amazon Simple Storage Service
1037
- # Developer Guide*.
1983
+ # see [Operations][1] in the *Amazon Simple Storage Service Developer
1984
+ # Guide*.
1038
1985
  #
1039
1986
  #
1040
1987
  #
@@ -1126,184 +2073,492 @@ module Aws::S3Control
1126
2073
  # expiration_in_days: 1,
1127
2074
  # glacier_job_tier: "BULK", # accepts BULK, STANDARD
1128
2075
  # },
1129
- # s3_put_object_legal_hold: {
1130
- # legal_hold: { # required
1131
- # status: "OFF", # required, accepts OFF, ON
2076
+ # s3_put_object_legal_hold: {
2077
+ # legal_hold: { # required
2078
+ # status: "OFF", # required, accepts OFF, ON
2079
+ # },
2080
+ # },
2081
+ # s3_put_object_retention: {
2082
+ # bypass_governance_retention: false,
2083
+ # retention: { # required
2084
+ # retain_until_date: Time.now,
2085
+ # mode: "COMPLIANCE", # accepts COMPLIANCE, GOVERNANCE
2086
+ # },
2087
+ # },
2088
+ # }
2089
+ #
2090
+ # @!attribute [rw] lambda_invoke
2091
+ # Directs the specified job to invoke an AWS Lambda function on every
2092
+ # object in the manifest.
2093
+ # @return [Types::LambdaInvokeOperation]
2094
+ #
2095
+ # @!attribute [rw] s3_put_object_copy
2096
+ # Directs the specified job to run a PUT Copy object call on every
2097
+ # object in the manifest.
2098
+ # @return [Types::S3CopyObjectOperation]
2099
+ #
2100
+ # @!attribute [rw] s3_put_object_acl
2101
+ # Directs the specified job to run a PUT Object acl call on every
2102
+ # object in the manifest.
2103
+ # @return [Types::S3SetObjectAclOperation]
2104
+ #
2105
+ # @!attribute [rw] s3_put_object_tagging
2106
+ # Directs the specified job to run a PUT Object tagging call on every
2107
+ # object in the manifest.
2108
+ # @return [Types::S3SetObjectTaggingOperation]
2109
+ #
2110
+ # @!attribute [rw] s3_initiate_restore_object
2111
+ # Directs the specified job to initiate restore requests for every
2112
+ # archived object in the manifest.
2113
+ # @return [Types::S3InitiateRestoreObjectOperation]
2114
+ #
2115
+ # @!attribute [rw] s3_put_object_legal_hold
2116
+ # Contains the configuration for an S3 Object Lock legal hold
2117
+ # operation that an S3 Batch Operations job passes every object to the
2118
+ # underlying `PutObjectLegalHold` API. For more information, see
2119
+ # [Using S3 Object Lock legal hold with S3 Batch Operations][1] in the
2120
+ # *Amazon Simple Storage Service Developer Guide*.
2121
+ #
2122
+ #
2123
+ #
2124
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-legal-hold.html
2125
+ # @return [Types::S3SetObjectLegalHoldOperation]
2126
+ #
2127
+ # @!attribute [rw] s3_put_object_retention
2128
+ # Contains the configuration parameters for the Object Lock retention
2129
+ # action for an S3 Batch Operations job. Batch Operations passes every
2130
+ # object to the underlying `PutObjectRetention` API. For more
2131
+ # information, see [Using S3 Object Lock retention with S3 Batch
2132
+ # Operations][1] in the *Amazon Simple Storage Service Developer
2133
+ # Guide*.
2134
+ #
2135
+ #
2136
+ #
2137
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html
2138
+ # @return [Types::S3SetObjectRetentionOperation]
2139
+ #
2140
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/JobOperation AWS API Documentation
2141
+ #
2142
+ class JobOperation < Struct.new(
2143
+ :lambda_invoke,
2144
+ :s3_put_object_copy,
2145
+ :s3_put_object_acl,
2146
+ :s3_put_object_tagging,
2147
+ :s3_initiate_restore_object,
2148
+ :s3_put_object_legal_hold,
2149
+ :s3_put_object_retention)
2150
+ SENSITIVE = []
2151
+ include Aws::Structure
2152
+ end
2153
+
2154
+ # Describes the total number of tasks that the specified job has
2155
+ # started, the number of tasks that succeeded, and the number of tasks
2156
+ # that failed.
2157
+ #
2158
+ # @!attribute [rw] total_number_of_tasks
2159
+ # @return [Integer]
2160
+ #
2161
+ # @!attribute [rw] number_of_tasks_succeeded
2162
+ # @return [Integer]
2163
+ #
2164
+ # @!attribute [rw] number_of_tasks_failed
2165
+ # @return [Integer]
2166
+ #
2167
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/JobProgressSummary AWS API Documentation
2168
+ #
2169
+ class JobProgressSummary < Struct.new(
2170
+ :total_number_of_tasks,
2171
+ :number_of_tasks_succeeded,
2172
+ :number_of_tasks_failed)
2173
+ SENSITIVE = []
2174
+ include Aws::Structure
2175
+ end
2176
+
2177
+ # Contains the configuration parameters for a job-completion report.
2178
+ #
2179
+ # @note When making an API call, you may pass JobReport
2180
+ # data as a hash:
2181
+ #
2182
+ # {
2183
+ # bucket: "S3BucketArnString",
2184
+ # format: "Report_CSV_20180820", # accepts Report_CSV_20180820
2185
+ # enabled: false, # required
2186
+ # prefix: "ReportPrefixString",
2187
+ # report_scope: "AllTasks", # accepts AllTasks, FailedTasksOnly
2188
+ # }
2189
+ #
2190
+ # @!attribute [rw] bucket
2191
+ # The Amazon Resource Name (ARN) for the bucket where specified
2192
+ # job-completion report will be stored.
2193
+ # @return [String]
2194
+ #
2195
+ # @!attribute [rw] format
2196
+ # The format of the specified job-completion report.
2197
+ # @return [String]
2198
+ #
2199
+ # @!attribute [rw] enabled
2200
+ # Indicates whether the specified job will generate a job-completion
2201
+ # report.
2202
+ # @return [Boolean]
2203
+ #
2204
+ # @!attribute [rw] prefix
2205
+ # An optional prefix to describe where in the specified bucket the
2206
+ # job-completion report will be stored. Amazon S3 stores the
2207
+ # job-completion report at `<prefix>/job-<job-id>/report.json`.
2208
+ # @return [String]
2209
+ #
2210
+ # @!attribute [rw] report_scope
2211
+ # Indicates whether the job-completion report will include details of
2212
+ # all tasks or only failed tasks.
2213
+ # @return [String]
2214
+ #
2215
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/JobReport AWS API Documentation
2216
+ #
2217
+ class JobReport < Struct.new(
2218
+ :bucket,
2219
+ :format,
2220
+ :enabled,
2221
+ :prefix,
2222
+ :report_scope)
2223
+ SENSITIVE = []
2224
+ include Aws::Structure
2225
+ end
2226
+
2227
+ # @!attribute [rw] message
2228
+ # @return [String]
2229
+ #
2230
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/JobStatusException AWS API Documentation
2231
+ #
2232
+ class JobStatusException < Struct.new(
2233
+ :message)
2234
+ SENSITIVE = []
2235
+ include Aws::Structure
2236
+ end
2237
+
2238
+ # Contains the configuration parameters for a `Lambda Invoke` operation.
2239
+ #
2240
+ # @note When making an API call, you may pass LambdaInvokeOperation
2241
+ # data as a hash:
2242
+ #
2243
+ # {
2244
+ # function_arn: "FunctionArnString",
2245
+ # }
2246
+ #
2247
+ # @!attribute [rw] function_arn
2248
+ # The Amazon Resource Name (ARN) for the AWS Lambda function that the
2249
+ # specified job will invoke on every object in the manifest.
2250
+ # @return [String]
2251
+ #
2252
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/LambdaInvokeOperation AWS API Documentation
2253
+ #
2254
+ class LambdaInvokeOperation < Struct.new(
2255
+ :function_arn)
2256
+ SENSITIVE = []
2257
+ include Aws::Structure
2258
+ end
2259
+
2260
+ # The container for the Outposts bucket lifecycle configuration.
2261
+ #
2262
+ # @note When making an API call, you may pass LifecycleConfiguration
2263
+ # data as a hash:
2264
+ #
2265
+ # {
2266
+ # rules: [
2267
+ # {
2268
+ # expiration: {
2269
+ # date: Time.now,
2270
+ # days: 1,
2271
+ # expired_object_delete_marker: false,
2272
+ # },
2273
+ # id: "ID",
2274
+ # filter: {
2275
+ # prefix: "Prefix",
2276
+ # tag: {
2277
+ # key: "TagKeyString", # required
2278
+ # value: "TagValueString", # required
2279
+ # },
2280
+ # and: {
2281
+ # prefix: "Prefix",
2282
+ # tags: [
2283
+ # {
2284
+ # key: "TagKeyString", # required
2285
+ # value: "TagValueString", # required
2286
+ # },
2287
+ # ],
2288
+ # },
2289
+ # },
2290
+ # status: "Enabled", # required, accepts Enabled, Disabled
2291
+ # transitions: [
2292
+ # {
2293
+ # date: Time.now,
2294
+ # days: 1,
2295
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
2296
+ # },
2297
+ # ],
2298
+ # noncurrent_version_transitions: [
2299
+ # {
2300
+ # noncurrent_days: 1,
2301
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
2302
+ # },
2303
+ # ],
2304
+ # noncurrent_version_expiration: {
2305
+ # noncurrent_days: 1,
2306
+ # },
2307
+ # abort_incomplete_multipart_upload: {
2308
+ # days_after_initiation: 1,
2309
+ # },
2310
+ # },
2311
+ # ],
2312
+ # }
2313
+ #
2314
+ # @!attribute [rw] rules
2315
+ # A lifecycle rule for individual objects in an Outposts bucket.
2316
+ # @return [Array<Types::LifecycleRule>]
2317
+ #
2318
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/LifecycleConfiguration AWS API Documentation
2319
+ #
2320
+ class LifecycleConfiguration < Struct.new(
2321
+ :rules)
2322
+ SENSITIVE = []
2323
+ include Aws::Structure
2324
+ end
2325
+
2326
+ # The container of the Outposts bucket lifecycle expiration.
2327
+ #
2328
+ # @note When making an API call, you may pass LifecycleExpiration
2329
+ # data as a hash:
2330
+ #
2331
+ # {
2332
+ # date: Time.now,
2333
+ # days: 1,
2334
+ # expired_object_delete_marker: false,
2335
+ # }
2336
+ #
2337
+ # @!attribute [rw] date
2338
+ # Indicates at what date the object is to be deleted. Should be in GMT
2339
+ # ISO 8601 format.
2340
+ # @return [Time]
2341
+ #
2342
+ # @!attribute [rw] days
2343
+ # Indicates the lifetime, in days, of the objects that are subject to
2344
+ # the rule. The value must be a non-zero positive integer.
2345
+ # @return [Integer]
2346
+ #
2347
+ # @!attribute [rw] expired_object_delete_marker
2348
+ # Indicates whether Amazon S3 will remove a delete marker with no
2349
+ # noncurrent versions. If set to true, the delete marker will be
2350
+ # expired. If set to false, the policy takes no action. This cannot be
2351
+ # specified with Days or Date in a Lifecycle Expiration Policy.
2352
+ # @return [Boolean]
2353
+ #
2354
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/LifecycleExpiration AWS API Documentation
2355
+ #
2356
+ class LifecycleExpiration < Struct.new(
2357
+ :date,
2358
+ :days,
2359
+ :expired_object_delete_marker)
2360
+ SENSITIVE = []
2361
+ include Aws::Structure
2362
+ end
2363
+
2364
+ # The container for the Outposts bucket lifecycle rule.
2365
+ #
2366
+ # @note When making an API call, you may pass LifecycleRule
2367
+ # data as a hash:
2368
+ #
2369
+ # {
2370
+ # expiration: {
2371
+ # date: Time.now,
2372
+ # days: 1,
2373
+ # expired_object_delete_marker: false,
2374
+ # },
2375
+ # id: "ID",
2376
+ # filter: {
2377
+ # prefix: "Prefix",
2378
+ # tag: {
2379
+ # key: "TagKeyString", # required
2380
+ # value: "TagValueString", # required
2381
+ # },
2382
+ # and: {
2383
+ # prefix: "Prefix",
2384
+ # tags: [
2385
+ # {
2386
+ # key: "TagKeyString", # required
2387
+ # value: "TagValueString", # required
2388
+ # },
2389
+ # ],
1132
2390
  # },
1133
2391
  # },
1134
- # s3_put_object_retention: {
1135
- # bypass_governance_retention: false,
1136
- # retention: { # required
1137
- # retain_until_date: Time.now,
1138
- # mode: "COMPLIANCE", # accepts COMPLIANCE, GOVERNANCE
2392
+ # status: "Enabled", # required, accepts Enabled, Disabled
2393
+ # transitions: [
2394
+ # {
2395
+ # date: Time.now,
2396
+ # days: 1,
2397
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
2398
+ # },
2399
+ # ],
2400
+ # noncurrent_version_transitions: [
2401
+ # {
2402
+ # noncurrent_days: 1,
2403
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
1139
2404
  # },
2405
+ # ],
2406
+ # noncurrent_version_expiration: {
2407
+ # noncurrent_days: 1,
2408
+ # },
2409
+ # abort_incomplete_multipart_upload: {
2410
+ # days_after_initiation: 1,
1140
2411
  # },
1141
2412
  # }
1142
2413
  #
1143
- # @!attribute [rw] lambda_invoke
1144
- # Directs the specified job to invoke an AWS Lambda function on each
1145
- # object in the manifest.
1146
- # @return [Types::LambdaInvokeOperation]
1147
- #
1148
- # @!attribute [rw] s3_put_object_copy
1149
- # Directs the specified job to execute a PUT Copy object call on each
1150
- # object in the manifest.
1151
- # @return [Types::S3CopyObjectOperation]
2414
+ # @!attribute [rw] expiration
2415
+ # Specifies the expiration for the lifecycle of the object in the form
2416
+ # of date, days and, whether the object has a delete marker.
2417
+ # @return [Types::LifecycleExpiration]
1152
2418
  #
1153
- # @!attribute [rw] s3_put_object_acl
1154
- # Directs the specified job to execute a PUT Object acl call on each
1155
- # object in the manifest.
1156
- # @return [Types::S3SetObjectAclOperation]
2419
+ # @!attribute [rw] id
2420
+ # Unique identifier for the rule. The value cannot be longer than 255
2421
+ # characters.
2422
+ # @return [String]
1157
2423
  #
1158
- # @!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.
1161
- # @return [Types::S3SetObjectTaggingOperation]
2424
+ # @!attribute [rw] filter
2425
+ # The container for the filter of lifecycle rule.
2426
+ # @return [Types::LifecycleRuleFilter]
1162
2427
  #
1163
- # @!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.
1166
- # @return [Types::S3InitiateRestoreObjectOperation]
2428
+ # @!attribute [rw] status
2429
+ # If 'Enabled', the rule is currently being applied. If
2430
+ # 'Disabled', the rule is not currently being applied.
2431
+ # @return [String]
1167
2432
  #
1168
- # @!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].
2433
+ # @!attribute [rw] transitions
2434
+ # Specifies when an Amazon S3 object transitions to a specified
2435
+ # storage class.
1173
2436
  #
2437
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
1174
2438
  #
2439
+ # </note>
2440
+ # @return [Array<Types::Transition>]
1175
2441
  #
1176
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.htmll#object-lock-legal-holds
1177
- # @return [Types::S3SetObjectLegalHoldOperation]
2442
+ # @!attribute [rw] noncurrent_version_transitions
2443
+ # Specifies the transition rule for the lifecycle rule that describes
2444
+ # when noncurrent objects transition to a specific storage class. If
2445
+ # your bucket is versioning-enabled (or versioning is suspended), you
2446
+ # can set this action to request that Amazon S3 transition noncurrent
2447
+ # object versions to a specific storage class at a set period in the
2448
+ # object's lifetime.
1178
2449
  #
1179
- # @!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].
2450
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
1184
2451
  #
2452
+ # </note>
2453
+ # @return [Array<Types::NoncurrentVersionTransition>]
1185
2454
  #
2455
+ # @!attribute [rw] noncurrent_version_expiration
2456
+ # The noncurrent version expiration of the lifecycle rule.
1186
2457
  #
1187
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes
1188
- # @return [Types::S3SetObjectRetentionOperation]
2458
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
1189
2459
  #
1190
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/JobOperation AWS API Documentation
2460
+ # </note>
2461
+ # @return [Types::NoncurrentVersionExpiration]
1191
2462
  #
1192
- class JobOperation < Struct.new(
1193
- :lambda_invoke,
1194
- :s3_put_object_copy,
1195
- :s3_put_object_acl,
1196
- :s3_put_object_tagging,
1197
- :s3_initiate_restore_object,
1198
- :s3_put_object_legal_hold,
1199
- :s3_put_object_retention)
1200
- SENSITIVE = []
1201
- include Aws::Structure
1202
- end
1203
-
1204
- # Describes the total number of tasks that the specified job has
1205
- # executed, the number of tasks that succeeded, and the number of tasks
1206
- # that failed.
2463
+ # @!attribute [rw] abort_incomplete_multipart_upload
2464
+ # Specifies the days since the initiation of an incomplete multipart
2465
+ # upload that Amazon S3 waits before permanently removing all parts of
2466
+ # the upload. For more information, see [ Aborting Incomplete
2467
+ # Multipart Uploads Using a Bucket Lifecycle Policy][1] in the *Amazon
2468
+ # Simple Storage Service Developer Guide*.
1207
2469
  #
1208
- # @!attribute [rw] total_number_of_tasks
1209
- # @return [Integer]
1210
2470
  #
1211
- # @!attribute [rw] number_of_tasks_succeeded
1212
- # @return [Integer]
1213
2471
  #
1214
- # @!attribute [rw] number_of_tasks_failed
1215
- # @return [Integer]
2472
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config
2473
+ # @return [Types::AbortIncompleteMultipartUpload]
1216
2474
  #
1217
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/JobProgressSummary AWS API Documentation
2475
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/LifecycleRule AWS API Documentation
1218
2476
  #
1219
- class JobProgressSummary < Struct.new(
1220
- :total_number_of_tasks,
1221
- :number_of_tasks_succeeded,
1222
- :number_of_tasks_failed)
2477
+ class LifecycleRule < Struct.new(
2478
+ :expiration,
2479
+ :id,
2480
+ :filter,
2481
+ :status,
2482
+ :transitions,
2483
+ :noncurrent_version_transitions,
2484
+ :noncurrent_version_expiration,
2485
+ :abort_incomplete_multipart_upload)
1223
2486
  SENSITIVE = []
1224
2487
  include Aws::Structure
1225
2488
  end
1226
2489
 
1227
- # Contains the configuration parameters for a job-completion report.
2490
+ # The container for the Outposts bucket lifecycle rule and operator.
1228
2491
  #
1229
- # @note When making an API call, you may pass JobReport
2492
+ # @note When making an API call, you may pass LifecycleRuleAndOperator
1230
2493
  # data as a hash:
1231
2494
  #
1232
2495
  # {
1233
- # bucket: "S3BucketArnString",
1234
- # format: "Report_CSV_20180820", # accepts Report_CSV_20180820
1235
- # enabled: false, # required
1236
- # prefix: "ReportPrefixString",
1237
- # report_scope: "AllTasks", # accepts AllTasks, FailedTasksOnly
2496
+ # prefix: "Prefix",
2497
+ # tags: [
2498
+ # {
2499
+ # key: "TagKeyString", # required
2500
+ # value: "TagValueString", # required
2501
+ # },
2502
+ # ],
1238
2503
  # }
1239
2504
  #
1240
- # @!attribute [rw] bucket
1241
- # The Amazon Resource Name (ARN) for the bucket where specified
1242
- # job-completion report will be stored.
1243
- # @return [String]
1244
- #
1245
- # @!attribute [rw] format
1246
- # The format of the specified job-completion report.
1247
- # @return [String]
1248
- #
1249
- # @!attribute [rw] enabled
1250
- # Indicates whether the specified job will generate a job-completion
1251
- # report.
1252
- # @return [Boolean]
1253
- #
1254
2505
  # @!attribute [rw] prefix
1255
- # 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.
2506
+ # Prefix identifying one or more objects to which the rule applies.
1259
2507
  # @return [String]
1260
2508
  #
1261
- # @!attribute [rw] report_scope
1262
- # Indicates whether the job-completion report will include details of
1263
- # all tasks or only failed tasks.
1264
- # @return [String]
2509
+ # @!attribute [rw] tags
2510
+ # All of these tags must exist in the object's tag set in order for
2511
+ # the rule to apply.
2512
+ # @return [Array<Types::S3Tag>]
1265
2513
  #
1266
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/JobReport AWS API Documentation
2514
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/LifecycleRuleAndOperator AWS API Documentation
1267
2515
  #
1268
- class JobReport < Struct.new(
1269
- :bucket,
1270
- :format,
1271
- :enabled,
2516
+ class LifecycleRuleAndOperator < Struct.new(
1272
2517
  :prefix,
1273
- :report_scope)
1274
- SENSITIVE = []
1275
- include Aws::Structure
1276
- end
1277
-
1278
- # @!attribute [rw] message
1279
- # @return [String]
1280
- #
1281
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/JobStatusException AWS API Documentation
1282
- #
1283
- class JobStatusException < Struct.new(
1284
- :message)
2518
+ :tags)
1285
2519
  SENSITIVE = []
1286
2520
  include Aws::Structure
1287
2521
  end
1288
2522
 
1289
- # Contains the configuration parameters for a `Lambda Invoke` operation.
2523
+ # The container for the filter of the lifecycle rule.
1290
2524
  #
1291
- # @note When making an API call, you may pass LambdaInvokeOperation
2525
+ # @note When making an API call, you may pass LifecycleRuleFilter
1292
2526
  # data as a hash:
1293
2527
  #
1294
2528
  # {
1295
- # function_arn: "FunctionArnString",
2529
+ # prefix: "Prefix",
2530
+ # tag: {
2531
+ # key: "TagKeyString", # required
2532
+ # value: "TagValueString", # required
2533
+ # },
2534
+ # and: {
2535
+ # prefix: "Prefix",
2536
+ # tags: [
2537
+ # {
2538
+ # key: "TagKeyString", # required
2539
+ # value: "TagValueString", # required
2540
+ # },
2541
+ # ],
2542
+ # },
1296
2543
  # }
1297
2544
  #
1298
- # @!attribute [rw] function_arn
1299
- # The Amazon Resource Name (ARN) for the AWS Lambda function that the
1300
- # specified job will invoke for each object in the manifest.
2545
+ # @!attribute [rw] prefix
2546
+ # Prefix identifying one or more objects to which the rule applies.
1301
2547
  # @return [String]
1302
2548
  #
1303
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/LambdaInvokeOperation AWS API Documentation
2549
+ # @!attribute [rw] tag
2550
+ # @return [Types::S3Tag]
1304
2551
  #
1305
- class LambdaInvokeOperation < Struct.new(
1306
- :function_arn)
2552
+ # @!attribute [rw] and
2553
+ # The container for the `AND` condition for the lifecycle rule.
2554
+ # @return [Types::LifecycleRuleAndOperator]
2555
+ #
2556
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/LifecycleRuleFilter AWS API Documentation
2557
+ #
2558
+ class LifecycleRuleFilter < Struct.new(
2559
+ :prefix,
2560
+ :tag,
2561
+ :and)
1307
2562
  SENSITIVE = []
1308
2563
  include Aws::Structure
1309
2564
  end
@@ -1326,6 +2581,18 @@ module Aws::S3Control
1326
2581
  # @!attribute [rw] bucket
1327
2582
  # The name of the bucket whose associated access points you want to
1328
2583
  # list.
2584
+ #
2585
+ # For using this parameter with Amazon S3 on Outposts with the REST
2586
+ # API, you must specify the name and the x-amz-outpost-id as well.
2587
+ #
2588
+ # For using this parameter with S3 on Outposts with the AWS SDK and
2589
+ # CLI, you must specify the ARN of the bucket accessed in the format
2590
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
2591
+ # For example, to access the bucket `reports` through outpost
2592
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
2593
+ # use the URL encoding of
2594
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
2595
+ # The value must be URL encoded.
1329
2596
  # @return [String]
1330
2597
  #
1331
2598
  # @!attribute [rw] next_token
@@ -1361,9 +2628,9 @@ module Aws::S3Control
1361
2628
  #
1362
2629
  # @!attribute [rw] next_token
1363
2630
  # 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.
2631
+ # in one call to this API, this field contains a continuation token
2632
+ # that you can provide in subsequent calls to this API to retrieve
2633
+ # additional access points.
1367
2634
  # @return [String]
1368
2635
  #
1369
2636
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPointsResult AWS API Documentation
@@ -1437,17 +2704,218 @@ module Aws::S3Control
1437
2704
  include Aws::Structure
1438
2705
  end
1439
2706
 
1440
- # Amazon S3 throws this exception if you make a `GetPublicAccessBlock`
1441
- # request against an account that doesn't have a
1442
- # `PublicAccessBlockConfiguration` set.
2707
+ # @note When making an API call, you may pass ListRegionalBucketsRequest
2708
+ # data as a hash:
2709
+ #
2710
+ # {
2711
+ # account_id: "AccountId", # required
2712
+ # next_token: "NonEmptyMaxLength1024String",
2713
+ # max_results: 1,
2714
+ # outpost_id: "NonEmptyMaxLength64String",
2715
+ # }
2716
+ #
2717
+ # @!attribute [rw] account_id
2718
+ # The AWS account ID of the Outposts bucket.
2719
+ # @return [String]
2720
+ #
2721
+ # @!attribute [rw] next_token
2722
+ # @return [String]
2723
+ #
2724
+ # @!attribute [rw] max_results
2725
+ # @return [Integer]
2726
+ #
2727
+ # @!attribute [rw] outpost_id
2728
+ # The ID of the AWS Outposts.
2729
+ #
2730
+ # <note markdown="1"> This is required by Amazon S3 on Outposts buckets.
2731
+ #
2732
+ # </note>
2733
+ # @return [String]
2734
+ #
2735
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListRegionalBucketsRequest AWS API Documentation
2736
+ #
2737
+ class ListRegionalBucketsRequest < Struct.new(
2738
+ :account_id,
2739
+ :next_token,
2740
+ :max_results,
2741
+ :outpost_id)
2742
+ SENSITIVE = []
2743
+ include Aws::Structure
2744
+ end
2745
+
2746
+ # @!attribute [rw] regional_bucket_list
2747
+ # @return [Array<Types::RegionalBucket>]
2748
+ #
2749
+ # @!attribute [rw] next_token
2750
+ # `NextToken` is sent when `isTruncated` is true, which means there
2751
+ # are more buckets that can be listed. The next list requests to
2752
+ # Amazon S3 can be continued with this `NextToken`. `NextToken` is
2753
+ # obfuscated and is not a real key.
2754
+ # @return [String]
2755
+ #
2756
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListRegionalBucketsResult AWS API Documentation
2757
+ #
2758
+ class ListRegionalBucketsResult < Struct.new(
2759
+ :regional_bucket_list,
2760
+ :next_token)
2761
+ SENSITIVE = []
2762
+ include Aws::Structure
2763
+ end
2764
+
2765
+ # Part of `ListStorageLensConfigurationResult`. Each entry includes the
2766
+ # description of the S3 Storage Lens configuration, its home Region,
2767
+ # whether it is enabled, its Amazon Resource Name (ARN), and config ID.
2768
+ #
2769
+ # @!attribute [rw] id
2770
+ # A container for the S3 Storage Lens configuration ID.
2771
+ # @return [String]
2772
+ #
2773
+ # @!attribute [rw] storage_lens_arn
2774
+ # The ARN of the S3 Storage Lens configuration. This property is
2775
+ # read-only.
2776
+ # @return [String]
2777
+ #
2778
+ # @!attribute [rw] home_region
2779
+ # A container for the S3 Storage Lens home Region. Your metrics data
2780
+ # is stored and retained in your designated S3 Storage Lens home
2781
+ # Region.
2782
+ # @return [String]
2783
+ #
2784
+ # @!attribute [rw] is_enabled
2785
+ # A container for whether the S3 Storage Lens configuration is
2786
+ # enabled. This property is required.
2787
+ # @return [Boolean]
2788
+ #
2789
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListStorageLensConfigurationEntry AWS API Documentation
2790
+ #
2791
+ class ListStorageLensConfigurationEntry < Struct.new(
2792
+ :id,
2793
+ :storage_lens_arn,
2794
+ :home_region,
2795
+ :is_enabled)
2796
+ SENSITIVE = []
2797
+ include Aws::Structure
2798
+ end
2799
+
2800
+ # @note When making an API call, you may pass ListStorageLensConfigurationsRequest
2801
+ # data as a hash:
2802
+ #
2803
+ # {
2804
+ # account_id: "AccountId", # required
2805
+ # next_token: "ContinuationToken",
2806
+ # }
2807
+ #
2808
+ # @!attribute [rw] account_id
2809
+ # The account ID of the requester.
2810
+ # @return [String]
2811
+ #
2812
+ # @!attribute [rw] next_token
2813
+ # A pagination token to request the next page of results.
2814
+ # @return [String]
2815
+ #
2816
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListStorageLensConfigurationsRequest AWS API Documentation
2817
+ #
2818
+ class ListStorageLensConfigurationsRequest < Struct.new(
2819
+ :account_id,
2820
+ :next_token)
2821
+ SENSITIVE = []
2822
+ include Aws::Structure
2823
+ end
2824
+
2825
+ # @!attribute [rw] next_token
2826
+ # If the request produced more than the maximum number of S3 Storage
2827
+ # Lens configuration results, you can pass this value into a
2828
+ # subsequent request to retrieve the next page of results.
2829
+ # @return [String]
2830
+ #
2831
+ # @!attribute [rw] storage_lens_configuration_list
2832
+ # A list of S3 Storage Lens configurations.
2833
+ # @return [Array<Types::ListStorageLensConfigurationEntry>]
2834
+ #
2835
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListStorageLensConfigurationsResult AWS API Documentation
2836
+ #
2837
+ class ListStorageLensConfigurationsResult < Struct.new(
2838
+ :next_token,
2839
+ :storage_lens_configuration_list)
2840
+ SENSITIVE = []
2841
+ include Aws::Structure
2842
+ end
2843
+
2844
+ # Amazon S3 throws this exception if you make a `GetPublicAccessBlock`
2845
+ # request against an account that doesn't have a
2846
+ # `PublicAccessBlockConfiguration` set.
2847
+ #
2848
+ # @!attribute [rw] message
2849
+ # @return [String]
2850
+ #
2851
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/NoSuchPublicAccessBlockConfiguration AWS API Documentation
2852
+ #
2853
+ class NoSuchPublicAccessBlockConfiguration < Struct.new(
2854
+ :message)
2855
+ SENSITIVE = []
2856
+ include Aws::Structure
2857
+ end
2858
+
2859
+ # The container of the noncurrent version expiration.
2860
+ #
2861
+ # @note When making an API call, you may pass NoncurrentVersionExpiration
2862
+ # data as a hash:
2863
+ #
2864
+ # {
2865
+ # noncurrent_days: 1,
2866
+ # }
2867
+ #
2868
+ # @!attribute [rw] noncurrent_days
2869
+ # Specifies the number of days an object is noncurrent before Amazon
2870
+ # S3 can perform the associated action. For information about the
2871
+ # noncurrent days calculations, see [How Amazon S3 Calculates When an
2872
+ # Object Became Noncurrent][1] in the *Amazon Simple Storage Service
2873
+ # Developer Guide*.
2874
+ #
2875
+ #
2876
+ #
2877
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations
2878
+ # @return [Integer]
2879
+ #
2880
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/NoncurrentVersionExpiration AWS API Documentation
2881
+ #
2882
+ class NoncurrentVersionExpiration < Struct.new(
2883
+ :noncurrent_days)
2884
+ SENSITIVE = []
2885
+ include Aws::Structure
2886
+ end
2887
+
2888
+ # The container for the noncurrent version transition.
1443
2889
  #
1444
- # @!attribute [rw] message
2890
+ # @note When making an API call, you may pass NoncurrentVersionTransition
2891
+ # data as a hash:
2892
+ #
2893
+ # {
2894
+ # noncurrent_days: 1,
2895
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
2896
+ # }
2897
+ #
2898
+ # @!attribute [rw] noncurrent_days
2899
+ # Specifies the number of days an object is noncurrent before Amazon
2900
+ # S3 can perform the associated action. For information about the
2901
+ # noncurrent days calculations, see [ How Amazon S3 Calculates How
2902
+ # Long an Object Has Been Noncurrent][1] in the *Amazon Simple Storage
2903
+ # Service Developer Guide*.
2904
+ #
2905
+ #
2906
+ #
2907
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations
2908
+ # @return [Integer]
2909
+ #
2910
+ # @!attribute [rw] storage_class
2911
+ # The class of storage used to store the object.
1445
2912
  # @return [String]
1446
2913
  #
1447
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/NoSuchPublicAccessBlockConfiguration AWS API Documentation
2914
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/NoncurrentVersionTransition AWS API Documentation
1448
2915
  #
1449
- class NoSuchPublicAccessBlockConfiguration < Struct.new(
1450
- :message)
2916
+ class NoncurrentVersionTransition < Struct.new(
2917
+ :noncurrent_days,
2918
+ :storage_class)
1451
2919
  SENSITIVE = []
1452
2920
  include Aws::Structure
1453
2921
  end
@@ -1483,11 +2951,72 @@ module Aws::S3Control
1483
2951
  include Aws::Structure
1484
2952
  end
1485
2953
 
2954
+ # A container for the prefix-level configuration.
2955
+ #
2956
+ # @note When making an API call, you may pass PrefixLevel
2957
+ # data as a hash:
2958
+ #
2959
+ # {
2960
+ # storage_metrics: { # required
2961
+ # is_enabled: false,
2962
+ # selection_criteria: {
2963
+ # delimiter: "StorageLensPrefixLevelDelimiter",
2964
+ # max_depth: 1,
2965
+ # min_storage_bytes_percentage: 1.0,
2966
+ # },
2967
+ # },
2968
+ # }
2969
+ #
2970
+ # @!attribute [rw] storage_metrics
2971
+ # A container for the prefix-level storage metrics for S3 Storage
2972
+ # Lens.
2973
+ # @return [Types::PrefixLevelStorageMetrics]
2974
+ #
2975
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PrefixLevel AWS API Documentation
2976
+ #
2977
+ class PrefixLevel < Struct.new(
2978
+ :storage_metrics)
2979
+ SENSITIVE = []
2980
+ include Aws::Structure
2981
+ end
2982
+
2983
+ # A container for the prefix-level storage metrics for S3 Storage Lens.
2984
+ #
2985
+ # @note When making an API call, you may pass PrefixLevelStorageMetrics
2986
+ # data as a hash:
2987
+ #
2988
+ # {
2989
+ # is_enabled: false,
2990
+ # selection_criteria: {
2991
+ # delimiter: "StorageLensPrefixLevelDelimiter",
2992
+ # max_depth: 1,
2993
+ # min_storage_bytes_percentage: 1.0,
2994
+ # },
2995
+ # }
2996
+ #
2997
+ # @!attribute [rw] is_enabled
2998
+ # A container for whether prefix-level storage metrics are enabled.
2999
+ # @return [Boolean]
3000
+ #
3001
+ # @!attribute [rw] selection_criteria
3002
+ # @return [Types::SelectionCriteria]
3003
+ #
3004
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PrefixLevelStorageMetrics AWS API Documentation
3005
+ #
3006
+ class PrefixLevelStorageMetrics < Struct.new(
3007
+ :is_enabled,
3008
+ :selection_criteria)
3009
+ SENSITIVE = []
3010
+ include Aws::Structure
3011
+ end
3012
+
1486
3013
  # The `PublicAccessBlock` configuration that you want to apply to this
1487
- # Amazon S3 bucket. You can enable the configuration options in any
3014
+ # Amazon S3 account. You can enable the configuration options in any
1488
3015
  # combination. For more information about when Amazon S3 considers a
1489
3016
  # bucket or object public, see [The Meaning of "Public"][1] in the
1490
- # Amazon Simple Storage Service Developer Guide.
3017
+ # *Amazon Simple Storage Service Developer Guide*.
3018
+ #
3019
+ # This is not supported for Amazon S3 on Outposts.
1491
3020
  #
1492
3021
  #
1493
3022
  #
@@ -1516,6 +3045,8 @@ module Aws::S3Control
1516
3045
  # * PUT Bucket calls fail if the request includes a public ACL.
1517
3046
  #
1518
3047
  # Enabling this setting doesn't affect existing policies or ACLs.
3048
+ #
3049
+ # This is not supported for Amazon S3 on Outposts.
1519
3050
  # @return [Boolean]
1520
3051
  #
1521
3052
  # @!attribute [rw] ignore_public_acls
@@ -1526,6 +3057,8 @@ module Aws::S3Control
1526
3057
  #
1527
3058
  # Enabling this setting doesn't affect the persistence of any
1528
3059
  # existing ACLs and doesn't prevent new public ACLs from being set.
3060
+ #
3061
+ # This is not supported for Amazon S3 on Outposts.
1529
3062
  # @return [Boolean]
1530
3063
  #
1531
3064
  # @!attribute [rw] block_public_policy
@@ -1535,18 +3068,22 @@ module Aws::S3Control
1535
3068
  # bucket policy allows public access.
1536
3069
  #
1537
3070
  # Enabling this setting doesn't affect existing bucket policies.
3071
+ #
3072
+ # This is not supported for Amazon S3 on Outposts.
1538
3073
  # @return [Boolean]
1539
3074
  #
1540
3075
  # @!attribute [rw] restrict_public_buckets
1541
3076
  # Specifies whether Amazon S3 should restrict public bucket policies
1542
3077
  # for buckets in this account. Setting this element to `TRUE`
1543
- # restricts access to buckets with public policies to only AWS
1544
- # services and authorized users within this account.
3078
+ # restricts access to buckets with public policies to only AWS service
3079
+ # principals and authorized users within this account.
1545
3080
  #
1546
3081
  # Enabling this setting doesn't affect previously stored bucket
1547
3082
  # policies, except that public and cross-account access within any
1548
3083
  # public bucket policy, including non-public delegation to specific
1549
3084
  # accounts, is blocked.
3085
+ #
3086
+ # This is not supported for Amazon S3 on Outposts.
1550
3087
  # @return [Boolean]
1551
3088
  #
1552
3089
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PublicAccessBlockConfiguration AWS API Documentation
@@ -1577,12 +3114,25 @@ module Aws::S3Control
1577
3114
  # @!attribute [rw] name
1578
3115
  # The name of the access point that you want to associate with the
1579
3116
  # specified policy.
3117
+ #
3118
+ # For using this parameter with Amazon S3 on Outposts with the REST
3119
+ # API, you must specify the name and the x-amz-outpost-id as well.
3120
+ #
3121
+ # For using this parameter with S3 on Outposts with the AWS SDK and
3122
+ # CLI, you must specify the ARN of the access point accessed in the
3123
+ # format
3124
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>`.
3125
+ # For example, to access the access point `reports-ap` through outpost
3126
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
3127
+ # use the URL encoding of
3128
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap`.
3129
+ # The value must be URL encoded.
1580
3130
  # @return [String]
1581
3131
  #
1582
3132
  # @!attribute [rw] policy
1583
3133
  # The policy that you want to apply to the specified access point. For
1584
- # more information about access point policies, see [Managing Data
1585
- # Access with Amazon S3 Access Points][1] in the *Amazon Simple
3134
+ # more information about access point policies, see [Managing data
3135
+ # access with Amazon S3 Access Points][1] in the *Amazon Simple
1586
3136
  # Storage Service Developer Guide*.
1587
3137
  #
1588
3138
  #
@@ -1600,6 +3150,187 @@ module Aws::S3Control
1600
3150
  include Aws::Structure
1601
3151
  end
1602
3152
 
3153
+ # @note When making an API call, you may pass PutBucketLifecycleConfigurationRequest
3154
+ # data as a hash:
3155
+ #
3156
+ # {
3157
+ # account_id: "AccountId", # required
3158
+ # bucket: "BucketName", # required
3159
+ # lifecycle_configuration: {
3160
+ # rules: [
3161
+ # {
3162
+ # expiration: {
3163
+ # date: Time.now,
3164
+ # days: 1,
3165
+ # expired_object_delete_marker: false,
3166
+ # },
3167
+ # id: "ID",
3168
+ # filter: {
3169
+ # prefix: "Prefix",
3170
+ # tag: {
3171
+ # key: "TagKeyString", # required
3172
+ # value: "TagValueString", # required
3173
+ # },
3174
+ # and: {
3175
+ # prefix: "Prefix",
3176
+ # tags: [
3177
+ # {
3178
+ # key: "TagKeyString", # required
3179
+ # value: "TagValueString", # required
3180
+ # },
3181
+ # ],
3182
+ # },
3183
+ # },
3184
+ # status: "Enabled", # required, accepts Enabled, Disabled
3185
+ # transitions: [
3186
+ # {
3187
+ # date: Time.now,
3188
+ # days: 1,
3189
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
3190
+ # },
3191
+ # ],
3192
+ # noncurrent_version_transitions: [
3193
+ # {
3194
+ # noncurrent_days: 1,
3195
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
3196
+ # },
3197
+ # ],
3198
+ # noncurrent_version_expiration: {
3199
+ # noncurrent_days: 1,
3200
+ # },
3201
+ # abort_incomplete_multipart_upload: {
3202
+ # days_after_initiation: 1,
3203
+ # },
3204
+ # },
3205
+ # ],
3206
+ # },
3207
+ # }
3208
+ #
3209
+ # @!attribute [rw] account_id
3210
+ # The AWS account ID of the Outposts bucket.
3211
+ # @return [String]
3212
+ #
3213
+ # @!attribute [rw] bucket
3214
+ # The name of the bucket for which to set the configuration.
3215
+ # @return [String]
3216
+ #
3217
+ # @!attribute [rw] lifecycle_configuration
3218
+ # Container for lifecycle rules. You can add as many as 1,000 rules.
3219
+ # @return [Types::LifecycleConfiguration]
3220
+ #
3221
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketLifecycleConfigurationRequest AWS API Documentation
3222
+ #
3223
+ class PutBucketLifecycleConfigurationRequest < Struct.new(
3224
+ :account_id,
3225
+ :bucket,
3226
+ :lifecycle_configuration)
3227
+ SENSITIVE = []
3228
+ include Aws::Structure
3229
+ end
3230
+
3231
+ # @note When making an API call, you may pass PutBucketPolicyRequest
3232
+ # data as a hash:
3233
+ #
3234
+ # {
3235
+ # account_id: "AccountId", # required
3236
+ # bucket: "BucketName", # required
3237
+ # confirm_remove_self_bucket_access: false,
3238
+ # policy: "Policy", # required
3239
+ # }
3240
+ #
3241
+ # @!attribute [rw] account_id
3242
+ # The AWS account ID of the Outposts bucket.
3243
+ # @return [String]
3244
+ #
3245
+ # @!attribute [rw] bucket
3246
+ # Specifies the bucket.
3247
+ #
3248
+ # For using this parameter with Amazon S3 on Outposts with the REST
3249
+ # API, you must specify the name and the x-amz-outpost-id as well.
3250
+ #
3251
+ # For using this parameter with S3 on Outposts with the AWS SDK and
3252
+ # CLI, you must specify the ARN of the bucket accessed in the format
3253
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
3254
+ # For example, to access the bucket `reports` through outpost
3255
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
3256
+ # use the URL encoding of
3257
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
3258
+ # The value must be URL encoded.
3259
+ # @return [String]
3260
+ #
3261
+ # @!attribute [rw] confirm_remove_self_bucket_access
3262
+ # Set this parameter to true to confirm that you want to remove your
3263
+ # permissions to change this bucket policy in the future.
3264
+ #
3265
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
3266
+ #
3267
+ # </note>
3268
+ # @return [Boolean]
3269
+ #
3270
+ # @!attribute [rw] policy
3271
+ # The bucket policy as a JSON document.
3272
+ # @return [String]
3273
+ #
3274
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketPolicyRequest AWS API Documentation
3275
+ #
3276
+ class PutBucketPolicyRequest < Struct.new(
3277
+ :account_id,
3278
+ :bucket,
3279
+ :confirm_remove_self_bucket_access,
3280
+ :policy)
3281
+ SENSITIVE = []
3282
+ include Aws::Structure
3283
+ end
3284
+
3285
+ # @note When making an API call, you may pass PutBucketTaggingRequest
3286
+ # data as a hash:
3287
+ #
3288
+ # {
3289
+ # account_id: "AccountId", # required
3290
+ # bucket: "BucketName", # required
3291
+ # tagging: { # required
3292
+ # tag_set: [ # required
3293
+ # {
3294
+ # key: "TagKeyString", # required
3295
+ # value: "TagValueString", # required
3296
+ # },
3297
+ # ],
3298
+ # },
3299
+ # }
3300
+ #
3301
+ # @!attribute [rw] account_id
3302
+ # The AWS account ID of the Outposts bucket.
3303
+ # @return [String]
3304
+ #
3305
+ # @!attribute [rw] bucket
3306
+ # The Amazon Resource Name (ARN) of the bucket.
3307
+ #
3308
+ # For using this parameter with Amazon S3 on Outposts with the REST
3309
+ # API, you must specify the name and the x-amz-outpost-id as well.
3310
+ #
3311
+ # For using this parameter with S3 on Outposts with the AWS SDK and
3312
+ # CLI, you must specify the ARN of the bucket accessed in the format
3313
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
3314
+ # For example, to access the bucket `reports` through outpost
3315
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
3316
+ # use the URL encoding of
3317
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
3318
+ # The value must be URL encoded.
3319
+ # @return [String]
3320
+ #
3321
+ # @!attribute [rw] tagging
3322
+ # @return [Types::Tagging]
3323
+ #
3324
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketTaggingRequest AWS API Documentation
3325
+ #
3326
+ class PutBucketTaggingRequest < Struct.new(
3327
+ :account_id,
3328
+ :bucket,
3329
+ :tagging)
3330
+ SENSITIVE = []
3331
+ include Aws::Structure
3332
+ end
3333
+
1603
3334
  # @note When making an API call, you may pass PutJobTaggingRequest
1604
3335
  # data as a hash:
1605
3336
  #
@@ -1615,62 +3346,233 @@ module Aws::S3Control
1615
3346
  # }
1616
3347
  #
1617
3348
  # @!attribute [rw] account_id
1618
- # The AWS account ID associated with the Amazon S3 Batch Operations
1619
- # job.
3349
+ # The AWS account ID associated with the S3 Batch Operations job.
1620
3350
  # @return [String]
1621
3351
  #
1622
3352
  # @!attribute [rw] job_id
1623
- # The ID for the Amazon S3 Batch Operations job whose tags you want to
3353
+ # The ID for the S3 Batch Operations job whose tags you want to
1624
3354
  # replace.
1625
3355
  # @return [String]
1626
3356
  #
1627
3357
  # @!attribute [rw] tags
1628
- # The set of tags to associate with the Amazon S3 Batch Operations
1629
- # job.
1630
- # @return [Array<Types::S3Tag>]
3358
+ # The set of tags to associate with the S3 Batch Operations job.
3359
+ # @return [Array<Types::S3Tag>]
3360
+ #
3361
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutJobTaggingRequest AWS API Documentation
3362
+ #
3363
+ class PutJobTaggingRequest < Struct.new(
3364
+ :account_id,
3365
+ :job_id,
3366
+ :tags)
3367
+ SENSITIVE = []
3368
+ include Aws::Structure
3369
+ end
3370
+
3371
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutJobTaggingResult AWS API Documentation
3372
+ #
3373
+ class PutJobTaggingResult < Aws::EmptyStructure; end
3374
+
3375
+ # @note When making an API call, you may pass PutPublicAccessBlockRequest
3376
+ # data as a hash:
3377
+ #
3378
+ # {
3379
+ # public_access_block_configuration: { # required
3380
+ # block_public_acls: false,
3381
+ # ignore_public_acls: false,
3382
+ # block_public_policy: false,
3383
+ # restrict_public_buckets: false,
3384
+ # },
3385
+ # account_id: "AccountId", # required
3386
+ # }
3387
+ #
3388
+ # @!attribute [rw] public_access_block_configuration
3389
+ # The `PublicAccessBlock` configuration that you want to apply to the
3390
+ # specified AWS account.
3391
+ # @return [Types::PublicAccessBlockConfiguration]
3392
+ #
3393
+ # @!attribute [rw] account_id
3394
+ # The account ID for the AWS account whose `PublicAccessBlock`
3395
+ # configuration you want to set.
3396
+ # @return [String]
3397
+ #
3398
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutPublicAccessBlockRequest AWS API Documentation
3399
+ #
3400
+ class PutPublicAccessBlockRequest < Struct.new(
3401
+ :public_access_block_configuration,
3402
+ :account_id)
3403
+ SENSITIVE = []
3404
+ include Aws::Structure
3405
+ end
3406
+
3407
+ # @note When making an API call, you may pass PutStorageLensConfigurationRequest
3408
+ # data as a hash:
3409
+ #
3410
+ # {
3411
+ # config_id: "ConfigId", # required
3412
+ # account_id: "AccountId", # required
3413
+ # storage_lens_configuration: { # required
3414
+ # id: "ConfigId", # required
3415
+ # account_level: { # required
3416
+ # activity_metrics: {
3417
+ # is_enabled: false,
3418
+ # },
3419
+ # bucket_level: { # required
3420
+ # activity_metrics: {
3421
+ # is_enabled: false,
3422
+ # },
3423
+ # prefix_level: {
3424
+ # storage_metrics: { # required
3425
+ # is_enabled: false,
3426
+ # selection_criteria: {
3427
+ # delimiter: "StorageLensPrefixLevelDelimiter",
3428
+ # max_depth: 1,
3429
+ # min_storage_bytes_percentage: 1.0,
3430
+ # },
3431
+ # },
3432
+ # },
3433
+ # },
3434
+ # },
3435
+ # include: {
3436
+ # buckets: ["S3BucketArnString"],
3437
+ # regions: ["S3AWSRegion"],
3438
+ # },
3439
+ # exclude: {
3440
+ # buckets: ["S3BucketArnString"],
3441
+ # regions: ["S3AWSRegion"],
3442
+ # },
3443
+ # data_export: {
3444
+ # s3_bucket_destination: { # required
3445
+ # format: "CSV", # required, accepts CSV, Parquet
3446
+ # output_schema_version: "V_1", # required, accepts V_1
3447
+ # account_id: "AccountId", # required
3448
+ # arn: "S3BucketArnString", # required
3449
+ # prefix: "Prefix",
3450
+ # encryption: {
3451
+ # sses3: {
3452
+ # },
3453
+ # ssekms: {
3454
+ # key_id: "SSEKMSKeyId", # required
3455
+ # },
3456
+ # },
3457
+ # },
3458
+ # },
3459
+ # is_enabled: false, # required
3460
+ # aws_org: {
3461
+ # arn: "AwsOrgArn", # required
3462
+ # },
3463
+ # storage_lens_arn: "StorageLensArn",
3464
+ # },
3465
+ # tags: [
3466
+ # {
3467
+ # key: "TagKeyString", # required
3468
+ # value: "TagValueString", # required
3469
+ # },
3470
+ # ],
3471
+ # }
3472
+ #
3473
+ # @!attribute [rw] config_id
3474
+ # The ID of the S3 Storage Lens configuration.
3475
+ # @return [String]
3476
+ #
3477
+ # @!attribute [rw] account_id
3478
+ # The account ID of the requester.
3479
+ # @return [String]
3480
+ #
3481
+ # @!attribute [rw] storage_lens_configuration
3482
+ # The S3 Storage Lens configuration.
3483
+ # @return [Types::StorageLensConfiguration]
3484
+ #
3485
+ # @!attribute [rw] tags
3486
+ # The tag set of the S3 Storage Lens configuration.
3487
+ #
3488
+ # <note markdown="1"> You can set up to a maximum of 50 tags.
3489
+ #
3490
+ # </note>
3491
+ # @return [Array<Types::StorageLensTag>]
3492
+ #
3493
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfigurationRequest AWS API Documentation
3494
+ #
3495
+ class PutStorageLensConfigurationRequest < Struct.new(
3496
+ :config_id,
3497
+ :account_id,
3498
+ :storage_lens_configuration,
3499
+ :tags)
3500
+ SENSITIVE = []
3501
+ include Aws::Structure
3502
+ end
3503
+
3504
+ # @note When making an API call, you may pass PutStorageLensConfigurationTaggingRequest
3505
+ # data as a hash:
3506
+ #
3507
+ # {
3508
+ # config_id: "ConfigId", # required
3509
+ # account_id: "AccountId", # required
3510
+ # tags: [ # required
3511
+ # {
3512
+ # key: "TagKeyString", # required
3513
+ # value: "TagValueString", # required
3514
+ # },
3515
+ # ],
3516
+ # }
3517
+ #
3518
+ # @!attribute [rw] config_id
3519
+ # The ID of the S3 Storage Lens configuration.
3520
+ # @return [String]
3521
+ #
3522
+ # @!attribute [rw] account_id
3523
+ # The account ID of the requester.
3524
+ # @return [String]
3525
+ #
3526
+ # @!attribute [rw] tags
3527
+ # The tag set of the S3 Storage Lens configuration.
1631
3528
  #
1632
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutJobTaggingRequest AWS API Documentation
3529
+ # <note markdown="1"> You can set up to a maximum of 50 tags.
1633
3530
  #
1634
- class PutJobTaggingRequest < Struct.new(
3531
+ # </note>
3532
+ # @return [Array<Types::StorageLensTag>]
3533
+ #
3534
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfigurationTaggingRequest AWS API Documentation
3535
+ #
3536
+ class PutStorageLensConfigurationTaggingRequest < Struct.new(
3537
+ :config_id,
1635
3538
  :account_id,
1636
- :job_id,
1637
3539
  :tags)
1638
3540
  SENSITIVE = []
1639
3541
  include Aws::Structure
1640
3542
  end
1641
3543
 
1642
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutJobTaggingResult AWS API Documentation
3544
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfigurationTaggingResult AWS API Documentation
1643
3545
  #
1644
- class PutJobTaggingResult < Aws::EmptyStructure; end
3546
+ class PutStorageLensConfigurationTaggingResult < Aws::EmptyStructure; end
1645
3547
 
1646
- # @note When making an API call, you may pass PutPublicAccessBlockRequest
1647
- # data as a hash:
3548
+ # The container for the regional bucket.
1648
3549
  #
1649
- # {
1650
- # public_access_block_configuration: { # required
1651
- # block_public_acls: false,
1652
- # ignore_public_acls: false,
1653
- # block_public_policy: false,
1654
- # restrict_public_buckets: false,
1655
- # },
1656
- # account_id: "AccountId", # required
1657
- # }
3550
+ # @!attribute [rw] bucket
3551
+ # @return [String]
1658
3552
  #
1659
- # @!attribute [rw] public_access_block_configuration
1660
- # The `PublicAccessBlock` configuration that you want to apply to the
1661
- # specified Amazon Web Services account.
1662
- # @return [Types::PublicAccessBlockConfiguration]
3553
+ # @!attribute [rw] bucket_arn
3554
+ # The Amazon Resource Name (ARN) for the regional bucket.
3555
+ # @return [String]
1663
3556
  #
1664
- # @!attribute [rw] account_id
1665
- # The account ID for the Amazon Web Services account whose
1666
- # `PublicAccessBlock` configuration you want to set.
3557
+ # @!attribute [rw] public_access_block_enabled
3558
+ # @return [Boolean]
3559
+ #
3560
+ # @!attribute [rw] creation_date
3561
+ # The creation date of the regional bucket
3562
+ # @return [Time]
3563
+ #
3564
+ # @!attribute [rw] outpost_id
3565
+ # The AWS Outposts ID of the regional bucket.
1667
3566
  # @return [String]
1668
3567
  #
1669
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutPublicAccessBlockRequest AWS API Documentation
3568
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/RegionalBucket AWS API Documentation
1670
3569
  #
1671
- class PutPublicAccessBlockRequest < Struct.new(
1672
- :public_access_block_configuration,
1673
- :account_id)
3570
+ class RegionalBucket < Struct.new(
3571
+ :bucket,
3572
+ :bucket_arn,
3573
+ :public_access_block_enabled,
3574
+ :creation_date,
3575
+ :outpost_id)
1674
3576
  SENSITIVE = []
1675
3577
  include Aws::Structure
1676
3578
  end
@@ -1748,10 +3650,73 @@ module Aws::S3Control
1748
3650
  include Aws::Structure
1749
3651
  end
1750
3652
 
3653
+ # A container for the bucket where the Amazon S3 Storage Lens metrics
3654
+ # export files are located.
3655
+ #
3656
+ # @note When making an API call, you may pass S3BucketDestination
3657
+ # data as a hash:
3658
+ #
3659
+ # {
3660
+ # format: "CSV", # required, accepts CSV, Parquet
3661
+ # output_schema_version: "V_1", # required, accepts V_1
3662
+ # account_id: "AccountId", # required
3663
+ # arn: "S3BucketArnString", # required
3664
+ # prefix: "Prefix",
3665
+ # encryption: {
3666
+ # sses3: {
3667
+ # },
3668
+ # ssekms: {
3669
+ # key_id: "SSEKMSKeyId", # required
3670
+ # },
3671
+ # },
3672
+ # }
3673
+ #
3674
+ # @!attribute [rw] format
3675
+ # @return [String]
3676
+ #
3677
+ # @!attribute [rw] output_schema_version
3678
+ # The schema version of the export file.
3679
+ # @return [String]
3680
+ #
3681
+ # @!attribute [rw] account_id
3682
+ # The account ID of the owner of the S3 Storage Lens metrics export
3683
+ # bucket.
3684
+ # @return [String]
3685
+ #
3686
+ # @!attribute [rw] arn
3687
+ # The Amazon Resource Name (ARN) of the bucket. This property is
3688
+ # read-only and follows the following format: `
3689
+ # arn:aws:s3:us-east-1:example-account-id:bucket/your-destination-bucket-name
3690
+ # `
3691
+ # @return [String]
3692
+ #
3693
+ # @!attribute [rw] prefix
3694
+ # The prefix of the destination bucket where the metrics export will
3695
+ # be delivered.
3696
+ # @return [String]
3697
+ #
3698
+ # @!attribute [rw] encryption
3699
+ # The container for the type encryption of the metrics exports in this
3700
+ # bucket.
3701
+ # @return [Types::StorageLensDataExportEncryption]
3702
+ #
3703
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3BucketDestination AWS API Documentation
3704
+ #
3705
+ class S3BucketDestination < Struct.new(
3706
+ :format,
3707
+ :output_schema_version,
3708
+ :account_id,
3709
+ :arn,
3710
+ :prefix,
3711
+ :encryption)
3712
+ SENSITIVE = []
3713
+ include Aws::Structure
3714
+ end
3715
+
1751
3716
  # 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].
3717
+ # S3 Batch Operations passes every object to the underlying PUT Copy
3718
+ # object API. For more information about the parameters for this
3719
+ # operation, see [PUT Object - Copy][1].
1755
3720
  #
1756
3721
  #
1757
3722
  #
@@ -1808,6 +3773,10 @@ module Aws::S3Control
1808
3773
  # }
1809
3774
  #
1810
3775
  # @!attribute [rw] target_resource
3776
+ # Specifies the destination bucket ARN for the batch copy operation.
3777
+ # For example, to copy objects to a bucket named
3778
+ # "destinationBucket", set the TargetResource to
3779
+ # "arn:aws:s3:::destinationBucket".
1811
3780
  # @return [String]
1812
3781
  #
1813
3782
  # @!attribute [rw] canned_access_control_list
@@ -1829,6 +3798,9 @@ module Aws::S3Control
1829
3798
  # @return [Array<Types::S3Tag>]
1830
3799
  #
1831
3800
  # @!attribute [rw] redirect_location
3801
+ # Specifies an optional metadata property for website redirects,
3802
+ # `x-amz-website-redirect-location`. Allows webpage redirects if the
3803
+ # object is accessed through a website endpoint.
1832
3804
  # @return [String]
1833
3805
  #
1834
3806
  # @!attribute [rw] requester_pays
@@ -1844,21 +3816,25 @@ module Aws::S3Control
1844
3816
  # @return [String]
1845
3817
  #
1846
3818
  # @!attribute [rw] target_key_prefix
3819
+ # Specifies the folder prefix into which you would like the objects to
3820
+ # be copied. For example, to copy objects into a folder named
3821
+ # "Folder1" in the destination bucket, set the TargetKeyPrefix to
3822
+ # "Folder1/".
1847
3823
  # @return [String]
1848
3824
  #
1849
3825
  # @!attribute [rw] object_lock_legal_hold_status
1850
- # The Legal Hold status to be applied to all objects in the Batch
3826
+ # The legal hold status to be applied to all objects in the Batch
1851
3827
  # Operations job.
1852
3828
  # @return [String]
1853
3829
  #
1854
3830
  # @!attribute [rw] object_lock_mode
1855
- # The Retention mode to be applied to all objects in the Batch
3831
+ # The retention mode to be applied to all objects in the Batch
1856
3832
  # Operations job.
1857
3833
  # @return [String]
1858
3834
  #
1859
3835
  # @!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.
3836
+ # The date when the applied object retention configuration expires on
3837
+ # all objects in the Batch Operations job.
1862
3838
  # @return [Time]
1863
3839
  #
1864
3840
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3CopyObjectOperation AWS API Documentation
@@ -1939,10 +3915,10 @@ module Aws::S3Control
1939
3915
  include Aws::Structure
1940
3916
  end
1941
3917
 
1942
- # 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].
3918
+ # Contains the configuration parameters for an S3 Initiate Restore
3919
+ # Object job. S3 Batch Operations passes every object to the underlying
3920
+ # POST Object restore API. For more information about the parameters for
3921
+ # this operation, see [RestoreObject][1].
1946
3922
  #
1947
3923
  #
1948
3924
  #
@@ -1957,9 +3933,29 @@ module Aws::S3Control
1957
3933
  # }
1958
3934
  #
1959
3935
  # @!attribute [rw] expiration_in_days
3936
+ # This argument specifies how long the S3 Glacier or S3 Glacier Deep
3937
+ # Archive object remains available in Amazon S3. S3 Initiate Restore
3938
+ # Object jobs that target S3 Glacier and S3 Glacier Deep Archive
3939
+ # objects require `ExpirationInDays` set to 1 or greater.
3940
+ #
3941
+ # Conversely, do *not* set `ExpirationInDays` when creating S3
3942
+ # Initiate Restore Object jobs that target S3 Intelligent-Tiering
3943
+ # Archive Access and Deep Archive Access tier objects. Objects in S3
3944
+ # Intelligent-Tiering archive access tiers are not subject to restore
3945
+ # expiry, so specifying `ExpirationInDays` results in restore request
3946
+ # failure.
3947
+ #
3948
+ # S3 Batch Operations jobs can operate either on S3 Glacier and S3
3949
+ # Glacier Deep Archive storage class objects or on S3
3950
+ # Intelligent-Tiering Archive Access and Deep Archive Access storage
3951
+ # tier objects, but not both types in the same job. If you need to
3952
+ # restore objects of both types you *must* create separate Batch
3953
+ # Operations jobs.
1960
3954
  # @return [Integer]
1961
3955
  #
1962
3956
  # @!attribute [rw] glacier_job_tier
3957
+ # S3 Batch Operations supports `STANDARD` and `BULK` retrieval tiers,
3958
+ # but not the `EXPEDITED` retrieval tier.
1963
3959
  # @return [String]
1964
3960
  #
1965
3961
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3InitiateRestoreObjectOperation AWS API Documentation
@@ -1971,6 +3967,9 @@ module Aws::S3Control
1971
3967
  include Aws::Structure
1972
3968
  end
1973
3969
 
3970
+ # Whether S3 Object Lock legal hold will be applied to objects in an S3
3971
+ # Batch Operations job.
3972
+ #
1974
3973
  # @note When making an API call, you may pass S3ObjectLockLegalHold
1975
3974
  # data as a hash:
1976
3975
  #
@@ -1979,8 +3978,8 @@ module Aws::S3Control
1979
3978
  # }
1980
3979
  #
1981
3980
  # @!attribute [rw] status
1982
- # The Legal Hold status to be applied to all objects in the Batch
1983
- # Operations job.
3981
+ # The Object Lock legal hold status to be applied to all objects in
3982
+ # the Batch Operations job.
1984
3983
  # @return [String]
1985
3984
  #
1986
3985
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3ObjectLockLegalHold AWS API Documentation
@@ -2084,6 +4083,17 @@ module Aws::S3Control
2084
4083
  include Aws::Structure
2085
4084
  end
2086
4085
 
4086
+ # Contains the S3 Object Lock retention mode to be applied to all
4087
+ # objects in the S3 Batch Operations job. If you don't provide `Mode`
4088
+ # and `RetainUntilDate` data types in your operation, you will remove
4089
+ # the retention from your objects. For more information, see [Using S3
4090
+ # Object Lock retention with S3 Batch Operations][1] in the *Amazon
4091
+ # Simple Storage Service Developer Guide*.
4092
+ #
4093
+ #
4094
+ #
4095
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html
4096
+ #
2087
4097
  # @note When making an API call, you may pass S3Retention
2088
4098
  # data as a hash:
2089
4099
  #
@@ -2093,13 +4103,13 @@ module Aws::S3Control
2093
4103
  # }
2094
4104
  #
2095
4105
  # @!attribute [rw] retain_until_date
2096
- # The date when the applied Object Retention will expire on all
2097
- # objects in the Batch Operations job.
4106
+ # The date when the applied Object Lock retention will expire on all
4107
+ # objects set by the Batch Operations job.
2098
4108
  # @return [Time]
2099
4109
  #
2100
4110
  # @!attribute [rw] mode
2101
- # The Retention mode to be applied to all objects in the Batch
2102
- # Operations job.
4111
+ # The Object Lock retention mode to be applied to all objects in the
4112
+ # Batch Operations job.
2103
4113
  # @return [String]
2104
4114
  #
2105
4115
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3Retention AWS API Documentation
@@ -2112,9 +4122,9 @@ module Aws::S3Control
2112
4122
  end
2113
4123
 
2114
4124
  # 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
2117
- # operation, see [PUT Object acl][1].
4125
+ # S3 Batch Operations passes every object to the underlying PUT Object
4126
+ # acl API. For more information about the parameters for this operation,
4127
+ # see [PUT Object acl][1].
2118
4128
  #
2119
4129
  #
2120
4130
  #
@@ -2156,14 +4166,15 @@ module Aws::S3Control
2156
4166
  include Aws::Structure
2157
4167
  end
2158
4168
 
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].
4169
+ # Contains the configuration for an S3 Object Lock legal hold operation
4170
+ # that an S3 Batch Operations job passes every object to the underlying
4171
+ # `PutObjectLegalHold` API. For more information, see [Using S3 Object
4172
+ # Lock legal hold with S3 Batch Operations][1] in the *Amazon Simple
4173
+ # Storage Service Developer Guide*.
2163
4174
  #
2164
4175
  #
2165
4176
  #
2166
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.htmll#object-lock-legal-holds
4177
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-legal-hold.html
2167
4178
  #
2168
4179
  # @note When making an API call, you may pass S3SetObjectLegalHoldOperation
2169
4180
  # data as a hash:
@@ -2175,8 +4186,8 @@ module Aws::S3Control
2175
4186
  # }
2176
4187
  #
2177
4188
  # @!attribute [rw] legal_hold
2178
- # The Legal Hold contains the status to be applied to all objects in
2179
- # the Batch Operations job.
4189
+ # Contains the Object Lock legal hold status to be applied to all
4190
+ # objects in the Batch Operations job.
2180
4191
  # @return [Types::S3ObjectLockLegalHold]
2181
4192
  #
2182
4193
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3SetObjectLegalHoldOperation AWS API Documentation
@@ -2187,14 +4198,15 @@ module Aws::S3Control
2187
4198
  include Aws::Structure
2188
4199
  end
2189
4200
 
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].
4201
+ # Contains the configuration parameters for the Object Lock retention
4202
+ # action for an S3 Batch Operations job. Batch Operations passes every
4203
+ # object to the underlying `PutObjectRetention` API. For more
4204
+ # information, see [Using S3 Object Lock retention with S3 Batch
4205
+ # Operations][1] in the *Amazon Simple Storage Service Developer Guide*.
2194
4206
  #
2195
4207
  #
2196
4208
  #
2197
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes
4209
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html
2198
4210
  #
2199
4211
  # @note When making an API call, you may pass S3SetObjectRetentionOperation
2200
4212
  # data as a hash:
@@ -2208,14 +4220,20 @@ module Aws::S3Control
2208
4220
  # }
2209
4221
  #
2210
4222
  # @!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
4223
+ # Indicates if the action should be applied to objects in the Batch
4224
+ # Operations job even if they have Object Lock ` GOVERNANCE` type in
2213
4225
  # place.
2214
4226
  # @return [Boolean]
2215
4227
  #
2216
4228
  # @!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.
4229
+ # Contains the Object Lock retention mode to be applied to all objects
4230
+ # in the Batch Operations job. For more information, see [Using S3
4231
+ # Object Lock retention with S3 Batch Operations][1] in the *Amazon
4232
+ # Simple Storage Service Developer Guide*.
4233
+ #
4234
+ #
4235
+ #
4236
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html
2219
4237
  # @return [Types::S3Retention]
2220
4238
  #
2221
4239
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3SetObjectRetentionOperation AWS API Documentation
@@ -2228,9 +4246,9 @@ module Aws::S3Control
2228
4246
  end
2229
4247
 
2230
4248
  # Contains the configuration parameters for a Set Object Tagging
2231
- # operation. Amazon S3 Batch Operations passes each value through to the
2232
- # underlying PUT Object tagging API. For more information about the
2233
- # parameters for this operation, see [PUT Object tagging][1].
4249
+ # operation. S3 Batch Operations passes every object to the underlying
4250
+ # PUT Object tagging API. For more information about the parameters for
4251
+ # this operation, see [PUT Object tagging][1].
2234
4252
  #
2235
4253
  #
2236
4254
  #
@@ -2282,6 +4300,322 @@ module Aws::S3Control
2282
4300
  include Aws::Structure
2283
4301
  end
2284
4302
 
4303
+ # @note When making an API call, you may pass SSEKMS
4304
+ # data as a hash:
4305
+ #
4306
+ # {
4307
+ # key_id: "SSEKMSKeyId", # required
4308
+ # }
4309
+ #
4310
+ # @!attribute [rw] key_id
4311
+ # A container for the ARN of the SSE-KMS encryption. This property is
4312
+ # read-only and follows the following format: `
4313
+ # arn:aws:kms:us-east-1:example-account-id:key/example-9a73-4afc-8d29-8f5900cef44e
4314
+ # `
4315
+ # @return [String]
4316
+ #
4317
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/SSEKMS AWS API Documentation
4318
+ #
4319
+ class SSEKMS < Struct.new(
4320
+ :key_id)
4321
+ SENSITIVE = []
4322
+ include Aws::Structure
4323
+ end
4324
+
4325
+ # @api private
4326
+ #
4327
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/SSES3 AWS API Documentation
4328
+ #
4329
+ class SSES3 < Aws::EmptyStructure; end
4330
+
4331
+ # @note When making an API call, you may pass SelectionCriteria
4332
+ # data as a hash:
4333
+ #
4334
+ # {
4335
+ # delimiter: "StorageLensPrefixLevelDelimiter",
4336
+ # max_depth: 1,
4337
+ # min_storage_bytes_percentage: 1.0,
4338
+ # }
4339
+ #
4340
+ # @!attribute [rw] delimiter
4341
+ # A container for the delimiter of the selection criteria being used.
4342
+ # @return [String]
4343
+ #
4344
+ # @!attribute [rw] max_depth
4345
+ # The max depth of the selection criteria
4346
+ # @return [Integer]
4347
+ #
4348
+ # @!attribute [rw] min_storage_bytes_percentage
4349
+ # The minimum number of storage bytes percentage whose metrics will be
4350
+ # selected.
4351
+ #
4352
+ # <note markdown="1"> You must choose a value greater than or equal to `1.0`.
4353
+ #
4354
+ # </note>
4355
+ # @return [Float]
4356
+ #
4357
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/SelectionCriteria AWS API Documentation
4358
+ #
4359
+ class SelectionCriteria < Struct.new(
4360
+ :delimiter,
4361
+ :max_depth,
4362
+ :min_storage_bytes_percentage)
4363
+ SENSITIVE = []
4364
+ include Aws::Structure
4365
+ end
4366
+
4367
+ # The AWS organization for your S3 Storage Lens.
4368
+ #
4369
+ # @note When making an API call, you may pass StorageLensAwsOrg
4370
+ # data as a hash:
4371
+ #
4372
+ # {
4373
+ # arn: "AwsOrgArn", # required
4374
+ # }
4375
+ #
4376
+ # @!attribute [rw] arn
4377
+ # A container for the Amazon Resource Name (ARN) of the AWS
4378
+ # organization. This property is read-only and follows the following
4379
+ # format: `
4380
+ # arn:aws:organizations:us-east-1:example-account-id:organization/o-ex2l495dck
4381
+ # `
4382
+ # @return [String]
4383
+ #
4384
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/StorageLensAwsOrg AWS API Documentation
4385
+ #
4386
+ class StorageLensAwsOrg < Struct.new(
4387
+ :arn)
4388
+ SENSITIVE = []
4389
+ include Aws::Structure
4390
+ end
4391
+
4392
+ # A container for the Amazon S3 Storage Lens configuration.
4393
+ #
4394
+ # @note When making an API call, you may pass StorageLensConfiguration
4395
+ # data as a hash:
4396
+ #
4397
+ # {
4398
+ # id: "ConfigId", # required
4399
+ # account_level: { # required
4400
+ # activity_metrics: {
4401
+ # is_enabled: false,
4402
+ # },
4403
+ # bucket_level: { # required
4404
+ # activity_metrics: {
4405
+ # is_enabled: false,
4406
+ # },
4407
+ # prefix_level: {
4408
+ # storage_metrics: { # required
4409
+ # is_enabled: false,
4410
+ # selection_criteria: {
4411
+ # delimiter: "StorageLensPrefixLevelDelimiter",
4412
+ # max_depth: 1,
4413
+ # min_storage_bytes_percentage: 1.0,
4414
+ # },
4415
+ # },
4416
+ # },
4417
+ # },
4418
+ # },
4419
+ # include: {
4420
+ # buckets: ["S3BucketArnString"],
4421
+ # regions: ["S3AWSRegion"],
4422
+ # },
4423
+ # exclude: {
4424
+ # buckets: ["S3BucketArnString"],
4425
+ # regions: ["S3AWSRegion"],
4426
+ # },
4427
+ # data_export: {
4428
+ # s3_bucket_destination: { # required
4429
+ # format: "CSV", # required, accepts CSV, Parquet
4430
+ # output_schema_version: "V_1", # required, accepts V_1
4431
+ # account_id: "AccountId", # required
4432
+ # arn: "S3BucketArnString", # required
4433
+ # prefix: "Prefix",
4434
+ # encryption: {
4435
+ # sses3: {
4436
+ # },
4437
+ # ssekms: {
4438
+ # key_id: "SSEKMSKeyId", # required
4439
+ # },
4440
+ # },
4441
+ # },
4442
+ # },
4443
+ # is_enabled: false, # required
4444
+ # aws_org: {
4445
+ # arn: "AwsOrgArn", # required
4446
+ # },
4447
+ # storage_lens_arn: "StorageLensArn",
4448
+ # }
4449
+ #
4450
+ # @!attribute [rw] id
4451
+ # A container for the Amazon S3 Storage Lens configuration ID.
4452
+ # @return [String]
4453
+ #
4454
+ # @!attribute [rw] account_level
4455
+ # A container for all the account-level configurations of your S3
4456
+ # Storage Lens configuration.
4457
+ # @return [Types::AccountLevel]
4458
+ #
4459
+ # @!attribute [rw] include
4460
+ # A container for what is included in this configuration. This
4461
+ # container can only be valid if there is no `Exclude` container
4462
+ # submitted, and it's not empty.
4463
+ # @return [Types::Include]
4464
+ #
4465
+ # @!attribute [rw] exclude
4466
+ # A container for what is excluded in this configuration. This
4467
+ # container can only be valid if there is no `Include` container
4468
+ # submitted, and it's not empty.
4469
+ # @return [Types::Exclude]
4470
+ #
4471
+ # @!attribute [rw] data_export
4472
+ # A container to specify the properties of your S3 Storage Lens
4473
+ # metrics export including, the destination, schema and format.
4474
+ # @return [Types::StorageLensDataExport]
4475
+ #
4476
+ # @!attribute [rw] is_enabled
4477
+ # A container for whether the S3 Storage Lens configuration is
4478
+ # enabled.
4479
+ # @return [Boolean]
4480
+ #
4481
+ # @!attribute [rw] aws_org
4482
+ # A container for the AWS organization for this S3 Storage Lens
4483
+ # configuration.
4484
+ # @return [Types::StorageLensAwsOrg]
4485
+ #
4486
+ # @!attribute [rw] storage_lens_arn
4487
+ # The Amazon Resource Name (ARN) of the S3 Storage Lens configuration.
4488
+ # This property is read-only and follows the following format: `
4489
+ # arn:aws:s3:us-east-1:example-account-id:storage-lens/your-dashboard-name
4490
+ # `
4491
+ # @return [String]
4492
+ #
4493
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/StorageLensConfiguration AWS API Documentation
4494
+ #
4495
+ class StorageLensConfiguration < Struct.new(
4496
+ :id,
4497
+ :account_level,
4498
+ :include,
4499
+ :exclude,
4500
+ :data_export,
4501
+ :is_enabled,
4502
+ :aws_org,
4503
+ :storage_lens_arn)
4504
+ SENSITIVE = []
4505
+ include Aws::Structure
4506
+ end
4507
+
4508
+ # A container to specify the properties of your S3 Storage Lens metrics
4509
+ # export, including the destination, schema, and format.
4510
+ #
4511
+ # @note When making an API call, you may pass StorageLensDataExport
4512
+ # data as a hash:
4513
+ #
4514
+ # {
4515
+ # s3_bucket_destination: { # required
4516
+ # format: "CSV", # required, accepts CSV, Parquet
4517
+ # output_schema_version: "V_1", # required, accepts V_1
4518
+ # account_id: "AccountId", # required
4519
+ # arn: "S3BucketArnString", # required
4520
+ # prefix: "Prefix",
4521
+ # encryption: {
4522
+ # sses3: {
4523
+ # },
4524
+ # ssekms: {
4525
+ # key_id: "SSEKMSKeyId", # required
4526
+ # },
4527
+ # },
4528
+ # },
4529
+ # }
4530
+ #
4531
+ # @!attribute [rw] s3_bucket_destination
4532
+ # A container for the bucket where the S3 Storage Lens metrics export
4533
+ # will be located.
4534
+ # @return [Types::S3BucketDestination]
4535
+ #
4536
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/StorageLensDataExport AWS API Documentation
4537
+ #
4538
+ class StorageLensDataExport < Struct.new(
4539
+ :s3_bucket_destination)
4540
+ SENSITIVE = []
4541
+ include Aws::Structure
4542
+ end
4543
+
4544
+ # A container for the encryption of the S3 Storage Lens metrics exports.
4545
+ #
4546
+ # @note When making an API call, you may pass StorageLensDataExportEncryption
4547
+ # data as a hash:
4548
+ #
4549
+ # {
4550
+ # sses3: {
4551
+ # },
4552
+ # ssekms: {
4553
+ # key_id: "SSEKMSKeyId", # required
4554
+ # },
4555
+ # }
4556
+ #
4557
+ # @!attribute [rw] sses3
4558
+ # @return [Types::SSES3]
4559
+ #
4560
+ # @!attribute [rw] ssekms
4561
+ # @return [Types::SSEKMS]
4562
+ #
4563
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/StorageLensDataExportEncryption AWS API Documentation
4564
+ #
4565
+ class StorageLensDataExportEncryption < Struct.new(
4566
+ :sses3,
4567
+ :ssekms)
4568
+ SENSITIVE = []
4569
+ include Aws::Structure
4570
+ end
4571
+
4572
+ # @note When making an API call, you may pass StorageLensTag
4573
+ # data as a hash:
4574
+ #
4575
+ # {
4576
+ # key: "TagKeyString", # required
4577
+ # value: "TagValueString", # required
4578
+ # }
4579
+ #
4580
+ # @!attribute [rw] key
4581
+ # @return [String]
4582
+ #
4583
+ # @!attribute [rw] value
4584
+ # @return [String]
4585
+ #
4586
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/StorageLensTag AWS API Documentation
4587
+ #
4588
+ class StorageLensTag < Struct.new(
4589
+ :key,
4590
+ :value)
4591
+ SENSITIVE = []
4592
+ include Aws::Structure
4593
+ end
4594
+
4595
+ # @note When making an API call, you may pass Tagging
4596
+ # data as a hash:
4597
+ #
4598
+ # {
4599
+ # tag_set: [ # required
4600
+ # {
4601
+ # key: "TagKeyString", # required
4602
+ # value: "TagValueString", # required
4603
+ # },
4604
+ # ],
4605
+ # }
4606
+ #
4607
+ # @!attribute [rw] tag_set
4608
+ # A collection for a set of tags.
4609
+ # @return [Array<Types::S3Tag>]
4610
+ #
4611
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/Tagging AWS API Documentation
4612
+ #
4613
+ class Tagging < Struct.new(
4614
+ :tag_set)
4615
+ SENSITIVE = []
4616
+ include Aws::Structure
4617
+ end
4618
+
2285
4619
  # @!attribute [rw] message
2286
4620
  # @return [String]
2287
4621
  #
@@ -2293,6 +4627,9 @@ module Aws::S3Control
2293
4627
  include Aws::Structure
2294
4628
  end
2295
4629
 
4630
+ # Amazon S3 throws this exception if you have too many tags in your tag
4631
+ # set.
4632
+ #
2296
4633
  # @!attribute [rw] message
2297
4634
  # @return [String]
2298
4635
  #
@@ -2304,6 +4641,50 @@ module Aws::S3Control
2304
4641
  include Aws::Structure
2305
4642
  end
2306
4643
 
4644
+ # Specifies when an object transitions to a specified storage class. For
4645
+ # more information about Amazon S3 Lifecycle configuration rules, see [
4646
+ # Transitioning objects using Amazon S3 Lifecycle][1] in the *Amazon
4647
+ # Simple Storage Service Developer Guide*.
4648
+ #
4649
+ #
4650
+ #
4651
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-transition-general-considerations.html
4652
+ #
4653
+ # @note When making an API call, you may pass Transition
4654
+ # data as a hash:
4655
+ #
4656
+ # {
4657
+ # date: Time.now,
4658
+ # days: 1,
4659
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
4660
+ # }
4661
+ #
4662
+ # @!attribute [rw] date
4663
+ # Indicates when objects are transitioned to the specified storage
4664
+ # class. The date value must be in ISO 8601 format. The time is always
4665
+ # midnight UTC.
4666
+ # @return [Time]
4667
+ #
4668
+ # @!attribute [rw] days
4669
+ # Indicates the number of days after creation when objects are
4670
+ # transitioned to the specified storage class. The value must be a
4671
+ # positive integer.
4672
+ # @return [Integer]
4673
+ #
4674
+ # @!attribute [rw] storage_class
4675
+ # The storage class to which you want the object to transition.
4676
+ # @return [String]
4677
+ #
4678
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/Transition AWS API Documentation
4679
+ #
4680
+ class Transition < Struct.new(
4681
+ :date,
4682
+ :days,
4683
+ :storage_class)
4684
+ SENSITIVE = []
4685
+ include Aws::Structure
4686
+ end
4687
+
2307
4688
  # @note When making an API call, you may pass UpdateJobPriorityRequest
2308
4689
  # data as a hash:
2309
4690
  #