aws-sdk-s3control 1.24.0 → 1.29.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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