Module: Aws::S3::ClientApi Private

Includes:
Seahorse::Model
Defined in:
lib/aws-sdk-s3/client_api.rb

This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.

Constant Summary collapse

AbortDate =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::TimestampShape.new(name: 'AbortDate')
AbortIncompleteMultipartUpload =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AbortIncompleteMultipartUpload')
AbortMultipartUploadOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AbortMultipartUploadOutput')
AbortMultipartUploadRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AbortMultipartUploadRequest')
AbortRuleId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AbortRuleId')
AccelerateConfiguration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AccelerateConfiguration')
AcceptRanges =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AcceptRanges')
AccessControlPolicy =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AccessControlPolicy')
AccessControlTranslation =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AccessControlTranslation')
AccountId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AccountId')
AllowQuotedRecordDelimiter =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'AllowQuotedRecordDelimiter')
AllowedHeader =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AllowedHeader')
AllowedHeaders =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'AllowedHeaders', flattened: true)
AllowedMethod =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AllowedMethod')
AllowedMethods =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'AllowedMethods', flattened: true)
AllowedOrigin =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AllowedOrigin')
AllowedOrigins =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'AllowedOrigins', flattened: true)
AnalyticsAndOperator =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AnalyticsAndOperator')
AnalyticsConfiguration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AnalyticsConfiguration')
AnalyticsConfigurationList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'AnalyticsConfigurationList', flattened: true)
AnalyticsExportDestination =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AnalyticsExportDestination')
AnalyticsFilter =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AnalyticsFilter')
AnalyticsId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AnalyticsId')
AnalyticsS3BucketDestination =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AnalyticsS3BucketDestination')
AnalyticsS3ExportFileFormat =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AnalyticsS3ExportFileFormat')
Body =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BlobShape.new(name: 'Body')
Bucket =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Bucket')
BucketAccelerateStatus =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'BucketAccelerateStatus')
BucketAlreadyExists =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'BucketAlreadyExists')
BucketAlreadyOwnedByYou =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'BucketAlreadyOwnedByYou')
BucketCannedACL =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'BucketCannedACL')
BucketLifecycleConfiguration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'BucketLifecycleConfiguration')
BucketLocationConstraint =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'BucketLocationConstraint')
BucketLoggingStatus =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'BucketLoggingStatus')
BucketLogsPermission =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'BucketLogsPermission')
BucketName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'BucketName')
BucketVersioningStatus =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'BucketVersioningStatus')
Buckets =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'Buckets')
BypassGovernanceRetention =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'BypassGovernanceRetention')
BytesProcessed =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'BytesProcessed')
BytesReturned =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'BytesReturned')
BytesScanned =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'BytesScanned')
CORSConfiguration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CORSConfiguration')
CORSRule =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CORSRule')
CORSRules =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'CORSRules', flattened: true)
CSVInput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CSVInput')
CSVOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CSVOutput')
CacheControl =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'CacheControl')
CloudFunction =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'CloudFunction')
CloudFunctionConfiguration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CloudFunctionConfiguration')
CloudFunctionInvocationRole =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'CloudFunctionInvocationRole')
Code =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Code')
Comments =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Comments')
CommonPrefix =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CommonPrefix')
CommonPrefixList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'CommonPrefixList', flattened: true)
CompleteMultipartUploadOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CompleteMultipartUploadOutput')
CompleteMultipartUploadRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CompleteMultipartUploadRequest')
CompletedMultipartUpload =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CompletedMultipartUpload')
CompletedPart =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CompletedPart')
CompletedPartList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'CompletedPartList', flattened: true)
CompressionType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'CompressionType')
Condition =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Condition')
ConfirmRemoveSelfBucketAccess =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'ConfirmRemoveSelfBucketAccess')
ContentDisposition =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ContentDisposition')
ContentEncoding =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ContentEncoding')
ContentLanguage =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ContentLanguage')
ContentLength =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'ContentLength')
ContentMD5 =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ContentMD5')
ContentRange =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ContentRange')
ContentType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ContentType')
ContinuationEvent =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ContinuationEvent')
CopyObjectOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CopyObjectOutput')
CopyObjectRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CopyObjectRequest')
CopyObjectResult =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CopyObjectResult')
CopyPartResult =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CopyPartResult')
CopySource =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'CopySource')
CopySourceIfMatch =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'CopySourceIfMatch')
CopySourceIfModifiedSince =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::TimestampShape.new(name: 'CopySourceIfModifiedSince')
CopySourceIfNoneMatch =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'CopySourceIfNoneMatch')
CopySourceIfUnmodifiedSince =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::TimestampShape.new(name: 'CopySourceIfUnmodifiedSince')
CopySourceRange =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'CopySourceRange')
CopySourceSSECustomerAlgorithm =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'CopySourceSSECustomerAlgorithm')
CopySourceSSECustomerKey =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'CopySourceSSECustomerKey')
CopySourceSSECustomerKeyMD5 =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'CopySourceSSECustomerKeyMD5')
CopySourceVersionId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'CopySourceVersionId')
CreateBucketConfiguration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateBucketConfiguration')
CreateBucketOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateBucketOutput')
CreateBucketRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateBucketRequest')
CreateMultipartUploadOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateMultipartUploadOutput')
CreateMultipartUploadRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateMultipartUploadRequest')
CreationDate =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::TimestampShape.new(name: 'CreationDate')
Date =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::TimestampShape.new(name: 'Date', timestampFormat: "iso8601")
Days =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'Days')
DaysAfterInitiation =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'DaysAfterInitiation')
DefaultRetention =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DefaultRetention')
Delete =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Delete')
DeleteBucketAnalyticsConfigurationRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteBucketAnalyticsConfigurationRequest')
DeleteBucketCorsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteBucketCorsRequest')
DeleteBucketEncryptionRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteBucketEncryptionRequest')
DeleteBucketInventoryConfigurationRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteBucketInventoryConfigurationRequest')
DeleteBucketLifecycleRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteBucketLifecycleRequest')
DeleteBucketMetricsConfigurationRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteBucketMetricsConfigurationRequest')
DeleteBucketPolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteBucketPolicyRequest')
DeleteBucketReplicationRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteBucketReplicationRequest')
DeleteBucketRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteBucketRequest')
DeleteBucketTaggingRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteBucketTaggingRequest')
DeleteBucketWebsiteRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteBucketWebsiteRequest')
DeleteMarker =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'DeleteMarker')
DeleteMarkerEntry =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteMarkerEntry')
DeleteMarkerReplication =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteMarkerReplication')
DeleteMarkerReplicationStatus =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'DeleteMarkerReplicationStatus')
DeleteMarkerVersionId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'DeleteMarkerVersionId')
DeleteMarkers =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'DeleteMarkers', flattened: true)
DeleteObjectOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteObjectOutput')
DeleteObjectRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteObjectRequest')
DeleteObjectTaggingOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteObjectTaggingOutput')
DeleteObjectTaggingRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteObjectTaggingRequest')
DeleteObjectsOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteObjectsOutput')
DeleteObjectsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteObjectsRequest')
DeletePublicAccessBlockRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeletePublicAccessBlockRequest')
DeletedObject =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeletedObject')
DeletedObjects =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'DeletedObjects', flattened: true)
Delimiter =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Delimiter')
Description =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Description')
Destination =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Destination')
DisplayName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'DisplayName')
ETag =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ETag')
EmailAddress =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'EmailAddress')
EnableRequestProgress =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'EnableRequestProgress')
EncodingType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'EncodingType')
Encryption =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Encryption')
EncryptionConfiguration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'EncryptionConfiguration')
EndEvent =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'EndEvent')
Error =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Error')
ErrorDocument =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ErrorDocument')
Errors =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'Errors', flattened: true)
Event =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Event')
EventList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'EventList', flattened: true)
Expiration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Expiration')
ExpirationStatus =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ExpirationStatus')
ExpiredObjectDeleteMarker =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'ExpiredObjectDeleteMarker')
Expires =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::TimestampShape.new(name: 'Expires')
ExpiresString =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ExpiresString')
ExposeHeader =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ExposeHeader')
ExposeHeaders =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ExposeHeaders', flattened: true)
Expression =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Expression')
ExpressionType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ExpressionType')
FetchOwner =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'FetchOwner')
FieldDelimiter =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'FieldDelimiter')
FileHeaderInfo =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'FileHeaderInfo')
FilterRule =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'FilterRule')
FilterRuleList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'FilterRuleList', flattened: true)
FilterRuleName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'FilterRuleName')
FilterRuleValue =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'FilterRuleValue')
GetBucketAccelerateConfigurationOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketAccelerateConfigurationOutput')
GetBucketAccelerateConfigurationRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketAccelerateConfigurationRequest')
GetBucketAclOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketAclOutput')
GetBucketAclRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketAclRequest')
GetBucketAnalyticsConfigurationOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketAnalyticsConfigurationOutput')
GetBucketAnalyticsConfigurationRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketAnalyticsConfigurationRequest')
GetBucketCorsOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketCorsOutput')
GetBucketCorsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketCorsRequest')
GetBucketEncryptionOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketEncryptionOutput')
GetBucketEncryptionRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketEncryptionRequest')
GetBucketInventoryConfigurationOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketInventoryConfigurationOutput')
GetBucketInventoryConfigurationRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketInventoryConfigurationRequest')
GetBucketLifecycleConfigurationOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketLifecycleConfigurationOutput')
GetBucketLifecycleConfigurationRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketLifecycleConfigurationRequest')
GetBucketLifecycleOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketLifecycleOutput')
GetBucketLifecycleRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketLifecycleRequest')
GetBucketLocationOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketLocationOutput')
GetBucketLocationRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketLocationRequest')
GetBucketLoggingOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketLoggingOutput')
GetBucketLoggingRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketLoggingRequest')
GetBucketMetricsConfigurationOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketMetricsConfigurationOutput')
GetBucketMetricsConfigurationRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketMetricsConfigurationRequest')
GetBucketNotificationConfigurationRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketNotificationConfigurationRequest')
GetBucketPolicyOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketPolicyOutput')
GetBucketPolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketPolicyRequest')
GetBucketPolicyStatusOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketPolicyStatusOutput')
GetBucketPolicyStatusRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketPolicyStatusRequest')
GetBucketReplicationOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketReplicationOutput')
GetBucketReplicationRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketReplicationRequest')
GetBucketRequestPaymentOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketRequestPaymentOutput')
GetBucketRequestPaymentRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketRequestPaymentRequest')
GetBucketTaggingOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketTaggingOutput')
GetBucketTaggingRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketTaggingRequest')
GetBucketVersioningOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketVersioningOutput')
GetBucketVersioningRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketVersioningRequest')
GetBucketWebsiteOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketWebsiteOutput')
GetBucketWebsiteRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetBucketWebsiteRequest')
GetObjectAclOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetObjectAclOutput')
GetObjectAclRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetObjectAclRequest')
GetObjectLegalHoldOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetObjectLegalHoldOutput')
GetObjectLegalHoldRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetObjectLegalHoldRequest')
GetObjectLockConfigurationOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetObjectLockConfigurationOutput')
GetObjectLockConfigurationRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetObjectLockConfigurationRequest')
GetObjectOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetObjectOutput')
GetObjectRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetObjectRequest')
GetObjectRetentionOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetObjectRetentionOutput')
GetObjectRetentionRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetObjectRetentionRequest')
GetObjectTaggingOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetObjectTaggingOutput')
GetObjectTaggingRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetObjectTaggingRequest')
GetObjectTorrentOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetObjectTorrentOutput')
GetObjectTorrentRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetObjectTorrentRequest')
GetPublicAccessBlockOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetPublicAccessBlockOutput')
GetPublicAccessBlockRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetPublicAccessBlockRequest')
GlacierJobParameters =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GlacierJobParameters')
Grant =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Grant')
GrantFullControl =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'GrantFullControl')
GrantRead =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'GrantRead')
GrantReadACP =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'GrantReadACP')
GrantWrite =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'GrantWrite')
GrantWriteACP =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'GrantWriteACP')
Grantee =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Grantee', xmlNamespace: {"prefix"=>"xsi", "uri"=>"http://www.w3.org/2001/XMLSchema-instance"})
Grants =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'Grants')
HeadBucketRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'HeadBucketRequest')
HeadObjectOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'HeadObjectOutput')
HeadObjectRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'HeadObjectRequest')
HostName =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'HostName')
HttpErrorCodeReturnedEquals =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'HttpErrorCodeReturnedEquals')
HttpRedirectCode =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'HttpRedirectCode')
ID =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ID')
IfMatch =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'IfMatch')
IfModifiedSince =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::TimestampShape.new(name: 'IfModifiedSince')
IfNoneMatch =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'IfNoneMatch')
IfUnmodifiedSince =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::TimestampShape.new(name: 'IfUnmodifiedSince')
IndexDocument =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'IndexDocument')
Initiated =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::TimestampShape.new(name: 'Initiated')
Initiator =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Initiator')
InputSerialization =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'InputSerialization')
InventoryConfiguration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'InventoryConfiguration')
InventoryConfigurationList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'InventoryConfigurationList', flattened: true)
InventoryDestination =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'InventoryDestination')
InventoryEncryption =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'InventoryEncryption')
InventoryFilter =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'InventoryFilter')
InventoryFormat =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'InventoryFormat')
InventoryFrequency =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'InventoryFrequency')
InventoryId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'InventoryId')
InventoryIncludedObjectVersions =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'InventoryIncludedObjectVersions')
InventoryOptionalField =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'InventoryOptionalField')
InventoryOptionalFields =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'InventoryOptionalFields')
InventoryS3BucketDestination =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'InventoryS3BucketDestination')
InventorySchedule =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'InventorySchedule')
IsEnabled =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'IsEnabled')
IsLatest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'IsLatest')
IsPublic =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'IsPublic')
IsTruncated =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'IsTruncated')
JSONInput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'JSONInput')
JSONOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'JSONOutput')
JSONType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'JSONType')
KMSContext =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'KMSContext')
KeyCount =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'KeyCount')
KeyMarker =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'KeyMarker')
KeyPrefixEquals =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'KeyPrefixEquals')
LambdaFunctionArn =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'LambdaFunctionArn')
LambdaFunctionConfiguration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'LambdaFunctionConfiguration')
LambdaFunctionConfigurationList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'LambdaFunctionConfigurationList', flattened: true)
LastModified =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::TimestampShape.new(name: 'LastModified')
LifecycleConfiguration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'LifecycleConfiguration')
LifecycleExpiration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'LifecycleExpiration')
LifecycleRule =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'LifecycleRule')
LifecycleRuleAndOperator =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'LifecycleRuleAndOperator')
LifecycleRuleFilter =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'LifecycleRuleFilter')
LifecycleRules =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'LifecycleRules', flattened: true)
ListBucketAnalyticsConfigurationsOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListBucketAnalyticsConfigurationsOutput')
ListBucketAnalyticsConfigurationsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListBucketAnalyticsConfigurationsRequest')
ListBucketInventoryConfigurationsOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListBucketInventoryConfigurationsOutput')
ListBucketInventoryConfigurationsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListBucketInventoryConfigurationsRequest')
ListBucketMetricsConfigurationsOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListBucketMetricsConfigurationsOutput')
ListBucketMetricsConfigurationsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListBucketMetricsConfigurationsRequest')
ListBucketsOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListBucketsOutput')
ListMultipartUploadsOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListMultipartUploadsOutput')
ListMultipartUploadsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListMultipartUploadsRequest')
ListObjectVersionsOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListObjectVersionsOutput')
ListObjectVersionsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListObjectVersionsRequest')
ListObjectsOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListObjectsOutput')
ListObjectsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListObjectsRequest')
ListObjectsV2Output =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListObjectsV2Output')
ListObjectsV2Request =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListObjectsV2Request')
ListPartsOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListPartsOutput')
ListPartsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListPartsRequest')
Location =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Location')
LocationPrefix =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'LocationPrefix')
LoggingEnabled =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'LoggingEnabled')
MFA =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'MFA')
MFADelete =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'MFADelete')
MFADeleteStatus =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'MFADeleteStatus')
Marker =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Marker')
MaxAgeSeconds =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'MaxAgeSeconds')
MaxKeys =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'MaxKeys')
MaxParts =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'MaxParts')
MaxUploads =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'MaxUploads')
Message =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Message')
Metadata =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::MapShape.new(name: 'Metadata')
MetadataDirective =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'MetadataDirective')
MetadataEntry =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'MetadataEntry')
MetadataKey =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'MetadataKey')
MetadataValue =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'MetadataValue')
MetricsAndOperator =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'MetricsAndOperator')
MetricsConfiguration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'MetricsConfiguration')
MetricsConfigurationList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'MetricsConfigurationList', flattened: true)
MetricsFilter =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'MetricsFilter')
MetricsId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'MetricsId')
MissingMeta =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'MissingMeta')
MultipartUpload =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'MultipartUpload')
MultipartUploadId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'MultipartUploadId')
MultipartUploadList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'MultipartUploadList', flattened: true)
NextKeyMarker =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'NextKeyMarker')
NextMarker =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'NextMarker')
NextPartNumberMarker =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'NextPartNumberMarker')
NextToken =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'NextToken')
NextUploadIdMarker =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'NextUploadIdMarker')
NextVersionIdMarker =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'NextVersionIdMarker')
NoSuchBucket =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'NoSuchBucket')
NoSuchKey =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'NoSuchKey')
NoSuchUpload =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'NoSuchUpload')
NoncurrentVersionExpiration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'NoncurrentVersionExpiration')
NoncurrentVersionTransition =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'NoncurrentVersionTransition')
NoncurrentVersionTransitionList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'NoncurrentVersionTransitionList', flattened: true)
NotificationConfiguration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'NotificationConfiguration')
NotificationConfigurationDeprecated =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'NotificationConfigurationDeprecated')
NotificationConfigurationFilter =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'NotificationConfigurationFilter')
NotificationId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'NotificationId')
Object =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Object')
ObjectAlreadyInActiveTierError =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ObjectAlreadyInActiveTierError')
ObjectCannedACL =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ObjectCannedACL')
ObjectIdentifier =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ObjectIdentifier')
ObjectIdentifierList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ObjectIdentifierList', flattened: true)
ObjectKey =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ObjectKey')
ObjectList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ObjectList', flattened: true)
ObjectLockConfiguration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ObjectLockConfiguration')
ObjectLockEnabled =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ObjectLockEnabled')
ObjectLockEnabledForBucket =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'ObjectLockEnabledForBucket')
ObjectLockLegalHold =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ObjectLockLegalHold')
ObjectLockLegalHoldStatus =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ObjectLockLegalHoldStatus')
ObjectLockMode =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ObjectLockMode')
ObjectLockRetainUntilDate =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::TimestampShape.new(name: 'ObjectLockRetainUntilDate', timestampFormat: "iso8601")
ObjectLockRetention =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ObjectLockRetention')
ObjectLockRetentionMode =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ObjectLockRetentionMode')
ObjectLockRule =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ObjectLockRule')
ObjectLockToken =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ObjectLockToken')
ObjectNotInActiveTierError =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ObjectNotInActiveTierError')
ObjectStorageClass =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ObjectStorageClass')
ObjectVersion =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ObjectVersion')
ObjectVersionId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ObjectVersionId')
ObjectVersionList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ObjectVersionList', flattened: true)
ObjectVersionStorageClass =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ObjectVersionStorageClass')
OutputLocation =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'OutputLocation')
OutputSerialization =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'OutputSerialization')
Owner =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Owner')
OwnerOverride =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'OwnerOverride')
ParquetInput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ParquetInput')
Part =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Part')
PartNumber =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'PartNumber')
PartNumberMarker =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'PartNumberMarker')
Parts =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'Parts', flattened: true)
PartsCount =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'PartsCount')
Payer =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Payer')
Permission =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Permission')
Policy =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Policy')
PolicyStatus =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PolicyStatus')
Prefix =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Prefix')
Priority =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'Priority')
Progress =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Progress')
ProgressEvent =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ProgressEvent')
Protocol =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Protocol')
PublicAccessBlockConfiguration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PublicAccessBlockConfiguration')
PutBucketAccelerateConfigurationRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutBucketAccelerateConfigurationRequest')
PutBucketAclRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutBucketAclRequest')
PutBucketAnalyticsConfigurationRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutBucketAnalyticsConfigurationRequest')
PutBucketCorsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutBucketCorsRequest')
PutBucketEncryptionRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutBucketEncryptionRequest')
PutBucketInventoryConfigurationRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutBucketInventoryConfigurationRequest')
PutBucketLifecycleConfigurationRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutBucketLifecycleConfigurationRequest')
PutBucketLifecycleRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutBucketLifecycleRequest')
PutBucketLoggingRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutBucketLoggingRequest')
PutBucketMetricsConfigurationRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutBucketMetricsConfigurationRequest')
PutBucketNotificationConfigurationRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutBucketNotificationConfigurationRequest')
PutBucketNotificationRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutBucketNotificationRequest')
PutBucketPolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutBucketPolicyRequest')
PutBucketReplicationRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutBucketReplicationRequest')
PutBucketRequestPaymentRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutBucketRequestPaymentRequest')
PutBucketTaggingRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutBucketTaggingRequest')
PutBucketVersioningRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutBucketVersioningRequest')
PutBucketWebsiteRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutBucketWebsiteRequest')
PutObjectAclOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutObjectAclOutput')
PutObjectAclRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutObjectAclRequest')
PutObjectLegalHoldOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutObjectLegalHoldOutput')
PutObjectLegalHoldRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutObjectLegalHoldRequest')
PutObjectLockConfigurationOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutObjectLockConfigurationOutput')
PutObjectLockConfigurationRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutObjectLockConfigurationRequest')
PutObjectOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutObjectOutput')
PutObjectRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutObjectRequest')
PutObjectRetentionOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutObjectRetentionOutput')
PutObjectRetentionRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutObjectRetentionRequest')
PutObjectTaggingOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutObjectTaggingOutput')
PutObjectTaggingRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutObjectTaggingRequest')
PutPublicAccessBlockRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutPublicAccessBlockRequest')
QueueArn =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'QueueArn')
QueueConfiguration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'QueueConfiguration')
QueueConfigurationDeprecated =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'QueueConfigurationDeprecated')
QueueConfigurationList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'QueueConfigurationList', flattened: true)
Quiet =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'Quiet')
QuoteCharacter =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'QuoteCharacter')
QuoteEscapeCharacter =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'QuoteEscapeCharacter')
QuoteFields =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'QuoteFields')
Range =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Range')
RecordDelimiter =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'RecordDelimiter')
RecordsEvent =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RecordsEvent')
Redirect =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Redirect')
RedirectAllRequestsTo =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RedirectAllRequestsTo')
ReplaceKeyPrefixWith =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ReplaceKeyPrefixWith')
ReplaceKeyWith =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ReplaceKeyWith')
ReplicaKmsKeyID =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ReplicaKmsKeyID')
ReplicationConfiguration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ReplicationConfiguration')
ReplicationRule =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ReplicationRule')
ReplicationRuleAndOperator =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ReplicationRuleAndOperator')
ReplicationRuleFilter =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ReplicationRuleFilter')
ReplicationRuleStatus =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ReplicationRuleStatus')
ReplicationRules =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ReplicationRules', flattened: true)
ReplicationStatus =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ReplicationStatus')
RequestCharged =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'RequestCharged')
RequestPayer =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'RequestPayer')
RequestPaymentConfiguration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RequestPaymentConfiguration')
RequestProgress =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RequestProgress')
ResponseCacheControl =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ResponseCacheControl')
ResponseContentDisposition =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ResponseContentDisposition')
ResponseContentEncoding =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ResponseContentEncoding')
ResponseContentLanguage =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ResponseContentLanguage')
ResponseContentType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ResponseContentType')
ResponseExpires =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::TimestampShape.new(name: 'ResponseExpires')
Restore =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Restore')
RestoreObjectOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RestoreObjectOutput')
RestoreObjectRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RestoreObjectRequest')
RestoreOutputPath =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'RestoreOutputPath')
RestoreRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RestoreRequest')
RestoreRequestType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'RestoreRequestType')
Role =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Role')
RoutingRule =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RoutingRule')
RoutingRules =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'RoutingRules')
Rule =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Rule')
Rules =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'Rules', flattened: true)
S3KeyFilter =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'S3KeyFilter')
S3Location =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'S3Location')
SSECustomerAlgorithm =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'SSECustomerAlgorithm')
SSECustomerKey =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'SSECustomerKey')
SSECustomerKeyMD5 =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'SSECustomerKeyMD5')
SSEKMS =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SSEKMS')
SSEKMSKeyId =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'SSEKMSKeyId')
SSES3 =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SSES3')
SelectObjectContentEventStream =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SelectObjectContentEventStream')
SelectObjectContentOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SelectObjectContentOutput')
SelectObjectContentRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SelectObjectContentRequest')
SelectParameters =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SelectParameters')
ServerSideEncryption =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ServerSideEncryption')
ServerSideEncryptionByDefault =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ServerSideEncryptionByDefault')
ServerSideEncryptionConfiguration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ServerSideEncryptionConfiguration')
ServerSideEncryptionRule =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ServerSideEncryptionRule')
ServerSideEncryptionRules =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ServerSideEncryptionRules', flattened: true)
Setting =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BooleanShape.new(name: 'Setting')
Size =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'Size')
SourceSelectionCriteria =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SourceSelectionCriteria')
SseKmsEncryptedObjects =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SseKmsEncryptedObjects')
SseKmsEncryptedObjectsStatus =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'SseKmsEncryptedObjectsStatus')
StartAfter =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'StartAfter')
Stats =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Stats')
StatsEvent =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'StatsEvent')
StorageClass =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'StorageClass')
StorageClassAnalysis =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'StorageClassAnalysis')
StorageClassAnalysisDataExport =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'StorageClassAnalysisDataExport')
StorageClassAnalysisSchemaVersion =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'StorageClassAnalysisSchemaVersion')
Suffix =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Suffix')
Tag =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Tag')
TagCount =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'TagCount')
TagSet =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'TagSet')
Tagging =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Tagging')
TaggingDirective =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'TaggingDirective')
TaggingHeader =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'TaggingHeader')
TargetBucket =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'TargetBucket')
TargetGrant =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'TargetGrant')
TargetGrants =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'TargetGrants')
TargetPrefix =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'TargetPrefix')
Tier =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Tier')
Token =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Token')
TopicArn =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'TopicArn')
TopicConfiguration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'TopicConfiguration')
TopicConfigurationDeprecated =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'TopicConfigurationDeprecated')
TopicConfigurationList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'TopicConfigurationList', flattened: true)
Transition =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Transition')
TransitionList =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'TransitionList', flattened: true)
TransitionStorageClass =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'TransitionStorageClass')
Type =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Type')
URI =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'URI')
UploadIdMarker =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'UploadIdMarker')
UploadPartCopyOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UploadPartCopyOutput')
UploadPartCopyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UploadPartCopyRequest')
UploadPartOutput =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UploadPartOutput')
UploadPartRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UploadPartRequest')
UserMetadata =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'UserMetadata')
Value =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'Value')
VersionIdMarker =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'VersionIdMarker')
VersioningConfiguration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'VersioningConfiguration')
WebsiteConfiguration =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'WebsiteConfiguration')
WebsiteRedirectLocation =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'WebsiteRedirectLocation')
Years =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'Years')
API =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Seahorse::Model::Api.new.tap do |api|

  api.version = "2006-03-01"

  api. = {
    "apiVersion" => "2006-03-01",
    "checksumFormat" => "md5",
    "endpointPrefix" => "s3",
    "globalEndpoint" => "s3.amazonaws.com",
    "protocol" => "rest-xml",
    "serviceAbbreviation" => "Amazon S3",
    "serviceFullName" => "Amazon Simple Storage Service",
    "serviceId" => "S3",
    "uid" => "s3-2006-03-01",
  }

  api.add_operation(:abort_multipart_upload, Seahorse::Model::Operation.new.tap do |o|
    o.name = "AbortMultipartUpload"
    o.http_method = "DELETE"
    o.http_request_uri = "/{Bucket}/{Key+}"
    o.input = Shapes::ShapeRef.new(shape: AbortMultipartUploadRequest)
    o.output = Shapes::ShapeRef.new(shape: AbortMultipartUploadOutput)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchUpload)
  end)

  api.add_operation(:complete_multipart_upload, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CompleteMultipartUpload"
    o.http_method = "POST"
    o.http_request_uri = "/{Bucket}/{Key+}"
    o.input = Shapes::ShapeRef.new(shape: CompleteMultipartUploadRequest)
    o.output = Shapes::ShapeRef.new(shape: CompleteMultipartUploadOutput)
  end)

  api.add_operation(:copy_object, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CopyObject"
    o.http_method = "PUT"
    o.http_request_uri = "/{Bucket}/{Key+}"
    o.input = Shapes::ShapeRef.new(shape: CopyObjectRequest)
    o.output = Shapes::ShapeRef.new(shape: CopyObjectOutput)
    o.errors << Shapes::ShapeRef.new(shape: ObjectNotInActiveTierError)
  end)

  api.add_operation(:create_bucket, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateBucket"
    o.http_method = "PUT"
    o.http_request_uri = "/{Bucket}"
    o.input = Shapes::ShapeRef.new(shape: CreateBucketRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateBucketOutput)
    o.errors << Shapes::ShapeRef.new(shape: BucketAlreadyExists)
    o.errors << Shapes::ShapeRef.new(shape: BucketAlreadyOwnedByYou)
  end)

  api.add_operation(:create_multipart_upload, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateMultipartUpload"
    o.http_method = "POST"
    o.http_request_uri = "/{Bucket}/{Key+}?uploads"
    o.input = Shapes::ShapeRef.new(shape: CreateMultipartUploadRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateMultipartUploadOutput)
  end)

  api.add_operation(:delete_bucket, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteBucket"
    o.http_method = "DELETE"
    o.http_request_uri = "/{Bucket}"
    o.input = Shapes::ShapeRef.new(shape: DeleteBucketRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:delete_bucket_analytics_configuration, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteBucketAnalyticsConfiguration"
    o.http_method = "DELETE"
    o.http_request_uri = "/{Bucket}?analytics"
    o.input = Shapes::ShapeRef.new(shape: DeleteBucketAnalyticsConfigurationRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:delete_bucket_cors, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteBucketCors"
    o.http_method = "DELETE"
    o.http_request_uri = "/{Bucket}?cors"
    o.input = Shapes::ShapeRef.new(shape: DeleteBucketCorsRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:delete_bucket_encryption, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteBucketEncryption"
    o.http_method = "DELETE"
    o.http_request_uri = "/{Bucket}?encryption"
    o.input = Shapes::ShapeRef.new(shape: DeleteBucketEncryptionRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:delete_bucket_inventory_configuration, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteBucketInventoryConfiguration"
    o.http_method = "DELETE"
    o.http_request_uri = "/{Bucket}?inventory"
    o.input = Shapes::ShapeRef.new(shape: DeleteBucketInventoryConfigurationRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:delete_bucket_lifecycle, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteBucketLifecycle"
    o.http_method = "DELETE"
    o.http_request_uri = "/{Bucket}?lifecycle"
    o.input = Shapes::ShapeRef.new(shape: DeleteBucketLifecycleRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:delete_bucket_metrics_configuration, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteBucketMetricsConfiguration"
    o.http_method = "DELETE"
    o.http_request_uri = "/{Bucket}?metrics"
    o.input = Shapes::ShapeRef.new(shape: DeleteBucketMetricsConfigurationRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:delete_bucket_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteBucketPolicy"
    o.http_method = "DELETE"
    o.http_request_uri = "/{Bucket}?policy"
    o.input = Shapes::ShapeRef.new(shape: DeleteBucketPolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:delete_bucket_replication, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteBucketReplication"
    o.http_method = "DELETE"
    o.http_request_uri = "/{Bucket}?replication"
    o.input = Shapes::ShapeRef.new(shape: DeleteBucketReplicationRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:delete_bucket_tagging, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteBucketTagging"
    o.http_method = "DELETE"
    o.http_request_uri = "/{Bucket}?tagging"
    o.input = Shapes::ShapeRef.new(shape: DeleteBucketTaggingRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:delete_bucket_website, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteBucketWebsite"
    o.http_method = "DELETE"
    o.http_request_uri = "/{Bucket}?website"
    o.input = Shapes::ShapeRef.new(shape: DeleteBucketWebsiteRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:delete_object, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteObject"
    o.http_method = "DELETE"
    o.http_request_uri = "/{Bucket}/{Key+}"
    o.input = Shapes::ShapeRef.new(shape: DeleteObjectRequest)
    o.output = Shapes::ShapeRef.new(shape: DeleteObjectOutput)
  end)

  api.add_operation(:delete_object_tagging, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteObjectTagging"
    o.http_method = "DELETE"
    o.http_request_uri = "/{Bucket}/{Key+}?tagging"
    o.input = Shapes::ShapeRef.new(shape: DeleteObjectTaggingRequest)
    o.output = Shapes::ShapeRef.new(shape: DeleteObjectTaggingOutput)
  end)

  api.add_operation(:delete_objects, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteObjects"
    o.http_method = "POST"
    o.http_request_uri = "/{Bucket}?delete"
    o.input = Shapes::ShapeRef.new(shape: DeleteObjectsRequest)
    o.output = Shapes::ShapeRef.new(shape: DeleteObjectsOutput)
  end)

  api.add_operation(:delete_public_access_block, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeletePublicAccessBlock"
    o.http_method = "DELETE"
    o.http_request_uri = "/{Bucket}?publicAccessBlock"
    o.input = Shapes::ShapeRef.new(shape: DeletePublicAccessBlockRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:get_bucket_accelerate_configuration, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetBucketAccelerateConfiguration"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}?accelerate"
    o.input = Shapes::ShapeRef.new(shape: GetBucketAccelerateConfigurationRequest)
    o.output = Shapes::ShapeRef.new(shape: GetBucketAccelerateConfigurationOutput)
  end)

  api.add_operation(:get_bucket_acl, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetBucketAcl"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}?acl"
    o.input = Shapes::ShapeRef.new(shape: GetBucketAclRequest)
    o.output = Shapes::ShapeRef.new(shape: GetBucketAclOutput)
  end)

  api.add_operation(:get_bucket_analytics_configuration, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetBucketAnalyticsConfiguration"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}?analytics"
    o.input = Shapes::ShapeRef.new(shape: GetBucketAnalyticsConfigurationRequest)
    o.output = Shapes::ShapeRef.new(shape: GetBucketAnalyticsConfigurationOutput)
  end)

  api.add_operation(:get_bucket_cors, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetBucketCors"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}?cors"
    o.input = Shapes::ShapeRef.new(shape: GetBucketCorsRequest)
    o.output = Shapes::ShapeRef.new(shape: GetBucketCorsOutput)
  end)

  api.add_operation(:get_bucket_encryption, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetBucketEncryption"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}?encryption"
    o.input = Shapes::ShapeRef.new(shape: GetBucketEncryptionRequest)
    o.output = Shapes::ShapeRef.new(shape: GetBucketEncryptionOutput)
  end)

  api.add_operation(:get_bucket_inventory_configuration, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetBucketInventoryConfiguration"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}?inventory"
    o.input = Shapes::ShapeRef.new(shape: GetBucketInventoryConfigurationRequest)
    o.output = Shapes::ShapeRef.new(shape: GetBucketInventoryConfigurationOutput)
  end)

  api.add_operation(:get_bucket_lifecycle, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetBucketLifecycle"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}?lifecycle"
    o.deprecated = true
    o.input = Shapes::ShapeRef.new(shape: GetBucketLifecycleRequest)
    o.output = Shapes::ShapeRef.new(shape: GetBucketLifecycleOutput)
  end)

  api.add_operation(:get_bucket_lifecycle_configuration, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetBucketLifecycleConfiguration"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}?lifecycle"
    o.input = Shapes::ShapeRef.new(shape: GetBucketLifecycleConfigurationRequest)
    o.output = Shapes::ShapeRef.new(shape: GetBucketLifecycleConfigurationOutput)
  end)

  api.add_operation(:get_bucket_location, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetBucketLocation"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}?location"
    o.input = Shapes::ShapeRef.new(shape: GetBucketLocationRequest)
    o.output = Shapes::ShapeRef.new(shape: GetBucketLocationOutput)
  end)

  api.add_operation(:get_bucket_logging, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetBucketLogging"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}?logging"
    o.input = Shapes::ShapeRef.new(shape: GetBucketLoggingRequest)
    o.output = Shapes::ShapeRef.new(shape: GetBucketLoggingOutput)
  end)

  api.add_operation(:get_bucket_metrics_configuration, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetBucketMetricsConfiguration"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}?metrics"
    o.input = Shapes::ShapeRef.new(shape: GetBucketMetricsConfigurationRequest)
    o.output = Shapes::ShapeRef.new(shape: GetBucketMetricsConfigurationOutput)
  end)

  api.add_operation(:get_bucket_notification, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetBucketNotification"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}?notification"
    o.deprecated = true
    o.input = Shapes::ShapeRef.new(shape: GetBucketNotificationConfigurationRequest)
    o.output = Shapes::ShapeRef.new(shape: NotificationConfigurationDeprecated)
  end)

  api.add_operation(:get_bucket_notification_configuration, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetBucketNotificationConfiguration"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}?notification"
    o.input = Shapes::ShapeRef.new(shape: GetBucketNotificationConfigurationRequest)
    o.output = Shapes::ShapeRef.new(shape: NotificationConfiguration)
  end)

  api.add_operation(:get_bucket_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetBucketPolicy"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}?policy"
    o.input = Shapes::ShapeRef.new(shape: GetBucketPolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: GetBucketPolicyOutput)
  end)

  api.add_operation(:get_bucket_policy_status, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetBucketPolicyStatus"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}?policyStatus"
    o.input = Shapes::ShapeRef.new(shape: GetBucketPolicyStatusRequest)
    o.output = Shapes::ShapeRef.new(shape: GetBucketPolicyStatusOutput)
  end)

  api.add_operation(:get_bucket_replication, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetBucketReplication"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}?replication"
    o.input = Shapes::ShapeRef.new(shape: GetBucketReplicationRequest)
    o.output = Shapes::ShapeRef.new(shape: GetBucketReplicationOutput)
  end)

  api.add_operation(:get_bucket_request_payment, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetBucketRequestPayment"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}?requestPayment"
    o.input = Shapes::ShapeRef.new(shape: GetBucketRequestPaymentRequest)
    o.output = Shapes::ShapeRef.new(shape: GetBucketRequestPaymentOutput)
  end)

  api.add_operation(:get_bucket_tagging, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetBucketTagging"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}?tagging"
    o.input = Shapes::ShapeRef.new(shape: GetBucketTaggingRequest)
    o.output = Shapes::ShapeRef.new(shape: GetBucketTaggingOutput)
  end)

  api.add_operation(:get_bucket_versioning, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetBucketVersioning"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}?versioning"
    o.input = Shapes::ShapeRef.new(shape: GetBucketVersioningRequest)
    o.output = Shapes::ShapeRef.new(shape: GetBucketVersioningOutput)
  end)

  api.add_operation(:get_bucket_website, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetBucketWebsite"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}?website"
    o.input = Shapes::ShapeRef.new(shape: GetBucketWebsiteRequest)
    o.output = Shapes::ShapeRef.new(shape: GetBucketWebsiteOutput)
  end)

  api.add_operation(:get_object, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetObject"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}/{Key+}"
    o.input = Shapes::ShapeRef.new(shape: GetObjectRequest)
    o.output = Shapes::ShapeRef.new(shape: GetObjectOutput)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchKey)
  end)

  api.add_operation(:get_object_acl, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetObjectAcl"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}/{Key+}?acl"
    o.input = Shapes::ShapeRef.new(shape: GetObjectAclRequest)
    o.output = Shapes::ShapeRef.new(shape: GetObjectAclOutput)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchKey)
  end)

  api.add_operation(:get_object_legal_hold, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetObjectLegalHold"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}/{Key+}?legal-hold"
    o.input = Shapes::ShapeRef.new(shape: GetObjectLegalHoldRequest)
    o.output = Shapes::ShapeRef.new(shape: GetObjectLegalHoldOutput)
  end)

  api.add_operation(:get_object_lock_configuration, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetObjectLockConfiguration"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}?object-lock"
    o.input = Shapes::ShapeRef.new(shape: GetObjectLockConfigurationRequest)
    o.output = Shapes::ShapeRef.new(shape: GetObjectLockConfigurationOutput)
  end)

  api.add_operation(:get_object_retention, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetObjectRetention"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}/{Key+}?retention"
    o.input = Shapes::ShapeRef.new(shape: GetObjectRetentionRequest)
    o.output = Shapes::ShapeRef.new(shape: GetObjectRetentionOutput)
  end)

  api.add_operation(:get_object_tagging, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetObjectTagging"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}/{Key+}?tagging"
    o.input = Shapes::ShapeRef.new(shape: GetObjectTaggingRequest)
    o.output = Shapes::ShapeRef.new(shape: GetObjectTaggingOutput)
  end)

  api.add_operation(:get_object_torrent, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetObjectTorrent"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}/{Key+}?torrent"
    o.input = Shapes::ShapeRef.new(shape: GetObjectTorrentRequest)
    o.output = Shapes::ShapeRef.new(shape: GetObjectTorrentOutput)
  end)

  api.add_operation(:get_public_access_block, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetPublicAccessBlock"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}?publicAccessBlock"
    o.input = Shapes::ShapeRef.new(shape: GetPublicAccessBlockRequest)
    o.output = Shapes::ShapeRef.new(shape: GetPublicAccessBlockOutput)
  end)

  api.add_operation(:head_bucket, Seahorse::Model::Operation.new.tap do |o|
    o.name = "HeadBucket"
    o.http_method = "HEAD"
    o.http_request_uri = "/{Bucket}"
    o.input = Shapes::ShapeRef.new(shape: HeadBucketRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchBucket)
  end)

  api.add_operation(:head_object, Seahorse::Model::Operation.new.tap do |o|
    o.name = "HeadObject"
    o.http_method = "HEAD"
    o.http_request_uri = "/{Bucket}/{Key+}"
    o.input = Shapes::ShapeRef.new(shape: HeadObjectRequest)
    o.output = Shapes::ShapeRef.new(shape: HeadObjectOutput)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchKey)
  end)

  api.add_operation(:list_bucket_analytics_configurations, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListBucketAnalyticsConfigurations"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}?analytics"
    o.input = Shapes::ShapeRef.new(shape: ListBucketAnalyticsConfigurationsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListBucketAnalyticsConfigurationsOutput)
  end)

  api.add_operation(:list_bucket_inventory_configurations, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListBucketInventoryConfigurations"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}?inventory"
    o.input = Shapes::ShapeRef.new(shape: ListBucketInventoryConfigurationsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListBucketInventoryConfigurationsOutput)
  end)

  api.add_operation(:list_bucket_metrics_configurations, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListBucketMetricsConfigurations"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}?metrics"
    o.input = Shapes::ShapeRef.new(shape: ListBucketMetricsConfigurationsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListBucketMetricsConfigurationsOutput)
  end)

  api.add_operation(:list_buckets, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListBuckets"
    o.http_method = "GET"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.output = Shapes::ShapeRef.new(shape: ListBucketsOutput)
  end)

  api.add_operation(:list_multipart_uploads, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListMultipartUploads"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}?uploads"
    o.input = Shapes::ShapeRef.new(shape: ListMultipartUploadsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListMultipartUploadsOutput)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_uploads",
      tokens: {
        "next_key_marker" => "key_marker",
        "next_upload_id_marker" => "upload_id_marker"
      }
    )
  end)

  api.add_operation(:list_object_versions, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListObjectVersions"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}?versions"
    o.input = Shapes::ShapeRef.new(shape: ListObjectVersionsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListObjectVersionsOutput)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_keys",
      tokens: {
        "next_key_marker" => "key_marker",
        "next_version_id_marker" => "version_id_marker"
      }
    )
  end)

  api.add_operation(:list_objects, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListObjects"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}"
    o.input = Shapes::ShapeRef.new(shape: ListObjectsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListObjectsOutput)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchBucket)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_keys",
      tokens: {
        "next_marker || contents[-1].key" => "marker"
      }
    )
  end)

  api.add_operation(:list_objects_v2, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListObjectsV2"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}?list-type=2"
    o.input = Shapes::ShapeRef.new(shape: ListObjectsV2Request)
    o.output = Shapes::ShapeRef.new(shape: ListObjectsV2Output)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchBucket)
    o[:pager] = Aws::Pager.new(
      limit_key: "max_keys",
      tokens: {
        "next_continuation_token" => "continuation_token"
      }
    )
  end)

  api.add_operation(:list_parts, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListParts"
    o.http_method = "GET"
    o.http_request_uri = "/{Bucket}/{Key+}"
    o.input = Shapes::ShapeRef.new(shape: ListPartsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListPartsOutput)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_parts",
      tokens: {
        "next_part_number_marker" => "part_number_marker"
      }
    )
  end)

  api.add_operation(:put_bucket_accelerate_configuration, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutBucketAccelerateConfiguration"
    o.http_method = "PUT"
    o.http_request_uri = "/{Bucket}?accelerate"
    o.input = Shapes::ShapeRef.new(shape: PutBucketAccelerateConfigurationRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:put_bucket_acl, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutBucketAcl"
    o.http_method = "PUT"
    o.http_request_uri = "/{Bucket}?acl"
    o.input = Shapes::ShapeRef.new(shape: PutBucketAclRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:put_bucket_analytics_configuration, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutBucketAnalyticsConfiguration"
    o.http_method = "PUT"
    o.http_request_uri = "/{Bucket}?analytics"
    o.input = Shapes::ShapeRef.new(shape: PutBucketAnalyticsConfigurationRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:put_bucket_cors, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutBucketCors"
    o.http_method = "PUT"
    o.http_request_uri = "/{Bucket}?cors"
    o.input = Shapes::ShapeRef.new(shape: PutBucketCorsRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:put_bucket_encryption, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutBucketEncryption"
    o.http_method = "PUT"
    o.http_request_uri = "/{Bucket}?encryption"
    o.input = Shapes::ShapeRef.new(shape: PutBucketEncryptionRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:put_bucket_inventory_configuration, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutBucketInventoryConfiguration"
    o.http_method = "PUT"
    o.http_request_uri = "/{Bucket}?inventory"
    o.input = Shapes::ShapeRef.new(shape: PutBucketInventoryConfigurationRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:put_bucket_lifecycle, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutBucketLifecycle"
    o.http_method = "PUT"
    o.http_request_uri = "/{Bucket}?lifecycle"
    o.deprecated = true
    o.input = Shapes::ShapeRef.new(shape: PutBucketLifecycleRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:put_bucket_lifecycle_configuration, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutBucketLifecycleConfiguration"
    o.http_method = "PUT"
    o.http_request_uri = "/{Bucket}?lifecycle"
    o.input = Shapes::ShapeRef.new(shape: PutBucketLifecycleConfigurationRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:put_bucket_logging, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutBucketLogging"
    o.http_method = "PUT"
    o.http_request_uri = "/{Bucket}?logging"
    o.input = Shapes::ShapeRef.new(shape: PutBucketLoggingRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:put_bucket_metrics_configuration, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutBucketMetricsConfiguration"
    o.http_method = "PUT"
    o.http_request_uri = "/{Bucket}?metrics"
    o.input = Shapes::ShapeRef.new(shape: PutBucketMetricsConfigurationRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:put_bucket_notification, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutBucketNotification"
    o.http_method = "PUT"
    o.http_request_uri = "/{Bucket}?notification"
    o.deprecated = true
    o.input = Shapes::ShapeRef.new(shape: PutBucketNotificationRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:put_bucket_notification_configuration, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutBucketNotificationConfiguration"
    o.http_method = "PUT"
    o.http_request_uri = "/{Bucket}?notification"
    o.input = Shapes::ShapeRef.new(shape: PutBucketNotificationConfigurationRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:put_bucket_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutBucketPolicy"
    o.http_method = "PUT"
    o.http_request_uri = "/{Bucket}?policy"
    o.input = Shapes::ShapeRef.new(shape: PutBucketPolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:put_bucket_replication, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutBucketReplication"
    o.http_method = "PUT"
    o.http_request_uri = "/{Bucket}?replication"
    o.input = Shapes::ShapeRef.new(shape: PutBucketReplicationRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:put_bucket_request_payment, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutBucketRequestPayment"
    o.http_method = "PUT"
    o.http_request_uri = "/{Bucket}?requestPayment"
    o.input = Shapes::ShapeRef.new(shape: PutBucketRequestPaymentRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:put_bucket_tagging, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutBucketTagging"
    o.http_method = "PUT"
    o.http_request_uri = "/{Bucket}?tagging"
    o.input = Shapes::ShapeRef.new(shape: PutBucketTaggingRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:put_bucket_versioning, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutBucketVersioning"
    o.http_method = "PUT"
    o.http_request_uri = "/{Bucket}?versioning"
    o.input = Shapes::ShapeRef.new(shape: PutBucketVersioningRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:put_bucket_website, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutBucketWebsite"
    o.http_method = "PUT"
    o.http_request_uri = "/{Bucket}?website"
    o.input = Shapes::ShapeRef.new(shape: PutBucketWebsiteRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:put_object, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutObject"
    o.http_method = "PUT"
    o.http_request_uri = "/{Bucket}/{Key+}"
    o.input = Shapes::ShapeRef.new(shape: PutObjectRequest)
    o.output = Shapes::ShapeRef.new(shape: PutObjectOutput)
  end)

  api.add_operation(:put_object_acl, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutObjectAcl"
    o.http_method = "PUT"
    o.http_request_uri = "/{Bucket}/{Key+}?acl"
    o.input = Shapes::ShapeRef.new(shape: PutObjectAclRequest)
    o.output = Shapes::ShapeRef.new(shape: PutObjectAclOutput)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchKey)
  end)

  api.add_operation(:put_object_legal_hold, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutObjectLegalHold"
    o.http_method = "PUT"
    o.http_request_uri = "/{Bucket}/{Key+}?legal-hold"
    o.input = Shapes::ShapeRef.new(shape: PutObjectLegalHoldRequest)
    o.output = Shapes::ShapeRef.new(shape: PutObjectLegalHoldOutput)
  end)

  api.add_operation(:put_object_lock_configuration, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutObjectLockConfiguration"
    o.http_method = "PUT"
    o.http_request_uri = "/{Bucket}?object-lock"
    o.input = Shapes::ShapeRef.new(shape: PutObjectLockConfigurationRequest)
    o.output = Shapes::ShapeRef.new(shape: PutObjectLockConfigurationOutput)
  end)

  api.add_operation(:put_object_retention, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutObjectRetention"
    o.http_method = "PUT"
    o.http_request_uri = "/{Bucket}/{Key+}?retention"
    o.input = Shapes::ShapeRef.new(shape: PutObjectRetentionRequest)
    o.output = Shapes::ShapeRef.new(shape: PutObjectRetentionOutput)
  end)

  api.add_operation(:put_object_tagging, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutObjectTagging"
    o.http_method = "PUT"
    o.http_request_uri = "/{Bucket}/{Key+}?tagging"
    o.input = Shapes::ShapeRef.new(shape: PutObjectTaggingRequest)
    o.output = Shapes::ShapeRef.new(shape: PutObjectTaggingOutput)
  end)

  api.add_operation(:put_public_access_block, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutPublicAccessBlock"
    o.http_method = "PUT"
    o.http_request_uri = "/{Bucket}?publicAccessBlock"
    o.input = Shapes::ShapeRef.new(shape: PutPublicAccessBlockRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
  end)

  api.add_operation(:restore_object, Seahorse::Model::Operation.new.tap do |o|
    o.name = "RestoreObject"
    o.http_method = "POST"
    o.http_request_uri = "/{Bucket}/{Key+}?restore"
    o.input = Shapes::ShapeRef.new(shape: RestoreObjectRequest)
    o.output = Shapes::ShapeRef.new(shape: RestoreObjectOutput)
    o.errors << Shapes::ShapeRef.new(shape: ObjectAlreadyInActiveTierError)
  end)

  api.add_operation(:select_object_content, Seahorse::Model::Operation.new.tap do |o|
    o.name = "SelectObjectContent"
    o.http_method = "POST"
    o.http_request_uri = "/{Bucket}/{Key+}?select&select-type=2"
    o.input = Shapes::ShapeRef.new(shape: SelectObjectContentRequest,
      location_name: "SelectObjectContentRequest",
      metadata: {
        "xmlNamespace" => {"uri"=>"http://s3.amazonaws.com/doc/2006-03-01/"}
      }
    )
    o.output = Shapes::ShapeRef.new(shape: SelectObjectContentOutput)
  end)

  api.add_operation(:upload_part, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UploadPart"
    o.http_method = "PUT"
    o.http_request_uri = "/{Bucket}/{Key+}"
    o.input = Shapes::ShapeRef.new(shape: UploadPartRequest)
    o.output = Shapes::ShapeRef.new(shape: UploadPartOutput)
  end)

  api.add_operation(:upload_part_copy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UploadPartCopy"
    o.http_method = "PUT"
    o.http_request_uri = "/{Bucket}/{Key+}"
    o.input = Shapes::ShapeRef.new(shape: UploadPartCopyRequest)
    o.output = Shapes::ShapeRef.new(shape: UploadPartCopyOutput)
  end)
end