aws-sdk-s3control 1.22.0 → 1.27.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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,227 @@
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
+ # After extracting out any ARN input, resolve a new URL with it.
35
+ class UrlHandler < Seahorse::Client::Handler
36
+ def call(context)
37
+ if context.metadata[:s3_arn]
38
+ ARN.resolve_url!(
39
+ context.http_request.endpoint,
40
+ context.metadata[:s3_arn][:arn],
41
+ context.metadata[:s3_arn][:resolved_region],
42
+ context.metadata[:s3_arn][:dualstack],
43
+ # if regional_endpoint is false, a custom endpoint was provided
44
+ # in this case, we want to prefix the endpoint using the ARN
45
+ !context.config.regional_endpoint
46
+ )
47
+ end
48
+ @handler.call(context)
49
+ end
50
+ end
51
+
52
+ # This plugin will extract out any ARN input and set context for other
53
+ # plugins to use without having to translate the ARN again.
54
+ class ARNHandler < Seahorse::Client::Handler
55
+ def call(context)
56
+ arn_member = _arn_member(context.operation.input.shape)
57
+ if arn_member && (bucket = context.params[arn_member])
58
+ resolved_region, arn = ARN.resolve_arn!(
59
+ bucket,
60
+ context.config.region,
61
+ context.config.s3_use_arn_region
62
+ )
63
+ validate_outpost_dualstack!(context)
64
+ if arn
65
+ validate_config!(context, arn)
66
+
67
+ if arn.is_a?(OutpostAccessPointARN) ||
68
+ arn.is_a?(OutpostBucketARN)
69
+ set_outpost_header!(context, arn)
70
+ # disable account_id prefix for outposts urls
71
+ context.config.disable_host_prefix_injection = true
72
+ end
73
+ set_account_param!(context, arn)
74
+
75
+ # depending on the ARN's resource type, put the resource value
76
+ # back onto params
77
+ context.params[arn_member] = arn.input_member
78
+ context.metadata[:s3_arn] = {
79
+ arn: arn,
80
+ resolved_region: resolved_region,
81
+ dualstack: extract_dualstack_config!(context)
82
+ }
83
+ end
84
+ end
85
+ @handler.call(context)
86
+ end
87
+
88
+ private
89
+
90
+ # this validation has nothing to do with ARNs (can't be in
91
+ # validate_config!) outposts does not support dualstack, so operations
92
+ # using an outpost id should be validated too.
93
+ def validate_outpost_dualstack!(context)
94
+ if context.params[:outpost_id] && context[:use_dualstack_endpoint]
95
+ raise ArgumentError,
96
+ 'Cannot provide an Outpost ID when '\
97
+ '`:use_dualstack_endpoint` is set to true.'
98
+ end
99
+ end
100
+
101
+ # This looks for BucketName or AccessPointName, but prefers BucketName
102
+ # for CreateAccessPoint because it contains both but should not have
103
+ # an Access Point ARN as AccessPointName.
104
+ def _arn_member(input)
105
+ input.members.each do |member, ref|
106
+ if ref.shape.name == 'BucketName' ||
107
+ (ref.shape.name == 'AccessPointName' &&
108
+ input.name != 'CreateAccessPointRequest')
109
+ return member
110
+ end
111
+ end
112
+ end
113
+
114
+ # other plugins use dualstack so disable it when we're done
115
+ def extract_dualstack_config!(context)
116
+ dualstack = context[:use_dualstack_endpoint]
117
+ context[:use_dualstack_endpoint] = false if dualstack
118
+ dualstack
119
+ end
120
+
121
+ def validate_config!(context, arn)
122
+ if !arn.support_dualstack? && context[:use_dualstack_endpoint]
123
+ raise ArgumentError,
124
+ 'Cannot provide an Outpost Access Point ARN when '\
125
+ '`:use_dualstack_endpoint` is set to true.'
126
+ end
127
+ end
128
+
129
+ def set_outpost_header!(context, arn)
130
+ context.http_request.headers['x-amz-outpost-id'] = arn.outpost_id
131
+ end
132
+
133
+ def set_account_param!(context, arn)
134
+ if context.params[:account_id] &&
135
+ context.params[:account_id] != arn.account_id
136
+ raise ArgumentError,
137
+ 'Cannot provide an Account ID that is different from the '\
138
+ 'Account ID in the ARN.'
139
+ end
140
+ context.params[:account_id] = arn.account_id
141
+ end
142
+ end
143
+
144
+ class << self
145
+ # @api private
146
+ def resolve_arn!(member_value, region, use_arn_region)
147
+ if Aws::ARNParser.arn?(member_value)
148
+ arn = Aws::ARNParser.parse(member_value)
149
+ if arn.resource.include?('bucket')
150
+ s3_arn = Aws::S3Control::OutpostBucketARN.new(arn.to_h)
151
+ elsif arn.resource.include?('accesspoint')
152
+ s3_arn = Aws::S3Control::OutpostAccessPointARN.new(arn.to_h)
153
+ else
154
+ raise ArgumentError,
155
+ 'Only Outpost Bucket and Outpost Access Point ARNs are '\
156
+ 'currently supported.'
157
+ end
158
+ s3_arn.validate_arn!
159
+ validate_region_config!(s3_arn, region, use_arn_region)
160
+ region = s3_arn.region if use_arn_region
161
+ [region, s3_arn]
162
+ else
163
+ [region]
164
+ end
165
+ end
166
+
167
+ # @api private
168
+ def resolve_url!(url, arn, region, dualstack = false, has_custom_endpoint = false)
169
+ custom_endpoint = url.host if has_custom_endpoint
170
+ url.host = arn.host_url(region, dualstack, custom_endpoint)
171
+ url
172
+ end
173
+
174
+ private
175
+
176
+ def resolve_s3_use_arn_region(cfg)
177
+ value = ENV['AWS_S3_USE_ARN_REGION'] ||
178
+ Aws.shared_config.s3_use_arn_region(profile: cfg.profile) ||
179
+ 'true'
180
+ value = Aws::Util.str_2_bool(value)
181
+ # Raise if provided value is not true or false
182
+ if value.nil?
183
+ raise ArgumentError,
184
+ 'Must provide either `true` or `false` for the '\
185
+ '`s3_use_arn_region` profile option or for '\
186
+ "ENV['AWS_S3_USE_ARN_REGION']."
187
+ end
188
+ value
189
+ end
190
+
191
+ def validate_region_config!(arn, region, use_arn_region)
192
+ fips = arn.support_fips?
193
+
194
+ # s3-external-1 is specific just to s3 and not part of partitions
195
+ # aws-global is a partition region
196
+ unless arn.partition == 'aws' &&
197
+ (region == 's3-external-1' || region == 'aws-global')
198
+ if !fips && arn.region.include?('fips')
199
+ raise ArgumentError,
200
+ 'FIPS region ARNs are not supported for this type of ARN.'
201
+ end
202
+
203
+ if !fips && !use_arn_region && region.include?('fips')
204
+ raise ArgumentError,
205
+ 'FIPS client regions are not supported for this type of '\
206
+ 'ARN without `:s3_use_arn_region`.'
207
+ end
208
+
209
+ # if it's a fips region, attempt to normalize it
210
+ if fips || use_arn_region
211
+ region = region.gsub('fips-', '').gsub('-fips', '')
212
+ end
213
+ if use_arn_region &&
214
+ !Aws::Partitions.partition(arn.partition).region?(region)
215
+ raise Aws::Errors::InvalidARNPartitionError
216
+ end
217
+
218
+ if !use_arn_region && region != arn.region
219
+ raise Aws::Errors::InvalidARNRegionError
220
+ end
221
+ end
222
+ end
223
+ end
224
+ end
225
+ end
226
+ end
227
+ end
@@ -16,16 +16,22 @@ for all operations.
16
16
 
17
17
  def add_handlers(handlers, config)
18
18
  handlers.add(OptionHandler, step: :initialize)
19
- handlers.add(DualstackHandler, step: :build, priority: 2)
19
+ handlers.add(DualstackHandler, step: :build, priority: 11)
20
20
  end
21
21
 
22
22
  # @api private
23
23
  class OptionHandler < Seahorse::Client::Handler
24
24
  def call(context)
25
+ # Support client configuration and per-operation configuration
25
26
  if context.params.is_a?(Hash)
26
27
  dualstack = context.params.delete(:use_dualstack_endpoint)
27
28
  end
28
29
  dualstack = context.config.use_dualstack_endpoint if dualstack.nil?
30
+ # Raise if :endpoint and dualstack are both provided
31
+ if dualstack && !context.config.regional_endpoint
32
+ raise ArgumentError,
33
+ 'Cannot use both :use_dualstack_endpoint and :endpoint'
34
+ end
29
35
  context[:use_dualstack_endpoint] = dualstack
30
36
  @handler.call(context)
31
37
  end
@@ -34,17 +40,16 @@ for all operations.
34
40
  # @api private
35
41
  class DualstackHandler < Seahorse::Client::Handler
36
42
  def call(context)
37
- apply_dualstack_endpoint(context) if use_dualstack_endpoint?(context)
43
+ if context.config.regional_endpoint && context[:use_dualstack_endpoint]
44
+ apply_dualstack_endpoint(context)
45
+ end
38
46
  @handler.call(context)
39
47
  end
40
48
 
41
49
  private
42
50
  def apply_dualstack_endpoint(context)
43
- bucket_name = context.params[:bucket]
44
51
  region = context.config.region
45
- dns_suffix = Aws::Partitions::EndpointProvider.dns_suffix_for(
46
- region
47
- )
52
+ dns_suffix = Aws::Partitions::EndpointProvider.dns_suffix_for(region)
48
53
  host = "s3-control.dualstack.#{region}.#{dns_suffix}"
49
54
  endpoint = URI.parse(context.http_request.endpoint.to_s)
50
55
  endpoint.scheme = context.http_request.endpoint.scheme
@@ -52,10 +57,6 @@ for all operations.
52
57
  endpoint.host = host
53
58
  context.http_request.endpoint = endpoint.to_s
54
59
  end
55
-
56
- def use_dualstack_endpoint?(context)
57
- context[:use_dualstack_endpoint]
58
- end
59
60
  end
60
61
 
61
62
  end
@@ -0,0 +1,96 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'aws-sigv4'
4
+
5
+ module Aws
6
+ module S3Control
7
+ module Plugins
8
+ # This plugin is an implementation detail and may be modified.
9
+ # @api private
10
+ class S3ControlSigner < Seahorse::Client::Plugin
11
+ SPECIAL_OUTPOST_OPERATIONS = [
12
+ 'CreateBucket',
13
+ 'ListRegionalBuckets'
14
+ ].freeze
15
+
16
+ option(:sigv4_signer) do |cfg|
17
+ S3ControlSigner.build_v4_signer(
18
+ service: 's3',
19
+ region: cfg.sigv4_region,
20
+ credentials: cfg.credentials
21
+ )
22
+ end
23
+
24
+ option(:sigv4_region) do |cfg|
25
+ raise Aws::Errors::MissingRegionError if cfg.region.nil?
26
+
27
+ Aws::Partitions::EndpointProvider.signing_region(cfg.region, 's3')
28
+ end
29
+
30
+ def add_handlers(handlers, _cfg)
31
+ handlers.add(V4Handler, step: :sign)
32
+ end
33
+
34
+ class V4Handler < Seahorse::Client::Handler
35
+ def call(context)
36
+ Aws::Plugins::SignatureV4.apply_signature(
37
+ context: context,
38
+ signer: sigv4_signer(context)
39
+ )
40
+ @handler.call(context)
41
+ end
42
+
43
+ private
44
+
45
+ def sigv4_signer(context)
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
+ # outpost operations should go to the outposts endpoint only if
55
+ # it's not a custom endpoint. the ARN class changes this for ARNs
56
+ if context.config.regional_endpoint
57
+ context.http_request.endpoint.host =
58
+ "s3-outposts.#{context.config.region}.amazonaws.com"
59
+ end
60
+ S3ControlSigner.build_v4_signer(
61
+ service: 's3-outposts',
62
+ region: context.config.region,
63
+ credentials: context.config.credentials
64
+ )
65
+ else
66
+ context.config.sigv4_signer
67
+ end
68
+ end
69
+
70
+ # Some operations do not take an ARN parameter and are special cases
71
+ # For these operations, the presence of the outpost_id parameter
72
+ # must trigger special endpoint and signer redirection
73
+ def outpost_operation?(context)
74
+ SPECIAL_OUTPOST_OPERATIONS.include?(context.operation.name) &&
75
+ context.params[:outpost_id]
76
+ end
77
+ end
78
+
79
+ class << self
80
+ # @option options [required, String] :region
81
+ # @option options [required, #credentials] :credentials
82
+ # @api private
83
+ def build_v4_signer(options = {})
84
+ Aws::Sigv4::Signer.new(
85
+ service: options[:service],
86
+ region: options[:region],
87
+ credentials_provider: options[:credentials],
88
+ uri_escape_path: false,
89
+ unsigned_headers: ['content-length', 'x-amzn-trace-id']
90
+ )
91
+ end
92
+ end
93
+ end
94
+ end
95
+ end
96
+ 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
  #
@@ -202,6 +558,8 @@ module Aws::S3Control
202
558
  # },
203
559
  # ],
204
560
  # },
561
+ # s3_delete_object_tagging: {
562
+ # },
205
563
  # s3_initiate_restore_object: {
206
564
  # expiration_in_days: 1,
207
565
  # glacier_job_tier: "BULK", # accepts BULK, STANDARD
@@ -250,6 +608,7 @@ module Aws::S3Control
250
608
  # }
251
609
  #
252
610
  # @!attribute [rw] account_id
611
+ # The AWS account ID that creates the job.
253
612
  # @return [String]
254
613
  #
255
614
  # @!attribute [rw] confirmation_required
@@ -259,10 +618,10 @@ module Aws::S3Control
259
618
  # @return [Boolean]
260
619
  #
261
620
  # @!attribute [rw] operation
262
- # The operation that you want this job to perform on each object
621
+ # The operation that you want this job to perform on every object
263
622
  # 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*.
623
+ # operations, see [Operations][1] in the *Amazon Simple Storage
624
+ # Service Developer Guide*.
266
625
  #
267
626
  #
268
627
  #
@@ -299,13 +658,13 @@ module Aws::S3Control
299
658
  #
300
659
  # @!attribute [rw] role_arn
301
660
  # 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.
661
+ # Management (IAM) role that Batch Operations will use to run this
662
+ # job's operation on every object in the manifest.
304
663
  # @return [String]
305
664
  #
306
665
  # @!attribute [rw] tags
307
- # A set of tags to associate with the Amazon S3 Batch Operations job.
308
- # This is an optional parameter.
666
+ # A set of tags to associate with the S3 Batch Operations job. This is
667
+ # an optional parameter.
309
668
  # @return [Array<Types::S3Tag>]
310
669
  #
311
670
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateJobRequest AWS API Documentation
@@ -352,6 +711,19 @@ module Aws::S3Control
352
711
  #
353
712
  # @!attribute [rw] name
354
713
  # The name of the access point whose policy you want to delete.
714
+ #
715
+ # For using this parameter with Amazon S3 on Outposts with the REST
716
+ # API, you must specify the name and the x-amz-outpost-id as well.
717
+ #
718
+ # For using this parameter with S3 on Outposts with the AWS SDK and
719
+ # CLI, you must specify the ARN of the access point accessed in the
720
+ # format
721
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>`.
722
+ # For example, to access the access point `reports-ap` through outpost
723
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
724
+ # use the URL encoding of
725
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap`.
726
+ # The value must be URL encoded.
355
727
  # @return [String]
356
728
  #
357
729
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPointPolicyRequest AWS API Documentation
@@ -377,6 +749,19 @@ module Aws::S3Control
377
749
  #
378
750
  # @!attribute [rw] name
379
751
  # The name of the access point you want to delete.
752
+ #
753
+ # For using this parameter with Amazon S3 on Outposts with the REST
754
+ # API, you must specify the name and the x-amz-outpost-id as well.
755
+ #
756
+ # For using this parameter with S3 on Outposts with the AWS SDK and
757
+ # CLI, you must specify the ARN of the access point accessed in the
758
+ # format
759
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>`.
760
+ # For example, to access the access point `reports-ap` through outpost
761
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
762
+ # use the URL encoding of
763
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap`.
764
+ # The value must be URL encoded.
380
765
  # @return [String]
381
766
  #
382
767
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPointRequest AWS API Documentation
@@ -388,158 +773,399 @@ module Aws::S3Control
388
773
  include Aws::Structure
389
774
  end
390
775
 
391
- # @note When making an API call, you may pass DeleteJobTaggingRequest
776
+ # @note When making an API call, you may pass DeleteBucketLifecycleConfigurationRequest
392
777
  # data as a hash:
393
778
  #
394
779
  # {
395
780
  # account_id: "AccountId", # required
396
- # job_id: "JobId", # required
781
+ # bucket: "BucketName", # required
397
782
  # }
398
783
  #
399
784
  # @!attribute [rw] account_id
400
- # The AWS account ID associated with the Amazon S3 Batch Operations
401
- # job.
785
+ # The account ID of the lifecycle configuration to delete.
402
786
  # @return [String]
403
787
  #
404
- # @!attribute [rw] job_id
405
- # The ID for the Amazon S3 Batch Operations job whose tags you want to
406
- # delete.
788
+ # @!attribute [rw] bucket
789
+ # Specifies the bucket.
790
+ #
791
+ # For using this parameter with Amazon S3 on Outposts with the REST
792
+ # API, you must specify the name and the x-amz-outpost-id as well.
793
+ #
794
+ # For using this parameter with S3 on Outposts with the AWS SDK and
795
+ # CLI, you must specify the ARN of the bucket accessed in the format
796
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
797
+ # For example, to access the bucket `reports` through outpost
798
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
799
+ # use the URL encoding of
800
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
801
+ # The value must be URL encoded.
407
802
  # @return [String]
408
803
  #
409
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteJobTaggingRequest AWS API Documentation
804
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketLifecycleConfigurationRequest AWS API Documentation
410
805
  #
411
- class DeleteJobTaggingRequest < Struct.new(
806
+ class DeleteBucketLifecycleConfigurationRequest < Struct.new(
412
807
  :account_id,
413
- :job_id)
808
+ :bucket)
414
809
  SENSITIVE = []
415
810
  include Aws::Structure
416
811
  end
417
812
 
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
813
+ # @note When making an API call, you may pass DeleteBucketPolicyRequest
423
814
  # data as a hash:
424
815
  #
425
816
  # {
426
817
  # account_id: "AccountId", # required
818
+ # bucket: "BucketName", # required
427
819
  # }
428
820
  #
429
821
  # @!attribute [rw] account_id
430
- # The account ID for the Amazon Web Services account whose
431
- # `PublicAccessBlock` configuration you want to remove.
822
+ # The account ID of the Outposts bucket.
432
823
  # @return [String]
433
824
  #
434
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeletePublicAccessBlockRequest AWS API Documentation
825
+ # @!attribute [rw] bucket
826
+ # Specifies the bucket.
827
+ #
828
+ # For using this parameter with Amazon S3 on Outposts with the REST
829
+ # API, you must specify the name and the x-amz-outpost-id as well.
830
+ #
831
+ # For using this parameter with S3 on Outposts with the AWS SDK and
832
+ # CLI, you must specify the ARN of the bucket accessed in the format
833
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
834
+ # For example, to access the bucket `reports` through outpost
835
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
836
+ # use the URL encoding of
837
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
838
+ # The value must be URL encoded.
839
+ # @return [String]
435
840
  #
436
- class DeletePublicAccessBlockRequest < Struct.new(
437
- :account_id)
841
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketPolicyRequest AWS API Documentation
842
+ #
843
+ class DeleteBucketPolicyRequest < Struct.new(
844
+ :account_id,
845
+ :bucket)
438
846
  SENSITIVE = []
439
847
  include Aws::Structure
440
848
  end
441
849
 
442
- # @note When making an API call, you may pass DescribeJobRequest
850
+ # @note When making an API call, you may pass DeleteBucketRequest
443
851
  # data as a hash:
444
852
  #
445
853
  # {
446
854
  # account_id: "AccountId", # required
447
- # job_id: "JobId", # required
855
+ # bucket: "BucketName", # required
448
856
  # }
449
857
  #
450
858
  # @!attribute [rw] account_id
859
+ # The account ID that owns the Outposts bucket.
451
860
  # @return [String]
452
861
  #
453
- # @!attribute [rw] job_id
454
- # The ID for the job whose information you want to retrieve.
862
+ # @!attribute [rw] bucket
863
+ # Specifies the bucket being deleted.
864
+ #
865
+ # For using this parameter with Amazon S3 on Outposts with the REST
866
+ # API, you must specify the name and the x-amz-outpost-id as well.
867
+ #
868
+ # For using this parameter with S3 on Outposts with the AWS SDK and
869
+ # CLI, you must specify the ARN of the bucket accessed in the format
870
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
871
+ # For example, to access the bucket `reports` through outpost
872
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
873
+ # use the URL encoding of
874
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
875
+ # The value must be URL encoded.
455
876
  # @return [String]
456
877
  #
457
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DescribeJobRequest AWS API Documentation
878
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketRequest AWS API Documentation
458
879
  #
459
- class DescribeJobRequest < Struct.new(
880
+ class DeleteBucketRequest < Struct.new(
460
881
  :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)
882
+ :bucket)
475
883
  SENSITIVE = []
476
884
  include Aws::Structure
477
885
  end
478
886
 
479
- # @note When making an API call, you may pass GetAccessPointPolicyRequest
887
+ # @note When making an API call, you may pass DeleteBucketTaggingRequest
480
888
  # data as a hash:
481
889
  #
482
890
  # {
483
891
  # account_id: "AccountId", # required
484
- # name: "AccessPointName", # required
892
+ # bucket: "BucketName", # required
485
893
  # }
486
894
  #
487
895
  # @!attribute [rw] account_id
488
- # The account ID for the account that owns the specified access point.
896
+ # The AWS account ID of the Outposts bucket tag set to be removed.
489
897
  # @return [String]
490
898
  #
491
- # @!attribute [rw] name
492
- # The name of the access point whose policy you want to retrieve.
899
+ # @!attribute [rw] bucket
900
+ # The bucket ARN that has the tag set to be removed.
901
+ #
902
+ # For using this parameter with Amazon S3 on Outposts with the REST
903
+ # API, you must specify the name and the x-amz-outpost-id as well.
904
+ #
905
+ # For using this parameter with S3 on Outposts with the AWS SDK and
906
+ # CLI, you must specify the ARN of the bucket accessed in the format
907
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
908
+ # For example, to access the bucket `reports` through outpost
909
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
910
+ # use the URL encoding of
911
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
912
+ # The value must be URL encoded.
493
913
  # @return [String]
494
914
  #
495
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyRequest AWS API Documentation
915
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketTaggingRequest AWS API Documentation
496
916
  #
497
- class GetAccessPointPolicyRequest < Struct.new(
917
+ class DeleteBucketTaggingRequest < Struct.new(
498
918
  :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)
919
+ :bucket)
512
920
  SENSITIVE = []
513
921
  include Aws::Structure
514
922
  end
515
923
 
516
- # @note When making an API call, you may pass GetAccessPointPolicyStatusRequest
924
+ # @note When making an API call, you may pass DeleteJobTaggingRequest
517
925
  # data as a hash:
518
926
  #
519
927
  # {
520
928
  # account_id: "AccountId", # required
521
- # name: "AccessPointName", # required
929
+ # job_id: "JobId", # required
522
930
  # }
523
931
  #
524
932
  # @!attribute [rw] account_id
525
- # The account ID for the account that owns the specified access point.
933
+ # The AWS account ID associated with the S3 Batch Operations job.
526
934
  # @return [String]
527
935
  #
528
- # @!attribute [rw] name
529
- # The name of the access point whose policy status you want to
530
- # retrieve.
936
+ # @!attribute [rw] job_id
937
+ # The ID for the S3 Batch Operations job whose tags you want to
938
+ # delete.
531
939
  # @return [String]
532
940
  #
533
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatusRequest AWS API Documentation
941
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteJobTaggingRequest AWS API Documentation
534
942
  #
535
- class GetAccessPointPolicyStatusRequest < Struct.new(
943
+ class DeleteJobTaggingRequest < Struct.new(
536
944
  :account_id,
537
- :name)
945
+ :job_id)
538
946
  SENSITIVE = []
539
947
  include Aws::Structure
540
948
  end
541
949
 
542
- # @!attribute [rw] policy_status
950
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteJobTaggingResult AWS API Documentation
951
+ #
952
+ class DeleteJobTaggingResult < Aws::EmptyStructure; end
953
+
954
+ # @note When making an API call, you may pass DeletePublicAccessBlockRequest
955
+ # data as a hash:
956
+ #
957
+ # {
958
+ # account_id: "AccountId", # required
959
+ # }
960
+ #
961
+ # @!attribute [rw] account_id
962
+ # The account ID for the AWS account whose `PublicAccessBlock`
963
+ # configuration you want to remove.
964
+ # @return [String]
965
+ #
966
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeletePublicAccessBlockRequest AWS API Documentation
967
+ #
968
+ class DeletePublicAccessBlockRequest < Struct.new(
969
+ :account_id)
970
+ SENSITIVE = []
971
+ include Aws::Structure
972
+ end
973
+
974
+ # @note When making an API call, you may pass DeleteStorageLensConfigurationRequest
975
+ # data as a hash:
976
+ #
977
+ # {
978
+ # config_id: "ConfigId", # required
979
+ # account_id: "AccountId", # required
980
+ # }
981
+ #
982
+ # @!attribute [rw] config_id
983
+ # The ID of the S3 Storage Lens configuration.
984
+ # @return [String]
985
+ #
986
+ # @!attribute [rw] account_id
987
+ # The account ID of the requester.
988
+ # @return [String]
989
+ #
990
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteStorageLensConfigurationRequest AWS API Documentation
991
+ #
992
+ class DeleteStorageLensConfigurationRequest < Struct.new(
993
+ :config_id,
994
+ :account_id)
995
+ SENSITIVE = []
996
+ include Aws::Structure
997
+ end
998
+
999
+ # @note When making an API call, you may pass DeleteStorageLensConfigurationTaggingRequest
1000
+ # data as a hash:
1001
+ #
1002
+ # {
1003
+ # config_id: "ConfigId", # required
1004
+ # account_id: "AccountId", # required
1005
+ # }
1006
+ #
1007
+ # @!attribute [rw] config_id
1008
+ # The ID of the S3 Storage Lens configuration.
1009
+ # @return [String]
1010
+ #
1011
+ # @!attribute [rw] account_id
1012
+ # The account ID of the requester.
1013
+ # @return [String]
1014
+ #
1015
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteStorageLensConfigurationTaggingRequest AWS API Documentation
1016
+ #
1017
+ class DeleteStorageLensConfigurationTaggingRequest < Struct.new(
1018
+ :config_id,
1019
+ :account_id)
1020
+ SENSITIVE = []
1021
+ include Aws::Structure
1022
+ end
1023
+
1024
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteStorageLensConfigurationTaggingResult AWS API Documentation
1025
+ #
1026
+ class DeleteStorageLensConfigurationTaggingResult < Aws::EmptyStructure; end
1027
+
1028
+ # @note When making an API call, you may pass DescribeJobRequest
1029
+ # data as a hash:
1030
+ #
1031
+ # {
1032
+ # account_id: "AccountId", # required
1033
+ # job_id: "JobId", # required
1034
+ # }
1035
+ #
1036
+ # @!attribute [rw] account_id
1037
+ # @return [String]
1038
+ #
1039
+ # @!attribute [rw] job_id
1040
+ # The ID for the job whose information you want to retrieve.
1041
+ # @return [String]
1042
+ #
1043
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DescribeJobRequest AWS API Documentation
1044
+ #
1045
+ class DescribeJobRequest < Struct.new(
1046
+ :account_id,
1047
+ :job_id)
1048
+ SENSITIVE = []
1049
+ include Aws::Structure
1050
+ end
1051
+
1052
+ # @!attribute [rw] job
1053
+ # Contains the configuration parameters and status for the job
1054
+ # specified in the `Describe Job` request.
1055
+ # @return [Types::JobDescriptor]
1056
+ #
1057
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DescribeJobResult AWS API Documentation
1058
+ #
1059
+ class DescribeJobResult < Struct.new(
1060
+ :job)
1061
+ SENSITIVE = []
1062
+ include Aws::Structure
1063
+ end
1064
+
1065
+ # A container for what Amazon S3 Storage Lens will exclude.
1066
+ #
1067
+ # @note When making an API call, you may pass Exclude
1068
+ # data as a hash:
1069
+ #
1070
+ # {
1071
+ # buckets: ["S3BucketArnString"],
1072
+ # regions: ["S3AWSRegion"],
1073
+ # }
1074
+ #
1075
+ # @!attribute [rw] buckets
1076
+ # A container for the S3 Storage Lens bucket excludes.
1077
+ # @return [Array<String>]
1078
+ #
1079
+ # @!attribute [rw] regions
1080
+ # A container for the S3 Storage Lens Region excludes.
1081
+ # @return [Array<String>]
1082
+ #
1083
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/Exclude AWS API Documentation
1084
+ #
1085
+ class Exclude < Struct.new(
1086
+ :buckets,
1087
+ :regions)
1088
+ SENSITIVE = []
1089
+ include Aws::Structure
1090
+ end
1091
+
1092
+ # @note When making an API call, you may pass GetAccessPointPolicyRequest
1093
+ # data as a hash:
1094
+ #
1095
+ # {
1096
+ # account_id: "AccountId", # required
1097
+ # name: "AccessPointName", # required
1098
+ # }
1099
+ #
1100
+ # @!attribute [rw] account_id
1101
+ # The account ID for the account that owns the specified access point.
1102
+ # @return [String]
1103
+ #
1104
+ # @!attribute [rw] name
1105
+ # The name of the access point whose policy you want to retrieve.
1106
+ #
1107
+ # For using this parameter with Amazon S3 on Outposts with the REST
1108
+ # API, you must specify the name and the x-amz-outpost-id as well.
1109
+ #
1110
+ # For using this parameter with S3 on Outposts with the AWS SDK and
1111
+ # CLI, you must specify the ARN of the access point accessed in the
1112
+ # format
1113
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>`.
1114
+ # For example, to access the access point `reports-ap` through outpost
1115
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
1116
+ # use the URL encoding of
1117
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap`.
1118
+ # The value must be URL encoded.
1119
+ # @return [String]
1120
+ #
1121
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyRequest AWS API Documentation
1122
+ #
1123
+ class GetAccessPointPolicyRequest < Struct.new(
1124
+ :account_id,
1125
+ :name)
1126
+ SENSITIVE = []
1127
+ include Aws::Structure
1128
+ end
1129
+
1130
+ # @!attribute [rw] policy
1131
+ # The access point policy associated with the specified access point.
1132
+ # @return [String]
1133
+ #
1134
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyResult AWS API Documentation
1135
+ #
1136
+ class GetAccessPointPolicyResult < Struct.new(
1137
+ :policy)
1138
+ SENSITIVE = []
1139
+ include Aws::Structure
1140
+ end
1141
+
1142
+ # @note When making an API call, you may pass GetAccessPointPolicyStatusRequest
1143
+ # data as a hash:
1144
+ #
1145
+ # {
1146
+ # account_id: "AccountId", # required
1147
+ # name: "AccessPointName", # required
1148
+ # }
1149
+ #
1150
+ # @!attribute [rw] account_id
1151
+ # The account ID for the account that owns the specified access point.
1152
+ # @return [String]
1153
+ #
1154
+ # @!attribute [rw] name
1155
+ # The name of the access point whose policy status you want to
1156
+ # retrieve.
1157
+ # @return [String]
1158
+ #
1159
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatusRequest AWS API Documentation
1160
+ #
1161
+ class GetAccessPointPolicyStatusRequest < Struct.new(
1162
+ :account_id,
1163
+ :name)
1164
+ SENSITIVE = []
1165
+ include Aws::Structure
1166
+ end
1167
+
1168
+ # @!attribute [rw] policy_status
543
1169
  # Indicates the current policy status of the specified access point.
544
1170
  # @return [Types::PolicyStatus]
545
1171
  #
@@ -566,6 +1192,19 @@ module Aws::S3Control
566
1192
  # @!attribute [rw] name
567
1193
  # The name of the access point whose configuration information you
568
1194
  # want to retrieve.
1195
+ #
1196
+ # For using this parameter with Amazon S3 on Outposts with the REST
1197
+ # API, you must specify the name and the x-amz-outpost-id as well.
1198
+ #
1199
+ # For using this parameter with S3 on Outposts with the AWS SDK and
1200
+ # CLI, you must specify the ARN of the access point accessed in the
1201
+ # format
1202
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>`.
1203
+ # For example, to access the access point `reports-ap` through outpost
1204
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
1205
+ # use the URL encoding of
1206
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap`.
1207
+ # The value must be URL encoded.
569
1208
  # @return [String]
570
1209
  #
571
1210
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointRequest AWS API Documentation
@@ -592,6 +1231,8 @@ module Aws::S3Control
592
1231
  # access from the public internet. Otherwise, `NetworkOrigin` is
593
1232
  # `Internet`, and the access point allows access from the public
594
1233
  # internet, subject to the access point and bucket access policies.
1234
+ #
1235
+ # This will always be true for an Amazon S3 on Outposts access point
595
1236
  # @return [String]
596
1237
  #
597
1238
  # @!attribute [rw] vpc_configuration
@@ -601,10 +1242,12 @@ module Aws::S3Control
601
1242
  #
602
1243
  # @!attribute [rw] public_access_block_configuration
603
1244
  # The `PublicAccessBlock` configuration that you want to apply to this
604
- # Amazon S3 bucket. You can enable the configuration options in any
1245
+ # Amazon S3 account. You can enable the configuration options in any
605
1246
  # combination. For more information about when Amazon S3 considers a
606
1247
  # bucket or object public, see [The Meaning of "Public"][1] in the
607
- # Amazon Simple Storage Service Developer Guide.
1248
+ # *Amazon Simple Storage Service Developer Guide*.
1249
+ #
1250
+ # This is not supported for Amazon S3 on Outposts.
608
1251
  #
609
1252
  #
610
1253
  #
@@ -628,6 +1271,211 @@ module Aws::S3Control
628
1271
  include Aws::Structure
629
1272
  end
630
1273
 
1274
+ # @note When making an API call, you may pass GetBucketLifecycleConfigurationRequest
1275
+ # data as a hash:
1276
+ #
1277
+ # {
1278
+ # account_id: "AccountId", # required
1279
+ # bucket: "BucketName", # required
1280
+ # }
1281
+ #
1282
+ # @!attribute [rw] account_id
1283
+ # The AWS account ID of the Outposts bucket.
1284
+ # @return [String]
1285
+ #
1286
+ # @!attribute [rw] bucket
1287
+ # The Amazon Resource Name (ARN) of the bucket.
1288
+ #
1289
+ # For using this parameter with Amazon S3 on Outposts with the REST
1290
+ # API, you must specify the name and the x-amz-outpost-id as well.
1291
+ #
1292
+ # For using this parameter with S3 on Outposts with the AWS SDK and
1293
+ # CLI, you must specify the ARN of the bucket accessed in the format
1294
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
1295
+ # For example, to access the bucket `reports` through outpost
1296
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
1297
+ # use the URL encoding of
1298
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
1299
+ # The value must be URL encoded.
1300
+ # @return [String]
1301
+ #
1302
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketLifecycleConfigurationRequest AWS API Documentation
1303
+ #
1304
+ class GetBucketLifecycleConfigurationRequest < Struct.new(
1305
+ :account_id,
1306
+ :bucket)
1307
+ SENSITIVE = []
1308
+ include Aws::Structure
1309
+ end
1310
+
1311
+ # @!attribute [rw] rules
1312
+ # Container for the lifecycle rule of the Outposts bucket.
1313
+ # @return [Array<Types::LifecycleRule>]
1314
+ #
1315
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketLifecycleConfigurationResult AWS API Documentation
1316
+ #
1317
+ class GetBucketLifecycleConfigurationResult < Struct.new(
1318
+ :rules)
1319
+ SENSITIVE = []
1320
+ include Aws::Structure
1321
+ end
1322
+
1323
+ # @note When making an API call, you may pass GetBucketPolicyRequest
1324
+ # data as a hash:
1325
+ #
1326
+ # {
1327
+ # account_id: "AccountId", # required
1328
+ # bucket: "BucketName", # required
1329
+ # }
1330
+ #
1331
+ # @!attribute [rw] account_id
1332
+ # The AWS account ID of the Outposts bucket.
1333
+ # @return [String]
1334
+ #
1335
+ # @!attribute [rw] bucket
1336
+ # Specifies the bucket.
1337
+ #
1338
+ # For using this parameter with Amazon S3 on Outposts with the REST
1339
+ # API, you must specify the name and the x-amz-outpost-id as well.
1340
+ #
1341
+ # For using this parameter with S3 on Outposts with the AWS SDK and
1342
+ # CLI, you must specify the ARN of the bucket accessed in the format
1343
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
1344
+ # For example, to access the bucket `reports` through outpost
1345
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
1346
+ # use the URL encoding of
1347
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
1348
+ # The value must be URL encoded.
1349
+ # @return [String]
1350
+ #
1351
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketPolicyRequest AWS API Documentation
1352
+ #
1353
+ class GetBucketPolicyRequest < Struct.new(
1354
+ :account_id,
1355
+ :bucket)
1356
+ SENSITIVE = []
1357
+ include Aws::Structure
1358
+ end
1359
+
1360
+ # @!attribute [rw] policy
1361
+ # The policy of the Outposts bucket.
1362
+ # @return [String]
1363
+ #
1364
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketPolicyResult AWS API Documentation
1365
+ #
1366
+ class GetBucketPolicyResult < Struct.new(
1367
+ :policy)
1368
+ SENSITIVE = []
1369
+ include Aws::Structure
1370
+ end
1371
+
1372
+ # @note When making an API call, you may pass GetBucketRequest
1373
+ # data as a hash:
1374
+ #
1375
+ # {
1376
+ # account_id: "AccountId", # required
1377
+ # bucket: "BucketName", # required
1378
+ # }
1379
+ #
1380
+ # @!attribute [rw] account_id
1381
+ # The AWS account ID of the Outposts bucket.
1382
+ # @return [String]
1383
+ #
1384
+ # @!attribute [rw] bucket
1385
+ # Specifies the bucket.
1386
+ #
1387
+ # For using this parameter with Amazon S3 on Outposts with the REST
1388
+ # API, you must specify the name and the x-amz-outpost-id as well.
1389
+ #
1390
+ # For using this parameter with S3 on Outposts with the AWS SDK and
1391
+ # CLI, you must specify the ARN of the bucket accessed in the format
1392
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
1393
+ # For example, to access the bucket `reports` through outpost
1394
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
1395
+ # use the URL encoding of
1396
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
1397
+ # The value must be URL encoded.
1398
+ # @return [String]
1399
+ #
1400
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketRequest AWS API Documentation
1401
+ #
1402
+ class GetBucketRequest < Struct.new(
1403
+ :account_id,
1404
+ :bucket)
1405
+ SENSITIVE = []
1406
+ include Aws::Structure
1407
+ end
1408
+
1409
+ # @!attribute [rw] bucket
1410
+ # The Outposts bucket requested.
1411
+ # @return [String]
1412
+ #
1413
+ # @!attribute [rw] public_access_block_enabled
1414
+ # @return [Boolean]
1415
+ #
1416
+ # @!attribute [rw] creation_date
1417
+ # The creation date of the Outposts bucket.
1418
+ # @return [Time]
1419
+ #
1420
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketResult AWS API Documentation
1421
+ #
1422
+ class GetBucketResult < Struct.new(
1423
+ :bucket,
1424
+ :public_access_block_enabled,
1425
+ :creation_date)
1426
+ SENSITIVE = []
1427
+ include Aws::Structure
1428
+ end
1429
+
1430
+ # @note When making an API call, you may pass GetBucketTaggingRequest
1431
+ # data as a hash:
1432
+ #
1433
+ # {
1434
+ # account_id: "AccountId", # required
1435
+ # bucket: "BucketName", # required
1436
+ # }
1437
+ #
1438
+ # @!attribute [rw] account_id
1439
+ # The AWS account ID of the Outposts bucket.
1440
+ # @return [String]
1441
+ #
1442
+ # @!attribute [rw] bucket
1443
+ # Specifies the bucket.
1444
+ #
1445
+ # For using this parameter with Amazon S3 on Outposts with the REST
1446
+ # API, you must specify the name and the x-amz-outpost-id as well.
1447
+ #
1448
+ # For using this parameter with S3 on Outposts with the AWS SDK and
1449
+ # CLI, you must specify the ARN of the bucket accessed in the format
1450
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
1451
+ # For example, to access the bucket `reports` through outpost
1452
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
1453
+ # use the URL encoding of
1454
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
1455
+ # The value must be URL encoded.
1456
+ # @return [String]
1457
+ #
1458
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketTaggingRequest AWS API Documentation
1459
+ #
1460
+ class GetBucketTaggingRequest < Struct.new(
1461
+ :account_id,
1462
+ :bucket)
1463
+ SENSITIVE = []
1464
+ include Aws::Structure
1465
+ end
1466
+
1467
+ # @!attribute [rw] tag_set
1468
+ # The tags set of the Outposts bucket.
1469
+ # @return [Array<Types::S3Tag>]
1470
+ #
1471
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketTaggingResult AWS API Documentation
1472
+ #
1473
+ class GetBucketTaggingResult < Struct.new(
1474
+ :tag_set)
1475
+ SENSITIVE = []
1476
+ include Aws::Structure
1477
+ end
1478
+
631
1479
  # @note When making an API call, you may pass GetJobTaggingRequest
632
1480
  # data as a hash:
633
1481
  #
@@ -637,12 +1485,11 @@ module Aws::S3Control
637
1485
  # }
638
1486
  #
639
1487
  # @!attribute [rw] account_id
640
- # The AWS account ID associated with the Amazon S3 Batch Operations
641
- # job.
1488
+ # The AWS account ID associated with the S3 Batch Operations job.
642
1489
  # @return [String]
643
1490
  #
644
1491
  # @!attribute [rw] job_id
645
- # The ID for the Amazon S3 Batch Operations job whose tags you want to
1492
+ # The ID for the S3 Batch Operations job whose tags you want to
646
1493
  # retrieve.
647
1494
  # @return [String]
648
1495
  #
@@ -656,7 +1503,7 @@ module Aws::S3Control
656
1503
  end
657
1504
 
658
1505
  # @!attribute [rw] tags
659
- # The set of tags associated with the Amazon S3 Batch Operations job.
1506
+ # The set of tags associated with the S3 Batch Operations job.
660
1507
  # @return [Array<Types::S3Tag>]
661
1508
  #
662
1509
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetJobTaggingResult AWS API Documentation
@@ -667,39 +1514,113 @@ module Aws::S3Control
667
1514
  include Aws::Structure
668
1515
  end
669
1516
 
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]
1517
+ # @!attribute [rw] public_access_block_configuration
1518
+ # The `PublicAccessBlock` configuration currently in effect for this
1519
+ # AWS account.
1520
+ # @return [Types::PublicAccessBlockConfiguration]
1521
+ #
1522
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlockOutput AWS API Documentation
1523
+ #
1524
+ class GetPublicAccessBlockOutput < Struct.new(
1525
+ :public_access_block_configuration)
1526
+ SENSITIVE = []
1527
+ include Aws::Structure
1528
+ end
1529
+
1530
+ # @note When making an API call, you may pass GetPublicAccessBlockRequest
1531
+ # data as a hash:
1532
+ #
1533
+ # {
1534
+ # account_id: "AccountId", # required
1535
+ # }
1536
+ #
1537
+ # @!attribute [rw] account_id
1538
+ # The account ID for the AWS account whose `PublicAccessBlock`
1539
+ # configuration you want to retrieve.
1540
+ # @return [String]
1541
+ #
1542
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlockRequest AWS API Documentation
1543
+ #
1544
+ class GetPublicAccessBlockRequest < Struct.new(
1545
+ :account_id)
1546
+ SENSITIVE = []
1547
+ include Aws::Structure
1548
+ end
1549
+
1550
+ # @note When making an API call, you may pass GetStorageLensConfigurationRequest
1551
+ # data as a hash:
1552
+ #
1553
+ # {
1554
+ # config_id: "ConfigId", # required
1555
+ # account_id: "AccountId", # required
1556
+ # }
1557
+ #
1558
+ # @!attribute [rw] config_id
1559
+ # The ID of the Amazon S3 Storage Lens configuration.
1560
+ # @return [String]
1561
+ #
1562
+ # @!attribute [rw] account_id
1563
+ # The account ID of the requester.
1564
+ # @return [String]
1565
+ #
1566
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfigurationRequest AWS API Documentation
1567
+ #
1568
+ class GetStorageLensConfigurationRequest < Struct.new(
1569
+ :config_id,
1570
+ :account_id)
1571
+ SENSITIVE = []
1572
+ include Aws::Structure
1573
+ end
1574
+
1575
+ # @!attribute [rw] storage_lens_configuration
1576
+ # The S3 Storage Lens configuration requested.
1577
+ # @return [Types::StorageLensConfiguration]
674
1578
  #
675
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlockOutput AWS API Documentation
1579
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfigurationResult AWS API Documentation
676
1580
  #
677
- class GetPublicAccessBlockOutput < Struct.new(
678
- :public_access_block_configuration)
1581
+ class GetStorageLensConfigurationResult < Struct.new(
1582
+ :storage_lens_configuration)
679
1583
  SENSITIVE = []
680
1584
  include Aws::Structure
681
1585
  end
682
1586
 
683
- # @note When making an API call, you may pass GetPublicAccessBlockRequest
1587
+ # @note When making an API call, you may pass GetStorageLensConfigurationTaggingRequest
684
1588
  # data as a hash:
685
1589
  #
686
1590
  # {
1591
+ # config_id: "ConfigId", # required
687
1592
  # account_id: "AccountId", # required
688
1593
  # }
689
1594
  #
1595
+ # @!attribute [rw] config_id
1596
+ # The ID of the Amazon S3 Storage Lens configuration.
1597
+ # @return [String]
1598
+ #
690
1599
  # @!attribute [rw] account_id
691
- # The account ID for the Amazon Web Services account whose
692
- # `PublicAccessBlock` configuration you want to retrieve.
1600
+ # The account ID of the requester.
693
1601
  # @return [String]
694
1602
  #
695
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlockRequest AWS API Documentation
1603
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfigurationTaggingRequest AWS API Documentation
696
1604
  #
697
- class GetPublicAccessBlockRequest < Struct.new(
1605
+ class GetStorageLensConfigurationTaggingRequest < Struct.new(
1606
+ :config_id,
698
1607
  :account_id)
699
1608
  SENSITIVE = []
700
1609
  include Aws::Structure
701
1610
  end
702
1611
 
1612
+ # @!attribute [rw] tags
1613
+ # The tags of S3 Storage Lens configuration requested.
1614
+ # @return [Array<Types::StorageLensTag>]
1615
+ #
1616
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfigurationTaggingResult AWS API Documentation
1617
+ #
1618
+ class GetStorageLensConfigurationTaggingResult < Struct.new(
1619
+ :tags)
1620
+ SENSITIVE = []
1621
+ include Aws::Structure
1622
+ end
1623
+
703
1624
  # @!attribute [rw] message
704
1625
  # @return [String]
705
1626
  #
@@ -711,6 +1632,33 @@ module Aws::S3Control
711
1632
  include Aws::Structure
712
1633
  end
713
1634
 
1635
+ # A container for what Amazon S3 Storage Lens configuration includes.
1636
+ #
1637
+ # @note When making an API call, you may pass Include
1638
+ # data as a hash:
1639
+ #
1640
+ # {
1641
+ # buckets: ["S3BucketArnString"],
1642
+ # regions: ["S3AWSRegion"],
1643
+ # }
1644
+ #
1645
+ # @!attribute [rw] buckets
1646
+ # A container for the S3 Storage Lens bucket includes.
1647
+ # @return [Array<String>]
1648
+ #
1649
+ # @!attribute [rw] regions
1650
+ # A container for the S3 Storage Lens Region includes.
1651
+ # @return [Array<String>]
1652
+ #
1653
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/Include AWS API Documentation
1654
+ #
1655
+ class Include < Struct.new(
1656
+ :buckets,
1657
+ :regions)
1658
+ SENSITIVE = []
1659
+ include Aws::Structure
1660
+ end
1661
+
714
1662
  # @!attribute [rw] message
715
1663
  # @return [String]
716
1664
  #
@@ -776,7 +1724,7 @@ module Aws::S3Control
776
1724
  # @return [Types::JobManifest]
777
1725
  #
778
1726
  # @!attribute [rw] operation
779
- # The operation that the specified job is configured to execute on the
1727
+ # The operation that the specified job is configured to run on the
780
1728
  # objects listed in the manifest.
781
1729
  # @return [Types::JobOperation]
782
1730
  #
@@ -785,12 +1733,13 @@ module Aws::S3Control
785
1733
  # @return [Integer]
786
1734
  #
787
1735
  # @!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.
1736
+ # Describes the total number of tasks that the specified job has run,
1737
+ # the number of tasks that succeeded, and the number of tasks that
1738
+ # failed.
791
1739
  # @return [Types::JobProgressSummary]
792
1740
  #
793
1741
  # @!attribute [rw] status_update_reason
1742
+ # The reason for updating the job.
794
1743
  # @return [String]
795
1744
  #
796
1745
  # @!attribute [rw] failure_reasons
@@ -815,7 +1764,7 @@ module Aws::S3Control
815
1764
  #
816
1765
  # @!attribute [rw] role_arn
817
1766
  # The Amazon Resource Name (ARN) for the AWS Identity and Access
818
- # Management (IAM) role assigned to execute the tasks for this job.
1767
+ # Management (IAM) role assigned to run the tasks for this job.
819
1768
  # @return [String]
820
1769
  #
821
1770
  # @!attribute [rw] suspended_date
@@ -886,7 +1835,7 @@ module Aws::S3Control
886
1835
  # @return [String]
887
1836
  #
888
1837
  # @!attribute [rw] operation
889
- # The operation that the specified job is configured to run on each
1838
+ # The operation that the specified job is configured to run on every
890
1839
  # object listed in the manifest.
891
1840
  # @return [String]
892
1841
  #
@@ -909,9 +1858,9 @@ module Aws::S3Control
909
1858
  # @return [Time]
910
1859
  #
911
1860
  # @!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.
1861
+ # Describes the total number of tasks that the specified job has run,
1862
+ # the number of tasks that succeeded, and the number of tasks that
1863
+ # failed.
915
1864
  # @return [Types::JobProgressSummary]
916
1865
  #
917
1866
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/JobListDescriptor AWS API Documentation
@@ -979,6 +1928,14 @@ module Aws::S3Control
979
1928
  #
980
1929
  # @!attribute [rw] object_arn
981
1930
  # The Amazon Resource Name (ARN) for a manifest object.
1931
+ #
1932
+ # Replacement must be made for object keys containing special
1933
+ # characters (such as carriage returns) when using XML requests. For
1934
+ # more information, see [ XML related object key constraints][1].
1935
+ #
1936
+ #
1937
+ #
1938
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints
982
1939
  # @return [String]
983
1940
  #
984
1941
  # @!attribute [rw] object_version_id
@@ -1031,10 +1988,10 @@ module Aws::S3Control
1031
1988
  include Aws::Structure
1032
1989
  end
1033
1990
 
1034
- # The operation that you want this job to perform on each object listed
1991
+ # The operation that you want this job to perform on every object listed
1035
1992
  # in the manifest. For more information about the available operations,
1036
- # see [Available Operations][1] in the *Amazon Simple Storage Service
1037
- # Developer Guide*.
1993
+ # see [Operations][1] in the *Amazon Simple Storage Service Developer
1994
+ # Guide*.
1038
1995
  #
1039
1996
  #
1040
1997
  #
@@ -1122,6 +2079,8 @@ module Aws::S3Control
1122
2079
  # },
1123
2080
  # ],
1124
2081
  # },
2082
+ # s3_delete_object_tagging: {
2083
+ # },
1125
2084
  # s3_initiate_restore_object: {
1126
2085
  # expiration_in_days: 1,
1127
2086
  # glacier_job_tier: "BULK", # accepts BULK, STANDARD
@@ -1131,179 +2090,501 @@ module Aws::S3Control
1131
2090
  # status: "OFF", # required, accepts OFF, ON
1132
2091
  # },
1133
2092
  # },
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
2093
+ # s3_put_object_retention: {
2094
+ # bypass_governance_retention: false,
2095
+ # retention: { # required
2096
+ # retain_until_date: Time.now,
2097
+ # mode: "COMPLIANCE", # accepts COMPLIANCE, GOVERNANCE
2098
+ # },
2099
+ # },
2100
+ # }
2101
+ #
2102
+ # @!attribute [rw] lambda_invoke
2103
+ # Directs the specified job to invoke an AWS Lambda function on every
2104
+ # object in the manifest.
2105
+ # @return [Types::LambdaInvokeOperation]
2106
+ #
2107
+ # @!attribute [rw] s3_put_object_copy
2108
+ # Directs the specified job to run a PUT Copy object call on every
2109
+ # object in the manifest.
2110
+ # @return [Types::S3CopyObjectOperation]
2111
+ #
2112
+ # @!attribute [rw] s3_put_object_acl
2113
+ # Directs the specified job to run a PUT Object acl call on every
2114
+ # object in the manifest.
2115
+ # @return [Types::S3SetObjectAclOperation]
2116
+ #
2117
+ # @!attribute [rw] s3_put_object_tagging
2118
+ # Directs the specified job to run a PUT Object tagging call on every
2119
+ # object in the manifest.
2120
+ # @return [Types::S3SetObjectTaggingOperation]
2121
+ #
2122
+ # @!attribute [rw] s3_delete_object_tagging
2123
+ # Directs the specified job to execute a DELETE Object tagging call on
2124
+ # every object in the manifest.
2125
+ # @return [Types::S3DeleteObjectTaggingOperation]
2126
+ #
2127
+ # @!attribute [rw] s3_initiate_restore_object
2128
+ # Directs the specified job to initiate restore requests for every
2129
+ # archived object in the manifest.
2130
+ # @return [Types::S3InitiateRestoreObjectOperation]
2131
+ #
2132
+ # @!attribute [rw] s3_put_object_legal_hold
2133
+ # Contains the configuration for an S3 Object Lock legal hold
2134
+ # operation that an S3 Batch Operations job passes every object to the
2135
+ # underlying `PutObjectLegalHold` API. For more information, see
2136
+ # [Using S3 Object Lock legal hold with S3 Batch Operations][1] in the
2137
+ # *Amazon Simple Storage Service Developer Guide*.
2138
+ #
2139
+ #
2140
+ #
2141
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-legal-hold.html
2142
+ # @return [Types::S3SetObjectLegalHoldOperation]
2143
+ #
2144
+ # @!attribute [rw] s3_put_object_retention
2145
+ # Contains the configuration parameters for the Object Lock retention
2146
+ # action for an S3 Batch Operations job. Batch Operations passes every
2147
+ # object to the underlying `PutObjectRetention` API. For more
2148
+ # information, see [Using S3 Object Lock retention with S3 Batch
2149
+ # Operations][1] in the *Amazon Simple Storage Service Developer
2150
+ # Guide*.
2151
+ #
2152
+ #
2153
+ #
2154
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html
2155
+ # @return [Types::S3SetObjectRetentionOperation]
2156
+ #
2157
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/JobOperation AWS API Documentation
2158
+ #
2159
+ class JobOperation < Struct.new(
2160
+ :lambda_invoke,
2161
+ :s3_put_object_copy,
2162
+ :s3_put_object_acl,
2163
+ :s3_put_object_tagging,
2164
+ :s3_delete_object_tagging,
2165
+ :s3_initiate_restore_object,
2166
+ :s3_put_object_legal_hold,
2167
+ :s3_put_object_retention)
2168
+ SENSITIVE = []
2169
+ include Aws::Structure
2170
+ end
2171
+
2172
+ # Describes the total number of tasks that the specified job has
2173
+ # started, the number of tasks that succeeded, and the number of tasks
2174
+ # that failed.
2175
+ #
2176
+ # @!attribute [rw] total_number_of_tasks
2177
+ # @return [Integer]
2178
+ #
2179
+ # @!attribute [rw] number_of_tasks_succeeded
2180
+ # @return [Integer]
2181
+ #
2182
+ # @!attribute [rw] number_of_tasks_failed
2183
+ # @return [Integer]
2184
+ #
2185
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/JobProgressSummary AWS API Documentation
2186
+ #
2187
+ class JobProgressSummary < Struct.new(
2188
+ :total_number_of_tasks,
2189
+ :number_of_tasks_succeeded,
2190
+ :number_of_tasks_failed)
2191
+ SENSITIVE = []
2192
+ include Aws::Structure
2193
+ end
2194
+
2195
+ # Contains the configuration parameters for a job-completion report.
2196
+ #
2197
+ # @note When making an API call, you may pass JobReport
2198
+ # data as a hash:
2199
+ #
2200
+ # {
2201
+ # bucket: "S3BucketArnString",
2202
+ # format: "Report_CSV_20180820", # accepts Report_CSV_20180820
2203
+ # enabled: false, # required
2204
+ # prefix: "ReportPrefixString",
2205
+ # report_scope: "AllTasks", # accepts AllTasks, FailedTasksOnly
2206
+ # }
2207
+ #
2208
+ # @!attribute [rw] bucket
2209
+ # The Amazon Resource Name (ARN) for the bucket where specified
2210
+ # job-completion report will be stored.
2211
+ # @return [String]
2212
+ #
2213
+ # @!attribute [rw] format
2214
+ # The format of the specified job-completion report.
2215
+ # @return [String]
2216
+ #
2217
+ # @!attribute [rw] enabled
2218
+ # Indicates whether the specified job will generate a job-completion
2219
+ # report.
2220
+ # @return [Boolean]
2221
+ #
2222
+ # @!attribute [rw] prefix
2223
+ # An optional prefix to describe where in the specified bucket the
2224
+ # job-completion report will be stored. Amazon S3 stores the
2225
+ # job-completion report at `<prefix>/job-<job-id>/report.json`.
2226
+ # @return [String]
2227
+ #
2228
+ # @!attribute [rw] report_scope
2229
+ # Indicates whether the job-completion report will include details of
2230
+ # all tasks or only failed tasks.
2231
+ # @return [String]
2232
+ #
2233
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/JobReport AWS API Documentation
2234
+ #
2235
+ class JobReport < Struct.new(
2236
+ :bucket,
2237
+ :format,
2238
+ :enabled,
2239
+ :prefix,
2240
+ :report_scope)
2241
+ SENSITIVE = []
2242
+ include Aws::Structure
2243
+ end
2244
+
2245
+ # @!attribute [rw] message
2246
+ # @return [String]
2247
+ #
2248
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/JobStatusException AWS API Documentation
2249
+ #
2250
+ class JobStatusException < Struct.new(
2251
+ :message)
2252
+ SENSITIVE = []
2253
+ include Aws::Structure
2254
+ end
2255
+
2256
+ # Contains the configuration parameters for a `Lambda Invoke` operation.
2257
+ #
2258
+ # @note When making an API call, you may pass LambdaInvokeOperation
2259
+ # data as a hash:
2260
+ #
2261
+ # {
2262
+ # function_arn: "FunctionArnString",
2263
+ # }
2264
+ #
2265
+ # @!attribute [rw] function_arn
2266
+ # The Amazon Resource Name (ARN) for the AWS Lambda function that the
2267
+ # specified job will invoke on every object in the manifest.
2268
+ # @return [String]
2269
+ #
2270
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/LambdaInvokeOperation AWS API Documentation
2271
+ #
2272
+ class LambdaInvokeOperation < Struct.new(
2273
+ :function_arn)
2274
+ SENSITIVE = []
2275
+ include Aws::Structure
2276
+ end
2277
+
2278
+ # The container for the Outposts bucket lifecycle configuration.
2279
+ #
2280
+ # @note When making an API call, you may pass LifecycleConfiguration
2281
+ # data as a hash:
2282
+ #
2283
+ # {
2284
+ # rules: [
2285
+ # {
2286
+ # expiration: {
2287
+ # date: Time.now,
2288
+ # days: 1,
2289
+ # expired_object_delete_marker: false,
2290
+ # },
2291
+ # id: "ID",
2292
+ # filter: {
2293
+ # prefix: "Prefix",
2294
+ # tag: {
2295
+ # key: "TagKeyString", # required
2296
+ # value: "TagValueString", # required
2297
+ # },
2298
+ # and: {
2299
+ # prefix: "Prefix",
2300
+ # tags: [
2301
+ # {
2302
+ # key: "TagKeyString", # required
2303
+ # value: "TagValueString", # required
2304
+ # },
2305
+ # ],
2306
+ # },
2307
+ # },
2308
+ # status: "Enabled", # required, accepts Enabled, Disabled
2309
+ # transitions: [
2310
+ # {
2311
+ # date: Time.now,
2312
+ # days: 1,
2313
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
2314
+ # },
2315
+ # ],
2316
+ # noncurrent_version_transitions: [
2317
+ # {
2318
+ # noncurrent_days: 1,
2319
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
2320
+ # },
2321
+ # ],
2322
+ # noncurrent_version_expiration: {
2323
+ # noncurrent_days: 1,
2324
+ # },
2325
+ # abort_incomplete_multipart_upload: {
2326
+ # days_after_initiation: 1,
2327
+ # },
2328
+ # },
2329
+ # ],
2330
+ # }
2331
+ #
2332
+ # @!attribute [rw] rules
2333
+ # A lifecycle rule for individual objects in an Outposts bucket.
2334
+ # @return [Array<Types::LifecycleRule>]
2335
+ #
2336
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/LifecycleConfiguration AWS API Documentation
2337
+ #
2338
+ class LifecycleConfiguration < Struct.new(
2339
+ :rules)
2340
+ SENSITIVE = []
2341
+ include Aws::Structure
2342
+ end
2343
+
2344
+ # The container of the Outposts bucket lifecycle expiration.
2345
+ #
2346
+ # @note When making an API call, you may pass LifecycleExpiration
2347
+ # data as a hash:
2348
+ #
2349
+ # {
2350
+ # date: Time.now,
2351
+ # days: 1,
2352
+ # expired_object_delete_marker: false,
2353
+ # }
2354
+ #
2355
+ # @!attribute [rw] date
2356
+ # Indicates at what date the object is to be deleted. Should be in GMT
2357
+ # ISO 8601 format.
2358
+ # @return [Time]
2359
+ #
2360
+ # @!attribute [rw] days
2361
+ # Indicates the lifetime, in days, of the objects that are subject to
2362
+ # the rule. The value must be a non-zero positive integer.
2363
+ # @return [Integer]
2364
+ #
2365
+ # @!attribute [rw] expired_object_delete_marker
2366
+ # Indicates whether Amazon S3 will remove a delete marker with no
2367
+ # noncurrent versions. If set to true, the delete marker will be
2368
+ # expired. If set to false, the policy takes no action. This cannot be
2369
+ # specified with Days or Date in a Lifecycle Expiration Policy.
2370
+ # @return [Boolean]
2371
+ #
2372
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/LifecycleExpiration AWS API Documentation
2373
+ #
2374
+ class LifecycleExpiration < Struct.new(
2375
+ :date,
2376
+ :days,
2377
+ :expired_object_delete_marker)
2378
+ SENSITIVE = []
2379
+ include Aws::Structure
2380
+ end
2381
+
2382
+ # The container for the Outposts bucket lifecycle rule.
2383
+ #
2384
+ # @note When making an API call, you may pass LifecycleRule
2385
+ # data as a hash:
2386
+ #
2387
+ # {
2388
+ # expiration: {
2389
+ # date: Time.now,
2390
+ # days: 1,
2391
+ # expired_object_delete_marker: false,
2392
+ # },
2393
+ # id: "ID",
2394
+ # filter: {
2395
+ # prefix: "Prefix",
2396
+ # tag: {
2397
+ # key: "TagKeyString", # required
2398
+ # value: "TagValueString", # required
2399
+ # },
2400
+ # and: {
2401
+ # prefix: "Prefix",
2402
+ # tags: [
2403
+ # {
2404
+ # key: "TagKeyString", # required
2405
+ # value: "TagValueString", # required
2406
+ # },
2407
+ # ],
2408
+ # },
2409
+ # },
2410
+ # status: "Enabled", # required, accepts Enabled, Disabled
2411
+ # transitions: [
2412
+ # {
2413
+ # date: Time.now,
2414
+ # days: 1,
2415
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
2416
+ # },
2417
+ # ],
2418
+ # noncurrent_version_transitions: [
2419
+ # {
2420
+ # noncurrent_days: 1,
2421
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
1139
2422
  # },
2423
+ # ],
2424
+ # noncurrent_version_expiration: {
2425
+ # noncurrent_days: 1,
2426
+ # },
2427
+ # abort_incomplete_multipart_upload: {
2428
+ # days_after_initiation: 1,
1140
2429
  # },
1141
2430
  # }
1142
2431
  #
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]
2432
+ # @!attribute [rw] expiration
2433
+ # Specifies the expiration for the lifecycle of the object in the form
2434
+ # of date, days and, whether the object has a delete marker.
2435
+ # @return [Types::LifecycleExpiration]
1152
2436
  #
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]
2437
+ # @!attribute [rw] id
2438
+ # Unique identifier for the rule. The value cannot be longer than 255
2439
+ # characters.
2440
+ # @return [String]
1157
2441
  #
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]
2442
+ # @!attribute [rw] filter
2443
+ # The container for the filter of lifecycle rule.
2444
+ # @return [Types::LifecycleRuleFilter]
1162
2445
  #
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]
2446
+ # @!attribute [rw] status
2447
+ # If 'Enabled', the rule is currently being applied. If
2448
+ # 'Disabled', the rule is not currently being applied.
2449
+ # @return [String]
1167
2450
  #
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].
2451
+ # @!attribute [rw] transitions
2452
+ # Specifies when an Amazon S3 object transitions to a specified
2453
+ # storage class.
1173
2454
  #
2455
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
1174
2456
  #
2457
+ # </note>
2458
+ # @return [Array<Types::Transition>]
1175
2459
  #
1176
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.htmll#object-lock-legal-holds
1177
- # @return [Types::S3SetObjectLegalHoldOperation]
2460
+ # @!attribute [rw] noncurrent_version_transitions
2461
+ # Specifies the transition rule for the lifecycle rule that describes
2462
+ # when noncurrent objects transition to a specific storage class. If
2463
+ # your bucket is versioning-enabled (or versioning is suspended), you
2464
+ # can set this action to request that Amazon S3 transition noncurrent
2465
+ # object versions to a specific storage class at a set period in the
2466
+ # object's lifetime.
1178
2467
  #
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].
2468
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
1184
2469
  #
2470
+ # </note>
2471
+ # @return [Array<Types::NoncurrentVersionTransition>]
1185
2472
  #
2473
+ # @!attribute [rw] noncurrent_version_expiration
2474
+ # The noncurrent version expiration of the lifecycle rule.
1186
2475
  #
1187
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes
1188
- # @return [Types::S3SetObjectRetentionOperation]
2476
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
1189
2477
  #
1190
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/JobOperation AWS API Documentation
2478
+ # </note>
2479
+ # @return [Types::NoncurrentVersionExpiration]
1191
2480
  #
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.
2481
+ # @!attribute [rw] abort_incomplete_multipart_upload
2482
+ # Specifies the days since the initiation of an incomplete multipart
2483
+ # upload that Amazon S3 waits before permanently removing all parts of
2484
+ # the upload. For more information, see [ Aborting Incomplete
2485
+ # Multipart Uploads Using a Bucket Lifecycle Policy][1] in the *Amazon
2486
+ # Simple Storage Service Developer Guide*.
1207
2487
  #
1208
- # @!attribute [rw] total_number_of_tasks
1209
- # @return [Integer]
1210
2488
  #
1211
- # @!attribute [rw] number_of_tasks_succeeded
1212
- # @return [Integer]
1213
2489
  #
1214
- # @!attribute [rw] number_of_tasks_failed
1215
- # @return [Integer]
2490
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config
2491
+ # @return [Types::AbortIncompleteMultipartUpload]
1216
2492
  #
1217
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/JobProgressSummary AWS API Documentation
2493
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/LifecycleRule AWS API Documentation
1218
2494
  #
1219
- class JobProgressSummary < Struct.new(
1220
- :total_number_of_tasks,
1221
- :number_of_tasks_succeeded,
1222
- :number_of_tasks_failed)
2495
+ class LifecycleRule < Struct.new(
2496
+ :expiration,
2497
+ :id,
2498
+ :filter,
2499
+ :status,
2500
+ :transitions,
2501
+ :noncurrent_version_transitions,
2502
+ :noncurrent_version_expiration,
2503
+ :abort_incomplete_multipart_upload)
1223
2504
  SENSITIVE = []
1224
2505
  include Aws::Structure
1225
2506
  end
1226
2507
 
1227
- # Contains the configuration parameters for a job-completion report.
2508
+ # The container for the Outposts bucket lifecycle rule and operator.
1228
2509
  #
1229
- # @note When making an API call, you may pass JobReport
2510
+ # @note When making an API call, you may pass LifecycleRuleAndOperator
1230
2511
  # data as a hash:
1231
2512
  #
1232
2513
  # {
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
2514
+ # prefix: "Prefix",
2515
+ # tags: [
2516
+ # {
2517
+ # key: "TagKeyString", # required
2518
+ # value: "TagValueString", # required
2519
+ # },
2520
+ # ],
1238
2521
  # }
1239
2522
  #
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
2523
  # @!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.
2524
+ # Prefix identifying one or more objects to which the rule applies.
1259
2525
  # @return [String]
1260
2526
  #
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]
2527
+ # @!attribute [rw] tags
2528
+ # All of these tags must exist in the object's tag set in order for
2529
+ # the rule to apply.
2530
+ # @return [Array<Types::S3Tag>]
1265
2531
  #
1266
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/JobReport AWS API Documentation
2532
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/LifecycleRuleAndOperator AWS API Documentation
1267
2533
  #
1268
- class JobReport < Struct.new(
1269
- :bucket,
1270
- :format,
1271
- :enabled,
2534
+ class LifecycleRuleAndOperator < Struct.new(
1272
2535
  :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)
2536
+ :tags)
1285
2537
  SENSITIVE = []
1286
2538
  include Aws::Structure
1287
2539
  end
1288
2540
 
1289
- # Contains the configuration parameters for a `Lambda Invoke` operation.
2541
+ # The container for the filter of the lifecycle rule.
1290
2542
  #
1291
- # @note When making an API call, you may pass LambdaInvokeOperation
2543
+ # @note When making an API call, you may pass LifecycleRuleFilter
1292
2544
  # data as a hash:
1293
2545
  #
1294
2546
  # {
1295
- # function_arn: "FunctionArnString",
2547
+ # prefix: "Prefix",
2548
+ # tag: {
2549
+ # key: "TagKeyString", # required
2550
+ # value: "TagValueString", # required
2551
+ # },
2552
+ # and: {
2553
+ # prefix: "Prefix",
2554
+ # tags: [
2555
+ # {
2556
+ # key: "TagKeyString", # required
2557
+ # value: "TagValueString", # required
2558
+ # },
2559
+ # ],
2560
+ # },
1296
2561
  # }
1297
2562
  #
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.
2563
+ # @!attribute [rw] prefix
2564
+ # Prefix identifying one or more objects to which the rule applies.
2565
+ #
2566
+ # Replacement must be made for object keys containing special
2567
+ # characters (such as carriage returns) when using XML requests. For
2568
+ # more information, see [ XML related object key constraints][1].
2569
+ #
2570
+ #
2571
+ #
2572
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints
1301
2573
  # @return [String]
1302
2574
  #
1303
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/LambdaInvokeOperation AWS API Documentation
2575
+ # @!attribute [rw] tag
2576
+ # @return [Types::S3Tag]
1304
2577
  #
1305
- class LambdaInvokeOperation < Struct.new(
1306
- :function_arn)
2578
+ # @!attribute [rw] and
2579
+ # The container for the `AND` condition for the lifecycle rule.
2580
+ # @return [Types::LifecycleRuleAndOperator]
2581
+ #
2582
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/LifecycleRuleFilter AWS API Documentation
2583
+ #
2584
+ class LifecycleRuleFilter < Struct.new(
2585
+ :prefix,
2586
+ :tag,
2587
+ :and)
1307
2588
  SENSITIVE = []
1308
2589
  include Aws::Structure
1309
2590
  end
@@ -1326,6 +2607,18 @@ module Aws::S3Control
1326
2607
  # @!attribute [rw] bucket
1327
2608
  # The name of the bucket whose associated access points you want to
1328
2609
  # list.
2610
+ #
2611
+ # For using this parameter with Amazon S3 on Outposts with the REST
2612
+ # API, you must specify the name and the x-amz-outpost-id as well.
2613
+ #
2614
+ # For using this parameter with S3 on Outposts with the AWS SDK and
2615
+ # CLI, you must specify the ARN of the bucket accessed in the format
2616
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
2617
+ # For example, to access the bucket `reports` through outpost
2618
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
2619
+ # use the URL encoding of
2620
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
2621
+ # The value must be URL encoded.
1329
2622
  # @return [String]
1330
2623
  #
1331
2624
  # @!attribute [rw] next_token
@@ -1361,9 +2654,9 @@ module Aws::S3Control
1361
2654
  #
1362
2655
  # @!attribute [rw] next_token
1363
2656
  # 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.
2657
+ # in one call to this API, this field contains a continuation token
2658
+ # that you can provide in subsequent calls to this API to retrieve
2659
+ # additional access points.
1367
2660
  # @return [String]
1368
2661
  #
1369
2662
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPointsResult AWS API Documentation
@@ -1437,17 +2730,218 @@ module Aws::S3Control
1437
2730
  include Aws::Structure
1438
2731
  end
1439
2732
 
1440
- # Amazon S3 throws this exception if you make a `GetPublicAccessBlock`
1441
- # request against an account that doesn't have a
1442
- # `PublicAccessBlockConfiguration` set.
2733
+ # @note When making an API call, you may pass ListRegionalBucketsRequest
2734
+ # data as a hash:
2735
+ #
2736
+ # {
2737
+ # account_id: "AccountId", # required
2738
+ # next_token: "NonEmptyMaxLength1024String",
2739
+ # max_results: 1,
2740
+ # outpost_id: "NonEmptyMaxLength64String",
2741
+ # }
2742
+ #
2743
+ # @!attribute [rw] account_id
2744
+ # The AWS account ID of the Outposts bucket.
2745
+ # @return [String]
2746
+ #
2747
+ # @!attribute [rw] next_token
2748
+ # @return [String]
2749
+ #
2750
+ # @!attribute [rw] max_results
2751
+ # @return [Integer]
2752
+ #
2753
+ # @!attribute [rw] outpost_id
2754
+ # The ID of the AWS Outposts.
2755
+ #
2756
+ # <note markdown="1"> This is required by Amazon S3 on Outposts buckets.
2757
+ #
2758
+ # </note>
2759
+ # @return [String]
2760
+ #
2761
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListRegionalBucketsRequest AWS API Documentation
2762
+ #
2763
+ class ListRegionalBucketsRequest < Struct.new(
2764
+ :account_id,
2765
+ :next_token,
2766
+ :max_results,
2767
+ :outpost_id)
2768
+ SENSITIVE = []
2769
+ include Aws::Structure
2770
+ end
2771
+
2772
+ # @!attribute [rw] regional_bucket_list
2773
+ # @return [Array<Types::RegionalBucket>]
2774
+ #
2775
+ # @!attribute [rw] next_token
2776
+ # `NextToken` is sent when `isTruncated` is true, which means there
2777
+ # are more buckets that can be listed. The next list requests to
2778
+ # Amazon S3 can be continued with this `NextToken`. `NextToken` is
2779
+ # obfuscated and is not a real key.
2780
+ # @return [String]
2781
+ #
2782
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListRegionalBucketsResult AWS API Documentation
2783
+ #
2784
+ class ListRegionalBucketsResult < Struct.new(
2785
+ :regional_bucket_list,
2786
+ :next_token)
2787
+ SENSITIVE = []
2788
+ include Aws::Structure
2789
+ end
2790
+
2791
+ # Part of `ListStorageLensConfigurationResult`. Each entry includes the
2792
+ # description of the S3 Storage Lens configuration, its home Region,
2793
+ # whether it is enabled, its Amazon Resource Name (ARN), and config ID.
2794
+ #
2795
+ # @!attribute [rw] id
2796
+ # A container for the S3 Storage Lens configuration ID.
2797
+ # @return [String]
2798
+ #
2799
+ # @!attribute [rw] storage_lens_arn
2800
+ # The ARN of the S3 Storage Lens configuration. This property is
2801
+ # read-only.
2802
+ # @return [String]
2803
+ #
2804
+ # @!attribute [rw] home_region
2805
+ # A container for the S3 Storage Lens home Region. Your metrics data
2806
+ # is stored and retained in your designated S3 Storage Lens home
2807
+ # Region.
2808
+ # @return [String]
2809
+ #
2810
+ # @!attribute [rw] is_enabled
2811
+ # A container for whether the S3 Storage Lens configuration is
2812
+ # enabled. This property is required.
2813
+ # @return [Boolean]
2814
+ #
2815
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListStorageLensConfigurationEntry AWS API Documentation
2816
+ #
2817
+ class ListStorageLensConfigurationEntry < Struct.new(
2818
+ :id,
2819
+ :storage_lens_arn,
2820
+ :home_region,
2821
+ :is_enabled)
2822
+ SENSITIVE = []
2823
+ include Aws::Structure
2824
+ end
2825
+
2826
+ # @note When making an API call, you may pass ListStorageLensConfigurationsRequest
2827
+ # data as a hash:
2828
+ #
2829
+ # {
2830
+ # account_id: "AccountId", # required
2831
+ # next_token: "ContinuationToken",
2832
+ # }
2833
+ #
2834
+ # @!attribute [rw] account_id
2835
+ # The account ID of the requester.
2836
+ # @return [String]
2837
+ #
2838
+ # @!attribute [rw] next_token
2839
+ # A pagination token to request the next page of results.
2840
+ # @return [String]
2841
+ #
2842
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListStorageLensConfigurationsRequest AWS API Documentation
2843
+ #
2844
+ class ListStorageLensConfigurationsRequest < Struct.new(
2845
+ :account_id,
2846
+ :next_token)
2847
+ SENSITIVE = []
2848
+ include Aws::Structure
2849
+ end
2850
+
2851
+ # @!attribute [rw] next_token
2852
+ # If the request produced more than the maximum number of S3 Storage
2853
+ # Lens configuration results, you can pass this value into a
2854
+ # subsequent request to retrieve the next page of results.
2855
+ # @return [String]
2856
+ #
2857
+ # @!attribute [rw] storage_lens_configuration_list
2858
+ # A list of S3 Storage Lens configurations.
2859
+ # @return [Array<Types::ListStorageLensConfigurationEntry>]
2860
+ #
2861
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListStorageLensConfigurationsResult AWS API Documentation
2862
+ #
2863
+ class ListStorageLensConfigurationsResult < Struct.new(
2864
+ :next_token,
2865
+ :storage_lens_configuration_list)
2866
+ SENSITIVE = []
2867
+ include Aws::Structure
2868
+ end
2869
+
2870
+ # Amazon S3 throws this exception if you make a `GetPublicAccessBlock`
2871
+ # request against an account that doesn't have a
2872
+ # `PublicAccessBlockConfiguration` set.
2873
+ #
2874
+ # @!attribute [rw] message
2875
+ # @return [String]
2876
+ #
2877
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/NoSuchPublicAccessBlockConfiguration AWS API Documentation
2878
+ #
2879
+ class NoSuchPublicAccessBlockConfiguration < Struct.new(
2880
+ :message)
2881
+ SENSITIVE = []
2882
+ include Aws::Structure
2883
+ end
2884
+
2885
+ # The container of the noncurrent version expiration.
2886
+ #
2887
+ # @note When making an API call, you may pass NoncurrentVersionExpiration
2888
+ # data as a hash:
2889
+ #
2890
+ # {
2891
+ # noncurrent_days: 1,
2892
+ # }
2893
+ #
2894
+ # @!attribute [rw] noncurrent_days
2895
+ # Specifies the number of days an object is noncurrent before Amazon
2896
+ # S3 can perform the associated action. For information about the
2897
+ # noncurrent days calculations, see [How Amazon S3 Calculates When an
2898
+ # Object Became Noncurrent][1] in the *Amazon Simple Storage Service
2899
+ # Developer Guide*.
2900
+ #
2901
+ #
2902
+ #
2903
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations
2904
+ # @return [Integer]
2905
+ #
2906
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/NoncurrentVersionExpiration AWS API Documentation
2907
+ #
2908
+ class NoncurrentVersionExpiration < Struct.new(
2909
+ :noncurrent_days)
2910
+ SENSITIVE = []
2911
+ include Aws::Structure
2912
+ end
2913
+
2914
+ # The container for the noncurrent version transition.
1443
2915
  #
1444
- # @!attribute [rw] message
2916
+ # @note When making an API call, you may pass NoncurrentVersionTransition
2917
+ # data as a hash:
2918
+ #
2919
+ # {
2920
+ # noncurrent_days: 1,
2921
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
2922
+ # }
2923
+ #
2924
+ # @!attribute [rw] noncurrent_days
2925
+ # Specifies the number of days an object is noncurrent before Amazon
2926
+ # S3 can perform the associated action. For information about the
2927
+ # noncurrent days calculations, see [ How Amazon S3 Calculates How
2928
+ # Long an Object Has Been Noncurrent][1] in the *Amazon Simple Storage
2929
+ # Service Developer Guide*.
2930
+ #
2931
+ #
2932
+ #
2933
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations
2934
+ # @return [Integer]
2935
+ #
2936
+ # @!attribute [rw] storage_class
2937
+ # The class of storage used to store the object.
1445
2938
  # @return [String]
1446
2939
  #
1447
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/NoSuchPublicAccessBlockConfiguration AWS API Documentation
2940
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/NoncurrentVersionTransition AWS API Documentation
1448
2941
  #
1449
- class NoSuchPublicAccessBlockConfiguration < Struct.new(
1450
- :message)
2942
+ class NoncurrentVersionTransition < Struct.new(
2943
+ :noncurrent_days,
2944
+ :storage_class)
1451
2945
  SENSITIVE = []
1452
2946
  include Aws::Structure
1453
2947
  end
@@ -1483,11 +2977,72 @@ module Aws::S3Control
1483
2977
  include Aws::Structure
1484
2978
  end
1485
2979
 
2980
+ # A container for the prefix-level configuration.
2981
+ #
2982
+ # @note When making an API call, you may pass PrefixLevel
2983
+ # data as a hash:
2984
+ #
2985
+ # {
2986
+ # storage_metrics: { # required
2987
+ # is_enabled: false,
2988
+ # selection_criteria: {
2989
+ # delimiter: "StorageLensPrefixLevelDelimiter",
2990
+ # max_depth: 1,
2991
+ # min_storage_bytes_percentage: 1.0,
2992
+ # },
2993
+ # },
2994
+ # }
2995
+ #
2996
+ # @!attribute [rw] storage_metrics
2997
+ # A container for the prefix-level storage metrics for S3 Storage
2998
+ # Lens.
2999
+ # @return [Types::PrefixLevelStorageMetrics]
3000
+ #
3001
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PrefixLevel AWS API Documentation
3002
+ #
3003
+ class PrefixLevel < Struct.new(
3004
+ :storage_metrics)
3005
+ SENSITIVE = []
3006
+ include Aws::Structure
3007
+ end
3008
+
3009
+ # A container for the prefix-level storage metrics for S3 Storage Lens.
3010
+ #
3011
+ # @note When making an API call, you may pass PrefixLevelStorageMetrics
3012
+ # data as a hash:
3013
+ #
3014
+ # {
3015
+ # is_enabled: false,
3016
+ # selection_criteria: {
3017
+ # delimiter: "StorageLensPrefixLevelDelimiter",
3018
+ # max_depth: 1,
3019
+ # min_storage_bytes_percentage: 1.0,
3020
+ # },
3021
+ # }
3022
+ #
3023
+ # @!attribute [rw] is_enabled
3024
+ # A container for whether prefix-level storage metrics are enabled.
3025
+ # @return [Boolean]
3026
+ #
3027
+ # @!attribute [rw] selection_criteria
3028
+ # @return [Types::SelectionCriteria]
3029
+ #
3030
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PrefixLevelStorageMetrics AWS API Documentation
3031
+ #
3032
+ class PrefixLevelStorageMetrics < Struct.new(
3033
+ :is_enabled,
3034
+ :selection_criteria)
3035
+ SENSITIVE = []
3036
+ include Aws::Structure
3037
+ end
3038
+
1486
3039
  # The `PublicAccessBlock` configuration that you want to apply to this
1487
- # Amazon S3 bucket. You can enable the configuration options in any
3040
+ # Amazon S3 account. You can enable the configuration options in any
1488
3041
  # combination. For more information about when Amazon S3 considers a
1489
3042
  # bucket or object public, see [The Meaning of "Public"][1] in the
1490
- # Amazon Simple Storage Service Developer Guide.
3043
+ # *Amazon Simple Storage Service Developer Guide*.
3044
+ #
3045
+ # This is not supported for Amazon S3 on Outposts.
1491
3046
  #
1492
3047
  #
1493
3048
  #
@@ -1516,6 +3071,8 @@ module Aws::S3Control
1516
3071
  # * PUT Bucket calls fail if the request includes a public ACL.
1517
3072
  #
1518
3073
  # Enabling this setting doesn't affect existing policies or ACLs.
3074
+ #
3075
+ # This is not supported for Amazon S3 on Outposts.
1519
3076
  # @return [Boolean]
1520
3077
  #
1521
3078
  # @!attribute [rw] ignore_public_acls
@@ -1526,6 +3083,8 @@ module Aws::S3Control
1526
3083
  #
1527
3084
  # Enabling this setting doesn't affect the persistence of any
1528
3085
  # existing ACLs and doesn't prevent new public ACLs from being set.
3086
+ #
3087
+ # This is not supported for Amazon S3 on Outposts.
1529
3088
  # @return [Boolean]
1530
3089
  #
1531
3090
  # @!attribute [rw] block_public_policy
@@ -1535,18 +3094,22 @@ module Aws::S3Control
1535
3094
  # bucket policy allows public access.
1536
3095
  #
1537
3096
  # Enabling this setting doesn't affect existing bucket policies.
3097
+ #
3098
+ # This is not supported for Amazon S3 on Outposts.
1538
3099
  # @return [Boolean]
1539
3100
  #
1540
3101
  # @!attribute [rw] restrict_public_buckets
1541
3102
  # Specifies whether Amazon S3 should restrict public bucket policies
1542
3103
  # 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.
3104
+ # restricts access to buckets with public policies to only AWS service
3105
+ # principals and authorized users within this account.
1545
3106
  #
1546
3107
  # Enabling this setting doesn't affect previously stored bucket
1547
3108
  # policies, except that public and cross-account access within any
1548
3109
  # public bucket policy, including non-public delegation to specific
1549
3110
  # accounts, is blocked.
3111
+ #
3112
+ # This is not supported for Amazon S3 on Outposts.
1550
3113
  # @return [Boolean]
1551
3114
  #
1552
3115
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PublicAccessBlockConfiguration AWS API Documentation
@@ -1577,12 +3140,25 @@ module Aws::S3Control
1577
3140
  # @!attribute [rw] name
1578
3141
  # The name of the access point that you want to associate with the
1579
3142
  # specified policy.
3143
+ #
3144
+ # For using this parameter with Amazon S3 on Outposts with the REST
3145
+ # API, you must specify the name and the x-amz-outpost-id as well.
3146
+ #
3147
+ # For using this parameter with S3 on Outposts with the AWS SDK and
3148
+ # CLI, you must specify the ARN of the access point accessed in the
3149
+ # format
3150
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>`.
3151
+ # For example, to access the access point `reports-ap` through outpost
3152
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
3153
+ # use the URL encoding of
3154
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap`.
3155
+ # The value must be URL encoded.
1580
3156
  # @return [String]
1581
3157
  #
1582
3158
  # @!attribute [rw] policy
1583
3159
  # 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
3160
+ # more information about access point policies, see [Managing data
3161
+ # access with Amazon S3 Access Points][1] in the *Amazon Simple
1586
3162
  # Storage Service Developer Guide*.
1587
3163
  #
1588
3164
  #
@@ -1600,6 +3176,187 @@ module Aws::S3Control
1600
3176
  include Aws::Structure
1601
3177
  end
1602
3178
 
3179
+ # @note When making an API call, you may pass PutBucketLifecycleConfigurationRequest
3180
+ # data as a hash:
3181
+ #
3182
+ # {
3183
+ # account_id: "AccountId", # required
3184
+ # bucket: "BucketName", # required
3185
+ # lifecycle_configuration: {
3186
+ # rules: [
3187
+ # {
3188
+ # expiration: {
3189
+ # date: Time.now,
3190
+ # days: 1,
3191
+ # expired_object_delete_marker: false,
3192
+ # },
3193
+ # id: "ID",
3194
+ # filter: {
3195
+ # prefix: "Prefix",
3196
+ # tag: {
3197
+ # key: "TagKeyString", # required
3198
+ # value: "TagValueString", # required
3199
+ # },
3200
+ # and: {
3201
+ # prefix: "Prefix",
3202
+ # tags: [
3203
+ # {
3204
+ # key: "TagKeyString", # required
3205
+ # value: "TagValueString", # required
3206
+ # },
3207
+ # ],
3208
+ # },
3209
+ # },
3210
+ # status: "Enabled", # required, accepts Enabled, Disabled
3211
+ # transitions: [
3212
+ # {
3213
+ # date: Time.now,
3214
+ # days: 1,
3215
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
3216
+ # },
3217
+ # ],
3218
+ # noncurrent_version_transitions: [
3219
+ # {
3220
+ # noncurrent_days: 1,
3221
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
3222
+ # },
3223
+ # ],
3224
+ # noncurrent_version_expiration: {
3225
+ # noncurrent_days: 1,
3226
+ # },
3227
+ # abort_incomplete_multipart_upload: {
3228
+ # days_after_initiation: 1,
3229
+ # },
3230
+ # },
3231
+ # ],
3232
+ # },
3233
+ # }
3234
+ #
3235
+ # @!attribute [rw] account_id
3236
+ # The AWS account ID of the Outposts bucket.
3237
+ # @return [String]
3238
+ #
3239
+ # @!attribute [rw] bucket
3240
+ # The name of the bucket for which to set the configuration.
3241
+ # @return [String]
3242
+ #
3243
+ # @!attribute [rw] lifecycle_configuration
3244
+ # Container for lifecycle rules. You can add as many as 1,000 rules.
3245
+ # @return [Types::LifecycleConfiguration]
3246
+ #
3247
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketLifecycleConfigurationRequest AWS API Documentation
3248
+ #
3249
+ class PutBucketLifecycleConfigurationRequest < Struct.new(
3250
+ :account_id,
3251
+ :bucket,
3252
+ :lifecycle_configuration)
3253
+ SENSITIVE = []
3254
+ include Aws::Structure
3255
+ end
3256
+
3257
+ # @note When making an API call, you may pass PutBucketPolicyRequest
3258
+ # data as a hash:
3259
+ #
3260
+ # {
3261
+ # account_id: "AccountId", # required
3262
+ # bucket: "BucketName", # required
3263
+ # confirm_remove_self_bucket_access: false,
3264
+ # policy: "Policy", # required
3265
+ # }
3266
+ #
3267
+ # @!attribute [rw] account_id
3268
+ # The AWS account ID of the Outposts bucket.
3269
+ # @return [String]
3270
+ #
3271
+ # @!attribute [rw] bucket
3272
+ # Specifies the bucket.
3273
+ #
3274
+ # For using this parameter with Amazon S3 on Outposts with the REST
3275
+ # API, you must specify the name and the x-amz-outpost-id as well.
3276
+ #
3277
+ # For using this parameter with S3 on Outposts with the AWS SDK and
3278
+ # CLI, you must specify the ARN of the bucket accessed in the format
3279
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
3280
+ # For example, to access the bucket `reports` through outpost
3281
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
3282
+ # use the URL encoding of
3283
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
3284
+ # The value must be URL encoded.
3285
+ # @return [String]
3286
+ #
3287
+ # @!attribute [rw] confirm_remove_self_bucket_access
3288
+ # Set this parameter to true to confirm that you want to remove your
3289
+ # permissions to change this bucket policy in the future.
3290
+ #
3291
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
3292
+ #
3293
+ # </note>
3294
+ # @return [Boolean]
3295
+ #
3296
+ # @!attribute [rw] policy
3297
+ # The bucket policy as a JSON document.
3298
+ # @return [String]
3299
+ #
3300
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketPolicyRequest AWS API Documentation
3301
+ #
3302
+ class PutBucketPolicyRequest < Struct.new(
3303
+ :account_id,
3304
+ :bucket,
3305
+ :confirm_remove_self_bucket_access,
3306
+ :policy)
3307
+ SENSITIVE = []
3308
+ include Aws::Structure
3309
+ end
3310
+
3311
+ # @note When making an API call, you may pass PutBucketTaggingRequest
3312
+ # data as a hash:
3313
+ #
3314
+ # {
3315
+ # account_id: "AccountId", # required
3316
+ # bucket: "BucketName", # required
3317
+ # tagging: { # required
3318
+ # tag_set: [ # required
3319
+ # {
3320
+ # key: "TagKeyString", # required
3321
+ # value: "TagValueString", # required
3322
+ # },
3323
+ # ],
3324
+ # },
3325
+ # }
3326
+ #
3327
+ # @!attribute [rw] account_id
3328
+ # The AWS account ID of the Outposts bucket.
3329
+ # @return [String]
3330
+ #
3331
+ # @!attribute [rw] bucket
3332
+ # The Amazon Resource Name (ARN) of the bucket.
3333
+ #
3334
+ # For using this parameter with Amazon S3 on Outposts with the REST
3335
+ # API, you must specify the name and the x-amz-outpost-id as well.
3336
+ #
3337
+ # For using this parameter with S3 on Outposts with the AWS SDK and
3338
+ # CLI, you must specify the ARN of the bucket accessed in the format
3339
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
3340
+ # For example, to access the bucket `reports` through outpost
3341
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
3342
+ # use the URL encoding of
3343
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
3344
+ # The value must be URL encoded.
3345
+ # @return [String]
3346
+ #
3347
+ # @!attribute [rw] tagging
3348
+ # @return [Types::Tagging]
3349
+ #
3350
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketTaggingRequest AWS API Documentation
3351
+ #
3352
+ class PutBucketTaggingRequest < Struct.new(
3353
+ :account_id,
3354
+ :bucket,
3355
+ :tagging)
3356
+ SENSITIVE = []
3357
+ include Aws::Structure
3358
+ end
3359
+
1603
3360
  # @note When making an API call, you may pass PutJobTaggingRequest
1604
3361
  # data as a hash:
1605
3362
  #
@@ -1615,62 +3372,233 @@ module Aws::S3Control
1615
3372
  # }
1616
3373
  #
1617
3374
  # @!attribute [rw] account_id
1618
- # The AWS account ID associated with the Amazon S3 Batch Operations
1619
- # job.
3375
+ # The AWS account ID associated with the S3 Batch Operations job.
1620
3376
  # @return [String]
1621
3377
  #
1622
3378
  # @!attribute [rw] job_id
1623
- # The ID for the Amazon S3 Batch Operations job whose tags you want to
3379
+ # The ID for the S3 Batch Operations job whose tags you want to
1624
3380
  # replace.
1625
3381
  # @return [String]
1626
3382
  #
1627
3383
  # @!attribute [rw] tags
1628
- # The set of tags to associate with the Amazon S3 Batch Operations
1629
- # job.
3384
+ # The set of tags to associate with the S3 Batch Operations job.
1630
3385
  # @return [Array<Types::S3Tag>]
1631
3386
  #
1632
3387
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutJobTaggingRequest AWS API Documentation
1633
3388
  #
1634
- class PutJobTaggingRequest < Struct.new(
3389
+ class PutJobTaggingRequest < Struct.new(
3390
+ :account_id,
3391
+ :job_id,
3392
+ :tags)
3393
+ SENSITIVE = []
3394
+ include Aws::Structure
3395
+ end
3396
+
3397
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutJobTaggingResult AWS API Documentation
3398
+ #
3399
+ class PutJobTaggingResult < Aws::EmptyStructure; end
3400
+
3401
+ # @note When making an API call, you may pass PutPublicAccessBlockRequest
3402
+ # data as a hash:
3403
+ #
3404
+ # {
3405
+ # public_access_block_configuration: { # required
3406
+ # block_public_acls: false,
3407
+ # ignore_public_acls: false,
3408
+ # block_public_policy: false,
3409
+ # restrict_public_buckets: false,
3410
+ # },
3411
+ # account_id: "AccountId", # required
3412
+ # }
3413
+ #
3414
+ # @!attribute [rw] public_access_block_configuration
3415
+ # The `PublicAccessBlock` configuration that you want to apply to the
3416
+ # specified AWS account.
3417
+ # @return [Types::PublicAccessBlockConfiguration]
3418
+ #
3419
+ # @!attribute [rw] account_id
3420
+ # The account ID for the AWS account whose `PublicAccessBlock`
3421
+ # configuration you want to set.
3422
+ # @return [String]
3423
+ #
3424
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutPublicAccessBlockRequest AWS API Documentation
3425
+ #
3426
+ class PutPublicAccessBlockRequest < Struct.new(
3427
+ :public_access_block_configuration,
3428
+ :account_id)
3429
+ SENSITIVE = []
3430
+ include Aws::Structure
3431
+ end
3432
+
3433
+ # @note When making an API call, you may pass PutStorageLensConfigurationRequest
3434
+ # data as a hash:
3435
+ #
3436
+ # {
3437
+ # config_id: "ConfigId", # required
3438
+ # account_id: "AccountId", # required
3439
+ # storage_lens_configuration: { # required
3440
+ # id: "ConfigId", # required
3441
+ # account_level: { # required
3442
+ # activity_metrics: {
3443
+ # is_enabled: false,
3444
+ # },
3445
+ # bucket_level: { # required
3446
+ # activity_metrics: {
3447
+ # is_enabled: false,
3448
+ # },
3449
+ # prefix_level: {
3450
+ # storage_metrics: { # required
3451
+ # is_enabled: false,
3452
+ # selection_criteria: {
3453
+ # delimiter: "StorageLensPrefixLevelDelimiter",
3454
+ # max_depth: 1,
3455
+ # min_storage_bytes_percentage: 1.0,
3456
+ # },
3457
+ # },
3458
+ # },
3459
+ # },
3460
+ # },
3461
+ # include: {
3462
+ # buckets: ["S3BucketArnString"],
3463
+ # regions: ["S3AWSRegion"],
3464
+ # },
3465
+ # exclude: {
3466
+ # buckets: ["S3BucketArnString"],
3467
+ # regions: ["S3AWSRegion"],
3468
+ # },
3469
+ # data_export: {
3470
+ # s3_bucket_destination: { # required
3471
+ # format: "CSV", # required, accepts CSV, Parquet
3472
+ # output_schema_version: "V_1", # required, accepts V_1
3473
+ # account_id: "AccountId", # required
3474
+ # arn: "S3BucketArnString", # required
3475
+ # prefix: "Prefix",
3476
+ # encryption: {
3477
+ # sses3: {
3478
+ # },
3479
+ # ssekms: {
3480
+ # key_id: "SSEKMSKeyId", # required
3481
+ # },
3482
+ # },
3483
+ # },
3484
+ # },
3485
+ # is_enabled: false, # required
3486
+ # aws_org: {
3487
+ # arn: "AwsOrgArn", # required
3488
+ # },
3489
+ # storage_lens_arn: "StorageLensArn",
3490
+ # },
3491
+ # tags: [
3492
+ # {
3493
+ # key: "TagKeyString", # required
3494
+ # value: "TagValueString", # required
3495
+ # },
3496
+ # ],
3497
+ # }
3498
+ #
3499
+ # @!attribute [rw] config_id
3500
+ # The ID of the S3 Storage Lens configuration.
3501
+ # @return [String]
3502
+ #
3503
+ # @!attribute [rw] account_id
3504
+ # The account ID of the requester.
3505
+ # @return [String]
3506
+ #
3507
+ # @!attribute [rw] storage_lens_configuration
3508
+ # The S3 Storage Lens configuration.
3509
+ # @return [Types::StorageLensConfiguration]
3510
+ #
3511
+ # @!attribute [rw] tags
3512
+ # The tag set of the S3 Storage Lens configuration.
3513
+ #
3514
+ # <note markdown="1"> You can set up to a maximum of 50 tags.
3515
+ #
3516
+ # </note>
3517
+ # @return [Array<Types::StorageLensTag>]
3518
+ #
3519
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfigurationRequest AWS API Documentation
3520
+ #
3521
+ class PutStorageLensConfigurationRequest < Struct.new(
3522
+ :config_id,
3523
+ :account_id,
3524
+ :storage_lens_configuration,
3525
+ :tags)
3526
+ SENSITIVE = []
3527
+ include Aws::Structure
3528
+ end
3529
+
3530
+ # @note When making an API call, you may pass PutStorageLensConfigurationTaggingRequest
3531
+ # data as a hash:
3532
+ #
3533
+ # {
3534
+ # config_id: "ConfigId", # required
3535
+ # account_id: "AccountId", # required
3536
+ # tags: [ # required
3537
+ # {
3538
+ # key: "TagKeyString", # required
3539
+ # value: "TagValueString", # required
3540
+ # },
3541
+ # ],
3542
+ # }
3543
+ #
3544
+ # @!attribute [rw] config_id
3545
+ # The ID of the S3 Storage Lens configuration.
3546
+ # @return [String]
3547
+ #
3548
+ # @!attribute [rw] account_id
3549
+ # The account ID of the requester.
3550
+ # @return [String]
3551
+ #
3552
+ # @!attribute [rw] tags
3553
+ # The tag set of the S3 Storage Lens configuration.
3554
+ #
3555
+ # <note markdown="1"> You can set up to a maximum of 50 tags.
3556
+ #
3557
+ # </note>
3558
+ # @return [Array<Types::StorageLensTag>]
3559
+ #
3560
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfigurationTaggingRequest AWS API Documentation
3561
+ #
3562
+ class PutStorageLensConfigurationTaggingRequest < Struct.new(
3563
+ :config_id,
1635
3564
  :account_id,
1636
- :job_id,
1637
3565
  :tags)
1638
3566
  SENSITIVE = []
1639
3567
  include Aws::Structure
1640
3568
  end
1641
3569
 
1642
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutJobTaggingResult AWS API Documentation
3570
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfigurationTaggingResult AWS API Documentation
1643
3571
  #
1644
- class PutJobTaggingResult < Aws::EmptyStructure; end
3572
+ class PutStorageLensConfigurationTaggingResult < Aws::EmptyStructure; end
1645
3573
 
1646
- # @note When making an API call, you may pass PutPublicAccessBlockRequest
1647
- # data as a hash:
3574
+ # The container for the regional bucket.
1648
3575
  #
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
- # }
3576
+ # @!attribute [rw] bucket
3577
+ # @return [String]
1658
3578
  #
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]
3579
+ # @!attribute [rw] bucket_arn
3580
+ # The Amazon Resource Name (ARN) for the regional bucket.
3581
+ # @return [String]
1663
3582
  #
1664
- # @!attribute [rw] account_id
1665
- # The account ID for the Amazon Web Services account whose
1666
- # `PublicAccessBlock` configuration you want to set.
3583
+ # @!attribute [rw] public_access_block_enabled
3584
+ # @return [Boolean]
3585
+ #
3586
+ # @!attribute [rw] creation_date
3587
+ # The creation date of the regional bucket
3588
+ # @return [Time]
3589
+ #
3590
+ # @!attribute [rw] outpost_id
3591
+ # The AWS Outposts ID of the regional bucket.
1667
3592
  # @return [String]
1668
3593
  #
1669
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutPublicAccessBlockRequest AWS API Documentation
3594
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/RegionalBucket AWS API Documentation
1670
3595
  #
1671
- class PutPublicAccessBlockRequest < Struct.new(
1672
- :public_access_block_configuration,
1673
- :account_id)
3596
+ class RegionalBucket < Struct.new(
3597
+ :bucket,
3598
+ :bucket_arn,
3599
+ :public_access_block_enabled,
3600
+ :creation_date,
3601
+ :outpost_id)
1674
3602
  SENSITIVE = []
1675
3603
  include Aws::Structure
1676
3604
  end
@@ -1748,10 +3676,73 @@ module Aws::S3Control
1748
3676
  include Aws::Structure
1749
3677
  end
1750
3678
 
3679
+ # A container for the bucket where the Amazon S3 Storage Lens metrics
3680
+ # export files are located.
3681
+ #
3682
+ # @note When making an API call, you may pass S3BucketDestination
3683
+ # data as a hash:
3684
+ #
3685
+ # {
3686
+ # format: "CSV", # required, accepts CSV, Parquet
3687
+ # output_schema_version: "V_1", # required, accepts V_1
3688
+ # account_id: "AccountId", # required
3689
+ # arn: "S3BucketArnString", # required
3690
+ # prefix: "Prefix",
3691
+ # encryption: {
3692
+ # sses3: {
3693
+ # },
3694
+ # ssekms: {
3695
+ # key_id: "SSEKMSKeyId", # required
3696
+ # },
3697
+ # },
3698
+ # }
3699
+ #
3700
+ # @!attribute [rw] format
3701
+ # @return [String]
3702
+ #
3703
+ # @!attribute [rw] output_schema_version
3704
+ # The schema version of the export file.
3705
+ # @return [String]
3706
+ #
3707
+ # @!attribute [rw] account_id
3708
+ # The account ID of the owner of the S3 Storage Lens metrics export
3709
+ # bucket.
3710
+ # @return [String]
3711
+ #
3712
+ # @!attribute [rw] arn
3713
+ # The Amazon Resource Name (ARN) of the bucket. This property is
3714
+ # read-only and follows the following format: `
3715
+ # arn:aws:s3:us-east-1:example-account-id:bucket/your-destination-bucket-name
3716
+ # `
3717
+ # @return [String]
3718
+ #
3719
+ # @!attribute [rw] prefix
3720
+ # The prefix of the destination bucket where the metrics export will
3721
+ # be delivered.
3722
+ # @return [String]
3723
+ #
3724
+ # @!attribute [rw] encryption
3725
+ # The container for the type encryption of the metrics exports in this
3726
+ # bucket.
3727
+ # @return [Types::StorageLensDataExportEncryption]
3728
+ #
3729
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3BucketDestination AWS API Documentation
3730
+ #
3731
+ class S3BucketDestination < Struct.new(
3732
+ :format,
3733
+ :output_schema_version,
3734
+ :account_id,
3735
+ :arn,
3736
+ :prefix,
3737
+ :encryption)
3738
+ SENSITIVE = []
3739
+ include Aws::Structure
3740
+ end
3741
+
1751
3742
  # 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].
3743
+ # S3 Batch Operations passes every object to the underlying PUT Copy
3744
+ # object API. For more information about the parameters for this
3745
+ # operation, see [PUT Object - Copy][1].
1755
3746
  #
1756
3747
  #
1757
3748
  #
@@ -1808,6 +3799,10 @@ module Aws::S3Control
1808
3799
  # }
1809
3800
  #
1810
3801
  # @!attribute [rw] target_resource
3802
+ # Specifies the destination bucket ARN for the batch copy operation.
3803
+ # For example, to copy objects to a bucket named
3804
+ # "destinationBucket", set the TargetResource to
3805
+ # "arn:aws:s3:::destinationBucket".
1811
3806
  # @return [String]
1812
3807
  #
1813
3808
  # @!attribute [rw] canned_access_control_list
@@ -1829,6 +3824,9 @@ module Aws::S3Control
1829
3824
  # @return [Array<Types::S3Tag>]
1830
3825
  #
1831
3826
  # @!attribute [rw] redirect_location
3827
+ # Specifies an optional metadata property for website redirects,
3828
+ # `x-amz-website-redirect-location`. Allows webpage redirects if the
3829
+ # object is accessed through a website endpoint.
1832
3830
  # @return [String]
1833
3831
  #
1834
3832
  # @!attribute [rw] requester_pays
@@ -1844,21 +3842,25 @@ module Aws::S3Control
1844
3842
  # @return [String]
1845
3843
  #
1846
3844
  # @!attribute [rw] target_key_prefix
3845
+ # Specifies the folder prefix into which you would like the objects to
3846
+ # be copied. For example, to copy objects into a folder named
3847
+ # "Folder1" in the destination bucket, set the TargetKeyPrefix to
3848
+ # "Folder1/".
1847
3849
  # @return [String]
1848
3850
  #
1849
3851
  # @!attribute [rw] object_lock_legal_hold_status
1850
- # The Legal Hold status to be applied to all objects in the Batch
3852
+ # The legal hold status to be applied to all objects in the Batch
1851
3853
  # Operations job.
1852
3854
  # @return [String]
1853
3855
  #
1854
3856
  # @!attribute [rw] object_lock_mode
1855
- # The Retention mode to be applied to all objects in the Batch
3857
+ # The retention mode to be applied to all objects in the Batch
1856
3858
  # Operations job.
1857
3859
  # @return [String]
1858
3860
  #
1859
3861
  # @!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.
3862
+ # The date when the applied object retention configuration expires on
3863
+ # all objects in the Batch Operations job.
1862
3864
  # @return [Time]
1863
3865
  #
1864
3866
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3CopyObjectOperation AWS API Documentation
@@ -1884,6 +3886,16 @@ module Aws::S3Control
1884
3886
  include Aws::Structure
1885
3887
  end
1886
3888
 
3889
+ # Contains no configuration parameters because the DELETE Object tagging
3890
+ # API only accepts the bucket name and key name as parameters, which are
3891
+ # defined in the job's manifest.
3892
+ #
3893
+ # @api private
3894
+ #
3895
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3DeleteObjectTaggingOperation AWS API Documentation
3896
+ #
3897
+ class S3DeleteObjectTaggingOperation < Aws::EmptyStructure; end
3898
+
1887
3899
  # @note When making an API call, you may pass S3Grant
1888
3900
  # data as a hash:
1889
3901
  #
@@ -1939,10 +3951,10 @@ module Aws::S3Control
1939
3951
  include Aws::Structure
1940
3952
  end
1941
3953
 
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].
3954
+ # Contains the configuration parameters for an S3 Initiate Restore
3955
+ # Object job. S3 Batch Operations passes every object to the underlying
3956
+ # POST Object restore API. For more information about the parameters for
3957
+ # this operation, see [RestoreObject][1].
1946
3958
  #
1947
3959
  #
1948
3960
  #
@@ -1957,9 +3969,29 @@ module Aws::S3Control
1957
3969
  # }
1958
3970
  #
1959
3971
  # @!attribute [rw] expiration_in_days
3972
+ # This argument specifies how long the S3 Glacier or S3 Glacier Deep
3973
+ # Archive object remains available in Amazon S3. S3 Initiate Restore
3974
+ # Object jobs that target S3 Glacier and S3 Glacier Deep Archive
3975
+ # objects require `ExpirationInDays` set to 1 or greater.
3976
+ #
3977
+ # Conversely, do *not* set `ExpirationInDays` when creating S3
3978
+ # Initiate Restore Object jobs that target S3 Intelligent-Tiering
3979
+ # Archive Access and Deep Archive Access tier objects. Objects in S3
3980
+ # Intelligent-Tiering archive access tiers are not subject to restore
3981
+ # expiry, so specifying `ExpirationInDays` results in restore request
3982
+ # failure.
3983
+ #
3984
+ # S3 Batch Operations jobs can operate either on S3 Glacier and S3
3985
+ # Glacier Deep Archive storage class objects or on S3
3986
+ # Intelligent-Tiering Archive Access and Deep Archive Access storage
3987
+ # tier objects, but not both types in the same job. If you need to
3988
+ # restore objects of both types you *must* create separate Batch
3989
+ # Operations jobs.
1960
3990
  # @return [Integer]
1961
3991
  #
1962
3992
  # @!attribute [rw] glacier_job_tier
3993
+ # S3 Batch Operations supports `STANDARD` and `BULK` retrieval tiers,
3994
+ # but not the `EXPEDITED` retrieval tier.
1963
3995
  # @return [String]
1964
3996
  #
1965
3997
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3InitiateRestoreObjectOperation AWS API Documentation
@@ -1971,6 +4003,9 @@ module Aws::S3Control
1971
4003
  include Aws::Structure
1972
4004
  end
1973
4005
 
4006
+ # Whether S3 Object Lock legal hold will be applied to objects in an S3
4007
+ # Batch Operations job.
4008
+ #
1974
4009
  # @note When making an API call, you may pass S3ObjectLockLegalHold
1975
4010
  # data as a hash:
1976
4011
  #
@@ -1979,8 +4014,8 @@ module Aws::S3Control
1979
4014
  # }
1980
4015
  #
1981
4016
  # @!attribute [rw] status
1982
- # The Legal Hold status to be applied to all objects in the Batch
1983
- # Operations job.
4017
+ # The Object Lock legal hold status to be applied to all objects in
4018
+ # the Batch Operations job.
1984
4019
  # @return [String]
1985
4020
  #
1986
4021
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3ObjectLockLegalHold AWS API Documentation
@@ -2084,6 +4119,17 @@ module Aws::S3Control
2084
4119
  include Aws::Structure
2085
4120
  end
2086
4121
 
4122
+ # Contains the S3 Object Lock retention mode to be applied to all
4123
+ # objects in the S3 Batch Operations job. If you don't provide `Mode`
4124
+ # and `RetainUntilDate` data types in your operation, you will remove
4125
+ # the retention from your objects. For more information, see [Using S3
4126
+ # Object Lock retention with S3 Batch Operations][1] in the *Amazon
4127
+ # Simple Storage Service Developer Guide*.
4128
+ #
4129
+ #
4130
+ #
4131
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html
4132
+ #
2087
4133
  # @note When making an API call, you may pass S3Retention
2088
4134
  # data as a hash:
2089
4135
  #
@@ -2093,13 +4139,13 @@ module Aws::S3Control
2093
4139
  # }
2094
4140
  #
2095
4141
  # @!attribute [rw] retain_until_date
2096
- # The date when the applied Object Retention will expire on all
2097
- # objects in the Batch Operations job.
4142
+ # The date when the applied Object Lock retention will expire on all
4143
+ # objects set by the Batch Operations job.
2098
4144
  # @return [Time]
2099
4145
  #
2100
4146
  # @!attribute [rw] mode
2101
- # The Retention mode to be applied to all objects in the Batch
2102
- # Operations job.
4147
+ # The Object Lock retention mode to be applied to all objects in the
4148
+ # Batch Operations job.
2103
4149
  # @return [String]
2104
4150
  #
2105
4151
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3Retention AWS API Documentation
@@ -2112,9 +4158,9 @@ module Aws::S3Control
2112
4158
  end
2113
4159
 
2114
4160
  # 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].
4161
+ # S3 Batch Operations passes every object to the underlying PUT Object
4162
+ # acl API. For more information about the parameters for this operation,
4163
+ # see [PUT Object acl][1].
2118
4164
  #
2119
4165
  #
2120
4166
  #
@@ -2156,14 +4202,15 @@ module Aws::S3Control
2156
4202
  include Aws::Structure
2157
4203
  end
2158
4204
 
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].
4205
+ # Contains the configuration for an S3 Object Lock legal hold operation
4206
+ # that an S3 Batch Operations job passes every object to the underlying
4207
+ # `PutObjectLegalHold` API. For more information, see [Using S3 Object
4208
+ # Lock legal hold with S3 Batch Operations][1] in the *Amazon Simple
4209
+ # Storage Service Developer Guide*.
2163
4210
  #
2164
4211
  #
2165
4212
  #
2166
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.htmll#object-lock-legal-holds
4213
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-legal-hold.html
2167
4214
  #
2168
4215
  # @note When making an API call, you may pass S3SetObjectLegalHoldOperation
2169
4216
  # data as a hash:
@@ -2175,8 +4222,8 @@ module Aws::S3Control
2175
4222
  # }
2176
4223
  #
2177
4224
  # @!attribute [rw] legal_hold
2178
- # The Legal Hold contains the status to be applied to all objects in
2179
- # the Batch Operations job.
4225
+ # Contains the Object Lock legal hold status to be applied to all
4226
+ # objects in the Batch Operations job.
2180
4227
  # @return [Types::S3ObjectLockLegalHold]
2181
4228
  #
2182
4229
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3SetObjectLegalHoldOperation AWS API Documentation
@@ -2187,14 +4234,15 @@ module Aws::S3Control
2187
4234
  include Aws::Structure
2188
4235
  end
2189
4236
 
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].
4237
+ # Contains the configuration parameters for the Object Lock retention
4238
+ # action for an S3 Batch Operations job. Batch Operations passes every
4239
+ # object to the underlying `PutObjectRetention` API. For more
4240
+ # information, see [Using S3 Object Lock retention with S3 Batch
4241
+ # Operations][1] in the *Amazon Simple Storage Service Developer Guide*.
2194
4242
  #
2195
4243
  #
2196
4244
  #
2197
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes
4245
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html
2198
4246
  #
2199
4247
  # @note When making an API call, you may pass S3SetObjectRetentionOperation
2200
4248
  # data as a hash:
@@ -2208,14 +4256,20 @@ module Aws::S3Control
2208
4256
  # }
2209
4257
  #
2210
4258
  # @!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
4259
+ # Indicates if the action should be applied to objects in the Batch
4260
+ # Operations job even if they have Object Lock ` GOVERNANCE` type in
2213
4261
  # place.
2214
4262
  # @return [Boolean]
2215
4263
  #
2216
4264
  # @!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.
4265
+ # Contains the Object Lock retention mode to be applied to all objects
4266
+ # in the Batch Operations job. For more information, see [Using S3
4267
+ # Object Lock retention with S3 Batch Operations][1] in the *Amazon
4268
+ # Simple Storage Service Developer Guide*.
4269
+ #
4270
+ #
4271
+ #
4272
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html
2219
4273
  # @return [Types::S3Retention]
2220
4274
  #
2221
4275
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3SetObjectRetentionOperation AWS API Documentation
@@ -2228,9 +4282,9 @@ module Aws::S3Control
2228
4282
  end
2229
4283
 
2230
4284
  # 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].
4285
+ # operation. S3 Batch Operations passes every object to the underlying
4286
+ # PUT Object tagging API. For more information about the parameters for
4287
+ # this operation, see [PUT Object tagging][1].
2234
4288
  #
2235
4289
  #
2236
4290
  #
@@ -2282,6 +4336,327 @@ module Aws::S3Control
2282
4336
  include Aws::Structure
2283
4337
  end
2284
4338
 
4339
+ # @note When making an API call, you may pass SSEKMS
4340
+ # data as a hash:
4341
+ #
4342
+ # {
4343
+ # key_id: "SSEKMSKeyId", # required
4344
+ # }
4345
+ #
4346
+ # @!attribute [rw] key_id
4347
+ # A container for the ARN of the SSE-KMS encryption. This property is
4348
+ # read-only and follows the following format: `
4349
+ # arn:aws:kms:us-east-1:example-account-id:key/example-9a73-4afc-8d29-8f5900cef44e
4350
+ # `
4351
+ # @return [String]
4352
+ #
4353
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/SSEKMS AWS API Documentation
4354
+ #
4355
+ class SSEKMS < Struct.new(
4356
+ :key_id)
4357
+ SENSITIVE = []
4358
+ include Aws::Structure
4359
+ end
4360
+
4361
+ # @api private
4362
+ #
4363
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/SSES3 AWS API Documentation
4364
+ #
4365
+ class SSES3 < Aws::EmptyStructure; end
4366
+
4367
+ # @note When making an API call, you may pass SelectionCriteria
4368
+ # data as a hash:
4369
+ #
4370
+ # {
4371
+ # delimiter: "StorageLensPrefixLevelDelimiter",
4372
+ # max_depth: 1,
4373
+ # min_storage_bytes_percentage: 1.0,
4374
+ # }
4375
+ #
4376
+ # @!attribute [rw] delimiter
4377
+ # A container for the delimiter of the selection criteria being used.
4378
+ # @return [String]
4379
+ #
4380
+ # @!attribute [rw] max_depth
4381
+ # The max depth of the selection criteria
4382
+ # @return [Integer]
4383
+ #
4384
+ # @!attribute [rw] min_storage_bytes_percentage
4385
+ # The minimum number of storage bytes percentage whose metrics will be
4386
+ # selected.
4387
+ #
4388
+ # <note markdown="1"> You must choose a value greater than or equal to `1.0`.
4389
+ #
4390
+ # </note>
4391
+ # @return [Float]
4392
+ #
4393
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/SelectionCriteria AWS API Documentation
4394
+ #
4395
+ class SelectionCriteria < Struct.new(
4396
+ :delimiter,
4397
+ :max_depth,
4398
+ :min_storage_bytes_percentage)
4399
+ SENSITIVE = []
4400
+ include Aws::Structure
4401
+ end
4402
+
4403
+ # The AWS organization for your S3 Storage Lens.
4404
+ #
4405
+ # @note When making an API call, you may pass StorageLensAwsOrg
4406
+ # data as a hash:
4407
+ #
4408
+ # {
4409
+ # arn: "AwsOrgArn", # required
4410
+ # }
4411
+ #
4412
+ # @!attribute [rw] arn
4413
+ # A container for the Amazon Resource Name (ARN) of the AWS
4414
+ # organization. This property is read-only and follows the following
4415
+ # format: `
4416
+ # arn:aws:organizations:us-east-1:example-account-id:organization/o-ex2l495dck
4417
+ # `
4418
+ # @return [String]
4419
+ #
4420
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/StorageLensAwsOrg AWS API Documentation
4421
+ #
4422
+ class StorageLensAwsOrg < Struct.new(
4423
+ :arn)
4424
+ SENSITIVE = []
4425
+ include Aws::Structure
4426
+ end
4427
+
4428
+ # A container for the Amazon S3 Storage Lens configuration.
4429
+ #
4430
+ # @note When making an API call, you may pass StorageLensConfiguration
4431
+ # data as a hash:
4432
+ #
4433
+ # {
4434
+ # id: "ConfigId", # required
4435
+ # account_level: { # required
4436
+ # activity_metrics: {
4437
+ # is_enabled: false,
4438
+ # },
4439
+ # bucket_level: { # required
4440
+ # activity_metrics: {
4441
+ # is_enabled: false,
4442
+ # },
4443
+ # prefix_level: {
4444
+ # storage_metrics: { # required
4445
+ # is_enabled: false,
4446
+ # selection_criteria: {
4447
+ # delimiter: "StorageLensPrefixLevelDelimiter",
4448
+ # max_depth: 1,
4449
+ # min_storage_bytes_percentage: 1.0,
4450
+ # },
4451
+ # },
4452
+ # },
4453
+ # },
4454
+ # },
4455
+ # include: {
4456
+ # buckets: ["S3BucketArnString"],
4457
+ # regions: ["S3AWSRegion"],
4458
+ # },
4459
+ # exclude: {
4460
+ # buckets: ["S3BucketArnString"],
4461
+ # regions: ["S3AWSRegion"],
4462
+ # },
4463
+ # data_export: {
4464
+ # s3_bucket_destination: { # required
4465
+ # format: "CSV", # required, accepts CSV, Parquet
4466
+ # output_schema_version: "V_1", # required, accepts V_1
4467
+ # account_id: "AccountId", # required
4468
+ # arn: "S3BucketArnString", # required
4469
+ # prefix: "Prefix",
4470
+ # encryption: {
4471
+ # sses3: {
4472
+ # },
4473
+ # ssekms: {
4474
+ # key_id: "SSEKMSKeyId", # required
4475
+ # },
4476
+ # },
4477
+ # },
4478
+ # },
4479
+ # is_enabled: false, # required
4480
+ # aws_org: {
4481
+ # arn: "AwsOrgArn", # required
4482
+ # },
4483
+ # storage_lens_arn: "StorageLensArn",
4484
+ # }
4485
+ #
4486
+ # @!attribute [rw] id
4487
+ # A container for the Amazon S3 Storage Lens configuration ID.
4488
+ # @return [String]
4489
+ #
4490
+ # @!attribute [rw] account_level
4491
+ # A container for all the account-level configurations of your S3
4492
+ # Storage Lens configuration.
4493
+ # @return [Types::AccountLevel]
4494
+ #
4495
+ # @!attribute [rw] include
4496
+ # A container for what is included in this configuration. This
4497
+ # container can only be valid if there is no `Exclude` container
4498
+ # submitted, and it's not empty.
4499
+ # @return [Types::Include]
4500
+ #
4501
+ # @!attribute [rw] exclude
4502
+ # A container for what is excluded in this configuration. This
4503
+ # container can only be valid if there is no `Include` container
4504
+ # submitted, and it's not empty.
4505
+ # @return [Types::Exclude]
4506
+ #
4507
+ # @!attribute [rw] data_export
4508
+ # A container to specify the properties of your S3 Storage Lens
4509
+ # metrics export including, the destination, schema and format.
4510
+ # @return [Types::StorageLensDataExport]
4511
+ #
4512
+ # @!attribute [rw] is_enabled
4513
+ # A container for whether the S3 Storage Lens configuration is
4514
+ # enabled.
4515
+ # @return [Boolean]
4516
+ #
4517
+ # @!attribute [rw] aws_org
4518
+ # A container for the AWS organization for this S3 Storage Lens
4519
+ # configuration.
4520
+ # @return [Types::StorageLensAwsOrg]
4521
+ #
4522
+ # @!attribute [rw] storage_lens_arn
4523
+ # The Amazon Resource Name (ARN) of the S3 Storage Lens configuration.
4524
+ # This property is read-only and follows the following format: `
4525
+ # arn:aws:s3:us-east-1:example-account-id:storage-lens/your-dashboard-name
4526
+ # `
4527
+ # @return [String]
4528
+ #
4529
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/StorageLensConfiguration AWS API Documentation
4530
+ #
4531
+ class StorageLensConfiguration < Struct.new(
4532
+ :id,
4533
+ :account_level,
4534
+ :include,
4535
+ :exclude,
4536
+ :data_export,
4537
+ :is_enabled,
4538
+ :aws_org,
4539
+ :storage_lens_arn)
4540
+ SENSITIVE = []
4541
+ include Aws::Structure
4542
+ end
4543
+
4544
+ # A container to specify the properties of your S3 Storage Lens metrics
4545
+ # export, including the destination, schema, and format.
4546
+ #
4547
+ # @note When making an API call, you may pass StorageLensDataExport
4548
+ # data as a hash:
4549
+ #
4550
+ # {
4551
+ # s3_bucket_destination: { # required
4552
+ # format: "CSV", # required, accepts CSV, Parquet
4553
+ # output_schema_version: "V_1", # required, accepts V_1
4554
+ # account_id: "AccountId", # required
4555
+ # arn: "S3BucketArnString", # required
4556
+ # prefix: "Prefix",
4557
+ # encryption: {
4558
+ # sses3: {
4559
+ # },
4560
+ # ssekms: {
4561
+ # key_id: "SSEKMSKeyId", # required
4562
+ # },
4563
+ # },
4564
+ # },
4565
+ # }
4566
+ #
4567
+ # @!attribute [rw] s3_bucket_destination
4568
+ # A container for the bucket where the S3 Storage Lens metrics export
4569
+ # will be located.
4570
+ #
4571
+ # <note markdown="1"> This bucket must be located in the same Region as the storage lens
4572
+ # configuration.
4573
+ #
4574
+ # </note>
4575
+ # @return [Types::S3BucketDestination]
4576
+ #
4577
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/StorageLensDataExport AWS API Documentation
4578
+ #
4579
+ class StorageLensDataExport < Struct.new(
4580
+ :s3_bucket_destination)
4581
+ SENSITIVE = []
4582
+ include Aws::Structure
4583
+ end
4584
+
4585
+ # A container for the encryption of the S3 Storage Lens metrics exports.
4586
+ #
4587
+ # @note When making an API call, you may pass StorageLensDataExportEncryption
4588
+ # data as a hash:
4589
+ #
4590
+ # {
4591
+ # sses3: {
4592
+ # },
4593
+ # ssekms: {
4594
+ # key_id: "SSEKMSKeyId", # required
4595
+ # },
4596
+ # }
4597
+ #
4598
+ # @!attribute [rw] sses3
4599
+ # @return [Types::SSES3]
4600
+ #
4601
+ # @!attribute [rw] ssekms
4602
+ # @return [Types::SSEKMS]
4603
+ #
4604
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/StorageLensDataExportEncryption AWS API Documentation
4605
+ #
4606
+ class StorageLensDataExportEncryption < Struct.new(
4607
+ :sses3,
4608
+ :ssekms)
4609
+ SENSITIVE = []
4610
+ include Aws::Structure
4611
+ end
4612
+
4613
+ # @note When making an API call, you may pass StorageLensTag
4614
+ # data as a hash:
4615
+ #
4616
+ # {
4617
+ # key: "TagKeyString", # required
4618
+ # value: "TagValueString", # required
4619
+ # }
4620
+ #
4621
+ # @!attribute [rw] key
4622
+ # @return [String]
4623
+ #
4624
+ # @!attribute [rw] value
4625
+ # @return [String]
4626
+ #
4627
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/StorageLensTag AWS API Documentation
4628
+ #
4629
+ class StorageLensTag < Struct.new(
4630
+ :key,
4631
+ :value)
4632
+ SENSITIVE = []
4633
+ include Aws::Structure
4634
+ end
4635
+
4636
+ # @note When making an API call, you may pass Tagging
4637
+ # data as a hash:
4638
+ #
4639
+ # {
4640
+ # tag_set: [ # required
4641
+ # {
4642
+ # key: "TagKeyString", # required
4643
+ # value: "TagValueString", # required
4644
+ # },
4645
+ # ],
4646
+ # }
4647
+ #
4648
+ # @!attribute [rw] tag_set
4649
+ # A collection for a set of tags.
4650
+ # @return [Array<Types::S3Tag>]
4651
+ #
4652
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/Tagging AWS API Documentation
4653
+ #
4654
+ class Tagging < Struct.new(
4655
+ :tag_set)
4656
+ SENSITIVE = []
4657
+ include Aws::Structure
4658
+ end
4659
+
2285
4660
  # @!attribute [rw] message
2286
4661
  # @return [String]
2287
4662
  #
@@ -2293,6 +4668,9 @@ module Aws::S3Control
2293
4668
  include Aws::Structure
2294
4669
  end
2295
4670
 
4671
+ # Amazon S3 throws this exception if you have too many tags in your tag
4672
+ # set.
4673
+ #
2296
4674
  # @!attribute [rw] message
2297
4675
  # @return [String]
2298
4676
  #
@@ -2304,6 +4682,50 @@ module Aws::S3Control
2304
4682
  include Aws::Structure
2305
4683
  end
2306
4684
 
4685
+ # Specifies when an object transitions to a specified storage class. For
4686
+ # more information about Amazon S3 Lifecycle configuration rules, see [
4687
+ # Transitioning objects using Amazon S3 Lifecycle][1] in the *Amazon
4688
+ # Simple Storage Service Developer Guide*.
4689
+ #
4690
+ #
4691
+ #
4692
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-transition-general-considerations.html
4693
+ #
4694
+ # @note When making an API call, you may pass Transition
4695
+ # data as a hash:
4696
+ #
4697
+ # {
4698
+ # date: Time.now,
4699
+ # days: 1,
4700
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
4701
+ # }
4702
+ #
4703
+ # @!attribute [rw] date
4704
+ # Indicates when objects are transitioned to the specified storage
4705
+ # class. The date value must be in ISO 8601 format. The time is always
4706
+ # midnight UTC.
4707
+ # @return [Time]
4708
+ #
4709
+ # @!attribute [rw] days
4710
+ # Indicates the number of days after creation when objects are
4711
+ # transitioned to the specified storage class. The value must be a
4712
+ # positive integer.
4713
+ # @return [Integer]
4714
+ #
4715
+ # @!attribute [rw] storage_class
4716
+ # The storage class to which you want the object to transition.
4717
+ # @return [String]
4718
+ #
4719
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/Transition AWS API Documentation
4720
+ #
4721
+ class Transition < Struct.new(
4722
+ :date,
4723
+ :days,
4724
+ :storage_class)
4725
+ SENSITIVE = []
4726
+ include Aws::Structure
4727
+ end
4728
+
2307
4729
  # @note When making an API call, you may pass UpdateJobPriorityRequest
2308
4730
  # data as a hash:
2309
4731
  #