aws-sdk-s3control 1.23.0 → 1.28.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,400 @@ 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
+ # The AWS account ID associated with the S3 Batch Operations job.
1038
+ # @return [String]
1039
+ #
1040
+ # @!attribute [rw] job_id
1041
+ # The ID for the job whose information you want to retrieve.
1042
+ # @return [String]
1043
+ #
1044
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DescribeJobRequest AWS API Documentation
1045
+ #
1046
+ class DescribeJobRequest < Struct.new(
1047
+ :account_id,
1048
+ :job_id)
1049
+ SENSITIVE = []
1050
+ include Aws::Structure
1051
+ end
1052
+
1053
+ # @!attribute [rw] job
1054
+ # Contains the configuration parameters and status for the job
1055
+ # specified in the `Describe Job` request.
1056
+ # @return [Types::JobDescriptor]
1057
+ #
1058
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DescribeJobResult AWS API Documentation
1059
+ #
1060
+ class DescribeJobResult < Struct.new(
1061
+ :job)
1062
+ SENSITIVE = []
1063
+ include Aws::Structure
1064
+ end
1065
+
1066
+ # A container for what Amazon S3 Storage Lens will exclude.
1067
+ #
1068
+ # @note When making an API call, you may pass Exclude
1069
+ # data as a hash:
1070
+ #
1071
+ # {
1072
+ # buckets: ["S3BucketArnString"],
1073
+ # regions: ["S3AWSRegion"],
1074
+ # }
1075
+ #
1076
+ # @!attribute [rw] buckets
1077
+ # A container for the S3 Storage Lens bucket excludes.
1078
+ # @return [Array<String>]
1079
+ #
1080
+ # @!attribute [rw] regions
1081
+ # A container for the S3 Storage Lens Region excludes.
1082
+ # @return [Array<String>]
1083
+ #
1084
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/Exclude AWS API Documentation
1085
+ #
1086
+ class Exclude < Struct.new(
1087
+ :buckets,
1088
+ :regions)
1089
+ SENSITIVE = []
1090
+ include Aws::Structure
1091
+ end
1092
+
1093
+ # @note When making an API call, you may pass GetAccessPointPolicyRequest
1094
+ # data as a hash:
1095
+ #
1096
+ # {
1097
+ # account_id: "AccountId", # required
1098
+ # name: "AccessPointName", # required
1099
+ # }
1100
+ #
1101
+ # @!attribute [rw] account_id
1102
+ # The account ID for the account that owns the specified access point.
1103
+ # @return [String]
1104
+ #
1105
+ # @!attribute [rw] name
1106
+ # The name of the access point whose policy you want to retrieve.
1107
+ #
1108
+ # For using this parameter with Amazon S3 on Outposts with the REST
1109
+ # API, you must specify the name and the x-amz-outpost-id as well.
1110
+ #
1111
+ # For using this parameter with S3 on Outposts with the AWS SDK and
1112
+ # CLI, you must specify the ARN of the access point accessed in the
1113
+ # format
1114
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>`.
1115
+ # For example, to access the access point `reports-ap` through outpost
1116
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
1117
+ # use the URL encoding of
1118
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap`.
1119
+ # The value must be URL encoded.
1120
+ # @return [String]
1121
+ #
1122
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyRequest AWS API Documentation
1123
+ #
1124
+ class GetAccessPointPolicyRequest < Struct.new(
1125
+ :account_id,
1126
+ :name)
1127
+ SENSITIVE = []
1128
+ include Aws::Structure
1129
+ end
1130
+
1131
+ # @!attribute [rw] policy
1132
+ # The access point policy associated with the specified access point.
1133
+ # @return [String]
1134
+ #
1135
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyResult AWS API Documentation
1136
+ #
1137
+ class GetAccessPointPolicyResult < Struct.new(
1138
+ :policy)
1139
+ SENSITIVE = []
1140
+ include Aws::Structure
1141
+ end
1142
+
1143
+ # @note When making an API call, you may pass GetAccessPointPolicyStatusRequest
1144
+ # data as a hash:
1145
+ #
1146
+ # {
1147
+ # account_id: "AccountId", # required
1148
+ # name: "AccessPointName", # required
1149
+ # }
1150
+ #
1151
+ # @!attribute [rw] account_id
1152
+ # The account ID for the account that owns the specified access point.
1153
+ # @return [String]
1154
+ #
1155
+ # @!attribute [rw] name
1156
+ # The name of the access point whose policy status you want to
1157
+ # retrieve.
1158
+ # @return [String]
1159
+ #
1160
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatusRequest AWS API Documentation
1161
+ #
1162
+ class GetAccessPointPolicyStatusRequest < Struct.new(
1163
+ :account_id,
1164
+ :name)
1165
+ SENSITIVE = []
1166
+ include Aws::Structure
1167
+ end
1168
+
1169
+ # @!attribute [rw] policy_status
543
1170
  # Indicates the current policy status of the specified access point.
544
1171
  # @return [Types::PolicyStatus]
545
1172
  #
@@ -566,6 +1193,19 @@ module Aws::S3Control
566
1193
  # @!attribute [rw] name
567
1194
  # The name of the access point whose configuration information you
568
1195
  # want to retrieve.
1196
+ #
1197
+ # For using this parameter with Amazon S3 on Outposts with the REST
1198
+ # API, you must specify the name and the x-amz-outpost-id as well.
1199
+ #
1200
+ # For using this parameter with S3 on Outposts with the AWS SDK and
1201
+ # CLI, you must specify the ARN of the access point accessed in the
1202
+ # format
1203
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>`.
1204
+ # For example, to access the access point `reports-ap` through outpost
1205
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
1206
+ # use the URL encoding of
1207
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap`.
1208
+ # The value must be URL encoded.
569
1209
  # @return [String]
570
1210
  #
571
1211
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointRequest AWS API Documentation
@@ -592,6 +1232,8 @@ module Aws::S3Control
592
1232
  # access from the public internet. Otherwise, `NetworkOrigin` is
593
1233
  # `Internet`, and the access point allows access from the public
594
1234
  # internet, subject to the access point and bucket access policies.
1235
+ #
1236
+ # This will always be true for an Amazon S3 on Outposts access point
595
1237
  # @return [String]
596
1238
  #
597
1239
  # @!attribute [rw] vpc_configuration
@@ -601,10 +1243,12 @@ module Aws::S3Control
601
1243
  #
602
1244
  # @!attribute [rw] public_access_block_configuration
603
1245
  # The `PublicAccessBlock` configuration that you want to apply to this
604
- # Amazon S3 bucket. You can enable the configuration options in any
1246
+ # Amazon S3 account. You can enable the configuration options in any
605
1247
  # combination. For more information about when Amazon S3 considers a
606
1248
  # bucket or object public, see [The Meaning of "Public"][1] in the
607
- # Amazon Simple Storage Service Developer Guide.
1249
+ # *Amazon Simple Storage Service Developer Guide*.
1250
+ #
1251
+ # This is not supported for Amazon S3 on Outposts.
608
1252
  #
609
1253
  #
610
1254
  #
@@ -628,6 +1272,211 @@ module Aws::S3Control
628
1272
  include Aws::Structure
629
1273
  end
630
1274
 
1275
+ # @note When making an API call, you may pass GetBucketLifecycleConfigurationRequest
1276
+ # data as a hash:
1277
+ #
1278
+ # {
1279
+ # account_id: "AccountId", # required
1280
+ # bucket: "BucketName", # required
1281
+ # }
1282
+ #
1283
+ # @!attribute [rw] account_id
1284
+ # The AWS account ID of the Outposts bucket.
1285
+ # @return [String]
1286
+ #
1287
+ # @!attribute [rw] bucket
1288
+ # The Amazon Resource Name (ARN) of the bucket.
1289
+ #
1290
+ # For using this parameter with Amazon S3 on Outposts with the REST
1291
+ # API, you must specify the name and the x-amz-outpost-id as well.
1292
+ #
1293
+ # For using this parameter with S3 on Outposts with the AWS SDK and
1294
+ # CLI, you must specify the ARN of the bucket accessed in the format
1295
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
1296
+ # For example, to access the bucket `reports` through outpost
1297
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
1298
+ # use the URL encoding of
1299
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
1300
+ # The value must be URL encoded.
1301
+ # @return [String]
1302
+ #
1303
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketLifecycleConfigurationRequest AWS API Documentation
1304
+ #
1305
+ class GetBucketLifecycleConfigurationRequest < Struct.new(
1306
+ :account_id,
1307
+ :bucket)
1308
+ SENSITIVE = []
1309
+ include Aws::Structure
1310
+ end
1311
+
1312
+ # @!attribute [rw] rules
1313
+ # Container for the lifecycle rule of the Outposts bucket.
1314
+ # @return [Array<Types::LifecycleRule>]
1315
+ #
1316
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketLifecycleConfigurationResult AWS API Documentation
1317
+ #
1318
+ class GetBucketLifecycleConfigurationResult < Struct.new(
1319
+ :rules)
1320
+ SENSITIVE = []
1321
+ include Aws::Structure
1322
+ end
1323
+
1324
+ # @note When making an API call, you may pass GetBucketPolicyRequest
1325
+ # data as a hash:
1326
+ #
1327
+ # {
1328
+ # account_id: "AccountId", # required
1329
+ # bucket: "BucketName", # required
1330
+ # }
1331
+ #
1332
+ # @!attribute [rw] account_id
1333
+ # The AWS account ID of the Outposts bucket.
1334
+ # @return [String]
1335
+ #
1336
+ # @!attribute [rw] bucket
1337
+ # Specifies the bucket.
1338
+ #
1339
+ # For using this parameter with Amazon S3 on Outposts with the REST
1340
+ # API, you must specify the name and the x-amz-outpost-id as well.
1341
+ #
1342
+ # For using this parameter with S3 on Outposts with the AWS SDK and
1343
+ # CLI, you must specify the ARN of the bucket accessed in the format
1344
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
1345
+ # For example, to access the bucket `reports` through outpost
1346
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
1347
+ # use the URL encoding of
1348
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
1349
+ # The value must be URL encoded.
1350
+ # @return [String]
1351
+ #
1352
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketPolicyRequest AWS API Documentation
1353
+ #
1354
+ class GetBucketPolicyRequest < Struct.new(
1355
+ :account_id,
1356
+ :bucket)
1357
+ SENSITIVE = []
1358
+ include Aws::Structure
1359
+ end
1360
+
1361
+ # @!attribute [rw] policy
1362
+ # The policy of the Outposts bucket.
1363
+ # @return [String]
1364
+ #
1365
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketPolicyResult AWS API Documentation
1366
+ #
1367
+ class GetBucketPolicyResult < Struct.new(
1368
+ :policy)
1369
+ SENSITIVE = []
1370
+ include Aws::Structure
1371
+ end
1372
+
1373
+ # @note When making an API call, you may pass GetBucketRequest
1374
+ # data as a hash:
1375
+ #
1376
+ # {
1377
+ # account_id: "AccountId", # required
1378
+ # bucket: "BucketName", # required
1379
+ # }
1380
+ #
1381
+ # @!attribute [rw] account_id
1382
+ # The AWS account ID of the Outposts bucket.
1383
+ # @return [String]
1384
+ #
1385
+ # @!attribute [rw] bucket
1386
+ # Specifies the bucket.
1387
+ #
1388
+ # For using this parameter with Amazon S3 on Outposts with the REST
1389
+ # API, you must specify the name and the x-amz-outpost-id as well.
1390
+ #
1391
+ # For using this parameter with S3 on Outposts with the AWS SDK and
1392
+ # CLI, you must specify the ARN of the bucket accessed in the format
1393
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
1394
+ # For example, to access the bucket `reports` through outpost
1395
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
1396
+ # use the URL encoding of
1397
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
1398
+ # The value must be URL encoded.
1399
+ # @return [String]
1400
+ #
1401
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketRequest AWS API Documentation
1402
+ #
1403
+ class GetBucketRequest < Struct.new(
1404
+ :account_id,
1405
+ :bucket)
1406
+ SENSITIVE = []
1407
+ include Aws::Structure
1408
+ end
1409
+
1410
+ # @!attribute [rw] bucket
1411
+ # The Outposts bucket requested.
1412
+ # @return [String]
1413
+ #
1414
+ # @!attribute [rw] public_access_block_enabled
1415
+ # @return [Boolean]
1416
+ #
1417
+ # @!attribute [rw] creation_date
1418
+ # The creation date of the Outposts bucket.
1419
+ # @return [Time]
1420
+ #
1421
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketResult AWS API Documentation
1422
+ #
1423
+ class GetBucketResult < Struct.new(
1424
+ :bucket,
1425
+ :public_access_block_enabled,
1426
+ :creation_date)
1427
+ SENSITIVE = []
1428
+ include Aws::Structure
1429
+ end
1430
+
1431
+ # @note When making an API call, you may pass GetBucketTaggingRequest
1432
+ # data as a hash:
1433
+ #
1434
+ # {
1435
+ # account_id: "AccountId", # required
1436
+ # bucket: "BucketName", # required
1437
+ # }
1438
+ #
1439
+ # @!attribute [rw] account_id
1440
+ # The AWS account ID of the Outposts bucket.
1441
+ # @return [String]
1442
+ #
1443
+ # @!attribute [rw] bucket
1444
+ # Specifies the bucket.
1445
+ #
1446
+ # For using this parameter with Amazon S3 on Outposts with the REST
1447
+ # API, you must specify the name and the x-amz-outpost-id as well.
1448
+ #
1449
+ # For using this parameter with S3 on Outposts with the AWS SDK and
1450
+ # CLI, you must specify the ARN of the bucket accessed in the format
1451
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
1452
+ # For example, to access the bucket `reports` through outpost
1453
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
1454
+ # use the URL encoding of
1455
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
1456
+ # The value must be URL encoded.
1457
+ # @return [String]
1458
+ #
1459
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketTaggingRequest AWS API Documentation
1460
+ #
1461
+ class GetBucketTaggingRequest < Struct.new(
1462
+ :account_id,
1463
+ :bucket)
1464
+ SENSITIVE = []
1465
+ include Aws::Structure
1466
+ end
1467
+
1468
+ # @!attribute [rw] tag_set
1469
+ # The tags set of the Outposts bucket.
1470
+ # @return [Array<Types::S3Tag>]
1471
+ #
1472
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketTaggingResult AWS API Documentation
1473
+ #
1474
+ class GetBucketTaggingResult < Struct.new(
1475
+ :tag_set)
1476
+ SENSITIVE = []
1477
+ include Aws::Structure
1478
+ end
1479
+
631
1480
  # @note When making an API call, you may pass GetJobTaggingRequest
632
1481
  # data as a hash:
633
1482
  #
@@ -637,12 +1486,11 @@ module Aws::S3Control
637
1486
  # }
638
1487
  #
639
1488
  # @!attribute [rw] account_id
640
- # The AWS account ID associated with the Amazon S3 Batch Operations
641
- # job.
1489
+ # The AWS account ID associated with the S3 Batch Operations job.
642
1490
  # @return [String]
643
1491
  #
644
1492
  # @!attribute [rw] job_id
645
- # The ID for the Amazon S3 Batch Operations job whose tags you want to
1493
+ # The ID for the S3 Batch Operations job whose tags you want to
646
1494
  # retrieve.
647
1495
  # @return [String]
648
1496
  #
@@ -656,7 +1504,7 @@ module Aws::S3Control
656
1504
  end
657
1505
 
658
1506
  # @!attribute [rw] tags
659
- # The set of tags associated with the Amazon S3 Batch Operations job.
1507
+ # The set of tags associated with the S3 Batch Operations job.
660
1508
  # @return [Array<Types::S3Tag>]
661
1509
  #
662
1510
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetJobTaggingResult AWS API Documentation
@@ -667,39 +1515,113 @@ module Aws::S3Control
667
1515
  include Aws::Structure
668
1516
  end
669
1517
 
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]
1518
+ # @!attribute [rw] public_access_block_configuration
1519
+ # The `PublicAccessBlock` configuration currently in effect for this
1520
+ # AWS account.
1521
+ # @return [Types::PublicAccessBlockConfiguration]
1522
+ #
1523
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlockOutput AWS API Documentation
1524
+ #
1525
+ class GetPublicAccessBlockOutput < Struct.new(
1526
+ :public_access_block_configuration)
1527
+ SENSITIVE = []
1528
+ include Aws::Structure
1529
+ end
1530
+
1531
+ # @note When making an API call, you may pass GetPublicAccessBlockRequest
1532
+ # data as a hash:
1533
+ #
1534
+ # {
1535
+ # account_id: "AccountId", # required
1536
+ # }
1537
+ #
1538
+ # @!attribute [rw] account_id
1539
+ # The account ID for the AWS account whose `PublicAccessBlock`
1540
+ # configuration you want to retrieve.
1541
+ # @return [String]
1542
+ #
1543
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlockRequest AWS API Documentation
1544
+ #
1545
+ class GetPublicAccessBlockRequest < Struct.new(
1546
+ :account_id)
1547
+ SENSITIVE = []
1548
+ include Aws::Structure
1549
+ end
1550
+
1551
+ # @note When making an API call, you may pass GetStorageLensConfigurationRequest
1552
+ # data as a hash:
1553
+ #
1554
+ # {
1555
+ # config_id: "ConfigId", # required
1556
+ # account_id: "AccountId", # required
1557
+ # }
1558
+ #
1559
+ # @!attribute [rw] config_id
1560
+ # The ID of the Amazon S3 Storage Lens configuration.
1561
+ # @return [String]
1562
+ #
1563
+ # @!attribute [rw] account_id
1564
+ # The account ID of the requester.
1565
+ # @return [String]
1566
+ #
1567
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfigurationRequest AWS API Documentation
1568
+ #
1569
+ class GetStorageLensConfigurationRequest < Struct.new(
1570
+ :config_id,
1571
+ :account_id)
1572
+ SENSITIVE = []
1573
+ include Aws::Structure
1574
+ end
1575
+
1576
+ # @!attribute [rw] storage_lens_configuration
1577
+ # The S3 Storage Lens configuration requested.
1578
+ # @return [Types::StorageLensConfiguration]
674
1579
  #
675
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlockOutput AWS API Documentation
1580
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfigurationResult AWS API Documentation
676
1581
  #
677
- class GetPublicAccessBlockOutput < Struct.new(
678
- :public_access_block_configuration)
1582
+ class GetStorageLensConfigurationResult < Struct.new(
1583
+ :storage_lens_configuration)
679
1584
  SENSITIVE = []
680
1585
  include Aws::Structure
681
1586
  end
682
1587
 
683
- # @note When making an API call, you may pass GetPublicAccessBlockRequest
1588
+ # @note When making an API call, you may pass GetStorageLensConfigurationTaggingRequest
684
1589
  # data as a hash:
685
1590
  #
686
1591
  # {
1592
+ # config_id: "ConfigId", # required
687
1593
  # account_id: "AccountId", # required
688
1594
  # }
689
1595
  #
1596
+ # @!attribute [rw] config_id
1597
+ # The ID of the Amazon S3 Storage Lens configuration.
1598
+ # @return [String]
1599
+ #
690
1600
  # @!attribute [rw] account_id
691
- # The account ID for the Amazon Web Services account whose
692
- # `PublicAccessBlock` configuration you want to retrieve.
1601
+ # The account ID of the requester.
693
1602
  # @return [String]
694
1603
  #
695
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlockRequest AWS API Documentation
1604
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfigurationTaggingRequest AWS API Documentation
696
1605
  #
697
- class GetPublicAccessBlockRequest < Struct.new(
1606
+ class GetStorageLensConfigurationTaggingRequest < Struct.new(
1607
+ :config_id,
698
1608
  :account_id)
699
1609
  SENSITIVE = []
700
1610
  include Aws::Structure
701
1611
  end
702
1612
 
1613
+ # @!attribute [rw] tags
1614
+ # The tags of S3 Storage Lens configuration requested.
1615
+ # @return [Array<Types::StorageLensTag>]
1616
+ #
1617
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfigurationTaggingResult AWS API Documentation
1618
+ #
1619
+ class GetStorageLensConfigurationTaggingResult < Struct.new(
1620
+ :tags)
1621
+ SENSITIVE = []
1622
+ include Aws::Structure
1623
+ end
1624
+
703
1625
  # @!attribute [rw] message
704
1626
  # @return [String]
705
1627
  #
@@ -711,6 +1633,33 @@ module Aws::S3Control
711
1633
  include Aws::Structure
712
1634
  end
713
1635
 
1636
+ # A container for what Amazon S3 Storage Lens configuration includes.
1637
+ #
1638
+ # @note When making an API call, you may pass Include
1639
+ # data as a hash:
1640
+ #
1641
+ # {
1642
+ # buckets: ["S3BucketArnString"],
1643
+ # regions: ["S3AWSRegion"],
1644
+ # }
1645
+ #
1646
+ # @!attribute [rw] buckets
1647
+ # A container for the S3 Storage Lens bucket includes.
1648
+ # @return [Array<String>]
1649
+ #
1650
+ # @!attribute [rw] regions
1651
+ # A container for the S3 Storage Lens Region includes.
1652
+ # @return [Array<String>]
1653
+ #
1654
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/Include AWS API Documentation
1655
+ #
1656
+ class Include < Struct.new(
1657
+ :buckets,
1658
+ :regions)
1659
+ SENSITIVE = []
1660
+ include Aws::Structure
1661
+ end
1662
+
714
1663
  # @!attribute [rw] message
715
1664
  # @return [String]
716
1665
  #
@@ -776,7 +1725,7 @@ module Aws::S3Control
776
1725
  # @return [Types::JobManifest]
777
1726
  #
778
1727
  # @!attribute [rw] operation
779
- # The operation that the specified job is configured to execute on the
1728
+ # The operation that the specified job is configured to run on the
780
1729
  # objects listed in the manifest.
781
1730
  # @return [Types::JobOperation]
782
1731
  #
@@ -785,12 +1734,13 @@ module Aws::S3Control
785
1734
  # @return [Integer]
786
1735
  #
787
1736
  # @!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.
1737
+ # Describes the total number of tasks that the specified job has run,
1738
+ # the number of tasks that succeeded, and the number of tasks that
1739
+ # failed.
791
1740
  # @return [Types::JobProgressSummary]
792
1741
  #
793
1742
  # @!attribute [rw] status_update_reason
1743
+ # The reason for updating the job.
794
1744
  # @return [String]
795
1745
  #
796
1746
  # @!attribute [rw] failure_reasons
@@ -815,7 +1765,7 @@ module Aws::S3Control
815
1765
  #
816
1766
  # @!attribute [rw] role_arn
817
1767
  # The Amazon Resource Name (ARN) for the AWS Identity and Access
818
- # Management (IAM) role assigned to execute the tasks for this job.
1768
+ # Management (IAM) role assigned to run the tasks for this job.
819
1769
  # @return [String]
820
1770
  #
821
1771
  # @!attribute [rw] suspended_date
@@ -886,7 +1836,7 @@ module Aws::S3Control
886
1836
  # @return [String]
887
1837
  #
888
1838
  # @!attribute [rw] operation
889
- # The operation that the specified job is configured to run on each
1839
+ # The operation that the specified job is configured to run on every
890
1840
  # object listed in the manifest.
891
1841
  # @return [String]
892
1842
  #
@@ -909,9 +1859,9 @@ module Aws::S3Control
909
1859
  # @return [Time]
910
1860
  #
911
1861
  # @!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.
1862
+ # Describes the total number of tasks that the specified job has run,
1863
+ # the number of tasks that succeeded, and the number of tasks that
1864
+ # failed.
915
1865
  # @return [Types::JobProgressSummary]
916
1866
  #
917
1867
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/JobListDescriptor AWS API Documentation
@@ -979,6 +1929,14 @@ module Aws::S3Control
979
1929
  #
980
1930
  # @!attribute [rw] object_arn
981
1931
  # The Amazon Resource Name (ARN) for a manifest object.
1932
+ #
1933
+ # Replacement must be made for object keys containing special
1934
+ # characters (such as carriage returns) when using XML requests. For
1935
+ # more information, see [ XML related object key constraints][1].
1936
+ #
1937
+ #
1938
+ #
1939
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints
982
1940
  # @return [String]
983
1941
  #
984
1942
  # @!attribute [rw] object_version_id
@@ -1031,10 +1989,10 @@ module Aws::S3Control
1031
1989
  include Aws::Structure
1032
1990
  end
1033
1991
 
1034
- # The operation that you want this job to perform on each object listed
1992
+ # The operation that you want this job to perform on every object listed
1035
1993
  # in the manifest. For more information about the available operations,
1036
- # see [Available Operations][1] in the *Amazon Simple Storage Service
1037
- # Developer Guide*.
1994
+ # see [Operations][1] in the *Amazon Simple Storage Service Developer
1995
+ # Guide*.
1038
1996
  #
1039
1997
  #
1040
1998
  #
@@ -1122,6 +2080,8 @@ module Aws::S3Control
1122
2080
  # },
1123
2081
  # ],
1124
2082
  # },
2083
+ # s3_delete_object_tagging: {
2084
+ # },
1125
2085
  # s3_initiate_restore_object: {
1126
2086
  # expiration_in_days: 1,
1127
2087
  # glacier_job_tier: "BULK", # accepts BULK, STANDARD
@@ -1131,179 +2091,501 @@ module Aws::S3Control
1131
2091
  # status: "OFF", # required, accepts OFF, ON
1132
2092
  # },
1133
2093
  # },
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
2094
+ # s3_put_object_retention: {
2095
+ # bypass_governance_retention: false,
2096
+ # retention: { # required
2097
+ # retain_until_date: Time.now,
2098
+ # mode: "COMPLIANCE", # accepts COMPLIANCE, GOVERNANCE
2099
+ # },
2100
+ # },
2101
+ # }
2102
+ #
2103
+ # @!attribute [rw] lambda_invoke
2104
+ # Directs the specified job to invoke an AWS Lambda function on every
2105
+ # object in the manifest.
2106
+ # @return [Types::LambdaInvokeOperation]
2107
+ #
2108
+ # @!attribute [rw] s3_put_object_copy
2109
+ # Directs the specified job to run a PUT Copy object call on every
2110
+ # object in the manifest.
2111
+ # @return [Types::S3CopyObjectOperation]
2112
+ #
2113
+ # @!attribute [rw] s3_put_object_acl
2114
+ # Directs the specified job to run a PUT Object acl call on every
2115
+ # object in the manifest.
2116
+ # @return [Types::S3SetObjectAclOperation]
2117
+ #
2118
+ # @!attribute [rw] s3_put_object_tagging
2119
+ # Directs the specified job to run a PUT Object tagging call on every
2120
+ # object in the manifest.
2121
+ # @return [Types::S3SetObjectTaggingOperation]
2122
+ #
2123
+ # @!attribute [rw] s3_delete_object_tagging
2124
+ # Directs the specified job to execute a DELETE Object tagging call on
2125
+ # every object in the manifest.
2126
+ # @return [Types::S3DeleteObjectTaggingOperation]
2127
+ #
2128
+ # @!attribute [rw] s3_initiate_restore_object
2129
+ # Directs the specified job to initiate restore requests for every
2130
+ # archived object in the manifest.
2131
+ # @return [Types::S3InitiateRestoreObjectOperation]
2132
+ #
2133
+ # @!attribute [rw] s3_put_object_legal_hold
2134
+ # Contains the configuration for an S3 Object Lock legal hold
2135
+ # operation that an S3 Batch Operations job passes every object to the
2136
+ # underlying `PutObjectLegalHold` API. For more information, see
2137
+ # [Using S3 Object Lock legal hold with S3 Batch Operations][1] in the
2138
+ # *Amazon Simple Storage Service Developer Guide*.
2139
+ #
2140
+ #
2141
+ #
2142
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-legal-hold.html
2143
+ # @return [Types::S3SetObjectLegalHoldOperation]
2144
+ #
2145
+ # @!attribute [rw] s3_put_object_retention
2146
+ # Contains the configuration parameters for the Object Lock retention
2147
+ # action for an S3 Batch Operations job. Batch Operations passes every
2148
+ # object to the underlying `PutObjectRetention` API. For more
2149
+ # information, see [Using S3 Object Lock retention with S3 Batch
2150
+ # Operations][1] in the *Amazon Simple Storage Service Developer
2151
+ # Guide*.
2152
+ #
2153
+ #
2154
+ #
2155
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html
2156
+ # @return [Types::S3SetObjectRetentionOperation]
2157
+ #
2158
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/JobOperation AWS API Documentation
2159
+ #
2160
+ class JobOperation < Struct.new(
2161
+ :lambda_invoke,
2162
+ :s3_put_object_copy,
2163
+ :s3_put_object_acl,
2164
+ :s3_put_object_tagging,
2165
+ :s3_delete_object_tagging,
2166
+ :s3_initiate_restore_object,
2167
+ :s3_put_object_legal_hold,
2168
+ :s3_put_object_retention)
2169
+ SENSITIVE = []
2170
+ include Aws::Structure
2171
+ end
2172
+
2173
+ # Describes the total number of tasks that the specified job has
2174
+ # started, the number of tasks that succeeded, and the number of tasks
2175
+ # that failed.
2176
+ #
2177
+ # @!attribute [rw] total_number_of_tasks
2178
+ # @return [Integer]
2179
+ #
2180
+ # @!attribute [rw] number_of_tasks_succeeded
2181
+ # @return [Integer]
2182
+ #
2183
+ # @!attribute [rw] number_of_tasks_failed
2184
+ # @return [Integer]
2185
+ #
2186
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/JobProgressSummary AWS API Documentation
2187
+ #
2188
+ class JobProgressSummary < Struct.new(
2189
+ :total_number_of_tasks,
2190
+ :number_of_tasks_succeeded,
2191
+ :number_of_tasks_failed)
2192
+ SENSITIVE = []
2193
+ include Aws::Structure
2194
+ end
2195
+
2196
+ # Contains the configuration parameters for a job-completion report.
2197
+ #
2198
+ # @note When making an API call, you may pass JobReport
2199
+ # data as a hash:
2200
+ #
2201
+ # {
2202
+ # bucket: "S3BucketArnString",
2203
+ # format: "Report_CSV_20180820", # accepts Report_CSV_20180820
2204
+ # enabled: false, # required
2205
+ # prefix: "ReportPrefixString",
2206
+ # report_scope: "AllTasks", # accepts AllTasks, FailedTasksOnly
2207
+ # }
2208
+ #
2209
+ # @!attribute [rw] bucket
2210
+ # The Amazon Resource Name (ARN) for the bucket where specified
2211
+ # job-completion report will be stored.
2212
+ # @return [String]
2213
+ #
2214
+ # @!attribute [rw] format
2215
+ # The format of the specified job-completion report.
2216
+ # @return [String]
2217
+ #
2218
+ # @!attribute [rw] enabled
2219
+ # Indicates whether the specified job will generate a job-completion
2220
+ # report.
2221
+ # @return [Boolean]
2222
+ #
2223
+ # @!attribute [rw] prefix
2224
+ # An optional prefix to describe where in the specified bucket the
2225
+ # job-completion report will be stored. Amazon S3 stores the
2226
+ # job-completion report at `<prefix>/job-<job-id>/report.json`.
2227
+ # @return [String]
2228
+ #
2229
+ # @!attribute [rw] report_scope
2230
+ # Indicates whether the job-completion report will include details of
2231
+ # all tasks or only failed tasks.
2232
+ # @return [String]
2233
+ #
2234
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/JobReport AWS API Documentation
2235
+ #
2236
+ class JobReport < Struct.new(
2237
+ :bucket,
2238
+ :format,
2239
+ :enabled,
2240
+ :prefix,
2241
+ :report_scope)
2242
+ SENSITIVE = []
2243
+ include Aws::Structure
2244
+ end
2245
+
2246
+ # @!attribute [rw] message
2247
+ # @return [String]
2248
+ #
2249
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/JobStatusException AWS API Documentation
2250
+ #
2251
+ class JobStatusException < Struct.new(
2252
+ :message)
2253
+ SENSITIVE = []
2254
+ include Aws::Structure
2255
+ end
2256
+
2257
+ # Contains the configuration parameters for a `Lambda Invoke` operation.
2258
+ #
2259
+ # @note When making an API call, you may pass LambdaInvokeOperation
2260
+ # data as a hash:
2261
+ #
2262
+ # {
2263
+ # function_arn: "FunctionArnString",
2264
+ # }
2265
+ #
2266
+ # @!attribute [rw] function_arn
2267
+ # The Amazon Resource Name (ARN) for the AWS Lambda function that the
2268
+ # specified job will invoke on every object in the manifest.
2269
+ # @return [String]
2270
+ #
2271
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/LambdaInvokeOperation AWS API Documentation
2272
+ #
2273
+ class LambdaInvokeOperation < Struct.new(
2274
+ :function_arn)
2275
+ SENSITIVE = []
2276
+ include Aws::Structure
2277
+ end
2278
+
2279
+ # The container for the Outposts bucket lifecycle configuration.
2280
+ #
2281
+ # @note When making an API call, you may pass LifecycleConfiguration
2282
+ # data as a hash:
2283
+ #
2284
+ # {
2285
+ # rules: [
2286
+ # {
2287
+ # expiration: {
2288
+ # date: Time.now,
2289
+ # days: 1,
2290
+ # expired_object_delete_marker: false,
2291
+ # },
2292
+ # id: "ID",
2293
+ # filter: {
2294
+ # prefix: "Prefix",
2295
+ # tag: {
2296
+ # key: "TagKeyString", # required
2297
+ # value: "TagValueString", # required
2298
+ # },
2299
+ # and: {
2300
+ # prefix: "Prefix",
2301
+ # tags: [
2302
+ # {
2303
+ # key: "TagKeyString", # required
2304
+ # value: "TagValueString", # required
2305
+ # },
2306
+ # ],
2307
+ # },
2308
+ # },
2309
+ # status: "Enabled", # required, accepts Enabled, Disabled
2310
+ # transitions: [
2311
+ # {
2312
+ # date: Time.now,
2313
+ # days: 1,
2314
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
2315
+ # },
2316
+ # ],
2317
+ # noncurrent_version_transitions: [
2318
+ # {
2319
+ # noncurrent_days: 1,
2320
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
2321
+ # },
2322
+ # ],
2323
+ # noncurrent_version_expiration: {
2324
+ # noncurrent_days: 1,
2325
+ # },
2326
+ # abort_incomplete_multipart_upload: {
2327
+ # days_after_initiation: 1,
2328
+ # },
2329
+ # },
2330
+ # ],
2331
+ # }
2332
+ #
2333
+ # @!attribute [rw] rules
2334
+ # A lifecycle rule for individual objects in an Outposts bucket.
2335
+ # @return [Array<Types::LifecycleRule>]
2336
+ #
2337
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/LifecycleConfiguration AWS API Documentation
2338
+ #
2339
+ class LifecycleConfiguration < Struct.new(
2340
+ :rules)
2341
+ SENSITIVE = []
2342
+ include Aws::Structure
2343
+ end
2344
+
2345
+ # The container of the Outposts bucket lifecycle expiration.
2346
+ #
2347
+ # @note When making an API call, you may pass LifecycleExpiration
2348
+ # data as a hash:
2349
+ #
2350
+ # {
2351
+ # date: Time.now,
2352
+ # days: 1,
2353
+ # expired_object_delete_marker: false,
2354
+ # }
2355
+ #
2356
+ # @!attribute [rw] date
2357
+ # Indicates at what date the object is to be deleted. Should be in GMT
2358
+ # ISO 8601 format.
2359
+ # @return [Time]
2360
+ #
2361
+ # @!attribute [rw] days
2362
+ # Indicates the lifetime, in days, of the objects that are subject to
2363
+ # the rule. The value must be a non-zero positive integer.
2364
+ # @return [Integer]
2365
+ #
2366
+ # @!attribute [rw] expired_object_delete_marker
2367
+ # Indicates whether Amazon S3 will remove a delete marker with no
2368
+ # noncurrent versions. If set to true, the delete marker will be
2369
+ # expired. If set to false, the policy takes no action. This cannot be
2370
+ # specified with Days or Date in a Lifecycle Expiration Policy.
2371
+ # @return [Boolean]
2372
+ #
2373
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/LifecycleExpiration AWS API Documentation
2374
+ #
2375
+ class LifecycleExpiration < Struct.new(
2376
+ :date,
2377
+ :days,
2378
+ :expired_object_delete_marker)
2379
+ SENSITIVE = []
2380
+ include Aws::Structure
2381
+ end
2382
+
2383
+ # The container for the Outposts bucket lifecycle rule.
2384
+ #
2385
+ # @note When making an API call, you may pass LifecycleRule
2386
+ # data as a hash:
2387
+ #
2388
+ # {
2389
+ # expiration: {
2390
+ # date: Time.now,
2391
+ # days: 1,
2392
+ # expired_object_delete_marker: false,
2393
+ # },
2394
+ # id: "ID",
2395
+ # filter: {
2396
+ # prefix: "Prefix",
2397
+ # tag: {
2398
+ # key: "TagKeyString", # required
2399
+ # value: "TagValueString", # required
2400
+ # },
2401
+ # and: {
2402
+ # prefix: "Prefix",
2403
+ # tags: [
2404
+ # {
2405
+ # key: "TagKeyString", # required
2406
+ # value: "TagValueString", # required
2407
+ # },
2408
+ # ],
2409
+ # },
2410
+ # },
2411
+ # status: "Enabled", # required, accepts Enabled, Disabled
2412
+ # transitions: [
2413
+ # {
2414
+ # date: Time.now,
2415
+ # days: 1,
2416
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
2417
+ # },
2418
+ # ],
2419
+ # noncurrent_version_transitions: [
2420
+ # {
2421
+ # noncurrent_days: 1,
2422
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
1139
2423
  # },
2424
+ # ],
2425
+ # noncurrent_version_expiration: {
2426
+ # noncurrent_days: 1,
2427
+ # },
2428
+ # abort_incomplete_multipart_upload: {
2429
+ # days_after_initiation: 1,
1140
2430
  # },
1141
2431
  # }
1142
2432
  #
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]
2433
+ # @!attribute [rw] expiration
2434
+ # Specifies the expiration for the lifecycle of the object in the form
2435
+ # of date, days and, whether the object has a delete marker.
2436
+ # @return [Types::LifecycleExpiration]
1152
2437
  #
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]
2438
+ # @!attribute [rw] id
2439
+ # Unique identifier for the rule. The value cannot be longer than 255
2440
+ # characters.
2441
+ # @return [String]
1157
2442
  #
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]
2443
+ # @!attribute [rw] filter
2444
+ # The container for the filter of lifecycle rule.
2445
+ # @return [Types::LifecycleRuleFilter]
1162
2446
  #
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]
2447
+ # @!attribute [rw] status
2448
+ # If 'Enabled', the rule is currently being applied. If
2449
+ # 'Disabled', the rule is not currently being applied.
2450
+ # @return [String]
1167
2451
  #
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].
2452
+ # @!attribute [rw] transitions
2453
+ # Specifies when an Amazon S3 object transitions to a specified
2454
+ # storage class.
1173
2455
  #
2456
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
1174
2457
  #
2458
+ # </note>
2459
+ # @return [Array<Types::Transition>]
1175
2460
  #
1176
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.htmll#object-lock-legal-holds
1177
- # @return [Types::S3SetObjectLegalHoldOperation]
2461
+ # @!attribute [rw] noncurrent_version_transitions
2462
+ # Specifies the transition rule for the lifecycle rule that describes
2463
+ # when noncurrent objects transition to a specific storage class. If
2464
+ # your bucket is versioning-enabled (or versioning is suspended), you
2465
+ # can set this action to request that Amazon S3 transition noncurrent
2466
+ # object versions to a specific storage class at a set period in the
2467
+ # object's lifetime.
1178
2468
  #
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].
2469
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
1184
2470
  #
2471
+ # </note>
2472
+ # @return [Array<Types::NoncurrentVersionTransition>]
1185
2473
  #
2474
+ # @!attribute [rw] noncurrent_version_expiration
2475
+ # The noncurrent version expiration of the lifecycle rule.
1186
2476
  #
1187
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes
1188
- # @return [Types::S3SetObjectRetentionOperation]
2477
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
1189
2478
  #
1190
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/JobOperation AWS API Documentation
2479
+ # </note>
2480
+ # @return [Types::NoncurrentVersionExpiration]
1191
2481
  #
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.
2482
+ # @!attribute [rw] abort_incomplete_multipart_upload
2483
+ # Specifies the days since the initiation of an incomplete multipart
2484
+ # upload that Amazon S3 waits before permanently removing all parts of
2485
+ # the upload. For more information, see [ Aborting Incomplete
2486
+ # Multipart Uploads Using a Bucket Lifecycle Policy][1] in the *Amazon
2487
+ # Simple Storage Service Developer Guide*.
1207
2488
  #
1208
- # @!attribute [rw] total_number_of_tasks
1209
- # @return [Integer]
1210
2489
  #
1211
- # @!attribute [rw] number_of_tasks_succeeded
1212
- # @return [Integer]
1213
2490
  #
1214
- # @!attribute [rw] number_of_tasks_failed
1215
- # @return [Integer]
2491
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config
2492
+ # @return [Types::AbortIncompleteMultipartUpload]
1216
2493
  #
1217
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/JobProgressSummary AWS API Documentation
2494
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/LifecycleRule AWS API Documentation
1218
2495
  #
1219
- class JobProgressSummary < Struct.new(
1220
- :total_number_of_tasks,
1221
- :number_of_tasks_succeeded,
1222
- :number_of_tasks_failed)
2496
+ class LifecycleRule < Struct.new(
2497
+ :expiration,
2498
+ :id,
2499
+ :filter,
2500
+ :status,
2501
+ :transitions,
2502
+ :noncurrent_version_transitions,
2503
+ :noncurrent_version_expiration,
2504
+ :abort_incomplete_multipart_upload)
1223
2505
  SENSITIVE = []
1224
2506
  include Aws::Structure
1225
2507
  end
1226
2508
 
1227
- # Contains the configuration parameters for a job-completion report.
2509
+ # The container for the Outposts bucket lifecycle rule and operator.
1228
2510
  #
1229
- # @note When making an API call, you may pass JobReport
2511
+ # @note When making an API call, you may pass LifecycleRuleAndOperator
1230
2512
  # data as a hash:
1231
2513
  #
1232
2514
  # {
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
2515
+ # prefix: "Prefix",
2516
+ # tags: [
2517
+ # {
2518
+ # key: "TagKeyString", # required
2519
+ # value: "TagValueString", # required
2520
+ # },
2521
+ # ],
1238
2522
  # }
1239
2523
  #
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
2524
  # @!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.
2525
+ # Prefix identifying one or more objects to which the rule applies.
1259
2526
  # @return [String]
1260
2527
  #
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]
2528
+ # @!attribute [rw] tags
2529
+ # All of these tags must exist in the object's tag set in order for
2530
+ # the rule to apply.
2531
+ # @return [Array<Types::S3Tag>]
1265
2532
  #
1266
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/JobReport AWS API Documentation
2533
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/LifecycleRuleAndOperator AWS API Documentation
1267
2534
  #
1268
- class JobReport < Struct.new(
1269
- :bucket,
1270
- :format,
1271
- :enabled,
2535
+ class LifecycleRuleAndOperator < Struct.new(
1272
2536
  :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)
2537
+ :tags)
1285
2538
  SENSITIVE = []
1286
2539
  include Aws::Structure
1287
2540
  end
1288
2541
 
1289
- # Contains the configuration parameters for a `Lambda Invoke` operation.
2542
+ # The container for the filter of the lifecycle rule.
1290
2543
  #
1291
- # @note When making an API call, you may pass LambdaInvokeOperation
2544
+ # @note When making an API call, you may pass LifecycleRuleFilter
1292
2545
  # data as a hash:
1293
2546
  #
1294
2547
  # {
1295
- # function_arn: "FunctionArnString",
2548
+ # prefix: "Prefix",
2549
+ # tag: {
2550
+ # key: "TagKeyString", # required
2551
+ # value: "TagValueString", # required
2552
+ # },
2553
+ # and: {
2554
+ # prefix: "Prefix",
2555
+ # tags: [
2556
+ # {
2557
+ # key: "TagKeyString", # required
2558
+ # value: "TagValueString", # required
2559
+ # },
2560
+ # ],
2561
+ # },
1296
2562
  # }
1297
2563
  #
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.
2564
+ # @!attribute [rw] prefix
2565
+ # Prefix identifying one or more objects to which the rule applies.
2566
+ #
2567
+ # Replacement must be made for object keys containing special
2568
+ # characters (such as carriage returns) when using XML requests. For
2569
+ # more information, see [ XML related object key constraints][1].
2570
+ #
2571
+ #
2572
+ #
2573
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints
1301
2574
  # @return [String]
1302
2575
  #
1303
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/LambdaInvokeOperation AWS API Documentation
2576
+ # @!attribute [rw] tag
2577
+ # @return [Types::S3Tag]
1304
2578
  #
1305
- class LambdaInvokeOperation < Struct.new(
1306
- :function_arn)
2579
+ # @!attribute [rw] and
2580
+ # The container for the `AND` condition for the lifecycle rule.
2581
+ # @return [Types::LifecycleRuleAndOperator]
2582
+ #
2583
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/LifecycleRuleFilter AWS API Documentation
2584
+ #
2585
+ class LifecycleRuleFilter < Struct.new(
2586
+ :prefix,
2587
+ :tag,
2588
+ :and)
1307
2589
  SENSITIVE = []
1308
2590
  include Aws::Structure
1309
2591
  end
@@ -1326,6 +2608,18 @@ module Aws::S3Control
1326
2608
  # @!attribute [rw] bucket
1327
2609
  # The name of the bucket whose associated access points you want to
1328
2610
  # list.
2611
+ #
2612
+ # For using this parameter with Amazon S3 on Outposts with the REST
2613
+ # API, you must specify the name and the x-amz-outpost-id as well.
2614
+ #
2615
+ # For using this parameter with S3 on Outposts with the AWS SDK and
2616
+ # CLI, you must specify the ARN of the bucket accessed in the format
2617
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
2618
+ # For example, to access the bucket `reports` through outpost
2619
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
2620
+ # use the URL encoding of
2621
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
2622
+ # The value must be URL encoded.
1329
2623
  # @return [String]
1330
2624
  #
1331
2625
  # @!attribute [rw] next_token
@@ -1361,9 +2655,9 @@ module Aws::S3Control
1361
2655
  #
1362
2656
  # @!attribute [rw] next_token
1363
2657
  # 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.
2658
+ # in one call to this API, this field contains a continuation token
2659
+ # that you can provide in subsequent calls to this API to retrieve
2660
+ # additional access points.
1367
2661
  # @return [String]
1368
2662
  #
1369
2663
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPointsResult AWS API Documentation
@@ -1386,6 +2680,7 @@ module Aws::S3Control
1386
2680
  # }
1387
2681
  #
1388
2682
  # @!attribute [rw] account_id
2683
+ # The AWS account ID associated with the S3 Batch Operations job.
1389
2684
  # @return [String]
1390
2685
  #
1391
2686
  # @!attribute [rw] job_statuses
@@ -1437,17 +2732,218 @@ module Aws::S3Control
1437
2732
  include Aws::Structure
1438
2733
  end
1439
2734
 
1440
- # Amazon S3 throws this exception if you make a `GetPublicAccessBlock`
1441
- # request against an account that doesn't have a
1442
- # `PublicAccessBlockConfiguration` set.
2735
+ # @note When making an API call, you may pass ListRegionalBucketsRequest
2736
+ # data as a hash:
2737
+ #
2738
+ # {
2739
+ # account_id: "AccountId", # required
2740
+ # next_token: "NonEmptyMaxLength1024String",
2741
+ # max_results: 1,
2742
+ # outpost_id: "NonEmptyMaxLength64String",
2743
+ # }
2744
+ #
2745
+ # @!attribute [rw] account_id
2746
+ # The AWS account ID of the Outposts bucket.
2747
+ # @return [String]
2748
+ #
2749
+ # @!attribute [rw] next_token
2750
+ # @return [String]
2751
+ #
2752
+ # @!attribute [rw] max_results
2753
+ # @return [Integer]
2754
+ #
2755
+ # @!attribute [rw] outpost_id
2756
+ # The ID of the AWS Outposts.
2757
+ #
2758
+ # <note markdown="1"> This is required by Amazon S3 on Outposts buckets.
2759
+ #
2760
+ # </note>
2761
+ # @return [String]
2762
+ #
2763
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListRegionalBucketsRequest AWS API Documentation
2764
+ #
2765
+ class ListRegionalBucketsRequest < Struct.new(
2766
+ :account_id,
2767
+ :next_token,
2768
+ :max_results,
2769
+ :outpost_id)
2770
+ SENSITIVE = []
2771
+ include Aws::Structure
2772
+ end
2773
+
2774
+ # @!attribute [rw] regional_bucket_list
2775
+ # @return [Array<Types::RegionalBucket>]
2776
+ #
2777
+ # @!attribute [rw] next_token
2778
+ # `NextToken` is sent when `isTruncated` is true, which means there
2779
+ # are more buckets that can be listed. The next list requests to
2780
+ # Amazon S3 can be continued with this `NextToken`. `NextToken` is
2781
+ # obfuscated and is not a real key.
2782
+ # @return [String]
2783
+ #
2784
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListRegionalBucketsResult AWS API Documentation
2785
+ #
2786
+ class ListRegionalBucketsResult < Struct.new(
2787
+ :regional_bucket_list,
2788
+ :next_token)
2789
+ SENSITIVE = []
2790
+ include Aws::Structure
2791
+ end
2792
+
2793
+ # Part of `ListStorageLensConfigurationResult`. Each entry includes the
2794
+ # description of the S3 Storage Lens configuration, its home Region,
2795
+ # whether it is enabled, its Amazon Resource Name (ARN), and config ID.
2796
+ #
2797
+ # @!attribute [rw] id
2798
+ # A container for the S3 Storage Lens configuration ID.
2799
+ # @return [String]
2800
+ #
2801
+ # @!attribute [rw] storage_lens_arn
2802
+ # The ARN of the S3 Storage Lens configuration. This property is
2803
+ # read-only.
2804
+ # @return [String]
2805
+ #
2806
+ # @!attribute [rw] home_region
2807
+ # A container for the S3 Storage Lens home Region. Your metrics data
2808
+ # is stored and retained in your designated S3 Storage Lens home
2809
+ # Region.
2810
+ # @return [String]
2811
+ #
2812
+ # @!attribute [rw] is_enabled
2813
+ # A container for whether the S3 Storage Lens configuration is
2814
+ # enabled. This property is required.
2815
+ # @return [Boolean]
2816
+ #
2817
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListStorageLensConfigurationEntry AWS API Documentation
2818
+ #
2819
+ class ListStorageLensConfigurationEntry < Struct.new(
2820
+ :id,
2821
+ :storage_lens_arn,
2822
+ :home_region,
2823
+ :is_enabled)
2824
+ SENSITIVE = []
2825
+ include Aws::Structure
2826
+ end
2827
+
2828
+ # @note When making an API call, you may pass ListStorageLensConfigurationsRequest
2829
+ # data as a hash:
2830
+ #
2831
+ # {
2832
+ # account_id: "AccountId", # required
2833
+ # next_token: "ContinuationToken",
2834
+ # }
2835
+ #
2836
+ # @!attribute [rw] account_id
2837
+ # The account ID of the requester.
2838
+ # @return [String]
2839
+ #
2840
+ # @!attribute [rw] next_token
2841
+ # A pagination token to request the next page of results.
2842
+ # @return [String]
2843
+ #
2844
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListStorageLensConfigurationsRequest AWS API Documentation
2845
+ #
2846
+ class ListStorageLensConfigurationsRequest < Struct.new(
2847
+ :account_id,
2848
+ :next_token)
2849
+ SENSITIVE = []
2850
+ include Aws::Structure
2851
+ end
2852
+
2853
+ # @!attribute [rw] next_token
2854
+ # If the request produced more than the maximum number of S3 Storage
2855
+ # Lens configuration results, you can pass this value into a
2856
+ # subsequent request to retrieve the next page of results.
2857
+ # @return [String]
2858
+ #
2859
+ # @!attribute [rw] storage_lens_configuration_list
2860
+ # A list of S3 Storage Lens configurations.
2861
+ # @return [Array<Types::ListStorageLensConfigurationEntry>]
2862
+ #
2863
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListStorageLensConfigurationsResult AWS API Documentation
2864
+ #
2865
+ class ListStorageLensConfigurationsResult < Struct.new(
2866
+ :next_token,
2867
+ :storage_lens_configuration_list)
2868
+ SENSITIVE = []
2869
+ include Aws::Structure
2870
+ end
2871
+
2872
+ # Amazon S3 throws this exception if you make a `GetPublicAccessBlock`
2873
+ # request against an account that doesn't have a
2874
+ # `PublicAccessBlockConfiguration` set.
2875
+ #
2876
+ # @!attribute [rw] message
2877
+ # @return [String]
2878
+ #
2879
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/NoSuchPublicAccessBlockConfiguration AWS API Documentation
2880
+ #
2881
+ class NoSuchPublicAccessBlockConfiguration < Struct.new(
2882
+ :message)
2883
+ SENSITIVE = []
2884
+ include Aws::Structure
2885
+ end
2886
+
2887
+ # The container of the noncurrent version expiration.
2888
+ #
2889
+ # @note When making an API call, you may pass NoncurrentVersionExpiration
2890
+ # data as a hash:
2891
+ #
2892
+ # {
2893
+ # noncurrent_days: 1,
2894
+ # }
2895
+ #
2896
+ # @!attribute [rw] noncurrent_days
2897
+ # Specifies the number of days an object is noncurrent before Amazon
2898
+ # S3 can perform the associated action. For information about the
2899
+ # noncurrent days calculations, see [How Amazon S3 Calculates When an
2900
+ # Object Became Noncurrent][1] in the *Amazon Simple Storage Service
2901
+ # Developer Guide*.
2902
+ #
2903
+ #
2904
+ #
2905
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations
2906
+ # @return [Integer]
2907
+ #
2908
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/NoncurrentVersionExpiration AWS API Documentation
2909
+ #
2910
+ class NoncurrentVersionExpiration < Struct.new(
2911
+ :noncurrent_days)
2912
+ SENSITIVE = []
2913
+ include Aws::Structure
2914
+ end
2915
+
2916
+ # The container for the noncurrent version transition.
1443
2917
  #
1444
- # @!attribute [rw] message
2918
+ # @note When making an API call, you may pass NoncurrentVersionTransition
2919
+ # data as a hash:
2920
+ #
2921
+ # {
2922
+ # noncurrent_days: 1,
2923
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
2924
+ # }
2925
+ #
2926
+ # @!attribute [rw] noncurrent_days
2927
+ # Specifies the number of days an object is noncurrent before Amazon
2928
+ # S3 can perform the associated action. For information about the
2929
+ # noncurrent days calculations, see [ How Amazon S3 Calculates How
2930
+ # Long an Object Has Been Noncurrent][1] in the *Amazon Simple Storage
2931
+ # Service Developer Guide*.
2932
+ #
2933
+ #
2934
+ #
2935
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations
2936
+ # @return [Integer]
2937
+ #
2938
+ # @!attribute [rw] storage_class
2939
+ # The class of storage used to store the object.
1445
2940
  # @return [String]
1446
2941
  #
1447
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/NoSuchPublicAccessBlockConfiguration AWS API Documentation
2942
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/NoncurrentVersionTransition AWS API Documentation
1448
2943
  #
1449
- class NoSuchPublicAccessBlockConfiguration < Struct.new(
1450
- :message)
2944
+ class NoncurrentVersionTransition < Struct.new(
2945
+ :noncurrent_days,
2946
+ :storage_class)
1451
2947
  SENSITIVE = []
1452
2948
  include Aws::Structure
1453
2949
  end
@@ -1483,11 +2979,72 @@ module Aws::S3Control
1483
2979
  include Aws::Structure
1484
2980
  end
1485
2981
 
2982
+ # A container for the prefix-level configuration.
2983
+ #
2984
+ # @note When making an API call, you may pass PrefixLevel
2985
+ # data as a hash:
2986
+ #
2987
+ # {
2988
+ # storage_metrics: { # required
2989
+ # is_enabled: false,
2990
+ # selection_criteria: {
2991
+ # delimiter: "StorageLensPrefixLevelDelimiter",
2992
+ # max_depth: 1,
2993
+ # min_storage_bytes_percentage: 1.0,
2994
+ # },
2995
+ # },
2996
+ # }
2997
+ #
2998
+ # @!attribute [rw] storage_metrics
2999
+ # A container for the prefix-level storage metrics for S3 Storage
3000
+ # Lens.
3001
+ # @return [Types::PrefixLevelStorageMetrics]
3002
+ #
3003
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PrefixLevel AWS API Documentation
3004
+ #
3005
+ class PrefixLevel < Struct.new(
3006
+ :storage_metrics)
3007
+ SENSITIVE = []
3008
+ include Aws::Structure
3009
+ end
3010
+
3011
+ # A container for the prefix-level storage metrics for S3 Storage Lens.
3012
+ #
3013
+ # @note When making an API call, you may pass PrefixLevelStorageMetrics
3014
+ # data as a hash:
3015
+ #
3016
+ # {
3017
+ # is_enabled: false,
3018
+ # selection_criteria: {
3019
+ # delimiter: "StorageLensPrefixLevelDelimiter",
3020
+ # max_depth: 1,
3021
+ # min_storage_bytes_percentage: 1.0,
3022
+ # },
3023
+ # }
3024
+ #
3025
+ # @!attribute [rw] is_enabled
3026
+ # A container for whether prefix-level storage metrics are enabled.
3027
+ # @return [Boolean]
3028
+ #
3029
+ # @!attribute [rw] selection_criteria
3030
+ # @return [Types::SelectionCriteria]
3031
+ #
3032
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PrefixLevelStorageMetrics AWS API Documentation
3033
+ #
3034
+ class PrefixLevelStorageMetrics < Struct.new(
3035
+ :is_enabled,
3036
+ :selection_criteria)
3037
+ SENSITIVE = []
3038
+ include Aws::Structure
3039
+ end
3040
+
1486
3041
  # The `PublicAccessBlock` configuration that you want to apply to this
1487
- # Amazon S3 bucket. You can enable the configuration options in any
3042
+ # Amazon S3 account. You can enable the configuration options in any
1488
3043
  # combination. For more information about when Amazon S3 considers a
1489
3044
  # bucket or object public, see [The Meaning of "Public"][1] in the
1490
- # Amazon Simple Storage Service Developer Guide.
3045
+ # *Amazon Simple Storage Service Developer Guide*.
3046
+ #
3047
+ # This is not supported for Amazon S3 on Outposts.
1491
3048
  #
1492
3049
  #
1493
3050
  #
@@ -1516,6 +3073,8 @@ module Aws::S3Control
1516
3073
  # * PUT Bucket calls fail if the request includes a public ACL.
1517
3074
  #
1518
3075
  # Enabling this setting doesn't affect existing policies or ACLs.
3076
+ #
3077
+ # This is not supported for Amazon S3 on Outposts.
1519
3078
  # @return [Boolean]
1520
3079
  #
1521
3080
  # @!attribute [rw] ignore_public_acls
@@ -1526,6 +3085,8 @@ module Aws::S3Control
1526
3085
  #
1527
3086
  # Enabling this setting doesn't affect the persistence of any
1528
3087
  # existing ACLs and doesn't prevent new public ACLs from being set.
3088
+ #
3089
+ # This is not supported for Amazon S3 on Outposts.
1529
3090
  # @return [Boolean]
1530
3091
  #
1531
3092
  # @!attribute [rw] block_public_policy
@@ -1535,18 +3096,22 @@ module Aws::S3Control
1535
3096
  # bucket policy allows public access.
1536
3097
  #
1537
3098
  # Enabling this setting doesn't affect existing bucket policies.
3099
+ #
3100
+ # This is not supported for Amazon S3 on Outposts.
1538
3101
  # @return [Boolean]
1539
3102
  #
1540
3103
  # @!attribute [rw] restrict_public_buckets
1541
3104
  # Specifies whether Amazon S3 should restrict public bucket policies
1542
3105
  # 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.
3106
+ # restricts access to buckets with public policies to only AWS service
3107
+ # principals and authorized users within this account.
1545
3108
  #
1546
3109
  # Enabling this setting doesn't affect previously stored bucket
1547
3110
  # policies, except that public and cross-account access within any
1548
3111
  # public bucket policy, including non-public delegation to specific
1549
3112
  # accounts, is blocked.
3113
+ #
3114
+ # This is not supported for Amazon S3 on Outposts.
1550
3115
  # @return [Boolean]
1551
3116
  #
1552
3117
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PublicAccessBlockConfiguration AWS API Documentation
@@ -1577,12 +3142,25 @@ module Aws::S3Control
1577
3142
  # @!attribute [rw] name
1578
3143
  # The name of the access point that you want to associate with the
1579
3144
  # specified policy.
3145
+ #
3146
+ # For using this parameter with Amazon S3 on Outposts with the REST
3147
+ # API, you must specify the name and the x-amz-outpost-id as well.
3148
+ #
3149
+ # For using this parameter with S3 on Outposts with the AWS SDK and
3150
+ # CLI, you must specify the ARN of the access point accessed in the
3151
+ # format
3152
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>`.
3153
+ # For example, to access the access point `reports-ap` through outpost
3154
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
3155
+ # use the URL encoding of
3156
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap`.
3157
+ # The value must be URL encoded.
1580
3158
  # @return [String]
1581
3159
  #
1582
3160
  # @!attribute [rw] policy
1583
3161
  # 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
3162
+ # more information about access point policies, see [Managing data
3163
+ # access with Amazon S3 Access Points][1] in the *Amazon Simple
1586
3164
  # Storage Service Developer Guide*.
1587
3165
  #
1588
3166
  #
@@ -1600,6 +3178,187 @@ module Aws::S3Control
1600
3178
  include Aws::Structure
1601
3179
  end
1602
3180
 
3181
+ # @note When making an API call, you may pass PutBucketLifecycleConfigurationRequest
3182
+ # data as a hash:
3183
+ #
3184
+ # {
3185
+ # account_id: "AccountId", # required
3186
+ # bucket: "BucketName", # required
3187
+ # lifecycle_configuration: {
3188
+ # rules: [
3189
+ # {
3190
+ # expiration: {
3191
+ # date: Time.now,
3192
+ # days: 1,
3193
+ # expired_object_delete_marker: false,
3194
+ # },
3195
+ # id: "ID",
3196
+ # filter: {
3197
+ # prefix: "Prefix",
3198
+ # tag: {
3199
+ # key: "TagKeyString", # required
3200
+ # value: "TagValueString", # required
3201
+ # },
3202
+ # and: {
3203
+ # prefix: "Prefix",
3204
+ # tags: [
3205
+ # {
3206
+ # key: "TagKeyString", # required
3207
+ # value: "TagValueString", # required
3208
+ # },
3209
+ # ],
3210
+ # },
3211
+ # },
3212
+ # status: "Enabled", # required, accepts Enabled, Disabled
3213
+ # transitions: [
3214
+ # {
3215
+ # date: Time.now,
3216
+ # days: 1,
3217
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
3218
+ # },
3219
+ # ],
3220
+ # noncurrent_version_transitions: [
3221
+ # {
3222
+ # noncurrent_days: 1,
3223
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
3224
+ # },
3225
+ # ],
3226
+ # noncurrent_version_expiration: {
3227
+ # noncurrent_days: 1,
3228
+ # },
3229
+ # abort_incomplete_multipart_upload: {
3230
+ # days_after_initiation: 1,
3231
+ # },
3232
+ # },
3233
+ # ],
3234
+ # },
3235
+ # }
3236
+ #
3237
+ # @!attribute [rw] account_id
3238
+ # The AWS account ID of the Outposts bucket.
3239
+ # @return [String]
3240
+ #
3241
+ # @!attribute [rw] bucket
3242
+ # The name of the bucket for which to set the configuration.
3243
+ # @return [String]
3244
+ #
3245
+ # @!attribute [rw] lifecycle_configuration
3246
+ # Container for lifecycle rules. You can add as many as 1,000 rules.
3247
+ # @return [Types::LifecycleConfiguration]
3248
+ #
3249
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketLifecycleConfigurationRequest AWS API Documentation
3250
+ #
3251
+ class PutBucketLifecycleConfigurationRequest < Struct.new(
3252
+ :account_id,
3253
+ :bucket,
3254
+ :lifecycle_configuration)
3255
+ SENSITIVE = []
3256
+ include Aws::Structure
3257
+ end
3258
+
3259
+ # @note When making an API call, you may pass PutBucketPolicyRequest
3260
+ # data as a hash:
3261
+ #
3262
+ # {
3263
+ # account_id: "AccountId", # required
3264
+ # bucket: "BucketName", # required
3265
+ # confirm_remove_self_bucket_access: false,
3266
+ # policy: "Policy", # required
3267
+ # }
3268
+ #
3269
+ # @!attribute [rw] account_id
3270
+ # The AWS account ID of the Outposts bucket.
3271
+ # @return [String]
3272
+ #
3273
+ # @!attribute [rw] bucket
3274
+ # Specifies the bucket.
3275
+ #
3276
+ # For using this parameter with Amazon S3 on Outposts with the REST
3277
+ # API, you must specify the name and the x-amz-outpost-id as well.
3278
+ #
3279
+ # For using this parameter with S3 on Outposts with the AWS SDK and
3280
+ # CLI, you must specify the ARN of the bucket accessed in the format
3281
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
3282
+ # For example, to access the bucket `reports` through outpost
3283
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
3284
+ # use the URL encoding of
3285
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
3286
+ # The value must be URL encoded.
3287
+ # @return [String]
3288
+ #
3289
+ # @!attribute [rw] confirm_remove_self_bucket_access
3290
+ # Set this parameter to true to confirm that you want to remove your
3291
+ # permissions to change this bucket policy in the future.
3292
+ #
3293
+ # <note markdown="1"> This is not supported by Amazon S3 on Outposts buckets.
3294
+ #
3295
+ # </note>
3296
+ # @return [Boolean]
3297
+ #
3298
+ # @!attribute [rw] policy
3299
+ # The bucket policy as a JSON document.
3300
+ # @return [String]
3301
+ #
3302
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketPolicyRequest AWS API Documentation
3303
+ #
3304
+ class PutBucketPolicyRequest < Struct.new(
3305
+ :account_id,
3306
+ :bucket,
3307
+ :confirm_remove_self_bucket_access,
3308
+ :policy)
3309
+ SENSITIVE = []
3310
+ include Aws::Structure
3311
+ end
3312
+
3313
+ # @note When making an API call, you may pass PutBucketTaggingRequest
3314
+ # data as a hash:
3315
+ #
3316
+ # {
3317
+ # account_id: "AccountId", # required
3318
+ # bucket: "BucketName", # required
3319
+ # tagging: { # required
3320
+ # tag_set: [ # required
3321
+ # {
3322
+ # key: "TagKeyString", # required
3323
+ # value: "TagValueString", # required
3324
+ # },
3325
+ # ],
3326
+ # },
3327
+ # }
3328
+ #
3329
+ # @!attribute [rw] account_id
3330
+ # The AWS account ID of the Outposts bucket.
3331
+ # @return [String]
3332
+ #
3333
+ # @!attribute [rw] bucket
3334
+ # The Amazon Resource Name (ARN) of the bucket.
3335
+ #
3336
+ # For using this parameter with Amazon S3 on Outposts with the REST
3337
+ # API, you must specify the name and the x-amz-outpost-id as well.
3338
+ #
3339
+ # For using this parameter with S3 on Outposts with the AWS SDK and
3340
+ # CLI, you must specify the ARN of the bucket accessed in the format
3341
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
3342
+ # For example, to access the bucket `reports` through outpost
3343
+ # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
3344
+ # use the URL encoding of
3345
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports`.
3346
+ # The value must be URL encoded.
3347
+ # @return [String]
3348
+ #
3349
+ # @!attribute [rw] tagging
3350
+ # @return [Types::Tagging]
3351
+ #
3352
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketTaggingRequest AWS API Documentation
3353
+ #
3354
+ class PutBucketTaggingRequest < Struct.new(
3355
+ :account_id,
3356
+ :bucket,
3357
+ :tagging)
3358
+ SENSITIVE = []
3359
+ include Aws::Structure
3360
+ end
3361
+
1603
3362
  # @note When making an API call, you may pass PutJobTaggingRequest
1604
3363
  # data as a hash:
1605
3364
  #
@@ -1615,62 +3374,233 @@ module Aws::S3Control
1615
3374
  # }
1616
3375
  #
1617
3376
  # @!attribute [rw] account_id
1618
- # The AWS account ID associated with the Amazon S3 Batch Operations
1619
- # job.
3377
+ # The AWS account ID associated with the S3 Batch Operations job.
1620
3378
  # @return [String]
1621
3379
  #
1622
3380
  # @!attribute [rw] job_id
1623
- # The ID for the Amazon S3 Batch Operations job whose tags you want to
3381
+ # The ID for the S3 Batch Operations job whose tags you want to
1624
3382
  # replace.
1625
3383
  # @return [String]
1626
3384
  #
1627
3385
  # @!attribute [rw] tags
1628
- # The set of tags to associate with the Amazon S3 Batch Operations
1629
- # job.
3386
+ # The set of tags to associate with the S3 Batch Operations job.
1630
3387
  # @return [Array<Types::S3Tag>]
1631
3388
  #
1632
3389
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutJobTaggingRequest AWS API Documentation
1633
3390
  #
1634
- class PutJobTaggingRequest < Struct.new(
3391
+ class PutJobTaggingRequest < Struct.new(
3392
+ :account_id,
3393
+ :job_id,
3394
+ :tags)
3395
+ SENSITIVE = []
3396
+ include Aws::Structure
3397
+ end
3398
+
3399
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutJobTaggingResult AWS API Documentation
3400
+ #
3401
+ class PutJobTaggingResult < Aws::EmptyStructure; end
3402
+
3403
+ # @note When making an API call, you may pass PutPublicAccessBlockRequest
3404
+ # data as a hash:
3405
+ #
3406
+ # {
3407
+ # public_access_block_configuration: { # required
3408
+ # block_public_acls: false,
3409
+ # ignore_public_acls: false,
3410
+ # block_public_policy: false,
3411
+ # restrict_public_buckets: false,
3412
+ # },
3413
+ # account_id: "AccountId", # required
3414
+ # }
3415
+ #
3416
+ # @!attribute [rw] public_access_block_configuration
3417
+ # The `PublicAccessBlock` configuration that you want to apply to the
3418
+ # specified AWS account.
3419
+ # @return [Types::PublicAccessBlockConfiguration]
3420
+ #
3421
+ # @!attribute [rw] account_id
3422
+ # The account ID for the AWS account whose `PublicAccessBlock`
3423
+ # configuration you want to set.
3424
+ # @return [String]
3425
+ #
3426
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutPublicAccessBlockRequest AWS API Documentation
3427
+ #
3428
+ class PutPublicAccessBlockRequest < Struct.new(
3429
+ :public_access_block_configuration,
3430
+ :account_id)
3431
+ SENSITIVE = []
3432
+ include Aws::Structure
3433
+ end
3434
+
3435
+ # @note When making an API call, you may pass PutStorageLensConfigurationRequest
3436
+ # data as a hash:
3437
+ #
3438
+ # {
3439
+ # config_id: "ConfigId", # required
3440
+ # account_id: "AccountId", # required
3441
+ # storage_lens_configuration: { # required
3442
+ # id: "ConfigId", # required
3443
+ # account_level: { # required
3444
+ # activity_metrics: {
3445
+ # is_enabled: false,
3446
+ # },
3447
+ # bucket_level: { # required
3448
+ # activity_metrics: {
3449
+ # is_enabled: false,
3450
+ # },
3451
+ # prefix_level: {
3452
+ # storage_metrics: { # required
3453
+ # is_enabled: false,
3454
+ # selection_criteria: {
3455
+ # delimiter: "StorageLensPrefixLevelDelimiter",
3456
+ # max_depth: 1,
3457
+ # min_storage_bytes_percentage: 1.0,
3458
+ # },
3459
+ # },
3460
+ # },
3461
+ # },
3462
+ # },
3463
+ # include: {
3464
+ # buckets: ["S3BucketArnString"],
3465
+ # regions: ["S3AWSRegion"],
3466
+ # },
3467
+ # exclude: {
3468
+ # buckets: ["S3BucketArnString"],
3469
+ # regions: ["S3AWSRegion"],
3470
+ # },
3471
+ # data_export: {
3472
+ # s3_bucket_destination: { # required
3473
+ # format: "CSV", # required, accepts CSV, Parquet
3474
+ # output_schema_version: "V_1", # required, accepts V_1
3475
+ # account_id: "AccountId", # required
3476
+ # arn: "S3BucketArnString", # required
3477
+ # prefix: "Prefix",
3478
+ # encryption: {
3479
+ # sses3: {
3480
+ # },
3481
+ # ssekms: {
3482
+ # key_id: "SSEKMSKeyId", # required
3483
+ # },
3484
+ # },
3485
+ # },
3486
+ # },
3487
+ # is_enabled: false, # required
3488
+ # aws_org: {
3489
+ # arn: "AwsOrgArn", # required
3490
+ # },
3491
+ # storage_lens_arn: "StorageLensArn",
3492
+ # },
3493
+ # tags: [
3494
+ # {
3495
+ # key: "TagKeyString", # required
3496
+ # value: "TagValueString", # required
3497
+ # },
3498
+ # ],
3499
+ # }
3500
+ #
3501
+ # @!attribute [rw] config_id
3502
+ # The ID of the S3 Storage Lens configuration.
3503
+ # @return [String]
3504
+ #
3505
+ # @!attribute [rw] account_id
3506
+ # The account ID of the requester.
3507
+ # @return [String]
3508
+ #
3509
+ # @!attribute [rw] storage_lens_configuration
3510
+ # The S3 Storage Lens configuration.
3511
+ # @return [Types::StorageLensConfiguration]
3512
+ #
3513
+ # @!attribute [rw] tags
3514
+ # The tag set of the S3 Storage Lens configuration.
3515
+ #
3516
+ # <note markdown="1"> You can set up to a maximum of 50 tags.
3517
+ #
3518
+ # </note>
3519
+ # @return [Array<Types::StorageLensTag>]
3520
+ #
3521
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfigurationRequest AWS API Documentation
3522
+ #
3523
+ class PutStorageLensConfigurationRequest < Struct.new(
3524
+ :config_id,
3525
+ :account_id,
3526
+ :storage_lens_configuration,
3527
+ :tags)
3528
+ SENSITIVE = []
3529
+ include Aws::Structure
3530
+ end
3531
+
3532
+ # @note When making an API call, you may pass PutStorageLensConfigurationTaggingRequest
3533
+ # data as a hash:
3534
+ #
3535
+ # {
3536
+ # config_id: "ConfigId", # required
3537
+ # account_id: "AccountId", # required
3538
+ # tags: [ # required
3539
+ # {
3540
+ # key: "TagKeyString", # required
3541
+ # value: "TagValueString", # required
3542
+ # },
3543
+ # ],
3544
+ # }
3545
+ #
3546
+ # @!attribute [rw] config_id
3547
+ # The ID of the S3 Storage Lens configuration.
3548
+ # @return [String]
3549
+ #
3550
+ # @!attribute [rw] account_id
3551
+ # The account ID of the requester.
3552
+ # @return [String]
3553
+ #
3554
+ # @!attribute [rw] tags
3555
+ # The tag set of the S3 Storage Lens configuration.
3556
+ #
3557
+ # <note markdown="1"> You can set up to a maximum of 50 tags.
3558
+ #
3559
+ # </note>
3560
+ # @return [Array<Types::StorageLensTag>]
3561
+ #
3562
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfigurationTaggingRequest AWS API Documentation
3563
+ #
3564
+ class PutStorageLensConfigurationTaggingRequest < Struct.new(
3565
+ :config_id,
1635
3566
  :account_id,
1636
- :job_id,
1637
3567
  :tags)
1638
3568
  SENSITIVE = []
1639
3569
  include Aws::Structure
1640
3570
  end
1641
3571
 
1642
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutJobTaggingResult AWS API Documentation
3572
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfigurationTaggingResult AWS API Documentation
1643
3573
  #
1644
- class PutJobTaggingResult < Aws::EmptyStructure; end
3574
+ class PutStorageLensConfigurationTaggingResult < Aws::EmptyStructure; end
1645
3575
 
1646
- # @note When making an API call, you may pass PutPublicAccessBlockRequest
1647
- # data as a hash:
3576
+ # The container for the regional bucket.
1648
3577
  #
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
- # }
3578
+ # @!attribute [rw] bucket
3579
+ # @return [String]
1658
3580
  #
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]
3581
+ # @!attribute [rw] bucket_arn
3582
+ # The Amazon Resource Name (ARN) for the regional bucket.
3583
+ # @return [String]
1663
3584
  #
1664
- # @!attribute [rw] account_id
1665
- # The account ID for the Amazon Web Services account whose
1666
- # `PublicAccessBlock` configuration you want to set.
3585
+ # @!attribute [rw] public_access_block_enabled
3586
+ # @return [Boolean]
3587
+ #
3588
+ # @!attribute [rw] creation_date
3589
+ # The creation date of the regional bucket
3590
+ # @return [Time]
3591
+ #
3592
+ # @!attribute [rw] outpost_id
3593
+ # The AWS Outposts ID of the regional bucket.
1667
3594
  # @return [String]
1668
3595
  #
1669
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutPublicAccessBlockRequest AWS API Documentation
3596
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/RegionalBucket AWS API Documentation
1670
3597
  #
1671
- class PutPublicAccessBlockRequest < Struct.new(
1672
- :public_access_block_configuration,
1673
- :account_id)
3598
+ class RegionalBucket < Struct.new(
3599
+ :bucket,
3600
+ :bucket_arn,
3601
+ :public_access_block_enabled,
3602
+ :creation_date,
3603
+ :outpost_id)
1674
3604
  SENSITIVE = []
1675
3605
  include Aws::Structure
1676
3606
  end
@@ -1748,10 +3678,73 @@ module Aws::S3Control
1748
3678
  include Aws::Structure
1749
3679
  end
1750
3680
 
3681
+ # A container for the bucket where the Amazon S3 Storage Lens metrics
3682
+ # export files are located.
3683
+ #
3684
+ # @note When making an API call, you may pass S3BucketDestination
3685
+ # data as a hash:
3686
+ #
3687
+ # {
3688
+ # format: "CSV", # required, accepts CSV, Parquet
3689
+ # output_schema_version: "V_1", # required, accepts V_1
3690
+ # account_id: "AccountId", # required
3691
+ # arn: "S3BucketArnString", # required
3692
+ # prefix: "Prefix",
3693
+ # encryption: {
3694
+ # sses3: {
3695
+ # },
3696
+ # ssekms: {
3697
+ # key_id: "SSEKMSKeyId", # required
3698
+ # },
3699
+ # },
3700
+ # }
3701
+ #
3702
+ # @!attribute [rw] format
3703
+ # @return [String]
3704
+ #
3705
+ # @!attribute [rw] output_schema_version
3706
+ # The schema version of the export file.
3707
+ # @return [String]
3708
+ #
3709
+ # @!attribute [rw] account_id
3710
+ # The account ID of the owner of the S3 Storage Lens metrics export
3711
+ # bucket.
3712
+ # @return [String]
3713
+ #
3714
+ # @!attribute [rw] arn
3715
+ # The Amazon Resource Name (ARN) of the bucket. This property is
3716
+ # read-only and follows the following format: `
3717
+ # arn:aws:s3:us-east-1:example-account-id:bucket/your-destination-bucket-name
3718
+ # `
3719
+ # @return [String]
3720
+ #
3721
+ # @!attribute [rw] prefix
3722
+ # The prefix of the destination bucket where the metrics export will
3723
+ # be delivered.
3724
+ # @return [String]
3725
+ #
3726
+ # @!attribute [rw] encryption
3727
+ # The container for the type encryption of the metrics exports in this
3728
+ # bucket.
3729
+ # @return [Types::StorageLensDataExportEncryption]
3730
+ #
3731
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3BucketDestination AWS API Documentation
3732
+ #
3733
+ class S3BucketDestination < Struct.new(
3734
+ :format,
3735
+ :output_schema_version,
3736
+ :account_id,
3737
+ :arn,
3738
+ :prefix,
3739
+ :encryption)
3740
+ SENSITIVE = []
3741
+ include Aws::Structure
3742
+ end
3743
+
1751
3744
  # 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].
3745
+ # S3 Batch Operations passes every object to the underlying PUT Copy
3746
+ # object API. For more information about the parameters for this
3747
+ # operation, see [PUT Object - Copy][1].
1755
3748
  #
1756
3749
  #
1757
3750
  #
@@ -1808,6 +3801,10 @@ module Aws::S3Control
1808
3801
  # }
1809
3802
  #
1810
3803
  # @!attribute [rw] target_resource
3804
+ # Specifies the destination bucket ARN for the batch copy operation.
3805
+ # For example, to copy objects to a bucket named
3806
+ # "destinationBucket", set the TargetResource to
3807
+ # "arn:aws:s3:::destinationBucket".
1811
3808
  # @return [String]
1812
3809
  #
1813
3810
  # @!attribute [rw] canned_access_control_list
@@ -1829,6 +3826,9 @@ module Aws::S3Control
1829
3826
  # @return [Array<Types::S3Tag>]
1830
3827
  #
1831
3828
  # @!attribute [rw] redirect_location
3829
+ # Specifies an optional metadata property for website redirects,
3830
+ # `x-amz-website-redirect-location`. Allows webpage redirects if the
3831
+ # object is accessed through a website endpoint.
1832
3832
  # @return [String]
1833
3833
  #
1834
3834
  # @!attribute [rw] requester_pays
@@ -1844,21 +3844,25 @@ module Aws::S3Control
1844
3844
  # @return [String]
1845
3845
  #
1846
3846
  # @!attribute [rw] target_key_prefix
3847
+ # Specifies the folder prefix into which you would like the objects to
3848
+ # be copied. For example, to copy objects into a folder named
3849
+ # "Folder1" in the destination bucket, set the TargetKeyPrefix to
3850
+ # "Folder1/".
1847
3851
  # @return [String]
1848
3852
  #
1849
3853
  # @!attribute [rw] object_lock_legal_hold_status
1850
- # The Legal Hold status to be applied to all objects in the Batch
3854
+ # The legal hold status to be applied to all objects in the Batch
1851
3855
  # Operations job.
1852
3856
  # @return [String]
1853
3857
  #
1854
3858
  # @!attribute [rw] object_lock_mode
1855
- # The Retention mode to be applied to all objects in the Batch
3859
+ # The retention mode to be applied to all objects in the Batch
1856
3860
  # Operations job.
1857
3861
  # @return [String]
1858
3862
  #
1859
3863
  # @!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.
3864
+ # The date when the applied object retention configuration expires on
3865
+ # all objects in the Batch Operations job.
1862
3866
  # @return [Time]
1863
3867
  #
1864
3868
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3CopyObjectOperation AWS API Documentation
@@ -1884,6 +3888,16 @@ module Aws::S3Control
1884
3888
  include Aws::Structure
1885
3889
  end
1886
3890
 
3891
+ # Contains no configuration parameters because the DELETE Object tagging
3892
+ # API only accepts the bucket name and key name as parameters, which are
3893
+ # defined in the job's manifest.
3894
+ #
3895
+ # @api private
3896
+ #
3897
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3DeleteObjectTaggingOperation AWS API Documentation
3898
+ #
3899
+ class S3DeleteObjectTaggingOperation < Aws::EmptyStructure; end
3900
+
1887
3901
  # @note When making an API call, you may pass S3Grant
1888
3902
  # data as a hash:
1889
3903
  #
@@ -1939,10 +3953,10 @@ module Aws::S3Control
1939
3953
  include Aws::Structure
1940
3954
  end
1941
3955
 
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].
3956
+ # Contains the configuration parameters for an S3 Initiate Restore
3957
+ # Object job. S3 Batch Operations passes every object to the underlying
3958
+ # POST Object restore API. For more information about the parameters for
3959
+ # this operation, see [RestoreObject][1].
1946
3960
  #
1947
3961
  #
1948
3962
  #
@@ -1957,9 +3971,29 @@ module Aws::S3Control
1957
3971
  # }
1958
3972
  #
1959
3973
  # @!attribute [rw] expiration_in_days
3974
+ # This argument specifies how long the S3 Glacier or S3 Glacier Deep
3975
+ # Archive object remains available in Amazon S3. S3 Initiate Restore
3976
+ # Object jobs that target S3 Glacier and S3 Glacier Deep Archive
3977
+ # objects require `ExpirationInDays` set to 1 or greater.
3978
+ #
3979
+ # Conversely, do *not* set `ExpirationInDays` when creating S3
3980
+ # Initiate Restore Object jobs that target S3 Intelligent-Tiering
3981
+ # Archive Access and Deep Archive Access tier objects. Objects in S3
3982
+ # Intelligent-Tiering archive access tiers are not subject to restore
3983
+ # expiry, so specifying `ExpirationInDays` results in restore request
3984
+ # failure.
3985
+ #
3986
+ # S3 Batch Operations jobs can operate either on S3 Glacier and S3
3987
+ # Glacier Deep Archive storage class objects or on S3
3988
+ # Intelligent-Tiering Archive Access and Deep Archive Access storage
3989
+ # tier objects, but not both types in the same job. If you need to
3990
+ # restore objects of both types you *must* create separate Batch
3991
+ # Operations jobs.
1960
3992
  # @return [Integer]
1961
3993
  #
1962
3994
  # @!attribute [rw] glacier_job_tier
3995
+ # S3 Batch Operations supports `STANDARD` and `BULK` retrieval tiers,
3996
+ # but not the `EXPEDITED` retrieval tier.
1963
3997
  # @return [String]
1964
3998
  #
1965
3999
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3InitiateRestoreObjectOperation AWS API Documentation
@@ -1971,6 +4005,9 @@ module Aws::S3Control
1971
4005
  include Aws::Structure
1972
4006
  end
1973
4007
 
4008
+ # Whether S3 Object Lock legal hold will be applied to objects in an S3
4009
+ # Batch Operations job.
4010
+ #
1974
4011
  # @note When making an API call, you may pass S3ObjectLockLegalHold
1975
4012
  # data as a hash:
1976
4013
  #
@@ -1979,8 +4016,8 @@ module Aws::S3Control
1979
4016
  # }
1980
4017
  #
1981
4018
  # @!attribute [rw] status
1982
- # The Legal Hold status to be applied to all objects in the Batch
1983
- # Operations job.
4019
+ # The Object Lock legal hold status to be applied to all objects in
4020
+ # the Batch Operations job.
1984
4021
  # @return [String]
1985
4022
  #
1986
4023
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3ObjectLockLegalHold AWS API Documentation
@@ -2084,6 +4121,17 @@ module Aws::S3Control
2084
4121
  include Aws::Structure
2085
4122
  end
2086
4123
 
4124
+ # Contains the S3 Object Lock retention mode to be applied to all
4125
+ # objects in the S3 Batch Operations job. If you don't provide `Mode`
4126
+ # and `RetainUntilDate` data types in your operation, you will remove
4127
+ # the retention from your objects. For more information, see [Using S3
4128
+ # Object Lock retention with S3 Batch Operations][1] in the *Amazon
4129
+ # Simple Storage Service Developer Guide*.
4130
+ #
4131
+ #
4132
+ #
4133
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html
4134
+ #
2087
4135
  # @note When making an API call, you may pass S3Retention
2088
4136
  # data as a hash:
2089
4137
  #
@@ -2093,13 +4141,13 @@ module Aws::S3Control
2093
4141
  # }
2094
4142
  #
2095
4143
  # @!attribute [rw] retain_until_date
2096
- # The date when the applied Object Retention will expire on all
2097
- # objects in the Batch Operations job.
4144
+ # The date when the applied Object Lock retention will expire on all
4145
+ # objects set by the Batch Operations job.
2098
4146
  # @return [Time]
2099
4147
  #
2100
4148
  # @!attribute [rw] mode
2101
- # The Retention mode to be applied to all objects in the Batch
2102
- # Operations job.
4149
+ # The Object Lock retention mode to be applied to all objects in the
4150
+ # Batch Operations job.
2103
4151
  # @return [String]
2104
4152
  #
2105
4153
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3Retention AWS API Documentation
@@ -2112,9 +4160,9 @@ module Aws::S3Control
2112
4160
  end
2113
4161
 
2114
4162
  # 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].
4163
+ # S3 Batch Operations passes every object to the underlying PUT Object
4164
+ # acl API. For more information about the parameters for this operation,
4165
+ # see [PUT Object acl][1].
2118
4166
  #
2119
4167
  #
2120
4168
  #
@@ -2156,14 +4204,15 @@ module Aws::S3Control
2156
4204
  include Aws::Structure
2157
4205
  end
2158
4206
 
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].
4207
+ # Contains the configuration for an S3 Object Lock legal hold operation
4208
+ # that an S3 Batch Operations job passes every object to the underlying
4209
+ # `PutObjectLegalHold` API. For more information, see [Using S3 Object
4210
+ # Lock legal hold with S3 Batch Operations][1] in the *Amazon Simple
4211
+ # Storage Service Developer Guide*.
2163
4212
  #
2164
4213
  #
2165
4214
  #
2166
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.htmll#object-lock-legal-holds
4215
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-legal-hold.html
2167
4216
  #
2168
4217
  # @note When making an API call, you may pass S3SetObjectLegalHoldOperation
2169
4218
  # data as a hash:
@@ -2175,8 +4224,8 @@ module Aws::S3Control
2175
4224
  # }
2176
4225
  #
2177
4226
  # @!attribute [rw] legal_hold
2178
- # The Legal Hold contains the status to be applied to all objects in
2179
- # the Batch Operations job.
4227
+ # Contains the Object Lock legal hold status to be applied to all
4228
+ # objects in the Batch Operations job.
2180
4229
  # @return [Types::S3ObjectLockLegalHold]
2181
4230
  #
2182
4231
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3SetObjectLegalHoldOperation AWS API Documentation
@@ -2187,14 +4236,15 @@ module Aws::S3Control
2187
4236
  include Aws::Structure
2188
4237
  end
2189
4238
 
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].
4239
+ # Contains the configuration parameters for the Object Lock retention
4240
+ # action for an S3 Batch Operations job. Batch Operations passes every
4241
+ # object to the underlying `PutObjectRetention` API. For more
4242
+ # information, see [Using S3 Object Lock retention with S3 Batch
4243
+ # Operations][1] in the *Amazon Simple Storage Service Developer Guide*.
2194
4244
  #
2195
4245
  #
2196
4246
  #
2197
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes
4247
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html
2198
4248
  #
2199
4249
  # @note When making an API call, you may pass S3SetObjectRetentionOperation
2200
4250
  # data as a hash:
@@ -2208,14 +4258,20 @@ module Aws::S3Control
2208
4258
  # }
2209
4259
  #
2210
4260
  # @!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
4261
+ # Indicates if the action should be applied to objects in the Batch
4262
+ # Operations job even if they have Object Lock ` GOVERNANCE` type in
2213
4263
  # place.
2214
4264
  # @return [Boolean]
2215
4265
  #
2216
4266
  # @!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.
4267
+ # Contains the Object Lock retention mode to be applied to all objects
4268
+ # in the Batch Operations job. For more information, see [Using S3
4269
+ # Object Lock retention with S3 Batch Operations][1] in the *Amazon
4270
+ # Simple Storage Service Developer Guide*.
4271
+ #
4272
+ #
4273
+ #
4274
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html
2219
4275
  # @return [Types::S3Retention]
2220
4276
  #
2221
4277
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3SetObjectRetentionOperation AWS API Documentation
@@ -2228,9 +4284,9 @@ module Aws::S3Control
2228
4284
  end
2229
4285
 
2230
4286
  # 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].
4287
+ # operation. S3 Batch Operations passes every object to the underlying
4288
+ # PUT Object tagging API. For more information about the parameters for
4289
+ # this operation, see [PUT Object tagging][1].
2234
4290
  #
2235
4291
  #
2236
4292
  #
@@ -2282,6 +4338,327 @@ module Aws::S3Control
2282
4338
  include Aws::Structure
2283
4339
  end
2284
4340
 
4341
+ # @note When making an API call, you may pass SSEKMS
4342
+ # data as a hash:
4343
+ #
4344
+ # {
4345
+ # key_id: "SSEKMSKeyId", # required
4346
+ # }
4347
+ #
4348
+ # @!attribute [rw] key_id
4349
+ # A container for the ARN of the SSE-KMS encryption. This property is
4350
+ # read-only and follows the following format: `
4351
+ # arn:aws:kms:us-east-1:example-account-id:key/example-9a73-4afc-8d29-8f5900cef44e
4352
+ # `
4353
+ # @return [String]
4354
+ #
4355
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/SSEKMS AWS API Documentation
4356
+ #
4357
+ class SSEKMS < Struct.new(
4358
+ :key_id)
4359
+ SENSITIVE = []
4360
+ include Aws::Structure
4361
+ end
4362
+
4363
+ # @api private
4364
+ #
4365
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/SSES3 AWS API Documentation
4366
+ #
4367
+ class SSES3 < Aws::EmptyStructure; end
4368
+
4369
+ # @note When making an API call, you may pass SelectionCriteria
4370
+ # data as a hash:
4371
+ #
4372
+ # {
4373
+ # delimiter: "StorageLensPrefixLevelDelimiter",
4374
+ # max_depth: 1,
4375
+ # min_storage_bytes_percentage: 1.0,
4376
+ # }
4377
+ #
4378
+ # @!attribute [rw] delimiter
4379
+ # A container for the delimiter of the selection criteria being used.
4380
+ # @return [String]
4381
+ #
4382
+ # @!attribute [rw] max_depth
4383
+ # The max depth of the selection criteria
4384
+ # @return [Integer]
4385
+ #
4386
+ # @!attribute [rw] min_storage_bytes_percentage
4387
+ # The minimum number of storage bytes percentage whose metrics will be
4388
+ # selected.
4389
+ #
4390
+ # <note markdown="1"> You must choose a value greater than or equal to `1.0`.
4391
+ #
4392
+ # </note>
4393
+ # @return [Float]
4394
+ #
4395
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/SelectionCriteria AWS API Documentation
4396
+ #
4397
+ class SelectionCriteria < Struct.new(
4398
+ :delimiter,
4399
+ :max_depth,
4400
+ :min_storage_bytes_percentage)
4401
+ SENSITIVE = []
4402
+ include Aws::Structure
4403
+ end
4404
+
4405
+ # The AWS organization for your S3 Storage Lens.
4406
+ #
4407
+ # @note When making an API call, you may pass StorageLensAwsOrg
4408
+ # data as a hash:
4409
+ #
4410
+ # {
4411
+ # arn: "AwsOrgArn", # required
4412
+ # }
4413
+ #
4414
+ # @!attribute [rw] arn
4415
+ # A container for the Amazon Resource Name (ARN) of the AWS
4416
+ # organization. This property is read-only and follows the following
4417
+ # format: `
4418
+ # arn:aws:organizations:us-east-1:example-account-id:organization/o-ex2l495dck
4419
+ # `
4420
+ # @return [String]
4421
+ #
4422
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/StorageLensAwsOrg AWS API Documentation
4423
+ #
4424
+ class StorageLensAwsOrg < Struct.new(
4425
+ :arn)
4426
+ SENSITIVE = []
4427
+ include Aws::Structure
4428
+ end
4429
+
4430
+ # A container for the Amazon S3 Storage Lens configuration.
4431
+ #
4432
+ # @note When making an API call, you may pass StorageLensConfiguration
4433
+ # data as a hash:
4434
+ #
4435
+ # {
4436
+ # id: "ConfigId", # required
4437
+ # account_level: { # required
4438
+ # activity_metrics: {
4439
+ # is_enabled: false,
4440
+ # },
4441
+ # bucket_level: { # required
4442
+ # activity_metrics: {
4443
+ # is_enabled: false,
4444
+ # },
4445
+ # prefix_level: {
4446
+ # storage_metrics: { # required
4447
+ # is_enabled: false,
4448
+ # selection_criteria: {
4449
+ # delimiter: "StorageLensPrefixLevelDelimiter",
4450
+ # max_depth: 1,
4451
+ # min_storage_bytes_percentage: 1.0,
4452
+ # },
4453
+ # },
4454
+ # },
4455
+ # },
4456
+ # },
4457
+ # include: {
4458
+ # buckets: ["S3BucketArnString"],
4459
+ # regions: ["S3AWSRegion"],
4460
+ # },
4461
+ # exclude: {
4462
+ # buckets: ["S3BucketArnString"],
4463
+ # regions: ["S3AWSRegion"],
4464
+ # },
4465
+ # data_export: {
4466
+ # s3_bucket_destination: { # required
4467
+ # format: "CSV", # required, accepts CSV, Parquet
4468
+ # output_schema_version: "V_1", # required, accepts V_1
4469
+ # account_id: "AccountId", # required
4470
+ # arn: "S3BucketArnString", # required
4471
+ # prefix: "Prefix",
4472
+ # encryption: {
4473
+ # sses3: {
4474
+ # },
4475
+ # ssekms: {
4476
+ # key_id: "SSEKMSKeyId", # required
4477
+ # },
4478
+ # },
4479
+ # },
4480
+ # },
4481
+ # is_enabled: false, # required
4482
+ # aws_org: {
4483
+ # arn: "AwsOrgArn", # required
4484
+ # },
4485
+ # storage_lens_arn: "StorageLensArn",
4486
+ # }
4487
+ #
4488
+ # @!attribute [rw] id
4489
+ # A container for the Amazon S3 Storage Lens configuration ID.
4490
+ # @return [String]
4491
+ #
4492
+ # @!attribute [rw] account_level
4493
+ # A container for all the account-level configurations of your S3
4494
+ # Storage Lens configuration.
4495
+ # @return [Types::AccountLevel]
4496
+ #
4497
+ # @!attribute [rw] include
4498
+ # A container for what is included in this configuration. This
4499
+ # container can only be valid if there is no `Exclude` container
4500
+ # submitted, and it's not empty.
4501
+ # @return [Types::Include]
4502
+ #
4503
+ # @!attribute [rw] exclude
4504
+ # A container for what is excluded in this configuration. This
4505
+ # container can only be valid if there is no `Include` container
4506
+ # submitted, and it's not empty.
4507
+ # @return [Types::Exclude]
4508
+ #
4509
+ # @!attribute [rw] data_export
4510
+ # A container to specify the properties of your S3 Storage Lens
4511
+ # metrics export including, the destination, schema and format.
4512
+ # @return [Types::StorageLensDataExport]
4513
+ #
4514
+ # @!attribute [rw] is_enabled
4515
+ # A container for whether the S3 Storage Lens configuration is
4516
+ # enabled.
4517
+ # @return [Boolean]
4518
+ #
4519
+ # @!attribute [rw] aws_org
4520
+ # A container for the AWS organization for this S3 Storage Lens
4521
+ # configuration.
4522
+ # @return [Types::StorageLensAwsOrg]
4523
+ #
4524
+ # @!attribute [rw] storage_lens_arn
4525
+ # The Amazon Resource Name (ARN) of the S3 Storage Lens configuration.
4526
+ # This property is read-only and follows the following format: `
4527
+ # arn:aws:s3:us-east-1:example-account-id:storage-lens/your-dashboard-name
4528
+ # `
4529
+ # @return [String]
4530
+ #
4531
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/StorageLensConfiguration AWS API Documentation
4532
+ #
4533
+ class StorageLensConfiguration < Struct.new(
4534
+ :id,
4535
+ :account_level,
4536
+ :include,
4537
+ :exclude,
4538
+ :data_export,
4539
+ :is_enabled,
4540
+ :aws_org,
4541
+ :storage_lens_arn)
4542
+ SENSITIVE = []
4543
+ include Aws::Structure
4544
+ end
4545
+
4546
+ # A container to specify the properties of your S3 Storage Lens metrics
4547
+ # export, including the destination, schema, and format.
4548
+ #
4549
+ # @note When making an API call, you may pass StorageLensDataExport
4550
+ # data as a hash:
4551
+ #
4552
+ # {
4553
+ # s3_bucket_destination: { # required
4554
+ # format: "CSV", # required, accepts CSV, Parquet
4555
+ # output_schema_version: "V_1", # required, accepts V_1
4556
+ # account_id: "AccountId", # required
4557
+ # arn: "S3BucketArnString", # required
4558
+ # prefix: "Prefix",
4559
+ # encryption: {
4560
+ # sses3: {
4561
+ # },
4562
+ # ssekms: {
4563
+ # key_id: "SSEKMSKeyId", # required
4564
+ # },
4565
+ # },
4566
+ # },
4567
+ # }
4568
+ #
4569
+ # @!attribute [rw] s3_bucket_destination
4570
+ # A container for the bucket where the S3 Storage Lens metrics export
4571
+ # will be located.
4572
+ #
4573
+ # <note markdown="1"> This bucket must be located in the same Region as the storage lens
4574
+ # configuration.
4575
+ #
4576
+ # </note>
4577
+ # @return [Types::S3BucketDestination]
4578
+ #
4579
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/StorageLensDataExport AWS API Documentation
4580
+ #
4581
+ class StorageLensDataExport < Struct.new(
4582
+ :s3_bucket_destination)
4583
+ SENSITIVE = []
4584
+ include Aws::Structure
4585
+ end
4586
+
4587
+ # A container for the encryption of the S3 Storage Lens metrics exports.
4588
+ #
4589
+ # @note When making an API call, you may pass StorageLensDataExportEncryption
4590
+ # data as a hash:
4591
+ #
4592
+ # {
4593
+ # sses3: {
4594
+ # },
4595
+ # ssekms: {
4596
+ # key_id: "SSEKMSKeyId", # required
4597
+ # },
4598
+ # }
4599
+ #
4600
+ # @!attribute [rw] sses3
4601
+ # @return [Types::SSES3]
4602
+ #
4603
+ # @!attribute [rw] ssekms
4604
+ # @return [Types::SSEKMS]
4605
+ #
4606
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/StorageLensDataExportEncryption AWS API Documentation
4607
+ #
4608
+ class StorageLensDataExportEncryption < Struct.new(
4609
+ :sses3,
4610
+ :ssekms)
4611
+ SENSITIVE = []
4612
+ include Aws::Structure
4613
+ end
4614
+
4615
+ # @note When making an API call, you may pass StorageLensTag
4616
+ # data as a hash:
4617
+ #
4618
+ # {
4619
+ # key: "TagKeyString", # required
4620
+ # value: "TagValueString", # required
4621
+ # }
4622
+ #
4623
+ # @!attribute [rw] key
4624
+ # @return [String]
4625
+ #
4626
+ # @!attribute [rw] value
4627
+ # @return [String]
4628
+ #
4629
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/StorageLensTag AWS API Documentation
4630
+ #
4631
+ class StorageLensTag < Struct.new(
4632
+ :key,
4633
+ :value)
4634
+ SENSITIVE = []
4635
+ include Aws::Structure
4636
+ end
4637
+
4638
+ # @note When making an API call, you may pass Tagging
4639
+ # data as a hash:
4640
+ #
4641
+ # {
4642
+ # tag_set: [ # required
4643
+ # {
4644
+ # key: "TagKeyString", # required
4645
+ # value: "TagValueString", # required
4646
+ # },
4647
+ # ],
4648
+ # }
4649
+ #
4650
+ # @!attribute [rw] tag_set
4651
+ # A collection for a set of tags.
4652
+ # @return [Array<Types::S3Tag>]
4653
+ #
4654
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/Tagging AWS API Documentation
4655
+ #
4656
+ class Tagging < Struct.new(
4657
+ :tag_set)
4658
+ SENSITIVE = []
4659
+ include Aws::Structure
4660
+ end
4661
+
2285
4662
  # @!attribute [rw] message
2286
4663
  # @return [String]
2287
4664
  #
@@ -2293,6 +4670,9 @@ module Aws::S3Control
2293
4670
  include Aws::Structure
2294
4671
  end
2295
4672
 
4673
+ # Amazon S3 throws this exception if you have too many tags in your tag
4674
+ # set.
4675
+ #
2296
4676
  # @!attribute [rw] message
2297
4677
  # @return [String]
2298
4678
  #
@@ -2304,6 +4684,50 @@ module Aws::S3Control
2304
4684
  include Aws::Structure
2305
4685
  end
2306
4686
 
4687
+ # Specifies when an object transitions to a specified storage class. For
4688
+ # more information about Amazon S3 Lifecycle configuration rules, see [
4689
+ # Transitioning objects using Amazon S3 Lifecycle][1] in the *Amazon
4690
+ # Simple Storage Service Developer Guide*.
4691
+ #
4692
+ #
4693
+ #
4694
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-transition-general-considerations.html
4695
+ #
4696
+ # @note When making an API call, you may pass Transition
4697
+ # data as a hash:
4698
+ #
4699
+ # {
4700
+ # date: Time.now,
4701
+ # days: 1,
4702
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
4703
+ # }
4704
+ #
4705
+ # @!attribute [rw] date
4706
+ # Indicates when objects are transitioned to the specified storage
4707
+ # class. The date value must be in ISO 8601 format. The time is always
4708
+ # midnight UTC.
4709
+ # @return [Time]
4710
+ #
4711
+ # @!attribute [rw] days
4712
+ # Indicates the number of days after creation when objects are
4713
+ # transitioned to the specified storage class. The value must be a
4714
+ # positive integer.
4715
+ # @return [Integer]
4716
+ #
4717
+ # @!attribute [rw] storage_class
4718
+ # The storage class to which you want the object to transition.
4719
+ # @return [String]
4720
+ #
4721
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/Transition AWS API Documentation
4722
+ #
4723
+ class Transition < Struct.new(
4724
+ :date,
4725
+ :days,
4726
+ :storage_class)
4727
+ SENSITIVE = []
4728
+ include Aws::Structure
4729
+ end
4730
+
2307
4731
  # @note When making an API call, you may pass UpdateJobPriorityRequest
2308
4732
  # data as a hash:
2309
4733
  #
@@ -2314,6 +4738,7 @@ module Aws::S3Control
2314
4738
  # }
2315
4739
  #
2316
4740
  # @!attribute [rw] account_id
4741
+ # The AWS account ID associated with the S3 Batch Operations job.
2317
4742
  # @return [String]
2318
4743
  #
2319
4744
  # @!attribute [rw] job_id
@@ -2362,6 +4787,7 @@ module Aws::S3Control
2362
4787
  # }
2363
4788
  #
2364
4789
  # @!attribute [rw] account_id
4790
+ # The AWS account ID associated with the S3 Batch Operations job.
2365
4791
  # @return [String]
2366
4792
  #
2367
4793
  # @!attribute [rw] job_id