aws-sdk-s3 1.0.0.rc1 → 1.0.0.rc2

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.
@@ -329,6 +329,7 @@ module Aws
329
329
  # "MetadataKey" => "MetadataValue",
330
330
  # },
331
331
  # metadata_directive: "COPY", # accepts COPY, REPLACE
332
+ # tagging_directive: "COPY", # accepts COPY, REPLACE
332
333
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
333
334
  # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA
334
335
  # website_redirect_location: "WebsiteRedirectLocation",
@@ -340,6 +341,7 @@ module Aws
340
341
  # copy_source_sse_customer_key: "CopySourceSSECustomerKey",
341
342
  # copy_source_sse_customer_key_md5: "CopySourceSSECustomerKeyMD5",
342
343
  # request_payer: "requester", # accepts requester
344
+ # tagging: "TaggingHeader",
343
345
  # })
344
346
  # @param [Hash] options ({})
345
347
  # @option options [String] :acl
@@ -385,6 +387,9 @@ module Aws
385
387
  # @option options [String] :metadata_directive
386
388
  # Specifies whether the metadata is copied from the source object or
387
389
  # replaced with metadata provided in the request.
390
+ # @option options [String] :tagging_directive
391
+ # Specifies whether the object tag-set are copied from the source object
392
+ # or replaced with tag-set provided in the request.
388
393
  # @option options [String] :server_side_encryption
389
394
  # The Server-side encryption algorithm used when storing this object in
390
395
  # S3 (e.g., AES256, aws:kms).
@@ -430,6 +435,10 @@ module Aws
430
435
  # requests. Documentation on downloading objects from requester pays
431
436
  # buckets can be found at
432
437
  # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
438
+ # @option options [String] :tagging
439
+ # The tag-set for the object destination object this value must be used
440
+ # in conjunction with the TaggingDirective. The tag-set must be encoded
441
+ # as URL Query parameters
433
442
  # @return [Types::CopyObjectOutput]
434
443
  def copy_from(options = {})
435
444
  options = options.merge(
@@ -686,6 +695,7 @@ module Aws
686
695
  # sse_customer_key_md5: "SSECustomerKeyMD5",
687
696
  # ssekms_key_id: "SSEKMSKeyId",
688
697
  # request_payer: "requester", # accepts requester
698
+ # tagging: "TaggingHeader",
689
699
  # })
690
700
  # @param [Hash] options ({})
691
701
  # @option options [String] :acl
@@ -756,6 +766,9 @@ module Aws
756
766
  # requests. Documentation on downloading objects from requester pays
757
767
  # buckets can be found at
758
768
  # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
769
+ # @option options [String] :tagging
770
+ # The tag-set for the object. The tag-set must be encoded as URL Query
771
+ # parameters
759
772
  # @return [Types::PutObjectOutput]
760
773
  def put(options = {})
761
774
  options = options.merge(
@@ -172,6 +172,7 @@ module Aws
172
172
  # "MetadataKey" => "MetadataValue",
173
173
  # },
174
174
  # metadata_directive: "COPY", # accepts COPY, REPLACE
175
+ # tagging_directive: "COPY", # accepts COPY, REPLACE
175
176
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
176
177
  # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA
177
178
  # website_redirect_location: "WebsiteRedirectLocation",
@@ -183,6 +184,7 @@ module Aws
183
184
  # copy_source_sse_customer_key: "CopySourceSSECustomerKey",
184
185
  # copy_source_sse_customer_key_md5: "CopySourceSSECustomerKeyMD5",
185
186
  # request_payer: "requester", # accepts requester
187
+ # tagging: "TaggingHeader",
186
188
  # })
187
189
  # @param [Hash] options ({})
188
190
  # @option options [String] :acl
@@ -228,6 +230,9 @@ module Aws
228
230
  # @option options [String] :metadata_directive
229
231
  # Specifies whether the metadata is copied from the source object or
230
232
  # replaced with metadata provided in the request.
233
+ # @option options [String] :tagging_directive
234
+ # Specifies whether the object tag-set are copied from the source object
235
+ # or replaced with tag-set provided in the request.
231
236
  # @option options [String] :server_side_encryption
232
237
  # The Server-side encryption algorithm used when storing this object in
233
238
  # S3 (e.g., AES256, aws:kms).
@@ -273,6 +278,10 @@ module Aws
273
278
  # requests. Documentation on downloading objects from requester pays
274
279
  # buckets can be found at
275
280
  # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
281
+ # @option options [String] :tagging
282
+ # The tag-set for the object destination object this value must be used
283
+ # in conjunction with the TaggingDirective. The tag-set must be encoded
284
+ # as URL Query parameters
276
285
  # @return [Types::CopyObjectOutput]
277
286
  def copy_from(options = {})
278
287
  options = options.merge(
@@ -529,6 +538,7 @@ module Aws
529
538
  # sse_customer_key_md5: "SSECustomerKeyMD5",
530
539
  # ssekms_key_id: "SSEKMSKeyId",
531
540
  # request_payer: "requester", # accepts requester
541
+ # tagging: "TaggingHeader",
532
542
  # })
533
543
  # @param [Hash] options ({})
534
544
  # @option options [String] :acl
@@ -599,6 +609,9 @@ module Aws
599
609
  # requests. Documentation on downloading objects from requester pays
600
610
  # buckets can be found at
601
611
  # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
612
+ # @option options [String] :tagging
613
+ # The tag-set for the object. The tag-set must be encoded as URL Query
614
+ # parameters
602
615
  # @return [Types::PutObjectOutput]
603
616
  def put(options = {})
604
617
  options = options.merge(
@@ -116,6 +116,182 @@ module Aws
116
116
  include Aws::Structure
117
117
  end
118
118
 
119
+ # @note When making an API call, pass AnalyticsAndOperator
120
+ # data as a hash:
121
+ #
122
+ # {
123
+ # prefix: "Prefix",
124
+ # tags: [
125
+ # {
126
+ # key: "ObjectKey", # required
127
+ # value: "Value", # required
128
+ # },
129
+ # ],
130
+ # }
131
+ # @!attribute [rw] prefix
132
+ # The prefix to use when evaluating an AND predicate.
133
+ # @return [String]
134
+ #
135
+ # @!attribute [rw] tags
136
+ # The list of tags to use when evaluating an AND predicate.
137
+ # @return [Array<Types::Tag>]
138
+ class AnalyticsAndOperator < Struct.new(
139
+ :prefix,
140
+ :tags)
141
+ include Aws::Structure
142
+ end
143
+
144
+ # @note When making an API call, pass AnalyticsConfiguration
145
+ # data as a hash:
146
+ #
147
+ # {
148
+ # id: "AnalyticsId", # required
149
+ # filter: {
150
+ # prefix: "Prefix",
151
+ # tag: {
152
+ # key: "ObjectKey", # required
153
+ # value: "Value", # required
154
+ # },
155
+ # and: {
156
+ # prefix: "Prefix",
157
+ # tags: [
158
+ # {
159
+ # key: "ObjectKey", # required
160
+ # value: "Value", # required
161
+ # },
162
+ # ],
163
+ # },
164
+ # },
165
+ # storage_class_analysis: { # required
166
+ # data_export: {
167
+ # output_schema_version: "V_1", # required, accepts V_1
168
+ # destination: { # required
169
+ # s3_bucket_destination: { # required
170
+ # format: "CSV", # required, accepts CSV
171
+ # bucket_account_id: "AccountId",
172
+ # bucket: "BucketName", # required
173
+ # prefix: "Prefix",
174
+ # },
175
+ # },
176
+ # },
177
+ # },
178
+ # }
179
+ # @!attribute [rw] id
180
+ # The identifier used to represent an analytics configuration.
181
+ # @return [String]
182
+ #
183
+ # @!attribute [rw] filter
184
+ # The filter used to describe a set of objects for analyses. A filter
185
+ # must have exactly one prefix, one tag, or one conjunction
186
+ # (AnalyticsAndOperator). If no filter is provided, all objects will
187
+ # be considered in any analysis.
188
+ # @return [Types::AnalyticsFilter]
189
+ #
190
+ # @!attribute [rw] storage_class_analysis
191
+ # If present, it indicates that data related to access patterns will
192
+ # be collected and made available to analyze the tradeoffs between
193
+ # different storage classes.
194
+ # @return [Types::StorageClassAnalysis]
195
+ class AnalyticsConfiguration < Struct.new(
196
+ :id,
197
+ :filter,
198
+ :storage_class_analysis)
199
+ include Aws::Structure
200
+ end
201
+
202
+ # @note When making an API call, pass AnalyticsExportDestination
203
+ # data as a hash:
204
+ #
205
+ # {
206
+ # s3_bucket_destination: { # required
207
+ # format: "CSV", # required, accepts CSV
208
+ # bucket_account_id: "AccountId",
209
+ # bucket: "BucketName", # required
210
+ # prefix: "Prefix",
211
+ # },
212
+ # }
213
+ # @!attribute [rw] s3_bucket_destination
214
+ # A destination signifying output to an S3 bucket.
215
+ # @return [Types::AnalyticsS3BucketDestination]
216
+ class AnalyticsExportDestination < Struct.new(
217
+ :s3_bucket_destination)
218
+ include Aws::Structure
219
+ end
220
+
221
+ # @note When making an API call, pass AnalyticsFilter
222
+ # data as a hash:
223
+ #
224
+ # {
225
+ # prefix: "Prefix",
226
+ # tag: {
227
+ # key: "ObjectKey", # required
228
+ # value: "Value", # required
229
+ # },
230
+ # and: {
231
+ # prefix: "Prefix",
232
+ # tags: [
233
+ # {
234
+ # key: "ObjectKey", # required
235
+ # value: "Value", # required
236
+ # },
237
+ # ],
238
+ # },
239
+ # }
240
+ # @!attribute [rw] prefix
241
+ # The prefix to use when evaluating an analytics filter.
242
+ # @return [String]
243
+ #
244
+ # @!attribute [rw] tag
245
+ # The tag to use when evaluating an analytics filter.
246
+ # @return [Types::Tag]
247
+ #
248
+ # @!attribute [rw] and
249
+ # A conjunction (logical AND) of predicates, which is used in
250
+ # evaluating an analytics filter. The operator must have at least two
251
+ # predicates.
252
+ # @return [Types::AnalyticsAndOperator]
253
+ class AnalyticsFilter < Struct.new(
254
+ :prefix,
255
+ :tag,
256
+ :and)
257
+ include Aws::Structure
258
+ end
259
+
260
+ # @note When making an API call, pass AnalyticsS3BucketDestination
261
+ # data as a hash:
262
+ #
263
+ # {
264
+ # format: "CSV", # required, accepts CSV
265
+ # bucket_account_id: "AccountId",
266
+ # bucket: "BucketName", # required
267
+ # prefix: "Prefix",
268
+ # }
269
+ # @!attribute [rw] format
270
+ # The file format used when exporting data to Amazon S3.
271
+ # @return [String]
272
+ #
273
+ # @!attribute [rw] bucket_account_id
274
+ # The account ID that owns the destination bucket. If no account ID is
275
+ # provided, the owner will not be validated prior to exporting data.
276
+ # @return [String]
277
+ #
278
+ # @!attribute [rw] bucket
279
+ # The Amazon resource name (ARN) of the bucket to which data is
280
+ # exported.
281
+ # @return [String]
282
+ #
283
+ # @!attribute [rw] prefix
284
+ # The prefix to use when exporting data. The exported data begins with
285
+ # this prefix.
286
+ # @return [String]
287
+ class AnalyticsS3BucketDestination < Struct.new(
288
+ :format,
289
+ :bucket_account_id,
290
+ :bucket,
291
+ :prefix)
292
+ include Aws::Structure
293
+ end
294
+
119
295
  # @!attribute [rw] name
120
296
  # The name of the bucket.
121
297
  # @return [String]
@@ -141,7 +317,23 @@ module Aws
141
317
  # expired_object_delete_marker: false,
142
318
  # },
143
319
  # id: "ID",
144
- # prefix: "Prefix", # required
320
+ # prefix: "Prefix",
321
+ # filter: {
322
+ # prefix: "Prefix",
323
+ # tag: {
324
+ # key: "ObjectKey", # required
325
+ # value: "Value", # required
326
+ # },
327
+ # and: {
328
+ # prefix: "Prefix",
329
+ # tags: [
330
+ # {
331
+ # key: "ObjectKey", # required
332
+ # value: "Value", # required
333
+ # },
334
+ # ],
335
+ # },
336
+ # },
145
337
  # status: "Enabled", # required, accepts Enabled, Disabled
146
338
  # transitions: [
147
339
  # {
@@ -554,6 +746,7 @@ module Aws
554
746
  # "MetadataKey" => "MetadataValue",
555
747
  # },
556
748
  # metadata_directive: "COPY", # accepts COPY, REPLACE
749
+ # tagging_directive: "COPY", # accepts COPY, REPLACE
557
750
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
558
751
  # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA
559
752
  # website_redirect_location: "WebsiteRedirectLocation",
@@ -565,6 +758,7 @@ module Aws
565
758
  # copy_source_sse_customer_key: "CopySourceSSECustomerKey",
566
759
  # copy_source_sse_customer_key_md5: "CopySourceSSECustomerKeyMD5",
567
760
  # request_payer: "requester", # accepts requester
761
+ # tagging: "TaggingHeader",
568
762
  # }
569
763
  # @!attribute [rw] acl
570
764
  # The canned ACL to apply to the object.
@@ -652,6 +846,11 @@ module Aws
652
846
  # replaced with metadata provided in the request.
653
847
  # @return [String]
654
848
  #
849
+ # @!attribute [rw] tagging_directive
850
+ # Specifies whether the object tag-set are copied from the source
851
+ # object or replaced with tag-set provided in the request.
852
+ # @return [String]
853
+ #
655
854
  # @!attribute [rw] server_side_encryption
656
855
  # The Server-side encryption algorithm used when storing this object
657
856
  # in S3 (e.g., AES256, aws:kms).
@@ -719,6 +918,12 @@ module Aws
719
918
  # buckets can be found at
720
919
  # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
721
920
  # @return [String]
921
+ #
922
+ # @!attribute [rw] tagging
923
+ # The tag-set for the object destination object this value must be
924
+ # used in conjunction with the TaggingDirective. The tag-set must be
925
+ # encoded as URL Query parameters
926
+ # @return [String]
722
927
  class CopyObjectRequest < Struct.new(
723
928
  :acl,
724
929
  :bucket,
@@ -740,6 +945,7 @@ module Aws
740
945
  :key,
741
946
  :metadata,
742
947
  :metadata_directive,
948
+ :tagging_directive,
743
949
  :server_side_encryption,
744
950
  :storage_class,
745
951
  :website_redirect_location,
@@ -750,7 +956,8 @@ module Aws
750
956
  :copy_source_sse_customer_algorithm,
751
957
  :copy_source_sse_customer_key,
752
958
  :copy_source_sse_customer_key_md5,
753
- :request_payer)
959
+ :request_payer,
960
+ :tagging)
754
961
  include Aws::Structure
755
962
  end
756
963
 
@@ -1108,6 +1315,27 @@ module Aws
1108
1315
  include Aws::Structure
1109
1316
  end
1110
1317
 
1318
+ # @note When making an API call, pass DeleteBucketAnalyticsConfigurationRequest
1319
+ # data as a hash:
1320
+ #
1321
+ # {
1322
+ # bucket: "BucketName", # required
1323
+ # id: "AnalyticsId", # required
1324
+ # }
1325
+ # @!attribute [rw] bucket
1326
+ # The name of the bucket from which an analytics configuration is
1327
+ # deleted.
1328
+ # @return [String]
1329
+ #
1330
+ # @!attribute [rw] id
1331
+ # The identifier used to represent an analytics configuration.
1332
+ # @return [String]
1333
+ class DeleteBucketAnalyticsConfigurationRequest < Struct.new(
1334
+ :bucket,
1335
+ :id)
1336
+ include Aws::Structure
1337
+ end
1338
+
1111
1339
  # @note When making an API call, pass DeleteBucketCorsRequest
1112
1340
  # data as a hash:
1113
1341
  #
@@ -1121,6 +1349,27 @@ module Aws
1121
1349
  include Aws::Structure
1122
1350
  end
1123
1351
 
1352
+ # @note When making an API call, pass DeleteBucketInventoryConfigurationRequest
1353
+ # data as a hash:
1354
+ #
1355
+ # {
1356
+ # bucket: "BucketName", # required
1357
+ # id: "InventoryId", # required
1358
+ # }
1359
+ # @!attribute [rw] bucket
1360
+ # The name of the bucket containing the inventory configuration to
1361
+ # delete.
1362
+ # @return [String]
1363
+ #
1364
+ # @!attribute [rw] id
1365
+ # The ID used to identify the inventory configuration.
1366
+ # @return [String]
1367
+ class DeleteBucketInventoryConfigurationRequest < Struct.new(
1368
+ :bucket,
1369
+ :id)
1370
+ include Aws::Structure
1371
+ end
1372
+
1124
1373
  # @note When making an API call, pass DeleteBucketLifecycleRequest
1125
1374
  # data as a hash:
1126
1375
  #
@@ -1134,6 +1383,27 @@ module Aws
1134
1383
  include Aws::Structure
1135
1384
  end
1136
1385
 
1386
+ # @note When making an API call, pass DeleteBucketMetricsConfigurationRequest
1387
+ # data as a hash:
1388
+ #
1389
+ # {
1390
+ # bucket: "BucketName", # required
1391
+ # id: "MetricsId", # required
1392
+ # }
1393
+ # @!attribute [rw] bucket
1394
+ # The name of the bucket containing the metrics configuration to
1395
+ # delete.
1396
+ # @return [String]
1397
+ #
1398
+ # @!attribute [rw] id
1399
+ # The ID used to identify the metrics configuration.
1400
+ # @return [String]
1401
+ class DeleteBucketMetricsConfigurationRequest < Struct.new(
1402
+ :bucket,
1403
+ :id)
1404
+ include Aws::Structure
1405
+ end
1406
+
1137
1407
  # @note When making an API call, pass DeleteBucketPolicyRequest
1138
1408
  # data as a hash:
1139
1409
  #
@@ -1290,6 +1560,38 @@ module Aws
1290
1560
  include Aws::Structure
1291
1561
  end
1292
1562
 
1563
+ # @!attribute [rw] version_id
1564
+ # The versionId of the object the tag-set was removed from.
1565
+ # @return [String]
1566
+ class DeleteObjectTaggingOutput < Struct.new(
1567
+ :version_id)
1568
+ include Aws::Structure
1569
+ end
1570
+
1571
+ # @note When making an API call, pass DeleteObjectTaggingRequest
1572
+ # data as a hash:
1573
+ #
1574
+ # {
1575
+ # bucket: "BucketName", # required
1576
+ # key: "ObjectKey", # required
1577
+ # version_id: "ObjectVersionId",
1578
+ # }
1579
+ # @!attribute [rw] bucket
1580
+ # @return [String]
1581
+ #
1582
+ # @!attribute [rw] key
1583
+ # @return [String]
1584
+ #
1585
+ # @!attribute [rw] version_id
1586
+ # The versionId of the object that the tag-set will be removed from.
1587
+ # @return [String]
1588
+ class DeleteObjectTaggingRequest < Struct.new(
1589
+ :bucket,
1590
+ :key,
1591
+ :version_id)
1592
+ include Aws::Structure
1593
+ end
1594
+
1293
1595
  # @!attribute [rw] deleted
1294
1596
  # @return [Array<Types::DeletedObject>]
1295
1597
  #
@@ -1502,6 +1804,35 @@ module Aws
1502
1804
  include Aws::Structure
1503
1805
  end
1504
1806
 
1807
+ # @!attribute [rw] analytics_configuration
1808
+ # The configuration and any analyses for the analytics filter.
1809
+ # @return [Types::AnalyticsConfiguration]
1810
+ class GetBucketAnalyticsConfigurationOutput < Struct.new(
1811
+ :analytics_configuration)
1812
+ include Aws::Structure
1813
+ end
1814
+
1815
+ # @note When making an API call, pass GetBucketAnalyticsConfigurationRequest
1816
+ # data as a hash:
1817
+ #
1818
+ # {
1819
+ # bucket: "BucketName", # required
1820
+ # id: "AnalyticsId", # required
1821
+ # }
1822
+ # @!attribute [rw] bucket
1823
+ # The name of the bucket from which an analytics configuration is
1824
+ # retrieved.
1825
+ # @return [String]
1826
+ #
1827
+ # @!attribute [rw] id
1828
+ # The identifier used to represent an analytics configuration.
1829
+ # @return [String]
1830
+ class GetBucketAnalyticsConfigurationRequest < Struct.new(
1831
+ :bucket,
1832
+ :id)
1833
+ include Aws::Structure
1834
+ end
1835
+
1505
1836
  # @!attribute [rw] cors_rules
1506
1837
  # @return [Array<Types::CORSRule>]
1507
1838
  class GetBucketCorsOutput < Struct.new(
@@ -1522,6 +1853,35 @@ module Aws
1522
1853
  include Aws::Structure
1523
1854
  end
1524
1855
 
1856
+ # @!attribute [rw] inventory_configuration
1857
+ # Specifies the inventory configuration.
1858
+ # @return [Types::InventoryConfiguration]
1859
+ class GetBucketInventoryConfigurationOutput < Struct.new(
1860
+ :inventory_configuration)
1861
+ include Aws::Structure
1862
+ end
1863
+
1864
+ # @note When making an API call, pass GetBucketInventoryConfigurationRequest
1865
+ # data as a hash:
1866
+ #
1867
+ # {
1868
+ # bucket: "BucketName", # required
1869
+ # id: "InventoryId", # required
1870
+ # }
1871
+ # @!attribute [rw] bucket
1872
+ # The name of the bucket containing the inventory configuration to
1873
+ # retrieve.
1874
+ # @return [String]
1875
+ #
1876
+ # @!attribute [rw] id
1877
+ # The ID used to identify the inventory configuration.
1878
+ # @return [String]
1879
+ class GetBucketInventoryConfigurationRequest < Struct.new(
1880
+ :bucket,
1881
+ :id)
1882
+ include Aws::Structure
1883
+ end
1884
+
1525
1885
  # @!attribute [rw] rules
1526
1886
  # @return [Array<Types::LifecycleRule>]
1527
1887
  class GetBucketLifecycleConfigurationOutput < Struct.new(
@@ -1602,6 +1962,35 @@ module Aws
1602
1962
  include Aws::Structure
1603
1963
  end
1604
1964
 
1965
+ # @!attribute [rw] metrics_configuration
1966
+ # Specifies the metrics configuration.
1967
+ # @return [Types::MetricsConfiguration]
1968
+ class GetBucketMetricsConfigurationOutput < Struct.new(
1969
+ :metrics_configuration)
1970
+ include Aws::Structure
1971
+ end
1972
+
1973
+ # @note When making an API call, pass GetBucketMetricsConfigurationRequest
1974
+ # data as a hash:
1975
+ #
1976
+ # {
1977
+ # bucket: "BucketName", # required
1978
+ # id: "MetricsId", # required
1979
+ # }
1980
+ # @!attribute [rw] bucket
1981
+ # The name of the bucket containing the metrics configuration to
1982
+ # retrieve.
1983
+ # @return [String]
1984
+ #
1985
+ # @!attribute [rw] id
1986
+ # The ID used to identify the metrics configuration.
1987
+ # @return [String]
1988
+ class GetBucketMetricsConfigurationRequest < Struct.new(
1989
+ :bucket,
1990
+ :id)
1991
+ include Aws::Structure
1992
+ end
1993
+
1605
1994
  # @note When making an API call, pass GetBucketNotificationConfigurationRequest
1606
1995
  # data as a hash:
1607
1996
  #
@@ -1944,6 +2333,10 @@ module Aws
1944
2333
  # @!attribute [rw] parts_count
1945
2334
  # The count of parts this object has.
1946
2335
  # @return [Integer]
2336
+ #
2337
+ # @!attribute [rw] tag_count
2338
+ # The number of tags, if any, on the object.
2339
+ # @return [Integer]
1947
2340
  class GetObjectOutput < Struct.new(
1948
2341
  :body,
1949
2342
  :delete_marker,
@@ -1972,7 +2365,8 @@ module Aws
1972
2365
  :storage_class,
1973
2366
  :request_charged,
1974
2367
  :replication_status,
1975
- :parts_count)
2368
+ :parts_count,
2369
+ :tag_count)
1976
2370
  include Aws::Structure
1977
2371
  end
1978
2372
 
@@ -2116,6 +2510,40 @@ module Aws
2116
2510
  include Aws::Structure
2117
2511
  end
2118
2512
 
2513
+ # @!attribute [rw] version_id
2514
+ # @return [String]
2515
+ #
2516
+ # @!attribute [rw] tag_set
2517
+ # @return [Array<Types::Tag>]
2518
+ class GetObjectTaggingOutput < Struct.new(
2519
+ :version_id,
2520
+ :tag_set)
2521
+ include Aws::Structure
2522
+ end
2523
+
2524
+ # @note When making an API call, pass GetObjectTaggingRequest
2525
+ # data as a hash:
2526
+ #
2527
+ # {
2528
+ # bucket: "BucketName", # required
2529
+ # key: "ObjectKey", # required
2530
+ # version_id: "ObjectVersionId",
2531
+ # }
2532
+ # @!attribute [rw] bucket
2533
+ # @return [String]
2534
+ #
2535
+ # @!attribute [rw] key
2536
+ # @return [String]
2537
+ #
2538
+ # @!attribute [rw] version_id
2539
+ # @return [String]
2540
+ class GetObjectTaggingRequest < Struct.new(
2541
+ :bucket,
2542
+ :key,
2543
+ :version_id)
2544
+ include Aws::Structure
2545
+ end
2546
+
2119
2547
  # @!attribute [rw] body
2120
2548
  # @return [IO]
2121
2549
  #
@@ -2536,6 +2964,152 @@ module Aws
2536
2964
  include Aws::Structure
2537
2965
  end
2538
2966
 
2967
+ # @note When making an API call, pass InventoryConfiguration
2968
+ # data as a hash:
2969
+ #
2970
+ # {
2971
+ # destination: { # required
2972
+ # s3_bucket_destination: { # required
2973
+ # account_id: "AccountId",
2974
+ # bucket: "BucketName", # required
2975
+ # format: "CSV", # required, accepts CSV
2976
+ # prefix: "Prefix",
2977
+ # },
2978
+ # },
2979
+ # is_enabled: false, # required
2980
+ # filter: {
2981
+ # prefix: "Prefix", # required
2982
+ # },
2983
+ # id: "InventoryId", # required
2984
+ # included_object_versions: "All", # required, accepts All, Current
2985
+ # optional_fields: ["Size"], # accepts Size, LastModifiedDate, StorageClass, ETag, IsMultipartUploaded, ReplicationStatus
2986
+ # schedule: { # required
2987
+ # frequency: "Daily", # required, accepts Daily, Weekly
2988
+ # },
2989
+ # }
2990
+ # @!attribute [rw] destination
2991
+ # Contains information about where to publish the inventory results.
2992
+ # @return [Types::InventoryDestination]
2993
+ #
2994
+ # @!attribute [rw] is_enabled
2995
+ # Specifies whether the inventory is enabled or disabled.
2996
+ # @return [Boolean]
2997
+ #
2998
+ # @!attribute [rw] filter
2999
+ # Specifies an inventory filter. The inventory only includes objects
3000
+ # that meet the filter's criteria.
3001
+ # @return [Types::InventoryFilter]
3002
+ #
3003
+ # @!attribute [rw] id
3004
+ # The ID used to identify the inventory configuration.
3005
+ # @return [String]
3006
+ #
3007
+ # @!attribute [rw] included_object_versions
3008
+ # Specifies which object version(s) to included in the inventory
3009
+ # results.
3010
+ # @return [String]
3011
+ #
3012
+ # @!attribute [rw] optional_fields
3013
+ # Contains the optional fields that are included in the inventory
3014
+ # results.
3015
+ # @return [Array<String>]
3016
+ #
3017
+ # @!attribute [rw] schedule
3018
+ # Specifies the schedule for generating inventory results.
3019
+ # @return [Types::InventorySchedule]
3020
+ class InventoryConfiguration < Struct.new(
3021
+ :destination,
3022
+ :is_enabled,
3023
+ :filter,
3024
+ :id,
3025
+ :included_object_versions,
3026
+ :optional_fields,
3027
+ :schedule)
3028
+ include Aws::Structure
3029
+ end
3030
+
3031
+ # @note When making an API call, pass InventoryDestination
3032
+ # data as a hash:
3033
+ #
3034
+ # {
3035
+ # s3_bucket_destination: { # required
3036
+ # account_id: "AccountId",
3037
+ # bucket: "BucketName", # required
3038
+ # format: "CSV", # required, accepts CSV
3039
+ # prefix: "Prefix",
3040
+ # },
3041
+ # }
3042
+ # @!attribute [rw] s3_bucket_destination
3043
+ # Contains the bucket name, file format, bucket owner (optional), and
3044
+ # prefix (optional) where inventory results are published.
3045
+ # @return [Types::InventoryS3BucketDestination]
3046
+ class InventoryDestination < Struct.new(
3047
+ :s3_bucket_destination)
3048
+ include Aws::Structure
3049
+ end
3050
+
3051
+ # @note When making an API call, pass InventoryFilter
3052
+ # data as a hash:
3053
+ #
3054
+ # {
3055
+ # prefix: "Prefix", # required
3056
+ # }
3057
+ # @!attribute [rw] prefix
3058
+ # The prefix that an object must have to be included in the inventory
3059
+ # results.
3060
+ # @return [String]
3061
+ class InventoryFilter < Struct.new(
3062
+ :prefix)
3063
+ include Aws::Structure
3064
+ end
3065
+
3066
+ # @note When making an API call, pass InventoryS3BucketDestination
3067
+ # data as a hash:
3068
+ #
3069
+ # {
3070
+ # account_id: "AccountId",
3071
+ # bucket: "BucketName", # required
3072
+ # format: "CSV", # required, accepts CSV
3073
+ # prefix: "Prefix",
3074
+ # }
3075
+ # @!attribute [rw] account_id
3076
+ # The ID of the account that owns the destination bucket.
3077
+ # @return [String]
3078
+ #
3079
+ # @!attribute [rw] bucket
3080
+ # The Amazon resource name (ARN) of the bucket where inventory results
3081
+ # will be published.
3082
+ # @return [String]
3083
+ #
3084
+ # @!attribute [rw] format
3085
+ # Specifies the output format of the inventory results.
3086
+ # @return [String]
3087
+ #
3088
+ # @!attribute [rw] prefix
3089
+ # The prefix that is prepended to all inventory results.
3090
+ # @return [String]
3091
+ class InventoryS3BucketDestination < Struct.new(
3092
+ :account_id,
3093
+ :bucket,
3094
+ :format,
3095
+ :prefix)
3096
+ include Aws::Structure
3097
+ end
3098
+
3099
+ # @note When making an API call, pass InventorySchedule
3100
+ # data as a hash:
3101
+ #
3102
+ # {
3103
+ # frequency: "Daily", # required, accepts Daily, Weekly
3104
+ # }
3105
+ # @!attribute [rw] frequency
3106
+ # Specifies how frequently inventory results are produced.
3107
+ # @return [String]
3108
+ class InventorySchedule < Struct.new(
3109
+ :frequency)
3110
+ include Aws::Structure
3111
+ end
3112
+
2539
3113
  # Container for specifying the AWS Lambda notification configuration.
2540
3114
  # @note When making an API call, pass LambdaFunctionConfiguration
2541
3115
  # data as a hash:
@@ -2666,7 +3240,23 @@ module Aws
2666
3240
  # expired_object_delete_marker: false,
2667
3241
  # },
2668
3242
  # id: "ID",
2669
- # prefix: "Prefix", # required
3243
+ # prefix: "Prefix",
3244
+ # filter: {
3245
+ # prefix: "Prefix",
3246
+ # tag: {
3247
+ # key: "ObjectKey", # required
3248
+ # value: "Value", # required
3249
+ # },
3250
+ # and: {
3251
+ # prefix: "Prefix",
3252
+ # tags: [
3253
+ # {
3254
+ # key: "ObjectKey", # required
3255
+ # value: "Value", # required
3256
+ # },
3257
+ # ],
3258
+ # },
3259
+ # },
2670
3260
  # status: "Enabled", # required, accepts Enabled, Disabled
2671
3261
  # transitions: [
2672
3262
  # {
@@ -2698,8 +3288,14 @@ module Aws
2698
3288
  #
2699
3289
  # @!attribute [rw] prefix
2700
3290
  # Prefix identifying one or more objects to which the rule applies.
3291
+ # This is deprecated; use Filter instead.
2701
3292
  # @return [String]
2702
3293
  #
3294
+ # @!attribute [rw] filter
3295
+ # The Filter is used to identify objects that a Lifecycle Rule applies
3296
+ # to. A Filter must have exactly one of Prefix, Tag, or And specified.
3297
+ # @return [Types::LifecycleRuleFilter]
3298
+ #
2703
3299
  # @!attribute [rw] status
2704
3300
  # If 'Enabled', the rule is currently being applied. If
2705
3301
  # 'Disabled', the rule is not currently being applied.
@@ -2711,29 +3307,259 @@ module Aws
2711
3307
  # @!attribute [rw] noncurrent_version_transitions
2712
3308
  # @return [Array<Types::NoncurrentVersionTransition>]
2713
3309
  #
2714
- # @!attribute [rw] noncurrent_version_expiration
2715
- # Specifies when noncurrent object versions expire. Upon expiration,
2716
- # Amazon S3 permanently deletes the noncurrent object versions. You
2717
- # set this lifecycle configuration action on a bucket that has
2718
- # versioning enabled (or suspended) to request that Amazon S3 delete
2719
- # noncurrent object versions at a specific period in the object's
2720
- # lifetime.
2721
- # @return [Types::NoncurrentVersionExpiration]
3310
+ # @!attribute [rw] noncurrent_version_expiration
3311
+ # Specifies when noncurrent object versions expire. Upon expiration,
3312
+ # Amazon S3 permanently deletes the noncurrent object versions. You
3313
+ # set this lifecycle configuration action on a bucket that has
3314
+ # versioning enabled (or suspended) to request that Amazon S3 delete
3315
+ # noncurrent object versions at a specific period in the object's
3316
+ # lifetime.
3317
+ # @return [Types::NoncurrentVersionExpiration]
3318
+ #
3319
+ # @!attribute [rw] abort_incomplete_multipart_upload
3320
+ # Specifies the days since the initiation of an Incomplete Multipart
3321
+ # Upload that Lifecycle will wait before permanently removing all
3322
+ # parts of the upload.
3323
+ # @return [Types::AbortIncompleteMultipartUpload]
3324
+ class LifecycleRule < Struct.new(
3325
+ :expiration,
3326
+ :id,
3327
+ :prefix,
3328
+ :filter,
3329
+ :status,
3330
+ :transitions,
3331
+ :noncurrent_version_transitions,
3332
+ :noncurrent_version_expiration,
3333
+ :abort_incomplete_multipart_upload)
3334
+ include Aws::Structure
3335
+ end
3336
+
3337
+ # This is used in a Lifecycle Rule Filter to apply a logical AND to two
3338
+ # or more predicates. The Lifecycle Rule will apply to any object
3339
+ # matching all of the predicates configured inside the And operator.
3340
+ # @note When making an API call, pass LifecycleRuleAndOperator
3341
+ # data as a hash:
3342
+ #
3343
+ # {
3344
+ # prefix: "Prefix",
3345
+ # tags: [
3346
+ # {
3347
+ # key: "ObjectKey", # required
3348
+ # value: "Value", # required
3349
+ # },
3350
+ # ],
3351
+ # }
3352
+ # @!attribute [rw] prefix
3353
+ # @return [String]
3354
+ #
3355
+ # @!attribute [rw] tags
3356
+ # All of these tags must exist in the object's tag set in order for
3357
+ # the rule to apply.
3358
+ # @return [Array<Types::Tag>]
3359
+ class LifecycleRuleAndOperator < Struct.new(
3360
+ :prefix,
3361
+ :tags)
3362
+ include Aws::Structure
3363
+ end
3364
+
3365
+ # The Filter is used to identify objects that a Lifecycle Rule applies
3366
+ # to. A Filter must have exactly one of Prefix, Tag, or And specified.
3367
+ # @note When making an API call, pass LifecycleRuleFilter
3368
+ # data as a hash:
3369
+ #
3370
+ # {
3371
+ # prefix: "Prefix",
3372
+ # tag: {
3373
+ # key: "ObjectKey", # required
3374
+ # value: "Value", # required
3375
+ # },
3376
+ # and: {
3377
+ # prefix: "Prefix",
3378
+ # tags: [
3379
+ # {
3380
+ # key: "ObjectKey", # required
3381
+ # value: "Value", # required
3382
+ # },
3383
+ # ],
3384
+ # },
3385
+ # }
3386
+ # @!attribute [rw] prefix
3387
+ # Prefix identifying one or more objects to which the rule applies.
3388
+ # @return [String]
3389
+ #
3390
+ # @!attribute [rw] tag
3391
+ # This tag must exist in the object's tag set in order for the rule
3392
+ # to apply.
3393
+ # @return [Types::Tag]
3394
+ #
3395
+ # @!attribute [rw] and
3396
+ # This is used in a Lifecycle Rule Filter to apply a logical AND to
3397
+ # two or more predicates. The Lifecycle Rule will apply to any object
3398
+ # matching all of the predicates configured inside the And operator.
3399
+ # @return [Types::LifecycleRuleAndOperator]
3400
+ class LifecycleRuleFilter < Struct.new(
3401
+ :prefix,
3402
+ :tag,
3403
+ :and)
3404
+ include Aws::Structure
3405
+ end
3406
+
3407
+ # @!attribute [rw] is_truncated
3408
+ # Indicates whether the returned list of analytics configurations is
3409
+ # complete. A value of true indicates that the list is not complete
3410
+ # and the NextContinuationToken will be provided for a subsequent
3411
+ # request.
3412
+ # @return [Boolean]
3413
+ #
3414
+ # @!attribute [rw] continuation_token
3415
+ # The ContinuationToken that represents where this request began.
3416
+ # @return [String]
3417
+ #
3418
+ # @!attribute [rw] next_continuation_token
3419
+ # NextContinuationToken is sent when isTruncated is true, which
3420
+ # indicates that there are more analytics configurations to list. The
3421
+ # next request must include this NextContinuationToken. The token is
3422
+ # obfuscated and is not a usable value.
3423
+ # @return [String]
3424
+ #
3425
+ # @!attribute [rw] analytics_configuration_list
3426
+ # The list of analytics configurations for a bucket.
3427
+ # @return [Array<Types::AnalyticsConfiguration>]
3428
+ class ListBucketAnalyticsConfigurationsOutput < Struct.new(
3429
+ :is_truncated,
3430
+ :continuation_token,
3431
+ :next_continuation_token,
3432
+ :analytics_configuration_list)
3433
+ include Aws::Structure
3434
+ end
3435
+
3436
+ # @note When making an API call, pass ListBucketAnalyticsConfigurationsRequest
3437
+ # data as a hash:
3438
+ #
3439
+ # {
3440
+ # bucket: "BucketName", # required
3441
+ # continuation_token: "Token",
3442
+ # }
3443
+ # @!attribute [rw] bucket
3444
+ # The name of the bucket from which analytics configurations are
3445
+ # retrieved.
3446
+ # @return [String]
3447
+ #
3448
+ # @!attribute [rw] continuation_token
3449
+ # The ContinuationToken that represents a placeholder from where this
3450
+ # request should begin.
3451
+ # @return [String]
3452
+ class ListBucketAnalyticsConfigurationsRequest < Struct.new(
3453
+ :bucket,
3454
+ :continuation_token)
3455
+ include Aws::Structure
3456
+ end
3457
+
3458
+ # @!attribute [rw] continuation_token
3459
+ # If sent in the request, the marker that is used as a starting point
3460
+ # for this inventory configuration list response.
3461
+ # @return [String]
3462
+ #
3463
+ # @!attribute [rw] inventory_configuration_list
3464
+ # The list of inventory configurations for a bucket.
3465
+ # @return [Array<Types::InventoryConfiguration>]
3466
+ #
3467
+ # @!attribute [rw] is_truncated
3468
+ # Indicates whether the returned list of inventory configurations is
3469
+ # truncated in this response. A value of true indicates that the list
3470
+ # is truncated.
3471
+ # @return [Boolean]
3472
+ #
3473
+ # @!attribute [rw] next_continuation_token
3474
+ # The marker used to continue this inventory configuration listing.
3475
+ # Use the NextContinuationToken from this response to continue the
3476
+ # listing in a subsequent request. The continuation token is an opaque
3477
+ # value that Amazon S3 understands.
3478
+ # @return [String]
3479
+ class ListBucketInventoryConfigurationsOutput < Struct.new(
3480
+ :continuation_token,
3481
+ :inventory_configuration_list,
3482
+ :is_truncated,
3483
+ :next_continuation_token)
3484
+ include Aws::Structure
3485
+ end
3486
+
3487
+ # @note When making an API call, pass ListBucketInventoryConfigurationsRequest
3488
+ # data as a hash:
3489
+ #
3490
+ # {
3491
+ # bucket: "BucketName", # required
3492
+ # continuation_token: "Token",
3493
+ # }
3494
+ # @!attribute [rw] bucket
3495
+ # The name of the bucket containing the inventory configurations to
3496
+ # retrieve.
3497
+ # @return [String]
3498
+ #
3499
+ # @!attribute [rw] continuation_token
3500
+ # The marker used to continue an inventory configuration listing that
3501
+ # has been truncated. Use the NextContinuationToken from a previously
3502
+ # truncated list response to continue the listing. The continuation
3503
+ # token is an opaque value that Amazon S3 understands.
3504
+ # @return [String]
3505
+ class ListBucketInventoryConfigurationsRequest < Struct.new(
3506
+ :bucket,
3507
+ :continuation_token)
3508
+ include Aws::Structure
3509
+ end
3510
+
3511
+ # @!attribute [rw] is_truncated
3512
+ # Indicates whether the returned list of metrics configurations is
3513
+ # complete. A value of true indicates that the list is not complete
3514
+ # and the NextContinuationToken will be provided for a subsequent
3515
+ # request.
3516
+ # @return [Boolean]
3517
+ #
3518
+ # @!attribute [rw] continuation_token
3519
+ # The marker that is used as a starting point for this metrics
3520
+ # configuration list response. This value is present if it was sent in
3521
+ # the request.
3522
+ # @return [String]
3523
+ #
3524
+ # @!attribute [rw] next_continuation_token
3525
+ # The marker used to continue a metrics configuration listing that has
3526
+ # been truncated. Use the NextContinuationToken from a previously
3527
+ # truncated list response to continue the listing. The continuation
3528
+ # token is an opaque value that Amazon S3 understands.
3529
+ # @return [String]
3530
+ #
3531
+ # @!attribute [rw] metrics_configuration_list
3532
+ # The list of metrics configurations for a bucket.
3533
+ # @return [Array<Types::MetricsConfiguration>]
3534
+ class ListBucketMetricsConfigurationsOutput < Struct.new(
3535
+ :is_truncated,
3536
+ :continuation_token,
3537
+ :next_continuation_token,
3538
+ :metrics_configuration_list)
3539
+ include Aws::Structure
3540
+ end
3541
+
3542
+ # @note When making an API call, pass ListBucketMetricsConfigurationsRequest
3543
+ # data as a hash:
3544
+ #
3545
+ # {
3546
+ # bucket: "BucketName", # required
3547
+ # continuation_token: "Token",
3548
+ # }
3549
+ # @!attribute [rw] bucket
3550
+ # The name of the bucket containing the metrics configurations to
3551
+ # retrieve.
3552
+ # @return [String]
2722
3553
  #
2723
- # @!attribute [rw] abort_incomplete_multipart_upload
2724
- # Specifies the days since the initiation of an Incomplete Multipart
2725
- # Upload that Lifecycle will wait before permanently removing all
2726
- # parts of the upload.
2727
- # @return [Types::AbortIncompleteMultipartUpload]
2728
- class LifecycleRule < Struct.new(
2729
- :expiration,
2730
- :id,
2731
- :prefix,
2732
- :status,
2733
- :transitions,
2734
- :noncurrent_version_transitions,
2735
- :noncurrent_version_expiration,
2736
- :abort_incomplete_multipart_upload)
3554
+ # @!attribute [rw] continuation_token
3555
+ # The marker that is used to continue a metrics configuration listing
3556
+ # that has been truncated. Use the NextContinuationToken from a
3557
+ # previously truncated list response to continue the listing. The
3558
+ # continuation token is an opaque value that Amazon S3 understands.
3559
+ # @return [String]
3560
+ class ListBucketMetricsConfigurationsRequest < Struct.new(
3561
+ :bucket,
3562
+ :continuation_token)
2737
3563
  include Aws::Structure
2738
3564
  end
2739
3565
 
@@ -3430,6 +4256,108 @@ module Aws
3430
4256
  include Aws::Structure
3431
4257
  end
3432
4258
 
4259
+ # @note When making an API call, pass MetricsAndOperator
4260
+ # data as a hash:
4261
+ #
4262
+ # {
4263
+ # prefix: "Prefix",
4264
+ # tags: [
4265
+ # {
4266
+ # key: "ObjectKey", # required
4267
+ # value: "Value", # required
4268
+ # },
4269
+ # ],
4270
+ # }
4271
+ # @!attribute [rw] prefix
4272
+ # The prefix used when evaluating an AND predicate.
4273
+ # @return [String]
4274
+ #
4275
+ # @!attribute [rw] tags
4276
+ # The list of tags used when evaluating an AND predicate.
4277
+ # @return [Array<Types::Tag>]
4278
+ class MetricsAndOperator < Struct.new(
4279
+ :prefix,
4280
+ :tags)
4281
+ include Aws::Structure
4282
+ end
4283
+
4284
+ # @note When making an API call, pass MetricsConfiguration
4285
+ # data as a hash:
4286
+ #
4287
+ # {
4288
+ # id: "MetricsId", # required
4289
+ # filter: {
4290
+ # prefix: "Prefix",
4291
+ # tag: {
4292
+ # key: "ObjectKey", # required
4293
+ # value: "Value", # required
4294
+ # },
4295
+ # and: {
4296
+ # prefix: "Prefix",
4297
+ # tags: [
4298
+ # {
4299
+ # key: "ObjectKey", # required
4300
+ # value: "Value", # required
4301
+ # },
4302
+ # ],
4303
+ # },
4304
+ # },
4305
+ # }
4306
+ # @!attribute [rw] id
4307
+ # The ID used to identify the metrics configuration.
4308
+ # @return [String]
4309
+ #
4310
+ # @!attribute [rw] filter
4311
+ # Specifies a metrics configuration filter. The metrics configuration
4312
+ # will only include objects that meet the filter's criteria. A filter
4313
+ # must be a prefix, a tag, or a conjunction (MetricsAndOperator).
4314
+ # @return [Types::MetricsFilter]
4315
+ class MetricsConfiguration < Struct.new(
4316
+ :id,
4317
+ :filter)
4318
+ include Aws::Structure
4319
+ end
4320
+
4321
+ # @note When making an API call, pass MetricsFilter
4322
+ # data as a hash:
4323
+ #
4324
+ # {
4325
+ # prefix: "Prefix",
4326
+ # tag: {
4327
+ # key: "ObjectKey", # required
4328
+ # value: "Value", # required
4329
+ # },
4330
+ # and: {
4331
+ # prefix: "Prefix",
4332
+ # tags: [
4333
+ # {
4334
+ # key: "ObjectKey", # required
4335
+ # value: "Value", # required
4336
+ # },
4337
+ # ],
4338
+ # },
4339
+ # }
4340
+ # @!attribute [rw] prefix
4341
+ # The prefix used when evaluating a metrics filter.
4342
+ # @return [String]
4343
+ #
4344
+ # @!attribute [rw] tag
4345
+ # The tag used when evaluating a metrics filter.
4346
+ # @return [Types::Tag]
4347
+ #
4348
+ # @!attribute [rw] and
4349
+ # A conjunction (logical AND) of predicates, which is used in
4350
+ # evaluating a metrics filter. The operator must have at least two
4351
+ # predicates, and an object must match all of the predicates in order
4352
+ # for the filter to apply.
4353
+ # @return [Types::MetricsAndOperator]
4354
+ class MetricsFilter < Struct.new(
4355
+ :prefix,
4356
+ :tag,
4357
+ :and)
4358
+ include Aws::Structure
4359
+ end
4360
+
3433
4361
  # @!attribute [rw] upload_id
3434
4362
  # Upload ID that identifies the multipart upload.
3435
4363
  # @return [String]
@@ -3896,6 +4824,64 @@ module Aws
3896
4824
  include Aws::Structure
3897
4825
  end
3898
4826
 
4827
+ # @note When making an API call, pass PutBucketAnalyticsConfigurationRequest
4828
+ # data as a hash:
4829
+ #
4830
+ # {
4831
+ # bucket: "BucketName", # required
4832
+ # id: "AnalyticsId", # required
4833
+ # analytics_configuration: { # required
4834
+ # id: "AnalyticsId", # required
4835
+ # filter: {
4836
+ # prefix: "Prefix",
4837
+ # tag: {
4838
+ # key: "ObjectKey", # required
4839
+ # value: "Value", # required
4840
+ # },
4841
+ # and: {
4842
+ # prefix: "Prefix",
4843
+ # tags: [
4844
+ # {
4845
+ # key: "ObjectKey", # required
4846
+ # value: "Value", # required
4847
+ # },
4848
+ # ],
4849
+ # },
4850
+ # },
4851
+ # storage_class_analysis: { # required
4852
+ # data_export: {
4853
+ # output_schema_version: "V_1", # required, accepts V_1
4854
+ # destination: { # required
4855
+ # s3_bucket_destination: { # required
4856
+ # format: "CSV", # required, accepts CSV
4857
+ # bucket_account_id: "AccountId",
4858
+ # bucket: "BucketName", # required
4859
+ # prefix: "Prefix",
4860
+ # },
4861
+ # },
4862
+ # },
4863
+ # },
4864
+ # },
4865
+ # }
4866
+ # @!attribute [rw] bucket
4867
+ # The name of the bucket to which an analytics configuration is
4868
+ # stored.
4869
+ # @return [String]
4870
+ #
4871
+ # @!attribute [rw] id
4872
+ # The identifier used to represent an analytics configuration.
4873
+ # @return [String]
4874
+ #
4875
+ # @!attribute [rw] analytics_configuration
4876
+ # The configuration and any analyses for the analytics filter.
4877
+ # @return [Types::AnalyticsConfiguration]
4878
+ class PutBucketAnalyticsConfigurationRequest < Struct.new(
4879
+ :bucket,
4880
+ :id,
4881
+ :analytics_configuration)
4882
+ include Aws::Structure
4883
+ end
4884
+
3899
4885
  # @note When making an API call, pass PutBucketCorsRequest
3900
4886
  # data as a hash:
3901
4887
  #
@@ -3929,6 +4915,52 @@ module Aws
3929
4915
  include Aws::Structure
3930
4916
  end
3931
4917
 
4918
+ # @note When making an API call, pass PutBucketInventoryConfigurationRequest
4919
+ # data as a hash:
4920
+ #
4921
+ # {
4922
+ # bucket: "BucketName", # required
4923
+ # id: "InventoryId", # required
4924
+ # inventory_configuration: { # required
4925
+ # destination: { # required
4926
+ # s3_bucket_destination: { # required
4927
+ # account_id: "AccountId",
4928
+ # bucket: "BucketName", # required
4929
+ # format: "CSV", # required, accepts CSV
4930
+ # prefix: "Prefix",
4931
+ # },
4932
+ # },
4933
+ # is_enabled: false, # required
4934
+ # filter: {
4935
+ # prefix: "Prefix", # required
4936
+ # },
4937
+ # id: "InventoryId", # required
4938
+ # included_object_versions: "All", # required, accepts All, Current
4939
+ # optional_fields: ["Size"], # accepts Size, LastModifiedDate, StorageClass, ETag, IsMultipartUploaded, ReplicationStatus
4940
+ # schedule: { # required
4941
+ # frequency: "Daily", # required, accepts Daily, Weekly
4942
+ # },
4943
+ # },
4944
+ # }
4945
+ # @!attribute [rw] bucket
4946
+ # The name of the bucket where the inventory configuration will be
4947
+ # stored.
4948
+ # @return [String]
4949
+ #
4950
+ # @!attribute [rw] id
4951
+ # The ID used to identify the inventory configuration.
4952
+ # @return [String]
4953
+ #
4954
+ # @!attribute [rw] inventory_configuration
4955
+ # Specifies the inventory configuration.
4956
+ # @return [Types::InventoryConfiguration]
4957
+ class PutBucketInventoryConfigurationRequest < Struct.new(
4958
+ :bucket,
4959
+ :id,
4960
+ :inventory_configuration)
4961
+ include Aws::Structure
4962
+ end
4963
+
3932
4964
  # @note When making an API call, pass PutBucketLifecycleConfigurationRequest
3933
4965
  # data as a hash:
3934
4966
  #
@@ -3943,7 +4975,23 @@ module Aws
3943
4975
  # expired_object_delete_marker: false,
3944
4976
  # },
3945
4977
  # id: "ID",
3946
- # prefix: "Prefix", # required
4978
+ # prefix: "Prefix",
4979
+ # filter: {
4980
+ # prefix: "Prefix",
4981
+ # tag: {
4982
+ # key: "ObjectKey", # required
4983
+ # value: "Value", # required
4984
+ # },
4985
+ # and: {
4986
+ # prefix: "Prefix",
4987
+ # tags: [
4988
+ # {
4989
+ # key: "ObjectKey", # required
4990
+ # value: "Value", # required
4991
+ # },
4992
+ # ],
4993
+ # },
4994
+ # },
3947
4995
  # status: "Enabled", # required, accepts Enabled, Disabled
3948
4996
  # transitions: [
3949
4997
  # {
@@ -4070,6 +5118,50 @@ module Aws
4070
5118
  include Aws::Structure
4071
5119
  end
4072
5120
 
5121
+ # @note When making an API call, pass PutBucketMetricsConfigurationRequest
5122
+ # data as a hash:
5123
+ #
5124
+ # {
5125
+ # bucket: "BucketName", # required
5126
+ # id: "MetricsId", # required
5127
+ # metrics_configuration: { # required
5128
+ # id: "MetricsId", # required
5129
+ # filter: {
5130
+ # prefix: "Prefix",
5131
+ # tag: {
5132
+ # key: "ObjectKey", # required
5133
+ # value: "Value", # required
5134
+ # },
5135
+ # and: {
5136
+ # prefix: "Prefix",
5137
+ # tags: [
5138
+ # {
5139
+ # key: "ObjectKey", # required
5140
+ # value: "Value", # required
5141
+ # },
5142
+ # ],
5143
+ # },
5144
+ # },
5145
+ # },
5146
+ # }
5147
+ # @!attribute [rw] bucket
5148
+ # The name of the bucket for which the metrics configuration is set.
5149
+ # @return [String]
5150
+ #
5151
+ # @!attribute [rw] id
5152
+ # The ID used to identify the metrics configuration.
5153
+ # @return [String]
5154
+ #
5155
+ # @!attribute [rw] metrics_configuration
5156
+ # Specifies the metrics configuration.
5157
+ # @return [Types::MetricsConfiguration]
5158
+ class PutBucketMetricsConfigurationRequest < Struct.new(
5159
+ :bucket,
5160
+ :id,
5161
+ :metrics_configuration)
5162
+ include Aws::Structure
5163
+ end
5164
+
4073
5165
  # @note When making an API call, pass PutBucketNotificationConfigurationRequest
4074
5166
  # data as a hash:
4075
5167
  #
@@ -4578,6 +5670,7 @@ module Aws
4578
5670
  # sse_customer_key_md5: "SSECustomerKeyMD5",
4579
5671
  # ssekms_key_id: "SSEKMSKeyId",
4580
5672
  # request_payer: "requester", # accepts requester
5673
+ # tagging: "TaggingHeader",
4581
5674
  # }
4582
5675
  # @!attribute [rw] acl
4583
5676
  # The canned ACL to apply to the object.
@@ -4701,6 +5794,11 @@ module Aws
4701
5794
  # buckets can be found at
4702
5795
  # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
4703
5796
  # @return [String]
5797
+ #
5798
+ # @!attribute [rw] tagging
5799
+ # The tag-set for the object. The tag-set must be encoded as URL Query
5800
+ # parameters
5801
+ # @return [String]
4704
5802
  class PutObjectRequest < Struct.new(
4705
5803
  :acl,
4706
5804
  :body,
@@ -4726,7 +5824,55 @@ module Aws
4726
5824
  :sse_customer_key,
4727
5825
  :sse_customer_key_md5,
4728
5826
  :ssekms_key_id,
4729
- :request_payer)
5827
+ :request_payer,
5828
+ :tagging)
5829
+ include Aws::Structure
5830
+ end
5831
+
5832
+ # @!attribute [rw] version_id
5833
+ # @return [String]
5834
+ class PutObjectTaggingOutput < Struct.new(
5835
+ :version_id)
5836
+ include Aws::Structure
5837
+ end
5838
+
5839
+ # @note When making an API call, pass PutObjectTaggingRequest
5840
+ # data as a hash:
5841
+ #
5842
+ # {
5843
+ # bucket: "BucketName", # required
5844
+ # key: "ObjectKey", # required
5845
+ # version_id: "ObjectVersionId",
5846
+ # content_md5: "ContentMD5",
5847
+ # tagging: { # required
5848
+ # tag_set: [ # required
5849
+ # {
5850
+ # key: "ObjectKey", # required
5851
+ # value: "Value", # required
5852
+ # },
5853
+ # ],
5854
+ # },
5855
+ # }
5856
+ # @!attribute [rw] bucket
5857
+ # @return [String]
5858
+ #
5859
+ # @!attribute [rw] key
5860
+ # @return [String]
5861
+ #
5862
+ # @!attribute [rw] version_id
5863
+ # @return [String]
5864
+ #
5865
+ # @!attribute [rw] content_md5
5866
+ # @return [String]
5867
+ #
5868
+ # @!attribute [rw] tagging
5869
+ # @return [Types::Tagging]
5870
+ class PutObjectTaggingRequest < Struct.new(
5871
+ :bucket,
5872
+ :key,
5873
+ :version_id,
5874
+ :content_md5,
5875
+ :tagging)
4730
5876
  include Aws::Structure
4731
5877
  end
4732
5878
 
@@ -5183,6 +6329,59 @@ module Aws
5183
6329
  include Aws::Structure
5184
6330
  end
5185
6331
 
6332
+ # @note When making an API call, pass StorageClassAnalysis
6333
+ # data as a hash:
6334
+ #
6335
+ # {
6336
+ # data_export: {
6337
+ # output_schema_version: "V_1", # required, accepts V_1
6338
+ # destination: { # required
6339
+ # s3_bucket_destination: { # required
6340
+ # format: "CSV", # required, accepts CSV
6341
+ # bucket_account_id: "AccountId",
6342
+ # bucket: "BucketName", # required
6343
+ # prefix: "Prefix",
6344
+ # },
6345
+ # },
6346
+ # },
6347
+ # }
6348
+ # @!attribute [rw] data_export
6349
+ # A container used to describe how data related to the storage class
6350
+ # analysis should be exported.
6351
+ # @return [Types::StorageClassAnalysisDataExport]
6352
+ class StorageClassAnalysis < Struct.new(
6353
+ :data_export)
6354
+ include Aws::Structure
6355
+ end
6356
+
6357
+ # @note When making an API call, pass StorageClassAnalysisDataExport
6358
+ # data as a hash:
6359
+ #
6360
+ # {
6361
+ # output_schema_version: "V_1", # required, accepts V_1
6362
+ # destination: { # required
6363
+ # s3_bucket_destination: { # required
6364
+ # format: "CSV", # required, accepts CSV
6365
+ # bucket_account_id: "AccountId",
6366
+ # bucket: "BucketName", # required
6367
+ # prefix: "Prefix",
6368
+ # },
6369
+ # },
6370
+ # }
6371
+ # @!attribute [rw] output_schema_version
6372
+ # The version of the output schema to use when exporting data. Must be
6373
+ # V\_1.
6374
+ # @return [String]
6375
+ #
6376
+ # @!attribute [rw] destination
6377
+ # The place to store the data for an analysis.
6378
+ # @return [Types::AnalyticsExportDestination]
6379
+ class StorageClassAnalysisDataExport < Struct.new(
6380
+ :output_schema_version,
6381
+ :destination)
6382
+ include Aws::Structure
6383
+ end
6384
+
5186
6385
  # @note When making an API call, pass Tag
5187
6386
  # data as a hash:
5188
6387
  #