aws-sdk-s3control 1.24.0 → 1.29.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.
@@ -31,6 +31,7 @@ client's region instead.
31
31
  handlers.add(UrlHandler)
32
32
  end
33
33
 
34
+ # After extracting out any ARN input, resolve a new URL with it.
34
35
  class UrlHandler < Seahorse::Client::Handler
35
36
  def call(context)
36
37
  if context.metadata[:s3_arn]
@@ -38,13 +39,18 @@ client's region instead.
38
39
  context.http_request.endpoint,
39
40
  context.metadata[:s3_arn][:arn],
40
41
  context.metadata[:s3_arn][:resolved_region],
41
- context.metadata[:s3_arn][:dualstack]
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
42
46
  )
43
47
  end
44
48
  @handler.call(context)
45
49
  end
46
50
  end
47
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.
48
54
  class ARNHandler < Seahorse::Client::Handler
49
55
  def call(context)
50
56
  arn_member = _arn_member(context.operation.input.shape)
@@ -54,6 +60,7 @@ client's region instead.
54
60
  context.config.region,
55
61
  context.config.s3_use_arn_region
56
62
  )
63
+ validate_outpost_dualstack!(context)
57
64
  if arn
58
65
  validate_config!(context, arn)
59
66
 
@@ -68,7 +75,6 @@ client's region instead.
68
75
  # depending on the ARN's resource type, put the resource value
69
76
  # back onto params
70
77
  context.params[arn_member] = arn.input_member
71
-
72
78
  context.metadata[:s3_arn] = {
73
79
  arn: arn,
74
80
  resolved_region: resolved_region,
@@ -81,6 +87,17 @@ client's region instead.
81
87
 
82
88
  private
83
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
+
84
101
  # This looks for BucketName or AccessPointName, but prefers BucketName
85
102
  # for CreateAccessPoint because it contains both but should not have
86
103
  # an Access Point ARN as AccessPointName.
@@ -102,16 +119,10 @@ client's region instead.
102
119
  end
103
120
 
104
121
  def validate_config!(context, arn)
105
- unless context.config.regional_endpoint
106
- raise ArgumentError,
107
- 'Cannot provide both an Access Point ARN and setting '\
108
- ':endpoint.'
109
- end
110
-
111
122
  if !arn.support_dualstack? && context[:use_dualstack_endpoint]
112
123
  raise ArgumentError,
113
- 'Cannot provide both an Outpost Access Point ARN and '\
114
- 'setting :use_dualstack_endpoint to true.'
124
+ 'Cannot provide an Outpost Access Point ARN when '\
125
+ '`:use_dualstack_endpoint` is set to true.'
115
126
  end
116
127
  end
117
128
 
@@ -154,8 +165,9 @@ client's region instead.
154
165
  end
155
166
 
156
167
  # @api private
157
- def resolve_url!(url, arn, region, dualstack = false)
158
- url.host = arn.host_url(region, dualstack)
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)
159
171
  url
160
172
  end
161
173
 
@@ -169,9 +181,9 @@ client's region instead.
169
181
  # Raise if provided value is not true or false
170
182
  if value.nil?
171
183
  raise ArgumentError,
172
- 'Must provide either `true` or `false` for '\
173
- 's3_use_arn_region profile option or for '\
174
- "ENV['AWS_S3_USE_ARN_REGION']"
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']."
175
187
  end
176
188
  value
177
189
  end
@@ -191,7 +203,7 @@ client's region instead.
191
203
  if !fips && !use_arn_region && region.include?('fips')
192
204
  raise ArgumentError,
193
205
  'FIPS client regions are not supported for this type of '\
194
- 'ARN without s3_use_arn_region.'
206
+ 'ARN without `:s3_use_arn_region`.'
195
207
  end
196
208
 
197
209
  # if it's a fips region, attempt to normalize it
@@ -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
@@ -51,8 +51,12 @@ module Aws
51
51
  credentials: context.config.credentials
52
52
  )
53
53
  elsif outpost_operation?(context)
54
- context.http_request.endpoint.host =
55
- "s3-outposts.#{context.config.region}.amazonaws.com"
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
56
60
  S3ControlSigner.build_v4_signer(
57
61
  service: 's3-outposts',
58
62
  region: context.config.region,
@@ -72,6 +72,71 @@ module Aws::S3Control
72
72
  include Aws::Structure
73
73
  end
74
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)
136
+ SENSITIVE = []
137
+ include Aws::Structure
138
+ end
139
+
75
140
  # @!attribute [rw] message
76
141
  # @return [String]
77
142
  #
@@ -98,6 +163,46 @@ module Aws::S3Control
98
163
  #
99
164
  class BucketAlreadyOwnedByYou < Aws::EmptyStructure; end
100
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
+
101
206
  # @note When making an API call, you may pass CreateAccessPointRequest
102
207
  # data as a hash:
103
208
  #
@@ -129,8 +234,11 @@ module Aws::S3Control
129
234
  # The name of the bucket that you want to associate this access point
130
235
  # with.
131
236
  #
132
- # For Amazon S3 on Outposts specify the ARN of the bucket accessed in
133
- # the format
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
134
242
  # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
135
243
  # For example, to access the bucket `reports` through outpost
136
244
  # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
@@ -151,7 +259,7 @@ module Aws::S3Control
151
259
  #
152
260
  # @!attribute [rw] public_access_block_configuration
153
261
  # The `PublicAccessBlock` configuration that you want to apply to this
154
- # Amazon S3 bucket. You can enable the configuration options in any
262
+ # Amazon S3 account. You can enable the configuration options in any
155
263
  # combination. For more information about when Amazon S3 considers a
156
264
  # bucket or object public, see [The Meaning of "Public"][1] in the
157
265
  # *Amazon Simple Storage Service Developer Guide*.
@@ -177,6 +285,10 @@ module Aws::S3Control
177
285
 
178
286
  # @!attribute [rw] access_point_arn
179
287
  # The ARN of the access point.
288
+ #
289
+ # <note markdown="1"> This is only supported by Amazon S3 on Outposts.
290
+ #
291
+ # </note>
180
292
  # @return [String]
181
293
  #
182
294
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateAccessPointResult AWS API Documentation
@@ -339,8 +451,11 @@ module Aws::S3Control
339
451
  # @!attribute [rw] bucket_arn
340
452
  # The Amazon Resource Name (ARN) of the bucket.
341
453
  #
342
- # For Amazon S3 on Outposts specify the ARN of the bucket accessed in
343
- # the format
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
344
459
  # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
345
460
  # For example, to access the bucket `reports` through outpost
346
461
  # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
@@ -443,6 +558,8 @@ module Aws::S3Control
443
558
  # },
444
559
  # ],
445
560
  # },
561
+ # s3_delete_object_tagging: {
562
+ # },
446
563
  # s3_initiate_restore_object: {
447
564
  # expiration_in_days: 1,
448
565
  # glacier_job_tier: "BULK", # accepts BULK, STANDARD
@@ -501,14 +618,14 @@ module Aws::S3Control
501
618
  # @return [Boolean]
502
619
  #
503
620
  # @!attribute [rw] operation
504
- # The operation that you want this job to perform on each object
505
- # listed in the manifest. For more information about the available
506
- # operations, see [Operations][1] in the *Amazon Simple Storage
507
- # Service Developer Guide*.
621
+ # The action that you want this job to perform on every object listed
622
+ # in the manifest. For more information about the available actions,
623
+ # see [Operations][1] in the *Amazon Simple Storage Service User
624
+ # Guide*.
508
625
  #
509
626
  #
510
627
  #
511
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-operations.html
628
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-actions.html
512
629
  # @return [Types::JobOperation]
513
630
  #
514
631
  # @!attribute [rw] report
@@ -542,7 +659,7 @@ module Aws::S3Control
542
659
  # @!attribute [rw] role_arn
543
660
  # The Amazon Resource Name (ARN) for the AWS Identity and Access
544
661
  # Management (IAM) role that Batch Operations will use to run this
545
- # job's operation on each object in the manifest.
662
+ # job's action on every object in the manifest.
546
663
  # @return [String]
547
664
  #
548
665
  # @!attribute [rw] tags
@@ -595,8 +712,12 @@ module Aws::S3Control
595
712
  # @!attribute [rw] name
596
713
  # The name of the access point whose policy you want to delete.
597
714
  #
598
- # For Amazon S3 on Outposts specify the ARN of the access point
599
- # accessed in the format
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
600
721
  # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>`.
601
722
  # For example, to access the access point `reports-ap` through outpost
602
723
  # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
@@ -629,8 +750,12 @@ module Aws::S3Control
629
750
  # @!attribute [rw] name
630
751
  # The name of the access point you want to delete.
631
752
  #
632
- # For Amazon S3 on Outposts specify the ARN of the access point
633
- # accessed in the format
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
634
759
  # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>`.
635
760
  # For example, to access the access point `reports-ap` through outpost
636
761
  # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
@@ -661,10 +786,13 @@ module Aws::S3Control
661
786
  # @return [String]
662
787
  #
663
788
  # @!attribute [rw] bucket
664
- # The bucket ARN of the 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.
665
793
  #
666
- # For Amazon S3 on Outposts specify the ARN of the bucket accessed in
667
- # the format
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
668
796
  # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
669
797
  # For example, to access the bucket `reports` through outpost
670
798
  # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
@@ -695,10 +823,13 @@ module Aws::S3Control
695
823
  # @return [String]
696
824
  #
697
825
  # @!attribute [rw] bucket
698
- # The ARN of the bucket.
826
+ # Specifies the bucket.
699
827
  #
700
- # For Amazon S3 on Outposts specify the ARN of the bucket accessed in
701
- # the format
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
702
833
  # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
703
834
  # For example, to access the bucket `reports` through outpost
704
835
  # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
@@ -731,8 +862,11 @@ module Aws::S3Control
731
862
  # @!attribute [rw] bucket
732
863
  # Specifies the bucket being deleted.
733
864
  #
734
- # For Amazon S3 on Outposts specify the ARN of the bucket accessed in
735
- # the format
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
736
870
  # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
737
871
  # For example, to access the bucket `reports` through outpost
738
872
  # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
@@ -765,8 +899,11 @@ module Aws::S3Control
765
899
  # @!attribute [rw] bucket
766
900
  # The bucket ARN that has the tag set to be removed.
767
901
  #
768
- # For Amazon S3 on Outposts specify the ARN of the bucket accessed in
769
- # the format
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
770
907
  # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
771
908
  # For example, to access the bucket `reports` through outpost
772
909
  # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
@@ -834,6 +971,60 @@ module Aws::S3Control
834
971
  include Aws::Structure
835
972
  end
836
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
+
837
1028
  # @note When making an API call, you may pass DescribeJobRequest
838
1029
  # data as a hash:
839
1030
  #
@@ -843,6 +1034,7 @@ module Aws::S3Control
843
1034
  # }
844
1035
  #
845
1036
  # @!attribute [rw] account_id
1037
+ # The AWS account ID associated with the S3 Batch Operations job.
846
1038
  # @return [String]
847
1039
  #
848
1040
  # @!attribute [rw] job_id
@@ -871,6 +1063,33 @@ module Aws::S3Control
871
1063
  include Aws::Structure
872
1064
  end
873
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
+
874
1093
  # @note When making an API call, you may pass GetAccessPointPolicyRequest
875
1094
  # data as a hash:
876
1095
  #
@@ -886,8 +1105,12 @@ module Aws::S3Control
886
1105
  # @!attribute [rw] name
887
1106
  # The name of the access point whose policy you want to retrieve.
888
1107
  #
889
- # For Amazon S3 on Outposts specify the ARN of the access point
890
- # accessed in the format
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
891
1114
  # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>`.
892
1115
  # For example, to access the access point `reports-ap` through outpost
893
1116
  # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
@@ -971,8 +1194,12 @@ module Aws::S3Control
971
1194
  # The name of the access point whose configuration information you
972
1195
  # want to retrieve.
973
1196
  #
974
- # For Amazon S3 on Outposts specify the ARN of the access point
975
- # accessed in the format
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
976
1203
  # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>`.
977
1204
  # For example, to access the access point `reports-ap` through outpost
978
1205
  # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
@@ -1016,7 +1243,7 @@ module Aws::S3Control
1016
1243
  #
1017
1244
  # @!attribute [rw] public_access_block_configuration
1018
1245
  # The `PublicAccessBlock` configuration that you want to apply to this
1019
- # Amazon S3 bucket. You can enable the configuration options in any
1246
+ # Amazon S3 account. You can enable the configuration options in any
1020
1247
  # combination. For more information about when Amazon S3 considers a
1021
1248
  # bucket or object public, see [The Meaning of "Public"][1] in the
1022
1249
  # *Amazon Simple Storage Service Developer Guide*.
@@ -1060,8 +1287,11 @@ module Aws::S3Control
1060
1287
  # @!attribute [rw] bucket
1061
1288
  # The Amazon Resource Name (ARN) of the bucket.
1062
1289
  #
1063
- # For Amazon S3 on Outposts specify the ARN of the bucket accessed in
1064
- # the format
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
1065
1295
  # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
1066
1296
  # For example, to access the bucket `reports` through outpost
1067
1297
  # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
@@ -1104,10 +1334,13 @@ module Aws::S3Control
1104
1334
  # @return [String]
1105
1335
  #
1106
1336
  # @!attribute [rw] bucket
1107
- # The ARN of the bucket.
1337
+ # Specifies the bucket.
1108
1338
  #
1109
- # For Amazon S3 on Outposts specify the ARN of the bucket accessed in
1110
- # the format
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
1111
1344
  # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
1112
1345
  # For example, to access the bucket `reports` through outpost
1113
1346
  # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
@@ -1150,10 +1383,13 @@ module Aws::S3Control
1150
1383
  # @return [String]
1151
1384
  #
1152
1385
  # @!attribute [rw] bucket
1153
- # The ARN of the 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.
1154
1390
  #
1155
- # For Amazon S3 on Outposts specify the ARN of the bucket accessed in
1156
- # the format
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
1157
1393
  # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
1158
1394
  # For example, to access the bucket `reports` through outpost
1159
1395
  # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
@@ -1205,10 +1441,13 @@ module Aws::S3Control
1205
1441
  # @return [String]
1206
1442
  #
1207
1443
  # @!attribute [rw] bucket
1208
- # The ARN of the bucket.
1444
+ # Specifies the bucket.
1209
1445
  #
1210
- # For Amazon S3 on Outposts specify the ARN of the bucket accessed in
1211
- # the format
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
1212
1451
  # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
1213
1452
  # For example, to access the bucket `reports` through outpost
1214
1453
  # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
@@ -1309,6 +1548,80 @@ module Aws::S3Control
1309
1548
  include Aws::Structure
1310
1549
  end
1311
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]
1579
+ #
1580
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfigurationResult AWS API Documentation
1581
+ #
1582
+ class GetStorageLensConfigurationResult < Struct.new(
1583
+ :storage_lens_configuration)
1584
+ SENSITIVE = []
1585
+ include Aws::Structure
1586
+ end
1587
+
1588
+ # @note When making an API call, you may pass GetStorageLensConfigurationTaggingRequest
1589
+ # data as a hash:
1590
+ #
1591
+ # {
1592
+ # config_id: "ConfigId", # required
1593
+ # account_id: "AccountId", # required
1594
+ # }
1595
+ #
1596
+ # @!attribute [rw] config_id
1597
+ # The ID of the Amazon S3 Storage Lens configuration.
1598
+ # @return [String]
1599
+ #
1600
+ # @!attribute [rw] account_id
1601
+ # The account ID of the requester.
1602
+ # @return [String]
1603
+ #
1604
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfigurationTaggingRequest AWS API Documentation
1605
+ #
1606
+ class GetStorageLensConfigurationTaggingRequest < Struct.new(
1607
+ :config_id,
1608
+ :account_id)
1609
+ SENSITIVE = []
1610
+ include Aws::Structure
1611
+ end
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
+
1312
1625
  # @!attribute [rw] message
1313
1626
  # @return [String]
1314
1627
  #
@@ -1320,6 +1633,33 @@ module Aws::S3Control
1320
1633
  include Aws::Structure
1321
1634
  end
1322
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
+
1323
1663
  # @!attribute [rw] message
1324
1664
  # @return [String]
1325
1665
  #
@@ -1496,7 +1836,7 @@ module Aws::S3Control
1496
1836
  # @return [String]
1497
1837
  #
1498
1838
  # @!attribute [rw] operation
1499
- # 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
1500
1840
  # object listed in the manifest.
1501
1841
  # @return [String]
1502
1842
  #
@@ -1589,6 +1929,14 @@ module Aws::S3Control
1589
1929
  #
1590
1930
  # @!attribute [rw] object_arn
1591
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
1592
1940
  # @return [String]
1593
1941
  #
1594
1942
  # @!attribute [rw] object_version_id
@@ -1641,10 +1989,9 @@ module Aws::S3Control
1641
1989
  include Aws::Structure
1642
1990
  end
1643
1991
 
1644
- # 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
1645
1993
  # in the manifest. For more information about the available operations,
1646
- # see [Operations][1] in the *Amazon Simple Storage Service Developer
1647
- # Guide*.
1994
+ # see [Operations][1] in the *Amazon Simple Storage Service User Guide*.
1648
1995
  #
1649
1996
  #
1650
1997
  #
@@ -1732,6 +2079,8 @@ module Aws::S3Control
1732
2079
  # },
1733
2080
  # ],
1734
2081
  # },
2082
+ # s3_delete_object_tagging: {
2083
+ # },
1735
2084
  # s3_initiate_restore_object: {
1736
2085
  # expiration_in_days: 1,
1737
2086
  # glacier_job_tier: "BULK", # accepts BULK, STANDARD
@@ -1751,36 +2100,41 @@ module Aws::S3Control
1751
2100
  # }
1752
2101
  #
1753
2102
  # @!attribute [rw] lambda_invoke
1754
- # Directs the specified job to invoke an AWS Lambda function on each
2103
+ # Directs the specified job to invoke an AWS Lambda function on every
1755
2104
  # object in the manifest.
1756
2105
  # @return [Types::LambdaInvokeOperation]
1757
2106
  #
1758
2107
  # @!attribute [rw] s3_put_object_copy
1759
- # Directs the specified job to run a PUT Copy object call on each
2108
+ # Directs the specified job to run a PUT Copy object call on every
1760
2109
  # object in the manifest.
1761
2110
  # @return [Types::S3CopyObjectOperation]
1762
2111
  #
1763
2112
  # @!attribute [rw] s3_put_object_acl
1764
- # Directs the specified job to run a PUT Object acl call on each
2113
+ # Directs the specified job to run a PUT Object acl call on every
1765
2114
  # object in the manifest.
1766
2115
  # @return [Types::S3SetObjectAclOperation]
1767
2116
  #
1768
2117
  # @!attribute [rw] s3_put_object_tagging
1769
- # Directs the specified job to run a PUT Object tagging call on each
2118
+ # Directs the specified job to run a PUT Object tagging call on every
1770
2119
  # object in the manifest.
1771
2120
  # @return [Types::S3SetObjectTaggingOperation]
1772
2121
  #
2122
+ # @!attribute [rw] s3_delete_object_tagging
2123
+ # Directs the specified job to execute a DELETE Object tagging call on
2124
+ # every object in the manifest.
2125
+ # @return [Types::S3DeleteObjectTaggingOperation]
2126
+ #
1773
2127
  # @!attribute [rw] s3_initiate_restore_object
1774
- # Directs the specified job to run an Initiate Glacier Restore call on
1775
- # each object in the manifest.
2128
+ # Directs the specified job to initiate restore requests for every
2129
+ # archived object in the manifest.
1776
2130
  # @return [Types::S3InitiateRestoreObjectOperation]
1777
2131
  #
1778
2132
  # @!attribute [rw] s3_put_object_legal_hold
1779
2133
  # Contains the configuration for an S3 Object Lock legal hold
1780
- # operation that an S3 Batch Operations job passes each object through
1781
- # to the underlying `PutObjectLegalHold` API. For more information,
1782
- # see [Using S3 Object Lock legal hold with S3 Batch Operations][1] in
1783
- # the *Amazon Simple Storage Service Developer Guide*.
2134
+ # operation that an S3 Batch Operations job passes every object to the
2135
+ # underlying `PutObjectLegalHold` API. For more information, see
2136
+ # [Using S3 Object Lock legal hold with S3 Batch Operations][1] in the
2137
+ # *Amazon Simple Storage Service User Guide*.
1784
2138
  #
1785
2139
  #
1786
2140
  #
@@ -1789,11 +2143,10 @@ module Aws::S3Control
1789
2143
  #
1790
2144
  # @!attribute [rw] s3_put_object_retention
1791
2145
  # Contains the configuration parameters for the Object Lock retention
1792
- # action for an S3 Batch Operations job. Batch Operations passes each
1793
- # value through to the underlying `PutObjectRetention` API. For more
2146
+ # action for an S3 Batch Operations job. Batch Operations passes every
2147
+ # object to the underlying `PutObjectRetention` API. For more
1794
2148
  # information, see [Using S3 Object Lock retention with S3 Batch
1795
- # Operations][1] in the *Amazon Simple Storage Service Developer
1796
- # Guide*.
2149
+ # Operations][1] in the *Amazon Simple Storage Service User Guide*.
1797
2150
  #
1798
2151
  #
1799
2152
  #
@@ -1807,6 +2160,7 @@ module Aws::S3Control
1807
2160
  :s3_put_object_copy,
1808
2161
  :s3_put_object_acl,
1809
2162
  :s3_put_object_tagging,
2163
+ :s3_delete_object_tagging,
1810
2164
  :s3_initiate_restore_object,
1811
2165
  :s3_put_object_legal_hold,
1812
2166
  :s3_put_object_retention)
@@ -1909,7 +2263,7 @@ module Aws::S3Control
1909
2263
  #
1910
2264
  # @!attribute [rw] function_arn
1911
2265
  # The Amazon Resource Name (ARN) for the AWS Lambda function that the
1912
- # specified job will invoke for each object in the manifest.
2266
+ # specified job will invoke on every object in the manifest.
1913
2267
  # @return [String]
1914
2268
  #
1915
2269
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/LambdaInvokeOperation AWS API Documentation
@@ -2207,6 +2561,14 @@ module Aws::S3Control
2207
2561
  #
2208
2562
  # @!attribute [rw] prefix
2209
2563
  # Prefix identifying one or more objects to which the rule applies.
2564
+ #
2565
+ # Replacement must be made for object keys containing special
2566
+ # characters (such as carriage returns) when using XML requests. For
2567
+ # more information, see [ XML related object key constraints][1].
2568
+ #
2569
+ #
2570
+ #
2571
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints
2210
2572
  # @return [String]
2211
2573
  #
2212
2574
  # @!attribute [rw] tag
@@ -2245,8 +2607,11 @@ module Aws::S3Control
2245
2607
  # The name of the bucket whose associated access points you want to
2246
2608
  # list.
2247
2609
  #
2248
- # For Amazon S3 on Outposts specify the ARN of the bucket accessed in
2249
- # the format
2610
+ # For using this parameter with Amazon S3 on Outposts with the REST
2611
+ # API, you must specify the name and the x-amz-outpost-id as well.
2612
+ #
2613
+ # For using this parameter with S3 on Outposts with the AWS SDK and
2614
+ # CLI, you must specify the ARN of the bucket accessed in the format
2250
2615
  # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
2251
2616
  # For example, to access the bucket `reports` through outpost
2252
2617
  # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
@@ -2313,6 +2678,7 @@ module Aws::S3Control
2313
2678
  # }
2314
2679
  #
2315
2680
  # @!attribute [rw] account_id
2681
+ # The AWS account ID associated with the S3 Batch Operations job.
2316
2682
  # @return [String]
2317
2683
  #
2318
2684
  # @!attribute [rw] job_statuses
@@ -2422,6 +2788,85 @@ module Aws::S3Control
2422
2788
  include Aws::Structure
2423
2789
  end
2424
2790
 
2791
+ # Part of `ListStorageLensConfigurationResult`. Each entry includes the
2792
+ # description of the S3 Storage Lens configuration, its home Region,
2793
+ # whether it is enabled, its Amazon Resource Name (ARN), and config ID.
2794
+ #
2795
+ # @!attribute [rw] id
2796
+ # A container for the S3 Storage Lens configuration ID.
2797
+ # @return [String]
2798
+ #
2799
+ # @!attribute [rw] storage_lens_arn
2800
+ # The ARN of the S3 Storage Lens configuration. This property is
2801
+ # read-only.
2802
+ # @return [String]
2803
+ #
2804
+ # @!attribute [rw] home_region
2805
+ # A container for the S3 Storage Lens home Region. Your metrics data
2806
+ # is stored and retained in your designated S3 Storage Lens home
2807
+ # Region.
2808
+ # @return [String]
2809
+ #
2810
+ # @!attribute [rw] is_enabled
2811
+ # A container for whether the S3 Storage Lens configuration is
2812
+ # enabled. This property is required.
2813
+ # @return [Boolean]
2814
+ #
2815
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListStorageLensConfigurationEntry AWS API Documentation
2816
+ #
2817
+ class ListStorageLensConfigurationEntry < Struct.new(
2818
+ :id,
2819
+ :storage_lens_arn,
2820
+ :home_region,
2821
+ :is_enabled)
2822
+ SENSITIVE = []
2823
+ include Aws::Structure
2824
+ end
2825
+
2826
+ # @note When making an API call, you may pass ListStorageLensConfigurationsRequest
2827
+ # data as a hash:
2828
+ #
2829
+ # {
2830
+ # account_id: "AccountId", # required
2831
+ # next_token: "ContinuationToken",
2832
+ # }
2833
+ #
2834
+ # @!attribute [rw] account_id
2835
+ # The account ID of the requester.
2836
+ # @return [String]
2837
+ #
2838
+ # @!attribute [rw] next_token
2839
+ # A pagination token to request the next page of results.
2840
+ # @return [String]
2841
+ #
2842
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListStorageLensConfigurationsRequest AWS API Documentation
2843
+ #
2844
+ class ListStorageLensConfigurationsRequest < Struct.new(
2845
+ :account_id,
2846
+ :next_token)
2847
+ SENSITIVE = []
2848
+ include Aws::Structure
2849
+ end
2850
+
2851
+ # @!attribute [rw] next_token
2852
+ # If the request produced more than the maximum number of S3 Storage
2853
+ # Lens configuration results, you can pass this value into a
2854
+ # subsequent request to retrieve the next page of results.
2855
+ # @return [String]
2856
+ #
2857
+ # @!attribute [rw] storage_lens_configuration_list
2858
+ # A list of S3 Storage Lens configurations.
2859
+ # @return [Array<Types::ListStorageLensConfigurationEntry>]
2860
+ #
2861
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListStorageLensConfigurationsResult AWS API Documentation
2862
+ #
2863
+ class ListStorageLensConfigurationsResult < Struct.new(
2864
+ :next_token,
2865
+ :storage_lens_configuration_list)
2866
+ SENSITIVE = []
2867
+ include Aws::Structure
2868
+ end
2869
+
2425
2870
  # Amazon S3 throws this exception if you make a `GetPublicAccessBlock`
2426
2871
  # request against an account that doesn't have a
2427
2872
  # `PublicAccessBlockConfiguration` set.
@@ -2515,7 +2960,7 @@ module Aws::S3Control
2515
2960
  # Indicates whether this access point policy is public. For more
2516
2961
  # information about how Amazon S3 evaluates policies to determine
2517
2962
  # whether they are public, see [The Meaning of "Public"][1] in the
2518
- # *Amazon Simple Storage Service Developer Guide*.
2963
+ # *Amazon Simple Storage Service User Guide*.
2519
2964
  #
2520
2965
  #
2521
2966
  #
@@ -2532,20 +2977,79 @@ module Aws::S3Control
2532
2977
  include Aws::Structure
2533
2978
  end
2534
2979
 
2535
- # The `PublicAccessBlock` configuration that you want to apply to this
2536
- # Amazon S3 bucket. You can enable the configuration options in any
2537
- # combination. For more information about when Amazon S3 considers a
2538
- # bucket or object public, see [The Meaning of "Public"][1] in the
2539
- # *Amazon Simple Storage Service Developer Guide*.
2980
+ # A container for the prefix-level configuration.
2540
2981
  #
2541
- # This is not supported for Amazon S3 on Outposts.
2982
+ # @note When making an API call, you may pass PrefixLevel
2983
+ # data as a hash:
2542
2984
  #
2985
+ # {
2986
+ # storage_metrics: { # required
2987
+ # is_enabled: false,
2988
+ # selection_criteria: {
2989
+ # delimiter: "StorageLensPrefixLevelDelimiter",
2990
+ # max_depth: 1,
2991
+ # min_storage_bytes_percentage: 1.0,
2992
+ # },
2993
+ # },
2994
+ # }
2543
2995
  #
2996
+ # @!attribute [rw] storage_metrics
2997
+ # A container for the prefix-level storage metrics for S3 Storage
2998
+ # Lens.
2999
+ # @return [Types::PrefixLevelStorageMetrics]
2544
3000
  #
2545
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status
3001
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PrefixLevel AWS API Documentation
2546
3002
  #
2547
- # @note When making an API call, you may pass PublicAccessBlockConfiguration
2548
- # data as a hash:
3003
+ class PrefixLevel < Struct.new(
3004
+ :storage_metrics)
3005
+ SENSITIVE = []
3006
+ include Aws::Structure
3007
+ end
3008
+
3009
+ # A container for the prefix-level storage metrics for S3 Storage Lens.
3010
+ #
3011
+ # @note When making an API call, you may pass PrefixLevelStorageMetrics
3012
+ # data as a hash:
3013
+ #
3014
+ # {
3015
+ # is_enabled: false,
3016
+ # selection_criteria: {
3017
+ # delimiter: "StorageLensPrefixLevelDelimiter",
3018
+ # max_depth: 1,
3019
+ # min_storage_bytes_percentage: 1.0,
3020
+ # },
3021
+ # }
3022
+ #
3023
+ # @!attribute [rw] is_enabled
3024
+ # A container for whether prefix-level storage metrics are enabled.
3025
+ # @return [Boolean]
3026
+ #
3027
+ # @!attribute [rw] selection_criteria
3028
+ # @return [Types::SelectionCriteria]
3029
+ #
3030
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PrefixLevelStorageMetrics AWS API Documentation
3031
+ #
3032
+ class PrefixLevelStorageMetrics < Struct.new(
3033
+ :is_enabled,
3034
+ :selection_criteria)
3035
+ SENSITIVE = []
3036
+ include Aws::Structure
3037
+ end
3038
+
3039
+ # The `PublicAccessBlock` configuration that you want to apply to this
3040
+ # Amazon S3 account. You can enable the configuration options in any
3041
+ # combination. For more information about when Amazon S3 considers a
3042
+ # bucket or object public, see [The Meaning of "Public"][1] in the
3043
+ # *Amazon Simple Storage Service Developer Guide*.
3044
+ #
3045
+ # This is not supported for Amazon S3 on Outposts.
3046
+ #
3047
+ #
3048
+ #
3049
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status
3050
+ #
3051
+ # @note When making an API call, you may pass PublicAccessBlockConfiguration
3052
+ # data as a hash:
2549
3053
  #
2550
3054
  # {
2551
3055
  # block_public_acls: false,
@@ -2597,8 +3101,8 @@ module Aws::S3Control
2597
3101
  # @!attribute [rw] restrict_public_buckets
2598
3102
  # Specifies whether Amazon S3 should restrict public bucket policies
2599
3103
  # for buckets in this account. Setting this element to `TRUE`
2600
- # restricts access to buckets with public policies to only AWS
2601
- # services and authorized users within this account.
3104
+ # restricts access to buckets with public policies to only AWS service
3105
+ # principals and authorized users within this account.
2602
3106
  #
2603
3107
  # Enabling this setting doesn't affect previously stored bucket
2604
3108
  # policies, except that public and cross-account access within any
@@ -2637,8 +3141,12 @@ module Aws::S3Control
2637
3141
  # The name of the access point that you want to associate with the
2638
3142
  # specified policy.
2639
3143
  #
2640
- # For Amazon S3 on Outposts specify the ARN of the access point
2641
- # accessed in the format
3144
+ # For using this parameter with Amazon S3 on Outposts with the REST
3145
+ # API, you must specify the name and the x-amz-outpost-id as well.
3146
+ #
3147
+ # For using this parameter with S3 on Outposts with the AWS SDK and
3148
+ # CLI, you must specify the ARN of the access point accessed in the
3149
+ # format
2642
3150
  # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>`.
2643
3151
  # For example, to access the access point `reports-ap` through outpost
2644
3152
  # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
@@ -2649,9 +3157,9 @@ module Aws::S3Control
2649
3157
  #
2650
3158
  # @!attribute [rw] policy
2651
3159
  # The policy that you want to apply to the specified access point. For
2652
- # more information about access point policies, see [Managing Data
2653
- # Access with Amazon S3 Access Points][1] in the *Amazon Simple
2654
- # Storage Service Developer Guide*.
3160
+ # more information about access point policies, see [Managing data
3161
+ # access with Amazon S3 Access Points][1] in the *Amazon Simple
3162
+ # Storage Service User Guide*.
2655
3163
  #
2656
3164
  #
2657
3165
  #
@@ -2761,10 +3269,13 @@ module Aws::S3Control
2761
3269
  # @return [String]
2762
3270
  #
2763
3271
  # @!attribute [rw] bucket
2764
- # The ARN of the bucket.
3272
+ # Specifies the bucket.
2765
3273
  #
2766
- # For Amazon S3 on Outposts specify the ARN of the bucket accessed in
2767
- # the format
3274
+ # For using this parameter with Amazon S3 on Outposts with the REST
3275
+ # API, you must specify the name and the x-amz-outpost-id as well.
3276
+ #
3277
+ # For using this parameter with S3 on Outposts with the AWS SDK and
3278
+ # CLI, you must specify the ARN of the bucket accessed in the format
2768
3279
  # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
2769
3280
  # For example, to access the bucket `reports` through outpost
2770
3281
  # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
@@ -2820,8 +3331,11 @@ module Aws::S3Control
2820
3331
  # @!attribute [rw] bucket
2821
3332
  # The Amazon Resource Name (ARN) of the bucket.
2822
3333
  #
2823
- # For Amazon S3 on Outposts specify the ARN of the bucket accessed in
2824
- # the format
3334
+ # For using this parameter with Amazon S3 on Outposts with the REST
3335
+ # API, you must specify the name and the x-amz-outpost-id as well.
3336
+ #
3337
+ # For using this parameter with S3 on Outposts with the AWS SDK and
3338
+ # CLI, you must specify the ARN of the bucket accessed in the format
2825
3339
  # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>`.
2826
3340
  # For example, to access the bucket `reports` through outpost
2827
3341
  # `my-outpost` owned by account `123456789012` in Region `us-west-2`,
@@ -2916,6 +3430,147 @@ module Aws::S3Control
2916
3430
  include Aws::Structure
2917
3431
  end
2918
3432
 
3433
+ # @note When making an API call, you may pass PutStorageLensConfigurationRequest
3434
+ # data as a hash:
3435
+ #
3436
+ # {
3437
+ # config_id: "ConfigId", # required
3438
+ # account_id: "AccountId", # required
3439
+ # storage_lens_configuration: { # required
3440
+ # id: "ConfigId", # required
3441
+ # account_level: { # required
3442
+ # activity_metrics: {
3443
+ # is_enabled: false,
3444
+ # },
3445
+ # bucket_level: { # required
3446
+ # activity_metrics: {
3447
+ # is_enabled: false,
3448
+ # },
3449
+ # prefix_level: {
3450
+ # storage_metrics: { # required
3451
+ # is_enabled: false,
3452
+ # selection_criteria: {
3453
+ # delimiter: "StorageLensPrefixLevelDelimiter",
3454
+ # max_depth: 1,
3455
+ # min_storage_bytes_percentage: 1.0,
3456
+ # },
3457
+ # },
3458
+ # },
3459
+ # },
3460
+ # },
3461
+ # include: {
3462
+ # buckets: ["S3BucketArnString"],
3463
+ # regions: ["S3AWSRegion"],
3464
+ # },
3465
+ # exclude: {
3466
+ # buckets: ["S3BucketArnString"],
3467
+ # regions: ["S3AWSRegion"],
3468
+ # },
3469
+ # data_export: {
3470
+ # s3_bucket_destination: { # required
3471
+ # format: "CSV", # required, accepts CSV, Parquet
3472
+ # output_schema_version: "V_1", # required, accepts V_1
3473
+ # account_id: "AccountId", # required
3474
+ # arn: "S3BucketArnString", # required
3475
+ # prefix: "Prefix",
3476
+ # encryption: {
3477
+ # sses3: {
3478
+ # },
3479
+ # ssekms: {
3480
+ # key_id: "SSEKMSKeyId", # required
3481
+ # },
3482
+ # },
3483
+ # },
3484
+ # },
3485
+ # is_enabled: false, # required
3486
+ # aws_org: {
3487
+ # arn: "AwsOrgArn", # required
3488
+ # },
3489
+ # storage_lens_arn: "StorageLensArn",
3490
+ # },
3491
+ # tags: [
3492
+ # {
3493
+ # key: "TagKeyString", # required
3494
+ # value: "TagValueString", # required
3495
+ # },
3496
+ # ],
3497
+ # }
3498
+ #
3499
+ # @!attribute [rw] config_id
3500
+ # The ID of the S3 Storage Lens configuration.
3501
+ # @return [String]
3502
+ #
3503
+ # @!attribute [rw] account_id
3504
+ # The account ID of the requester.
3505
+ # @return [String]
3506
+ #
3507
+ # @!attribute [rw] storage_lens_configuration
3508
+ # The S3 Storage Lens configuration.
3509
+ # @return [Types::StorageLensConfiguration]
3510
+ #
3511
+ # @!attribute [rw] tags
3512
+ # The tag set of the S3 Storage Lens configuration.
3513
+ #
3514
+ # <note markdown="1"> You can set up to a maximum of 50 tags.
3515
+ #
3516
+ # </note>
3517
+ # @return [Array<Types::StorageLensTag>]
3518
+ #
3519
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfigurationRequest AWS API Documentation
3520
+ #
3521
+ class PutStorageLensConfigurationRequest < Struct.new(
3522
+ :config_id,
3523
+ :account_id,
3524
+ :storage_lens_configuration,
3525
+ :tags)
3526
+ SENSITIVE = []
3527
+ include Aws::Structure
3528
+ end
3529
+
3530
+ # @note When making an API call, you may pass PutStorageLensConfigurationTaggingRequest
3531
+ # data as a hash:
3532
+ #
3533
+ # {
3534
+ # config_id: "ConfigId", # required
3535
+ # account_id: "AccountId", # required
3536
+ # tags: [ # required
3537
+ # {
3538
+ # key: "TagKeyString", # required
3539
+ # value: "TagValueString", # required
3540
+ # },
3541
+ # ],
3542
+ # }
3543
+ #
3544
+ # @!attribute [rw] config_id
3545
+ # The ID of the S3 Storage Lens configuration.
3546
+ # @return [String]
3547
+ #
3548
+ # @!attribute [rw] account_id
3549
+ # The account ID of the requester.
3550
+ # @return [String]
3551
+ #
3552
+ # @!attribute [rw] tags
3553
+ # The tag set of the S3 Storage Lens configuration.
3554
+ #
3555
+ # <note markdown="1"> You can set up to a maximum of 50 tags.
3556
+ #
3557
+ # </note>
3558
+ # @return [Array<Types::StorageLensTag>]
3559
+ #
3560
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfigurationTaggingRequest AWS API Documentation
3561
+ #
3562
+ class PutStorageLensConfigurationTaggingRequest < Struct.new(
3563
+ :config_id,
3564
+ :account_id,
3565
+ :tags)
3566
+ SENSITIVE = []
3567
+ include Aws::Structure
3568
+ end
3569
+
3570
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfigurationTaggingResult AWS API Documentation
3571
+ #
3572
+ class PutStorageLensConfigurationTaggingResult < Aws::EmptyStructure; end
3573
+
2919
3574
  # The container for the regional bucket.
2920
3575
  #
2921
3576
  # @!attribute [rw] bucket
@@ -3021,9 +3676,72 @@ module Aws::S3Control
3021
3676
  include Aws::Structure
3022
3677
  end
3023
3678
 
3679
+ # A container for the bucket where the Amazon S3 Storage Lens metrics
3680
+ # export files are located.
3681
+ #
3682
+ # @note When making an API call, you may pass S3BucketDestination
3683
+ # data as a hash:
3684
+ #
3685
+ # {
3686
+ # format: "CSV", # required, accepts CSV, Parquet
3687
+ # output_schema_version: "V_1", # required, accepts V_1
3688
+ # account_id: "AccountId", # required
3689
+ # arn: "S3BucketArnString", # required
3690
+ # prefix: "Prefix",
3691
+ # encryption: {
3692
+ # sses3: {
3693
+ # },
3694
+ # ssekms: {
3695
+ # key_id: "SSEKMSKeyId", # required
3696
+ # },
3697
+ # },
3698
+ # }
3699
+ #
3700
+ # @!attribute [rw] format
3701
+ # @return [String]
3702
+ #
3703
+ # @!attribute [rw] output_schema_version
3704
+ # The schema version of the export file.
3705
+ # @return [String]
3706
+ #
3707
+ # @!attribute [rw] account_id
3708
+ # The account ID of the owner of the S3 Storage Lens metrics export
3709
+ # bucket.
3710
+ # @return [String]
3711
+ #
3712
+ # @!attribute [rw] arn
3713
+ # The Amazon Resource Name (ARN) of the bucket. This property is
3714
+ # read-only and follows the following format: `
3715
+ # arn:aws:s3:us-east-1:example-account-id:bucket/your-destination-bucket-name
3716
+ # `
3717
+ # @return [String]
3718
+ #
3719
+ # @!attribute [rw] prefix
3720
+ # The prefix of the destination bucket where the metrics export will
3721
+ # be delivered.
3722
+ # @return [String]
3723
+ #
3724
+ # @!attribute [rw] encryption
3725
+ # The container for the type encryption of the metrics exports in this
3726
+ # bucket.
3727
+ # @return [Types::StorageLensDataExportEncryption]
3728
+ #
3729
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3BucketDestination AWS API Documentation
3730
+ #
3731
+ class S3BucketDestination < Struct.new(
3732
+ :format,
3733
+ :output_schema_version,
3734
+ :account_id,
3735
+ :arn,
3736
+ :prefix,
3737
+ :encryption)
3738
+ SENSITIVE = []
3739
+ include Aws::Structure
3740
+ end
3741
+
3024
3742
  # Contains the configuration parameters for a PUT Copy object operation.
3025
- # S3 Batch Operations passes each value through to the underlying PUT
3026
- # Copy object API. For more information about the parameters for this
3743
+ # S3 Batch Operations passes every object to the underlying PUT Copy
3744
+ # object API. For more information about the parameters for this
3027
3745
  # operation, see [PUT Object - Copy][1].
3028
3746
  #
3029
3747
  #
@@ -3081,6 +3799,10 @@ module Aws::S3Control
3081
3799
  # }
3082
3800
  #
3083
3801
  # @!attribute [rw] target_resource
3802
+ # Specifies the destination bucket ARN for the batch copy operation.
3803
+ # For example, to copy objects to a bucket named
3804
+ # "destinationBucket", set the TargetResource to
3805
+ # "arn:aws:s3:::destinationBucket".
3084
3806
  # @return [String]
3085
3807
  #
3086
3808
  # @!attribute [rw] canned_access_control_list
@@ -3102,6 +3824,9 @@ module Aws::S3Control
3102
3824
  # @return [Array<Types::S3Tag>]
3103
3825
  #
3104
3826
  # @!attribute [rw] redirect_location
3827
+ # Specifies an optional metadata property for website redirects,
3828
+ # `x-amz-website-redirect-location`. Allows webpage redirects if the
3829
+ # object is accessed through a website endpoint.
3105
3830
  # @return [String]
3106
3831
  #
3107
3832
  # @!attribute [rw] requester_pays
@@ -3117,6 +3842,10 @@ module Aws::S3Control
3117
3842
  # @return [String]
3118
3843
  #
3119
3844
  # @!attribute [rw] target_key_prefix
3845
+ # Specifies the folder prefix into which you would like the objects to
3846
+ # be copied. For example, to copy objects into a folder named
3847
+ # "Folder1" in the destination bucket, set the TargetKeyPrefix to
3848
+ # "Folder1/".
3120
3849
  # @return [String]
3121
3850
  #
3122
3851
  # @!attribute [rw] object_lock_legal_hold_status
@@ -3157,6 +3886,16 @@ module Aws::S3Control
3157
3886
  include Aws::Structure
3158
3887
  end
3159
3888
 
3889
+ # Contains no configuration parameters because the DELETE Object tagging
3890
+ # API only accepts the bucket name and key name as parameters, which are
3891
+ # defined in the job's manifest.
3892
+ #
3893
+ # @api private
3894
+ #
3895
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3DeleteObjectTaggingOperation AWS API Documentation
3896
+ #
3897
+ class S3DeleteObjectTaggingOperation < Aws::EmptyStructure; end
3898
+
3160
3899
  # @note When making an API call, you may pass S3Grant
3161
3900
  # data as a hash:
3162
3901
  #
@@ -3212,8 +3951,8 @@ module Aws::S3Control
3212
3951
  include Aws::Structure
3213
3952
  end
3214
3953
 
3215
- # Contains the configuration parameters for an Initiate Glacier Restore
3216
- # job. S3 Batch Operations passes each value through to the underlying
3954
+ # Contains the configuration parameters for an S3 Initiate Restore
3955
+ # Object job. S3 Batch Operations passes every object to the underlying
3217
3956
  # POST Object restore API. For more information about the parameters for
3218
3957
  # this operation, see [RestoreObject][1].
3219
3958
  #
@@ -3230,9 +3969,29 @@ module Aws::S3Control
3230
3969
  # }
3231
3970
  #
3232
3971
  # @!attribute [rw] expiration_in_days
3972
+ # This argument specifies how long the S3 Glacier or S3 Glacier Deep
3973
+ # Archive object remains available in Amazon S3. S3 Initiate Restore
3974
+ # Object jobs that target S3 Glacier and S3 Glacier Deep Archive
3975
+ # objects require `ExpirationInDays` set to 1 or greater.
3976
+ #
3977
+ # Conversely, do *not* set `ExpirationInDays` when creating S3
3978
+ # Initiate Restore Object jobs that target S3 Intelligent-Tiering
3979
+ # Archive Access and Deep Archive Access tier objects. Objects in S3
3980
+ # Intelligent-Tiering archive access tiers are not subject to restore
3981
+ # expiry, so specifying `ExpirationInDays` results in restore request
3982
+ # failure.
3983
+ #
3984
+ # S3 Batch Operations jobs can operate either on S3 Glacier and S3
3985
+ # Glacier Deep Archive storage class objects or on S3
3986
+ # Intelligent-Tiering Archive Access and Deep Archive Access storage
3987
+ # tier objects, but not both types in the same job. If you need to
3988
+ # restore objects of both types you *must* create separate Batch
3989
+ # Operations jobs.
3233
3990
  # @return [Integer]
3234
3991
  #
3235
3992
  # @!attribute [rw] glacier_job_tier
3993
+ # S3 Batch Operations supports `STANDARD` and `BULK` retrieval tiers,
3994
+ # but not the `EXPEDITED` retrieval tier.
3236
3995
  # @return [String]
3237
3996
  #
3238
3997
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3InitiateRestoreObjectOperation AWS API Documentation
@@ -3365,7 +4124,7 @@ module Aws::S3Control
3365
4124
  # and `RetainUntilDate` data types in your operation, you will remove
3366
4125
  # the retention from your objects. For more information, see [Using S3
3367
4126
  # Object Lock retention with S3 Batch Operations][1] in the *Amazon
3368
- # Simple Storage Service Developer Guide*.
4127
+ # Simple Storage Service User Guide*.
3369
4128
  #
3370
4129
  #
3371
4130
  #
@@ -3399,9 +4158,9 @@ module Aws::S3Control
3399
4158
  end
3400
4159
 
3401
4160
  # Contains the configuration parameters for a Set Object ACL operation.
3402
- # S3 Batch Operations passes each value through to the underlying PUT
3403
- # Object acl API. For more information about the parameters for this
3404
- # operation, see [PUT Object acl][1].
4161
+ # S3 Batch Operations passes every object to the underlying PUT Object
4162
+ # acl API. For more information about the parameters for this operation,
4163
+ # see [PUT Object acl][1].
3405
4164
  #
3406
4165
  #
3407
4166
  #
@@ -3444,10 +4203,10 @@ module Aws::S3Control
3444
4203
  end
3445
4204
 
3446
4205
  # Contains the configuration for an S3 Object Lock legal hold operation
3447
- # that an S3 Batch Operations job passes each object through to the
3448
- # underlying `PutObjectLegalHold` API. For more information, see [Using
3449
- # S3 Object Lock legal hold with S3 Batch Operations][1] in the *Amazon
3450
- # Simple Storage Service Developer Guide*.
4206
+ # that an S3 Batch Operations job passes every object to the underlying
4207
+ # `PutObjectLegalHold` API. For more information, see [Using S3 Object
4208
+ # Lock legal hold with S3 Batch Operations][1] in the *Amazon Simple
4209
+ # Storage Service User Guide*.
3451
4210
  #
3452
4211
  #
3453
4212
  #
@@ -3476,10 +4235,10 @@ module Aws::S3Control
3476
4235
  end
3477
4236
 
3478
4237
  # Contains the configuration parameters for the Object Lock retention
3479
- # action for an S3 Batch Operations job. Batch Operations passes each
3480
- # value through to the underlying `PutObjectRetention` API. For more
4238
+ # action for an S3 Batch Operations job. Batch Operations passes every
4239
+ # object to the underlying `PutObjectRetention` API. For more
3481
4240
  # information, see [Using S3 Object Lock retention with S3 Batch
3482
- # Operations][1] in the *Amazon Simple Storage Service Developer Guide*.
4241
+ # Operations][1] in the *Amazon Simple Storage Service User Guide*.
3483
4242
  #
3484
4243
  #
3485
4244
  #
@@ -3506,7 +4265,7 @@ module Aws::S3Control
3506
4265
  # Contains the Object Lock retention mode to be applied to all objects
3507
4266
  # in the Batch Operations job. For more information, see [Using S3
3508
4267
  # Object Lock retention with S3 Batch Operations][1] in the *Amazon
3509
- # Simple Storage Service Developer Guide*.
4268
+ # Simple Storage Service User Guide*.
3510
4269
  #
3511
4270
  #
3512
4271
  #
@@ -3523,9 +4282,9 @@ module Aws::S3Control
3523
4282
  end
3524
4283
 
3525
4284
  # Contains the configuration parameters for a Set Object Tagging
3526
- # operation. S3 Batch Operations passes each value through to the
3527
- # underlying PUT Object tagging API. For more information about the
3528
- # parameters for this operation, see [PUT Object tagging][1].
4285
+ # operation. S3 Batch Operations passes every object to the underlying
4286
+ # PUT Object tagging API. For more information about the parameters for
4287
+ # this operation, see [PUT Object tagging][1].
3529
4288
  #
3530
4289
  #
3531
4290
  #
@@ -3577,6 +4336,303 @@ module Aws::S3Control
3577
4336
  include Aws::Structure
3578
4337
  end
3579
4338
 
4339
+ # @note When making an API call, you may pass SSEKMS
4340
+ # data as a hash:
4341
+ #
4342
+ # {
4343
+ # key_id: "SSEKMSKeyId", # required
4344
+ # }
4345
+ #
4346
+ # @!attribute [rw] key_id
4347
+ # A container for the ARN of the SSE-KMS encryption. This property is
4348
+ # read-only and follows the following format: `
4349
+ # arn:aws:kms:us-east-1:example-account-id:key/example-9a73-4afc-8d29-8f5900cef44e
4350
+ # `
4351
+ # @return [String]
4352
+ #
4353
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/SSEKMS AWS API Documentation
4354
+ #
4355
+ class SSEKMS < Struct.new(
4356
+ :key_id)
4357
+ SENSITIVE = []
4358
+ include Aws::Structure
4359
+ end
4360
+
4361
+ # @api private
4362
+ #
4363
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/SSES3 AWS API Documentation
4364
+ #
4365
+ class SSES3 < Aws::EmptyStructure; end
4366
+
4367
+ # @note When making an API call, you may pass SelectionCriteria
4368
+ # data as a hash:
4369
+ #
4370
+ # {
4371
+ # delimiter: "StorageLensPrefixLevelDelimiter",
4372
+ # max_depth: 1,
4373
+ # min_storage_bytes_percentage: 1.0,
4374
+ # }
4375
+ #
4376
+ # @!attribute [rw] delimiter
4377
+ # A container for the delimiter of the selection criteria being used.
4378
+ # @return [String]
4379
+ #
4380
+ # @!attribute [rw] max_depth
4381
+ # The max depth of the selection criteria
4382
+ # @return [Integer]
4383
+ #
4384
+ # @!attribute [rw] min_storage_bytes_percentage
4385
+ # The minimum number of storage bytes percentage whose metrics will be
4386
+ # selected.
4387
+ #
4388
+ # <note markdown="1"> You must choose a value greater than or equal to `1.0`.
4389
+ #
4390
+ # </note>
4391
+ # @return [Float]
4392
+ #
4393
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/SelectionCriteria AWS API Documentation
4394
+ #
4395
+ class SelectionCriteria < Struct.new(
4396
+ :delimiter,
4397
+ :max_depth,
4398
+ :min_storage_bytes_percentage)
4399
+ SENSITIVE = []
4400
+ include Aws::Structure
4401
+ end
4402
+
4403
+ # The AWS organization for your S3 Storage Lens.
4404
+ #
4405
+ # @note When making an API call, you may pass StorageLensAwsOrg
4406
+ # data as a hash:
4407
+ #
4408
+ # {
4409
+ # arn: "AwsOrgArn", # required
4410
+ # }
4411
+ #
4412
+ # @!attribute [rw] arn
4413
+ # A container for the Amazon Resource Name (ARN) of the AWS
4414
+ # organization. This property is read-only and follows the following
4415
+ # format: `
4416
+ # arn:aws:organizations:us-east-1:example-account-id:organization/o-ex2l495dck
4417
+ # `
4418
+ # @return [String]
4419
+ #
4420
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/StorageLensAwsOrg AWS API Documentation
4421
+ #
4422
+ class StorageLensAwsOrg < Struct.new(
4423
+ :arn)
4424
+ SENSITIVE = []
4425
+ include Aws::Structure
4426
+ end
4427
+
4428
+ # A container for the Amazon S3 Storage Lens configuration.
4429
+ #
4430
+ # @note When making an API call, you may pass StorageLensConfiguration
4431
+ # data as a hash:
4432
+ #
4433
+ # {
4434
+ # id: "ConfigId", # required
4435
+ # account_level: { # required
4436
+ # activity_metrics: {
4437
+ # is_enabled: false,
4438
+ # },
4439
+ # bucket_level: { # required
4440
+ # activity_metrics: {
4441
+ # is_enabled: false,
4442
+ # },
4443
+ # prefix_level: {
4444
+ # storage_metrics: { # required
4445
+ # is_enabled: false,
4446
+ # selection_criteria: {
4447
+ # delimiter: "StorageLensPrefixLevelDelimiter",
4448
+ # max_depth: 1,
4449
+ # min_storage_bytes_percentage: 1.0,
4450
+ # },
4451
+ # },
4452
+ # },
4453
+ # },
4454
+ # },
4455
+ # include: {
4456
+ # buckets: ["S3BucketArnString"],
4457
+ # regions: ["S3AWSRegion"],
4458
+ # },
4459
+ # exclude: {
4460
+ # buckets: ["S3BucketArnString"],
4461
+ # regions: ["S3AWSRegion"],
4462
+ # },
4463
+ # data_export: {
4464
+ # s3_bucket_destination: { # required
4465
+ # format: "CSV", # required, accepts CSV, Parquet
4466
+ # output_schema_version: "V_1", # required, accepts V_1
4467
+ # account_id: "AccountId", # required
4468
+ # arn: "S3BucketArnString", # required
4469
+ # prefix: "Prefix",
4470
+ # encryption: {
4471
+ # sses3: {
4472
+ # },
4473
+ # ssekms: {
4474
+ # key_id: "SSEKMSKeyId", # required
4475
+ # },
4476
+ # },
4477
+ # },
4478
+ # },
4479
+ # is_enabled: false, # required
4480
+ # aws_org: {
4481
+ # arn: "AwsOrgArn", # required
4482
+ # },
4483
+ # storage_lens_arn: "StorageLensArn",
4484
+ # }
4485
+ #
4486
+ # @!attribute [rw] id
4487
+ # A container for the Amazon S3 Storage Lens configuration ID.
4488
+ # @return [String]
4489
+ #
4490
+ # @!attribute [rw] account_level
4491
+ # A container for all the account-level configurations of your S3
4492
+ # Storage Lens configuration.
4493
+ # @return [Types::AccountLevel]
4494
+ #
4495
+ # @!attribute [rw] include
4496
+ # A container for what is included in this configuration. This
4497
+ # container can only be valid if there is no `Exclude` container
4498
+ # submitted, and it's not empty.
4499
+ # @return [Types::Include]
4500
+ #
4501
+ # @!attribute [rw] exclude
4502
+ # A container for what is excluded in this configuration. This
4503
+ # container can only be valid if there is no `Include` container
4504
+ # submitted, and it's not empty.
4505
+ # @return [Types::Exclude]
4506
+ #
4507
+ # @!attribute [rw] data_export
4508
+ # A container to specify the properties of your S3 Storage Lens
4509
+ # metrics export including, the destination, schema and format.
4510
+ # @return [Types::StorageLensDataExport]
4511
+ #
4512
+ # @!attribute [rw] is_enabled
4513
+ # A container for whether the S3 Storage Lens configuration is
4514
+ # enabled.
4515
+ # @return [Boolean]
4516
+ #
4517
+ # @!attribute [rw] aws_org
4518
+ # A container for the AWS organization for this S3 Storage Lens
4519
+ # configuration.
4520
+ # @return [Types::StorageLensAwsOrg]
4521
+ #
4522
+ # @!attribute [rw] storage_lens_arn
4523
+ # The Amazon Resource Name (ARN) of the S3 Storage Lens configuration.
4524
+ # This property is read-only and follows the following format: `
4525
+ # arn:aws:s3:us-east-1:example-account-id:storage-lens/your-dashboard-name
4526
+ # `
4527
+ # @return [String]
4528
+ #
4529
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/StorageLensConfiguration AWS API Documentation
4530
+ #
4531
+ class StorageLensConfiguration < Struct.new(
4532
+ :id,
4533
+ :account_level,
4534
+ :include,
4535
+ :exclude,
4536
+ :data_export,
4537
+ :is_enabled,
4538
+ :aws_org,
4539
+ :storage_lens_arn)
4540
+ SENSITIVE = []
4541
+ include Aws::Structure
4542
+ end
4543
+
4544
+ # A container to specify the properties of your S3 Storage Lens metrics
4545
+ # export, including the destination, schema, and format.
4546
+ #
4547
+ # @note When making an API call, you may pass StorageLensDataExport
4548
+ # data as a hash:
4549
+ #
4550
+ # {
4551
+ # s3_bucket_destination: { # required
4552
+ # format: "CSV", # required, accepts CSV, Parquet
4553
+ # output_schema_version: "V_1", # required, accepts V_1
4554
+ # account_id: "AccountId", # required
4555
+ # arn: "S3BucketArnString", # required
4556
+ # prefix: "Prefix",
4557
+ # encryption: {
4558
+ # sses3: {
4559
+ # },
4560
+ # ssekms: {
4561
+ # key_id: "SSEKMSKeyId", # required
4562
+ # },
4563
+ # },
4564
+ # },
4565
+ # }
4566
+ #
4567
+ # @!attribute [rw] s3_bucket_destination
4568
+ # A container for the bucket where the S3 Storage Lens metrics export
4569
+ # will be located.
4570
+ #
4571
+ # <note markdown="1"> This bucket must be located in the same Region as the storage lens
4572
+ # configuration.
4573
+ #
4574
+ # </note>
4575
+ # @return [Types::S3BucketDestination]
4576
+ #
4577
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/StorageLensDataExport AWS API Documentation
4578
+ #
4579
+ class StorageLensDataExport < Struct.new(
4580
+ :s3_bucket_destination)
4581
+ SENSITIVE = []
4582
+ include Aws::Structure
4583
+ end
4584
+
4585
+ # A container for the encryption of the S3 Storage Lens metrics exports.
4586
+ #
4587
+ # @note When making an API call, you may pass StorageLensDataExportEncryption
4588
+ # data as a hash:
4589
+ #
4590
+ # {
4591
+ # sses3: {
4592
+ # },
4593
+ # ssekms: {
4594
+ # key_id: "SSEKMSKeyId", # required
4595
+ # },
4596
+ # }
4597
+ #
4598
+ # @!attribute [rw] sses3
4599
+ # @return [Types::SSES3]
4600
+ #
4601
+ # @!attribute [rw] ssekms
4602
+ # @return [Types::SSEKMS]
4603
+ #
4604
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/StorageLensDataExportEncryption AWS API Documentation
4605
+ #
4606
+ class StorageLensDataExportEncryption < Struct.new(
4607
+ :sses3,
4608
+ :ssekms)
4609
+ SENSITIVE = []
4610
+ include Aws::Structure
4611
+ end
4612
+
4613
+ # @note When making an API call, you may pass StorageLensTag
4614
+ # data as a hash:
4615
+ #
4616
+ # {
4617
+ # key: "TagKeyString", # required
4618
+ # value: "TagValueString", # required
4619
+ # }
4620
+ #
4621
+ # @!attribute [rw] key
4622
+ # @return [String]
4623
+ #
4624
+ # @!attribute [rw] value
4625
+ # @return [String]
4626
+ #
4627
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/StorageLensTag AWS API Documentation
4628
+ #
4629
+ class StorageLensTag < Struct.new(
4630
+ :key,
4631
+ :value)
4632
+ SENSITIVE = []
4633
+ include Aws::Structure
4634
+ end
4635
+
3580
4636
  # @note When making an API call, you may pass Tagging
3581
4637
  # data as a hash:
3582
4638
  #
@@ -3628,8 +4684,8 @@ module Aws::S3Control
3628
4684
 
3629
4685
  # Specifies when an object transitions to a specified storage class. For
3630
4686
  # more information about Amazon S3 Lifecycle configuration rules, see [
3631
- # Transitioning Objects Using Amazon S3 Lifecycle][1] in the *Amazon
3632
- # Simple Storage Service Developer Guide*.
4687
+ # Transitioning objects using Amazon S3 Lifecycle][1] in the *Amazon
4688
+ # Simple Storage Service User Guide*.
3633
4689
  #
3634
4690
  #
3635
4691
  #
@@ -3680,6 +4736,7 @@ module Aws::S3Control
3680
4736
  # }
3681
4737
  #
3682
4738
  # @!attribute [rw] account_id
4739
+ # The AWS account ID associated with the S3 Batch Operations job.
3683
4740
  # @return [String]
3684
4741
  #
3685
4742
  # @!attribute [rw] job_id
@@ -3728,6 +4785,7 @@ module Aws::S3Control
3728
4785
  # }
3729
4786
  #
3730
4787
  # @!attribute [rw] account_id
4788
+ # The AWS account ID associated with the S3 Batch Operations job.
3731
4789
  # @return [String]
3732
4790
  #
3733
4791
  # @!attribute [rw] job_id