aws-sdk-s3control 1.23.0 → 1.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -28,6 +28,8 @@ module Aws::S3Control
28
28
  #
29
29
  # ## Error Classes
30
30
  # * {BadRequestException}
31
+ # * {BucketAlreadyExists}
32
+ # * {BucketAlreadyOwnedByYou}
31
33
  # * {IdempotencyException}
32
34
  # * {InternalServiceException}
33
35
  # * {InvalidNextTokenException}
@@ -59,6 +61,26 @@ module Aws::S3Control
59
61
  end
60
62
  end
61
63
 
64
+ class BucketAlreadyExists < ServiceError
65
+
66
+ # @param [Seahorse::Client::RequestContext] context
67
+ # @param [String] message
68
+ # @param [Aws::S3Control::Types::BucketAlreadyExists] data
69
+ def initialize(context, message, data = Aws::EmptyStructure.new)
70
+ super(context, message, data)
71
+ end
72
+ end
73
+
74
+ class BucketAlreadyOwnedByYou < ServiceError
75
+
76
+ # @param [Seahorse::Client::RequestContext] context
77
+ # @param [String] message
78
+ # @param [Aws::S3Control::Types::BucketAlreadyOwnedByYou] data
79
+ def initialize(context, message, data = Aws::EmptyStructure.new)
80
+ super(context, message, data)
81
+ end
82
+ end
83
+
62
84
  class IdempotencyException < ServiceError
63
85
 
64
86
  # @param [Seahorse::Client::RequestContext] context
@@ -0,0 +1,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