diff --git a/CHANGELOG.md b/CHANGELOG.md index 99df8711ae2..a2eafe0ebd1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +Release v1.5.11 (2016-11-29) +=== + +Service Client Updates +--- +`service/s3`: Updates service API and documentation + Release v1.5.10 (2016-11-22) === diff --git a/aws/version.go b/aws/version.go index 98f55ef935d..05382ca5492 100644 --- a/aws/version.go +++ b/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.5.10" +const SDKVersion = "1.5.11" diff --git a/models/apis/s3/2006-03-01/api-2.json b/models/apis/s3/2006-03-01/api-2.json index bf869b42311..48df3e22c0a 100644 --- a/models/apis/s3/2006-03-01/api-2.json +++ b/models/apis/s3/2006-03-01/api-2.json @@ -9,7 +9,8 @@ "serviceAbbreviation":"Amazon S3", "serviceFullName":"Amazon Simple Storage Service", "signatureVersion":"s3", - "timestampFormat":"rfc822" + "timestampFormat":"rfc822", + "uid":"s3-2006-03-01" }, "operations":{ "AbortMultipartUpload":{ @@ -84,6 +85,14 @@ "input":{"shape":"DeleteBucketRequest"}, "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETE.html" }, + "DeleteBucketAnalyticsConfiguration":{ + "name":"DeleteBucketAnalyticsConfiguration", + "http":{ + "method":"DELETE", + "requestUri":"/{Bucket}?analytics" + }, + "input":{"shape":"DeleteBucketAnalyticsConfigurationRequest"} + }, "DeleteBucketCors":{ "name":"DeleteBucketCors", "http":{ @@ -93,6 +102,14 @@ "input":{"shape":"DeleteBucketCorsRequest"}, "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEcors.html" }, + "DeleteBucketInventoryConfiguration":{ + "name":"DeleteBucketInventoryConfiguration", + "http":{ + "method":"DELETE", + "requestUri":"/{Bucket}?inventory" + }, + "input":{"shape":"DeleteBucketInventoryConfigurationRequest"} + }, "DeleteBucketLifecycle":{ "name":"DeleteBucketLifecycle", "http":{ @@ -102,6 +119,14 @@ "input":{"shape":"DeleteBucketLifecycleRequest"}, "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETElifecycle.html" }, + "DeleteBucketMetricsConfiguration":{ + "name":"DeleteBucketMetricsConfiguration", + "http":{ + "method":"DELETE", + "requestUri":"/{Bucket}?metrics" + }, + "input":{"shape":"DeleteBucketMetricsConfigurationRequest"} + }, "DeleteBucketPolicy":{ "name":"DeleteBucketPolicy", "http":{ @@ -147,6 +172,15 @@ "output":{"shape":"DeleteObjectOutput"}, "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectDELETE.html" }, + "DeleteObjectTagging":{ + "name":"DeleteObjectTagging", + "http":{ + "method":"DELETE", + "requestUri":"/{Bucket}/{Key+}?tagging" + }, + "input":{"shape":"DeleteObjectTaggingRequest"}, + "output":{"shape":"DeleteObjectTaggingOutput"} + }, "DeleteObjects":{ "name":"DeleteObjects", "http":{ @@ -177,6 +211,15 @@ "output":{"shape":"GetBucketAclOutput"}, "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETacl.html" }, + "GetBucketAnalyticsConfiguration":{ + "name":"GetBucketAnalyticsConfiguration", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}?analytics" + }, + "input":{"shape":"GetBucketAnalyticsConfigurationRequest"}, + "output":{"shape":"GetBucketAnalyticsConfigurationOutput"} + }, "GetBucketCors":{ "name":"GetBucketCors", "http":{ @@ -187,6 +230,15 @@ "output":{"shape":"GetBucketCorsOutput"}, "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETcors.html" }, + "GetBucketInventoryConfiguration":{ + "name":"GetBucketInventoryConfiguration", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}?inventory" + }, + "input":{"shape":"GetBucketInventoryConfigurationRequest"}, + "output":{"shape":"GetBucketInventoryConfigurationOutput"} + }, "GetBucketLifecycle":{ "name":"GetBucketLifecycle", "http":{ @@ -227,6 +279,15 @@ "output":{"shape":"GetBucketLoggingOutput"}, "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETlogging.html" }, + "GetBucketMetricsConfiguration":{ + "name":"GetBucketMetricsConfiguration", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}?metrics" + }, + "input":{"shape":"GetBucketMetricsConfigurationRequest"}, + "output":{"shape":"GetBucketMetricsConfigurationOutput"} + }, "GetBucketNotification":{ "name":"GetBucketNotification", "http":{ @@ -332,6 +393,15 @@ ], "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectGETacl.html" }, + "GetObjectTagging":{ + "name":"GetObjectTagging", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}/{Key+}?tagging" + }, + "input":{"shape":"GetObjectTaggingRequest"}, + "output":{"shape":"GetObjectTaggingOutput"} + }, "GetObjectTorrent":{ "name":"GetObjectTorrent", "http":{ @@ -367,6 +437,33 @@ ], "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectHEAD.html" }, + "ListBucketAnalyticsConfigurations":{ + "name":"ListBucketAnalyticsConfigurations", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}?analytics" + }, + "input":{"shape":"ListBucketAnalyticsConfigurationsRequest"}, + "output":{"shape":"ListBucketAnalyticsConfigurationsOutput"} + }, + "ListBucketInventoryConfigurations":{ + "name":"ListBucketInventoryConfigurations", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}?inventory" + }, + "input":{"shape":"ListBucketInventoryConfigurationsRequest"}, + "output":{"shape":"ListBucketInventoryConfigurationsOutput"} + }, + "ListBucketMetricsConfigurations":{ + "name":"ListBucketMetricsConfigurations", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}?metrics" + }, + "input":{"shape":"ListBucketMetricsConfigurationsRequest"}, + "output":{"shape":"ListBucketMetricsConfigurationsOutput"} + }, "ListBuckets":{ "name":"ListBuckets", "http":{ @@ -451,6 +548,14 @@ "input":{"shape":"PutBucketAclRequest"}, "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTacl.html" }, + "PutBucketAnalyticsConfiguration":{ + "name":"PutBucketAnalyticsConfiguration", + "http":{ + "method":"PUT", + "requestUri":"/{Bucket}?analytics" + }, + "input":{"shape":"PutBucketAnalyticsConfigurationRequest"} + }, "PutBucketCors":{ "name":"PutBucketCors", "http":{ @@ -460,6 +565,14 @@ "input":{"shape":"PutBucketCorsRequest"}, "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTcors.html" }, + "PutBucketInventoryConfiguration":{ + "name":"PutBucketInventoryConfiguration", + "http":{ + "method":"PUT", + "requestUri":"/{Bucket}?inventory" + }, + "input":{"shape":"PutBucketInventoryConfigurationRequest"} + }, "PutBucketLifecycle":{ "name":"PutBucketLifecycle", "http":{ @@ -487,6 +600,14 @@ "input":{"shape":"PutBucketLoggingRequest"}, "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTlogging.html" }, + "PutBucketMetricsConfiguration":{ + "name":"PutBucketMetricsConfiguration", + "http":{ + "method":"PUT", + "requestUri":"/{Bucket}?metrics" + }, + "input":{"shape":"PutBucketMetricsConfigurationRequest"} + }, "PutBucketNotification":{ "name":"PutBucketNotification", "http":{ @@ -581,6 +702,15 @@ ], "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPUTacl.html" }, + "PutObjectTagging":{ + "name":"PutObjectTagging", + "http":{ + "method":"PUT", + "requestUri":"/{Bucket}/{Key+}?tagging" + }, + "input":{"shape":"PutObjectTaggingRequest"}, + "output":{"shape":"PutObjectTaggingOutput"} + }, "RestoreObject":{ "name":"RestoreObject", "http":{ @@ -682,6 +812,7 @@ "Owner":{"shape":"Owner"} } }, + "AccountId":{"type":"string"}, "AllowedHeader":{"type":"string"}, "AllowedHeaders":{ "type":"list", @@ -700,6 +831,67 @@ "member":{"shape":"AllowedOrigin"}, "flattened":true }, + "AnalyticsAndOperator":{ + "type":"structure", + "members":{ + "Prefix":{"shape":"Prefix"}, + "Tags":{ + "shape":"TagSet", + "flattened":true, + "locationName":"Tag" + } + } + }, + "AnalyticsConfiguration":{ + "type":"structure", + "required":[ + "Id", + "StorageClassAnalysis" + ], + "members":{ + "Id":{"shape":"AnalyticsId"}, + "Filter":{"shape":"AnalyticsFilter"}, + "StorageClassAnalysis":{"shape":"StorageClassAnalysis"} + } + }, + "AnalyticsConfigurationList":{ + "type":"list", + "member":{"shape":"AnalyticsConfiguration"}, + "flattened":true + }, + "AnalyticsExportDestination":{ + "type":"structure", + "required":["S3BucketDestination"], + "members":{ + "S3BucketDestination":{"shape":"AnalyticsS3BucketDestination"} + } + }, + "AnalyticsFilter":{ + "type":"structure", + "members":{ + "Prefix":{"shape":"Prefix"}, + "Tag":{"shape":"Tag"}, + "And":{"shape":"AnalyticsAndOperator"} + } + }, + "AnalyticsId":{"type":"string"}, + "AnalyticsS3BucketDestination":{ + "type":"structure", + "required":[ + "Format", + "Bucket" + ], + "members":{ + "Format":{"shape":"AnalyticsS3ExportFileFormat"}, + "BucketAccountId":{"shape":"AccountId"}, + "Bucket":{"shape":"BucketName"}, + "Prefix":{"shape":"Prefix"} + } + }, + "AnalyticsS3ExportFileFormat":{ + "type":"string", + "enum":["CSV"] + }, "Body":{"type":"blob"}, "Bucket":{ "type":"structure", @@ -1123,6 +1315,11 @@ "location":"header", "locationName":"x-amz-metadata-directive" }, + "TaggingDirective":{ + "shape":"TaggingDirective", + "location":"header", + "locationName":"x-amz-tagging-directive" + }, "ServerSideEncryption":{ "shape":"ServerSideEncryption", "location":"header", @@ -1177,6 +1374,11 @@ "shape":"RequestPayer", "location":"header", "locationName":"x-amz-request-payer" + }, + "Tagging":{ + "shape":"TaggingHeader", + "location":"header", + "locationName":"x-amz-tagging" } } }, @@ -1456,6 +1658,25 @@ "Quiet":{"shape":"Quiet"} } }, + "DeleteBucketAnalyticsConfigurationRequest":{ + "type":"structure", + "required":[ + "Bucket", + "Id" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "Id":{ + "shape":"AnalyticsId", + "location":"querystring", + "locationName":"id" + } + } + }, "DeleteBucketCorsRequest":{ "type":"structure", "required":["Bucket"], @@ -1467,6 +1688,25 @@ } } }, + "DeleteBucketInventoryConfigurationRequest":{ + "type":"structure", + "required":[ + "Bucket", + "Id" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "Id":{ + "shape":"InventoryId", + "location":"querystring", + "locationName":"id" + } + } + }, "DeleteBucketLifecycleRequest":{ "type":"structure", "required":["Bucket"], @@ -1478,6 +1718,25 @@ } } }, + "DeleteBucketMetricsConfigurationRequest":{ + "type":"structure", + "required":[ + "Bucket", + "Id" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "Id":{ + "shape":"MetricsId", + "location":"querystring", + "locationName":"id" + } + } + }, "DeleteBucketPolicyRequest":{ "type":"structure", "required":["Bucket"], @@ -1604,6 +1863,40 @@ } } }, + "DeleteObjectTaggingOutput":{ + "type":"structure", + "members":{ + "VersionId":{ + "shape":"ObjectVersionId", + "location":"header", + "locationName":"x-amz-version-id" + } + } + }, + "DeleteObjectTaggingRequest":{ + "type":"structure", + "required":[ + "Bucket", + "Key" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "Key":{ + "shape":"ObjectKey", + "location":"uri", + "locationName":"Key" + }, + "VersionId":{ + "shape":"ObjectVersionId", + "location":"querystring", + "locationName":"versionId" + } + } + }, "DeleteObjectsOutput":{ "type":"structure", "members":{ @@ -1794,6 +2087,32 @@ } } }, + "GetBucketAnalyticsConfigurationOutput":{ + "type":"structure", + "members":{ + "AnalyticsConfiguration":{"shape":"AnalyticsConfiguration"} + }, + "payload":"AnalyticsConfiguration" + }, + "GetBucketAnalyticsConfigurationRequest":{ + "type":"structure", + "required":[ + "Bucket", + "Id" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "Id":{ + "shape":"AnalyticsId", + "location":"querystring", + "locationName":"id" + } + } + }, "GetBucketCorsOutput":{ "type":"structure", "members":{ @@ -1814,6 +2133,32 @@ } } }, + "GetBucketInventoryConfigurationOutput":{ + "type":"structure", + "members":{ + "InventoryConfiguration":{"shape":"InventoryConfiguration"} + }, + "payload":"InventoryConfiguration" + }, + "GetBucketInventoryConfigurationRequest":{ + "type":"structure", + "required":[ + "Bucket", + "Id" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "Id":{ + "shape":"InventoryId", + "location":"querystring", + "locationName":"id" + } + } + }, "GetBucketLifecycleConfigurationOutput":{ "type":"structure", "members":{ @@ -1888,6 +2233,32 @@ } } }, + "GetBucketMetricsConfigurationOutput":{ + "type":"structure", + "members":{ + "MetricsConfiguration":{"shape":"MetricsConfiguration"} + }, + "payload":"MetricsConfiguration" + }, + "GetBucketMetricsConfigurationRequest":{ + "type":"structure", + "required":[ + "Bucket", + "Id" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "Id":{ + "shape":"MetricsId", + "location":"querystring", + "locationName":"id" + } + } + }, "GetBucketNotificationConfigurationRequest":{ "type":"structure", "required":["Bucket"], @@ -2191,6 +2562,11 @@ "shape":"PartsCount", "location":"header", "locationName":"x-amz-mp-parts-count" + }, + "TagCount":{ + "shape":"TagCount", + "location":"header", + "locationName":"x-amz-tagging-count" } }, "payload":"Body" @@ -2299,26 +2675,24 @@ } } }, - "GetObjectTorrentOutput":{ + "GetObjectTaggingOutput":{ "type":"structure", + "required":["TagSet"], "members":{ - "Body":{ - "shape":"Body", - "streaming":true - }, - "RequestCharged":{ - "shape":"RequestCharged", + "VersionId":{ + "shape":"ObjectVersionId", "location":"header", - "locationName":"x-amz-request-charged" - } - }, - "payload":"Body" + "locationName":"x-amz-version-id" + }, + "TagSet":{"shape":"TagSet"} + } }, - "GetObjectTorrentRequest":{ + "GetObjectTaggingRequest":{ "type":"structure", "required":[ "Bucket", - "Key" + "Key", + "VersionId" ], "members":{ "Bucket":{ @@ -2331,12 +2705,51 @@ "location":"uri", "locationName":"Key" }, - "RequestPayer":{ - "shape":"RequestPayer", - "location":"header", - "locationName":"x-amz-request-payer" - } - } + "VersionId":{ + "shape":"ObjectVersionId", + "location":"uri", + "locationName":"VersionId" + } + } + }, + "GetObjectTorrentOutput":{ + "type":"structure", + "members":{ + "Body":{ + "shape":"Body", + "streaming":true + }, + "RequestCharged":{ + "shape":"RequestCharged", + "location":"header", + "locationName":"x-amz-request-charged" + } + }, + "payload":"Body" + }, + "GetObjectTorrentRequest":{ + "type":"structure", + "required":[ + "Bucket", + "Key" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "Key":{ + "shape":"ObjectKey", + "location":"uri", + "locationName":"Key" + }, + "RequestPayer":{ + "shape":"RequestPayer", + "location":"header", + "locationName":"x-amz-request-payer" + } + } }, "GlacierJobParameters":{ "type":"structure", @@ -2621,6 +3034,102 @@ "DisplayName":{"shape":"DisplayName"} } }, + "InventoryConfiguration":{ + "type":"structure", + "required":[ + "Destination", + "IsEnabled", + "Id", + "IncludedObjectVersions", + "Schedule" + ], + "members":{ + "Destination":{"shape":"InventoryDestination"}, + "IsEnabled":{"shape":"IsEnabled"}, + "Filter":{"shape":"InventoryFilter"}, + "Id":{"shape":"InventoryId"}, + "IncludedObjectVersions":{"shape":"InventoryIncludedObjectVersions"}, + "OptionalFields":{"shape":"InventoryOptionalFields"}, + "Schedule":{"shape":"InventorySchedule"} + } + }, + "InventoryConfigurationList":{ + "type":"list", + "member":{"shape":"InventoryConfiguration"}, + "flattened":true + }, + "InventoryDestination":{ + "type":"structure", + "required":["S3BucketDestination"], + "members":{ + "S3BucketDestination":{"shape":"InventoryS3BucketDestination"} + } + }, + "InventoryFilter":{ + "type":"structure", + "required":["Prefix"], + "members":{ + "Prefix":{"shape":"Prefix"} + } + }, + "InventoryFormat":{ + "type":"string", + "enum":["CSV"] + }, + "InventoryFrequency":{ + "type":"string", + "enum":[ + "Daily", + "Weekly" + ] + }, + "InventoryId":{"type":"string"}, + "InventoryIncludedObjectVersions":{ + "type":"string", + "enum":[ + "All", + "Current" + ] + }, + "InventoryOptionalField":{ + "type":"string", + "enum":[ + "Size", + "LastModifiedDate", + "StorageClass", + "ETag", + "IsMultipartUploaded", + "ReplicationStatus" + ] + }, + "InventoryOptionalFields":{ + "type":"list", + "member":{ + "shape":"InventoryOptionalField", + "locationName":"Field" + } + }, + "InventoryS3BucketDestination":{ + "type":"structure", + "required":[ + "Bucket", + "Format" + ], + "members":{ + "AccountId":{"shape":"AccountId"}, + "Bucket":{"shape":"BucketName"}, + "Format":{"shape":"InventoryFormat"}, + "Prefix":{"shape":"Prefix"} + } + }, + "InventorySchedule":{ + "type":"structure", + "required":["Frequency"], + "members":{ + "Frequency":{"shape":"InventoryFrequency"} + } + }, + "IsEnabled":{"type":"boolean"}, "IsLatest":{"type":"boolean"}, "IsTruncated":{"type":"boolean"}, "KeyCount":{"type":"integer"}, @@ -2672,14 +3181,15 @@ }, "LifecycleRule":{ "type":"structure", - "required":[ - "Prefix", - "Status" - ], + "required":["Status"], "members":{ "Expiration":{"shape":"LifecycleExpiration"}, "ID":{"shape":"ID"}, - "Prefix":{"shape":"Prefix"}, + "Prefix":{ + "shape":"Prefix", + "deprecated":true + }, + "Filter":{"shape":"LifecycleRuleFilter"}, "Status":{"shape":"ExpirationStatus"}, "Transitions":{ "shape":"TransitionList", @@ -2693,11 +3203,114 @@ "AbortIncompleteMultipartUpload":{"shape":"AbortIncompleteMultipartUpload"} } }, + "LifecycleRuleAndOperator":{ + "type":"structure", + "members":{ + "Prefix":{"shape":"Prefix"}, + "Tags":{ + "shape":"TagSet", + "flattened":true, + "locationName":"Tag" + } + } + }, + "LifecycleRuleFilter":{ + "type":"structure", + "members":{ + "Prefix":{"shape":"Prefix"}, + "Tag":{"shape":"Tag"}, + "And":{"shape":"LifecycleRuleAndOperator"} + } + }, "LifecycleRules":{ "type":"list", "member":{"shape":"LifecycleRule"}, "flattened":true }, + "ListBucketAnalyticsConfigurationsOutput":{ + "type":"structure", + "members":{ + "IsTruncated":{"shape":"IsTruncated"}, + "ContinuationToken":{"shape":"Token"}, + "NextContinuationToken":{"shape":"NextToken"}, + "AnalyticsConfigurationList":{ + "shape":"AnalyticsConfigurationList", + "locationName":"AnalyticsConfiguration" + } + } + }, + "ListBucketAnalyticsConfigurationsRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "ContinuationToken":{ + "shape":"Token", + "location":"querystring", + "locationName":"continuation-token" + } + } + }, + "ListBucketInventoryConfigurationsOutput":{ + "type":"structure", + "members":{ + "ContinuationToken":{"shape":"Token"}, + "InventoryConfigurationList":{ + "shape":"InventoryConfigurationList", + "locationName":"InventoryConfiguration" + }, + "IsTruncated":{"shape":"IsTruncated"}, + "NextContinuationToken":{"shape":"NextToken"} + } + }, + "ListBucketInventoryConfigurationsRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "ContinuationToken":{ + "shape":"Token", + "location":"querystring", + "locationName":"continuation-token" + } + } + }, + "ListBucketMetricsConfigurationsOutput":{ + "type":"structure", + "members":{ + "IsTruncated":{"shape":"IsTruncated"}, + "ContinuationToken":{"shape":"Token"}, + "NextContinuationToken":{"shape":"NextToken"}, + "MetricsConfigurationList":{ + "shape":"MetricsConfigurationList", + "locationName":"MetricsConfiguration" + } + } + }, + "ListBucketMetricsConfigurationsRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "ContinuationToken":{ + "shape":"Token", + "location":"querystring", + "locationName":"continuation-token" + } + } + }, "ListBucketsOutput":{ "type":"structure", "members":{ @@ -3073,6 +3686,39 @@ }, "MetadataKey":{"type":"string"}, "MetadataValue":{"type":"string"}, + "MetricsAndOperator":{ + "type":"structure", + "members":{ + "Prefix":{"shape":"Prefix"}, + "Tags":{ + "shape":"TagSet", + "flattened":true, + "locationName":"Tag" + } + } + }, + "MetricsConfiguration":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{"shape":"MetricsId"}, + "Filter":{"shape":"MetricsFilter"} + } + }, + "MetricsConfigurationList":{ + "type":"list", + "member":{"shape":"MetricsConfiguration"}, + "flattened":true + }, + "MetricsFilter":{ + "type":"structure", + "members":{ + "Prefix":{"shape":"Prefix"}, + "Tag":{"shape":"Tag"}, + "And":{"shape":"MetricsAndOperator"} + } + }, + "MetricsId":{"type":"string"}, "MissingMeta":{"type":"integer"}, "MultipartUpload":{ "type":"structure", @@ -3378,6 +4024,32 @@ }, "payload":"AccessControlPolicy" }, + "PutBucketAnalyticsConfigurationRequest":{ + "type":"structure", + "required":[ + "Bucket", + "Id", + "AnalyticsConfiguration" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "Id":{ + "shape":"AnalyticsId", + "location":"querystring", + "locationName":"id" + }, + "AnalyticsConfiguration":{ + "shape":"AnalyticsConfiguration", + "locationName":"AnalyticsConfiguration", + "xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"} + } + }, + "payload":"AnalyticsConfiguration" + }, "PutBucketCorsRequest":{ "type":"structure", "required":[ @@ -3403,6 +4075,32 @@ }, "payload":"CORSConfiguration" }, + "PutBucketInventoryConfigurationRequest":{ + "type":"structure", + "required":[ + "Bucket", + "Id", + "InventoryConfiguration" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "Id":{ + "shape":"InventoryId", + "location":"querystring", + "locationName":"id" + }, + "InventoryConfiguration":{ + "shape":"InventoryConfiguration", + "locationName":"InventoryConfiguration", + "xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"} + } + }, + "payload":"InventoryConfiguration" + }, "PutBucketLifecycleConfigurationRequest":{ "type":"structure", "required":["Bucket"], @@ -3467,6 +4165,32 @@ }, "payload":"BucketLoggingStatus" }, + "PutBucketMetricsConfigurationRequest":{ + "type":"structure", + "required":[ + "Bucket", + "Id", + "MetricsConfiguration" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "Id":{ + "shape":"MetricsId", + "location":"querystring", + "locationName":"id" + }, + "MetricsConfiguration":{ + "shape":"MetricsConfiguration", + "locationName":"MetricsConfiguration", + "xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"} + } + }, + "payload":"MetricsConfiguration" + }, "PutBucketNotificationConfigurationRequest":{ "type":"structure", "required":[ @@ -3918,10 +4642,62 @@ "shape":"RequestPayer", "location":"header", "locationName":"x-amz-request-payer" + }, + "Tagging":{ + "shape":"TaggingHeader", + "location":"header", + "locationName":"x-amz-tagging" } }, "payload":"Body" }, + "PutObjectTaggingOutput":{ + "type":"structure", + "members":{ + "VersionId":{ + "shape":"ObjectVersionId", + "location":"header", + "locationName":"x-amz-version-id" + } + } + }, + "PutObjectTaggingRequest":{ + "type":"structure", + "required":[ + "Bucket", + "Key", + "Tagging", + "VersionId" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "Key":{ + "shape":"ObjectKey", + "location":"uri", + "locationName":"Key" + }, + "VersionId":{ + "shape":"ObjectVersionId", + "location":"uri", + "locationName":"VersionId" + }, + "ContentMD5":{ + "shape":"ContentMD5", + "location":"header", + "locationName":"Content-MD5" + }, + "Tagging":{ + "shape":"Tagging", + "locationName":"Tagging", + "xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"} + } + }, + "payload":"Tagging" + }, "QueueArn":{"type":"string"}, "QueueConfiguration":{ "type":"structure", @@ -4182,6 +4958,27 @@ "STANDARD_IA" ] }, + "StorageClassAnalysis":{ + "type":"structure", + "members":{ + "DataExport":{"shape":"StorageClassAnalysisDataExport"} + } + }, + "StorageClassAnalysisDataExport":{ + "type":"structure", + "required":[ + "OutputSchemaVersion", + "Destination" + ], + "members":{ + "OutputSchemaVersion":{"shape":"StorageClassAnalysisSchemaVersion"}, + "Destination":{"shape":"AnalyticsExportDestination"} + } + }, + "StorageClassAnalysisSchemaVersion":{ + "type":"string", + "enum":["V_1"] + }, "Suffix":{"type":"string"}, "Tag":{ "type":"structure", @@ -4194,6 +4991,7 @@ "Value":{"shape":"Value"} } }, + "TagCount":{"type":"integer"}, "TagSet":{ "type":"list", "member":{ @@ -4208,6 +5006,14 @@ "TagSet":{"shape":"TagSet"} } }, + "TaggingDirective":{ + "type":"string", + "enum":[ + "COPY", + "REPLACE" + ] + }, + "TaggingHeader":{"type":"string"}, "TargetBucket":{"type":"string"}, "TargetGrant":{ "type":"structure", diff --git a/models/apis/s3/2006-03-01/docs-2.json b/models/apis/s3/2006-03-01/docs-2.json index 2ee687dc5c8..59a39d24285 100644 --- a/models/apis/s3/2006-03-01/docs-2.json +++ b/models/apis/s3/2006-03-01/docs-2.json @@ -8,21 +8,28 @@ "CreateBucket": "Creates a new bucket.", "CreateMultipartUpload": "
Initiates a multipart upload and returns an upload ID.
Note: After you initiate multipart upload and upload one or more parts, you must either complete or abort multipart upload in order to stop getting charged for storage of the uploaded parts. Only after you either complete or abort multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts storage.
", "DeleteBucket": "Deletes the bucket. All objects (including all object versions and Delete Markers) in the bucket must be deleted before the bucket itself can be deleted.", + "DeleteBucketAnalyticsConfiguration": "Deletes an analytics configuration for the bucket (specified by the analytics configuration ID).", "DeleteBucketCors": "Deletes the cors configuration information set for the bucket.", + "DeleteBucketInventoryConfiguration": "Deletes an inventory configuration (identified by the inventory ID) from the bucket.", "DeleteBucketLifecycle": "Deletes the lifecycle configuration from the bucket.", + "DeleteBucketMetricsConfiguration": "Deletes a metrics configuration (specified by the metrics configuration ID) from the bucket.", "DeleteBucketPolicy": "Deletes the policy from the bucket.", "DeleteBucketReplication": "Deletes the replication configuration from the bucket.", "DeleteBucketTagging": "Deletes the tags from the bucket.", "DeleteBucketWebsite": "This operation removes the website configuration from the bucket.", "DeleteObject": "Removes the null version (if there is one) of an object and inserts a delete marker, which becomes the latest version of the object. If there isn't a null version, Amazon S3 does not remove any objects.", + "DeleteObjectTagging": "Removes the tag-set from an existing object.", "DeleteObjects": "This operation enables you to delete multiple objects from a bucket using a single HTTP request. You may specify up to 1000 keys.", "GetBucketAccelerateConfiguration": "Returns the accelerate configuration of a bucket.", "GetBucketAcl": "Gets the access control policy for the bucket.", + "GetBucketAnalyticsConfiguration": "Gets an analytics configuration for the bucket (specified by the analytics configuration ID).", "GetBucketCors": "Returns the cors configuration for the bucket.", + "GetBucketInventoryConfiguration": "Returns an inventory configuration (identified by the inventory ID) from the bucket.", "GetBucketLifecycle": "Deprecated, see the GetBucketLifecycleConfiguration operation.", "GetBucketLifecycleConfiguration": "Returns the lifecycle configuration information set on the bucket.", "GetBucketLocation": "Returns the region the bucket resides in.", "GetBucketLogging": "Returns the logging status of a bucket and the permissions users have to view and modify that status. To use GET, you must be the bucket owner.", + "GetBucketMetricsConfiguration": "Gets a metrics configuration (specified by the metrics configuration ID) from the bucket.", "GetBucketNotification": "Deprecated, see the GetBucketNotificationConfiguration operation.", "GetBucketNotificationConfiguration": "Returns the notification configuration of a bucket.", "GetBucketPolicy": "Returns the policy of a specified bucket.", @@ -33,9 +40,13 @@ "GetBucketWebsite": "Returns the website configuration for a bucket.", "GetObject": "Retrieves objects from Amazon S3.", "GetObjectAcl": "Returns the access control list (ACL) of an object.", + "GetObjectTagging": "Returns the tag-set of an object.", "GetObjectTorrent": "Return torrent files from a bucket.", "HeadBucket": "This operation is useful to determine if a bucket exists and you have permission to access it.", "HeadObject": "The HEAD operation retrieves metadata from an object without returning the object itself. This operation is useful if you're only interested in an object's metadata. To use HEAD, you must have READ access to the object.", + "ListBucketAnalyticsConfigurations": "Lists the analytics configurations for the bucket.", + "ListBucketInventoryConfigurations": "Returns a list of inventory configurations for the bucket.", + "ListBucketMetricsConfigurations": "Lists the metrics configurations for the bucket.", "ListBuckets": "Returns a list of all buckets owned by the authenticated sender of the request.", "ListMultipartUploads": "This operation lists in-progress multipart uploads.", "ListObjectVersions": "Returns metadata about all of the versions of objects in a bucket.", @@ -44,10 +55,13 @@ "ListParts": "Lists the parts that have been uploaded for a specific multipart upload.", "PutBucketAccelerateConfiguration": "Sets the accelerate configuration of an existing bucket.", "PutBucketAcl": "Sets the permissions on a bucket using access control lists (ACL).", + "PutBucketAnalyticsConfiguration": "Sets an analytics configuration for the bucket (specified by the analytics configuration ID).", "PutBucketCors": "Sets the cors configuration for a bucket.", + "PutBucketInventoryConfiguration": "Adds an inventory configuration (identified by the inventory ID) from the bucket.", "PutBucketLifecycle": "Deprecated, see the PutBucketLifecycleConfiguration operation.", "PutBucketLifecycleConfiguration": "Sets lifecycle configuration for your bucket. If a lifecycle configuration exists, it replaces it.", "PutBucketLogging": "Set the logging parameters for a bucket and to specify permissions for who can view and modify the logging parameters. To set the logging status of a bucket, you must be the bucket owner.", + "PutBucketMetricsConfiguration": "Sets a metrics configuration (specified by the metrics configuration ID) for the bucket.", "PutBucketNotification": "Deprecated, see the PutBucketNotificationConfiguraiton operation.", "PutBucketNotificationConfiguration": "Enables notifications of specified events for a bucket.", "PutBucketPolicy": "Replaces a policy on a bucket. If the bucket already has a policy, the one in this request completely replaces it.", @@ -58,6 +72,7 @@ "PutBucketWebsite": "Set the website configuration for a bucket.", "PutObject": "Adds an object to a bucket.", "PutObjectAcl": "uses the acl subresource to set the access control list (ACL) permissions for an object that already exists in a bucket", + "PutObjectTagging": "Sets the supplied tag-set to an object that already exists in a bucket", "RestoreObject": "Restores an archived copy of an object back into Amazon S3", "UploadPart": "Uploads a part in a multipart upload.
Note: After you initiate multipart upload and upload one or more parts, you must either complete or abort multipart upload in order to stop getting charged for storage of the uploaded parts. Only after you either complete or abort multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts storage.
", "UploadPartCopy": "Uploads a part by copying data from an existing object as data source." @@ -114,6 +129,13 @@ "PutObjectAclRequest$AccessControlPolicy": null } }, + "AccountId": { + "base": null, + "refs": { + "AnalyticsS3BucketDestination$BucketAccountId": "The account ID that owns the destination bucket. If no account ID is provided, the owner will not be validated prior to exporting data.", + "InventoryS3BucketDestination$AccountId": "The ID of the account that owns the destination bucket." + } + }, "AllowedHeader": { "base": null, "refs": { @@ -150,6 +172,59 @@ "CORSRule$AllowedOrigins": "One or more origins you want customers to be able to access the bucket from." } }, + "AnalyticsAndOperator": { + "base": null, + "refs": { + "AnalyticsFilter$And": "A conjunction (logical AND) of predicates, which is used in evaluating an analytics filter. The operator must have at least two predicates." + } + }, + "AnalyticsConfiguration": { + "base": null, + "refs": { + "AnalyticsConfigurationList$member": null, + "GetBucketAnalyticsConfigurationOutput$AnalyticsConfiguration": "The configuration and any analyses for the analytics filter.", + "PutBucketAnalyticsConfigurationRequest$AnalyticsConfiguration": "The configuration and any analyses for the analytics filter." + } + }, + "AnalyticsConfigurationList": { + "base": null, + "refs": { + "ListBucketAnalyticsConfigurationsOutput$AnalyticsConfigurationList": "The list of analytics configurations for a bucket." + } + }, + "AnalyticsExportDestination": { + "base": null, + "refs": { + "StorageClassAnalysisDataExport$Destination": "The place to store the data for an analysis." + } + }, + "AnalyticsFilter": { + "base": null, + "refs": { + "AnalyticsConfiguration$Filter": "The filter used to describe a set of objects for analyses. A filter must have exactly one prefix, one tag, or one conjunction (AnalyticsAndOperator). If no filter is provided, all objects will be considered in any analysis." + } + }, + "AnalyticsId": { + "base": null, + "refs": { + "AnalyticsConfiguration$Id": "The identifier used to represent an analytics configuration.", + "DeleteBucketAnalyticsConfigurationRequest$Id": "The identifier used to represent an analytics configuration.", + "GetBucketAnalyticsConfigurationRequest$Id": "The identifier used to represent an analytics configuration.", + "PutBucketAnalyticsConfigurationRequest$Id": "The identifier used to represent an analytics configuration." + } + }, + "AnalyticsS3BucketDestination": { + "base": null, + "refs": { + "AnalyticsExportDestination$S3BucketDestination": "A destination signifying output to an S3 bucket." + } + }, + "AnalyticsS3ExportFileFormat": { + "base": null, + "refs": { + "AnalyticsS3BucketDestination$Format": "The file format used when exporting data to Amazon S3." + } + }, "Body": { "base": null, "refs": { @@ -218,6 +293,7 @@ "base": null, "refs": { "AbortMultipartUploadRequest$Bucket": null, + "AnalyticsS3BucketDestination$Bucket": "The Amazon resource name (ARN) of the bucket to which data is exported.", "Bucket$Name": "The name of the bucket.", "CompleteMultipartUploadOutput$Bucket": null, "CompleteMultipartUploadRequest$Bucket": null, @@ -225,23 +301,30 @@ "CreateBucketRequest$Bucket": null, "CreateMultipartUploadOutput$Bucket": "Name of the bucket to which the multipart upload was initiated.", "CreateMultipartUploadRequest$Bucket": null, + "DeleteBucketAnalyticsConfigurationRequest$Bucket": "The name of the bucket from which an analytics configuration is deleted.", "DeleteBucketCorsRequest$Bucket": null, + "DeleteBucketInventoryConfigurationRequest$Bucket": "The name of the bucket containing the inventory configuration to delete.", "DeleteBucketLifecycleRequest$Bucket": null, + "DeleteBucketMetricsConfigurationRequest$Bucket": "The name of the bucket containing the metrics configuration to delete.", "DeleteBucketPolicyRequest$Bucket": null, "DeleteBucketReplicationRequest$Bucket": null, "DeleteBucketRequest$Bucket": null, "DeleteBucketTaggingRequest$Bucket": null, "DeleteBucketWebsiteRequest$Bucket": null, "DeleteObjectRequest$Bucket": null, + "DeleteObjectTaggingRequest$Bucket": null, "DeleteObjectsRequest$Bucket": null, "Destination$Bucket": "Amazon resource name (ARN) of the bucket where you want Amazon S3 to store replicas of the object identified by the rule.", "GetBucketAccelerateConfigurationRequest$Bucket": "Name of the bucket for which the accelerate configuration is retrieved.", "GetBucketAclRequest$Bucket": null, + "GetBucketAnalyticsConfigurationRequest$Bucket": "The name of the bucket from which an analytics configuration is retrieved.", "GetBucketCorsRequest$Bucket": null, + "GetBucketInventoryConfigurationRequest$Bucket": "The name of the bucket containing the inventory configuration to retrieve.", "GetBucketLifecycleConfigurationRequest$Bucket": null, "GetBucketLifecycleRequest$Bucket": null, "GetBucketLocationRequest$Bucket": null, "GetBucketLoggingRequest$Bucket": null, + "GetBucketMetricsConfigurationRequest$Bucket": "The name of the bucket containing the metrics configuration to retrieve.", "GetBucketNotificationConfigurationRequest$Bucket": "Name of the bucket to get the notification configuration for.", "GetBucketPolicyRequest$Bucket": null, "GetBucketReplicationRequest$Bucket": null, @@ -251,9 +334,14 @@ "GetBucketWebsiteRequest$Bucket": null, "GetObjectAclRequest$Bucket": null, "GetObjectRequest$Bucket": null, + "GetObjectTaggingRequest$Bucket": null, "GetObjectTorrentRequest$Bucket": null, "HeadBucketRequest$Bucket": null, "HeadObjectRequest$Bucket": null, + "InventoryS3BucketDestination$Bucket": "The Amazon resource name (ARN) of the bucket where inventory results will be published.", + "ListBucketAnalyticsConfigurationsRequest$Bucket": "The name of the bucket from which analytics configurations are retrieved.", + "ListBucketInventoryConfigurationsRequest$Bucket": "The name of the bucket containing the inventory configurations to retrieve.", + "ListBucketMetricsConfigurationsRequest$Bucket": "The name of the bucket containing the metrics configurations to retrieve.", "ListMultipartUploadsOutput$Bucket": "Name of the bucket to which the multipart upload was initiated.", "ListMultipartUploadsRequest$Bucket": null, "ListObjectVersionsOutput$Name": null, @@ -266,10 +354,13 @@ "ListPartsRequest$Bucket": null, "PutBucketAccelerateConfigurationRequest$Bucket": "Name of the bucket for which the accelerate configuration is set.", "PutBucketAclRequest$Bucket": null, + "PutBucketAnalyticsConfigurationRequest$Bucket": "The name of the bucket to which an analytics configuration is stored.", "PutBucketCorsRequest$Bucket": null, + "PutBucketInventoryConfigurationRequest$Bucket": "The name of the bucket where the inventory configuration will be stored.", "PutBucketLifecycleConfigurationRequest$Bucket": null, "PutBucketLifecycleRequest$Bucket": null, "PutBucketLoggingRequest$Bucket": null, + "PutBucketMetricsConfigurationRequest$Bucket": "The name of the bucket for which the metrics configuration is set.", "PutBucketNotificationConfigurationRequest$Bucket": null, "PutBucketNotificationRequest$Bucket": null, "PutBucketPolicyRequest$Bucket": null, @@ -280,6 +371,7 @@ "PutBucketWebsiteRequest$Bucket": null, "PutObjectAclRequest$Bucket": null, "PutObjectRequest$Bucket": "Name of the bucket to which the PUT operation was initiated.", + "PutObjectTaggingRequest$Bucket": null, "RestoreObjectRequest$Bucket": null, "UploadPartCopyRequest$Bucket": null, "UploadPartRequest$Bucket": "Name of the bucket to which the multipart upload was initiated." @@ -455,6 +547,7 @@ "PutBucketWebsiteRequest$ContentMD5": null, "PutObjectAclRequest$ContentMD5": null, "PutObjectRequest$ContentMD5": "The base64-encoded 128-bit MD5 digest of the part data.", + "PutObjectTaggingRequest$ContentMD5": null, "UploadPartRequest$ContentMD5": "The base64-encoded 128-bit MD5 digest of the part data." } }, @@ -626,16 +719,31 @@ "DeleteObjectsRequest$Delete": null } }, + "DeleteBucketAnalyticsConfigurationRequest": { + "base": null, + "refs": { + } + }, "DeleteBucketCorsRequest": { "base": null, "refs": { } }, + "DeleteBucketInventoryConfigurationRequest": { + "base": null, + "refs": { + } + }, "DeleteBucketLifecycleRequest": { "base": null, "refs": { } }, + "DeleteBucketMetricsConfigurationRequest": { + "base": null, + "refs": { + } + }, "DeleteBucketPolicyRequest": { "base": null, "refs": { @@ -698,6 +806,16 @@ "refs": { } }, + "DeleteObjectTaggingOutput": { + "base": null, + "refs": { + } + }, + "DeleteObjectTaggingRequest": { + "base": null, + "refs": { + } + }, "DeleteObjectsOutput": { "base": null, "refs": { @@ -916,6 +1034,16 @@ "refs": { } }, + "GetBucketAnalyticsConfigurationOutput": { + "base": null, + "refs": { + } + }, + "GetBucketAnalyticsConfigurationRequest": { + "base": null, + "refs": { + } + }, "GetBucketCorsOutput": { "base": null, "refs": { @@ -926,6 +1054,16 @@ "refs": { } }, + "GetBucketInventoryConfigurationOutput": { + "base": null, + "refs": { + } + }, + "GetBucketInventoryConfigurationRequest": { + "base": null, + "refs": { + } + }, "GetBucketLifecycleConfigurationOutput": { "base": null, "refs": { @@ -966,6 +1104,16 @@ "refs": { } }, + "GetBucketMetricsConfigurationOutput": { + "base": null, + "refs": { + } + }, + "GetBucketMetricsConfigurationRequest": { + "base": null, + "refs": { + } + }, "GetBucketNotificationConfigurationRequest": { "base": null, "refs": { @@ -1051,6 +1199,16 @@ "refs": { } }, + "GetObjectTaggingOutput": { + "base": null, + "refs": { + } + }, + "GetObjectTaggingRequest": { + "base": null, + "refs": { + } + }, "GetObjectTorrentOutput": { "base": null, "refs": { @@ -1233,6 +1391,89 @@ "MultipartUpload$Initiator": "Identifies who initiated the multipart upload." } }, + "InventoryConfiguration": { + "base": null, + "refs": { + "GetBucketInventoryConfigurationOutput$InventoryConfiguration": "Specifies the inventory configuration.", + "InventoryConfigurationList$member": null, + "PutBucketInventoryConfigurationRequest$InventoryConfiguration": "Specifies the inventory configuration." + } + }, + "InventoryConfigurationList": { + "base": null, + "refs": { + "ListBucketInventoryConfigurationsOutput$InventoryConfigurationList": "The list of inventory configurations for a bucket." + } + }, + "InventoryDestination": { + "base": null, + "refs": { + "InventoryConfiguration$Destination": "Contains information about where to publish the inventory results." + } + }, + "InventoryFilter": { + "base": null, + "refs": { + "InventoryConfiguration$Filter": "Specifies an inventory filter. The inventory only includes objects that meet the filter's criteria." + } + }, + "InventoryFormat": { + "base": null, + "refs": { + "InventoryS3BucketDestination$Format": "Specifies the output format of the inventory results." + } + }, + "InventoryFrequency": { + "base": null, + "refs": { + "InventorySchedule$Frequency": "Specifies how frequently inventory results are produced." + } + }, + "InventoryId": { + "base": null, + "refs": { + "DeleteBucketInventoryConfigurationRequest$Id": "The ID used to identify the inventory configuration.", + "GetBucketInventoryConfigurationRequest$Id": "The ID used to identify the inventory configuration.", + "InventoryConfiguration$Id": "The ID used to identify the inventory configuration.", + "PutBucketInventoryConfigurationRequest$Id": "The ID used to identify the inventory configuration." + } + }, + "InventoryIncludedObjectVersions": { + "base": null, + "refs": { + "InventoryConfiguration$IncludedObjectVersions": "Specifies which object version(s) to included in the inventory results." + } + }, + "InventoryOptionalField": { + "base": null, + "refs": { + "InventoryOptionalFields$member": null + } + }, + "InventoryOptionalFields": { + "base": null, + "refs": { + "InventoryConfiguration$OptionalFields": "Contains the optional fields that are included in the inventory results." + } + }, + "InventoryS3BucketDestination": { + "base": null, + "refs": { + "InventoryDestination$S3BucketDestination": "Contains the bucket name, file format, bucket owner (optional), and prefix (optional) where inventory results are published." + } + }, + "InventorySchedule": { + "base": null, + "refs": { + "InventoryConfiguration$Schedule": "Specifies the schedule for generating inventory results." + } + }, + "IsEnabled": { + "base": null, + "refs": { + "InventoryConfiguration$IsEnabled": "Specifies whether the inventory is enabled or disabled." + } + }, "IsLatest": { "base": null, "refs": { @@ -1243,6 +1484,9 @@ "IsTruncated": { "base": null, "refs": { + "ListBucketAnalyticsConfigurationsOutput$IsTruncated": "Indicates whether the returned list of analytics configurations is complete. A value of true indicates that the list is not complete and the NextContinuationToken will be provided for a subsequent request.", + "ListBucketInventoryConfigurationsOutput$IsTruncated": "Indicates whether the returned list of inventory configurations is truncated in this response. A value of true indicates that the list is truncated.", + "ListBucketMetricsConfigurationsOutput$IsTruncated": "Indicates whether the returned list of metrics configurations is complete. A value of true indicates that the list is not complete and the NextContinuationToken will be provided for a subsequent request.", "ListMultipartUploadsOutput$IsTruncated": "Indicates whether the returned list of multipart uploads is truncated. A value of true indicates that the list was truncated. The list can be truncated if the number of multipart uploads exceeds the limit allowed or specified by max uploads.", "ListObjectVersionsOutput$IsTruncated": "A flag that indicates whether or not Amazon S3 returned all of the results that satisfied the search criteria. If your results were truncated, you can make a follow-up paginated request using the NextKeyMarker and NextVersionIdMarker response parameters as a starting place in another request to return the rest of the results.", "ListObjectsOutput$IsTruncated": "A flag that indicates whether or not Amazon S3 returned all of the results that satisfied the search criteria.", @@ -1321,6 +1565,18 @@ "LifecycleRules$member": null } }, + "LifecycleRuleAndOperator": { + "base": "This is used in a Lifecycle Rule Filter to apply a logical AND to two or more predicates. The Lifecycle Rule will apply to any object matching all of the predicates configured inside the And operator.", + "refs": { + "LifecycleRuleFilter$And": null + } + }, + "LifecycleRuleFilter": { + "base": "The Filter is used to identify objects that a Lifecycle Rule applies to. A Filter must have exactly one of Prefix, Tag, or And specified.", + "refs": { + "LifecycleRule$Filter": null + } + }, "LifecycleRules": { "base": null, "refs": { @@ -1328,6 +1584,36 @@ "GetBucketLifecycleConfigurationOutput$Rules": null } }, + "ListBucketAnalyticsConfigurationsOutput": { + "base": null, + "refs": { + } + }, + "ListBucketAnalyticsConfigurationsRequest": { + "base": null, + "refs": { + } + }, + "ListBucketInventoryConfigurationsOutput": { + "base": null, + "refs": { + } + }, + "ListBucketInventoryConfigurationsRequest": { + "base": null, + "refs": { + } + }, + "ListBucketMetricsConfigurationsOutput": { + "base": null, + "refs": { + } + }, + "ListBucketMetricsConfigurationsRequest": { + "base": null, + "refs": { + } + }, "ListBucketsOutput": { "base": null, "refs": { @@ -1489,6 +1775,41 @@ "Metadata$value": null } }, + "MetricsAndOperator": { + "base": null, + "refs": { + "MetricsFilter$And": "A conjunction (logical AND) of predicates, which is used in evaluating a metrics filter. The operator must have at least two predicates, and an object must match all of the predicates in order for the filter to apply." + } + }, + "MetricsConfiguration": { + "base": null, + "refs": { + "GetBucketMetricsConfigurationOutput$MetricsConfiguration": "Specifies the metrics configuration.", + "MetricsConfigurationList$member": null, + "PutBucketMetricsConfigurationRequest$MetricsConfiguration": "Specifies the metrics configuration." + } + }, + "MetricsConfigurationList": { + "base": null, + "refs": { + "ListBucketMetricsConfigurationsOutput$MetricsConfigurationList": "The list of metrics configurations for a bucket." + } + }, + "MetricsFilter": { + "base": null, + "refs": { + "MetricsConfiguration$Filter": "Specifies a metrics configuration filter. The metrics configuration will only include objects that meet the filter's criteria. A filter must be a prefix, a tag, or a conjunction (MetricsAndOperator)." + } + }, + "MetricsId": { + "base": null, + "refs": { + "DeleteBucketMetricsConfigurationRequest$Id": "The ID used to identify the metrics configuration.", + "GetBucketMetricsConfigurationRequest$Id": "The ID used to identify the metrics configuration.", + "MetricsConfiguration$Id": "The ID used to identify the metrics configuration.", + "PutBucketMetricsConfigurationRequest$Id": "The ID used to identify the metrics configuration." + } + }, "MissingMeta": { "base": null, "refs": { @@ -1543,6 +1864,9 @@ "NextToken": { "base": null, "refs": { + "ListBucketAnalyticsConfigurationsOutput$NextContinuationToken": "NextContinuationToken is sent when isTruncated is true, which indicates that there are more analytics configurations to list. The next request must include this NextContinuationToken. The token is obfuscated and is not a usable value.", + "ListBucketInventoryConfigurationsOutput$NextContinuationToken": "The marker used to continue this inventory configuration listing. Use the NextContinuationToken from this response to continue the listing in a subsequent request. The continuation token is an opaque value that Amazon S3 understands.", + "ListBucketMetricsConfigurationsOutput$NextContinuationToken": "The marker used to continue a metrics configuration listing that has been truncated. Use the NextContinuationToken from a previously truncated list response to continue the listing. The continuation token is an opaque value that Amazon S3 understands.", "ListObjectsV2Output$NextContinuationToken": "NextContinuationToken is sent when isTruncated is true which means there are more keys in the bucket that can be listed. The next list requests to Amazon S3 can be continued with this NextContinuationToken. NextContinuationToken is obfuscated and is not a real key" } }, @@ -1667,11 +1991,13 @@ "CreateMultipartUploadRequest$Key": null, "DeleteMarkerEntry$Key": "The object key.", "DeleteObjectRequest$Key": null, + "DeleteObjectTaggingRequest$Key": null, "DeletedObject$Key": null, "Error$Key": null, "ErrorDocument$Key": "The object key name to use when a 4XX class error occurs.", "GetObjectAclRequest$Key": null, "GetObjectRequest$Key": null, + "GetObjectTaggingRequest$Key": null, "GetObjectTorrentRequest$Key": null, "HeadObjectRequest$Key": null, "ListPartsOutput$Key": "Object key for which the multipart upload was initiated.", @@ -1682,6 +2008,7 @@ "ObjectVersion$Key": "The object key.", "PutObjectAclRequest$Key": null, "PutObjectRequest$Key": "Object key for which the PUT operation was initiated.", + "PutObjectTaggingRequest$Key": null, "RestoreObjectRequest$Key": null, "Tag$Key": "Name of the tag.", "UploadPartCopyRequest$Key": null, @@ -1720,17 +2047,23 @@ "DeleteMarkerEntry$VersionId": "Version ID of an object.", "DeleteObjectOutput$VersionId": "Returns the version ID of the delete marker created as a result of the DELETE operation.", "DeleteObjectRequest$VersionId": "VersionId used to reference a specific version of the object.", + "DeleteObjectTaggingOutput$VersionId": "The versionId of the object the tag-set was removed from.", + "DeleteObjectTaggingRequest$VersionId": "The versionId of the object that the tag-set will be removed from.", "DeletedObject$VersionId": null, "Error$VersionId": null, "GetObjectAclRequest$VersionId": "VersionId used to reference a specific version of the object.", "GetObjectOutput$VersionId": "Version of the object.", "GetObjectRequest$VersionId": "VersionId used to reference a specific version of the object.", + "GetObjectTaggingOutput$VersionId": null, + "GetObjectTaggingRequest$VersionId": null, "HeadObjectOutput$VersionId": "Version of the object.", "HeadObjectRequest$VersionId": "VersionId used to reference a specific version of the object.", "ObjectIdentifier$VersionId": "VersionId for the specific version of the object to delete.", "ObjectVersion$VersionId": "Version ID of an object.", "PutObjectAclRequest$VersionId": "VersionId used to reference a specific version of the object.", "PutObjectOutput$VersionId": "Version of the object.", + "PutObjectTaggingOutput$VersionId": null, + "PutObjectTaggingRequest$VersionId": null, "RestoreObjectRequest$VersionId": null } }, @@ -1820,8 +2153,15 @@ "Prefix": { "base": null, "refs": { + "AnalyticsAndOperator$Prefix": "The prefix to use when evaluating an AND predicate.", + "AnalyticsFilter$Prefix": "The prefix to use when evaluating an analytics filter.", + "AnalyticsS3BucketDestination$Prefix": "The prefix to use when exporting data. The exported data begins with this prefix.", "CommonPrefix$Prefix": null, - "LifecycleRule$Prefix": "Prefix identifying one or more objects to which the rule applies.", + "InventoryFilter$Prefix": "The prefix that an object must have to be included in the inventory results.", + "InventoryS3BucketDestination$Prefix": "The prefix that is prepended to all inventory results.", + "LifecycleRule$Prefix": "Prefix identifying one or more objects to which the rule applies. This is deprecated; use Filter instead.", + "LifecycleRuleAndOperator$Prefix": null, + "LifecycleRuleFilter$Prefix": "Prefix identifying one or more objects to which the rule applies.", "ListMultipartUploadsOutput$Prefix": "When a prefix is provided in the request, this field contains the specified prefix. The result contains only keys starting with the specified prefix.", "ListMultipartUploadsRequest$Prefix": "Lists in-progress uploads only for those keys that begin with the specified prefix.", "ListObjectVersionsOutput$Prefix": null, @@ -1830,6 +2170,8 @@ "ListObjectsRequest$Prefix": "Limits the response to keys that begin with the specified prefix.", "ListObjectsV2Output$Prefix": "Limits the response to keys that begin with the specified prefix.", "ListObjectsV2Request$Prefix": "Limits the response to keys that begin with the specified prefix.", + "MetricsAndOperator$Prefix": "The prefix used when evaluating an AND predicate.", + "MetricsFilter$Prefix": "The prefix used when evaluating a metrics filter.", "ReplicationRule$Prefix": "Object keyname prefix identifying one or more objects to which the rule applies. Maximum prefix length can be up to 1,024 characters. Overlapping prefixes are not supported.", "Rule$Prefix": "Prefix identifying one or more objects to which the rule applies." } @@ -1851,11 +2193,21 @@ "refs": { } }, + "PutBucketAnalyticsConfigurationRequest": { + "base": null, + "refs": { + } + }, "PutBucketCorsRequest": { "base": null, "refs": { } }, + "PutBucketInventoryConfigurationRequest": { + "base": null, + "refs": { + } + }, "PutBucketLifecycleConfigurationRequest": { "base": null, "refs": { @@ -1871,6 +2223,11 @@ "refs": { } }, + "PutBucketMetricsConfigurationRequest": { + "base": null, + "refs": { + } + }, "PutBucketNotificationConfigurationRequest": { "base": null, "refs": { @@ -1931,6 +2288,16 @@ "refs": { } }, + "PutObjectTaggingOutput": { + "base": null, + "refs": { + } + }, + "PutObjectTaggingRequest": { + "base": null, + "refs": { + } + }, "QueueArn": { "base": null, "refs": { @@ -2283,6 +2650,24 @@ "PutObjectRequest$StorageClass": "The type of storage to use for the object. Defaults to 'STANDARD'." } }, + "StorageClassAnalysis": { + "base": null, + "refs": { + "AnalyticsConfiguration$StorageClassAnalysis": "If present, it indicates that data related to access patterns will be collected and made available to analyze the tradeoffs between different storage classes." + } + }, + "StorageClassAnalysisDataExport": { + "base": null, + "refs": { + "StorageClassAnalysis$DataExport": "A container used to describe how data related to the storage class analysis should be exported." + } + }, + "StorageClassAnalysisSchemaVersion": { + "base": null, + "refs": { + "StorageClassAnalysisDataExport$OutputSchemaVersion": "The version of the output schema to use when exporting data. Must be V_1." + } + }, "Suffix": { "base": null, "refs": { @@ -2292,20 +2677,47 @@ "Tag": { "base": null, "refs": { + "AnalyticsFilter$Tag": "The tag to use when evaluating an analytics filter.", + "LifecycleRuleFilter$Tag": "This tag must exist in the object's tag set in order for the rule to apply.", + "MetricsFilter$Tag": "The tag used when evaluating a metrics filter.", "TagSet$member": null } }, + "TagCount": { + "base": null, + "refs": { + "GetObjectOutput$TagCount": "The number of tags, if any, on the object." + } + }, "TagSet": { "base": null, "refs": { + "AnalyticsAndOperator$Tags": "The list of tags to use when evaluating an AND predicate.", "GetBucketTaggingOutput$TagSet": null, + "GetObjectTaggingOutput$TagSet": null, + "LifecycleRuleAndOperator$Tags": "All of these tags must exist in the object's tag set in order for the rule to apply.", + "MetricsAndOperator$Tags": "The list of tags used when evaluating an AND predicate.", "Tagging$TagSet": null } }, "Tagging": { "base": null, "refs": { - "PutBucketTaggingRequest$Tagging": null + "PutBucketTaggingRequest$Tagging": null, + "PutObjectTaggingRequest$Tagging": null + } + }, + "TaggingDirective": { + "base": null, + "refs": { + "CopyObjectRequest$TaggingDirective": "Specifies whether the object tag-set are copied from the source object or replaced with tag-set provided in the request." + } + }, + "TaggingHeader": { + "base": null, + "refs": { + "CopyObjectRequest$Tagging": "The tag-set for the object destination object this value must be used in conjunction with the TaggingDirective. The tag-set must be encoded as URL Query parameters", + "PutObjectRequest$Tagging": "The tag-set for the object. The tag-set must be encoded as URL Query parameters" } }, "TargetBucket": { @@ -2341,6 +2753,12 @@ "Token": { "base": null, "refs": { + "ListBucketAnalyticsConfigurationsOutput$ContinuationToken": "The ContinuationToken that represents where this request began.", + "ListBucketAnalyticsConfigurationsRequest$ContinuationToken": "The ContinuationToken that represents a placeholder from where this request should begin.", + "ListBucketInventoryConfigurationsOutput$ContinuationToken": "If sent in the request, the marker that is used as a starting point for this inventory configuration list response.", + "ListBucketInventoryConfigurationsRequest$ContinuationToken": "The marker used to continue an inventory configuration listing that has been truncated. Use the NextContinuationToken from a previously truncated list response to continue the listing. The continuation token is an opaque value that Amazon S3 understands.", + "ListBucketMetricsConfigurationsOutput$ContinuationToken": "The marker that is used as a starting point for this metrics configuration list response. This value is present if it was sent in the request.", + "ListBucketMetricsConfigurationsRequest$ContinuationToken": "The marker that is used to continue a metrics configuration listing that has been truncated. Use the NextContinuationToken from a previously truncated list response to continue the listing. The continuation token is an opaque value that Amazon S3 understands.", "ListObjectsV2Output$ContinuationToken": "ContinuationToken indicates Amazon S3 that the list is being continued on this bucket with a token. ContinuationToken is obfuscated and is not a real key", "ListObjectsV2Request$ContinuationToken": "ContinuationToken indicates Amazon S3 that the list is being continued on this bucket with a token. ContinuationToken is obfuscated and is not a real key" } diff --git a/service/s3/api.go b/service/s3/api.go index ce0e4bf7ea1..344e12843ff 100644 --- a/service/s3/api.go +++ b/service/s3/api.go @@ -401,6 +401,68 @@ func (c *S3) DeleteBucket(input *DeleteBucketInput) (*DeleteBucketOutput, error) return out, err } +const opDeleteBucketAnalyticsConfiguration = "DeleteBucketAnalyticsConfiguration" + +// DeleteBucketAnalyticsConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the DeleteBucketAnalyticsConfiguration operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See DeleteBucketAnalyticsConfiguration for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the DeleteBucketAnalyticsConfiguration method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the DeleteBucketAnalyticsConfigurationRequest method. +// req, resp := client.DeleteBucketAnalyticsConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +func (c *S3) DeleteBucketAnalyticsConfigurationRequest(input *DeleteBucketAnalyticsConfigurationInput) (req *request.Request, output *DeleteBucketAnalyticsConfigurationOutput) { + op := &request.Operation{ + Name: opDeleteBucketAnalyticsConfiguration, + HTTPMethod: "DELETE", + HTTPPath: "/{Bucket}?analytics", + } + + if input == nil { + input = &DeleteBucketAnalyticsConfigurationInput{} + } + + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + output = &DeleteBucketAnalyticsConfigurationOutput{} + req.Data = output + return +} + +// DeleteBucketAnalyticsConfiguration API operation for Amazon Simple Storage Service. +// +// Deletes an analytics configuration for the bucket (specified by the analytics +// configuration ID). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Simple Storage Service's +// API operation DeleteBucketAnalyticsConfiguration for usage and error information. +func (c *S3) DeleteBucketAnalyticsConfiguration(input *DeleteBucketAnalyticsConfigurationInput) (*DeleteBucketAnalyticsConfigurationOutput, error) { + req, out := c.DeleteBucketAnalyticsConfigurationRequest(input) + err := req.Send() + return out, err +} + const opDeleteBucketCors = "DeleteBucketCors" // DeleteBucketCorsRequest generates a "aws/request.Request" representing the @@ -462,6 +524,68 @@ func (c *S3) DeleteBucketCors(input *DeleteBucketCorsInput) (*DeleteBucketCorsOu return out, err } +const opDeleteBucketInventoryConfiguration = "DeleteBucketInventoryConfiguration" + +// DeleteBucketInventoryConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the DeleteBucketInventoryConfiguration operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See DeleteBucketInventoryConfiguration for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the DeleteBucketInventoryConfiguration method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the DeleteBucketInventoryConfigurationRequest method. +// req, resp := client.DeleteBucketInventoryConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +func (c *S3) DeleteBucketInventoryConfigurationRequest(input *DeleteBucketInventoryConfigurationInput) (req *request.Request, output *DeleteBucketInventoryConfigurationOutput) { + op := &request.Operation{ + Name: opDeleteBucketInventoryConfiguration, + HTTPMethod: "DELETE", + HTTPPath: "/{Bucket}?inventory", + } + + if input == nil { + input = &DeleteBucketInventoryConfigurationInput{} + } + + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + output = &DeleteBucketInventoryConfigurationOutput{} + req.Data = output + return +} + +// DeleteBucketInventoryConfiguration API operation for Amazon Simple Storage Service. +// +// Deletes an inventory configuration (identified by the inventory ID) from +// the bucket. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Simple Storage Service's +// API operation DeleteBucketInventoryConfiguration for usage and error information. +func (c *S3) DeleteBucketInventoryConfiguration(input *DeleteBucketInventoryConfigurationInput) (*DeleteBucketInventoryConfigurationOutput, error) { + req, out := c.DeleteBucketInventoryConfigurationRequest(input) + err := req.Send() + return out, err +} + const opDeleteBucketLifecycle = "DeleteBucketLifecycle" // DeleteBucketLifecycleRequest generates a "aws/request.Request" representing the @@ -523,6 +647,68 @@ func (c *S3) DeleteBucketLifecycle(input *DeleteBucketLifecycleInput) (*DeleteBu return out, err } +const opDeleteBucketMetricsConfiguration = "DeleteBucketMetricsConfiguration" + +// DeleteBucketMetricsConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the DeleteBucketMetricsConfiguration operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See DeleteBucketMetricsConfiguration for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the DeleteBucketMetricsConfiguration method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the DeleteBucketMetricsConfigurationRequest method. +// req, resp := client.DeleteBucketMetricsConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +func (c *S3) DeleteBucketMetricsConfigurationRequest(input *DeleteBucketMetricsConfigurationInput) (req *request.Request, output *DeleteBucketMetricsConfigurationOutput) { + op := &request.Operation{ + Name: opDeleteBucketMetricsConfiguration, + HTTPMethod: "DELETE", + HTTPPath: "/{Bucket}?metrics", + } + + if input == nil { + input = &DeleteBucketMetricsConfigurationInput{} + } + + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + output = &DeleteBucketMetricsConfigurationOutput{} + req.Data = output + return +} + +// DeleteBucketMetricsConfiguration API operation for Amazon Simple Storage Service. +// +// Deletes a metrics configuration (specified by the metrics configuration ID) +// from the bucket. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Simple Storage Service's +// API operation DeleteBucketMetricsConfiguration for usage and error information. +func (c *S3) DeleteBucketMetricsConfiguration(input *DeleteBucketMetricsConfigurationInput) (*DeleteBucketMetricsConfigurationOutput, error) { + req, out := c.DeleteBucketMetricsConfigurationRequest(input) + err := req.Send() + return out, err +} + const opDeleteBucketPolicy = "DeleteBucketPolicy" // DeleteBucketPolicyRequest generates a "aws/request.Request" representing the @@ -828,6 +1014,65 @@ func (c *S3) DeleteObject(input *DeleteObjectInput) (*DeleteObjectOutput, error) return out, err } +const opDeleteObjectTagging = "DeleteObjectTagging" + +// DeleteObjectTaggingRequest generates a "aws/request.Request" representing the +// client's request for the DeleteObjectTagging operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See DeleteObjectTagging for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the DeleteObjectTagging method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the DeleteObjectTaggingRequest method. +// req, resp := client.DeleteObjectTaggingRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +func (c *S3) DeleteObjectTaggingRequest(input *DeleteObjectTaggingInput) (req *request.Request, output *DeleteObjectTaggingOutput) { + op := &request.Operation{ + Name: opDeleteObjectTagging, + HTTPMethod: "DELETE", + HTTPPath: "/{Bucket}/{Key+}?tagging", + } + + if input == nil { + input = &DeleteObjectTaggingInput{} + } + + req = c.newRequest(op, input, output) + output = &DeleteObjectTaggingOutput{} + req.Data = output + return +} + +// DeleteObjectTagging API operation for Amazon Simple Storage Service. +// +// Removes the tag-set from an existing object. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Simple Storage Service's +// API operation DeleteObjectTagging for usage and error information. +func (c *S3) DeleteObjectTagging(input *DeleteObjectTaggingInput) (*DeleteObjectTaggingOutput, error) { + req, out := c.DeleteObjectTaggingRequest(input) + err := req.Send() + return out, err +} + const opDeleteObjects = "DeleteObjects" // DeleteObjectsRequest generates a "aws/request.Request" representing the @@ -1006,205 +1251,325 @@ func (c *S3) GetBucketAcl(input *GetBucketAclInput) (*GetBucketAclOutput, error) return out, err } -const opGetBucketCors = "GetBucketCors" +const opGetBucketAnalyticsConfiguration = "GetBucketAnalyticsConfiguration" -// GetBucketCorsRequest generates a "aws/request.Request" representing the -// client's request for the GetBucketCors operation. The "output" return +// GetBucketAnalyticsConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the GetBucketAnalyticsConfiguration operation. The "output" return // value can be used to capture response data after the request's "Send" method // is called. // -// See GetBucketCors for usage and error information. +// See GetBucketAnalyticsConfiguration for usage and error information. // // Creating a request object using this method should be used when you want to inject // custom logic into the request's lifecycle using a custom handler, or if you want to // access properties on the request object before or after sending the request. If -// you just want the service response, call the GetBucketCors method directly +// you just want the service response, call the GetBucketAnalyticsConfiguration method directly // instead. // // Note: You must call the "Send" method on the returned request object in order // to execute the request. // -// // Example sending a request using the GetBucketCorsRequest method. -// req, resp := client.GetBucketCorsRequest(params) +// // Example sending a request using the GetBucketAnalyticsConfigurationRequest method. +// req, resp := client.GetBucketAnalyticsConfigurationRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -func (c *S3) GetBucketCorsRequest(input *GetBucketCorsInput) (req *request.Request, output *GetBucketCorsOutput) { +func (c *S3) GetBucketAnalyticsConfigurationRequest(input *GetBucketAnalyticsConfigurationInput) (req *request.Request, output *GetBucketAnalyticsConfigurationOutput) { op := &request.Operation{ - Name: opGetBucketCors, + Name: opGetBucketAnalyticsConfiguration, HTTPMethod: "GET", - HTTPPath: "/{Bucket}?cors", + HTTPPath: "/{Bucket}?analytics", } if input == nil { - input = &GetBucketCorsInput{} + input = &GetBucketAnalyticsConfigurationInput{} } req = c.newRequest(op, input, output) - output = &GetBucketCorsOutput{} + output = &GetBucketAnalyticsConfigurationOutput{} req.Data = output return } -// GetBucketCors API operation for Amazon Simple Storage Service. +// GetBucketAnalyticsConfiguration API operation for Amazon Simple Storage Service. // -// Returns the cors configuration for the bucket. +// Gets an analytics configuration for the bucket (specified by the analytics +// configuration ID). // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Amazon Simple Storage Service's -// API operation GetBucketCors for usage and error information. -func (c *S3) GetBucketCors(input *GetBucketCorsInput) (*GetBucketCorsOutput, error) { - req, out := c.GetBucketCorsRequest(input) +// API operation GetBucketAnalyticsConfiguration for usage and error information. +func (c *S3) GetBucketAnalyticsConfiguration(input *GetBucketAnalyticsConfigurationInput) (*GetBucketAnalyticsConfigurationOutput, error) { + req, out := c.GetBucketAnalyticsConfigurationRequest(input) err := req.Send() return out, err } -const opGetBucketLifecycle = "GetBucketLifecycle" +const opGetBucketCors = "GetBucketCors" -// GetBucketLifecycleRequest generates a "aws/request.Request" representing the -// client's request for the GetBucketLifecycle operation. The "output" return +// GetBucketCorsRequest generates a "aws/request.Request" representing the +// client's request for the GetBucketCors operation. The "output" return // value can be used to capture response data after the request's "Send" method // is called. // -// See GetBucketLifecycle for usage and error information. +// See GetBucketCors for usage and error information. // // Creating a request object using this method should be used when you want to inject // custom logic into the request's lifecycle using a custom handler, or if you want to // access properties on the request object before or after sending the request. If -// you just want the service response, call the GetBucketLifecycle method directly +// you just want the service response, call the GetBucketCors method directly // instead. // // Note: You must call the "Send" method on the returned request object in order // to execute the request. // -// // Example sending a request using the GetBucketLifecycleRequest method. -// req, resp := client.GetBucketLifecycleRequest(params) +// // Example sending a request using the GetBucketCorsRequest method. +// req, resp := client.GetBucketCorsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -func (c *S3) GetBucketLifecycleRequest(input *GetBucketLifecycleInput) (req *request.Request, output *GetBucketLifecycleOutput) { - if c.Client.Config.Logger != nil { - c.Client.Config.Logger.Log("This operation, GetBucketLifecycle, has been deprecated") - } +func (c *S3) GetBucketCorsRequest(input *GetBucketCorsInput) (req *request.Request, output *GetBucketCorsOutput) { op := &request.Operation{ - Name: opGetBucketLifecycle, + Name: opGetBucketCors, HTTPMethod: "GET", - HTTPPath: "/{Bucket}?lifecycle", + HTTPPath: "/{Bucket}?cors", } if input == nil { - input = &GetBucketLifecycleInput{} + input = &GetBucketCorsInput{} } req = c.newRequest(op, input, output) - output = &GetBucketLifecycleOutput{} + output = &GetBucketCorsOutput{} req.Data = output return } -// GetBucketLifecycle API operation for Amazon Simple Storage Service. +// GetBucketCors API operation for Amazon Simple Storage Service. // -// Deprecated, see the GetBucketLifecycleConfiguration operation. +// Returns the cors configuration for the bucket. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Amazon Simple Storage Service's -// API operation GetBucketLifecycle for usage and error information. -func (c *S3) GetBucketLifecycle(input *GetBucketLifecycleInput) (*GetBucketLifecycleOutput, error) { - req, out := c.GetBucketLifecycleRequest(input) +// API operation GetBucketCors for usage and error information. +func (c *S3) GetBucketCors(input *GetBucketCorsInput) (*GetBucketCorsOutput, error) { + req, out := c.GetBucketCorsRequest(input) err := req.Send() return out, err } -const opGetBucketLifecycleConfiguration = "GetBucketLifecycleConfiguration" +const opGetBucketInventoryConfiguration = "GetBucketInventoryConfiguration" -// GetBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the -// client's request for the GetBucketLifecycleConfiguration operation. The "output" return +// GetBucketInventoryConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the GetBucketInventoryConfiguration operation. The "output" return // value can be used to capture response data after the request's "Send" method // is called. // -// See GetBucketLifecycleConfiguration for usage and error information. +// See GetBucketInventoryConfiguration for usage and error information. // // Creating a request object using this method should be used when you want to inject // custom logic into the request's lifecycle using a custom handler, or if you want to // access properties on the request object before or after sending the request. If -// you just want the service response, call the GetBucketLifecycleConfiguration method directly +// you just want the service response, call the GetBucketInventoryConfiguration method directly // instead. // // Note: You must call the "Send" method on the returned request object in order // to execute the request. // -// // Example sending a request using the GetBucketLifecycleConfigurationRequest method. -// req, resp := client.GetBucketLifecycleConfigurationRequest(params) +// // Example sending a request using the GetBucketInventoryConfigurationRequest method. +// req, resp := client.GetBucketInventoryConfigurationRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -func (c *S3) GetBucketLifecycleConfigurationRequest(input *GetBucketLifecycleConfigurationInput) (req *request.Request, output *GetBucketLifecycleConfigurationOutput) { +func (c *S3) GetBucketInventoryConfigurationRequest(input *GetBucketInventoryConfigurationInput) (req *request.Request, output *GetBucketInventoryConfigurationOutput) { op := &request.Operation{ - Name: opGetBucketLifecycleConfiguration, + Name: opGetBucketInventoryConfiguration, HTTPMethod: "GET", - HTTPPath: "/{Bucket}?lifecycle", + HTTPPath: "/{Bucket}?inventory", } if input == nil { - input = &GetBucketLifecycleConfigurationInput{} + input = &GetBucketInventoryConfigurationInput{} } req = c.newRequest(op, input, output) - output = &GetBucketLifecycleConfigurationOutput{} + output = &GetBucketInventoryConfigurationOutput{} req.Data = output return } -// GetBucketLifecycleConfiguration API operation for Amazon Simple Storage Service. +// GetBucketInventoryConfiguration API operation for Amazon Simple Storage Service. // -// Returns the lifecycle configuration information set on the bucket. +// Returns an inventory configuration (identified by the inventory ID) from +// the bucket. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Amazon Simple Storage Service's -// API operation GetBucketLifecycleConfiguration for usage and error information. -func (c *S3) GetBucketLifecycleConfiguration(input *GetBucketLifecycleConfigurationInput) (*GetBucketLifecycleConfigurationOutput, error) { - req, out := c.GetBucketLifecycleConfigurationRequest(input) +// API operation GetBucketInventoryConfiguration for usage and error information. +func (c *S3) GetBucketInventoryConfiguration(input *GetBucketInventoryConfigurationInput) (*GetBucketInventoryConfigurationOutput, error) { + req, out := c.GetBucketInventoryConfigurationRequest(input) err := req.Send() return out, err } -const opGetBucketLocation = "GetBucketLocation" +const opGetBucketLifecycle = "GetBucketLifecycle" -// GetBucketLocationRequest generates a "aws/request.Request" representing the -// client's request for the GetBucketLocation operation. The "output" return +// GetBucketLifecycleRequest generates a "aws/request.Request" representing the +// client's request for the GetBucketLifecycle operation. The "output" return // value can be used to capture response data after the request's "Send" method // is called. // -// See GetBucketLocation for usage and error information. +// See GetBucketLifecycle for usage and error information. // // Creating a request object using this method should be used when you want to inject // custom logic into the request's lifecycle using a custom handler, or if you want to // access properties on the request object before or after sending the request. If -// you just want the service response, call the GetBucketLocation method directly +// you just want the service response, call the GetBucketLifecycle method directly // instead. // // Note: You must call the "Send" method on the returned request object in order // to execute the request. // -// // Example sending a request using the GetBucketLocationRequest method. +// // Example sending a request using the GetBucketLifecycleRequest method. +// req, resp := client.GetBucketLifecycleRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +func (c *S3) GetBucketLifecycleRequest(input *GetBucketLifecycleInput) (req *request.Request, output *GetBucketLifecycleOutput) { + if c.Client.Config.Logger != nil { + c.Client.Config.Logger.Log("This operation, GetBucketLifecycle, has been deprecated") + } + op := &request.Operation{ + Name: opGetBucketLifecycle, + HTTPMethod: "GET", + HTTPPath: "/{Bucket}?lifecycle", + } + + if input == nil { + input = &GetBucketLifecycleInput{} + } + + req = c.newRequest(op, input, output) + output = &GetBucketLifecycleOutput{} + req.Data = output + return +} + +// GetBucketLifecycle API operation for Amazon Simple Storage Service. +// +// Deprecated, see the GetBucketLifecycleConfiguration operation. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Simple Storage Service's +// API operation GetBucketLifecycle for usage and error information. +func (c *S3) GetBucketLifecycle(input *GetBucketLifecycleInput) (*GetBucketLifecycleOutput, error) { + req, out := c.GetBucketLifecycleRequest(input) + err := req.Send() + return out, err +} + +const opGetBucketLifecycleConfiguration = "GetBucketLifecycleConfiguration" + +// GetBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the GetBucketLifecycleConfiguration operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See GetBucketLifecycleConfiguration for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the GetBucketLifecycleConfiguration method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the GetBucketLifecycleConfigurationRequest method. +// req, resp := client.GetBucketLifecycleConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +func (c *S3) GetBucketLifecycleConfigurationRequest(input *GetBucketLifecycleConfigurationInput) (req *request.Request, output *GetBucketLifecycleConfigurationOutput) { + op := &request.Operation{ + Name: opGetBucketLifecycleConfiguration, + HTTPMethod: "GET", + HTTPPath: "/{Bucket}?lifecycle", + } + + if input == nil { + input = &GetBucketLifecycleConfigurationInput{} + } + + req = c.newRequest(op, input, output) + output = &GetBucketLifecycleConfigurationOutput{} + req.Data = output + return +} + +// GetBucketLifecycleConfiguration API operation for Amazon Simple Storage Service. +// +// Returns the lifecycle configuration information set on the bucket. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Simple Storage Service's +// API operation GetBucketLifecycleConfiguration for usage and error information. +func (c *S3) GetBucketLifecycleConfiguration(input *GetBucketLifecycleConfigurationInput) (*GetBucketLifecycleConfigurationOutput, error) { + req, out := c.GetBucketLifecycleConfigurationRequest(input) + err := req.Send() + return out, err +} + +const opGetBucketLocation = "GetBucketLocation" + +// GetBucketLocationRequest generates a "aws/request.Request" representing the +// client's request for the GetBucketLocation operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See GetBucketLocation for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the GetBucketLocation method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the GetBucketLocationRequest method. // req, resp := client.GetBucketLocationRequest(params) // // err := req.Send() @@ -1305,6 +1670,66 @@ func (c *S3) GetBucketLogging(input *GetBucketLoggingInput) (*GetBucketLoggingOu return out, err } +const opGetBucketMetricsConfiguration = "GetBucketMetricsConfiguration" + +// GetBucketMetricsConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the GetBucketMetricsConfiguration operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See GetBucketMetricsConfiguration for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the GetBucketMetricsConfiguration method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the GetBucketMetricsConfigurationRequest method. +// req, resp := client.GetBucketMetricsConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +func (c *S3) GetBucketMetricsConfigurationRequest(input *GetBucketMetricsConfigurationInput) (req *request.Request, output *GetBucketMetricsConfigurationOutput) { + op := &request.Operation{ + Name: opGetBucketMetricsConfiguration, + HTTPMethod: "GET", + HTTPPath: "/{Bucket}?metrics", + } + + if input == nil { + input = &GetBucketMetricsConfigurationInput{} + } + + req = c.newRequest(op, input, output) + output = &GetBucketMetricsConfigurationOutput{} + req.Data = output + return +} + +// GetBucketMetricsConfiguration API operation for Amazon Simple Storage Service. +// +// Gets a metrics configuration (specified by the metrics configuration ID) +// from the bucket. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Simple Storage Service's +// API operation GetBucketMetricsConfiguration for usage and error information. +func (c *S3) GetBucketMetricsConfiguration(input *GetBucketMetricsConfigurationInput) (*GetBucketMetricsConfigurationOutput, error) { + req, out := c.GetBucketMetricsConfigurationRequest(input) + err := req.Send() + return out, err +} + const opGetBucketNotification = "GetBucketNotification" // GetBucketNotificationRequest generates a "aws/request.Request" representing the @@ -1908,6 +2333,65 @@ func (c *S3) GetObjectAcl(input *GetObjectAclInput) (*GetObjectAclOutput, error) return out, err } +const opGetObjectTagging = "GetObjectTagging" + +// GetObjectTaggingRequest generates a "aws/request.Request" representing the +// client's request for the GetObjectTagging operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See GetObjectTagging for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the GetObjectTagging method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the GetObjectTaggingRequest method. +// req, resp := client.GetObjectTaggingRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +func (c *S3) GetObjectTaggingRequest(input *GetObjectTaggingInput) (req *request.Request, output *GetObjectTaggingOutput) { + op := &request.Operation{ + Name: opGetObjectTagging, + HTTPMethod: "GET", + HTTPPath: "/{Bucket}/{Key+}?tagging", + } + + if input == nil { + input = &GetObjectTaggingInput{} + } + + req = c.newRequest(op, input, output) + output = &GetObjectTaggingOutput{} + req.Data = output + return +} + +// GetObjectTagging API operation for Amazon Simple Storage Service. +// +// Returns the tag-set of an object. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Simple Storage Service's +// API operation GetObjectTagging for usage and error information. +func (c *S3) GetObjectTagging(input *GetObjectTaggingInput) (*GetObjectTaggingOutput, error) { + req, out := c.GetObjectTaggingRequest(input) + err := req.Send() + return out, err +} + const opGetObjectTorrent = "GetObjectTorrent" // GetObjectTorrentRequest generates a "aws/request.Request" representing the @@ -2100,139 +2584,316 @@ func (c *S3) HeadObject(input *HeadObjectInput) (*HeadObjectOutput, error) { return out, err } -const opListBuckets = "ListBuckets" +const opListBucketAnalyticsConfigurations = "ListBucketAnalyticsConfigurations" -// ListBucketsRequest generates a "aws/request.Request" representing the -// client's request for the ListBuckets operation. The "output" return +// ListBucketAnalyticsConfigurationsRequest generates a "aws/request.Request" representing the +// client's request for the ListBucketAnalyticsConfigurations operation. The "output" return // value can be used to capture response data after the request's "Send" method // is called. // -// See ListBuckets for usage and error information. +// See ListBucketAnalyticsConfigurations for usage and error information. // // Creating a request object using this method should be used when you want to inject // custom logic into the request's lifecycle using a custom handler, or if you want to // access properties on the request object before or after sending the request. If -// you just want the service response, call the ListBuckets method directly +// you just want the service response, call the ListBucketAnalyticsConfigurations method directly // instead. // // Note: You must call the "Send" method on the returned request object in order // to execute the request. // -// // Example sending a request using the ListBucketsRequest method. -// req, resp := client.ListBucketsRequest(params) +// // Example sending a request using the ListBucketAnalyticsConfigurationsRequest method. +// req, resp := client.ListBucketAnalyticsConfigurationsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -func (c *S3) ListBucketsRequest(input *ListBucketsInput) (req *request.Request, output *ListBucketsOutput) { +func (c *S3) ListBucketAnalyticsConfigurationsRequest(input *ListBucketAnalyticsConfigurationsInput) (req *request.Request, output *ListBucketAnalyticsConfigurationsOutput) { op := &request.Operation{ - Name: opListBuckets, + Name: opListBucketAnalyticsConfigurations, HTTPMethod: "GET", - HTTPPath: "/", + HTTPPath: "/{Bucket}?analytics", } if input == nil { - input = &ListBucketsInput{} + input = &ListBucketAnalyticsConfigurationsInput{} } req = c.newRequest(op, input, output) - output = &ListBucketsOutput{} + output = &ListBucketAnalyticsConfigurationsOutput{} req.Data = output return } -// ListBuckets API operation for Amazon Simple Storage Service. +// ListBucketAnalyticsConfigurations API operation for Amazon Simple Storage Service. // -// Returns a list of all buckets owned by the authenticated sender of the request. +// Lists the analytics configurations for the bucket. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Amazon Simple Storage Service's -// API operation ListBuckets for usage and error information. -func (c *S3) ListBuckets(input *ListBucketsInput) (*ListBucketsOutput, error) { - req, out := c.ListBucketsRequest(input) +// API operation ListBucketAnalyticsConfigurations for usage and error information. +func (c *S3) ListBucketAnalyticsConfigurations(input *ListBucketAnalyticsConfigurationsInput) (*ListBucketAnalyticsConfigurationsOutput, error) { + req, out := c.ListBucketAnalyticsConfigurationsRequest(input) err := req.Send() return out, err } -const opListMultipartUploads = "ListMultipartUploads" +const opListBucketInventoryConfigurations = "ListBucketInventoryConfigurations" -// ListMultipartUploadsRequest generates a "aws/request.Request" representing the -// client's request for the ListMultipartUploads operation. The "output" return +// ListBucketInventoryConfigurationsRequest generates a "aws/request.Request" representing the +// client's request for the ListBucketInventoryConfigurations operation. The "output" return // value can be used to capture response data after the request's "Send" method // is called. // -// See ListMultipartUploads for usage and error information. +// See ListBucketInventoryConfigurations for usage and error information. // // Creating a request object using this method should be used when you want to inject // custom logic into the request's lifecycle using a custom handler, or if you want to // access properties on the request object before or after sending the request. If -// you just want the service response, call the ListMultipartUploads method directly +// you just want the service response, call the ListBucketInventoryConfigurations method directly // instead. // // Note: You must call the "Send" method on the returned request object in order // to execute the request. // -// // Example sending a request using the ListMultipartUploadsRequest method. -// req, resp := client.ListMultipartUploadsRequest(params) +// // Example sending a request using the ListBucketInventoryConfigurationsRequest method. +// req, resp := client.ListBucketInventoryConfigurationsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -func (c *S3) ListMultipartUploadsRequest(input *ListMultipartUploadsInput) (req *request.Request, output *ListMultipartUploadsOutput) { +func (c *S3) ListBucketInventoryConfigurationsRequest(input *ListBucketInventoryConfigurationsInput) (req *request.Request, output *ListBucketInventoryConfigurationsOutput) { op := &request.Operation{ - Name: opListMultipartUploads, + Name: opListBucketInventoryConfigurations, HTTPMethod: "GET", - HTTPPath: "/{Bucket}?uploads", - Paginator: &request.Paginator{ - InputTokens: []string{"KeyMarker", "UploadIdMarker"}, - OutputTokens: []string{"NextKeyMarker", "NextUploadIdMarker"}, - LimitToken: "MaxUploads", - TruncationToken: "IsTruncated", - }, + HTTPPath: "/{Bucket}?inventory", } if input == nil { - input = &ListMultipartUploadsInput{} + input = &ListBucketInventoryConfigurationsInput{} } req = c.newRequest(op, input, output) - output = &ListMultipartUploadsOutput{} + output = &ListBucketInventoryConfigurationsOutput{} req.Data = output return } -// ListMultipartUploads API operation for Amazon Simple Storage Service. +// ListBucketInventoryConfigurations API operation for Amazon Simple Storage Service. // -// This operation lists in-progress multipart uploads. +// Returns a list of inventory configurations for the bucket. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Amazon Simple Storage Service's -// API operation ListMultipartUploads for usage and error information. -func (c *S3) ListMultipartUploads(input *ListMultipartUploadsInput) (*ListMultipartUploadsOutput, error) { - req, out := c.ListMultipartUploadsRequest(input) +// API operation ListBucketInventoryConfigurations for usage and error information. +func (c *S3) ListBucketInventoryConfigurations(input *ListBucketInventoryConfigurationsInput) (*ListBucketInventoryConfigurationsOutput, error) { + req, out := c.ListBucketInventoryConfigurationsRequest(input) err := req.Send() return out, err } -// ListMultipartUploadsPages iterates over the pages of a ListMultipartUploads operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See ListMultipartUploads method for more information on how to use this operation. +const opListBucketMetricsConfigurations = "ListBucketMetricsConfigurations" + +// ListBucketMetricsConfigurationsRequest generates a "aws/request.Request" representing the +// client's request for the ListBucketMetricsConfigurations operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. // -// Note: This operation can generate multiple requests to a service. +// See ListBucketMetricsConfigurations for usage and error information. // -// // Example iterating over at most 3 pages of a ListMultipartUploads operation. +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the ListBucketMetricsConfigurations method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the ListBucketMetricsConfigurationsRequest method. +// req, resp := client.ListBucketMetricsConfigurationsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +func (c *S3) ListBucketMetricsConfigurationsRequest(input *ListBucketMetricsConfigurationsInput) (req *request.Request, output *ListBucketMetricsConfigurationsOutput) { + op := &request.Operation{ + Name: opListBucketMetricsConfigurations, + HTTPMethod: "GET", + HTTPPath: "/{Bucket}?metrics", + } + + if input == nil { + input = &ListBucketMetricsConfigurationsInput{} + } + + req = c.newRequest(op, input, output) + output = &ListBucketMetricsConfigurationsOutput{} + req.Data = output + return +} + +// ListBucketMetricsConfigurations API operation for Amazon Simple Storage Service. +// +// Lists the metrics configurations for the bucket. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Simple Storage Service's +// API operation ListBucketMetricsConfigurations for usage and error information. +func (c *S3) ListBucketMetricsConfigurations(input *ListBucketMetricsConfigurationsInput) (*ListBucketMetricsConfigurationsOutput, error) { + req, out := c.ListBucketMetricsConfigurationsRequest(input) + err := req.Send() + return out, err +} + +const opListBuckets = "ListBuckets" + +// ListBucketsRequest generates a "aws/request.Request" representing the +// client's request for the ListBuckets operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See ListBuckets for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the ListBuckets method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the ListBucketsRequest method. +// req, resp := client.ListBucketsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +func (c *S3) ListBucketsRequest(input *ListBucketsInput) (req *request.Request, output *ListBucketsOutput) { + op := &request.Operation{ + Name: opListBuckets, + HTTPMethod: "GET", + HTTPPath: "/", + } + + if input == nil { + input = &ListBucketsInput{} + } + + req = c.newRequest(op, input, output) + output = &ListBucketsOutput{} + req.Data = output + return +} + +// ListBuckets API operation for Amazon Simple Storage Service. +// +// Returns a list of all buckets owned by the authenticated sender of the request. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Simple Storage Service's +// API operation ListBuckets for usage and error information. +func (c *S3) ListBuckets(input *ListBucketsInput) (*ListBucketsOutput, error) { + req, out := c.ListBucketsRequest(input) + err := req.Send() + return out, err +} + +const opListMultipartUploads = "ListMultipartUploads" + +// ListMultipartUploadsRequest generates a "aws/request.Request" representing the +// client's request for the ListMultipartUploads operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See ListMultipartUploads for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the ListMultipartUploads method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the ListMultipartUploadsRequest method. +// req, resp := client.ListMultipartUploadsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +func (c *S3) ListMultipartUploadsRequest(input *ListMultipartUploadsInput) (req *request.Request, output *ListMultipartUploadsOutput) { + op := &request.Operation{ + Name: opListMultipartUploads, + HTTPMethod: "GET", + HTTPPath: "/{Bucket}?uploads", + Paginator: &request.Paginator{ + InputTokens: []string{"KeyMarker", "UploadIdMarker"}, + OutputTokens: []string{"NextKeyMarker", "NextUploadIdMarker"}, + LimitToken: "MaxUploads", + TruncationToken: "IsTruncated", + }, + } + + if input == nil { + input = &ListMultipartUploadsInput{} + } + + req = c.newRequest(op, input, output) + output = &ListMultipartUploadsOutput{} + req.Data = output + return +} + +// ListMultipartUploads API operation for Amazon Simple Storage Service. +// +// This operation lists in-progress multipart uploads. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Simple Storage Service's +// API operation ListMultipartUploads for usage and error information. +func (c *S3) ListMultipartUploads(input *ListMultipartUploadsInput) (*ListMultipartUploadsOutput, error) { + req, out := c.ListMultipartUploadsRequest(input) + err := req.Send() + return out, err +} + +// ListMultipartUploadsPages iterates over the pages of a ListMultipartUploads operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListMultipartUploads method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a ListMultipartUploads operation. // pageNum := 0 // err := client.ListMultipartUploadsPages(params, // func(page *ListMultipartUploadsOutput, lastPage bool) bool { @@ -2746,213 +3407,337 @@ func (c *S3) PutBucketAcl(input *PutBucketAclInput) (*PutBucketAclOutput, error) return out, err } -const opPutBucketCors = "PutBucketCors" +const opPutBucketAnalyticsConfiguration = "PutBucketAnalyticsConfiguration" -// PutBucketCorsRequest generates a "aws/request.Request" representing the -// client's request for the PutBucketCors operation. The "output" return +// PutBucketAnalyticsConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the PutBucketAnalyticsConfiguration operation. The "output" return // value can be used to capture response data after the request's "Send" method // is called. // -// See PutBucketCors for usage and error information. +// See PutBucketAnalyticsConfiguration for usage and error information. // // Creating a request object using this method should be used when you want to inject // custom logic into the request's lifecycle using a custom handler, or if you want to // access properties on the request object before or after sending the request. If -// you just want the service response, call the PutBucketCors method directly +// you just want the service response, call the PutBucketAnalyticsConfiguration method directly // instead. // // Note: You must call the "Send" method on the returned request object in order // to execute the request. // -// // Example sending a request using the PutBucketCorsRequest method. -// req, resp := client.PutBucketCorsRequest(params) +// // Example sending a request using the PutBucketAnalyticsConfigurationRequest method. +// req, resp := client.PutBucketAnalyticsConfigurationRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -func (c *S3) PutBucketCorsRequest(input *PutBucketCorsInput) (req *request.Request, output *PutBucketCorsOutput) { +func (c *S3) PutBucketAnalyticsConfigurationRequest(input *PutBucketAnalyticsConfigurationInput) (req *request.Request, output *PutBucketAnalyticsConfigurationOutput) { op := &request.Operation{ - Name: opPutBucketCors, + Name: opPutBucketAnalyticsConfiguration, HTTPMethod: "PUT", - HTTPPath: "/{Bucket}?cors", + HTTPPath: "/{Bucket}?analytics", } if input == nil { - input = &PutBucketCorsInput{} + input = &PutBucketAnalyticsConfigurationInput{} } req = c.newRequest(op, input, output) req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) - output = &PutBucketCorsOutput{} + output = &PutBucketAnalyticsConfigurationOutput{} req.Data = output return } -// PutBucketCors API operation for Amazon Simple Storage Service. +// PutBucketAnalyticsConfiguration API operation for Amazon Simple Storage Service. // -// Sets the cors configuration for a bucket. +// Sets an analytics configuration for the bucket (specified by the analytics +// configuration ID). // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Amazon Simple Storage Service's -// API operation PutBucketCors for usage and error information. -func (c *S3) PutBucketCors(input *PutBucketCorsInput) (*PutBucketCorsOutput, error) { - req, out := c.PutBucketCorsRequest(input) +// API operation PutBucketAnalyticsConfiguration for usage and error information. +func (c *S3) PutBucketAnalyticsConfiguration(input *PutBucketAnalyticsConfigurationInput) (*PutBucketAnalyticsConfigurationOutput, error) { + req, out := c.PutBucketAnalyticsConfigurationRequest(input) err := req.Send() return out, err } -const opPutBucketLifecycle = "PutBucketLifecycle" +const opPutBucketCors = "PutBucketCors" -// PutBucketLifecycleRequest generates a "aws/request.Request" representing the -// client's request for the PutBucketLifecycle operation. The "output" return +// PutBucketCorsRequest generates a "aws/request.Request" representing the +// client's request for the PutBucketCors operation. The "output" return // value can be used to capture response data after the request's "Send" method // is called. // -// See PutBucketLifecycle for usage and error information. +// See PutBucketCors for usage and error information. // // Creating a request object using this method should be used when you want to inject // custom logic into the request's lifecycle using a custom handler, or if you want to // access properties on the request object before or after sending the request. If -// you just want the service response, call the PutBucketLifecycle method directly +// you just want the service response, call the PutBucketCors method directly // instead. // // Note: You must call the "Send" method on the returned request object in order // to execute the request. // -// // Example sending a request using the PutBucketLifecycleRequest method. -// req, resp := client.PutBucketLifecycleRequest(params) +// // Example sending a request using the PutBucketCorsRequest method. +// req, resp := client.PutBucketCorsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -func (c *S3) PutBucketLifecycleRequest(input *PutBucketLifecycleInput) (req *request.Request, output *PutBucketLifecycleOutput) { - if c.Client.Config.Logger != nil { - c.Client.Config.Logger.Log("This operation, PutBucketLifecycle, has been deprecated") - } +func (c *S3) PutBucketCorsRequest(input *PutBucketCorsInput) (req *request.Request, output *PutBucketCorsOutput) { op := &request.Operation{ - Name: opPutBucketLifecycle, + Name: opPutBucketCors, HTTPMethod: "PUT", - HTTPPath: "/{Bucket}?lifecycle", + HTTPPath: "/{Bucket}?cors", } if input == nil { - input = &PutBucketLifecycleInput{} + input = &PutBucketCorsInput{} } req = c.newRequest(op, input, output) req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) - output = &PutBucketLifecycleOutput{} + output = &PutBucketCorsOutput{} req.Data = output return } -// PutBucketLifecycle API operation for Amazon Simple Storage Service. +// PutBucketCors API operation for Amazon Simple Storage Service. // -// Deprecated, see the PutBucketLifecycleConfiguration operation. +// Sets the cors configuration for a bucket. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Amazon Simple Storage Service's -// API operation PutBucketLifecycle for usage and error information. -func (c *S3) PutBucketLifecycle(input *PutBucketLifecycleInput) (*PutBucketLifecycleOutput, error) { - req, out := c.PutBucketLifecycleRequest(input) +// API operation PutBucketCors for usage and error information. +func (c *S3) PutBucketCors(input *PutBucketCorsInput) (*PutBucketCorsOutput, error) { + req, out := c.PutBucketCorsRequest(input) err := req.Send() return out, err } -const opPutBucketLifecycleConfiguration = "PutBucketLifecycleConfiguration" +const opPutBucketInventoryConfiguration = "PutBucketInventoryConfiguration" -// PutBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the -// client's request for the PutBucketLifecycleConfiguration operation. The "output" return +// PutBucketInventoryConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the PutBucketInventoryConfiguration operation. The "output" return // value can be used to capture response data after the request's "Send" method // is called. // -// See PutBucketLifecycleConfiguration for usage and error information. +// See PutBucketInventoryConfiguration for usage and error information. // // Creating a request object using this method should be used when you want to inject // custom logic into the request's lifecycle using a custom handler, or if you want to // access properties on the request object before or after sending the request. If -// you just want the service response, call the PutBucketLifecycleConfiguration method directly +// you just want the service response, call the PutBucketInventoryConfiguration method directly // instead. // // Note: You must call the "Send" method on the returned request object in order // to execute the request. // -// // Example sending a request using the PutBucketLifecycleConfigurationRequest method. -// req, resp := client.PutBucketLifecycleConfigurationRequest(params) +// // Example sending a request using the PutBucketInventoryConfigurationRequest method. +// req, resp := client.PutBucketInventoryConfigurationRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -func (c *S3) PutBucketLifecycleConfigurationRequest(input *PutBucketLifecycleConfigurationInput) (req *request.Request, output *PutBucketLifecycleConfigurationOutput) { +func (c *S3) PutBucketInventoryConfigurationRequest(input *PutBucketInventoryConfigurationInput) (req *request.Request, output *PutBucketInventoryConfigurationOutput) { op := &request.Operation{ - Name: opPutBucketLifecycleConfiguration, + Name: opPutBucketInventoryConfiguration, HTTPMethod: "PUT", - HTTPPath: "/{Bucket}?lifecycle", + HTTPPath: "/{Bucket}?inventory", } if input == nil { - input = &PutBucketLifecycleConfigurationInput{} + input = &PutBucketInventoryConfigurationInput{} } req = c.newRequest(op, input, output) req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) - output = &PutBucketLifecycleConfigurationOutput{} + output = &PutBucketInventoryConfigurationOutput{} req.Data = output return } -// PutBucketLifecycleConfiguration API operation for Amazon Simple Storage Service. +// PutBucketInventoryConfiguration API operation for Amazon Simple Storage Service. // -// Sets lifecycle configuration for your bucket. If a lifecycle configuration -// exists, it replaces it. +// Adds an inventory configuration (identified by the inventory ID) from the +// bucket. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Amazon Simple Storage Service's -// API operation PutBucketLifecycleConfiguration for usage and error information. -func (c *S3) PutBucketLifecycleConfiguration(input *PutBucketLifecycleConfigurationInput) (*PutBucketLifecycleConfigurationOutput, error) { - req, out := c.PutBucketLifecycleConfigurationRequest(input) +// API operation PutBucketInventoryConfiguration for usage and error information. +func (c *S3) PutBucketInventoryConfiguration(input *PutBucketInventoryConfigurationInput) (*PutBucketInventoryConfigurationOutput, error) { + req, out := c.PutBucketInventoryConfigurationRequest(input) err := req.Send() return out, err } -const opPutBucketLogging = "PutBucketLogging" +const opPutBucketLifecycle = "PutBucketLifecycle" -// PutBucketLoggingRequest generates a "aws/request.Request" representing the -// client's request for the PutBucketLogging operation. The "output" return +// PutBucketLifecycleRequest generates a "aws/request.Request" representing the +// client's request for the PutBucketLifecycle operation. The "output" return // value can be used to capture response data after the request's "Send" method // is called. // -// See PutBucketLogging for usage and error information. +// See PutBucketLifecycle for usage and error information. // // Creating a request object using this method should be used when you want to inject // custom logic into the request's lifecycle using a custom handler, or if you want to // access properties on the request object before or after sending the request. If -// you just want the service response, call the PutBucketLogging method directly +// you just want the service response, call the PutBucketLifecycle method directly // instead. // // Note: You must call the "Send" method on the returned request object in order // to execute the request. // -// // Example sending a request using the PutBucketLoggingRequest method. -// req, resp := client.PutBucketLoggingRequest(params) +// // Example sending a request using the PutBucketLifecycleRequest method. +// req, resp := client.PutBucketLifecycleRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +func (c *S3) PutBucketLifecycleRequest(input *PutBucketLifecycleInput) (req *request.Request, output *PutBucketLifecycleOutput) { + if c.Client.Config.Logger != nil { + c.Client.Config.Logger.Log("This operation, PutBucketLifecycle, has been deprecated") + } + op := &request.Operation{ + Name: opPutBucketLifecycle, + HTTPMethod: "PUT", + HTTPPath: "/{Bucket}?lifecycle", + } + + if input == nil { + input = &PutBucketLifecycleInput{} + } + + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + output = &PutBucketLifecycleOutput{} + req.Data = output + return +} + +// PutBucketLifecycle API operation for Amazon Simple Storage Service. +// +// Deprecated, see the PutBucketLifecycleConfiguration operation. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Simple Storage Service's +// API operation PutBucketLifecycle for usage and error information. +func (c *S3) PutBucketLifecycle(input *PutBucketLifecycleInput) (*PutBucketLifecycleOutput, error) { + req, out := c.PutBucketLifecycleRequest(input) + err := req.Send() + return out, err +} + +const opPutBucketLifecycleConfiguration = "PutBucketLifecycleConfiguration" + +// PutBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the PutBucketLifecycleConfiguration operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See PutBucketLifecycleConfiguration for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the PutBucketLifecycleConfiguration method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the PutBucketLifecycleConfigurationRequest method. +// req, resp := client.PutBucketLifecycleConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +func (c *S3) PutBucketLifecycleConfigurationRequest(input *PutBucketLifecycleConfigurationInput) (req *request.Request, output *PutBucketLifecycleConfigurationOutput) { + op := &request.Operation{ + Name: opPutBucketLifecycleConfiguration, + HTTPMethod: "PUT", + HTTPPath: "/{Bucket}?lifecycle", + } + + if input == nil { + input = &PutBucketLifecycleConfigurationInput{} + } + + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + output = &PutBucketLifecycleConfigurationOutput{} + req.Data = output + return +} + +// PutBucketLifecycleConfiguration API operation for Amazon Simple Storage Service. +// +// Sets lifecycle configuration for your bucket. If a lifecycle configuration +// exists, it replaces it. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Simple Storage Service's +// API operation PutBucketLifecycleConfiguration for usage and error information. +func (c *S3) PutBucketLifecycleConfiguration(input *PutBucketLifecycleConfigurationInput) (*PutBucketLifecycleConfigurationOutput, error) { + req, out := c.PutBucketLifecycleConfigurationRequest(input) + err := req.Send() + return out, err +} + +const opPutBucketLogging = "PutBucketLogging" + +// PutBucketLoggingRequest generates a "aws/request.Request" representing the +// client's request for the PutBucketLogging operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See PutBucketLogging for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the PutBucketLogging method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the PutBucketLoggingRequest method. +// req, resp := client.PutBucketLoggingRequest(params) // // err := req.Send() // if err == nil { // resp is now filled @@ -2996,6 +3781,68 @@ func (c *S3) PutBucketLogging(input *PutBucketLoggingInput) (*PutBucketLoggingOu return out, err } +const opPutBucketMetricsConfiguration = "PutBucketMetricsConfiguration" + +// PutBucketMetricsConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the PutBucketMetricsConfiguration operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See PutBucketMetricsConfiguration for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the PutBucketMetricsConfiguration method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the PutBucketMetricsConfigurationRequest method. +// req, resp := client.PutBucketMetricsConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +func (c *S3) PutBucketMetricsConfigurationRequest(input *PutBucketMetricsConfigurationInput) (req *request.Request, output *PutBucketMetricsConfigurationOutput) { + op := &request.Operation{ + Name: opPutBucketMetricsConfiguration, + HTTPMethod: "PUT", + HTTPPath: "/{Bucket}?metrics", + } + + if input == nil { + input = &PutBucketMetricsConfigurationInput{} + } + + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + output = &PutBucketMetricsConfigurationOutput{} + req.Data = output + return +} + +// PutBucketMetricsConfiguration API operation for Amazon Simple Storage Service. +// +// Sets a metrics configuration (specified by the metrics configuration ID) +// for the bucket. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Simple Storage Service's +// API operation PutBucketMetricsConfiguration for usage and error information. +func (c *S3) PutBucketMetricsConfiguration(input *PutBucketMetricsConfigurationInput) (*PutBucketMetricsConfigurationOutput, error) { + req, out := c.PutBucketMetricsConfigurationRequest(input) + err := req.Send() + return out, err +} + const opPutBucketNotification = "PutBucketNotification" // PutBucketNotificationRequest generates a "aws/request.Request" representing the @@ -3618,6 +4465,65 @@ func (c *S3) PutObjectAcl(input *PutObjectAclInput) (*PutObjectAclOutput, error) return out, err } +const opPutObjectTagging = "PutObjectTagging" + +// PutObjectTaggingRequest generates a "aws/request.Request" representing the +// client's request for the PutObjectTagging operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See PutObjectTagging for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the PutObjectTagging method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the PutObjectTaggingRequest method. +// req, resp := client.PutObjectTaggingRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +func (c *S3) PutObjectTaggingRequest(input *PutObjectTaggingInput) (req *request.Request, output *PutObjectTaggingOutput) { + op := &request.Operation{ + Name: opPutObjectTagging, + HTTPMethod: "PUT", + HTTPPath: "/{Bucket}/{Key+}?tagging", + } + + if input == nil { + input = &PutObjectTaggingInput{} + } + + req = c.newRequest(op, input, output) + output = &PutObjectTaggingOutput{} + req.Data = output + return +} + +// PutObjectTagging API operation for Amazon Simple Storage Service. +// +// Sets the supplied tag-set to an object that already exists in a bucket +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Simple Storage Service's +// API operation PutObjectTagging for usage and error information. +func (c *S3) PutObjectTagging(input *PutObjectTaggingInput) (*PutObjectTaggingOutput, error) { + req, out := c.PutObjectTaggingRequest(input) + err := req.Send() + return out, err +} + const opRestoreObject = "RestoreObject" // RestoreObjectRequest generates a "aws/request.Request" representing the @@ -4005,60 +4911,363 @@ func (s *AccessControlPolicy) SetOwner(v *Owner) *AccessControlPolicy { return s } -type Bucket struct { +type AnalyticsAndOperator struct { _ struct{} `type:"structure"` - // Date the bucket was created. - CreationDate *time.Time `type:"timestamp" timestampFormat:"iso8601"` + // The prefix to use when evaluating an AND predicate. + Prefix *string `type:"string"` - // The name of the bucket. - Name *string `type:"string"` + // The list of tags to use when evaluating an AND predicate. + Tags []*Tag `locationName:"Tag" locationNameList:"Tag" type:"list" flattened:"true"` } // String returns the string representation -func (s Bucket) String() string { +func (s AnalyticsAndOperator) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s Bucket) GoString() string { +func (s AnalyticsAndOperator) GoString() string { return s.String() } -// SetCreationDate sets the CreationDate field's value. -func (s *Bucket) SetCreationDate(v time.Time) *Bucket { - s.CreationDate = &v +// Validate inspects the fields of the type to determine if they are valid. +func (s *AnalyticsAndOperator) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AnalyticsAndOperator"} + if s.Tags != nil { + for i, v := range s.Tags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetPrefix sets the Prefix field's value. +func (s *AnalyticsAndOperator) SetPrefix(v string) *AnalyticsAndOperator { + s.Prefix = &v return s } -// SetName sets the Name field's value. -func (s *Bucket) SetName(v string) *Bucket { - s.Name = &v +// SetTags sets the Tags field's value. +func (s *AnalyticsAndOperator) SetTags(v []*Tag) *AnalyticsAndOperator { + s.Tags = v return s } -type BucketLifecycleConfiguration struct { +type AnalyticsConfiguration struct { _ struct{} `type:"structure"` - // Rules is a required field - Rules []*LifecycleRule `locationName:"Rule" type:"list" flattened:"true" required:"true"` + // The filter used to describe a set of objects for analyses. A filter must + // have exactly one prefix, one tag, or one conjunction (AnalyticsAndOperator). + // If no filter is provided, all objects will be considered in any analysis. + Filter *AnalyticsFilter `type:"structure"` + + // The identifier used to represent an analytics configuration. + // + // Id is a required field + Id *string `type:"string" required:"true"` + + // If present, it indicates that data related to access patterns will be collected + // and made available to analyze the tradeoffs between different storage classes. + // + // StorageClassAnalysis is a required field + StorageClassAnalysis *StorageClassAnalysis `type:"structure" required:"true"` } // String returns the string representation -func (s BucketLifecycleConfiguration) String() string { +func (s AnalyticsConfiguration) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s BucketLifecycleConfiguration) GoString() string { +func (s AnalyticsConfiguration) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *BucketLifecycleConfiguration) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "BucketLifecycleConfiguration"} - if s.Rules == nil { - invalidParams.Add(request.NewErrParamRequired("Rules")) +func (s *AnalyticsConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AnalyticsConfiguration"} + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.StorageClassAnalysis == nil { + invalidParams.Add(request.NewErrParamRequired("StorageClassAnalysis")) + } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) + } + } + if s.StorageClassAnalysis != nil { + if err := s.StorageClassAnalysis.Validate(); err != nil { + invalidParams.AddNested("StorageClassAnalysis", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFilter sets the Filter field's value. +func (s *AnalyticsConfiguration) SetFilter(v *AnalyticsFilter) *AnalyticsConfiguration { + s.Filter = v + return s +} + +// SetId sets the Id field's value. +func (s *AnalyticsConfiguration) SetId(v string) *AnalyticsConfiguration { + s.Id = &v + return s +} + +// SetStorageClassAnalysis sets the StorageClassAnalysis field's value. +func (s *AnalyticsConfiguration) SetStorageClassAnalysis(v *StorageClassAnalysis) *AnalyticsConfiguration { + s.StorageClassAnalysis = v + return s +} + +type AnalyticsExportDestination struct { + _ struct{} `type:"structure"` + + // A destination signifying output to an S3 bucket. + // + // S3BucketDestination is a required field + S3BucketDestination *AnalyticsS3BucketDestination `type:"structure" required:"true"` +} + +// String returns the string representation +func (s AnalyticsExportDestination) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AnalyticsExportDestination) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AnalyticsExportDestination) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AnalyticsExportDestination"} + if s.S3BucketDestination == nil { + invalidParams.Add(request.NewErrParamRequired("S3BucketDestination")) + } + if s.S3BucketDestination != nil { + if err := s.S3BucketDestination.Validate(); err != nil { + invalidParams.AddNested("S3BucketDestination", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetS3BucketDestination sets the S3BucketDestination field's value. +func (s *AnalyticsExportDestination) SetS3BucketDestination(v *AnalyticsS3BucketDestination) *AnalyticsExportDestination { + s.S3BucketDestination = v + return s +} + +type AnalyticsFilter struct { + _ struct{} `type:"structure"` + + // A conjunction (logical AND) of predicates, which is used in evaluating an + // analytics filter. The operator must have at least two predicates. + And *AnalyticsAndOperator `type:"structure"` + + // The prefix to use when evaluating an analytics filter. + Prefix *string `type:"string"` + + // The tag to use when evaluating an analytics filter. + Tag *Tag `type:"structure"` +} + +// String returns the string representation +func (s AnalyticsFilter) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AnalyticsFilter) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AnalyticsFilter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AnalyticsFilter"} + if s.And != nil { + if err := s.And.Validate(); err != nil { + invalidParams.AddNested("And", err.(request.ErrInvalidParams)) + } + } + if s.Tag != nil { + if err := s.Tag.Validate(); err != nil { + invalidParams.AddNested("Tag", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAnd sets the And field's value. +func (s *AnalyticsFilter) SetAnd(v *AnalyticsAndOperator) *AnalyticsFilter { + s.And = v + return s +} + +// SetPrefix sets the Prefix field's value. +func (s *AnalyticsFilter) SetPrefix(v string) *AnalyticsFilter { + s.Prefix = &v + return s +} + +// SetTag sets the Tag field's value. +func (s *AnalyticsFilter) SetTag(v *Tag) *AnalyticsFilter { + s.Tag = v + return s +} + +type AnalyticsS3BucketDestination struct { + _ struct{} `type:"structure"` + + // The Amazon resource name (ARN) of the bucket to which data is exported. + // + // Bucket is a required field + Bucket *string `type:"string" required:"true"` + + // The account ID that owns the destination bucket. If no account ID is provided, + // the owner will not be validated prior to exporting data. + BucketAccountId *string `type:"string"` + + // The file format used when exporting data to Amazon S3. + // + // Format is a required field + Format *string `type:"string" required:"true" enum:"AnalyticsS3ExportFileFormat"` + + // The prefix to use when exporting data. The exported data begins with this + // prefix. + Prefix *string `type:"string"` +} + +// String returns the string representation +func (s AnalyticsS3BucketDestination) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AnalyticsS3BucketDestination) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AnalyticsS3BucketDestination) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AnalyticsS3BucketDestination"} + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Format == nil { + invalidParams.Add(request.NewErrParamRequired("Format")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBucket sets the Bucket field's value. +func (s *AnalyticsS3BucketDestination) SetBucket(v string) *AnalyticsS3BucketDestination { + s.Bucket = &v + return s +} + +// SetBucketAccountId sets the BucketAccountId field's value. +func (s *AnalyticsS3BucketDestination) SetBucketAccountId(v string) *AnalyticsS3BucketDestination { + s.BucketAccountId = &v + return s +} + +// SetFormat sets the Format field's value. +func (s *AnalyticsS3BucketDestination) SetFormat(v string) *AnalyticsS3BucketDestination { + s.Format = &v + return s +} + +// SetPrefix sets the Prefix field's value. +func (s *AnalyticsS3BucketDestination) SetPrefix(v string) *AnalyticsS3BucketDestination { + s.Prefix = &v + return s +} + +type Bucket struct { + _ struct{} `type:"structure"` + + // Date the bucket was created. + CreationDate *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + // The name of the bucket. + Name *string `type:"string"` +} + +// String returns the string representation +func (s Bucket) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Bucket) GoString() string { + return s.String() +} + +// SetCreationDate sets the CreationDate field's value. +func (s *Bucket) SetCreationDate(v time.Time) *Bucket { + s.CreationDate = &v + return s +} + +// SetName sets the Name field's value. +func (s *Bucket) SetName(v string) *Bucket { + s.Name = &v + return s +} + +type BucketLifecycleConfiguration struct { + _ struct{} `type:"structure"` + + // Rules is a required field + Rules []*LifecycleRule `locationName:"Rule" type:"list" flattened:"true" required:"true"` +} + +// String returns the string representation +func (s BucketLifecycleConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s BucketLifecycleConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *BucketLifecycleConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "BucketLifecycleConfiguration"} + if s.Rules == nil { + invalidParams.Add(request.NewErrParamRequired("Rules")) } if s.Rules != nil { for i, v := range s.Rules { @@ -4721,6 +5930,15 @@ type CopyObjectInput struct { // The type of storage to use for the object. Defaults to 'STANDARD'. StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"` + // The tag-set for the object destination object this value must be used in + // conjunction with the TaggingDirective. The tag-set must be encoded as URL + // Query parameters + Tagging *string `location:"header" locationName:"x-amz-tagging" type:"string"` + + // Specifies whether the object tag-set are copied from the source object or + // replaced with tag-set provided in the request. + TaggingDirective *string `location:"header" locationName:"x-amz-tagging-directive" type:"string" enum:"TaggingDirective"` + // If the bucket is configured as a website, redirects requests for this object // to another object in the same bucket or to an external URL. Amazon S3 stores // the value of this header in the object metadata. @@ -4939,6 +6157,18 @@ func (s *CopyObjectInput) SetStorageClass(v string) *CopyObjectInput { return s } +// SetTagging sets the Tagging field's value. +func (s *CopyObjectInput) SetTagging(v string) *CopyObjectInput { + s.Tagging = &v + return s +} + +// SetTaggingDirective sets the TaggingDirective field's value. +func (s *CopyObjectInput) SetTaggingDirective(v string) *CopyObjectInput { + s.TaggingDirective = &v + return s +} + // SetWebsiteRedirectLocation sets the WebsiteRedirectLocation field's value. func (s *CopyObjectInput) SetWebsiteRedirectLocation(v string) *CopyObjectInput { s.WebsiteRedirectLocation = &v @@ -5668,29 +6898,39 @@ func (s *Delete) SetQuiet(v bool) *Delete { return s } -type DeleteBucketCorsInput struct { +type DeleteBucketAnalyticsConfigurationInput struct { _ struct{} `type:"structure"` + // The name of the bucket from which an analytics configuration is deleted. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + + // The identifier used to represent an analytics configuration. + // + // Id is a required field + Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` } // String returns the string representation -func (s DeleteBucketCorsInput) String() string { +func (s DeleteBucketAnalyticsConfigurationInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DeleteBucketCorsInput) GoString() string { +func (s DeleteBucketAnalyticsConfigurationInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteBucketCorsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteBucketCorsInput"} +func (s *DeleteBucketAnalyticsConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteBucketAnalyticsConfigurationInput"} if s.Bucket == nil { invalidParams.Add(request.NewErrParamRequired("Bucket")) } + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } if invalidParams.Len() > 0 { return invalidParams @@ -5699,26 +6939,32 @@ func (s *DeleteBucketCorsInput) Validate() error { } // SetBucket sets the Bucket field's value. -func (s *DeleteBucketCorsInput) SetBucket(v string) *DeleteBucketCorsInput { +func (s *DeleteBucketAnalyticsConfigurationInput) SetBucket(v string) *DeleteBucketAnalyticsConfigurationInput { s.Bucket = &v return s } -type DeleteBucketCorsOutput struct { +// SetId sets the Id field's value. +func (s *DeleteBucketAnalyticsConfigurationInput) SetId(v string) *DeleteBucketAnalyticsConfigurationInput { + s.Id = &v + return s +} + +type DeleteBucketAnalyticsConfigurationOutput struct { _ struct{} `type:"structure"` } // String returns the string representation -func (s DeleteBucketCorsOutput) String() string { +func (s DeleteBucketAnalyticsConfigurationOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DeleteBucketCorsOutput) GoString() string { +func (s DeleteBucketAnalyticsConfigurationOutput) GoString() string { return s.String() } -type DeleteBucketInput struct { +type DeleteBucketCorsInput struct { _ struct{} `type:"structure"` // Bucket is a required field @@ -5726,18 +6972,18 @@ type DeleteBucketInput struct { } // String returns the string representation -func (s DeleteBucketInput) String() string { +func (s DeleteBucketCorsInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DeleteBucketInput) GoString() string { +func (s DeleteBucketCorsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteBucketInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteBucketInput"} +func (s *DeleteBucketCorsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteBucketCorsInput"} if s.Bucket == nil { invalidParams.Add(request.NewErrParamRequired("Bucket")) } @@ -5749,12 +6995,26 @@ func (s *DeleteBucketInput) Validate() error { } // SetBucket sets the Bucket field's value. -func (s *DeleteBucketInput) SetBucket(v string) *DeleteBucketInput { +func (s *DeleteBucketCorsInput) SetBucket(v string) *DeleteBucketCorsInput { s.Bucket = &v return s } -type DeleteBucketLifecycleInput struct { +type DeleteBucketCorsOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteBucketCorsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteBucketCorsOutput) GoString() string { + return s.String() +} + +type DeleteBucketInput struct { _ struct{} `type:"structure"` // Bucket is a required field @@ -5762,18 +7022,120 @@ type DeleteBucketLifecycleInput struct { } // String returns the string representation -func (s DeleteBucketLifecycleInput) String() string { +func (s DeleteBucketInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DeleteBucketLifecycleInput) GoString() string { +func (s DeleteBucketInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteBucketLifecycleInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteBucketLifecycleInput"} +func (s *DeleteBucketInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteBucketInput"} + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBucket sets the Bucket field's value. +func (s *DeleteBucketInput) SetBucket(v string) *DeleteBucketInput { + s.Bucket = &v + return s +} + +type DeleteBucketInventoryConfigurationInput struct { + _ struct{} `type:"structure"` + + // The name of the bucket containing the inventory configuration to delete. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + + // The ID used to identify the inventory configuration. + // + // Id is a required field + Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteBucketInventoryConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteBucketInventoryConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteBucketInventoryConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteBucketInventoryConfigurationInput"} + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBucket sets the Bucket field's value. +func (s *DeleteBucketInventoryConfigurationInput) SetBucket(v string) *DeleteBucketInventoryConfigurationInput { + s.Bucket = &v + return s +} + +// SetId sets the Id field's value. +func (s *DeleteBucketInventoryConfigurationInput) SetId(v string) *DeleteBucketInventoryConfigurationInput { + s.Id = &v + return s +} + +type DeleteBucketInventoryConfigurationOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteBucketInventoryConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteBucketInventoryConfigurationOutput) GoString() string { + return s.String() +} + +type DeleteBucketLifecycleInput struct { + _ struct{} `type:"structure"` + + // Bucket is a required field + Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteBucketLifecycleInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteBucketLifecycleInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteBucketLifecycleInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteBucketLifecycleInput"} if s.Bucket == nil { invalidParams.Add(request.NewErrParamRequired("Bucket")) } @@ -5804,6 +7166,72 @@ func (s DeleteBucketLifecycleOutput) GoString() string { return s.String() } +type DeleteBucketMetricsConfigurationInput struct { + _ struct{} `type:"structure"` + + // The name of the bucket containing the metrics configuration to delete. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + + // The ID used to identify the metrics configuration. + // + // Id is a required field + Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteBucketMetricsConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteBucketMetricsConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteBucketMetricsConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteBucketMetricsConfigurationInput"} + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBucket sets the Bucket field's value. +func (s *DeleteBucketMetricsConfigurationInput) SetBucket(v string) *DeleteBucketMetricsConfigurationInput { + s.Bucket = &v + return s +} + +// SetId sets the Id field's value. +func (s *DeleteBucketMetricsConfigurationInput) SetId(v string) *DeleteBucketMetricsConfigurationInput { + s.Id = &v + return s +} + +type DeleteBucketMetricsConfigurationOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteBucketMetricsConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteBucketMetricsConfigurationOutput) GoString() string { + return s.String() +} + type DeleteBucketOutput struct { _ struct{} `type:"structure"` } @@ -6203,6 +7631,89 @@ func (s *DeleteObjectOutput) SetVersionId(v string) *DeleteObjectOutput { return s } +type DeleteObjectTaggingInput struct { + _ struct{} `type:"structure"` + + // Bucket is a required field + Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + + // Key is a required field + Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` + + // The versionId of the object that the tag-set will be removed from. + VersionId *string `location:"querystring" locationName:"versionId" type:"string"` +} + +// String returns the string representation +func (s DeleteObjectTaggingInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteObjectTaggingInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteObjectTaggingInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteObjectTaggingInput"} + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Key == nil { + invalidParams.Add(request.NewErrParamRequired("Key")) + } + if s.Key != nil && len(*s.Key) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Key", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBucket sets the Bucket field's value. +func (s *DeleteObjectTaggingInput) SetBucket(v string) *DeleteObjectTaggingInput { + s.Bucket = &v + return s +} + +// SetKey sets the Key field's value. +func (s *DeleteObjectTaggingInput) SetKey(v string) *DeleteObjectTaggingInput { + s.Key = &v + return s +} + +// SetVersionId sets the VersionId field's value. +func (s *DeleteObjectTaggingInput) SetVersionId(v string) *DeleteObjectTaggingInput { + s.VersionId = &v + return s +} + +type DeleteObjectTaggingOutput struct { + _ struct{} `type:"structure"` + + // The versionId of the object the tag-set was removed from. + VersionId *string `location:"header" locationName:"x-amz-version-id" type:"string"` +} + +// String returns the string representation +func (s DeleteObjectTaggingOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteObjectTaggingOutput) GoString() string { + return s.String() +} + +// SetVersionId sets the VersionId field's value. +func (s *DeleteObjectTaggingOutput) SetVersionId(v string) *DeleteObjectTaggingOutput { + s.VersionId = &v + return s +} + type DeleteObjectsInput struct { _ struct{} `type:"structure" payload:"Delete"` @@ -6662,29 +8173,39 @@ func (s *GetBucketAclOutput) SetOwner(v *Owner) *GetBucketAclOutput { return s } -type GetBucketCorsInput struct { +type GetBucketAnalyticsConfigurationInput struct { _ struct{} `type:"structure"` + // The name of the bucket from which an analytics configuration is retrieved. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + + // The identifier used to represent an analytics configuration. + // + // Id is a required field + Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` } // String returns the string representation -func (s GetBucketCorsInput) String() string { +func (s GetBucketAnalyticsConfigurationInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetBucketCorsInput) GoString() string { +func (s GetBucketAnalyticsConfigurationInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetBucketCorsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetBucketCorsInput"} +func (s *GetBucketAnalyticsConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetBucketAnalyticsConfigurationInput"} if s.Bucket == nil { invalidParams.Add(request.NewErrParamRequired("Bucket")) } + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } if invalidParams.Len() > 0 { return invalidParams @@ -6693,34 +8214,41 @@ func (s *GetBucketCorsInput) Validate() error { } // SetBucket sets the Bucket field's value. -func (s *GetBucketCorsInput) SetBucket(v string) *GetBucketCorsInput { +func (s *GetBucketAnalyticsConfigurationInput) SetBucket(v string) *GetBucketAnalyticsConfigurationInput { s.Bucket = &v return s } -type GetBucketCorsOutput struct { - _ struct{} `type:"structure"` +// SetId sets the Id field's value. +func (s *GetBucketAnalyticsConfigurationInput) SetId(v string) *GetBucketAnalyticsConfigurationInput { + s.Id = &v + return s +} - CORSRules []*CORSRule `locationName:"CORSRule" type:"list" flattened:"true"` +type GetBucketAnalyticsConfigurationOutput struct { + _ struct{} `type:"structure" payload:"AnalyticsConfiguration"` + + // The configuration and any analyses for the analytics filter. + AnalyticsConfiguration *AnalyticsConfiguration `type:"structure"` } // String returns the string representation -func (s GetBucketCorsOutput) String() string { +func (s GetBucketAnalyticsConfigurationOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetBucketCorsOutput) GoString() string { +func (s GetBucketAnalyticsConfigurationOutput) GoString() string { return s.String() } -// SetCORSRules sets the CORSRules field's value. -func (s *GetBucketCorsOutput) SetCORSRules(v []*CORSRule) *GetBucketCorsOutput { - s.CORSRules = v +// SetAnalyticsConfiguration sets the AnalyticsConfiguration field's value. +func (s *GetBucketAnalyticsConfigurationOutput) SetAnalyticsConfiguration(v *AnalyticsConfiguration) *GetBucketAnalyticsConfigurationOutput { + s.AnalyticsConfiguration = v return s } -type GetBucketLifecycleConfigurationInput struct { +type GetBucketCorsInput struct { _ struct{} `type:"structure"` // Bucket is a required field @@ -6728,18 +8256,18 @@ type GetBucketLifecycleConfigurationInput struct { } // String returns the string representation -func (s GetBucketLifecycleConfigurationInput) String() string { +func (s GetBucketCorsInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetBucketLifecycleConfigurationInput) GoString() string { +func (s GetBucketCorsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetBucketLifecycleConfigurationInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetBucketLifecycleConfigurationInput"} +func (s *GetBucketCorsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetBucketCorsInput"} if s.Bucket == nil { invalidParams.Add(request.NewErrParamRequired("Bucket")) } @@ -6751,34 +8279,167 @@ func (s *GetBucketLifecycleConfigurationInput) Validate() error { } // SetBucket sets the Bucket field's value. -func (s *GetBucketLifecycleConfigurationInput) SetBucket(v string) *GetBucketLifecycleConfigurationInput { +func (s *GetBucketCorsInput) SetBucket(v string) *GetBucketCorsInput { s.Bucket = &v return s } -type GetBucketLifecycleConfigurationOutput struct { +type GetBucketCorsOutput struct { _ struct{} `type:"structure"` - Rules []*LifecycleRule `locationName:"Rule" type:"list" flattened:"true"` + CORSRules []*CORSRule `locationName:"CORSRule" type:"list" flattened:"true"` } // String returns the string representation -func (s GetBucketLifecycleConfigurationOutput) String() string { +func (s GetBucketCorsOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetBucketLifecycleConfigurationOutput) GoString() string { +func (s GetBucketCorsOutput) GoString() string { return s.String() } -// SetRules sets the Rules field's value. -func (s *GetBucketLifecycleConfigurationOutput) SetRules(v []*LifecycleRule) *GetBucketLifecycleConfigurationOutput { - s.Rules = v +// SetCORSRules sets the CORSRules field's value. +func (s *GetBucketCorsOutput) SetCORSRules(v []*CORSRule) *GetBucketCorsOutput { + s.CORSRules = v return s } -type GetBucketLifecycleInput struct { +type GetBucketInventoryConfigurationInput struct { + _ struct{} `type:"structure"` + + // The name of the bucket containing the inventory configuration to retrieve. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + + // The ID used to identify the inventory configuration. + // + // Id is a required field + Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetBucketInventoryConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetBucketInventoryConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetBucketInventoryConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetBucketInventoryConfigurationInput"} + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBucket sets the Bucket field's value. +func (s *GetBucketInventoryConfigurationInput) SetBucket(v string) *GetBucketInventoryConfigurationInput { + s.Bucket = &v + return s +} + +// SetId sets the Id field's value. +func (s *GetBucketInventoryConfigurationInput) SetId(v string) *GetBucketInventoryConfigurationInput { + s.Id = &v + return s +} + +type GetBucketInventoryConfigurationOutput struct { + _ struct{} `type:"structure" payload:"InventoryConfiguration"` + + // Specifies the inventory configuration. + InventoryConfiguration *InventoryConfiguration `type:"structure"` +} + +// String returns the string representation +func (s GetBucketInventoryConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetBucketInventoryConfigurationOutput) GoString() string { + return s.String() +} + +// SetInventoryConfiguration sets the InventoryConfiguration field's value. +func (s *GetBucketInventoryConfigurationOutput) SetInventoryConfiguration(v *InventoryConfiguration) *GetBucketInventoryConfigurationOutput { + s.InventoryConfiguration = v + return s +} + +type GetBucketLifecycleConfigurationInput struct { + _ struct{} `type:"structure"` + + // Bucket is a required field + Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetBucketLifecycleConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetBucketLifecycleConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetBucketLifecycleConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetBucketLifecycleConfigurationInput"} + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBucket sets the Bucket field's value. +func (s *GetBucketLifecycleConfigurationInput) SetBucket(v string) *GetBucketLifecycleConfigurationInput { + s.Bucket = &v + return s +} + +type GetBucketLifecycleConfigurationOutput struct { + _ struct{} `type:"structure"` + + Rules []*LifecycleRule `locationName:"Rule" type:"list" flattened:"true"` +} + +// String returns the string representation +func (s GetBucketLifecycleConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetBucketLifecycleConfigurationOutput) GoString() string { + return s.String() +} + +// SetRules sets the Rules field's value. +func (s *GetBucketLifecycleConfigurationOutput) SetRules(v []*LifecycleRule) *GetBucketLifecycleConfigurationOutput { + s.Rules = v + return s +} + +type GetBucketLifecycleInput struct { _ struct{} `type:"structure"` // Bucket is a required field @@ -6952,6 +8613,81 @@ func (s *GetBucketLoggingOutput) SetLoggingEnabled(v *LoggingEnabled) *GetBucket return s } +type GetBucketMetricsConfigurationInput struct { + _ struct{} `type:"structure"` + + // The name of the bucket containing the metrics configuration to retrieve. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + + // The ID used to identify the metrics configuration. + // + // Id is a required field + Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetBucketMetricsConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetBucketMetricsConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetBucketMetricsConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetBucketMetricsConfigurationInput"} + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBucket sets the Bucket field's value. +func (s *GetBucketMetricsConfigurationInput) SetBucket(v string) *GetBucketMetricsConfigurationInput { + s.Bucket = &v + return s +} + +// SetId sets the Id field's value. +func (s *GetBucketMetricsConfigurationInput) SetId(v string) *GetBucketMetricsConfigurationInput { + s.Id = &v + return s +} + +type GetBucketMetricsConfigurationOutput struct { + _ struct{} `type:"structure" payload:"MetricsConfiguration"` + + // Specifies the metrics configuration. + MetricsConfiguration *MetricsConfiguration `type:"structure"` +} + +// String returns the string representation +func (s GetBucketMetricsConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetBucketMetricsConfigurationOutput) GoString() string { + return s.String() +} + +// SetMetricsConfiguration sets the MetricsConfiguration field's value. +func (s *GetBucketMetricsConfigurationOutput) SetMetricsConfiguration(v *MetricsConfiguration) *GetBucketMetricsConfigurationOutput { + s.MetricsConfiguration = v + return s +} + type GetBucketNotificationConfigurationRequest struct { _ struct{} `type:"structure"` @@ -7805,6 +9541,9 @@ type GetObjectOutput struct { StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"` + // The number of tags, if any, on the object. + TagCount *int64 `location:"header" locationName:"x-amz-tagging-count" type:"integer"` + // Version of the object. VersionId *string `location:"header" locationName:"x-amz-version-id" type:"string"` @@ -7974,6 +9713,12 @@ func (s *GetObjectOutput) SetStorageClass(v string) *GetObjectOutput { return s } +// SetTagCount sets the TagCount field's value. +func (s *GetObjectOutput) SetTagCount(v int64) *GetObjectOutput { + s.TagCount = &v + return s +} + // SetVersionId sets the VersionId field's value. func (s *GetObjectOutput) SetVersionId(v string) *GetObjectOutput { s.VersionId = &v @@ -7986,6 +9731,100 @@ func (s *GetObjectOutput) SetWebsiteRedirectLocation(v string) *GetObjectOutput return s } +type GetObjectTaggingInput struct { + _ struct{} `type:"structure"` + + // Bucket is a required field + Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + + // Key is a required field + Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` + + // VersionId is a required field + VersionId *string `location:"uri" locationName:"VersionId" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetObjectTaggingInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetObjectTaggingInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetObjectTaggingInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetObjectTaggingInput"} + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Key == nil { + invalidParams.Add(request.NewErrParamRequired("Key")) + } + if s.Key != nil && len(*s.Key) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Key", 1)) + } + if s.VersionId == nil { + invalidParams.Add(request.NewErrParamRequired("VersionId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBucket sets the Bucket field's value. +func (s *GetObjectTaggingInput) SetBucket(v string) *GetObjectTaggingInput { + s.Bucket = &v + return s +} + +// SetKey sets the Key field's value. +func (s *GetObjectTaggingInput) SetKey(v string) *GetObjectTaggingInput { + s.Key = &v + return s +} + +// SetVersionId sets the VersionId field's value. +func (s *GetObjectTaggingInput) SetVersionId(v string) *GetObjectTaggingInput { + s.VersionId = &v + return s +} + +type GetObjectTaggingOutput struct { + _ struct{} `type:"structure"` + + // TagSet is a required field + TagSet []*Tag `locationNameList:"Tag" type:"list" required:"true"` + + VersionId *string `location:"header" locationName:"x-amz-version-id" type:"string"` +} + +// String returns the string representation +func (s GetObjectTaggingOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetObjectTaggingOutput) GoString() string { + return s.String() +} + +// SetTagSet sets the TagSet field's value. +func (s *GetObjectTaggingOutput) SetTagSet(v []*Tag) *GetObjectTaggingOutput { + s.TagSet = v + return s +} + +// SetVersionId sets the VersionId field's value. +func (s *GetObjectTaggingOutput) SetVersionId(v string) *GetObjectTaggingOutput { + s.VersionId = &v + return s +} + type GetObjectTorrentInput struct { _ struct{} `type:"structure"` @@ -8786,18 +10625,337 @@ func (s *Initiator) SetID(v string) *Initiator { return s } -// Container for object key name prefix and suffix filtering rules. -type KeyFilter struct { +type InventoryConfiguration struct { _ struct{} `type:"structure"` - // A list of containers for key value pair that defines the criteria for the - // filter rule. - FilterRules []*FilterRule `locationName:"FilterRule" type:"list" flattened:"true"` -} + // Contains information about where to publish the inventory results. + // + // Destination is a required field + Destination *InventoryDestination `type:"structure" required:"true"` -// String returns the string representation -func (s KeyFilter) String() string { - return awsutil.Prettify(s) + // Specifies an inventory filter. The inventory only includes objects that meet + // the filter's criteria. + Filter *InventoryFilter `type:"structure"` + + // The ID used to identify the inventory configuration. + // + // Id is a required field + Id *string `type:"string" required:"true"` + + // Specifies which object version(s) to included in the inventory results. + // + // IncludedObjectVersions is a required field + IncludedObjectVersions *string `type:"string" required:"true" enum:"InventoryIncludedObjectVersions"` + + // Specifies whether the inventory is enabled or disabled. + // + // IsEnabled is a required field + IsEnabled *bool `type:"boolean" required:"true"` + + // Contains the optional fields that are included in the inventory results. + OptionalFields []*string `locationNameList:"Field" type:"list"` + + // Specifies the schedule for generating inventory results. + // + // Schedule is a required field + Schedule *InventorySchedule `type:"structure" required:"true"` +} + +// String returns the string representation +func (s InventoryConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s InventoryConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *InventoryConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "InventoryConfiguration"} + if s.Destination == nil { + invalidParams.Add(request.NewErrParamRequired("Destination")) + } + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.IncludedObjectVersions == nil { + invalidParams.Add(request.NewErrParamRequired("IncludedObjectVersions")) + } + if s.IsEnabled == nil { + invalidParams.Add(request.NewErrParamRequired("IsEnabled")) + } + if s.Schedule == nil { + invalidParams.Add(request.NewErrParamRequired("Schedule")) + } + if s.Destination != nil { + if err := s.Destination.Validate(); err != nil { + invalidParams.AddNested("Destination", err.(request.ErrInvalidParams)) + } + } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) + } + } + if s.Schedule != nil { + if err := s.Schedule.Validate(); err != nil { + invalidParams.AddNested("Schedule", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDestination sets the Destination field's value. +func (s *InventoryConfiguration) SetDestination(v *InventoryDestination) *InventoryConfiguration { + s.Destination = v + return s +} + +// SetFilter sets the Filter field's value. +func (s *InventoryConfiguration) SetFilter(v *InventoryFilter) *InventoryConfiguration { + s.Filter = v + return s +} + +// SetId sets the Id field's value. +func (s *InventoryConfiguration) SetId(v string) *InventoryConfiguration { + s.Id = &v + return s +} + +// SetIncludedObjectVersions sets the IncludedObjectVersions field's value. +func (s *InventoryConfiguration) SetIncludedObjectVersions(v string) *InventoryConfiguration { + s.IncludedObjectVersions = &v + return s +} + +// SetIsEnabled sets the IsEnabled field's value. +func (s *InventoryConfiguration) SetIsEnabled(v bool) *InventoryConfiguration { + s.IsEnabled = &v + return s +} + +// SetOptionalFields sets the OptionalFields field's value. +func (s *InventoryConfiguration) SetOptionalFields(v []*string) *InventoryConfiguration { + s.OptionalFields = v + return s +} + +// SetSchedule sets the Schedule field's value. +func (s *InventoryConfiguration) SetSchedule(v *InventorySchedule) *InventoryConfiguration { + s.Schedule = v + return s +} + +type InventoryDestination struct { + _ struct{} `type:"structure"` + + // Contains the bucket name, file format, bucket owner (optional), and prefix + // (optional) where inventory results are published. + // + // S3BucketDestination is a required field + S3BucketDestination *InventoryS3BucketDestination `type:"structure" required:"true"` +} + +// String returns the string representation +func (s InventoryDestination) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s InventoryDestination) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *InventoryDestination) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "InventoryDestination"} + if s.S3BucketDestination == nil { + invalidParams.Add(request.NewErrParamRequired("S3BucketDestination")) + } + if s.S3BucketDestination != nil { + if err := s.S3BucketDestination.Validate(); err != nil { + invalidParams.AddNested("S3BucketDestination", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetS3BucketDestination sets the S3BucketDestination field's value. +func (s *InventoryDestination) SetS3BucketDestination(v *InventoryS3BucketDestination) *InventoryDestination { + s.S3BucketDestination = v + return s +} + +type InventoryFilter struct { + _ struct{} `type:"structure"` + + // The prefix that an object must have to be included in the inventory results. + // + // Prefix is a required field + Prefix *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s InventoryFilter) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s InventoryFilter) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *InventoryFilter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "InventoryFilter"} + if s.Prefix == nil { + invalidParams.Add(request.NewErrParamRequired("Prefix")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetPrefix sets the Prefix field's value. +func (s *InventoryFilter) SetPrefix(v string) *InventoryFilter { + s.Prefix = &v + return s +} + +type InventoryS3BucketDestination struct { + _ struct{} `type:"structure"` + + // The ID of the account that owns the destination bucket. + AccountId *string `type:"string"` + + // The Amazon resource name (ARN) of the bucket where inventory results will + // be published. + // + // Bucket is a required field + Bucket *string `type:"string" required:"true"` + + // Specifies the output format of the inventory results. + // + // Format is a required field + Format *string `type:"string" required:"true" enum:"InventoryFormat"` + + // The prefix that is prepended to all inventory results. + Prefix *string `type:"string"` +} + +// String returns the string representation +func (s InventoryS3BucketDestination) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s InventoryS3BucketDestination) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *InventoryS3BucketDestination) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "InventoryS3BucketDestination"} + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Format == nil { + invalidParams.Add(request.NewErrParamRequired("Format")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *InventoryS3BucketDestination) SetAccountId(v string) *InventoryS3BucketDestination { + s.AccountId = &v + return s +} + +// SetBucket sets the Bucket field's value. +func (s *InventoryS3BucketDestination) SetBucket(v string) *InventoryS3BucketDestination { + s.Bucket = &v + return s +} + +// SetFormat sets the Format field's value. +func (s *InventoryS3BucketDestination) SetFormat(v string) *InventoryS3BucketDestination { + s.Format = &v + return s +} + +// SetPrefix sets the Prefix field's value. +func (s *InventoryS3BucketDestination) SetPrefix(v string) *InventoryS3BucketDestination { + s.Prefix = &v + return s +} + +type InventorySchedule struct { + _ struct{} `type:"structure"` + + // Specifies how frequently inventory results are produced. + // + // Frequency is a required field + Frequency *string `type:"string" required:"true" enum:"InventoryFrequency"` +} + +// String returns the string representation +func (s InventorySchedule) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s InventorySchedule) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *InventorySchedule) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "InventorySchedule"} + if s.Frequency == nil { + invalidParams.Add(request.NewErrParamRequired("Frequency")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFrequency sets the Frequency field's value. +func (s *InventorySchedule) SetFrequency(v string) *InventorySchedule { + s.Frequency = &v + return s +} + +// Container for object key name prefix and suffix filtering rules. +type KeyFilter struct { + _ struct{} `type:"structure"` + + // A list of containers for key value pair that defines the criteria for the + // filter rule. + FilterRules []*FilterRule `locationName:"FilterRule" type:"list" flattened:"true"` +} + +// String returns the string representation +func (s KeyFilter) String() string { + return awsutil.Prettify(s) } // GoString returns the string representation @@ -8984,6 +11142,10 @@ type LifecycleRule struct { Expiration *LifecycleExpiration `type:"structure"` + // The Filter is used to identify objects that a Lifecycle Rule applies to. + // A Filter must have exactly one of Prefix, Tag, or And specified. + Filter *LifecycleRuleFilter `type:"structure"` + // Unique identifier for the rule. The value cannot be longer than 255 characters. ID *string `type:"string"` @@ -8996,10 +11158,9 @@ type LifecycleRule struct { NoncurrentVersionTransitions []*NoncurrentVersionTransition `locationName:"NoncurrentVersionTransition" type:"list" flattened:"true"` - // Prefix identifying one or more objects to which the rule applies. - // - // Prefix is a required field - Prefix *string `type:"string" required:"true"` + // Prefix identifying one or more objects to which the rule applies. This is + // deprecated; use Filter instead. + Prefix *string `deprecated:"true" type:"string"` // If 'Enabled', the rule is currently being applied. If 'Disabled', the rule // is not currently being applied. @@ -9023,12 +11184,14 @@ func (s LifecycleRule) GoString() string { // Validate inspects the fields of the type to determine if they are valid. func (s *LifecycleRule) Validate() error { invalidParams := request.ErrInvalidParams{Context: "LifecycleRule"} - if s.Prefix == nil { - invalidParams.Add(request.NewErrParamRequired("Prefix")) - } if s.Status == nil { invalidParams.Add(request.NewErrParamRequired("Status")) } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -9048,39 +11211,477 @@ func (s *LifecycleRule) SetExpiration(v *LifecycleExpiration) *LifecycleRule { return s } -// SetID sets the ID field's value. -func (s *LifecycleRule) SetID(v string) *LifecycleRule { - s.ID = &v - return s +// SetFilter sets the Filter field's value. +func (s *LifecycleRule) SetFilter(v *LifecycleRuleFilter) *LifecycleRule { + s.Filter = v + return s +} + +// SetID sets the ID field's value. +func (s *LifecycleRule) SetID(v string) *LifecycleRule { + s.ID = &v + return s +} + +// SetNoncurrentVersionExpiration sets the NoncurrentVersionExpiration field's value. +func (s *LifecycleRule) SetNoncurrentVersionExpiration(v *NoncurrentVersionExpiration) *LifecycleRule { + s.NoncurrentVersionExpiration = v + return s +} + +// SetNoncurrentVersionTransitions sets the NoncurrentVersionTransitions field's value. +func (s *LifecycleRule) SetNoncurrentVersionTransitions(v []*NoncurrentVersionTransition) *LifecycleRule { + s.NoncurrentVersionTransitions = v + return s +} + +// SetPrefix sets the Prefix field's value. +func (s *LifecycleRule) SetPrefix(v string) *LifecycleRule { + s.Prefix = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *LifecycleRule) SetStatus(v string) *LifecycleRule { + s.Status = &v + return s +} + +// SetTransitions sets the Transitions field's value. +func (s *LifecycleRule) SetTransitions(v []*Transition) *LifecycleRule { + s.Transitions = v + return s +} + +// This is used in a Lifecycle Rule Filter to apply a logical AND to two or +// more predicates. The Lifecycle Rule will apply to any object matching all +// of the predicates configured inside the And operator. +type LifecycleRuleAndOperator struct { + _ struct{} `type:"structure"` + + Prefix *string `type:"string"` + + // All of these tags must exist in the object's tag set in order for the rule + // to apply. + Tags []*Tag `locationName:"Tag" locationNameList:"Tag" type:"list" flattened:"true"` +} + +// String returns the string representation +func (s LifecycleRuleAndOperator) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s LifecycleRuleAndOperator) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *LifecycleRuleAndOperator) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "LifecycleRuleAndOperator"} + if s.Tags != nil { + for i, v := range s.Tags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetPrefix sets the Prefix field's value. +func (s *LifecycleRuleAndOperator) SetPrefix(v string) *LifecycleRuleAndOperator { + s.Prefix = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *LifecycleRuleAndOperator) SetTags(v []*Tag) *LifecycleRuleAndOperator { + s.Tags = v + return s +} + +// The Filter is used to identify objects that a Lifecycle Rule applies to. +// A Filter must have exactly one of Prefix, Tag, or And specified. +type LifecycleRuleFilter struct { + _ struct{} `type:"structure"` + + // This is used in a Lifecycle Rule Filter to apply a logical AND to two or + // more predicates. The Lifecycle Rule will apply to any object matching all + // of the predicates configured inside the And operator. + And *LifecycleRuleAndOperator `type:"structure"` + + // Prefix identifying one or more objects to which the rule applies. + Prefix *string `type:"string"` + + // This tag must exist in the object's tag set in order for the rule to apply. + Tag *Tag `type:"structure"` +} + +// String returns the string representation +func (s LifecycleRuleFilter) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s LifecycleRuleFilter) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *LifecycleRuleFilter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "LifecycleRuleFilter"} + if s.And != nil { + if err := s.And.Validate(); err != nil { + invalidParams.AddNested("And", err.(request.ErrInvalidParams)) + } + } + if s.Tag != nil { + if err := s.Tag.Validate(); err != nil { + invalidParams.AddNested("Tag", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAnd sets the And field's value. +func (s *LifecycleRuleFilter) SetAnd(v *LifecycleRuleAndOperator) *LifecycleRuleFilter { + s.And = v + return s +} + +// SetPrefix sets the Prefix field's value. +func (s *LifecycleRuleFilter) SetPrefix(v string) *LifecycleRuleFilter { + s.Prefix = &v + return s +} + +// SetTag sets the Tag field's value. +func (s *LifecycleRuleFilter) SetTag(v *Tag) *LifecycleRuleFilter { + s.Tag = v + return s +} + +type ListBucketAnalyticsConfigurationsInput struct { + _ struct{} `type:"structure"` + + // The name of the bucket from which analytics configurations are retrieved. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + + // The ContinuationToken that represents a placeholder from where this request + // should begin. + ContinuationToken *string `location:"querystring" locationName:"continuation-token" type:"string"` +} + +// String returns the string representation +func (s ListBucketAnalyticsConfigurationsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListBucketAnalyticsConfigurationsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListBucketAnalyticsConfigurationsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListBucketAnalyticsConfigurationsInput"} + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBucket sets the Bucket field's value. +func (s *ListBucketAnalyticsConfigurationsInput) SetBucket(v string) *ListBucketAnalyticsConfigurationsInput { + s.Bucket = &v + return s +} + +// SetContinuationToken sets the ContinuationToken field's value. +func (s *ListBucketAnalyticsConfigurationsInput) SetContinuationToken(v string) *ListBucketAnalyticsConfigurationsInput { + s.ContinuationToken = &v + return s +} + +type ListBucketAnalyticsConfigurationsOutput struct { + _ struct{} `type:"structure"` + + // The list of analytics configurations for a bucket. + AnalyticsConfigurationList []*AnalyticsConfiguration `locationName:"AnalyticsConfiguration" type:"list" flattened:"true"` + + // The ContinuationToken that represents where this request began. + ContinuationToken *string `type:"string"` + + // Indicates whether the returned list of analytics configurations is complete. + // A value of true indicates that the list is not complete and the NextContinuationToken + // will be provided for a subsequent request. + IsTruncated *bool `type:"boolean"` + + // NextContinuationToken is sent when isTruncated is true, which indicates that + // there are more analytics configurations to list. The next request must include + // this NextContinuationToken. The token is obfuscated and is not a usable value. + NextContinuationToken *string `type:"string"` +} + +// String returns the string representation +func (s ListBucketAnalyticsConfigurationsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListBucketAnalyticsConfigurationsOutput) GoString() string { + return s.String() +} + +// SetAnalyticsConfigurationList sets the AnalyticsConfigurationList field's value. +func (s *ListBucketAnalyticsConfigurationsOutput) SetAnalyticsConfigurationList(v []*AnalyticsConfiguration) *ListBucketAnalyticsConfigurationsOutput { + s.AnalyticsConfigurationList = v + return s +} + +// SetContinuationToken sets the ContinuationToken field's value. +func (s *ListBucketAnalyticsConfigurationsOutput) SetContinuationToken(v string) *ListBucketAnalyticsConfigurationsOutput { + s.ContinuationToken = &v + return s +} + +// SetIsTruncated sets the IsTruncated field's value. +func (s *ListBucketAnalyticsConfigurationsOutput) SetIsTruncated(v bool) *ListBucketAnalyticsConfigurationsOutput { + s.IsTruncated = &v + return s +} + +// SetNextContinuationToken sets the NextContinuationToken field's value. +func (s *ListBucketAnalyticsConfigurationsOutput) SetNextContinuationToken(v string) *ListBucketAnalyticsConfigurationsOutput { + s.NextContinuationToken = &v + return s +} + +type ListBucketInventoryConfigurationsInput struct { + _ struct{} `type:"structure"` + + // The name of the bucket containing the inventory configurations to retrieve. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + + // The marker used to continue an inventory configuration listing that has been + // truncated. Use the NextContinuationToken from a previously truncated list + // response to continue the listing. The continuation token is an opaque value + // that Amazon S3 understands. + ContinuationToken *string `location:"querystring" locationName:"continuation-token" type:"string"` +} + +// String returns the string representation +func (s ListBucketInventoryConfigurationsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListBucketInventoryConfigurationsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListBucketInventoryConfigurationsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListBucketInventoryConfigurationsInput"} + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBucket sets the Bucket field's value. +func (s *ListBucketInventoryConfigurationsInput) SetBucket(v string) *ListBucketInventoryConfigurationsInput { + s.Bucket = &v + return s +} + +// SetContinuationToken sets the ContinuationToken field's value. +func (s *ListBucketInventoryConfigurationsInput) SetContinuationToken(v string) *ListBucketInventoryConfigurationsInput { + s.ContinuationToken = &v + return s +} + +type ListBucketInventoryConfigurationsOutput struct { + _ struct{} `type:"structure"` + + // If sent in the request, the marker that is used as a starting point for this + // inventory configuration list response. + ContinuationToken *string `type:"string"` + + // The list of inventory configurations for a bucket. + InventoryConfigurationList []*InventoryConfiguration `locationName:"InventoryConfiguration" type:"list" flattened:"true"` + + // Indicates whether the returned list of inventory configurations is truncated + // in this response. A value of true indicates that the list is truncated. + IsTruncated *bool `type:"boolean"` + + // The marker used to continue this inventory configuration listing. Use the + // NextContinuationToken from this response to continue the listing in a subsequent + // request. The continuation token is an opaque value that Amazon S3 understands. + NextContinuationToken *string `type:"string"` +} + +// String returns the string representation +func (s ListBucketInventoryConfigurationsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListBucketInventoryConfigurationsOutput) GoString() string { + return s.String() +} + +// SetContinuationToken sets the ContinuationToken field's value. +func (s *ListBucketInventoryConfigurationsOutput) SetContinuationToken(v string) *ListBucketInventoryConfigurationsOutput { + s.ContinuationToken = &v + return s +} + +// SetInventoryConfigurationList sets the InventoryConfigurationList field's value. +func (s *ListBucketInventoryConfigurationsOutput) SetInventoryConfigurationList(v []*InventoryConfiguration) *ListBucketInventoryConfigurationsOutput { + s.InventoryConfigurationList = v + return s +} + +// SetIsTruncated sets the IsTruncated field's value. +func (s *ListBucketInventoryConfigurationsOutput) SetIsTruncated(v bool) *ListBucketInventoryConfigurationsOutput { + s.IsTruncated = &v + return s +} + +// SetNextContinuationToken sets the NextContinuationToken field's value. +func (s *ListBucketInventoryConfigurationsOutput) SetNextContinuationToken(v string) *ListBucketInventoryConfigurationsOutput { + s.NextContinuationToken = &v + return s +} + +type ListBucketMetricsConfigurationsInput struct { + _ struct{} `type:"structure"` + + // The name of the bucket containing the metrics configurations to retrieve. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + + // The marker that is used to continue a metrics configuration listing that + // has been truncated. Use the NextContinuationToken from a previously truncated + // list response to continue the listing. The continuation token is an opaque + // value that Amazon S3 understands. + ContinuationToken *string `location:"querystring" locationName:"continuation-token" type:"string"` +} + +// String returns the string representation +func (s ListBucketMetricsConfigurationsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListBucketMetricsConfigurationsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListBucketMetricsConfigurationsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListBucketMetricsConfigurationsInput"} + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBucket sets the Bucket field's value. +func (s *ListBucketMetricsConfigurationsInput) SetBucket(v string) *ListBucketMetricsConfigurationsInput { + s.Bucket = &v + return s +} + +// SetContinuationToken sets the ContinuationToken field's value. +func (s *ListBucketMetricsConfigurationsInput) SetContinuationToken(v string) *ListBucketMetricsConfigurationsInput { + s.ContinuationToken = &v + return s +} + +type ListBucketMetricsConfigurationsOutput struct { + _ struct{} `type:"structure"` + + // The marker that is used as a starting point for this metrics configuration + // list response. This value is present if it was sent in the request. + ContinuationToken *string `type:"string"` + + // Indicates whether the returned list of metrics configurations is complete. + // A value of true indicates that the list is not complete and the NextContinuationToken + // will be provided for a subsequent request. + IsTruncated *bool `type:"boolean"` + + // The list of metrics configurations for a bucket. + MetricsConfigurationList []*MetricsConfiguration `locationName:"MetricsConfiguration" type:"list" flattened:"true"` + + // The marker used to continue a metrics configuration listing that has been + // truncated. Use the NextContinuationToken from a previously truncated list + // response to continue the listing. The continuation token is an opaque value + // that Amazon S3 understands. + NextContinuationToken *string `type:"string"` +} + +// String returns the string representation +func (s ListBucketMetricsConfigurationsOutput) String() string { + return awsutil.Prettify(s) } -// SetNoncurrentVersionExpiration sets the NoncurrentVersionExpiration field's value. -func (s *LifecycleRule) SetNoncurrentVersionExpiration(v *NoncurrentVersionExpiration) *LifecycleRule { - s.NoncurrentVersionExpiration = v - return s +// GoString returns the string representation +func (s ListBucketMetricsConfigurationsOutput) GoString() string { + return s.String() } -// SetNoncurrentVersionTransitions sets the NoncurrentVersionTransitions field's value. -func (s *LifecycleRule) SetNoncurrentVersionTransitions(v []*NoncurrentVersionTransition) *LifecycleRule { - s.NoncurrentVersionTransitions = v +// SetContinuationToken sets the ContinuationToken field's value. +func (s *ListBucketMetricsConfigurationsOutput) SetContinuationToken(v string) *ListBucketMetricsConfigurationsOutput { + s.ContinuationToken = &v return s } -// SetPrefix sets the Prefix field's value. -func (s *LifecycleRule) SetPrefix(v string) *LifecycleRule { - s.Prefix = &v +// SetIsTruncated sets the IsTruncated field's value. +func (s *ListBucketMetricsConfigurationsOutput) SetIsTruncated(v bool) *ListBucketMetricsConfigurationsOutput { + s.IsTruncated = &v return s } -// SetStatus sets the Status field's value. -func (s *LifecycleRule) SetStatus(v string) *LifecycleRule { - s.Status = &v +// SetMetricsConfigurationList sets the MetricsConfigurationList field's value. +func (s *ListBucketMetricsConfigurationsOutput) SetMetricsConfigurationList(v []*MetricsConfiguration) *ListBucketMetricsConfigurationsOutput { + s.MetricsConfigurationList = v return s } -// SetTransitions sets the Transitions field's value. -func (s *LifecycleRule) SetTransitions(v []*Transition) *LifecycleRule { - s.Transitions = v +// SetNextContinuationToken sets the NextContinuationToken field's value. +func (s *ListBucketMetricsConfigurationsOutput) SetNextContinuationToken(v string) *ListBucketMetricsConfigurationsOutput { + s.NextContinuationToken = &v return s } @@ -10335,6 +12936,175 @@ func (s *LoggingEnabled) SetTargetPrefix(v string) *LoggingEnabled { return s } +type MetricsAndOperator struct { + _ struct{} `type:"structure"` + + // The prefix used when evaluating an AND predicate. + Prefix *string `type:"string"` + + // The list of tags used when evaluating an AND predicate. + Tags []*Tag `locationName:"Tag" locationNameList:"Tag" type:"list" flattened:"true"` +} + +// String returns the string representation +func (s MetricsAndOperator) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s MetricsAndOperator) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MetricsAndOperator) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "MetricsAndOperator"} + if s.Tags != nil { + for i, v := range s.Tags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetPrefix sets the Prefix field's value. +func (s *MetricsAndOperator) SetPrefix(v string) *MetricsAndOperator { + s.Prefix = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *MetricsAndOperator) SetTags(v []*Tag) *MetricsAndOperator { + s.Tags = v + return s +} + +type MetricsConfiguration struct { + _ struct{} `type:"structure"` + + // Specifies a metrics configuration filter. The metrics configuration will + // only include objects that meet the filter's criteria. A filter must be a + // prefix, a tag, or a conjunction (MetricsAndOperator). + Filter *MetricsFilter `type:"structure"` + + // The ID used to identify the metrics configuration. + // + // Id is a required field + Id *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s MetricsConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s MetricsConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MetricsConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "MetricsConfiguration"} + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFilter sets the Filter field's value. +func (s *MetricsConfiguration) SetFilter(v *MetricsFilter) *MetricsConfiguration { + s.Filter = v + return s +} + +// SetId sets the Id field's value. +func (s *MetricsConfiguration) SetId(v string) *MetricsConfiguration { + s.Id = &v + return s +} + +type MetricsFilter struct { + _ struct{} `type:"structure"` + + // A conjunction (logical AND) of predicates, which is used in evaluating a + // metrics filter. The operator must have at least two predicates, and an object + // must match all of the predicates in order for the filter to apply. + And *MetricsAndOperator `type:"structure"` + + // The prefix used when evaluating a metrics filter. + Prefix *string `type:"string"` + + // The tag used when evaluating a metrics filter. + Tag *Tag `type:"structure"` +} + +// String returns the string representation +func (s MetricsFilter) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s MetricsFilter) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MetricsFilter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "MetricsFilter"} + if s.And != nil { + if err := s.And.Validate(); err != nil { + invalidParams.AddNested("And", err.(request.ErrInvalidParams)) + } + } + if s.Tag != nil { + if err := s.Tag.Validate(); err != nil { + invalidParams.AddNested("Tag", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAnd sets the And field's value. +func (s *MetricsFilter) SetAnd(v *MetricsAndOperator) *MetricsFilter { + s.And = v + return s +} + +// SetPrefix sets the Prefix field's value. +func (s *MetricsFilter) SetPrefix(v string) *MetricsFilter { + s.Prefix = &v + return s +} + +// SetTag sets the Tag field's value. +func (s *MetricsFilter) SetTag(v *Tag) *MetricsFilter { + s.Tag = v + return s +} + type MultipartUpload struct { _ struct{} `type:"structure"` @@ -11079,6 +13849,91 @@ func (s PutBucketAclOutput) GoString() string { return s.String() } +type PutBucketAnalyticsConfigurationInput struct { + _ struct{} `type:"structure" payload:"AnalyticsConfiguration"` + + // The configuration and any analyses for the analytics filter. + // + // AnalyticsConfiguration is a required field + AnalyticsConfiguration *AnalyticsConfiguration `locationName:"AnalyticsConfiguration" type:"structure" required:"true"` + + // The name of the bucket to which an analytics configuration is stored. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + + // The identifier used to represent an analytics configuration. + // + // Id is a required field + Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` +} + +// String returns the string representation +func (s PutBucketAnalyticsConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutBucketAnalyticsConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutBucketAnalyticsConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutBucketAnalyticsConfigurationInput"} + if s.AnalyticsConfiguration == nil { + invalidParams.Add(request.NewErrParamRequired("AnalyticsConfiguration")) + } + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.AnalyticsConfiguration != nil { + if err := s.AnalyticsConfiguration.Validate(); err != nil { + invalidParams.AddNested("AnalyticsConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAnalyticsConfiguration sets the AnalyticsConfiguration field's value. +func (s *PutBucketAnalyticsConfigurationInput) SetAnalyticsConfiguration(v *AnalyticsConfiguration) *PutBucketAnalyticsConfigurationInput { + s.AnalyticsConfiguration = v + return s +} + +// SetBucket sets the Bucket field's value. +func (s *PutBucketAnalyticsConfigurationInput) SetBucket(v string) *PutBucketAnalyticsConfigurationInput { + s.Bucket = &v + return s +} + +// SetId sets the Id field's value. +func (s *PutBucketAnalyticsConfigurationInput) SetId(v string) *PutBucketAnalyticsConfigurationInput { + s.Id = &v + return s +} + +type PutBucketAnalyticsConfigurationOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s PutBucketAnalyticsConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutBucketAnalyticsConfigurationOutput) GoString() string { + return s.String() +} + type PutBucketCorsInput struct { _ struct{} `type:"structure" payload:"CORSConfiguration"` @@ -11121,28 +13976,113 @@ func (s *PutBucketCorsInput) Validate() error { } // SetBucket sets the Bucket field's value. -func (s *PutBucketCorsInput) SetBucket(v string) *PutBucketCorsInput { +func (s *PutBucketCorsInput) SetBucket(v string) *PutBucketCorsInput { + s.Bucket = &v + return s +} + +// SetCORSConfiguration sets the CORSConfiguration field's value. +func (s *PutBucketCorsInput) SetCORSConfiguration(v *CORSConfiguration) *PutBucketCorsInput { + s.CORSConfiguration = v + return s +} + +type PutBucketCorsOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s PutBucketCorsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutBucketCorsOutput) GoString() string { + return s.String() +} + +type PutBucketInventoryConfigurationInput struct { + _ struct{} `type:"structure" payload:"InventoryConfiguration"` + + // The name of the bucket where the inventory configuration will be stored. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + + // The ID used to identify the inventory configuration. + // + // Id is a required field + Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` + + // Specifies the inventory configuration. + // + // InventoryConfiguration is a required field + InventoryConfiguration *InventoryConfiguration `locationName:"InventoryConfiguration" type:"structure" required:"true"` +} + +// String returns the string representation +func (s PutBucketInventoryConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutBucketInventoryConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutBucketInventoryConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutBucketInventoryConfigurationInput"} + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.InventoryConfiguration == nil { + invalidParams.Add(request.NewErrParamRequired("InventoryConfiguration")) + } + if s.InventoryConfiguration != nil { + if err := s.InventoryConfiguration.Validate(); err != nil { + invalidParams.AddNested("InventoryConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBucket sets the Bucket field's value. +func (s *PutBucketInventoryConfigurationInput) SetBucket(v string) *PutBucketInventoryConfigurationInput { s.Bucket = &v return s } -// SetCORSConfiguration sets the CORSConfiguration field's value. -func (s *PutBucketCorsInput) SetCORSConfiguration(v *CORSConfiguration) *PutBucketCorsInput { - s.CORSConfiguration = v +// SetId sets the Id field's value. +func (s *PutBucketInventoryConfigurationInput) SetId(v string) *PutBucketInventoryConfigurationInput { + s.Id = &v return s } -type PutBucketCorsOutput struct { +// SetInventoryConfiguration sets the InventoryConfiguration field's value. +func (s *PutBucketInventoryConfigurationInput) SetInventoryConfiguration(v *InventoryConfiguration) *PutBucketInventoryConfigurationInput { + s.InventoryConfiguration = v + return s +} + +type PutBucketInventoryConfigurationOutput struct { _ struct{} `type:"structure"` } // String returns the string representation -func (s PutBucketCorsOutput) String() string { +func (s PutBucketInventoryConfigurationOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s PutBucketCorsOutput) GoString() string { +func (s PutBucketInventoryConfigurationOutput) GoString() string { return s.String() } @@ -11339,6 +14279,91 @@ func (s PutBucketLoggingOutput) GoString() string { return s.String() } +type PutBucketMetricsConfigurationInput struct { + _ struct{} `type:"structure" payload:"MetricsConfiguration"` + + // The name of the bucket for which the metrics configuration is set. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + + // The ID used to identify the metrics configuration. + // + // Id is a required field + Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` + + // Specifies the metrics configuration. + // + // MetricsConfiguration is a required field + MetricsConfiguration *MetricsConfiguration `locationName:"MetricsConfiguration" type:"structure" required:"true"` +} + +// String returns the string representation +func (s PutBucketMetricsConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutBucketMetricsConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutBucketMetricsConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutBucketMetricsConfigurationInput"} + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.MetricsConfiguration == nil { + invalidParams.Add(request.NewErrParamRequired("MetricsConfiguration")) + } + if s.MetricsConfiguration != nil { + if err := s.MetricsConfiguration.Validate(); err != nil { + invalidParams.AddNested("MetricsConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBucket sets the Bucket field's value. +func (s *PutBucketMetricsConfigurationInput) SetBucket(v string) *PutBucketMetricsConfigurationInput { + s.Bucket = &v + return s +} + +// SetId sets the Id field's value. +func (s *PutBucketMetricsConfigurationInput) SetId(v string) *PutBucketMetricsConfigurationInput { + s.Id = &v + return s +} + +// SetMetricsConfiguration sets the MetricsConfiguration field's value. +func (s *PutBucketMetricsConfigurationInput) SetMetricsConfiguration(v *MetricsConfiguration) *PutBucketMetricsConfigurationInput { + s.MetricsConfiguration = v + return s +} + +type PutBucketMetricsConfigurationOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s PutBucketMetricsConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutBucketMetricsConfigurationOutput) GoString() string { + return s.String() +} + type PutBucketNotificationConfigurationInput struct { _ struct{} `type:"structure" payload:"NotificationConfiguration"` @@ -12134,6 +15159,9 @@ type PutObjectInput struct { // The type of storage to use for the object. Defaults to 'STANDARD'. StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"` + // The tag-set for the object. The tag-set must be encoded as URL Query parameters + Tagging *string `location:"header" locationName:"x-amz-tagging" type:"string"` + // If the bucket is configured as a website, redirects requests for this object // to another object in the same bucket or to an external URL. Amazon S3 stores // the value of this header in the object metadata. @@ -12307,6 +15335,12 @@ func (s *PutObjectInput) SetStorageClass(v string) *PutObjectInput { return s } +// SetTagging sets the Tagging field's value. +func (s *PutObjectInput) SetTagging(v string) *PutObjectInput { + s.Tagging = &v + return s +} + // SetWebsiteRedirectLocation sets the WebsiteRedirectLocation field's value. func (s *PutObjectInput) SetWebsiteRedirectLocation(v string) *PutObjectInput { s.WebsiteRedirectLocation = &v @@ -12407,6 +15441,108 @@ func (s *PutObjectOutput) SetVersionId(v string) *PutObjectOutput { return s } +type PutObjectTaggingInput struct { + _ struct{} `type:"structure" payload:"Tagging"` + + // Bucket is a required field + Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + + // Key is a required field + Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` + + // Tagging is a required field + Tagging *Tagging `locationName:"Tagging" type:"structure" required:"true"` + + // VersionId is a required field + VersionId *string `location:"uri" locationName:"VersionId" type:"string" required:"true"` +} + +// String returns the string representation +func (s PutObjectTaggingInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutObjectTaggingInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutObjectTaggingInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutObjectTaggingInput"} + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Key == nil { + invalidParams.Add(request.NewErrParamRequired("Key")) + } + if s.Key != nil && len(*s.Key) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Key", 1)) + } + if s.Tagging == nil { + invalidParams.Add(request.NewErrParamRequired("Tagging")) + } + if s.VersionId == nil { + invalidParams.Add(request.NewErrParamRequired("VersionId")) + } + if s.Tagging != nil { + if err := s.Tagging.Validate(); err != nil { + invalidParams.AddNested("Tagging", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBucket sets the Bucket field's value. +func (s *PutObjectTaggingInput) SetBucket(v string) *PutObjectTaggingInput { + s.Bucket = &v + return s +} + +// SetKey sets the Key field's value. +func (s *PutObjectTaggingInput) SetKey(v string) *PutObjectTaggingInput { + s.Key = &v + return s +} + +// SetTagging sets the Tagging field's value. +func (s *PutObjectTaggingInput) SetTagging(v *Tagging) *PutObjectTaggingInput { + s.Tagging = v + return s +} + +// SetVersionId sets the VersionId field's value. +func (s *PutObjectTaggingInput) SetVersionId(v string) *PutObjectTaggingInput { + s.VersionId = &v + return s +} + +type PutObjectTaggingOutput struct { + _ struct{} `type:"structure"` + + VersionId *string `location:"header" locationName:"x-amz-version-id" type:"string"` +} + +// String returns the string representation +func (s PutObjectTaggingOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutObjectTaggingOutput) GoString() string { + return s.String() +} + +// SetVersionId sets the VersionId field's value. +func (s *PutObjectTaggingOutput) SetVersionId(v string) *PutObjectTaggingOutput { + s.VersionId = &v + return s +} + // Container for specifying an configuration when you want Amazon S3 to publish // events to an Amazon Simple Queue Service (Amazon SQS) queue. type QueueConfiguration struct { @@ -13155,6 +16291,102 @@ func (s *Rule) SetTransition(v *Transition) *Rule { return s } +type StorageClassAnalysis struct { + _ struct{} `type:"structure"` + + // A container used to describe how data related to the storage class analysis + // should be exported. + DataExport *StorageClassAnalysisDataExport `type:"structure"` +} + +// String returns the string representation +func (s StorageClassAnalysis) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s StorageClassAnalysis) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StorageClassAnalysis) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "StorageClassAnalysis"} + if s.DataExport != nil { + if err := s.DataExport.Validate(); err != nil { + invalidParams.AddNested("DataExport", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDataExport sets the DataExport field's value. +func (s *StorageClassAnalysis) SetDataExport(v *StorageClassAnalysisDataExport) *StorageClassAnalysis { + s.DataExport = v + return s +} + +type StorageClassAnalysisDataExport struct { + _ struct{} `type:"structure"` + + // The place to store the data for an analysis. + // + // Destination is a required field + Destination *AnalyticsExportDestination `type:"structure" required:"true"` + + // The version of the output schema to use when exporting data. Must be V_1. + // + // OutputSchemaVersion is a required field + OutputSchemaVersion *string `type:"string" required:"true" enum:"StorageClassAnalysisSchemaVersion"` +} + +// String returns the string representation +func (s StorageClassAnalysisDataExport) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s StorageClassAnalysisDataExport) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StorageClassAnalysisDataExport) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "StorageClassAnalysisDataExport"} + if s.Destination == nil { + invalidParams.Add(request.NewErrParamRequired("Destination")) + } + if s.OutputSchemaVersion == nil { + invalidParams.Add(request.NewErrParamRequired("OutputSchemaVersion")) + } + if s.Destination != nil { + if err := s.Destination.Validate(); err != nil { + invalidParams.AddNested("Destination", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDestination sets the Destination field's value. +func (s *StorageClassAnalysisDataExport) SetDestination(v *AnalyticsExportDestination) *StorageClassAnalysisDataExport { + s.Destination = v + return s +} + +// SetOutputSchemaVersion sets the OutputSchemaVersion field's value. +func (s *StorageClassAnalysisDataExport) SetOutputSchemaVersion(v string) *StorageClassAnalysisDataExport { + s.OutputSchemaVersion = &v + return s +} + type Tag struct { _ struct{} `type:"structure"` @@ -14114,6 +17346,11 @@ func (s *WebsiteConfiguration) SetRoutingRules(v []*RoutingRule) *WebsiteConfigu return s } +const ( + // AnalyticsS3ExportFileFormatCsv is a AnalyticsS3ExportFileFormat enum value + AnalyticsS3ExportFileFormatCsv = "CSV" +) + const ( // BucketAccelerateStatusEnabled is a BucketAccelerateStatus enum value BucketAccelerateStatusEnabled = "Enabled" @@ -14247,6 +17484,47 @@ const ( FilterRuleNameSuffix = "suffix" ) +const ( + // InventoryFormatCsv is a InventoryFormat enum value + InventoryFormatCsv = "CSV" +) + +const ( + // InventoryFrequencyDaily is a InventoryFrequency enum value + InventoryFrequencyDaily = "Daily" + + // InventoryFrequencyWeekly is a InventoryFrequency enum value + InventoryFrequencyWeekly = "Weekly" +) + +const ( + // InventoryIncludedObjectVersionsAll is a InventoryIncludedObjectVersions enum value + InventoryIncludedObjectVersionsAll = "All" + + // InventoryIncludedObjectVersionsCurrent is a InventoryIncludedObjectVersions enum value + InventoryIncludedObjectVersionsCurrent = "Current" +) + +const ( + // InventoryOptionalFieldSize is a InventoryOptionalField enum value + InventoryOptionalFieldSize = "Size" + + // InventoryOptionalFieldLastModifiedDate is a InventoryOptionalField enum value + InventoryOptionalFieldLastModifiedDate = "LastModifiedDate" + + // InventoryOptionalFieldStorageClass is a InventoryOptionalField enum value + InventoryOptionalFieldStorageClass = "StorageClass" + + // InventoryOptionalFieldEtag is a InventoryOptionalField enum value + InventoryOptionalFieldEtag = "ETag" + + // InventoryOptionalFieldIsMultipartUploaded is a InventoryOptionalField enum value + InventoryOptionalFieldIsMultipartUploaded = "IsMultipartUploaded" + + // InventoryOptionalFieldReplicationStatus is a InventoryOptionalField enum value + InventoryOptionalFieldReplicationStatus = "ReplicationStatus" +) + const ( // MFADeleteEnabled is a MFADelete enum value MFADeleteEnabled = "Enabled" @@ -14400,6 +17678,19 @@ const ( StorageClassStandardIa = "STANDARD_IA" ) +const ( + // StorageClassAnalysisSchemaVersionV1 is a StorageClassAnalysisSchemaVersion enum value + StorageClassAnalysisSchemaVersionV1 = "V_1" +) + +const ( + // TaggingDirectiveCopy is a TaggingDirective enum value + TaggingDirectiveCopy = "COPY" + + // TaggingDirectiveReplace is a TaggingDirective enum value + TaggingDirectiveReplace = "REPLACE" +) + const ( // TierStandard is a Tier enum value TierStandard = "Standard" diff --git a/service/s3/examples_test.go b/service/s3/examples_test.go index 67286b6ea17..12494525c8d 100644 --- a/service/s3/examples_test.go +++ b/service/s3/examples_test.go @@ -123,6 +123,8 @@ func ExampleS3_CopyObject() { SSEKMSKeyId: aws.String("SSEKMSKeyId"), ServerSideEncryption: aws.String("ServerSideEncryption"), StorageClass: aws.String("StorageClass"), + Tagging: aws.String("TaggingHeader"), + TaggingDirective: aws.String("TaggingDirective"), WebsiteRedirectLocation: aws.String("WebsiteRedirectLocation"), } resp, err := svc.CopyObject(params) @@ -246,6 +248,32 @@ func ExampleS3_DeleteBucket() { fmt.Println(resp) } +func ExampleS3_DeleteBucketAnalyticsConfiguration() { + sess, err := session.NewSession() + if err != nil { + fmt.Println("failed to create session,", err) + return + } + + svc := s3.New(sess) + + params := &s3.DeleteBucketAnalyticsConfigurationInput{ + Bucket: aws.String("BucketName"), // Required + Id: aws.String("AnalyticsId"), // Required + } + resp, err := svc.DeleteBucketAnalyticsConfiguration(params) + + if err != nil { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + return + } + + // Pretty-print the response data. + fmt.Println(resp) +} + func ExampleS3_DeleteBucketCors() { sess, err := session.NewSession() if err != nil { @@ -271,6 +299,32 @@ func ExampleS3_DeleteBucketCors() { fmt.Println(resp) } +func ExampleS3_DeleteBucketInventoryConfiguration() { + sess, err := session.NewSession() + if err != nil { + fmt.Println("failed to create session,", err) + return + } + + svc := s3.New(sess) + + params := &s3.DeleteBucketInventoryConfigurationInput{ + Bucket: aws.String("BucketName"), // Required + Id: aws.String("InventoryId"), // Required + } + resp, err := svc.DeleteBucketInventoryConfiguration(params) + + if err != nil { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + return + } + + // Pretty-print the response data. + fmt.Println(resp) +} + func ExampleS3_DeleteBucketLifecycle() { sess, err := session.NewSession() if err != nil { @@ -296,6 +350,32 @@ func ExampleS3_DeleteBucketLifecycle() { fmt.Println(resp) } +func ExampleS3_DeleteBucketMetricsConfiguration() { + sess, err := session.NewSession() + if err != nil { + fmt.Println("failed to create session,", err) + return + } + + svc := s3.New(sess) + + params := &s3.DeleteBucketMetricsConfigurationInput{ + Bucket: aws.String("BucketName"), // Required + Id: aws.String("MetricsId"), // Required + } + resp, err := svc.DeleteBucketMetricsConfiguration(params) + + if err != nil { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + return + } + + // Pretty-print the response data. + fmt.Println(resp) +} + func ExampleS3_DeleteBucketPolicy() { sess, err := session.NewSession() if err != nil { @@ -425,6 +505,33 @@ func ExampleS3_DeleteObject() { fmt.Println(resp) } +func ExampleS3_DeleteObjectTagging() { + sess, err := session.NewSession() + if err != nil { + fmt.Println("failed to create session,", err) + return + } + + svc := s3.New(sess) + + params := &s3.DeleteObjectTaggingInput{ + Bucket: aws.String("BucketName"), // Required + Key: aws.String("ObjectKey"), // Required + VersionId: aws.String("ObjectVersionId"), + } + resp, err := svc.DeleteObjectTagging(params) + + if err != nil { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + return + } + + // Pretty-print the response data. + fmt.Println(resp) +} + func ExampleS3_DeleteObjects() { sess, err := session.NewSession() if err != nil { @@ -512,6 +619,32 @@ func ExampleS3_GetBucketAcl() { fmt.Println(resp) } +func ExampleS3_GetBucketAnalyticsConfiguration() { + sess, err := session.NewSession() + if err != nil { + fmt.Println("failed to create session,", err) + return + } + + svc := s3.New(sess) + + params := &s3.GetBucketAnalyticsConfigurationInput{ + Bucket: aws.String("BucketName"), // Required + Id: aws.String("AnalyticsId"), // Required + } + resp, err := svc.GetBucketAnalyticsConfiguration(params) + + if err != nil { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + return + } + + // Pretty-print the response data. + fmt.Println(resp) +} + func ExampleS3_GetBucketCors() { sess, err := session.NewSession() if err != nil { @@ -537,6 +670,32 @@ func ExampleS3_GetBucketCors() { fmt.Println(resp) } +func ExampleS3_GetBucketInventoryConfiguration() { + sess, err := session.NewSession() + if err != nil { + fmt.Println("failed to create session,", err) + return + } + + svc := s3.New(sess) + + params := &s3.GetBucketInventoryConfigurationInput{ + Bucket: aws.String("BucketName"), // Required + Id: aws.String("InventoryId"), // Required + } + resp, err := svc.GetBucketInventoryConfiguration(params) + + if err != nil { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + return + } + + // Pretty-print the response data. + fmt.Println(resp) +} + func ExampleS3_GetBucketLifecycle() { sess, err := session.NewSession() if err != nil { @@ -637,6 +796,32 @@ func ExampleS3_GetBucketLogging() { fmt.Println(resp) } +func ExampleS3_GetBucketMetricsConfiguration() { + sess, err := session.NewSession() + if err != nil { + fmt.Println("failed to create session,", err) + return + } + + svc := s3.New(sess) + + params := &s3.GetBucketMetricsConfigurationInput{ + Bucket: aws.String("BucketName"), // Required + Id: aws.String("MetricsId"), // Required + } + resp, err := svc.GetBucketMetricsConfiguration(params) + + if err != nil { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + return + } + + // Pretty-print the response data. + fmt.Println(resp) +} + func ExampleS3_GetBucketNotification() { sess, err := session.NewSession() if err != nil { @@ -908,6 +1093,33 @@ func ExampleS3_GetObjectAcl() { fmt.Println(resp) } +func ExampleS3_GetObjectTagging() { + sess, err := session.NewSession() + if err != nil { + fmt.Println("failed to create session,", err) + return + } + + svc := s3.New(sess) + + params := &s3.GetObjectTaggingInput{ + Bucket: aws.String("BucketName"), // Required + Key: aws.String("ObjectKey"), // Required + VersionId: aws.String("ObjectVersionId"), // Required + } + resp, err := svc.GetObjectTagging(params) + + if err != nil { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + return + } + + // Pretty-print the response data. + fmt.Println(resp) +} + func ExampleS3_GetObjectTorrent() { sess, err := session.NewSession() if err != nil { @@ -997,6 +1209,84 @@ func ExampleS3_HeadObject() { fmt.Println(resp) } +func ExampleS3_ListBucketAnalyticsConfigurations() { + sess, err := session.NewSession() + if err != nil { + fmt.Println("failed to create session,", err) + return + } + + svc := s3.New(sess) + + params := &s3.ListBucketAnalyticsConfigurationsInput{ + Bucket: aws.String("BucketName"), // Required + ContinuationToken: aws.String("Token"), + } + resp, err := svc.ListBucketAnalyticsConfigurations(params) + + if err != nil { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + return + } + + // Pretty-print the response data. + fmt.Println(resp) +} + +func ExampleS3_ListBucketInventoryConfigurations() { + sess, err := session.NewSession() + if err != nil { + fmt.Println("failed to create session,", err) + return + } + + svc := s3.New(sess) + + params := &s3.ListBucketInventoryConfigurationsInput{ + Bucket: aws.String("BucketName"), // Required + ContinuationToken: aws.String("Token"), + } + resp, err := svc.ListBucketInventoryConfigurations(params) + + if err != nil { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + return + } + + // Pretty-print the response data. + fmt.Println(resp) +} + +func ExampleS3_ListBucketMetricsConfigurations() { + sess, err := session.NewSession() + if err != nil { + fmt.Println("failed to create session,", err) + return + } + + svc := s3.New(sess) + + params := &s3.ListBucketMetricsConfigurationsInput{ + Bucket: aws.String("BucketName"), // Required + ContinuationToken: aws.String("Token"), + } + resp, err := svc.ListBucketMetricsConfigurations(params) + + if err != nil { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + return + } + + // Pretty-print the response data. + fmt.Println(resp) +} + func ExampleS3_ListBuckets() { sess, err := session.NewSession() if err != nil { @@ -1254,6 +1544,65 @@ func ExampleS3_PutBucketAcl() { fmt.Println(resp) } +func ExampleS3_PutBucketAnalyticsConfiguration() { + sess, err := session.NewSession() + if err != nil { + fmt.Println("failed to create session,", err) + return + } + + svc := s3.New(sess) + + params := &s3.PutBucketAnalyticsConfigurationInput{ + AnalyticsConfiguration: &s3.AnalyticsConfiguration{ // Required + Id: aws.String("AnalyticsId"), // Required + StorageClassAnalysis: &s3.StorageClassAnalysis{ // Required + DataExport: &s3.StorageClassAnalysisDataExport{ + Destination: &s3.AnalyticsExportDestination{ // Required + S3BucketDestination: &s3.AnalyticsS3BucketDestination{ // Required + Bucket: aws.String("BucketName"), // Required + Format: aws.String("AnalyticsS3ExportFileFormat"), // Required + BucketAccountId: aws.String("AccountId"), + Prefix: aws.String("Prefix"), + }, + }, + OutputSchemaVersion: aws.String("StorageClassAnalysisSchemaVersion"), // Required + }, + }, + Filter: &s3.AnalyticsFilter{ + And: &s3.AnalyticsAndOperator{ + Prefix: aws.String("Prefix"), + Tags: []*s3.Tag{ + { // Required + Key: aws.String("ObjectKey"), // Required + Value: aws.String("Value"), // Required + }, + // More values... + }, + }, + Prefix: aws.String("Prefix"), + Tag: &s3.Tag{ + Key: aws.String("ObjectKey"), // Required + Value: aws.String("Value"), // Required + }, + }, + }, + Bucket: aws.String("BucketName"), // Required + Id: aws.String("AnalyticsId"), // Required + } + resp, err := svc.PutBucketAnalyticsConfiguration(params) + + if err != nil { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + return + } + + // Pretty-print the response data. + fmt.Println(resp) +} + func ExampleS3_PutBucketCors() { sess, err := session.NewSession() if err != nil { @@ -1303,6 +1652,55 @@ func ExampleS3_PutBucketCors() { fmt.Println(resp) } +func ExampleS3_PutBucketInventoryConfiguration() { + sess, err := session.NewSession() + if err != nil { + fmt.Println("failed to create session,", err) + return + } + + svc := s3.New(sess) + + params := &s3.PutBucketInventoryConfigurationInput{ + Bucket: aws.String("BucketName"), // Required + Id: aws.String("InventoryId"), // Required + InventoryConfiguration: &s3.InventoryConfiguration{ // Required + Destination: &s3.InventoryDestination{ // Required + S3BucketDestination: &s3.InventoryS3BucketDestination{ // Required + Bucket: aws.String("BucketName"), // Required + Format: aws.String("InventoryFormat"), // Required + AccountId: aws.String("AccountId"), + Prefix: aws.String("Prefix"), + }, + }, + Id: aws.String("InventoryId"), // Required + IncludedObjectVersions: aws.String("InventoryIncludedObjectVersions"), // Required + IsEnabled: aws.Bool(true), // Required + Schedule: &s3.InventorySchedule{ // Required + Frequency: aws.String("InventoryFrequency"), // Required + }, + Filter: &s3.InventoryFilter{ + Prefix: aws.String("Prefix"), // Required + }, + OptionalFields: []*string{ + aws.String("InventoryOptionalField"), // Required + // More values... + }, + }, + } + resp, err := svc.PutBucketInventoryConfiguration(params) + + if err != nil { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + return + } + + // Pretty-print the response data. + fmt.Println(resp) +} + func ExampleS3_PutBucketLifecycle() { sess, err := session.NewSession() if err != nil { @@ -1372,7 +1770,6 @@ func ExampleS3_PutBucketLifecycleConfiguration() { LifecycleConfiguration: &s3.BucketLifecycleConfiguration{ Rules: []*s3.LifecycleRule{ // Required { // Required - Prefix: aws.String("Prefix"), // Required Status: aws.String("ExpirationStatus"), // Required AbortIncompleteMultipartUpload: &s3.AbortIncompleteMultipartUpload{ DaysAfterInitiation: aws.Int64(1), @@ -1382,6 +1779,23 @@ func ExampleS3_PutBucketLifecycleConfiguration() { Days: aws.Int64(1), ExpiredObjectDeleteMarker: aws.Bool(true), }, + Filter: &s3.LifecycleRuleFilter{ + And: &s3.LifecycleRuleAndOperator{ + Prefix: aws.String("Prefix"), + Tags: []*s3.Tag{ + { // Required + Key: aws.String("ObjectKey"), // Required + Value: aws.String("Value"), // Required + }, + // More values... + }, + }, + Prefix: aws.String("Prefix"), + Tag: &s3.Tag{ + Key: aws.String("ObjectKey"), // Required + Value: aws.String("Value"), // Required + }, + }, ID: aws.String("ID"), NoncurrentVersionExpiration: &s3.NoncurrentVersionExpiration{ NoncurrentDays: aws.Int64(1), @@ -1393,6 +1807,7 @@ func ExampleS3_PutBucketLifecycleConfiguration() { }, // More values... }, + Prefix: aws.String("Prefix"), Transitions: []*s3.Transition{ { // Required Date: aws.Time(time.Now()), @@ -1463,6 +1878,52 @@ func ExampleS3_PutBucketLogging() { fmt.Println(resp) } +func ExampleS3_PutBucketMetricsConfiguration() { + sess, err := session.NewSession() + if err != nil { + fmt.Println("failed to create session,", err) + return + } + + svc := s3.New(sess) + + params := &s3.PutBucketMetricsConfigurationInput{ + Bucket: aws.String("BucketName"), // Required + Id: aws.String("MetricsId"), // Required + MetricsConfiguration: &s3.MetricsConfiguration{ // Required + Id: aws.String("MetricsId"), // Required + Filter: &s3.MetricsFilter{ + And: &s3.MetricsAndOperator{ + Prefix: aws.String("Prefix"), + Tags: []*s3.Tag{ + { // Required + Key: aws.String("ObjectKey"), // Required + Value: aws.String("Value"), // Required + }, + // More values... + }, + }, + Prefix: aws.String("Prefix"), + Tag: &s3.Tag{ + Key: aws.String("ObjectKey"), // Required + Value: aws.String("Value"), // Required + }, + }, + }, + } + resp, err := svc.PutBucketMetricsConfiguration(params) + + if err != nil { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + return + } + + // Pretty-print the response data. + fmt.Println(resp) +} + func ExampleS3_PutBucketNotification() { sess, err := session.NewSession() if err != nil { @@ -1858,6 +2319,7 @@ func ExampleS3_PutObject() { SSEKMSKeyId: aws.String("SSEKMSKeyId"), ServerSideEncryption: aws.String("ServerSideEncryption"), StorageClass: aws.String("StorageClass"), + Tagging: aws.String("TaggingHeader"), WebsiteRedirectLocation: aws.String("WebsiteRedirectLocation"), } resp, err := svc.PutObject(params) @@ -1926,6 +2388,42 @@ func ExampleS3_PutObjectAcl() { fmt.Println(resp) } +func ExampleS3_PutObjectTagging() { + sess, err := session.NewSession() + if err != nil { + fmt.Println("failed to create session,", err) + return + } + + svc := s3.New(sess) + + params := &s3.PutObjectTaggingInput{ + Bucket: aws.String("BucketName"), // Required + Key: aws.String("ObjectKey"), // Required + Tagging: &s3.Tagging{ // Required + TagSet: []*s3.Tag{ // Required + { // Required + Key: aws.String("ObjectKey"), // Required + Value: aws.String("Value"), // Required + }, + // More values... + }, + }, + VersionId: aws.String("ObjectVersionId"), // Required + } + resp, err := svc.PutObjectTagging(params) + + if err != nil { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + return + } + + // Pretty-print the response data. + fmt.Println(resp) +} + func ExampleS3_RestoreObject() { sess, err := session.NewSession() if err != nil { diff --git a/service/s3/s3iface/interface.go b/service/s3/s3iface/interface.go index dd13513d3c2..8006412c574 100644 --- a/service/s3/s3iface/interface.go +++ b/service/s3/s3iface/interface.go @@ -83,14 +83,26 @@ type S3API interface { DeleteBucket(*s3.DeleteBucketInput) (*s3.DeleteBucketOutput, error) + DeleteBucketAnalyticsConfigurationRequest(*s3.DeleteBucketAnalyticsConfigurationInput) (*request.Request, *s3.DeleteBucketAnalyticsConfigurationOutput) + + DeleteBucketAnalyticsConfiguration(*s3.DeleteBucketAnalyticsConfigurationInput) (*s3.DeleteBucketAnalyticsConfigurationOutput, error) + DeleteBucketCorsRequest(*s3.DeleteBucketCorsInput) (*request.Request, *s3.DeleteBucketCorsOutput) DeleteBucketCors(*s3.DeleteBucketCorsInput) (*s3.DeleteBucketCorsOutput, error) + DeleteBucketInventoryConfigurationRequest(*s3.DeleteBucketInventoryConfigurationInput) (*request.Request, *s3.DeleteBucketInventoryConfigurationOutput) + + DeleteBucketInventoryConfiguration(*s3.DeleteBucketInventoryConfigurationInput) (*s3.DeleteBucketInventoryConfigurationOutput, error) + DeleteBucketLifecycleRequest(*s3.DeleteBucketLifecycleInput) (*request.Request, *s3.DeleteBucketLifecycleOutput) DeleteBucketLifecycle(*s3.DeleteBucketLifecycleInput) (*s3.DeleteBucketLifecycleOutput, error) + DeleteBucketMetricsConfigurationRequest(*s3.DeleteBucketMetricsConfigurationInput) (*request.Request, *s3.DeleteBucketMetricsConfigurationOutput) + + DeleteBucketMetricsConfiguration(*s3.DeleteBucketMetricsConfigurationInput) (*s3.DeleteBucketMetricsConfigurationOutput, error) + DeleteBucketPolicyRequest(*s3.DeleteBucketPolicyInput) (*request.Request, *s3.DeleteBucketPolicyOutput) DeleteBucketPolicy(*s3.DeleteBucketPolicyInput) (*s3.DeleteBucketPolicyOutput, error) @@ -111,6 +123,10 @@ type S3API interface { DeleteObject(*s3.DeleteObjectInput) (*s3.DeleteObjectOutput, error) + DeleteObjectTaggingRequest(*s3.DeleteObjectTaggingInput) (*request.Request, *s3.DeleteObjectTaggingOutput) + + DeleteObjectTagging(*s3.DeleteObjectTaggingInput) (*s3.DeleteObjectTaggingOutput, error) + DeleteObjectsRequest(*s3.DeleteObjectsInput) (*request.Request, *s3.DeleteObjectsOutput) DeleteObjects(*s3.DeleteObjectsInput) (*s3.DeleteObjectsOutput, error) @@ -123,10 +139,18 @@ type S3API interface { GetBucketAcl(*s3.GetBucketAclInput) (*s3.GetBucketAclOutput, error) + GetBucketAnalyticsConfigurationRequest(*s3.GetBucketAnalyticsConfigurationInput) (*request.Request, *s3.GetBucketAnalyticsConfigurationOutput) + + GetBucketAnalyticsConfiguration(*s3.GetBucketAnalyticsConfigurationInput) (*s3.GetBucketAnalyticsConfigurationOutput, error) + GetBucketCorsRequest(*s3.GetBucketCorsInput) (*request.Request, *s3.GetBucketCorsOutput) GetBucketCors(*s3.GetBucketCorsInput) (*s3.GetBucketCorsOutput, error) + GetBucketInventoryConfigurationRequest(*s3.GetBucketInventoryConfigurationInput) (*request.Request, *s3.GetBucketInventoryConfigurationOutput) + + GetBucketInventoryConfiguration(*s3.GetBucketInventoryConfigurationInput) (*s3.GetBucketInventoryConfigurationOutput, error) + GetBucketLifecycleRequest(*s3.GetBucketLifecycleInput) (*request.Request, *s3.GetBucketLifecycleOutput) GetBucketLifecycle(*s3.GetBucketLifecycleInput) (*s3.GetBucketLifecycleOutput, error) @@ -143,6 +167,10 @@ type S3API interface { GetBucketLogging(*s3.GetBucketLoggingInput) (*s3.GetBucketLoggingOutput, error) + GetBucketMetricsConfigurationRequest(*s3.GetBucketMetricsConfigurationInput) (*request.Request, *s3.GetBucketMetricsConfigurationOutput) + + GetBucketMetricsConfiguration(*s3.GetBucketMetricsConfigurationInput) (*s3.GetBucketMetricsConfigurationOutput, error) + GetBucketNotificationRequest(*s3.GetBucketNotificationConfigurationRequest) (*request.Request, *s3.NotificationConfigurationDeprecated) GetBucketNotification(*s3.GetBucketNotificationConfigurationRequest) (*s3.NotificationConfigurationDeprecated, error) @@ -183,6 +211,10 @@ type S3API interface { GetObjectAcl(*s3.GetObjectAclInput) (*s3.GetObjectAclOutput, error) + GetObjectTaggingRequest(*s3.GetObjectTaggingInput) (*request.Request, *s3.GetObjectTaggingOutput) + + GetObjectTagging(*s3.GetObjectTaggingInput) (*s3.GetObjectTaggingOutput, error) + GetObjectTorrentRequest(*s3.GetObjectTorrentInput) (*request.Request, *s3.GetObjectTorrentOutput) GetObjectTorrent(*s3.GetObjectTorrentInput) (*s3.GetObjectTorrentOutput, error) @@ -195,6 +227,18 @@ type S3API interface { HeadObject(*s3.HeadObjectInput) (*s3.HeadObjectOutput, error) + ListBucketAnalyticsConfigurationsRequest(*s3.ListBucketAnalyticsConfigurationsInput) (*request.Request, *s3.ListBucketAnalyticsConfigurationsOutput) + + ListBucketAnalyticsConfigurations(*s3.ListBucketAnalyticsConfigurationsInput) (*s3.ListBucketAnalyticsConfigurationsOutput, error) + + ListBucketInventoryConfigurationsRequest(*s3.ListBucketInventoryConfigurationsInput) (*request.Request, *s3.ListBucketInventoryConfigurationsOutput) + + ListBucketInventoryConfigurations(*s3.ListBucketInventoryConfigurationsInput) (*s3.ListBucketInventoryConfigurationsOutput, error) + + ListBucketMetricsConfigurationsRequest(*s3.ListBucketMetricsConfigurationsInput) (*request.Request, *s3.ListBucketMetricsConfigurationsOutput) + + ListBucketMetricsConfigurations(*s3.ListBucketMetricsConfigurationsInput) (*s3.ListBucketMetricsConfigurationsOutput, error) + ListBucketsRequest(*s3.ListBucketsInput) (*request.Request, *s3.ListBucketsOutput) ListBuckets(*s3.ListBucketsInput) (*s3.ListBucketsOutput, error) @@ -237,10 +281,18 @@ type S3API interface { PutBucketAcl(*s3.PutBucketAclInput) (*s3.PutBucketAclOutput, error) + PutBucketAnalyticsConfigurationRequest(*s3.PutBucketAnalyticsConfigurationInput) (*request.Request, *s3.PutBucketAnalyticsConfigurationOutput) + + PutBucketAnalyticsConfiguration(*s3.PutBucketAnalyticsConfigurationInput) (*s3.PutBucketAnalyticsConfigurationOutput, error) + PutBucketCorsRequest(*s3.PutBucketCorsInput) (*request.Request, *s3.PutBucketCorsOutput) PutBucketCors(*s3.PutBucketCorsInput) (*s3.PutBucketCorsOutput, error) + PutBucketInventoryConfigurationRequest(*s3.PutBucketInventoryConfigurationInput) (*request.Request, *s3.PutBucketInventoryConfigurationOutput) + + PutBucketInventoryConfiguration(*s3.PutBucketInventoryConfigurationInput) (*s3.PutBucketInventoryConfigurationOutput, error) + PutBucketLifecycleRequest(*s3.PutBucketLifecycleInput) (*request.Request, *s3.PutBucketLifecycleOutput) PutBucketLifecycle(*s3.PutBucketLifecycleInput) (*s3.PutBucketLifecycleOutput, error) @@ -253,6 +305,10 @@ type S3API interface { PutBucketLogging(*s3.PutBucketLoggingInput) (*s3.PutBucketLoggingOutput, error) + PutBucketMetricsConfigurationRequest(*s3.PutBucketMetricsConfigurationInput) (*request.Request, *s3.PutBucketMetricsConfigurationOutput) + + PutBucketMetricsConfiguration(*s3.PutBucketMetricsConfigurationInput) (*s3.PutBucketMetricsConfigurationOutput, error) + PutBucketNotificationRequest(*s3.PutBucketNotificationInput) (*request.Request, *s3.PutBucketNotificationOutput) PutBucketNotification(*s3.PutBucketNotificationInput) (*s3.PutBucketNotificationOutput, error) @@ -293,6 +349,10 @@ type S3API interface { PutObjectAcl(*s3.PutObjectAclInput) (*s3.PutObjectAclOutput, error) + PutObjectTaggingRequest(*s3.PutObjectTaggingInput) (*request.Request, *s3.PutObjectTaggingOutput) + + PutObjectTagging(*s3.PutObjectTaggingInput) (*s3.PutObjectTaggingOutput, error) + RestoreObjectRequest(*s3.RestoreObjectInput) (*request.Request, *s3.RestoreObjectOutput) RestoreObject(*s3.RestoreObjectInput) (*s3.RestoreObjectOutput, error) diff --git a/service/s3/s3manager/upload.go b/service/s3/s3manager/upload.go index 6a17e9630eb..5ae59bc1fe2 100644 --- a/service/s3/s3manager/upload.go +++ b/service/s3/s3manager/upload.go @@ -175,6 +175,9 @@ type UploadInput struct { // The type of storage to use for the object. Defaults to 'STANDARD'. StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string"` + // The tag-set for the object. The tag-set must be encoded as URL Query parameters + Tagging *string `location:"header" locationName:"x-amz-tagging" type:"string"` + // If the bucket is configured as a website, redirects requests for this object // to another object in the same bucket or to an external URL. Amazon S3 stores // the value of this header in the object metadata.