// Code generated by smithy-go-codegen DO NOT EDIT.

package s3

import (
	
	
	
	
	
	awsmiddleware 
	
	
	awsxml 
	
	
	smithy 
	smithyxml 
	smithyio 
	
	
	smithytime 
	smithyhttp 
	
	
	
	
)

type awsRestxml_deserializeOpAbortMultipartUpload struct {
}

func (*awsRestxml_deserializeOpAbortMultipartUpload) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpAbortMultipartUpload) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorAbortMultipartUpload(, &)
	}
	 := &AbortMultipartUploadOutput{}
	.Result = 

	 = awsRestxml_deserializeOpHttpBindingsAbortMultipartUploadOutput(, )
	if  != nil {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", )}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	case strings.EqualFold("NoSuchUpload", ):
		return awsRestxml_deserializeErrorNoSuchUpload(, )

	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( *AbortMultipartUploadOutput,  *smithyhttp.Response) error {
	if  == nil {
		return fmt.Errorf("unsupported deserialization for nil %T", )
	}

	if  := .Header.Values("x-amz-request-charged"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.RequestCharged = types.RequestCharged([0])
	}

	return nil
}

type awsRestxml_deserializeOpCompleteMultipartUpload struct {
}

func (*awsRestxml_deserializeOpCompleteMultipartUpload) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpCompleteMultipartUpload) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorCompleteMultipartUpload(, &)
	}
	 := &CompleteMultipartUploadOutput{}
	.Result = 

	 = awsRestxml_deserializeOpHttpBindingsCompleteMultipartUploadOutput(, )
	if  != nil {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", )}
	}

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeOpDocumentCompleteMultipartUploadOutput(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( *CompleteMultipartUploadOutput,  *smithyhttp.Response) error {
	if  == nil {
		return fmt.Errorf("unsupported deserialization for nil %T", )
	}

	if  := .Header.Values("x-amz-server-side-encryption-bucket-key-enabled"); len() != 0 {
		[0] = strings.TrimSpace([0])
		,  := strconv.ParseBool([0])
		if  != nil {
			return 
		}
		.BucketKeyEnabled = 
	}

	if  := .Header.Values("x-amz-expiration"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.Expiration = ptr.String([0])
	}

	if  := .Header.Values("x-amz-request-charged"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.RequestCharged = types.RequestCharged([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ServerSideEncryption = types.ServerSideEncryption([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption-aws-kms-key-id"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.SSEKMSKeyId = ptr.String([0])
	}

	if  := .Header.Values("x-amz-version-id"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.VersionId = ptr.String([0])
	}

	return nil
}
func ( **CompleteMultipartUploadOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *CompleteMultipartUploadOutput
	if * == nil {
		 = &CompleteMultipartUploadOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Bucket", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Bucket = ptr.String()
			}

		case strings.EqualFold("ChecksumCRC32", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ChecksumCRC32 = ptr.String()
			}

		case strings.EqualFold("ChecksumCRC32C", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ChecksumCRC32C = ptr.String()
			}

		case strings.EqualFold("ChecksumSHA1", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ChecksumSHA1 = ptr.String()
			}

		case strings.EqualFold("ChecksumSHA256", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ChecksumSHA256 = ptr.String()
			}

		case strings.EqualFold("ETag", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ETag = ptr.String()
			}

		case strings.EqualFold("Key", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Key = ptr.String()
			}

		case strings.EqualFold("Location", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Location = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpCopyObject struct {
}

func (*awsRestxml_deserializeOpCopyObject) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpCopyObject) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorCopyObject(, &)
	}
	 := &CopyObjectOutput{}
	.Result = 

	 = awsRestxml_deserializeOpHttpBindingsCopyObjectOutput(, )
	if  != nil {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", )}
	}

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeDocumentCopyObjectResult(&.CopyObjectResult, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	case strings.EqualFold("ObjectNotInActiveTierError", ):
		return awsRestxml_deserializeErrorObjectNotInActiveTierError(, )

	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( *CopyObjectOutput,  *smithyhttp.Response) error {
	if  == nil {
		return fmt.Errorf("unsupported deserialization for nil %T", )
	}

	if  := .Header.Values("x-amz-server-side-encryption-bucket-key-enabled"); len() != 0 {
		[0] = strings.TrimSpace([0])
		,  := strconv.ParseBool([0])
		if  != nil {
			return 
		}
		.BucketKeyEnabled = 
	}

	if  := .Header.Values("x-amz-copy-source-version-id"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.CopySourceVersionId = ptr.String([0])
	}

	if  := .Header.Values("x-amz-expiration"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.Expiration = ptr.String([0])
	}

	if  := .Header.Values("x-amz-request-charged"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.RequestCharged = types.RequestCharged([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ServerSideEncryption = types.ServerSideEncryption([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption-customer-algorithm"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.SSECustomerAlgorithm = ptr.String([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption-customer-key-MD5"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.SSECustomerKeyMD5 = ptr.String([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption-context"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.SSEKMSEncryptionContext = ptr.String([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption-aws-kms-key-id"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.SSEKMSKeyId = ptr.String([0])
	}

	if  := .Header.Values("x-amz-version-id"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.VersionId = ptr.String([0])
	}

	return nil
}
func ( **CopyObjectOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *CopyObjectOutput
	if * == nil {
		 = &CopyObjectOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("CopyObjectResult", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentCopyObjectResult(&.CopyObjectResult, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpCreateBucket struct {
}

func (*awsRestxml_deserializeOpCreateBucket) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpCreateBucket) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorCreateBucket(, &)
	}
	 := &CreateBucketOutput{}
	.Result = 

	 = awsRestxml_deserializeOpHttpBindingsCreateBucketOutput(, )
	if  != nil {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", )}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	case strings.EqualFold("BucketAlreadyExists", ):
		return awsRestxml_deserializeErrorBucketAlreadyExists(, )

	case strings.EqualFold("BucketAlreadyOwnedByYou", ):
		return awsRestxml_deserializeErrorBucketAlreadyOwnedByYou(, )

	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( *CreateBucketOutput,  *smithyhttp.Response) error {
	if  == nil {
		return fmt.Errorf("unsupported deserialization for nil %T", )
	}

	if  := .Header.Values("Location"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.Location = ptr.String([0])
	}

	return nil
}

type awsRestxml_deserializeOpCreateMultipartUpload struct {
}

func (*awsRestxml_deserializeOpCreateMultipartUpload) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpCreateMultipartUpload) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorCreateMultipartUpload(, &)
	}
	 := &CreateMultipartUploadOutput{}
	.Result = 

	 = awsRestxml_deserializeOpHttpBindingsCreateMultipartUploadOutput(, )
	if  != nil {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", )}
	}

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeOpDocumentCreateMultipartUploadOutput(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( *CreateMultipartUploadOutput,  *smithyhttp.Response) error {
	if  == nil {
		return fmt.Errorf("unsupported deserialization for nil %T", )
	}

	if  := .Header.Values("x-amz-abort-date"); len() != 0 {
		[0] = strings.TrimSpace([0])
		,  := smithytime.ParseHTTPDate([0])
		if  != nil {
			return 
		}
		.AbortDate = ptr.Time()
	}

	if  := .Header.Values("x-amz-abort-rule-id"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.AbortRuleId = ptr.String([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption-bucket-key-enabled"); len() != 0 {
		[0] = strings.TrimSpace([0])
		,  := strconv.ParseBool([0])
		if  != nil {
			return 
		}
		.BucketKeyEnabled = 
	}

	if  := .Header.Values("x-amz-checksum-algorithm"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ChecksumAlgorithm = types.ChecksumAlgorithm([0])
	}

	if  := .Header.Values("x-amz-request-charged"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.RequestCharged = types.RequestCharged([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ServerSideEncryption = types.ServerSideEncryption([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption-customer-algorithm"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.SSECustomerAlgorithm = ptr.String([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption-customer-key-MD5"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.SSECustomerKeyMD5 = ptr.String([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption-context"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.SSEKMSEncryptionContext = ptr.String([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption-aws-kms-key-id"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.SSEKMSKeyId = ptr.String([0])
	}

	return nil
}
func ( **CreateMultipartUploadOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *CreateMultipartUploadOutput
	if * == nil {
		 = &CreateMultipartUploadOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Bucket", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Bucket = ptr.String()
			}

		case strings.EqualFold("Key", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Key = ptr.String()
			}

		case strings.EqualFold("UploadId", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.UploadId = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpDeleteBucket struct {
}

func (*awsRestxml_deserializeOpDeleteBucket) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpDeleteBucket) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorDeleteBucket(, &)
	}
	 := &DeleteBucketOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpDeleteBucketAnalyticsConfiguration struct {
}

func (*awsRestxml_deserializeOpDeleteBucketAnalyticsConfiguration) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpDeleteBucketAnalyticsConfiguration) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorDeleteBucketAnalyticsConfiguration(, &)
	}
	 := &DeleteBucketAnalyticsConfigurationOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpDeleteBucketCors struct {
}

func (*awsRestxml_deserializeOpDeleteBucketCors) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpDeleteBucketCors) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorDeleteBucketCors(, &)
	}
	 := &DeleteBucketCorsOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpDeleteBucketEncryption struct {
}

func (*awsRestxml_deserializeOpDeleteBucketEncryption) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpDeleteBucketEncryption) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorDeleteBucketEncryption(, &)
	}
	 := &DeleteBucketEncryptionOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpDeleteBucketIntelligentTieringConfiguration struct {
}

func (*awsRestxml_deserializeOpDeleteBucketIntelligentTieringConfiguration) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpDeleteBucketIntelligentTieringConfiguration) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorDeleteBucketIntelligentTieringConfiguration(, &)
	}
	 := &DeleteBucketIntelligentTieringConfigurationOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpDeleteBucketInventoryConfiguration struct {
}

func (*awsRestxml_deserializeOpDeleteBucketInventoryConfiguration) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpDeleteBucketInventoryConfiguration) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorDeleteBucketInventoryConfiguration(, &)
	}
	 := &DeleteBucketInventoryConfigurationOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpDeleteBucketLifecycle struct {
}

func (*awsRestxml_deserializeOpDeleteBucketLifecycle) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpDeleteBucketLifecycle) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorDeleteBucketLifecycle(, &)
	}
	 := &DeleteBucketLifecycleOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpDeleteBucketMetricsConfiguration struct {
}

func (*awsRestxml_deserializeOpDeleteBucketMetricsConfiguration) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpDeleteBucketMetricsConfiguration) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorDeleteBucketMetricsConfiguration(, &)
	}
	 := &DeleteBucketMetricsConfigurationOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpDeleteBucketOwnershipControls struct {
}

func (*awsRestxml_deserializeOpDeleteBucketOwnershipControls) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpDeleteBucketOwnershipControls) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorDeleteBucketOwnershipControls(, &)
	}
	 := &DeleteBucketOwnershipControlsOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpDeleteBucketPolicy struct {
}

func (*awsRestxml_deserializeOpDeleteBucketPolicy) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpDeleteBucketPolicy) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorDeleteBucketPolicy(, &)
	}
	 := &DeleteBucketPolicyOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpDeleteBucketReplication struct {
}

func (*awsRestxml_deserializeOpDeleteBucketReplication) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpDeleteBucketReplication) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorDeleteBucketReplication(, &)
	}
	 := &DeleteBucketReplicationOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpDeleteBucketTagging struct {
}

func (*awsRestxml_deserializeOpDeleteBucketTagging) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpDeleteBucketTagging) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorDeleteBucketTagging(, &)
	}
	 := &DeleteBucketTaggingOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpDeleteBucketWebsite struct {
}

func (*awsRestxml_deserializeOpDeleteBucketWebsite) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpDeleteBucketWebsite) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorDeleteBucketWebsite(, &)
	}
	 := &DeleteBucketWebsiteOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpDeleteObject struct {
}

func (*awsRestxml_deserializeOpDeleteObject) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpDeleteObject) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorDeleteObject(, &)
	}
	 := &DeleteObjectOutput{}
	.Result = 

	 = awsRestxml_deserializeOpHttpBindingsDeleteObjectOutput(, )
	if  != nil {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", )}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( *DeleteObjectOutput,  *smithyhttp.Response) error {
	if  == nil {
		return fmt.Errorf("unsupported deserialization for nil %T", )
	}

	if  := .Header.Values("x-amz-delete-marker"); len() != 0 {
		[0] = strings.TrimSpace([0])
		,  := strconv.ParseBool([0])
		if  != nil {
			return 
		}
		.DeleteMarker = 
	}

	if  := .Header.Values("x-amz-request-charged"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.RequestCharged = types.RequestCharged([0])
	}

	if  := .Header.Values("x-amz-version-id"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.VersionId = ptr.String([0])
	}

	return nil
}

type awsRestxml_deserializeOpDeleteObjects struct {
}

func (*awsRestxml_deserializeOpDeleteObjects) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpDeleteObjects) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorDeleteObjects(, &)
	}
	 := &DeleteObjectsOutput{}
	.Result = 

	 = awsRestxml_deserializeOpHttpBindingsDeleteObjectsOutput(, )
	if  != nil {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", )}
	}

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeOpDocumentDeleteObjectsOutput(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( *DeleteObjectsOutput,  *smithyhttp.Response) error {
	if  == nil {
		return fmt.Errorf("unsupported deserialization for nil %T", )
	}

	if  := .Header.Values("x-amz-request-charged"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.RequestCharged = types.RequestCharged([0])
	}

	return nil
}
func ( **DeleteObjectsOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *DeleteObjectsOutput
	if * == nil {
		 = &DeleteObjectsOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Deleted", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentDeletedObjectsUnwrapped(&.Deleted, );  != nil {
				return 
			}

		case strings.EqualFold("Error", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentErrorsUnwrapped(&.Errors, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpDeleteObjectTagging struct {
}

func (*awsRestxml_deserializeOpDeleteObjectTagging) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpDeleteObjectTagging) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorDeleteObjectTagging(, &)
	}
	 := &DeleteObjectTaggingOutput{}
	.Result = 

	 = awsRestxml_deserializeOpHttpBindingsDeleteObjectTaggingOutput(, )
	if  != nil {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", )}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( *DeleteObjectTaggingOutput,  *smithyhttp.Response) error {
	if  == nil {
		return fmt.Errorf("unsupported deserialization for nil %T", )
	}

	if  := .Header.Values("x-amz-version-id"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.VersionId = ptr.String([0])
	}

	return nil
}

type awsRestxml_deserializeOpDeletePublicAccessBlock struct {
}

func (*awsRestxml_deserializeOpDeletePublicAccessBlock) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpDeletePublicAccessBlock) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorDeletePublicAccessBlock(, &)
	}
	 := &DeletePublicAccessBlockOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpGetBucketAccelerateConfiguration struct {
}

func (*awsRestxml_deserializeOpGetBucketAccelerateConfiguration) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpGetBucketAccelerateConfiguration) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorGetBucketAccelerateConfiguration(, &)
	}
	 := &GetBucketAccelerateConfigurationOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeOpDocumentGetBucketAccelerateConfigurationOutput(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **GetBucketAccelerateConfigurationOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *GetBucketAccelerateConfigurationOutput
	if * == nil {
		 = &GetBucketAccelerateConfigurationOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Status", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Status = types.BucketAccelerateStatus()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpGetBucketAcl struct {
}

func (*awsRestxml_deserializeOpGetBucketAcl) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpGetBucketAcl) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorGetBucketAcl(, &)
	}
	 := &GetBucketAclOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeOpDocumentGetBucketAclOutput(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **GetBucketAclOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *GetBucketAclOutput
	if * == nil {
		 = &GetBucketAclOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("AccessControlList", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentGrants(&.Grants, );  != nil {
				return 
			}

		case strings.EqualFold("Owner", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentOwner(&.Owner, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpGetBucketAnalyticsConfiguration struct {
}

func (*awsRestxml_deserializeOpGetBucketAnalyticsConfiguration) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpGetBucketAnalyticsConfiguration) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorGetBucketAnalyticsConfiguration(, &)
	}
	 := &GetBucketAnalyticsConfigurationOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeDocumentAnalyticsConfiguration(&.AnalyticsConfiguration, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **GetBucketAnalyticsConfigurationOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *GetBucketAnalyticsConfigurationOutput
	if * == nil {
		 = &GetBucketAnalyticsConfigurationOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("AnalyticsConfiguration", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentAnalyticsConfiguration(&.AnalyticsConfiguration, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpGetBucketCors struct {
}

func (*awsRestxml_deserializeOpGetBucketCors) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpGetBucketCors) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorGetBucketCors(, &)
	}
	 := &GetBucketCorsOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeOpDocumentGetBucketCorsOutput(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **GetBucketCorsOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *GetBucketCorsOutput
	if * == nil {
		 = &GetBucketCorsOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("CORSRule", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentCORSRulesUnwrapped(&.CORSRules, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpGetBucketEncryption struct {
}

func (*awsRestxml_deserializeOpGetBucketEncryption) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpGetBucketEncryption) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorGetBucketEncryption(, &)
	}
	 := &GetBucketEncryptionOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeDocumentServerSideEncryptionConfiguration(&.ServerSideEncryptionConfiguration, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **GetBucketEncryptionOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *GetBucketEncryptionOutput
	if * == nil {
		 = &GetBucketEncryptionOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("ServerSideEncryptionConfiguration", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentServerSideEncryptionConfiguration(&.ServerSideEncryptionConfiguration, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpGetBucketIntelligentTieringConfiguration struct {
}

func (*awsRestxml_deserializeOpGetBucketIntelligentTieringConfiguration) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpGetBucketIntelligentTieringConfiguration) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorGetBucketIntelligentTieringConfiguration(, &)
	}
	 := &GetBucketIntelligentTieringConfigurationOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeDocumentIntelligentTieringConfiguration(&.IntelligentTieringConfiguration, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **GetBucketIntelligentTieringConfigurationOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *GetBucketIntelligentTieringConfigurationOutput
	if * == nil {
		 = &GetBucketIntelligentTieringConfigurationOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("IntelligentTieringConfiguration", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentIntelligentTieringConfiguration(&.IntelligentTieringConfiguration, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpGetBucketInventoryConfiguration struct {
}

func (*awsRestxml_deserializeOpGetBucketInventoryConfiguration) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpGetBucketInventoryConfiguration) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorGetBucketInventoryConfiguration(, &)
	}
	 := &GetBucketInventoryConfigurationOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeDocumentInventoryConfiguration(&.InventoryConfiguration, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **GetBucketInventoryConfigurationOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *GetBucketInventoryConfigurationOutput
	if * == nil {
		 = &GetBucketInventoryConfigurationOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("InventoryConfiguration", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentInventoryConfiguration(&.InventoryConfiguration, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpGetBucketLifecycleConfiguration struct {
}

func (*awsRestxml_deserializeOpGetBucketLifecycleConfiguration) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpGetBucketLifecycleConfiguration) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorGetBucketLifecycleConfiguration(, &)
	}
	 := &GetBucketLifecycleConfigurationOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeOpDocumentGetBucketLifecycleConfigurationOutput(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **GetBucketLifecycleConfigurationOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *GetBucketLifecycleConfigurationOutput
	if * == nil {
		 = &GetBucketLifecycleConfigurationOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Rule", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentLifecycleRulesUnwrapped(&.Rules, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpGetBucketLocation struct {
}

func (*awsRestxml_deserializeOpGetBucketLocation) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpGetBucketLocation) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorGetBucketLocation(, &)
	}
	 := &GetBucketLocationOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeOpDocumentGetBucketLocationOutput(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **GetBucketLocationOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *GetBucketLocationOutput
	if * == nil {
		 = &GetBucketLocationOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("LocationConstraint", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.LocationConstraint = types.BucketLocationConstraint()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpGetBucketLogging struct {
}

func (*awsRestxml_deserializeOpGetBucketLogging) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpGetBucketLogging) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorGetBucketLogging(, &)
	}
	 := &GetBucketLoggingOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeOpDocumentGetBucketLoggingOutput(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **GetBucketLoggingOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *GetBucketLoggingOutput
	if * == nil {
		 = &GetBucketLoggingOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("LoggingEnabled", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentLoggingEnabled(&.LoggingEnabled, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpGetBucketMetricsConfiguration struct {
}

func (*awsRestxml_deserializeOpGetBucketMetricsConfiguration) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpGetBucketMetricsConfiguration) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorGetBucketMetricsConfiguration(, &)
	}
	 := &GetBucketMetricsConfigurationOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeDocumentMetricsConfiguration(&.MetricsConfiguration, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **GetBucketMetricsConfigurationOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *GetBucketMetricsConfigurationOutput
	if * == nil {
		 = &GetBucketMetricsConfigurationOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("MetricsConfiguration", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentMetricsConfiguration(&.MetricsConfiguration, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpGetBucketNotificationConfiguration struct {
}

func (*awsRestxml_deserializeOpGetBucketNotificationConfiguration) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpGetBucketNotificationConfiguration) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorGetBucketNotificationConfiguration(, &)
	}
	 := &GetBucketNotificationConfigurationOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeOpDocumentGetBucketNotificationConfigurationOutput(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **GetBucketNotificationConfigurationOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *GetBucketNotificationConfigurationOutput
	if * == nil {
		 = &GetBucketNotificationConfigurationOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("EventBridgeConfiguration", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentEventBridgeConfiguration(&.EventBridgeConfiguration, );  != nil {
				return 
			}

		case strings.EqualFold("CloudFunctionConfiguration", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentLambdaFunctionConfigurationListUnwrapped(&.LambdaFunctionConfigurations, );  != nil {
				return 
			}

		case strings.EqualFold("QueueConfiguration", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentQueueConfigurationListUnwrapped(&.QueueConfigurations, );  != nil {
				return 
			}

		case strings.EqualFold("TopicConfiguration", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentTopicConfigurationListUnwrapped(&.TopicConfigurations, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpGetBucketOwnershipControls struct {
}

func (*awsRestxml_deserializeOpGetBucketOwnershipControls) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpGetBucketOwnershipControls) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorGetBucketOwnershipControls(, &)
	}
	 := &GetBucketOwnershipControlsOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeDocumentOwnershipControls(&.OwnershipControls, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **GetBucketOwnershipControlsOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *GetBucketOwnershipControlsOutput
	if * == nil {
		 = &GetBucketOwnershipControlsOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("OwnershipControls", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentOwnershipControls(&.OwnershipControls, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpGetBucketPolicy struct {
}

func (*awsRestxml_deserializeOpGetBucketPolicy) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpGetBucketPolicy) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorGetBucketPolicy(, &)
	}
	 := &GetBucketPolicyOutput{}
	.Result = 

	 = awsRestxml_deserializeOpDocumentGetBucketPolicyOutput(, .Body, .ContentLength)
	if  != nil {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("failed to deserialize response payload, %w", )}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( *GetBucketPolicyOutput,  io.ReadCloser,  int64) error {
	if  == nil {
		return fmt.Errorf("unsupported deserialization of nil %T", )
	}
	var  bytes.Buffer
	if  > 0 {
		.Grow(int())
	} else {
		.Grow(512)
	}

	,  := .ReadFrom()
	if  != nil {
		return 
	}
	if .Len() > 0 {
		.Policy = ptr.String(.String())
	}
	return nil
}

type awsRestxml_deserializeOpGetBucketPolicyStatus struct {
}

func (*awsRestxml_deserializeOpGetBucketPolicyStatus) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpGetBucketPolicyStatus) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorGetBucketPolicyStatus(, &)
	}
	 := &GetBucketPolicyStatusOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeDocumentPolicyStatus(&.PolicyStatus, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **GetBucketPolicyStatusOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *GetBucketPolicyStatusOutput
	if * == nil {
		 = &GetBucketPolicyStatusOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("PolicyStatus", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentPolicyStatus(&.PolicyStatus, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpGetBucketReplication struct {
}

func (*awsRestxml_deserializeOpGetBucketReplication) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpGetBucketReplication) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorGetBucketReplication(, &)
	}
	 := &GetBucketReplicationOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeDocumentReplicationConfiguration(&.ReplicationConfiguration, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **GetBucketReplicationOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *GetBucketReplicationOutput
	if * == nil {
		 = &GetBucketReplicationOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("ReplicationConfiguration", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentReplicationConfiguration(&.ReplicationConfiguration, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpGetBucketRequestPayment struct {
}

func (*awsRestxml_deserializeOpGetBucketRequestPayment) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpGetBucketRequestPayment) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorGetBucketRequestPayment(, &)
	}
	 := &GetBucketRequestPaymentOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeOpDocumentGetBucketRequestPaymentOutput(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **GetBucketRequestPaymentOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *GetBucketRequestPaymentOutput
	if * == nil {
		 = &GetBucketRequestPaymentOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Payer", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Payer = types.Payer()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpGetBucketTagging struct {
}

func (*awsRestxml_deserializeOpGetBucketTagging) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpGetBucketTagging) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorGetBucketTagging(, &)
	}
	 := &GetBucketTaggingOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeOpDocumentGetBucketTaggingOutput(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **GetBucketTaggingOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *GetBucketTaggingOutput
	if * == nil {
		 = &GetBucketTaggingOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("TagSet", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentTagSet(&.TagSet, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpGetBucketVersioning struct {
}

func (*awsRestxml_deserializeOpGetBucketVersioning) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpGetBucketVersioning) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorGetBucketVersioning(, &)
	}
	 := &GetBucketVersioningOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeOpDocumentGetBucketVersioningOutput(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **GetBucketVersioningOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *GetBucketVersioningOutput
	if * == nil {
		 = &GetBucketVersioningOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("MfaDelete", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.MFADelete = types.MFADeleteStatus()
			}

		case strings.EqualFold("Status", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Status = types.BucketVersioningStatus()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpGetBucketWebsite struct {
}

func (*awsRestxml_deserializeOpGetBucketWebsite) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpGetBucketWebsite) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorGetBucketWebsite(, &)
	}
	 := &GetBucketWebsiteOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeOpDocumentGetBucketWebsiteOutput(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **GetBucketWebsiteOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *GetBucketWebsiteOutput
	if * == nil {
		 = &GetBucketWebsiteOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("ErrorDocument", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentErrorDocument(&.ErrorDocument, );  != nil {
				return 
			}

		case strings.EqualFold("IndexDocument", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentIndexDocument(&.IndexDocument, );  != nil {
				return 
			}

		case strings.EqualFold("RedirectAllRequestsTo", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentRedirectAllRequestsTo(&.RedirectAllRequestsTo, );  != nil {
				return 
			}

		case strings.EqualFold("RoutingRules", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentRoutingRules(&.RoutingRules, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpGetObject struct {
}

func (*awsRestxml_deserializeOpGetObject) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpGetObject) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorGetObject(, &)
	}
	 := &GetObjectOutput{}
	.Result = 

	 = awsRestxml_deserializeOpHttpBindingsGetObjectOutput(, )
	if  != nil {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", )}
	}

	 = awsRestxml_deserializeOpDocumentGetObjectOutput(, .Body)
	if  != nil {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("failed to deserialize response payload, %w", )}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	case strings.EqualFold("InvalidObjectState", ):
		return awsRestxml_deserializeErrorInvalidObjectState(, )

	case strings.EqualFold("NoSuchKey", ):
		return awsRestxml_deserializeErrorNoSuchKey(, )

	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( *GetObjectOutput,  *smithyhttp.Response) error {
	if  == nil {
		return fmt.Errorf("unsupported deserialization for nil %T", )
	}

	if  := .Header.Values("accept-ranges"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.AcceptRanges = ptr.String([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption-bucket-key-enabled"); len() != 0 {
		[0] = strings.TrimSpace([0])
		,  := strconv.ParseBool([0])
		if  != nil {
			return 
		}
		.BucketKeyEnabled = 
	}

	if  := .Header.Values("Cache-Control"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.CacheControl = ptr.String([0])
	}

	if  := .Header.Values("x-amz-checksum-crc32"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ChecksumCRC32 = ptr.String([0])
	}

	if  := .Header.Values("x-amz-checksum-crc32c"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ChecksumCRC32C = ptr.String([0])
	}

	if  := .Header.Values("x-amz-checksum-sha1"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ChecksumSHA1 = ptr.String([0])
	}

	if  := .Header.Values("x-amz-checksum-sha256"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ChecksumSHA256 = ptr.String([0])
	}

	if  := .Header.Values("Content-Disposition"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ContentDisposition = ptr.String([0])
	}

	if  := .Header.Values("Content-Encoding"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ContentEncoding = ptr.String([0])
	}

	if  := .Header.Values("Content-Language"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ContentLanguage = ptr.String([0])
	}

	if  := .Header.Values("Content-Length"); len() != 0 {
		[0] = strings.TrimSpace([0])
		,  := strconv.ParseInt([0], 0, 64)
		if  != nil {
			return 
		}
		.ContentLength = 
	}

	if  := .Header.Values("Content-Range"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ContentRange = ptr.String([0])
	}

	if  := .Header.Values("Content-Type"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ContentType = ptr.String([0])
	}

	if  := .Header.Values("x-amz-delete-marker"); len() != 0 {
		[0] = strings.TrimSpace([0])
		,  := strconv.ParseBool([0])
		if  != nil {
			return 
		}
		.DeleteMarker = 
	}

	if  := .Header.Values("ETag"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ETag = ptr.String([0])
	}

	if  := .Header.Values("x-amz-expiration"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.Expiration = ptr.String([0])
	}

	if  := .Header.Values("Expires"); len() != 0 {
		[0] = strings.TrimSpace([0])
		,  := smithytime.ParseHTTPDate([0])
		if  != nil {
			return 
		}
		.Expires = ptr.Time()
	}

	if  := .Header.Values("Last-Modified"); len() != 0 {
		[0] = strings.TrimSpace([0])
		,  := smithytime.ParseHTTPDate([0])
		if  != nil {
			return 
		}
		.LastModified = ptr.Time()
	}

	for ,  := range .Header {
		if  := len("x-amz-meta-"); len() >=  && strings.EqualFold([:], "x-amz-meta-") {
			if .Metadata == nil {
				.Metadata = map[string]string{}
			}
			[0] = strings.TrimSpace([0])
			.Metadata[strings.ToLower([:])] = [0]
		}
	}

	if  := .Header.Values("x-amz-missing-meta"); len() != 0 {
		[0] = strings.TrimSpace([0])
		,  := strconv.ParseInt([0], 0, 32)
		if  != nil {
			return 
		}
		.MissingMeta = int32()
	}

	if  := .Header.Values("x-amz-object-lock-legal-hold"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ObjectLockLegalHoldStatus = types.ObjectLockLegalHoldStatus([0])
	}

	if  := .Header.Values("x-amz-object-lock-mode"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ObjectLockMode = types.ObjectLockMode([0])
	}

	if  := .Header.Values("x-amz-object-lock-retain-until-date"); len() != 0 {
		[0] = strings.TrimSpace([0])
		,  := smithytime.ParseDateTime([0])
		if  != nil {
			return 
		}
		.ObjectLockRetainUntilDate = ptr.Time()
	}

	if  := .Header.Values("x-amz-mp-parts-count"); len() != 0 {
		[0] = strings.TrimSpace([0])
		,  := strconv.ParseInt([0], 0, 32)
		if  != nil {
			return 
		}
		.PartsCount = int32()
	}

	if  := .Header.Values("x-amz-replication-status"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ReplicationStatus = types.ReplicationStatus([0])
	}

	if  := .Header.Values("x-amz-request-charged"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.RequestCharged = types.RequestCharged([0])
	}

	if  := .Header.Values("x-amz-restore"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.Restore = ptr.String([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ServerSideEncryption = types.ServerSideEncryption([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption-customer-algorithm"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.SSECustomerAlgorithm = ptr.String([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption-customer-key-MD5"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.SSECustomerKeyMD5 = ptr.String([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption-aws-kms-key-id"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.SSEKMSKeyId = ptr.String([0])
	}

	if  := .Header.Values("x-amz-storage-class"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.StorageClass = types.StorageClass([0])
	}

	if  := .Header.Values("x-amz-tagging-count"); len() != 0 {
		[0] = strings.TrimSpace([0])
		,  := strconv.ParseInt([0], 0, 32)
		if  != nil {
			return 
		}
		.TagCount = int32()
	}

	if  := .Header.Values("x-amz-version-id"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.VersionId = ptr.String([0])
	}

	if  := .Header.Values("x-amz-website-redirect-location"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.WebsiteRedirectLocation = ptr.String([0])
	}

	return nil
}
func ( *GetObjectOutput,  io.ReadCloser) error {
	if  == nil {
		return fmt.Errorf("unsupported deserialization of nil %T", )
	}
	.Body = 
	return nil
}

type awsRestxml_deserializeOpGetObjectAcl struct {
}

func (*awsRestxml_deserializeOpGetObjectAcl) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpGetObjectAcl) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorGetObjectAcl(, &)
	}
	 := &GetObjectAclOutput{}
	.Result = 

	 = awsRestxml_deserializeOpHttpBindingsGetObjectAclOutput(, )
	if  != nil {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", )}
	}

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeOpDocumentGetObjectAclOutput(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	case strings.EqualFold("NoSuchKey", ):
		return awsRestxml_deserializeErrorNoSuchKey(, )

	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( *GetObjectAclOutput,  *smithyhttp.Response) error {
	if  == nil {
		return fmt.Errorf("unsupported deserialization for nil %T", )
	}

	if  := .Header.Values("x-amz-request-charged"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.RequestCharged = types.RequestCharged([0])
	}

	return nil
}
func ( **GetObjectAclOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *GetObjectAclOutput
	if * == nil {
		 = &GetObjectAclOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("AccessControlList", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentGrants(&.Grants, );  != nil {
				return 
			}

		case strings.EqualFold("Owner", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentOwner(&.Owner, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpGetObjectAttributes struct {
}

func (*awsRestxml_deserializeOpGetObjectAttributes) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpGetObjectAttributes) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorGetObjectAttributes(, &)
	}
	 := &GetObjectAttributesOutput{}
	.Result = 

	 = awsRestxml_deserializeOpHttpBindingsGetObjectAttributesOutput(, )
	if  != nil {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", )}
	}

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeOpDocumentGetObjectAttributesOutput(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	case strings.EqualFold("NoSuchKey", ):
		return awsRestxml_deserializeErrorNoSuchKey(, )

	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( *GetObjectAttributesOutput,  *smithyhttp.Response) error {
	if  == nil {
		return fmt.Errorf("unsupported deserialization for nil %T", )
	}

	if  := .Header.Values("x-amz-delete-marker"); len() != 0 {
		[0] = strings.TrimSpace([0])
		,  := strconv.ParseBool([0])
		if  != nil {
			return 
		}
		.DeleteMarker = 
	}

	if  := .Header.Values("Last-Modified"); len() != 0 {
		[0] = strings.TrimSpace([0])
		,  := smithytime.ParseHTTPDate([0])
		if  != nil {
			return 
		}
		.LastModified = ptr.Time()
	}

	if  := .Header.Values("x-amz-request-charged"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.RequestCharged = types.RequestCharged([0])
	}

	if  := .Header.Values("x-amz-version-id"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.VersionId = ptr.String([0])
	}

	return nil
}
func ( **GetObjectAttributesOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *GetObjectAttributesOutput
	if * == nil {
		 = &GetObjectAttributesOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Checksum", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentChecksum(&.Checksum, );  != nil {
				return 
			}

		case strings.EqualFold("ETag", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ETag = ptr.String()
			}

		case strings.EqualFold("ObjectParts", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentGetObjectAttributesParts(&.ObjectParts, );  != nil {
				return 
			}

		case strings.EqualFold("ObjectSize", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.ObjectSize = 
			}

		case strings.EqualFold("StorageClass", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.StorageClass = types.StorageClass()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpGetObjectLegalHold struct {
}

func (*awsRestxml_deserializeOpGetObjectLegalHold) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpGetObjectLegalHold) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorGetObjectLegalHold(, &)
	}
	 := &GetObjectLegalHoldOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeDocumentObjectLockLegalHold(&.LegalHold, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **GetObjectLegalHoldOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *GetObjectLegalHoldOutput
	if * == nil {
		 = &GetObjectLegalHoldOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("LegalHold", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentObjectLockLegalHold(&.LegalHold, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpGetObjectLockConfiguration struct {
}

func (*awsRestxml_deserializeOpGetObjectLockConfiguration) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpGetObjectLockConfiguration) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorGetObjectLockConfiguration(, &)
	}
	 := &GetObjectLockConfigurationOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeDocumentObjectLockConfiguration(&.ObjectLockConfiguration, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **GetObjectLockConfigurationOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *GetObjectLockConfigurationOutput
	if * == nil {
		 = &GetObjectLockConfigurationOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("ObjectLockConfiguration", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentObjectLockConfiguration(&.ObjectLockConfiguration, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpGetObjectRetention struct {
}

func (*awsRestxml_deserializeOpGetObjectRetention) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpGetObjectRetention) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorGetObjectRetention(, &)
	}
	 := &GetObjectRetentionOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeDocumentObjectLockRetention(&.Retention, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **GetObjectRetentionOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *GetObjectRetentionOutput
	if * == nil {
		 = &GetObjectRetentionOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Retention", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentObjectLockRetention(&.Retention, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpGetObjectTagging struct {
}

func (*awsRestxml_deserializeOpGetObjectTagging) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpGetObjectTagging) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorGetObjectTagging(, &)
	}
	 := &GetObjectTaggingOutput{}
	.Result = 

	 = awsRestxml_deserializeOpHttpBindingsGetObjectTaggingOutput(, )
	if  != nil {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", )}
	}

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeOpDocumentGetObjectTaggingOutput(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( *GetObjectTaggingOutput,  *smithyhttp.Response) error {
	if  == nil {
		return fmt.Errorf("unsupported deserialization for nil %T", )
	}

	if  := .Header.Values("x-amz-version-id"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.VersionId = ptr.String([0])
	}

	return nil
}
func ( **GetObjectTaggingOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *GetObjectTaggingOutput
	if * == nil {
		 = &GetObjectTaggingOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("TagSet", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentTagSet(&.TagSet, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpGetObjectTorrent struct {
}

func (*awsRestxml_deserializeOpGetObjectTorrent) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpGetObjectTorrent) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorGetObjectTorrent(, &)
	}
	 := &GetObjectTorrentOutput{}
	.Result = 

	 = awsRestxml_deserializeOpHttpBindingsGetObjectTorrentOutput(, )
	if  != nil {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", )}
	}

	 = awsRestxml_deserializeOpDocumentGetObjectTorrentOutput(, .Body)
	if  != nil {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("failed to deserialize response payload, %w", )}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( *GetObjectTorrentOutput,  *smithyhttp.Response) error {
	if  == nil {
		return fmt.Errorf("unsupported deserialization for nil %T", )
	}

	if  := .Header.Values("x-amz-request-charged"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.RequestCharged = types.RequestCharged([0])
	}

	return nil
}
func ( *GetObjectTorrentOutput,  io.ReadCloser) error {
	if  == nil {
		return fmt.Errorf("unsupported deserialization of nil %T", )
	}
	.Body = 
	return nil
}

type awsRestxml_deserializeOpGetPublicAccessBlock struct {
}

func (*awsRestxml_deserializeOpGetPublicAccessBlock) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpGetPublicAccessBlock) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorGetPublicAccessBlock(, &)
	}
	 := &GetPublicAccessBlockOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeDocumentPublicAccessBlockConfiguration(&.PublicAccessBlockConfiguration, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **GetPublicAccessBlockOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *GetPublicAccessBlockOutput
	if * == nil {
		 = &GetPublicAccessBlockOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("PublicAccessBlockConfiguration", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentPublicAccessBlockConfiguration(&.PublicAccessBlockConfiguration, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpHeadBucket struct {
}

func (*awsRestxml_deserializeOpHeadBucket) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpHeadBucket) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorHeadBucket(, &)
	}
	 := &HeadBucketOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	case strings.EqualFold("NotFound", ):
		return awsRestxml_deserializeErrorNotFound(, )

	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpHeadObject struct {
}

func (*awsRestxml_deserializeOpHeadObject) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpHeadObject) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorHeadObject(, &)
	}
	 := &HeadObjectOutput{}
	.Result = 

	 = awsRestxml_deserializeOpHttpBindingsHeadObjectOutput(, )
	if  != nil {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", )}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( *HeadObjectOutput,  *smithyhttp.Response) error {
	if  == nil {
		return fmt.Errorf("unsupported deserialization for nil %T", )
	}

	if  := .Header.Values("accept-ranges"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.AcceptRanges = ptr.String([0])
	}

	if  := .Header.Values("x-amz-archive-status"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ArchiveStatus = types.ArchiveStatus([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption-bucket-key-enabled"); len() != 0 {
		[0] = strings.TrimSpace([0])
		,  := strconv.ParseBool([0])
		if  != nil {
			return 
		}
		.BucketKeyEnabled = 
	}

	if  := .Header.Values("Cache-Control"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.CacheControl = ptr.String([0])
	}

	if  := .Header.Values("x-amz-checksum-crc32"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ChecksumCRC32 = ptr.String([0])
	}

	if  := .Header.Values("x-amz-checksum-crc32c"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ChecksumCRC32C = ptr.String([0])
	}

	if  := .Header.Values("x-amz-checksum-sha1"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ChecksumSHA1 = ptr.String([0])
	}

	if  := .Header.Values("x-amz-checksum-sha256"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ChecksumSHA256 = ptr.String([0])
	}

	if  := .Header.Values("Content-Disposition"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ContentDisposition = ptr.String([0])
	}

	if  := .Header.Values("Content-Encoding"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ContentEncoding = ptr.String([0])
	}

	if  := .Header.Values("Content-Language"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ContentLanguage = ptr.String([0])
	}

	if  := .Header.Values("Content-Length"); len() != 0 {
		[0] = strings.TrimSpace([0])
		,  := strconv.ParseInt([0], 0, 64)
		if  != nil {
			return 
		}
		.ContentLength = 
	}

	if  := .Header.Values("Content-Type"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ContentType = ptr.String([0])
	}

	if  := .Header.Values("x-amz-delete-marker"); len() != 0 {
		[0] = strings.TrimSpace([0])
		,  := strconv.ParseBool([0])
		if  != nil {
			return 
		}
		.DeleteMarker = 
	}

	if  := .Header.Values("ETag"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ETag = ptr.String([0])
	}

	if  := .Header.Values("x-amz-expiration"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.Expiration = ptr.String([0])
	}

	if  := .Header.Values("Expires"); len() != 0 {
		[0] = strings.TrimSpace([0])
		,  := smithytime.ParseHTTPDate([0])
		if  != nil {
			return 
		}
		.Expires = ptr.Time()
	}

	if  := .Header.Values("Last-Modified"); len() != 0 {
		[0] = strings.TrimSpace([0])
		,  := smithytime.ParseHTTPDate([0])
		if  != nil {
			return 
		}
		.LastModified = ptr.Time()
	}

	for ,  := range .Header {
		if  := len("x-amz-meta-"); len() >=  && strings.EqualFold([:], "x-amz-meta-") {
			if .Metadata == nil {
				.Metadata = map[string]string{}
			}
			[0] = strings.TrimSpace([0])
			.Metadata[strings.ToLower([:])] = [0]
		}
	}

	if  := .Header.Values("x-amz-missing-meta"); len() != 0 {
		[0] = strings.TrimSpace([0])
		,  := strconv.ParseInt([0], 0, 32)
		if  != nil {
			return 
		}
		.MissingMeta = int32()
	}

	if  := .Header.Values("x-amz-object-lock-legal-hold"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ObjectLockLegalHoldStatus = types.ObjectLockLegalHoldStatus([0])
	}

	if  := .Header.Values("x-amz-object-lock-mode"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ObjectLockMode = types.ObjectLockMode([0])
	}

	if  := .Header.Values("x-amz-object-lock-retain-until-date"); len() != 0 {
		[0] = strings.TrimSpace([0])
		,  := smithytime.ParseDateTime([0])
		if  != nil {
			return 
		}
		.ObjectLockRetainUntilDate = ptr.Time()
	}

	if  := .Header.Values("x-amz-mp-parts-count"); len() != 0 {
		[0] = strings.TrimSpace([0])
		,  := strconv.ParseInt([0], 0, 32)
		if  != nil {
			return 
		}
		.PartsCount = int32()
	}

	if  := .Header.Values("x-amz-replication-status"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ReplicationStatus = types.ReplicationStatus([0])
	}

	if  := .Header.Values("x-amz-request-charged"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.RequestCharged = types.RequestCharged([0])
	}

	if  := .Header.Values("x-amz-restore"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.Restore = ptr.String([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ServerSideEncryption = types.ServerSideEncryption([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption-customer-algorithm"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.SSECustomerAlgorithm = ptr.String([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption-customer-key-MD5"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.SSECustomerKeyMD5 = ptr.String([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption-aws-kms-key-id"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.SSEKMSKeyId = ptr.String([0])
	}

	if  := .Header.Values("x-amz-storage-class"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.StorageClass = types.StorageClass([0])
	}

	if  := .Header.Values("x-amz-version-id"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.VersionId = ptr.String([0])
	}

	if  := .Header.Values("x-amz-website-redirect-location"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.WebsiteRedirectLocation = ptr.String([0])
	}

	return nil
}

type awsRestxml_deserializeOpListBucketAnalyticsConfigurations struct {
}

func (*awsRestxml_deserializeOpListBucketAnalyticsConfigurations) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpListBucketAnalyticsConfigurations) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorListBucketAnalyticsConfigurations(, &)
	}
	 := &ListBucketAnalyticsConfigurationsOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeOpDocumentListBucketAnalyticsConfigurationsOutput(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **ListBucketAnalyticsConfigurationsOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *ListBucketAnalyticsConfigurationsOutput
	if * == nil {
		 = &ListBucketAnalyticsConfigurationsOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("AnalyticsConfiguration", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentAnalyticsConfigurationListUnwrapped(&.AnalyticsConfigurationList, );  != nil {
				return 
			}

		case strings.EqualFold("ContinuationToken", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ContinuationToken = ptr.String()
			}

		case strings.EqualFold("IsTruncated", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				,  := strconv.ParseBool(string())
				if  != nil {
					return fmt.Errorf("expected IsTruncated to be of type *bool, got %T instead", )
				}
				.IsTruncated = 
			}

		case strings.EqualFold("NextContinuationToken", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.NextContinuationToken = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpListBucketIntelligentTieringConfigurations struct {
}

func (*awsRestxml_deserializeOpListBucketIntelligentTieringConfigurations) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpListBucketIntelligentTieringConfigurations) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorListBucketIntelligentTieringConfigurations(, &)
	}
	 := &ListBucketIntelligentTieringConfigurationsOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeOpDocumentListBucketIntelligentTieringConfigurationsOutput(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **ListBucketIntelligentTieringConfigurationsOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *ListBucketIntelligentTieringConfigurationsOutput
	if * == nil {
		 = &ListBucketIntelligentTieringConfigurationsOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("ContinuationToken", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ContinuationToken = ptr.String()
			}

		case strings.EqualFold("IntelligentTieringConfiguration", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentIntelligentTieringConfigurationListUnwrapped(&.IntelligentTieringConfigurationList, );  != nil {
				return 
			}

		case strings.EqualFold("IsTruncated", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				,  := strconv.ParseBool(string())
				if  != nil {
					return fmt.Errorf("expected IsTruncated to be of type *bool, got %T instead", )
				}
				.IsTruncated = 
			}

		case strings.EqualFold("NextContinuationToken", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.NextContinuationToken = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpListBucketInventoryConfigurations struct {
}

func (*awsRestxml_deserializeOpListBucketInventoryConfigurations) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpListBucketInventoryConfigurations) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorListBucketInventoryConfigurations(, &)
	}
	 := &ListBucketInventoryConfigurationsOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeOpDocumentListBucketInventoryConfigurationsOutput(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **ListBucketInventoryConfigurationsOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *ListBucketInventoryConfigurationsOutput
	if * == nil {
		 = &ListBucketInventoryConfigurationsOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("ContinuationToken", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ContinuationToken = ptr.String()
			}

		case strings.EqualFold("InventoryConfiguration", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentInventoryConfigurationListUnwrapped(&.InventoryConfigurationList, );  != nil {
				return 
			}

		case strings.EqualFold("IsTruncated", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				,  := strconv.ParseBool(string())
				if  != nil {
					return fmt.Errorf("expected IsTruncated to be of type *bool, got %T instead", )
				}
				.IsTruncated = 
			}

		case strings.EqualFold("NextContinuationToken", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.NextContinuationToken = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpListBucketMetricsConfigurations struct {
}

func (*awsRestxml_deserializeOpListBucketMetricsConfigurations) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpListBucketMetricsConfigurations) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorListBucketMetricsConfigurations(, &)
	}
	 := &ListBucketMetricsConfigurationsOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeOpDocumentListBucketMetricsConfigurationsOutput(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **ListBucketMetricsConfigurationsOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *ListBucketMetricsConfigurationsOutput
	if * == nil {
		 = &ListBucketMetricsConfigurationsOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("ContinuationToken", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ContinuationToken = ptr.String()
			}

		case strings.EqualFold("IsTruncated", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				,  := strconv.ParseBool(string())
				if  != nil {
					return fmt.Errorf("expected IsTruncated to be of type *bool, got %T instead", )
				}
				.IsTruncated = 
			}

		case strings.EqualFold("MetricsConfiguration", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentMetricsConfigurationListUnwrapped(&.MetricsConfigurationList, );  != nil {
				return 
			}

		case strings.EqualFold("NextContinuationToken", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.NextContinuationToken = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpListBuckets struct {
}

func (*awsRestxml_deserializeOpListBuckets) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpListBuckets) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorListBuckets(, &)
	}
	 := &ListBucketsOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeOpDocumentListBucketsOutput(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **ListBucketsOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *ListBucketsOutput
	if * == nil {
		 = &ListBucketsOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Buckets", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentBuckets(&.Buckets, );  != nil {
				return 
			}

		case strings.EqualFold("Owner", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentOwner(&.Owner, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpListMultipartUploads struct {
}

func (*awsRestxml_deserializeOpListMultipartUploads) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpListMultipartUploads) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorListMultipartUploads(, &)
	}
	 := &ListMultipartUploadsOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeOpDocumentListMultipartUploadsOutput(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **ListMultipartUploadsOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *ListMultipartUploadsOutput
	if * == nil {
		 = &ListMultipartUploadsOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Bucket", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Bucket = ptr.String()
			}

		case strings.EqualFold("CommonPrefixes", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentCommonPrefixListUnwrapped(&.CommonPrefixes, );  != nil {
				return 
			}

		case strings.EqualFold("Delimiter", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Delimiter = ptr.String()
			}

		case strings.EqualFold("EncodingType", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.EncodingType = types.EncodingType()
			}

		case strings.EqualFold("IsTruncated", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				,  := strconv.ParseBool(string())
				if  != nil {
					return fmt.Errorf("expected IsTruncated to be of type *bool, got %T instead", )
				}
				.IsTruncated = 
			}

		case strings.EqualFold("KeyMarker", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.KeyMarker = ptr.String()
			}

		case strings.EqualFold("MaxUploads", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.MaxUploads = int32()
			}

		case strings.EqualFold("NextKeyMarker", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.NextKeyMarker = ptr.String()
			}

		case strings.EqualFold("NextUploadIdMarker", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.NextUploadIdMarker = ptr.String()
			}

		case strings.EqualFold("Prefix", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Prefix = ptr.String()
			}

		case strings.EqualFold("UploadIdMarker", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.UploadIdMarker = ptr.String()
			}

		case strings.EqualFold("Upload", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentMultipartUploadListUnwrapped(&.Uploads, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpListObjects struct {
}

func (*awsRestxml_deserializeOpListObjects) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpListObjects) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorListObjects(, &)
	}
	 := &ListObjectsOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeOpDocumentListObjectsOutput(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	case strings.EqualFold("NoSuchBucket", ):
		return awsRestxml_deserializeErrorNoSuchBucket(, )

	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **ListObjectsOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *ListObjectsOutput
	if * == nil {
		 = &ListObjectsOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("CommonPrefixes", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentCommonPrefixListUnwrapped(&.CommonPrefixes, );  != nil {
				return 
			}

		case strings.EqualFold("Contents", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentObjectListUnwrapped(&.Contents, );  != nil {
				return 
			}

		case strings.EqualFold("Delimiter", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Delimiter = ptr.String()
			}

		case strings.EqualFold("EncodingType", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.EncodingType = types.EncodingType()
			}

		case strings.EqualFold("IsTruncated", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				,  := strconv.ParseBool(string())
				if  != nil {
					return fmt.Errorf("expected IsTruncated to be of type *bool, got %T instead", )
				}
				.IsTruncated = 
			}

		case strings.EqualFold("Marker", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Marker = ptr.String()
			}

		case strings.EqualFold("MaxKeys", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.MaxKeys = int32()
			}

		case strings.EqualFold("Name", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Name = ptr.String()
			}

		case strings.EqualFold("NextMarker", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.NextMarker = ptr.String()
			}

		case strings.EqualFold("Prefix", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Prefix = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpListObjectsV2 struct {
}

func (*awsRestxml_deserializeOpListObjectsV2) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpListObjectsV2) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorListObjectsV2(, &)
	}
	 := &ListObjectsV2Output{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeOpDocumentListObjectsV2Output(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	case strings.EqualFold("NoSuchBucket", ):
		return awsRestxml_deserializeErrorNoSuchBucket(, )

	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **ListObjectsV2Output,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *ListObjectsV2Output
	if * == nil {
		 = &ListObjectsV2Output{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("CommonPrefixes", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentCommonPrefixListUnwrapped(&.CommonPrefixes, );  != nil {
				return 
			}

		case strings.EqualFold("Contents", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentObjectListUnwrapped(&.Contents, );  != nil {
				return 
			}

		case strings.EqualFold("ContinuationToken", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ContinuationToken = ptr.String()
			}

		case strings.EqualFold("Delimiter", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Delimiter = ptr.String()
			}

		case strings.EqualFold("EncodingType", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.EncodingType = types.EncodingType()
			}

		case strings.EqualFold("IsTruncated", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				,  := strconv.ParseBool(string())
				if  != nil {
					return fmt.Errorf("expected IsTruncated to be of type *bool, got %T instead", )
				}
				.IsTruncated = 
			}

		case strings.EqualFold("KeyCount", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.KeyCount = int32()
			}

		case strings.EqualFold("MaxKeys", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.MaxKeys = int32()
			}

		case strings.EqualFold("Name", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Name = ptr.String()
			}

		case strings.EqualFold("NextContinuationToken", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.NextContinuationToken = ptr.String()
			}

		case strings.EqualFold("Prefix", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Prefix = ptr.String()
			}

		case strings.EqualFold("StartAfter", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.StartAfter = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpListObjectVersions struct {
}

func (*awsRestxml_deserializeOpListObjectVersions) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpListObjectVersions) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorListObjectVersions(, &)
	}
	 := &ListObjectVersionsOutput{}
	.Result = 

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeOpDocumentListObjectVersionsOutput(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( **ListObjectVersionsOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *ListObjectVersionsOutput
	if * == nil {
		 = &ListObjectVersionsOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("CommonPrefixes", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentCommonPrefixListUnwrapped(&.CommonPrefixes, );  != nil {
				return 
			}

		case strings.EqualFold("DeleteMarker", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentDeleteMarkersUnwrapped(&.DeleteMarkers, );  != nil {
				return 
			}

		case strings.EqualFold("Delimiter", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Delimiter = ptr.String()
			}

		case strings.EqualFold("EncodingType", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.EncodingType = types.EncodingType()
			}

		case strings.EqualFold("IsTruncated", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				,  := strconv.ParseBool(string())
				if  != nil {
					return fmt.Errorf("expected IsTruncated to be of type *bool, got %T instead", )
				}
				.IsTruncated = 
			}

		case strings.EqualFold("KeyMarker", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.KeyMarker = ptr.String()
			}

		case strings.EqualFold("MaxKeys", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.MaxKeys = int32()
			}

		case strings.EqualFold("Name", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Name = ptr.String()
			}

		case strings.EqualFold("NextKeyMarker", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.NextKeyMarker = ptr.String()
			}

		case strings.EqualFold("NextVersionIdMarker", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.NextVersionIdMarker = ptr.String()
			}

		case strings.EqualFold("Prefix", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Prefix = ptr.String()
			}

		case strings.EqualFold("VersionIdMarker", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.VersionIdMarker = ptr.String()
			}

		case strings.EqualFold("Version", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentObjectVersionListUnwrapped(&.Versions, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpListParts struct {
}

func (*awsRestxml_deserializeOpListParts) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpListParts) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorListParts(, &)
	}
	 := &ListPartsOutput{}
	.Result = 

	 = awsRestxml_deserializeOpHttpBindingsListPartsOutput(, )
	if  != nil {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", )}
	}

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeOpDocumentListPartsOutput(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( *ListPartsOutput,  *smithyhttp.Response) error {
	if  == nil {
		return fmt.Errorf("unsupported deserialization for nil %T", )
	}

	if  := .Header.Values("x-amz-abort-date"); len() != 0 {
		[0] = strings.TrimSpace([0])
		,  := smithytime.ParseHTTPDate([0])
		if  != nil {
			return 
		}
		.AbortDate = ptr.Time()
	}

	if  := .Header.Values("x-amz-abort-rule-id"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.AbortRuleId = ptr.String([0])
	}

	if  := .Header.Values("x-amz-request-charged"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.RequestCharged = types.RequestCharged([0])
	}

	return nil
}
func ( **ListPartsOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *ListPartsOutput
	if * == nil {
		 = &ListPartsOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Bucket", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Bucket = ptr.String()
			}

		case strings.EqualFold("ChecksumAlgorithm", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ChecksumAlgorithm = types.ChecksumAlgorithm()
			}

		case strings.EqualFold("Initiator", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentInitiator(&.Initiator, );  != nil {
				return 
			}

		case strings.EqualFold("IsTruncated", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				,  := strconv.ParseBool(string())
				if  != nil {
					return fmt.Errorf("expected IsTruncated to be of type *bool, got %T instead", )
				}
				.IsTruncated = 
			}

		case strings.EqualFold("Key", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Key = ptr.String()
			}

		case strings.EqualFold("MaxParts", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.MaxParts = int32()
			}

		case strings.EqualFold("NextPartNumberMarker", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.NextPartNumberMarker = ptr.String()
			}

		case strings.EqualFold("Owner", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentOwner(&.Owner, );  != nil {
				return 
			}

		case strings.EqualFold("PartNumberMarker", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.PartNumberMarker = ptr.String()
			}

		case strings.EqualFold("Part", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentPartsUnwrapped(&.Parts, );  != nil {
				return 
			}

		case strings.EqualFold("StorageClass", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.StorageClass = types.StorageClass()
			}

		case strings.EqualFold("UploadId", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.UploadId = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpPutBucketAccelerateConfiguration struct {
}

func (*awsRestxml_deserializeOpPutBucketAccelerateConfiguration) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpPutBucketAccelerateConfiguration) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorPutBucketAccelerateConfiguration(, &)
	}
	 := &PutBucketAccelerateConfigurationOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpPutBucketAcl struct {
}

func (*awsRestxml_deserializeOpPutBucketAcl) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpPutBucketAcl) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorPutBucketAcl(, &)
	}
	 := &PutBucketAclOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpPutBucketAnalyticsConfiguration struct {
}

func (*awsRestxml_deserializeOpPutBucketAnalyticsConfiguration) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpPutBucketAnalyticsConfiguration) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorPutBucketAnalyticsConfiguration(, &)
	}
	 := &PutBucketAnalyticsConfigurationOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpPutBucketCors struct {
}

func (*awsRestxml_deserializeOpPutBucketCors) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpPutBucketCors) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorPutBucketCors(, &)
	}
	 := &PutBucketCorsOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpPutBucketEncryption struct {
}

func (*awsRestxml_deserializeOpPutBucketEncryption) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpPutBucketEncryption) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorPutBucketEncryption(, &)
	}
	 := &PutBucketEncryptionOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpPutBucketIntelligentTieringConfiguration struct {
}

func (*awsRestxml_deserializeOpPutBucketIntelligentTieringConfiguration) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpPutBucketIntelligentTieringConfiguration) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorPutBucketIntelligentTieringConfiguration(, &)
	}
	 := &PutBucketIntelligentTieringConfigurationOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpPutBucketInventoryConfiguration struct {
}

func (*awsRestxml_deserializeOpPutBucketInventoryConfiguration) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpPutBucketInventoryConfiguration) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorPutBucketInventoryConfiguration(, &)
	}
	 := &PutBucketInventoryConfigurationOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpPutBucketLifecycleConfiguration struct {
}

func (*awsRestxml_deserializeOpPutBucketLifecycleConfiguration) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpPutBucketLifecycleConfiguration) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorPutBucketLifecycleConfiguration(, &)
	}
	 := &PutBucketLifecycleConfigurationOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpPutBucketLogging struct {
}

func (*awsRestxml_deserializeOpPutBucketLogging) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpPutBucketLogging) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorPutBucketLogging(, &)
	}
	 := &PutBucketLoggingOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpPutBucketMetricsConfiguration struct {
}

func (*awsRestxml_deserializeOpPutBucketMetricsConfiguration) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpPutBucketMetricsConfiguration) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorPutBucketMetricsConfiguration(, &)
	}
	 := &PutBucketMetricsConfigurationOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpPutBucketNotificationConfiguration struct {
}

func (*awsRestxml_deserializeOpPutBucketNotificationConfiguration) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpPutBucketNotificationConfiguration) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorPutBucketNotificationConfiguration(, &)
	}
	 := &PutBucketNotificationConfigurationOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpPutBucketOwnershipControls struct {
}

func (*awsRestxml_deserializeOpPutBucketOwnershipControls) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpPutBucketOwnershipControls) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorPutBucketOwnershipControls(, &)
	}
	 := &PutBucketOwnershipControlsOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpPutBucketPolicy struct {
}

func (*awsRestxml_deserializeOpPutBucketPolicy) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpPutBucketPolicy) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorPutBucketPolicy(, &)
	}
	 := &PutBucketPolicyOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpPutBucketReplication struct {
}

func (*awsRestxml_deserializeOpPutBucketReplication) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpPutBucketReplication) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorPutBucketReplication(, &)
	}
	 := &PutBucketReplicationOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpPutBucketRequestPayment struct {
}

func (*awsRestxml_deserializeOpPutBucketRequestPayment) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpPutBucketRequestPayment) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorPutBucketRequestPayment(, &)
	}
	 := &PutBucketRequestPaymentOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpPutBucketTagging struct {
}

func (*awsRestxml_deserializeOpPutBucketTagging) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpPutBucketTagging) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorPutBucketTagging(, &)
	}
	 := &PutBucketTaggingOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpPutBucketVersioning struct {
}

func (*awsRestxml_deserializeOpPutBucketVersioning) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpPutBucketVersioning) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorPutBucketVersioning(, &)
	}
	 := &PutBucketVersioningOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpPutBucketWebsite struct {
}

func (*awsRestxml_deserializeOpPutBucketWebsite) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpPutBucketWebsite) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorPutBucketWebsite(, &)
	}
	 := &PutBucketWebsiteOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpPutObject struct {
}

func (*awsRestxml_deserializeOpPutObject) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpPutObject) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorPutObject(, &)
	}
	 := &PutObjectOutput{}
	.Result = 

	 = awsRestxml_deserializeOpHttpBindingsPutObjectOutput(, )
	if  != nil {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", )}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( *PutObjectOutput,  *smithyhttp.Response) error {
	if  == nil {
		return fmt.Errorf("unsupported deserialization for nil %T", )
	}

	if  := .Header.Values("x-amz-server-side-encryption-bucket-key-enabled"); len() != 0 {
		[0] = strings.TrimSpace([0])
		,  := strconv.ParseBool([0])
		if  != nil {
			return 
		}
		.BucketKeyEnabled = 
	}

	if  := .Header.Values("x-amz-checksum-crc32"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ChecksumCRC32 = ptr.String([0])
	}

	if  := .Header.Values("x-amz-checksum-crc32c"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ChecksumCRC32C = ptr.String([0])
	}

	if  := .Header.Values("x-amz-checksum-sha1"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ChecksumSHA1 = ptr.String([0])
	}

	if  := .Header.Values("x-amz-checksum-sha256"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ChecksumSHA256 = ptr.String([0])
	}

	if  := .Header.Values("ETag"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ETag = ptr.String([0])
	}

	if  := .Header.Values("x-amz-expiration"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.Expiration = ptr.String([0])
	}

	if  := .Header.Values("x-amz-request-charged"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.RequestCharged = types.RequestCharged([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ServerSideEncryption = types.ServerSideEncryption([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption-customer-algorithm"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.SSECustomerAlgorithm = ptr.String([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption-customer-key-MD5"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.SSECustomerKeyMD5 = ptr.String([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption-context"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.SSEKMSEncryptionContext = ptr.String([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption-aws-kms-key-id"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.SSEKMSKeyId = ptr.String([0])
	}

	if  := .Header.Values("x-amz-version-id"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.VersionId = ptr.String([0])
	}

	return nil
}

type awsRestxml_deserializeOpPutObjectAcl struct {
}

func (*awsRestxml_deserializeOpPutObjectAcl) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpPutObjectAcl) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorPutObjectAcl(, &)
	}
	 := &PutObjectAclOutput{}
	.Result = 

	 = awsRestxml_deserializeOpHttpBindingsPutObjectAclOutput(, )
	if  != nil {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", )}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	case strings.EqualFold("NoSuchKey", ):
		return awsRestxml_deserializeErrorNoSuchKey(, )

	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( *PutObjectAclOutput,  *smithyhttp.Response) error {
	if  == nil {
		return fmt.Errorf("unsupported deserialization for nil %T", )
	}

	if  := .Header.Values("x-amz-request-charged"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.RequestCharged = types.RequestCharged([0])
	}

	return nil
}

type awsRestxml_deserializeOpPutObjectLegalHold struct {
}

func (*awsRestxml_deserializeOpPutObjectLegalHold) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpPutObjectLegalHold) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorPutObjectLegalHold(, &)
	}
	 := &PutObjectLegalHoldOutput{}
	.Result = 

	 = awsRestxml_deserializeOpHttpBindingsPutObjectLegalHoldOutput(, )
	if  != nil {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", )}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( *PutObjectLegalHoldOutput,  *smithyhttp.Response) error {
	if  == nil {
		return fmt.Errorf("unsupported deserialization for nil %T", )
	}

	if  := .Header.Values("x-amz-request-charged"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.RequestCharged = types.RequestCharged([0])
	}

	return nil
}

type awsRestxml_deserializeOpPutObjectLockConfiguration struct {
}

func (*awsRestxml_deserializeOpPutObjectLockConfiguration) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpPutObjectLockConfiguration) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorPutObjectLockConfiguration(, &)
	}
	 := &PutObjectLockConfigurationOutput{}
	.Result = 

	 = awsRestxml_deserializeOpHttpBindingsPutObjectLockConfigurationOutput(, )
	if  != nil {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", )}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( *PutObjectLockConfigurationOutput,  *smithyhttp.Response) error {
	if  == nil {
		return fmt.Errorf("unsupported deserialization for nil %T", )
	}

	if  := .Header.Values("x-amz-request-charged"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.RequestCharged = types.RequestCharged([0])
	}

	return nil
}

type awsRestxml_deserializeOpPutObjectRetention struct {
}

func (*awsRestxml_deserializeOpPutObjectRetention) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpPutObjectRetention) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorPutObjectRetention(, &)
	}
	 := &PutObjectRetentionOutput{}
	.Result = 

	 = awsRestxml_deserializeOpHttpBindingsPutObjectRetentionOutput(, )
	if  != nil {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", )}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( *PutObjectRetentionOutput,  *smithyhttp.Response) error {
	if  == nil {
		return fmt.Errorf("unsupported deserialization for nil %T", )
	}

	if  := .Header.Values("x-amz-request-charged"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.RequestCharged = types.RequestCharged([0])
	}

	return nil
}

type awsRestxml_deserializeOpPutObjectTagging struct {
}

func (*awsRestxml_deserializeOpPutObjectTagging) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpPutObjectTagging) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorPutObjectTagging(, &)
	}
	 := &PutObjectTaggingOutput{}
	.Result = 

	 = awsRestxml_deserializeOpHttpBindingsPutObjectTaggingOutput(, )
	if  != nil {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", )}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( *PutObjectTaggingOutput,  *smithyhttp.Response) error {
	if  == nil {
		return fmt.Errorf("unsupported deserialization for nil %T", )
	}

	if  := .Header.Values("x-amz-version-id"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.VersionId = ptr.String([0])
	}

	return nil
}

type awsRestxml_deserializeOpPutPublicAccessBlock struct {
}

func (*awsRestxml_deserializeOpPutPublicAccessBlock) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpPutPublicAccessBlock) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorPutPublicAccessBlock(, &)
	}
	 := &PutPublicAccessBlockOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpRestoreObject struct {
}

func (*awsRestxml_deserializeOpRestoreObject) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpRestoreObject) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorRestoreObject(, &)
	}
	 := &RestoreObjectOutput{}
	.Result = 

	 = awsRestxml_deserializeOpHttpBindingsRestoreObjectOutput(, )
	if  != nil {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", )}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	case strings.EqualFold("ObjectAlreadyInActiveTierError", ):
		return awsRestxml_deserializeErrorObjectAlreadyInActiveTierError(, )

	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( *RestoreObjectOutput,  *smithyhttp.Response) error {
	if  == nil {
		return fmt.Errorf("unsupported deserialization for nil %T", )
	}

	if  := .Header.Values("x-amz-request-charged"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.RequestCharged = types.RequestCharged([0])
	}

	if  := .Header.Values("x-amz-restore-output-path"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.RestoreOutputPath = ptr.String([0])
	}

	return nil
}

type awsRestxml_deserializeOpSelectObjectContent struct {
}

func (*awsRestxml_deserializeOpSelectObjectContent) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpSelectObjectContent) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorSelectObjectContent(, &)
	}
	 := &SelectObjectContentOutput{}
	.Result = 

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

type awsRestxml_deserializeOpUploadPart struct {
}

func (*awsRestxml_deserializeOpUploadPart) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpUploadPart) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorUploadPart(, &)
	}
	 := &UploadPartOutput{}
	.Result = 

	 = awsRestxml_deserializeOpHttpBindingsUploadPartOutput(, )
	if  != nil {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", )}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( *UploadPartOutput,  *smithyhttp.Response) error {
	if  == nil {
		return fmt.Errorf("unsupported deserialization for nil %T", )
	}

	if  := .Header.Values("x-amz-server-side-encryption-bucket-key-enabled"); len() != 0 {
		[0] = strings.TrimSpace([0])
		,  := strconv.ParseBool([0])
		if  != nil {
			return 
		}
		.BucketKeyEnabled = 
	}

	if  := .Header.Values("x-amz-checksum-crc32"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ChecksumCRC32 = ptr.String([0])
	}

	if  := .Header.Values("x-amz-checksum-crc32c"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ChecksumCRC32C = ptr.String([0])
	}

	if  := .Header.Values("x-amz-checksum-sha1"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ChecksumSHA1 = ptr.String([0])
	}

	if  := .Header.Values("x-amz-checksum-sha256"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ChecksumSHA256 = ptr.String([0])
	}

	if  := .Header.Values("ETag"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ETag = ptr.String([0])
	}

	if  := .Header.Values("x-amz-request-charged"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.RequestCharged = types.RequestCharged([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ServerSideEncryption = types.ServerSideEncryption([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption-customer-algorithm"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.SSECustomerAlgorithm = ptr.String([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption-customer-key-MD5"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.SSECustomerKeyMD5 = ptr.String([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption-aws-kms-key-id"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.SSEKMSKeyId = ptr.String([0])
	}

	return nil
}

type awsRestxml_deserializeOpUploadPartCopy struct {
}

func (*awsRestxml_deserializeOpUploadPartCopy) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpUploadPartCopy) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorUploadPartCopy(, &)
	}
	 := &UploadPartCopyOutput{}
	.Result = 

	 = awsRestxml_deserializeOpHttpBindingsUploadPartCopyOutput(, )
	if  != nil {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", )}
	}

	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(.Body, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return , , nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeDocumentCopyPartResult(&.CopyPartResult, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return , , &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( *UploadPartCopyOutput,  *smithyhttp.Response) error {
	if  == nil {
		return fmt.Errorf("unsupported deserialization for nil %T", )
	}

	if  := .Header.Values("x-amz-server-side-encryption-bucket-key-enabled"); len() != 0 {
		[0] = strings.TrimSpace([0])
		,  := strconv.ParseBool([0])
		if  != nil {
			return 
		}
		.BucketKeyEnabled = 
	}

	if  := .Header.Values("x-amz-copy-source-version-id"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.CopySourceVersionId = ptr.String([0])
	}

	if  := .Header.Values("x-amz-request-charged"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.RequestCharged = types.RequestCharged([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.ServerSideEncryption = types.ServerSideEncryption([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption-customer-algorithm"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.SSECustomerAlgorithm = ptr.String([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption-customer-key-MD5"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.SSECustomerKeyMD5 = ptr.String([0])
	}

	if  := .Header.Values("x-amz-server-side-encryption-aws-kms-key-id"); len() != 0 {
		[0] = strings.TrimSpace([0])
		.SSEKMSKeyId = ptr.String([0])
	}

	return nil
}
func ( **UploadPartCopyOutput,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *UploadPartCopyOutput
	if * == nil {
		 = &UploadPartCopyOutput{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("CopyPartResult", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentCopyPartResult(&.CopyPartResult, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

type awsRestxml_deserializeOpWriteGetObjectResponse struct {
}

func (*awsRestxml_deserializeOpWriteGetObjectResponse) () string {
	return "OperationDeserializer"
}

func ( *awsRestxml_deserializeOpWriteGetObjectResponse) ( context.Context,  middleware.DeserializeInput,  middleware.DeserializeHandler) (
	 middleware.DeserializeOutput,  middleware.Metadata,  error,
) {
	, ,  = .HandleDeserialize(, )
	if  != nil {
		return , , 
	}

	,  := .RawResponse.(*smithyhttp.Response)
	if ! {
		return , , &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", .RawResponse)}
	}

	if .StatusCode < 200 || .StatusCode >= 300 {
		return , , awsRestxml_deserializeOpErrorWriteGetObjectResponse(, &)
	}
	 := &WriteGetObjectResponseOutput{}
	.Result = 

	if _,  = io.Copy(ioutil.Discard, .Body);  != nil {
		return , , &smithy.DeserializationError{
			Err: fmt.Errorf("failed to discard response body, %w", ),
		}
	}

	return , , 
}

func ( *smithyhttp.Response,  *middleware.Metadata) error {
	var  bytes.Buffer
	if ,  := io.Copy(&, .Body);  != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", )}
	}
	 := bytes.NewReader(.Bytes())

	 := "UnknownError"
	 := 

	,  := s3shared.GetErrorResponseComponents(, s3shared.ErrorResponseDeserializerOptions{
		UseStatusCode: true, StatusCode: .StatusCode,
	})
	if  != nil {
		return 
	}
	if  := .HostID; len() != 0 {
		s3shared.SetHostIDMetadata(, )
	}
	if  := .RequestID; len() != 0 {
		awsmiddleware.SetRequestIDMetadata(, )
	}
	if len(.Code) != 0 {
		 = .Code
	}
	if len(.Message) != 0 {
		 = .Message
	}
	.Seek(0, io.SeekStart)
	switch {
	default:
		 := &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}
		return 

	}
}

func ( *types.SelectObjectContentEventStream,  *eventstream.Message) error {
	if  == nil {
		return fmt.Errorf("unexpected serialization of nil %T", )
	}

	 := .Headers.Get(eventstreamapi.EventTypeHeader)
	if  == nil {
		return fmt.Errorf("%s event header not present", eventstreamapi.EventTypeHeader)
	}

	switch {
	case strings.EqualFold("Cont", .String()):
		 := &types.SelectObjectContentEventStreamMemberCont{}
		if  := awsRestxml_deserializeEventMessageContinuationEvent(&.Value, );  != nil {
			return 
		}
		* = 
		return nil

	case strings.EqualFold("End", .String()):
		 := &types.SelectObjectContentEventStreamMemberEnd{}
		if  := awsRestxml_deserializeEventMessageEndEvent(&.Value, );  != nil {
			return 
		}
		* = 
		return nil

	case strings.EqualFold("Progress", .String()):
		 := &types.SelectObjectContentEventStreamMemberProgress{}
		if  := awsRestxml_deserializeEventMessageProgressEvent(&.Value, );  != nil {
			return 
		}
		* = 
		return nil

	case strings.EqualFold("Records", .String()):
		 := &types.SelectObjectContentEventStreamMemberRecords{}
		if  := awsRestxml_deserializeEventMessageRecordsEvent(&.Value, );  != nil {
			return 
		}
		* = 
		return nil

	case strings.EqualFold("Stats", .String()):
		 := &types.SelectObjectContentEventStreamMemberStats{}
		if  := awsRestxml_deserializeEventMessageStatsEvent(&.Value, );  != nil {
			return 
		}
		* = 
		return nil

	default:
		 := bytes.NewBuffer(nil)
		eventstream.NewEncoder().Encode(, *)
		* = &types.UnknownUnionMember{
			Tag:   .String(),
			Value: .Bytes(),
		}
		return nil

	}
}

func ( *eventstream.Message) error {
	 := .Headers.Get(eventstreamapi.ExceptionTypeHeader)
	if  == nil {
		return fmt.Errorf("%s event header not present", eventstreamapi.ExceptionTypeHeader)
	}

	switch {
	default:
		 := bytes.NewReader(.Payload)
		var  [1024]byte
		 := smithyio.NewRingBuffer([:])

		 := io.TeeReader(, )
		 := json.NewDecoder()
		.UseNumber()
		,  := awsxml.GetErrorResponseComponents(, true)
		if  != nil {
			return 
		}
		 := "UnknownError"
		 := 
		if  := .String(); len() > 0 {
			 = 
		} else if  := .Code; len() > 0 {
			 = 
		}
		if  := .Message; len() > 0 {
			 = 
		}
		return &smithy.GenericAPIError{
			Code:    ,
			Message: ,
		}

	}
}

func ( *types.RecordsEvent,  *eventstream.Message) error {
	if  == nil {
		return fmt.Errorf("unexpected serialization of nil %T", )
	}

	if .Payload != nil {
		 := make([]byte, len(.Payload))
		copy(, .Payload)

		.Payload = 
	}
	return nil
}

func ( *types.StatsEvent,  *eventstream.Message) error {
	if  == nil {
		return fmt.Errorf("unexpected serialization of nil %T", )
	}

	 := bytes.NewReader(.Payload)
	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeDocumentStats(&.Details, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return nil
}

func ( *types.ProgressEvent,  *eventstream.Message) error {
	if  == nil {
		return fmt.Errorf("unexpected serialization of nil %T", )
	}

	 := bytes.NewReader(.Payload)
	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeDocumentProgress(&.Details, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return nil
}

func ( *types.ContinuationEvent,  *eventstream.Message) error {
	if  == nil {
		return fmt.Errorf("unexpected serialization of nil %T", )
	}

	 := bytes.NewReader(.Payload)
	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeDocumentContinuationEvent(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return nil
}

func ( *types.EndEvent,  *eventstream.Message) error {
	if  == nil {
		return fmt.Errorf("unexpected serialization of nil %T", )
	}

	 := bytes.NewReader(.Payload)
	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return nil
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeDocumentEndEvent(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return nil
}

func ( **types.ContinuationEvent,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.ContinuationEvent
	if * == nil {
		 = &types.ContinuationEvent{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.EndEvent,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.EndEvent
	if * == nil {
		 = &types.EndEvent{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.Progress,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.Progress
	if * == nil {
		 = &types.Progress{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("BytesProcessed", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.BytesProcessed = 
			}

		case strings.EqualFold("BytesReturned", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.BytesReturned = 
			}

		case strings.EqualFold("BytesScanned", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.BytesScanned = 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.Stats,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.Stats
	if * == nil {
		 = &types.Stats{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("BytesProcessed", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.BytesProcessed = 
			}

		case strings.EqualFold("BytesReturned", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.BytesReturned = 
			}

		case strings.EqualFold("BytesScanned", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.BytesScanned = 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *smithyhttp.Response,  *bytes.Reader) error {
	 := &types.BucketAlreadyExists{}
	return 
}

func ( *smithyhttp.Response,  *bytes.Reader) error {
	 := &types.BucketAlreadyOwnedByYou{}
	return 
}

func ( *smithyhttp.Response,  *bytes.Reader) error {
	 := &types.InvalidObjectState{}
	var  [1024]byte
	 := smithyio.NewRingBuffer([:])
	 := io.TeeReader(, )
	 := xml.NewDecoder()
	,  := smithyxml.FetchRootElement()
	if  == io.EOF {
		return 
	}
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	 := smithyxml.WrapNodeDecoder(, )
	 = awsRestxml_deserializeDocumentInvalidObjectState(&, )
	if  != nil {
		var  bytes.Buffer
		io.Copy(&, )
		return &smithy.DeserializationError{
			Err:      fmt.Errorf("failed to decode response body, %w", ),
			Snapshot: .Bytes(),
		}
	}

	return 
}

func ( *smithyhttp.Response,  *bytes.Reader) error {
	 := &types.NoSuchBucket{}
	return 
}

func ( *smithyhttp.Response,  *bytes.Reader) error {
	 := &types.NoSuchKey{}
	return 
}

func ( *smithyhttp.Response,  *bytes.Reader) error {
	 := &types.NoSuchUpload{}
	return 
}

func ( *smithyhttp.Response,  *bytes.Reader) error {
	 := &types.NotFound{}
	return 
}

func ( *smithyhttp.Response,  *bytes.Reader) error {
	 := &types.ObjectAlreadyInActiveTierError{}
	return 
}

func ( *smithyhttp.Response,  *bytes.Reader) error {
	 := &types.ObjectNotInActiveTierError{}
	return 
}

func ( **types.AbortIncompleteMultipartUpload,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.AbortIncompleteMultipartUpload
	if * == nil {
		 = &types.AbortIncompleteMultipartUpload{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("DaysAfterInitiation", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.DaysAfterInitiation = int32()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.AccessControlTranslation,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.AccessControlTranslation
	if * == nil {
		 = &types.AccessControlTranslation{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Owner", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Owner = types.OwnerOverride()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]string,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []string
	if * == nil {
		 = make([]string, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 = 
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  string
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				 = 
			}
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]string,  smithyxml.NodeDecoder) error {
	var  []string
	if * == nil {
		 = make([]string, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  string
		 := .StartEl
		_ = 
		,  := .Value()
		if  != nil {
			return 
		}
		if  == nil {
			break
		}
		{
			 := string()
			 = 
		}
		 = append(, )
	}
	* = 
	return nil
}
func ( *[]string,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []string
	if * == nil {
		 = make([]string, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 = 
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  string
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				 = 
			}
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]string,  smithyxml.NodeDecoder) error {
	var  []string
	if * == nil {
		 = make([]string, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  string
		 := .StartEl
		_ = 
		,  := .Value()
		if  != nil {
			return 
		}
		if  == nil {
			break
		}
		{
			 := string()
			 = 
		}
		 = append(, )
	}
	* = 
	return nil
}
func ( *[]string,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []string
	if * == nil {
		 = make([]string, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 = 
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  string
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				 = 
			}
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]string,  smithyxml.NodeDecoder) error {
	var  []string
	if * == nil {
		 = make([]string, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  string
		 := .StartEl
		_ = 
		,  := .Value()
		if  != nil {
			return 
		}
		if  == nil {
			break
		}
		{
			 := string()
			 = 
		}
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.AnalyticsAndOperator,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.AnalyticsAndOperator
	if * == nil {
		 = &types.AnalyticsAndOperator{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Prefix", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Prefix = ptr.String()
			}

		case strings.EqualFold("Tag", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentTagSetUnwrapped(&.Tags, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.AnalyticsConfiguration,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.AnalyticsConfiguration
	if * == nil {
		 = &types.AnalyticsConfiguration{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Filter", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentAnalyticsFilter(&.Filter, );  != nil {
				return 
			}

		case strings.EqualFold("Id", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Id = ptr.String()
			}

		case strings.EqualFold("StorageClassAnalysis", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentStorageClassAnalysis(&.StorageClassAnalysis, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.AnalyticsConfiguration,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.AnalyticsConfiguration
	if * == nil {
		 = make([]types.AnalyticsConfiguration, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  types.AnalyticsConfiguration
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentAnalyticsConfiguration(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.AnalyticsConfiguration,  smithyxml.NodeDecoder) error {
	var  []types.AnalyticsConfiguration
	if * == nil {
		 = make([]types.AnalyticsConfiguration, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.AnalyticsConfiguration
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentAnalyticsConfiguration(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.AnalyticsExportDestination,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.AnalyticsExportDestination
	if * == nil {
		 = &types.AnalyticsExportDestination{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("S3BucketDestination", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentAnalyticsS3BucketDestination(&.S3BucketDestination, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *types.AnalyticsFilter,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  types.AnalyticsFilter
	var  bool
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		if  {
			if  = .Decoder.Skip();  != nil {
				return 
			}
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("And", .Name.Local):
			var  types.AnalyticsAndOperator
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentAnalyticsAndOperator(&, );  != nil {
				return 
			}
			 = *
			 = &types.AnalyticsFilterMemberAnd{Value: }
			 = true

		case strings.EqualFold("Prefix", .Name.Local):
			var  string
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				 = 
			}
			 = &types.AnalyticsFilterMemberPrefix{Value: }
			 = true

		case strings.EqualFold("Tag", .Name.Local):
			var  types.Tag
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentTag(&, );  != nil {
				return 
			}
			 = *
			 = &types.AnalyticsFilterMemberTag{Value: }
			 = true

		default:
			 = &types.UnknownUnionMember{Tag: .Name.Local}
			 = true

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.AnalyticsS3BucketDestination,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.AnalyticsS3BucketDestination
	if * == nil {
		 = &types.AnalyticsS3BucketDestination{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Bucket", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Bucket = ptr.String()
			}

		case strings.EqualFold("BucketAccountId", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.BucketAccountId = ptr.String()
			}

		case strings.EqualFold("Format", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Format = types.AnalyticsS3ExportFileFormat()
			}

		case strings.EqualFold("Prefix", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Prefix = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.Bucket,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.Bucket
	if * == nil {
		 = &types.Bucket{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("CreationDate", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := smithytime.ParseDateTime()
				if  != nil {
					return 
				}
				.CreationDate = ptr.Time()
			}

		case strings.EqualFold("Name", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Name = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.BucketAlreadyExists,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.BucketAlreadyExists
	if * == nil {
		 = &types.BucketAlreadyExists{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.BucketAlreadyOwnedByYou,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.BucketAlreadyOwnedByYou
	if * == nil {
		 = &types.BucketAlreadyOwnedByYou{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.Bucket,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.Bucket
	if * == nil {
		 = make([]types.Bucket, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("Bucket", .Name.Local):
			var  types.Bucket
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentBucket(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.Bucket,  smithyxml.NodeDecoder) error {
	var  []types.Bucket
	if * == nil {
		 = make([]types.Bucket, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.Bucket
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentBucket(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.Checksum,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.Checksum
	if * == nil {
		 = &types.Checksum{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("ChecksumCRC32", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ChecksumCRC32 = ptr.String()
			}

		case strings.EqualFold("ChecksumCRC32C", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ChecksumCRC32C = ptr.String()
			}

		case strings.EqualFold("ChecksumSHA1", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ChecksumSHA1 = ptr.String()
			}

		case strings.EqualFold("ChecksumSHA256", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ChecksumSHA256 = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.ChecksumAlgorithm,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.ChecksumAlgorithm
	if * == nil {
		 = make([]types.ChecksumAlgorithm, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 = 
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  types.ChecksumAlgorithm
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				 = types.ChecksumAlgorithm()
			}
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.ChecksumAlgorithm,  smithyxml.NodeDecoder) error {
	var  []types.ChecksumAlgorithm
	if * == nil {
		 = make([]types.ChecksumAlgorithm, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.ChecksumAlgorithm
		 := .StartEl
		_ = 
		,  := .Value()
		if  != nil {
			return 
		}
		if  == nil {
			break
		}
		{
			 := string()
			 = types.ChecksumAlgorithm()
		}
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.CommonPrefix,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.CommonPrefix
	if * == nil {
		 = &types.CommonPrefix{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Prefix", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Prefix = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.CommonPrefix,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.CommonPrefix
	if * == nil {
		 = make([]types.CommonPrefix, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  types.CommonPrefix
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentCommonPrefix(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.CommonPrefix,  smithyxml.NodeDecoder) error {
	var  []types.CommonPrefix
	if * == nil {
		 = make([]types.CommonPrefix, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.CommonPrefix
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentCommonPrefix(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.Condition,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.Condition
	if * == nil {
		 = &types.Condition{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("HttpErrorCodeReturnedEquals", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.HttpErrorCodeReturnedEquals = ptr.String()
			}

		case strings.EqualFold("KeyPrefixEquals", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.KeyPrefixEquals = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.CopyObjectResult,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.CopyObjectResult
	if * == nil {
		 = &types.CopyObjectResult{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("ChecksumCRC32", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ChecksumCRC32 = ptr.String()
			}

		case strings.EqualFold("ChecksumCRC32C", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ChecksumCRC32C = ptr.String()
			}

		case strings.EqualFold("ChecksumSHA1", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ChecksumSHA1 = ptr.String()
			}

		case strings.EqualFold("ChecksumSHA256", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ChecksumSHA256 = ptr.String()
			}

		case strings.EqualFold("ETag", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ETag = ptr.String()
			}

		case strings.EqualFold("LastModified", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := smithytime.ParseDateTime()
				if  != nil {
					return 
				}
				.LastModified = ptr.Time()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.CopyPartResult,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.CopyPartResult
	if * == nil {
		 = &types.CopyPartResult{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("ChecksumCRC32", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ChecksumCRC32 = ptr.String()
			}

		case strings.EqualFold("ChecksumCRC32C", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ChecksumCRC32C = ptr.String()
			}

		case strings.EqualFold("ChecksumSHA1", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ChecksumSHA1 = ptr.String()
			}

		case strings.EqualFold("ChecksumSHA256", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ChecksumSHA256 = ptr.String()
			}

		case strings.EqualFold("ETag", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ETag = ptr.String()
			}

		case strings.EqualFold("LastModified", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := smithytime.ParseDateTime()
				if  != nil {
					return 
				}
				.LastModified = ptr.Time()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.CORSRule,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.CORSRule
	if * == nil {
		 = &types.CORSRule{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("AllowedHeader", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentAllowedHeadersUnwrapped(&.AllowedHeaders, );  != nil {
				return 
			}

		case strings.EqualFold("AllowedMethod", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentAllowedMethodsUnwrapped(&.AllowedMethods, );  != nil {
				return 
			}

		case strings.EqualFold("AllowedOrigin", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentAllowedOriginsUnwrapped(&.AllowedOrigins, );  != nil {
				return 
			}

		case strings.EqualFold("ExposeHeader", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentExposeHeadersUnwrapped(&.ExposeHeaders, );  != nil {
				return 
			}

		case strings.EqualFold("ID", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ID = ptr.String()
			}

		case strings.EqualFold("MaxAgeSeconds", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.MaxAgeSeconds = int32()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.CORSRule,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.CORSRule
	if * == nil {
		 = make([]types.CORSRule, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  types.CORSRule
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentCORSRule(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.CORSRule,  smithyxml.NodeDecoder) error {
	var  []types.CORSRule
	if * == nil {
		 = make([]types.CORSRule, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.CORSRule
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentCORSRule(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.DefaultRetention,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.DefaultRetention
	if * == nil {
		 = &types.DefaultRetention{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Days", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.Days = int32()
			}

		case strings.EqualFold("Mode", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Mode = types.ObjectLockRetentionMode()
			}

		case strings.EqualFold("Years", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.Years = int32()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.DeletedObject,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.DeletedObject
	if * == nil {
		 = &types.DeletedObject{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("DeleteMarker", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				,  := strconv.ParseBool(string())
				if  != nil {
					return fmt.Errorf("expected DeleteMarker to be of type *bool, got %T instead", )
				}
				.DeleteMarker = 
			}

		case strings.EqualFold("DeleteMarkerVersionId", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.DeleteMarkerVersionId = ptr.String()
			}

		case strings.EqualFold("Key", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Key = ptr.String()
			}

		case strings.EqualFold("VersionId", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.VersionId = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.DeletedObject,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.DeletedObject
	if * == nil {
		 = make([]types.DeletedObject, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  types.DeletedObject
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentDeletedObject(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.DeletedObject,  smithyxml.NodeDecoder) error {
	var  []types.DeletedObject
	if * == nil {
		 = make([]types.DeletedObject, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.DeletedObject
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentDeletedObject(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.DeleteMarkerEntry,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.DeleteMarkerEntry
	if * == nil {
		 = &types.DeleteMarkerEntry{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("IsLatest", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				,  := strconv.ParseBool(string())
				if  != nil {
					return fmt.Errorf("expected IsLatest to be of type *bool, got %T instead", )
				}
				.IsLatest = 
			}

		case strings.EqualFold("Key", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Key = ptr.String()
			}

		case strings.EqualFold("LastModified", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := smithytime.ParseDateTime()
				if  != nil {
					return 
				}
				.LastModified = ptr.Time()
			}

		case strings.EqualFold("Owner", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentOwner(&.Owner, );  != nil {
				return 
			}

		case strings.EqualFold("VersionId", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.VersionId = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.DeleteMarkerReplication,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.DeleteMarkerReplication
	if * == nil {
		 = &types.DeleteMarkerReplication{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Status", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Status = types.DeleteMarkerReplicationStatus()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.DeleteMarkerEntry,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.DeleteMarkerEntry
	if * == nil {
		 = make([]types.DeleteMarkerEntry, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  types.DeleteMarkerEntry
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentDeleteMarkerEntry(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.DeleteMarkerEntry,  smithyxml.NodeDecoder) error {
	var  []types.DeleteMarkerEntry
	if * == nil {
		 = make([]types.DeleteMarkerEntry, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.DeleteMarkerEntry
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentDeleteMarkerEntry(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.Destination,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.Destination
	if * == nil {
		 = &types.Destination{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("AccessControlTranslation", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentAccessControlTranslation(&.AccessControlTranslation, );  != nil {
				return 
			}

		case strings.EqualFold("Account", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Account = ptr.String()
			}

		case strings.EqualFold("Bucket", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Bucket = ptr.String()
			}

		case strings.EqualFold("EncryptionConfiguration", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentEncryptionConfiguration(&.EncryptionConfiguration, );  != nil {
				return 
			}

		case strings.EqualFold("Metrics", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentMetrics(&.Metrics, );  != nil {
				return 
			}

		case strings.EqualFold("ReplicationTime", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentReplicationTime(&.ReplicationTime, );  != nil {
				return 
			}

		case strings.EqualFold("StorageClass", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.StorageClass = types.StorageClass()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.EncryptionConfiguration,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.EncryptionConfiguration
	if * == nil {
		 = &types.EncryptionConfiguration{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("ReplicaKmsKeyID", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ReplicaKmsKeyID = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.Error,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.Error
	if * == nil {
		 = &types.Error{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Code", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Code = ptr.String()
			}

		case strings.EqualFold("Key", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Key = ptr.String()
			}

		case strings.EqualFold("Message", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Message = ptr.String()
			}

		case strings.EqualFold("VersionId", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.VersionId = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.ErrorDocument,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.ErrorDocument
	if * == nil {
		 = &types.ErrorDocument{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Key", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Key = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.Error,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.Error
	if * == nil {
		 = make([]types.Error, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  types.Error
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentError(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.Error,  smithyxml.NodeDecoder) error {
	var  []types.Error
	if * == nil {
		 = make([]types.Error, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.Error
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentError(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.EventBridgeConfiguration,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.EventBridgeConfiguration
	if * == nil {
		 = &types.EventBridgeConfiguration{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.Event,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.Event
	if * == nil {
		 = make([]types.Event, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 = 
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  types.Event
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				 = types.Event()
			}
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.Event,  smithyxml.NodeDecoder) error {
	var  []types.Event
	if * == nil {
		 = make([]types.Event, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.Event
		 := .StartEl
		_ = 
		,  := .Value()
		if  != nil {
			return 
		}
		if  == nil {
			break
		}
		{
			 := string()
			 = types.Event()
		}
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.ExistingObjectReplication,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.ExistingObjectReplication
	if * == nil {
		 = &types.ExistingObjectReplication{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Status", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Status = types.ExistingObjectReplicationStatus()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]string,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []string
	if * == nil {
		 = make([]string, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 = 
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  string
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				 = 
			}
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]string,  smithyxml.NodeDecoder) error {
	var  []string
	if * == nil {
		 = make([]string, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  string
		 := .StartEl
		_ = 
		,  := .Value()
		if  != nil {
			return 
		}
		if  == nil {
			break
		}
		{
			 := string()
			 = 
		}
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.FilterRule,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.FilterRule
	if * == nil {
		 = &types.FilterRule{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Name", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Name = types.FilterRuleName()
			}

		case strings.EqualFold("Value", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Value = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.FilterRule,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.FilterRule
	if * == nil {
		 = make([]types.FilterRule, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  types.FilterRule
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentFilterRule(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.FilterRule,  smithyxml.NodeDecoder) error {
	var  []types.FilterRule
	if * == nil {
		 = make([]types.FilterRule, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.FilterRule
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentFilterRule(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.GetObjectAttributesParts,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.GetObjectAttributesParts
	if * == nil {
		 = &types.GetObjectAttributesParts{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("IsTruncated", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				,  := strconv.ParseBool(string())
				if  != nil {
					return fmt.Errorf("expected IsTruncated to be of type *bool, got %T instead", )
				}
				.IsTruncated = 
			}

		case strings.EqualFold("MaxParts", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.MaxParts = int32()
			}

		case strings.EqualFold("NextPartNumberMarker", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.NextPartNumberMarker = ptr.String()
			}

		case strings.EqualFold("PartNumberMarker", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.PartNumberMarker = ptr.String()
			}

		case strings.EqualFold("Part", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentPartsListUnwrapped(&.Parts, );  != nil {
				return 
			}

		case strings.EqualFold("PartsCount", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.TotalPartsCount = int32()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.Grant,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.Grant
	if * == nil {
		 = &types.Grant{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Grantee", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentGrantee(&.Grantee, );  != nil {
				return 
			}

		case strings.EqualFold("Permission", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Permission = types.Permission()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.Grantee,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.Grantee
	if * == nil {
		 = &types.Grantee{}
	} else {
		 = *
	}

	for ,  := range .StartEl.Attr {
		 := .Name.Local
		if len(.Name.Space) != 0 {
			 = .Name.Space + `:` + .Name.Local
		}
		switch {
		case strings.EqualFold("xsi:type", ):
			 := []byte(.Value)
			{
				 := string()
				.Type = types.Type()
			}

		}
	}
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("DisplayName", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.DisplayName = ptr.String()
			}

		case strings.EqualFold("EmailAddress", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.EmailAddress = ptr.String()
			}

		case strings.EqualFold("ID", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ID = ptr.String()
			}

		case strings.EqualFold("URI", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.URI = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.Grant,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.Grant
	if * == nil {
		 = make([]types.Grant, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("Grant", .Name.Local):
			var  types.Grant
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentGrant(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.Grant,  smithyxml.NodeDecoder) error {
	var  []types.Grant
	if * == nil {
		 = make([]types.Grant, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.Grant
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentGrant(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.IndexDocument,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.IndexDocument
	if * == nil {
		 = &types.IndexDocument{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Suffix", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Suffix = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.Initiator,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.Initiator
	if * == nil {
		 = &types.Initiator{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("DisplayName", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.DisplayName = ptr.String()
			}

		case strings.EqualFold("ID", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ID = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.IntelligentTieringAndOperator,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.IntelligentTieringAndOperator
	if * == nil {
		 = &types.IntelligentTieringAndOperator{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Prefix", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Prefix = ptr.String()
			}

		case strings.EqualFold("Tag", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentTagSetUnwrapped(&.Tags, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.IntelligentTieringConfiguration,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.IntelligentTieringConfiguration
	if * == nil {
		 = &types.IntelligentTieringConfiguration{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Filter", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentIntelligentTieringFilter(&.Filter, );  != nil {
				return 
			}

		case strings.EqualFold("Id", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Id = ptr.String()
			}

		case strings.EqualFold("Status", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Status = types.IntelligentTieringStatus()
			}

		case strings.EqualFold("Tiering", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentTieringListUnwrapped(&.Tierings, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.IntelligentTieringConfiguration,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.IntelligentTieringConfiguration
	if * == nil {
		 = make([]types.IntelligentTieringConfiguration, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  types.IntelligentTieringConfiguration
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentIntelligentTieringConfiguration(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.IntelligentTieringConfiguration,  smithyxml.NodeDecoder) error {
	var  []types.IntelligentTieringConfiguration
	if * == nil {
		 = make([]types.IntelligentTieringConfiguration, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.IntelligentTieringConfiguration
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentIntelligentTieringConfiguration(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.IntelligentTieringFilter,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.IntelligentTieringFilter
	if * == nil {
		 = &types.IntelligentTieringFilter{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("And", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentIntelligentTieringAndOperator(&.And, );  != nil {
				return 
			}

		case strings.EqualFold("Prefix", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Prefix = ptr.String()
			}

		case strings.EqualFold("Tag", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentTag(&.Tag, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.InvalidObjectState,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.InvalidObjectState
	if * == nil {
		 = &types.InvalidObjectState{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("AccessTier", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.AccessTier = types.IntelligentTieringAccessTier()
			}

		case strings.EqualFold("StorageClass", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.StorageClass = types.StorageClass()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.InventoryConfiguration,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.InventoryConfiguration
	if * == nil {
		 = &types.InventoryConfiguration{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Destination", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentInventoryDestination(&.Destination, );  != nil {
				return 
			}

		case strings.EqualFold("Filter", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentInventoryFilter(&.Filter, );  != nil {
				return 
			}

		case strings.EqualFold("Id", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Id = ptr.String()
			}

		case strings.EqualFold("IncludedObjectVersions", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.IncludedObjectVersions = types.InventoryIncludedObjectVersions()
			}

		case strings.EqualFold("IsEnabled", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				,  := strconv.ParseBool(string())
				if  != nil {
					return fmt.Errorf("expected IsEnabled to be of type *bool, got %T instead", )
				}
				.IsEnabled = 
			}

		case strings.EqualFold("OptionalFields", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentInventoryOptionalFields(&.OptionalFields, );  != nil {
				return 
			}

		case strings.EqualFold("Schedule", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentInventorySchedule(&.Schedule, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.InventoryConfiguration,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.InventoryConfiguration
	if * == nil {
		 = make([]types.InventoryConfiguration, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  types.InventoryConfiguration
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentInventoryConfiguration(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.InventoryConfiguration,  smithyxml.NodeDecoder) error {
	var  []types.InventoryConfiguration
	if * == nil {
		 = make([]types.InventoryConfiguration, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.InventoryConfiguration
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentInventoryConfiguration(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.InventoryDestination,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.InventoryDestination
	if * == nil {
		 = &types.InventoryDestination{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("S3BucketDestination", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentInventoryS3BucketDestination(&.S3BucketDestination, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.InventoryEncryption,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.InventoryEncryption
	if * == nil {
		 = &types.InventoryEncryption{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("SSE-KMS", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentSSEKMS(&.SSEKMS, );  != nil {
				return 
			}

		case strings.EqualFold("SSE-S3", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentSSES3(&.SSES3, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.InventoryFilter,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.InventoryFilter
	if * == nil {
		 = &types.InventoryFilter{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Prefix", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Prefix = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.InventoryOptionalField,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.InventoryOptionalField
	if * == nil {
		 = make([]types.InventoryOptionalField, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 = 
		switch {
		case strings.EqualFold("Field", .Name.Local):
			var  types.InventoryOptionalField
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				 = types.InventoryOptionalField()
			}
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.InventoryOptionalField,  smithyxml.NodeDecoder) error {
	var  []types.InventoryOptionalField
	if * == nil {
		 = make([]types.InventoryOptionalField, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.InventoryOptionalField
		 := .StartEl
		_ = 
		,  := .Value()
		if  != nil {
			return 
		}
		if  == nil {
			break
		}
		{
			 := string()
			 = types.InventoryOptionalField()
		}
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.InventoryS3BucketDestination,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.InventoryS3BucketDestination
	if * == nil {
		 = &types.InventoryS3BucketDestination{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("AccountId", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.AccountId = ptr.String()
			}

		case strings.EqualFold("Bucket", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Bucket = ptr.String()
			}

		case strings.EqualFold("Encryption", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentInventoryEncryption(&.Encryption, );  != nil {
				return 
			}

		case strings.EqualFold("Format", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Format = types.InventoryFormat()
			}

		case strings.EqualFold("Prefix", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Prefix = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.InventorySchedule,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.InventorySchedule
	if * == nil {
		 = &types.InventorySchedule{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Frequency", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Frequency = types.InventoryFrequency()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.LambdaFunctionConfiguration,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.LambdaFunctionConfiguration
	if * == nil {
		 = &types.LambdaFunctionConfiguration{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Event", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentEventListUnwrapped(&.Events, );  != nil {
				return 
			}

		case strings.EqualFold("Filter", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentNotificationConfigurationFilter(&.Filter, );  != nil {
				return 
			}

		case strings.EqualFold("Id", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Id = ptr.String()
			}

		case strings.EqualFold("CloudFunction", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.LambdaFunctionArn = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.LambdaFunctionConfiguration,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.LambdaFunctionConfiguration
	if * == nil {
		 = make([]types.LambdaFunctionConfiguration, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  types.LambdaFunctionConfiguration
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentLambdaFunctionConfiguration(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.LambdaFunctionConfiguration,  smithyxml.NodeDecoder) error {
	var  []types.LambdaFunctionConfiguration
	if * == nil {
		 = make([]types.LambdaFunctionConfiguration, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.LambdaFunctionConfiguration
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentLambdaFunctionConfiguration(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.LifecycleExpiration,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.LifecycleExpiration
	if * == nil {
		 = &types.LifecycleExpiration{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Date", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := smithytime.ParseDateTime()
				if  != nil {
					return 
				}
				.Date = ptr.Time()
			}

		case strings.EqualFold("Days", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.Days = int32()
			}

		case strings.EqualFold("ExpiredObjectDeleteMarker", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				,  := strconv.ParseBool(string())
				if  != nil {
					return fmt.Errorf("expected ExpiredObjectDeleteMarker to be of type *bool, got %T instead", )
				}
				.ExpiredObjectDeleteMarker = 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.LifecycleRule,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.LifecycleRule
	if * == nil {
		 = &types.LifecycleRule{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("AbortIncompleteMultipartUpload", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentAbortIncompleteMultipartUpload(&.AbortIncompleteMultipartUpload, );  != nil {
				return 
			}

		case strings.EqualFold("Expiration", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentLifecycleExpiration(&.Expiration, );  != nil {
				return 
			}

		case strings.EqualFold("Filter", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentLifecycleRuleFilter(&.Filter, );  != nil {
				return 
			}

		case strings.EqualFold("ID", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ID = ptr.String()
			}

		case strings.EqualFold("NoncurrentVersionExpiration", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentNoncurrentVersionExpiration(&.NoncurrentVersionExpiration, );  != nil {
				return 
			}

		case strings.EqualFold("NoncurrentVersionTransition", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentNoncurrentVersionTransitionListUnwrapped(&.NoncurrentVersionTransitions, );  != nil {
				return 
			}

		case strings.EqualFold("Prefix", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Prefix = ptr.String()
			}

		case strings.EqualFold("Status", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Status = types.ExpirationStatus()
			}

		case strings.EqualFold("Transition", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentTransitionListUnwrapped(&.Transitions, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.LifecycleRuleAndOperator,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.LifecycleRuleAndOperator
	if * == nil {
		 = &types.LifecycleRuleAndOperator{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("ObjectSizeGreaterThan", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.ObjectSizeGreaterThan = 
			}

		case strings.EqualFold("ObjectSizeLessThan", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.ObjectSizeLessThan = 
			}

		case strings.EqualFold("Prefix", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Prefix = ptr.String()
			}

		case strings.EqualFold("Tag", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentTagSetUnwrapped(&.Tags, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *types.LifecycleRuleFilter,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  types.LifecycleRuleFilter
	var  bool
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		if  {
			if  = .Decoder.Skip();  != nil {
				return 
			}
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("And", .Name.Local):
			var  types.LifecycleRuleAndOperator
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentLifecycleRuleAndOperator(&, );  != nil {
				return 
			}
			 = *
			 = &types.LifecycleRuleFilterMemberAnd{Value: }
			 = true

		case strings.EqualFold("ObjectSizeGreaterThan", .Name.Local):
			var  int64
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				 = 
			}
			 = &types.LifecycleRuleFilterMemberObjectSizeGreaterThan{Value: }
			 = true

		case strings.EqualFold("ObjectSizeLessThan", .Name.Local):
			var  int64
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				 = 
			}
			 = &types.LifecycleRuleFilterMemberObjectSizeLessThan{Value: }
			 = true

		case strings.EqualFold("Prefix", .Name.Local):
			var  string
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				 = 
			}
			 = &types.LifecycleRuleFilterMemberPrefix{Value: }
			 = true

		case strings.EqualFold("Tag", .Name.Local):
			var  types.Tag
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentTag(&, );  != nil {
				return 
			}
			 = *
			 = &types.LifecycleRuleFilterMemberTag{Value: }
			 = true

		default:
			 = &types.UnknownUnionMember{Tag: .Name.Local}
			 = true

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.LifecycleRule,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.LifecycleRule
	if * == nil {
		 = make([]types.LifecycleRule, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  types.LifecycleRule
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentLifecycleRule(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.LifecycleRule,  smithyxml.NodeDecoder) error {
	var  []types.LifecycleRule
	if * == nil {
		 = make([]types.LifecycleRule, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.LifecycleRule
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentLifecycleRule(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.LoggingEnabled,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.LoggingEnabled
	if * == nil {
		 = &types.LoggingEnabled{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("TargetBucket", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.TargetBucket = ptr.String()
			}

		case strings.EqualFold("TargetGrants", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentTargetGrants(&.TargetGrants, );  != nil {
				return 
			}

		case strings.EqualFold("TargetPrefix", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.TargetPrefix = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.Metrics,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.Metrics
	if * == nil {
		 = &types.Metrics{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("EventThreshold", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentReplicationTimeValue(&.EventThreshold, );  != nil {
				return 
			}

		case strings.EqualFold("Status", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Status = types.MetricsStatus()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.MetricsAndOperator,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.MetricsAndOperator
	if * == nil {
		 = &types.MetricsAndOperator{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("AccessPointArn", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.AccessPointArn = ptr.String()
			}

		case strings.EqualFold("Prefix", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Prefix = ptr.String()
			}

		case strings.EqualFold("Tag", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentTagSetUnwrapped(&.Tags, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.MetricsConfiguration,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.MetricsConfiguration
	if * == nil {
		 = &types.MetricsConfiguration{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Filter", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentMetricsFilter(&.Filter, );  != nil {
				return 
			}

		case strings.EqualFold("Id", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Id = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.MetricsConfiguration,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.MetricsConfiguration
	if * == nil {
		 = make([]types.MetricsConfiguration, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  types.MetricsConfiguration
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentMetricsConfiguration(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.MetricsConfiguration,  smithyxml.NodeDecoder) error {
	var  []types.MetricsConfiguration
	if * == nil {
		 = make([]types.MetricsConfiguration, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.MetricsConfiguration
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentMetricsConfiguration(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}
func ( *types.MetricsFilter,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  types.MetricsFilter
	var  bool
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		if  {
			if  = .Decoder.Skip();  != nil {
				return 
			}
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("AccessPointArn", .Name.Local):
			var  string
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				 = 
			}
			 = &types.MetricsFilterMemberAccessPointArn{Value: }
			 = true

		case strings.EqualFold("And", .Name.Local):
			var  types.MetricsAndOperator
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentMetricsAndOperator(&, );  != nil {
				return 
			}
			 = *
			 = &types.MetricsFilterMemberAnd{Value: }
			 = true

		case strings.EqualFold("Prefix", .Name.Local):
			var  string
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				 = 
			}
			 = &types.MetricsFilterMemberPrefix{Value: }
			 = true

		case strings.EqualFold("Tag", .Name.Local):
			var  types.Tag
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentTag(&, );  != nil {
				return 
			}
			 = *
			 = &types.MetricsFilterMemberTag{Value: }
			 = true

		default:
			 = &types.UnknownUnionMember{Tag: .Name.Local}
			 = true

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.MultipartUpload,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.MultipartUpload
	if * == nil {
		 = &types.MultipartUpload{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("ChecksumAlgorithm", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ChecksumAlgorithm = types.ChecksumAlgorithm()
			}

		case strings.EqualFold("Initiated", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := smithytime.ParseDateTime()
				if  != nil {
					return 
				}
				.Initiated = ptr.Time()
			}

		case strings.EqualFold("Initiator", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentInitiator(&.Initiator, );  != nil {
				return 
			}

		case strings.EqualFold("Key", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Key = ptr.String()
			}

		case strings.EqualFold("Owner", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentOwner(&.Owner, );  != nil {
				return 
			}

		case strings.EqualFold("StorageClass", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.StorageClass = types.StorageClass()
			}

		case strings.EqualFold("UploadId", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.UploadId = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.MultipartUpload,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.MultipartUpload
	if * == nil {
		 = make([]types.MultipartUpload, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  types.MultipartUpload
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentMultipartUpload(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.MultipartUpload,  smithyxml.NodeDecoder) error {
	var  []types.MultipartUpload
	if * == nil {
		 = make([]types.MultipartUpload, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.MultipartUpload
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentMultipartUpload(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.NoncurrentVersionExpiration,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.NoncurrentVersionExpiration
	if * == nil {
		 = &types.NoncurrentVersionExpiration{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("NewerNoncurrentVersions", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.NewerNoncurrentVersions = int32()
			}

		case strings.EqualFold("NoncurrentDays", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.NoncurrentDays = int32()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.NoncurrentVersionTransition,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.NoncurrentVersionTransition
	if * == nil {
		 = &types.NoncurrentVersionTransition{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("NewerNoncurrentVersions", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.NewerNoncurrentVersions = int32()
			}

		case strings.EqualFold("NoncurrentDays", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.NoncurrentDays = int32()
			}

		case strings.EqualFold("StorageClass", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.StorageClass = types.TransitionStorageClass()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.NoncurrentVersionTransition,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.NoncurrentVersionTransition
	if * == nil {
		 = make([]types.NoncurrentVersionTransition, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  types.NoncurrentVersionTransition
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentNoncurrentVersionTransition(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.NoncurrentVersionTransition,  smithyxml.NodeDecoder) error {
	var  []types.NoncurrentVersionTransition
	if * == nil {
		 = make([]types.NoncurrentVersionTransition, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.NoncurrentVersionTransition
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentNoncurrentVersionTransition(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.NoSuchBucket,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.NoSuchBucket
	if * == nil {
		 = &types.NoSuchBucket{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.NoSuchKey,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.NoSuchKey
	if * == nil {
		 = &types.NoSuchKey{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.NoSuchUpload,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.NoSuchUpload
	if * == nil {
		 = &types.NoSuchUpload{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.NotFound,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.NotFound
	if * == nil {
		 = &types.NotFound{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.NotificationConfigurationFilter,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.NotificationConfigurationFilter
	if * == nil {
		 = &types.NotificationConfigurationFilter{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("S3Key", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentS3KeyFilter(&.Key, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.Object,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.Object
	if * == nil {
		 = &types.Object{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("ChecksumAlgorithm", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentChecksumAlgorithmListUnwrapped(&.ChecksumAlgorithm, );  != nil {
				return 
			}

		case strings.EqualFold("ETag", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ETag = ptr.String()
			}

		case strings.EqualFold("Key", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Key = ptr.String()
			}

		case strings.EqualFold("LastModified", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := smithytime.ParseDateTime()
				if  != nil {
					return 
				}
				.LastModified = ptr.Time()
			}

		case strings.EqualFold("Owner", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentOwner(&.Owner, );  != nil {
				return 
			}

		case strings.EqualFold("Size", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.Size = 
			}

		case strings.EqualFold("StorageClass", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.StorageClass = types.ObjectStorageClass()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.ObjectAlreadyInActiveTierError,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.ObjectAlreadyInActiveTierError
	if * == nil {
		 = &types.ObjectAlreadyInActiveTierError{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.Object,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.Object
	if * == nil {
		 = make([]types.Object, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  types.Object
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentObject(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.Object,  smithyxml.NodeDecoder) error {
	var  []types.Object
	if * == nil {
		 = make([]types.Object, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.Object
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentObject(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.ObjectLockConfiguration,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.ObjectLockConfiguration
	if * == nil {
		 = &types.ObjectLockConfiguration{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("ObjectLockEnabled", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ObjectLockEnabled = types.ObjectLockEnabled()
			}

		case strings.EqualFold("Rule", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentObjectLockRule(&.Rule, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.ObjectLockLegalHold,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.ObjectLockLegalHold
	if * == nil {
		 = &types.ObjectLockLegalHold{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Status", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Status = types.ObjectLockLegalHoldStatus()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.ObjectLockRetention,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.ObjectLockRetention
	if * == nil {
		 = &types.ObjectLockRetention{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Mode", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Mode = types.ObjectLockRetentionMode()
			}

		case strings.EqualFold("RetainUntilDate", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := smithytime.ParseDateTime()
				if  != nil {
					return 
				}
				.RetainUntilDate = ptr.Time()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.ObjectLockRule,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.ObjectLockRule
	if * == nil {
		 = &types.ObjectLockRule{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("DefaultRetention", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentDefaultRetention(&.DefaultRetention, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.ObjectNotInActiveTierError,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.ObjectNotInActiveTierError
	if * == nil {
		 = &types.ObjectNotInActiveTierError{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.ObjectPart,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.ObjectPart
	if * == nil {
		 = &types.ObjectPart{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("ChecksumCRC32", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ChecksumCRC32 = ptr.String()
			}

		case strings.EqualFold("ChecksumCRC32C", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ChecksumCRC32C = ptr.String()
			}

		case strings.EqualFold("ChecksumSHA1", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ChecksumSHA1 = ptr.String()
			}

		case strings.EqualFold("ChecksumSHA256", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ChecksumSHA256 = ptr.String()
			}

		case strings.EqualFold("PartNumber", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.PartNumber = int32()
			}

		case strings.EqualFold("Size", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.Size = 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.ObjectVersion,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.ObjectVersion
	if * == nil {
		 = &types.ObjectVersion{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("ChecksumAlgorithm", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentChecksumAlgorithmListUnwrapped(&.ChecksumAlgorithm, );  != nil {
				return 
			}

		case strings.EqualFold("ETag", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ETag = ptr.String()
			}

		case strings.EqualFold("IsLatest", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				,  := strconv.ParseBool(string())
				if  != nil {
					return fmt.Errorf("expected IsLatest to be of type *bool, got %T instead", )
				}
				.IsLatest = 
			}

		case strings.EqualFold("Key", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Key = ptr.String()
			}

		case strings.EqualFold("LastModified", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := smithytime.ParseDateTime()
				if  != nil {
					return 
				}
				.LastModified = ptr.Time()
			}

		case strings.EqualFold("Owner", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentOwner(&.Owner, );  != nil {
				return 
			}

		case strings.EqualFold("Size", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.Size = 
			}

		case strings.EqualFold("StorageClass", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.StorageClass = types.ObjectVersionStorageClass()
			}

		case strings.EqualFold("VersionId", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.VersionId = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.ObjectVersion,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.ObjectVersion
	if * == nil {
		 = make([]types.ObjectVersion, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  types.ObjectVersion
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentObjectVersion(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.ObjectVersion,  smithyxml.NodeDecoder) error {
	var  []types.ObjectVersion
	if * == nil {
		 = make([]types.ObjectVersion, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.ObjectVersion
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentObjectVersion(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.Owner,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.Owner
	if * == nil {
		 = &types.Owner{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("DisplayName", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.DisplayName = ptr.String()
			}

		case strings.EqualFold("ID", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ID = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.OwnershipControls,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.OwnershipControls
	if * == nil {
		 = &types.OwnershipControls{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Rule", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentOwnershipControlsRulesUnwrapped(&.Rules, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.OwnershipControlsRule,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.OwnershipControlsRule
	if * == nil {
		 = &types.OwnershipControlsRule{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("ObjectOwnership", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ObjectOwnership = types.ObjectOwnership()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.OwnershipControlsRule,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.OwnershipControlsRule
	if * == nil {
		 = make([]types.OwnershipControlsRule, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  types.OwnershipControlsRule
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentOwnershipControlsRule(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.OwnershipControlsRule,  smithyxml.NodeDecoder) error {
	var  []types.OwnershipControlsRule
	if * == nil {
		 = make([]types.OwnershipControlsRule, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.OwnershipControlsRule
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentOwnershipControlsRule(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.Part,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.Part
	if * == nil {
		 = &types.Part{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("ChecksumCRC32", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ChecksumCRC32 = ptr.String()
			}

		case strings.EqualFold("ChecksumCRC32C", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ChecksumCRC32C = ptr.String()
			}

		case strings.EqualFold("ChecksumSHA1", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ChecksumSHA1 = ptr.String()
			}

		case strings.EqualFold("ChecksumSHA256", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ChecksumSHA256 = ptr.String()
			}

		case strings.EqualFold("ETag", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ETag = ptr.String()
			}

		case strings.EqualFold("LastModified", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := smithytime.ParseDateTime()
				if  != nil {
					return 
				}
				.LastModified = ptr.Time()
			}

		case strings.EqualFold("PartNumber", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.PartNumber = int32()
			}

		case strings.EqualFold("Size", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.Size = 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.Part,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.Part
	if * == nil {
		 = make([]types.Part, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  types.Part
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentPart(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.Part,  smithyxml.NodeDecoder) error {
	var  []types.Part
	if * == nil {
		 = make([]types.Part, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.Part
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentPart(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}
func ( *[]types.ObjectPart,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.ObjectPart
	if * == nil {
		 = make([]types.ObjectPart, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  types.ObjectPart
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentObjectPart(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.ObjectPart,  smithyxml.NodeDecoder) error {
	var  []types.ObjectPart
	if * == nil {
		 = make([]types.ObjectPart, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.ObjectPart
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentObjectPart(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.PolicyStatus,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.PolicyStatus
	if * == nil {
		 = &types.PolicyStatus{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("IsPublic", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				,  := strconv.ParseBool(string())
				if  != nil {
					return fmt.Errorf("expected IsPublic to be of type *bool, got %T instead", )
				}
				.IsPublic = 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.PublicAccessBlockConfiguration,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.PublicAccessBlockConfiguration
	if * == nil {
		 = &types.PublicAccessBlockConfiguration{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("BlockPublicAcls", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				,  := strconv.ParseBool(string())
				if  != nil {
					return fmt.Errorf("expected Setting to be of type *bool, got %T instead", )
				}
				.BlockPublicAcls = 
			}

		case strings.EqualFold("BlockPublicPolicy", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				,  := strconv.ParseBool(string())
				if  != nil {
					return fmt.Errorf("expected Setting to be of type *bool, got %T instead", )
				}
				.BlockPublicPolicy = 
			}

		case strings.EqualFold("IgnorePublicAcls", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				,  := strconv.ParseBool(string())
				if  != nil {
					return fmt.Errorf("expected Setting to be of type *bool, got %T instead", )
				}
				.IgnorePublicAcls = 
			}

		case strings.EqualFold("RestrictPublicBuckets", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				,  := strconv.ParseBool(string())
				if  != nil {
					return fmt.Errorf("expected Setting to be of type *bool, got %T instead", )
				}
				.RestrictPublicBuckets = 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.QueueConfiguration,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.QueueConfiguration
	if * == nil {
		 = &types.QueueConfiguration{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Event", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentEventListUnwrapped(&.Events, );  != nil {
				return 
			}

		case strings.EqualFold("Filter", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentNotificationConfigurationFilter(&.Filter, );  != nil {
				return 
			}

		case strings.EqualFold("Id", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Id = ptr.String()
			}

		case strings.EqualFold("Queue", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.QueueArn = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.QueueConfiguration,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.QueueConfiguration
	if * == nil {
		 = make([]types.QueueConfiguration, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  types.QueueConfiguration
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentQueueConfiguration(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.QueueConfiguration,  smithyxml.NodeDecoder) error {
	var  []types.QueueConfiguration
	if * == nil {
		 = make([]types.QueueConfiguration, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.QueueConfiguration
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentQueueConfiguration(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.Redirect,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.Redirect
	if * == nil {
		 = &types.Redirect{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("HostName", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.HostName = ptr.String()
			}

		case strings.EqualFold("HttpRedirectCode", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.HttpRedirectCode = ptr.String()
			}

		case strings.EqualFold("Protocol", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Protocol = types.Protocol()
			}

		case strings.EqualFold("ReplaceKeyPrefixWith", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ReplaceKeyPrefixWith = ptr.String()
			}

		case strings.EqualFold("ReplaceKeyWith", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ReplaceKeyWith = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.RedirectAllRequestsTo,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.RedirectAllRequestsTo
	if * == nil {
		 = &types.RedirectAllRequestsTo{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("HostName", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.HostName = ptr.String()
			}

		case strings.EqualFold("Protocol", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Protocol = types.Protocol()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.ReplicaModifications,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.ReplicaModifications
	if * == nil {
		 = &types.ReplicaModifications{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Status", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Status = types.ReplicaModificationsStatus()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.ReplicationConfiguration,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.ReplicationConfiguration
	if * == nil {
		 = &types.ReplicationConfiguration{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Role", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Role = ptr.String()
			}

		case strings.EqualFold("Rule", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentReplicationRulesUnwrapped(&.Rules, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.ReplicationRule,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.ReplicationRule
	if * == nil {
		 = &types.ReplicationRule{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("DeleteMarkerReplication", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentDeleteMarkerReplication(&.DeleteMarkerReplication, );  != nil {
				return 
			}

		case strings.EqualFold("Destination", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentDestination(&.Destination, );  != nil {
				return 
			}

		case strings.EqualFold("ExistingObjectReplication", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentExistingObjectReplication(&.ExistingObjectReplication, );  != nil {
				return 
			}

		case strings.EqualFold("Filter", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentReplicationRuleFilter(&.Filter, );  != nil {
				return 
			}

		case strings.EqualFold("ID", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.ID = ptr.String()
			}

		case strings.EqualFold("Prefix", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Prefix = ptr.String()
			}

		case strings.EqualFold("Priority", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.Priority = int32()
			}

		case strings.EqualFold("SourceSelectionCriteria", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentSourceSelectionCriteria(&.SourceSelectionCriteria, );  != nil {
				return 
			}

		case strings.EqualFold("Status", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Status = types.ReplicationRuleStatus()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.ReplicationRuleAndOperator,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.ReplicationRuleAndOperator
	if * == nil {
		 = &types.ReplicationRuleAndOperator{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Prefix", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Prefix = ptr.String()
			}

		case strings.EqualFold("Tag", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentTagSetUnwrapped(&.Tags, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *types.ReplicationRuleFilter,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  types.ReplicationRuleFilter
	var  bool
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		if  {
			if  = .Decoder.Skip();  != nil {
				return 
			}
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("And", .Name.Local):
			var  types.ReplicationRuleAndOperator
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentReplicationRuleAndOperator(&, );  != nil {
				return 
			}
			 = *
			 = &types.ReplicationRuleFilterMemberAnd{Value: }
			 = true

		case strings.EqualFold("Prefix", .Name.Local):
			var  string
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				 = 
			}
			 = &types.ReplicationRuleFilterMemberPrefix{Value: }
			 = true

		case strings.EqualFold("Tag", .Name.Local):
			var  types.Tag
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentTag(&, );  != nil {
				return 
			}
			 = *
			 = &types.ReplicationRuleFilterMemberTag{Value: }
			 = true

		default:
			 = &types.UnknownUnionMember{Tag: .Name.Local}
			 = true

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.ReplicationRule,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.ReplicationRule
	if * == nil {
		 = make([]types.ReplicationRule, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  types.ReplicationRule
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentReplicationRule(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.ReplicationRule,  smithyxml.NodeDecoder) error {
	var  []types.ReplicationRule
	if * == nil {
		 = make([]types.ReplicationRule, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.ReplicationRule
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentReplicationRule(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.ReplicationTime,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.ReplicationTime
	if * == nil {
		 = &types.ReplicationTime{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Status", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Status = types.ReplicationTimeStatus()
			}

		case strings.EqualFold("Time", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentReplicationTimeValue(&.Time, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.ReplicationTimeValue,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.ReplicationTimeValue
	if * == nil {
		 = &types.ReplicationTimeValue{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Minutes", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.Minutes = int32()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.RoutingRule,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.RoutingRule
	if * == nil {
		 = &types.RoutingRule{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Condition", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentCondition(&.Condition, );  != nil {
				return 
			}

		case strings.EqualFold("Redirect", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentRedirect(&.Redirect, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.RoutingRule,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.RoutingRule
	if * == nil {
		 = make([]types.RoutingRule, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("RoutingRule", .Name.Local):
			var  types.RoutingRule
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentRoutingRule(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.RoutingRule,  smithyxml.NodeDecoder) error {
	var  []types.RoutingRule
	if * == nil {
		 = make([]types.RoutingRule, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.RoutingRule
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentRoutingRule(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.S3KeyFilter,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.S3KeyFilter
	if * == nil {
		 = &types.S3KeyFilter{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("FilterRule", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentFilterRuleListUnwrapped(&.FilterRules, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.ServerSideEncryptionByDefault,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.ServerSideEncryptionByDefault
	if * == nil {
		 = &types.ServerSideEncryptionByDefault{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("KMSMasterKeyID", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.KMSMasterKeyID = ptr.String()
			}

		case strings.EqualFold("SSEAlgorithm", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.SSEAlgorithm = types.ServerSideEncryption()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.ServerSideEncryptionConfiguration,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.ServerSideEncryptionConfiguration
	if * == nil {
		 = &types.ServerSideEncryptionConfiguration{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Rule", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentServerSideEncryptionRulesUnwrapped(&.Rules, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.ServerSideEncryptionRule,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.ServerSideEncryptionRule
	if * == nil {
		 = &types.ServerSideEncryptionRule{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("ApplyServerSideEncryptionByDefault", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentServerSideEncryptionByDefault(&.ApplyServerSideEncryptionByDefault, );  != nil {
				return 
			}

		case strings.EqualFold("BucketKeyEnabled", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				,  := strconv.ParseBool(string())
				if  != nil {
					return fmt.Errorf("expected BucketKeyEnabled to be of type *bool, got %T instead", )
				}
				.BucketKeyEnabled = 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.ServerSideEncryptionRule,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.ServerSideEncryptionRule
	if * == nil {
		 = make([]types.ServerSideEncryptionRule, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  types.ServerSideEncryptionRule
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentServerSideEncryptionRule(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.ServerSideEncryptionRule,  smithyxml.NodeDecoder) error {
	var  []types.ServerSideEncryptionRule
	if * == nil {
		 = make([]types.ServerSideEncryptionRule, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.ServerSideEncryptionRule
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentServerSideEncryptionRule(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.SourceSelectionCriteria,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.SourceSelectionCriteria
	if * == nil {
		 = &types.SourceSelectionCriteria{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("ReplicaModifications", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentReplicaModifications(&.ReplicaModifications, );  != nil {
				return 
			}

		case strings.EqualFold("SseKmsEncryptedObjects", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentSseKmsEncryptedObjects(&.SseKmsEncryptedObjects, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.SSEKMS,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.SSEKMS
	if * == nil {
		 = &types.SSEKMS{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("KeyId", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.KeyId = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.SseKmsEncryptedObjects,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.SseKmsEncryptedObjects
	if * == nil {
		 = &types.SseKmsEncryptedObjects{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Status", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Status = types.SseKmsEncryptedObjectsStatus()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.SSES3,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.SSES3
	if * == nil {
		 = &types.SSES3{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.StorageClassAnalysis,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.StorageClassAnalysis
	if * == nil {
		 = &types.StorageClassAnalysis{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("DataExport", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentStorageClassAnalysisDataExport(&.DataExport, );  != nil {
				return 
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.StorageClassAnalysisDataExport,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.StorageClassAnalysisDataExport
	if * == nil {
		 = &types.StorageClassAnalysisDataExport{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Destination", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentAnalyticsExportDestination(&.Destination, );  != nil {
				return 
			}

		case strings.EqualFold("OutputSchemaVersion", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.OutputSchemaVersion = types.StorageClassAnalysisSchemaVersion()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( **types.Tag,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.Tag
	if * == nil {
		 = &types.Tag{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Key", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Key = ptr.String()
			}

		case strings.EqualFold("Value", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Value = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.Tag,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.Tag
	if * == nil {
		 = make([]types.Tag, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("Tag", .Name.Local):
			var  types.Tag
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentTag(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.Tag,  smithyxml.NodeDecoder) error {
	var  []types.Tag
	if * == nil {
		 = make([]types.Tag, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.Tag
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentTag(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.TargetGrant,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.TargetGrant
	if * == nil {
		 = &types.TargetGrant{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Grantee", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentGrantee(&.Grantee, );  != nil {
				return 
			}

		case strings.EqualFold("Permission", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Permission = types.BucketLogsPermission()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.TargetGrant,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.TargetGrant
	if * == nil {
		 = make([]types.TargetGrant, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("Grant", .Name.Local):
			var  types.TargetGrant
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentTargetGrant(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.TargetGrant,  smithyxml.NodeDecoder) error {
	var  []types.TargetGrant
	if * == nil {
		 = make([]types.TargetGrant, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.TargetGrant
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentTargetGrant(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.Tiering,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.Tiering
	if * == nil {
		 = &types.Tiering{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("AccessTier", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.AccessTier = types.IntelligentTieringAccessTier()
			}

		case strings.EqualFold("Days", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.Days = int32()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.Tiering,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.Tiering
	if * == nil {
		 = make([]types.Tiering, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  types.Tiering
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentTiering(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.Tiering,  smithyxml.NodeDecoder) error {
	var  []types.Tiering
	if * == nil {
		 = make([]types.Tiering, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.Tiering
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentTiering(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.TopicConfiguration,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.TopicConfiguration
	if * == nil {
		 = &types.TopicConfiguration{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Event", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentEventListUnwrapped(&.Events, );  != nil {
				return 
			}

		case strings.EqualFold("Filter", .Name.Local):
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			if  := awsRestxml_deserializeDocumentNotificationConfigurationFilter(&.Filter, );  != nil {
				return 
			}

		case strings.EqualFold("Id", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.Id = ptr.String()
			}

		case strings.EqualFold("Topic", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.TopicArn = ptr.String()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.TopicConfiguration,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.TopicConfiguration
	if * == nil {
		 = make([]types.TopicConfiguration, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  types.TopicConfiguration
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentTopicConfiguration(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.TopicConfiguration,  smithyxml.NodeDecoder) error {
	var  []types.TopicConfiguration
	if * == nil {
		 = make([]types.TopicConfiguration, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.TopicConfiguration
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentTopicConfiguration(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}
func ( **types.Transition,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  *types.Transition
	if * == nil {
		 = &types.Transition{}
	} else {
		 = *
	}

	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		 := 
		 = smithyxml.WrapNodeDecoder(.Decoder, )
		switch {
		case strings.EqualFold("Date", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := smithytime.ParseDateTime()
				if  != nil {
					return 
				}
				.Date = ptr.Time()
			}

		case strings.EqualFold("Days", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				,  := strconv.ParseInt(, 10, 64)
				if  != nil {
					return 
				}
				.Days = int32()
			}

		case strings.EqualFold("StorageClass", .Name.Local):
			,  := .Value()
			if  != nil {
				return 
			}
			if  == nil {
				break
			}
			{
				 := string()
				.StorageClass = types.TransitionStorageClass()
			}

		default:
			// Do nothing and ignore the unexpected tag element
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.Transition,  smithyxml.NodeDecoder) error {
	if  == nil {
		return fmt.Errorf("unexpected nil of type %T", )
	}
	var  []types.Transition
	if * == nil {
		 = make([]types.Transition, 0)
	} else {
		 = *
	}

	 := 
	for {
		, ,  := .Token()
		if  != nil {
			return 
		}
		if  {
			break
		}
		switch {
		case strings.EqualFold("member", .Name.Local):
			var  types.Transition
			 := smithyxml.WrapNodeDecoder(.Decoder, )
			 := &
			if  := awsRestxml_deserializeDocumentTransition(&, );  != nil {
				return 
			}
			 = *
			 = append(, )

		default:
			 = .Decoder.Skip()
			if  != nil {
				return 
			}

		}
		 = 
	}
	* = 
	return nil
}

func ( *[]types.Transition,  smithyxml.NodeDecoder) error {
	var  []types.Transition
	if * == nil {
		 = make([]types.Transition, 0)
	} else {
		 = *
	}

	switch {
	default:
		var  types.Transition
		 := .StartEl
		_ = 
		 := smithyxml.WrapNodeDecoder(.Decoder, )
		 := &
		if  := awsRestxml_deserializeDocumentTransition(&, );  != nil {
			return 
		}
		 = *
		 = append(, )
	}
	* = 
	return nil
}