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

//go:build response_snapshot

package dynamodb

import (
	"bufio"
	"bytes"
	"context"
	"errors"
	"fmt"
	"github.com/aws/aws-sdk-go-v2/service/dynamodb/types"
	smithyendpoints "github.com/aws/smithy-go/endpoints"
	"github.com/aws/smithy-go/middleware"
	"github.com/aws/smithy-go/ptr"
	smithytesting "github.com/aws/smithy-go/testing"
	smithyhttp "github.com/aws/smithy-go/transport/http"
	"io"
	"io/fs"
	"net/http"
	"net/url"
	"os"
	"strconv"
	"strings"
	"testing"
	"time"
)

const serdeRespSSPrefix = "response_snapshot"

func serdeRespSSPath(op string) string {
	return fmt.Sprintf("%s/%s.snap", serdeRespSSPrefix, op)
}

// serdeRespReadSnapshot parses a frozen wire response fixture: a status-code
// line, HTTP headers, a blank line, then the raw body.
func serdeRespReadSnapshot(op string) (int, http.Header, []byte, error) {
	raw, err := os.ReadFile(serdeRespSSPath(op))
	if err != nil {
		return 0, nil, nil, err
	}

	r := bufio.NewReader(bytes.NewReader(raw))
	statusLine, err := r.ReadString('\n')
	if err != nil {
		return 0, nil, nil, fmt.Errorf("read status line: %w", err)
	}
	status, err := strconv.Atoi(strings.TrimSpace(statusLine))
	if err != nil {
		return 0, nil, nil, fmt.Errorf("parse status: %w", err)
	}

	header := http.Header{}
	for {
		line, err := r.ReadString('\n')
		if err != nil && err != io.EOF {
			return 0, nil, nil, err
		}
		trimmed := strings.TrimRight(line, "\r\n")
		if trimmed == "" {
			break
		}
		k, v, ok := strings.Cut(trimmed, ": ")
		if !ok {
			return 0, nil, nil, fmt.Errorf("malformed header %q", trimmed)
		}
		header.Add(k, v)
		if err == io.EOF {
			break
		}
	}

	body, err := io.ReadAll(r)
	if err != nil {
		return 0, nil, nil, err
	}
	return status, header, body, nil
}

type serdeRespEndpointResolver struct{}

func (*serdeRespEndpointResolver) ResolveEndpoint(ctx context.Context, params EndpointParameters) (smithyendpoints.Endpoint, error) {
	return smithyendpoints.Endpoint{URI: url.URL{Scheme: "https", Host: "test.example.com"}}, nil
}

func serdeRespClient(status int, header http.Header, body []byte) *Client {
	return New(Options{
		Region: "us-east-1",
		HTTPClient: smithyhttp.ClientDoFunc(func(req *http.Request) (*http.Response, error) {
			resp := &http.Response{StatusCode: status, Header: header, Request: req}
			if len(body) > 0 {
				resp.ContentLength = int64(len(body))
				resp.Body = io.NopCloser(bytes.NewReader(body))
			} else {
				resp.Body = http.NoBody
			}
			return resp, nil
		}),
		EndpointResolverV2: &serdeRespEndpointResolver{},
		APIOptions: []func(*middleware.Stack) error{
			func(s *middleware.Stack) error {
				s.Finalize.Clear()
				s.Initialize.Remove("OperationInputValidation")
				return nil
			},
		},
	})
}
func TestCheckResponseSnapshot_BatchExecuteStatement(t *testing.T) {
	want := &BatchExecuteStatementOutput{
		Responses: []types.BatchStatementResponse{
			{
				Error: &types.BatchStatementError{
					Code:    types.BatchStatementErrorCodeEnum("ConditionalCheckFailed"),
					Message: ptr.String("__Message__"),
					Item: map[string]types.AttributeValue{
						"key0": &types.AttributeValueMemberS{
							Value: "__AttributeValueMemberS__",
						},
					},
				},
				TableName: ptr.String("__TableName__"),
				Item: map[string]types.AttributeValue{
					"key0": &types.AttributeValueMemberS{
						Value: "__AttributeValueMemberS__",
					},
				},
			},
			{
				Error: &types.BatchStatementError{
					Code:    types.BatchStatementErrorCodeEnum("ConditionalCheckFailed"),
					Message: ptr.String("__Message__"),
					Item: map[string]types.AttributeValue{
						"key0": &types.AttributeValueMemberS{
							Value: "__AttributeValueMemberS__",
						},
					},
				},
				TableName: ptr.String("__TableName__"),
				Item: map[string]types.AttributeValue{
					"key0": &types.AttributeValueMemberS{
						Value: "__AttributeValueMemberS__",
					},
				},
			},
		},
		ConsumedCapacity: []types.ConsumedCapacity{
			{
				TableName:          ptr.String("__TableName__"),
				CapacityUnits:      ptr.Float64(1.0),
				ReadCapacityUnits:  ptr.Float64(1.0),
				WriteCapacityUnits: ptr.Float64(1.0),
				Table: &types.Capacity{
					ReadCapacityUnits:  ptr.Float64(1.0),
					WriteCapacityUnits: ptr.Float64(1.0),
					CapacityUnits:      ptr.Float64(1.0),
				},
				LocalSecondaryIndexes: map[string]types.Capacity{
					"key0": {
						ReadCapacityUnits:  ptr.Float64(1.0),
						WriteCapacityUnits: ptr.Float64(1.0),
						CapacityUnits:      ptr.Float64(1.0),
					},
				},
				GlobalSecondaryIndexes: map[string]types.Capacity{
					"key0": {
						ReadCapacityUnits:  ptr.Float64(1.0),
						WriteCapacityUnits: ptr.Float64(1.0),
						CapacityUnits:      ptr.Float64(1.0),
					},
				},
			},
			{
				TableName:          ptr.String("__TableName__"),
				CapacityUnits:      ptr.Float64(1.0),
				ReadCapacityUnits:  ptr.Float64(1.0),
				WriteCapacityUnits: ptr.Float64(1.0),
				Table: &types.Capacity{
					ReadCapacityUnits:  ptr.Float64(1.0),
					WriteCapacityUnits: ptr.Float64(1.0),
					CapacityUnits:      ptr.Float64(1.0),
				},
				LocalSecondaryIndexes: map[string]types.Capacity{
					"key0": {
						ReadCapacityUnits:  ptr.Float64(1.0),
						WriteCapacityUnits: ptr.Float64(1.0),
						CapacityUnits:      ptr.Float64(1.0),
					},
				},
				GlobalSecondaryIndexes: map[string]types.Capacity{
					"key0": {
						ReadCapacityUnits:  ptr.Float64(1.0),
						WriteCapacityUnits: ptr.Float64(1.0),
						CapacityUnits:      ptr.Float64(1.0),
					},
				},
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("BatchExecuteStatement.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.BatchExecuteStatement(context.Background(), &BatchExecuteStatementInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "BatchExecuteStatement.response", err)
	}
}

func TestCheckResponseSnapshot_BatchGetItem(t *testing.T) {
	want := &BatchGetItemOutput{
		Responses: map[string][]map[string]types.AttributeValue{
			"key0": {
				{
					"key0": &types.AttributeValueMemberS{
						Value: "__AttributeValueMemberS__",
					},
				},
				{
					"key0": &types.AttributeValueMemberS{
						Value: "__AttributeValueMemberS__",
					},
				},
			},
		},
		UnprocessedKeys: map[string]types.KeysAndAttributes{
			"key0": {
				Keys: []map[string]types.AttributeValue{
					{
						"key0": &types.AttributeValueMemberS{
							Value: "__AttributeValueMemberS__",
						},
					},
					{
						"key0": &types.AttributeValueMemberS{
							Value: "__AttributeValueMemberS__",
						},
					},
				},
				AttributesToGet: []string{
					"__Member__",
					"__Member__",
				},
				ConsistentRead:       ptr.Bool(true),
				ProjectionExpression: ptr.String("__ProjectionExpression__"),
				ExpressionAttributeNames: map[string]string{
					"key0": "__Value__",
				},
			},
		},
		ConsumedCapacity: []types.ConsumedCapacity{
			{
				TableName:          ptr.String("__TableName__"),
				CapacityUnits:      ptr.Float64(1.0),
				ReadCapacityUnits:  ptr.Float64(1.0),
				WriteCapacityUnits: ptr.Float64(1.0),
				Table: &types.Capacity{
					ReadCapacityUnits:  ptr.Float64(1.0),
					WriteCapacityUnits: ptr.Float64(1.0),
					CapacityUnits:      ptr.Float64(1.0),
				},
				LocalSecondaryIndexes: map[string]types.Capacity{
					"key0": {
						ReadCapacityUnits:  ptr.Float64(1.0),
						WriteCapacityUnits: ptr.Float64(1.0),
						CapacityUnits:      ptr.Float64(1.0),
					},
				},
				GlobalSecondaryIndexes: map[string]types.Capacity{
					"key0": {
						ReadCapacityUnits:  ptr.Float64(1.0),
						WriteCapacityUnits: ptr.Float64(1.0),
						CapacityUnits:      ptr.Float64(1.0),
					},
				},
			},
			{
				TableName:          ptr.String("__TableName__"),
				CapacityUnits:      ptr.Float64(1.0),
				ReadCapacityUnits:  ptr.Float64(1.0),
				WriteCapacityUnits: ptr.Float64(1.0),
				Table: &types.Capacity{
					ReadCapacityUnits:  ptr.Float64(1.0),
					WriteCapacityUnits: ptr.Float64(1.0),
					CapacityUnits:      ptr.Float64(1.0),
				},
				LocalSecondaryIndexes: map[string]types.Capacity{
					"key0": {
						ReadCapacityUnits:  ptr.Float64(1.0),
						WriteCapacityUnits: ptr.Float64(1.0),
						CapacityUnits:      ptr.Float64(1.0),
					},
				},
				GlobalSecondaryIndexes: map[string]types.Capacity{
					"key0": {
						ReadCapacityUnits:  ptr.Float64(1.0),
						WriteCapacityUnits: ptr.Float64(1.0),
						CapacityUnits:      ptr.Float64(1.0),
					},
				},
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("BatchGetItem.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.BatchGetItem(context.Background(), &BatchGetItemInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "BatchGetItem.response", err)
	}
}

func TestCheckResponseSnapshot_BatchWriteItem(t *testing.T) {
	want := &BatchWriteItemOutput{
		UnprocessedItems: map[string][]types.WriteRequest{
			"key0": {
				{
					PutRequest: &types.PutRequest{
						Item: map[string]types.AttributeValue{
							"key0": &types.AttributeValueMemberS{
								Value: "__AttributeValueMemberS__",
							},
						},
					},
					DeleteRequest: &types.DeleteRequest{
						Key: map[string]types.AttributeValue{
							"key0": &types.AttributeValueMemberS{
								Value: "__AttributeValueMemberS__",
							},
						},
					},
				},
				{
					PutRequest: &types.PutRequest{
						Item: map[string]types.AttributeValue{
							"key0": &types.AttributeValueMemberS{
								Value: "__AttributeValueMemberS__",
							},
						},
					},
					DeleteRequest: &types.DeleteRequest{
						Key: map[string]types.AttributeValue{
							"key0": &types.AttributeValueMemberS{
								Value: "__AttributeValueMemberS__",
							},
						},
					},
				},
			},
		},
		ItemCollectionMetrics: map[string][]types.ItemCollectionMetrics{
			"key0": {
				{
					ItemCollectionKey: map[string]types.AttributeValue{
						"key0": &types.AttributeValueMemberS{
							Value: "__AttributeValueMemberS__",
						},
					},
					SizeEstimateRangeGB: []float64{
						1.0,
						1.0,
					},
				},
				{
					ItemCollectionKey: map[string]types.AttributeValue{
						"key0": &types.AttributeValueMemberS{
							Value: "__AttributeValueMemberS__",
						},
					},
					SizeEstimateRangeGB: []float64{
						1.0,
						1.0,
					},
				},
			},
		},
		ConsumedCapacity: []types.ConsumedCapacity{
			{
				TableName:          ptr.String("__TableName__"),
				CapacityUnits:      ptr.Float64(1.0),
				ReadCapacityUnits:  ptr.Float64(1.0),
				WriteCapacityUnits: ptr.Float64(1.0),
				Table: &types.Capacity{
					ReadCapacityUnits:  ptr.Float64(1.0),
					WriteCapacityUnits: ptr.Float64(1.0),
					CapacityUnits:      ptr.Float64(1.0),
				},
				LocalSecondaryIndexes: map[string]types.Capacity{
					"key0": {
						ReadCapacityUnits:  ptr.Float64(1.0),
						WriteCapacityUnits: ptr.Float64(1.0),
						CapacityUnits:      ptr.Float64(1.0),
					},
				},
				GlobalSecondaryIndexes: map[string]types.Capacity{
					"key0": {
						ReadCapacityUnits:  ptr.Float64(1.0),
						WriteCapacityUnits: ptr.Float64(1.0),
						CapacityUnits:      ptr.Float64(1.0),
					},
				},
			},
			{
				TableName:          ptr.String("__TableName__"),
				CapacityUnits:      ptr.Float64(1.0),
				ReadCapacityUnits:  ptr.Float64(1.0),
				WriteCapacityUnits: ptr.Float64(1.0),
				Table: &types.Capacity{
					ReadCapacityUnits:  ptr.Float64(1.0),
					WriteCapacityUnits: ptr.Float64(1.0),
					CapacityUnits:      ptr.Float64(1.0),
				},
				LocalSecondaryIndexes: map[string]types.Capacity{
					"key0": {
						ReadCapacityUnits:  ptr.Float64(1.0),
						WriteCapacityUnits: ptr.Float64(1.0),
						CapacityUnits:      ptr.Float64(1.0),
					},
				},
				GlobalSecondaryIndexes: map[string]types.Capacity{
					"key0": {
						ReadCapacityUnits:  ptr.Float64(1.0),
						WriteCapacityUnits: ptr.Float64(1.0),
						CapacityUnits:      ptr.Float64(1.0),
					},
				},
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("BatchWriteItem.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.BatchWriteItem(context.Background(), &BatchWriteItemInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "BatchWriteItem.response", err)
	}
}

func TestCheckResponseSnapshot_CreateBackup(t *testing.T) {
	want := &CreateBackupOutput{
		BackupDetails: &types.BackupDetails{
			BackupArn:              ptr.String("__BackupArn__"),
			BackupName:             ptr.String("__BackupName__"),
			BackupSizeBytes:        ptr.Int64(1),
			BackupStatus:           types.BackupStatus("CREATING"),
			BackupType:             types.BackupType("USER"),
			BackupCreationDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			BackupExpiryDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
		},
	}
	status, header, body, err := serdeRespReadSnapshot("CreateBackup.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.CreateBackup(context.Background(), &CreateBackupInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "CreateBackup.response", err)
	}
}

func TestCheckResponseSnapshot_CreateGlobalTable(t *testing.T) {
	want := &CreateGlobalTableOutput{
		GlobalTableDescription: &types.GlobalTableDescription{
			ReplicationGroup: []types.ReplicaDescription{
				{
					RegionName:                   ptr.String("__RegionName__"),
					ReplicaStatus:                types.ReplicaStatus("CREATING"),
					ReplicaArn:                   ptr.String("__ReplicaArn__"),
					ReplicaStatusDescription:     ptr.String("__ReplicaStatusDescription__"),
					ReplicaStatusPercentProgress: ptr.String("__ReplicaStatusPercentProgress__"),
					KMSMasterKeyId:               ptr.String("__KMSMasterKeyId__"),
					ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
						ReadCapacityUnits: ptr.Int64(1),
					},
					OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
						MaxReadRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.TableWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.TableStatus("CREATING"),
					},
					GlobalSecondaryIndexes: []types.ReplicaGlobalSecondaryIndexDescription{
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
					},
					ReplicaInaccessibleDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					ReplicaTableClassSummary: &types.TableClassSummary{
						TableClass:         types.TableClass("STANDARD"),
						LastUpdateDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					},
					GlobalTableSettingsReplicationMode: types.GlobalTableSettingsReplicationMode("ENABLED"),
				},
				{
					RegionName:                   ptr.String("__RegionName__"),
					ReplicaStatus:                types.ReplicaStatus("CREATING"),
					ReplicaArn:                   ptr.String("__ReplicaArn__"),
					ReplicaStatusDescription:     ptr.String("__ReplicaStatusDescription__"),
					ReplicaStatusPercentProgress: ptr.String("__ReplicaStatusPercentProgress__"),
					KMSMasterKeyId:               ptr.String("__KMSMasterKeyId__"),
					ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
						ReadCapacityUnits: ptr.Int64(1),
					},
					OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
						MaxReadRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.TableWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.TableStatus("CREATING"),
					},
					GlobalSecondaryIndexes: []types.ReplicaGlobalSecondaryIndexDescription{
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
					},
					ReplicaInaccessibleDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					ReplicaTableClassSummary: &types.TableClassSummary{
						TableClass:         types.TableClass("STANDARD"),
						LastUpdateDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					},
					GlobalTableSettingsReplicationMode: types.GlobalTableSettingsReplicationMode("ENABLED"),
				},
			},
			GlobalTableArn:    ptr.String("__GlobalTableArn__"),
			CreationDateTime:  ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			GlobalTableStatus: types.GlobalTableStatus("CREATING"),
			GlobalTableName:   ptr.String("__GlobalTableName__"),
		},
	}
	status, header, body, err := serdeRespReadSnapshot("CreateGlobalTable.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.CreateGlobalTable(context.Background(), &CreateGlobalTableInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "CreateGlobalTable.response", err)
	}
}

func TestCheckResponseSnapshot_CreateTable(t *testing.T) {
	want := &CreateTableOutput{
		TableDescription: &types.TableDescription{
			AttributeDefinitions: []types.AttributeDefinition{
				{
					AttributeName: ptr.String("__AttributeName__"),
					AttributeType: types.ScalarAttributeType("S"),
				},
				{
					AttributeName: ptr.String("__AttributeName__"),
					AttributeType: types.ScalarAttributeType("S"),
				},
			},
			TableName: ptr.String("__TableName__"),
			KeySchema: []types.KeySchemaElement{
				{
					AttributeName: ptr.String("__AttributeName__"),
					KeyType:       types.KeyType("HASH"),
				},
				{
					AttributeName: ptr.String("__AttributeName__"),
					KeyType:       types.KeyType("HASH"),
				},
			},
			TableStatus:      types.TableStatus("CREATING"),
			CreationDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			ProvisionedThroughput: &types.ProvisionedThroughputDescription{
				LastIncreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				LastDecreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				NumberOfDecreasesToday: ptr.Int64(1),
				ReadCapacityUnits:      ptr.Int64(1),
				WriteCapacityUnits:     ptr.Int64(1),
			},
			TableSizeBytes: ptr.Int64(1),
			ItemCount:      ptr.Int64(1),
			TableArn:       ptr.String("__TableArn__"),
			TableId:        ptr.String("__TableId__"),
			BillingModeSummary: &types.BillingModeSummary{
				BillingMode:                       types.BillingMode("PROVISIONED"),
				LastUpdateToPayPerRequestDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			},
			LocalSecondaryIndexes: []types.LocalSecondaryIndexDescription{
				{
					IndexName: ptr.String("__IndexName__"),
					KeySchema: []types.KeySchemaElement{
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
					},
					Projection: &types.Projection{
						ProjectionType: types.ProjectionType("ALL"),
						NonKeyAttributes: []string{
							"__Member__",
							"__Member__",
						},
					},
					IndexSizeBytes: ptr.Int64(1),
					ItemCount:      ptr.Int64(1),
					IndexArn:       ptr.String("__IndexArn__"),
				},
				{
					IndexName: ptr.String("__IndexName__"),
					KeySchema: []types.KeySchemaElement{
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
					},
					Projection: &types.Projection{
						ProjectionType: types.ProjectionType("ALL"),
						NonKeyAttributes: []string{
							"__Member__",
							"__Member__",
						},
					},
					IndexSizeBytes: ptr.Int64(1),
					ItemCount:      ptr.Int64(1),
					IndexArn:       ptr.String("__IndexArn__"),
				},
			},
			GlobalSecondaryIndexes: []types.GlobalSecondaryIndexDescription{
				{
					IndexName: ptr.String("__IndexName__"),
					KeySchema: []types.KeySchemaElement{
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
					},
					Projection: &types.Projection{
						ProjectionType: types.ProjectionType("ALL"),
						NonKeyAttributes: []string{
							"__Member__",
							"__Member__",
						},
					},
					IndexStatus: types.IndexStatus("CREATING"),
					Backfilling: ptr.Bool(true),
					ProvisionedThroughput: &types.ProvisionedThroughputDescription{
						LastIncreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
						LastDecreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
						NumberOfDecreasesToday: ptr.Int64(1),
						ReadCapacityUnits:      ptr.Int64(1),
						WriteCapacityUnits:     ptr.Int64(1),
					},
					IndexSizeBytes: ptr.Int64(1),
					ItemCount:      ptr.Int64(1),
					IndexArn:       ptr.String("__IndexArn__"),
					OnDemandThroughput: &types.OnDemandThroughput{
						MaxReadRequestUnits:  ptr.Int64(1),
						MaxWriteRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.IndexStatus("CREATING"),
					},
				},
				{
					IndexName: ptr.String("__IndexName__"),
					KeySchema: []types.KeySchemaElement{
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
					},
					Projection: &types.Projection{
						ProjectionType: types.ProjectionType("ALL"),
						NonKeyAttributes: []string{
							"__Member__",
							"__Member__",
						},
					},
					IndexStatus: types.IndexStatus("CREATING"),
					Backfilling: ptr.Bool(true),
					ProvisionedThroughput: &types.ProvisionedThroughputDescription{
						LastIncreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
						LastDecreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
						NumberOfDecreasesToday: ptr.Int64(1),
						ReadCapacityUnits:      ptr.Int64(1),
						WriteCapacityUnits:     ptr.Int64(1),
					},
					IndexSizeBytes: ptr.Int64(1),
					ItemCount:      ptr.Int64(1),
					IndexArn:       ptr.String("__IndexArn__"),
					OnDemandThroughput: &types.OnDemandThroughput{
						MaxReadRequestUnits:  ptr.Int64(1),
						MaxWriteRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.IndexStatus("CREATING"),
					},
				},
			},
			StreamSpecification: &types.StreamSpecification{
				StreamEnabled:  ptr.Bool(true),
				StreamViewType: types.StreamViewType("NEW_IMAGE"),
			},
			LatestStreamLabel:  ptr.String("__LatestStreamLabel__"),
			LatestStreamArn:    ptr.String("__LatestStreamArn__"),
			GlobalTableVersion: ptr.String("__GlobalTableVersion__"),
			Replicas: []types.ReplicaDescription{
				{
					RegionName:                   ptr.String("__RegionName__"),
					ReplicaStatus:                types.ReplicaStatus("CREATING"),
					ReplicaArn:                   ptr.String("__ReplicaArn__"),
					ReplicaStatusDescription:     ptr.String("__ReplicaStatusDescription__"),
					ReplicaStatusPercentProgress: ptr.String("__ReplicaStatusPercentProgress__"),
					KMSMasterKeyId:               ptr.String("__KMSMasterKeyId__"),
					ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
						ReadCapacityUnits: ptr.Int64(1),
					},
					OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
						MaxReadRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.TableWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.TableStatus("CREATING"),
					},
					GlobalSecondaryIndexes: []types.ReplicaGlobalSecondaryIndexDescription{
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
					},
					ReplicaInaccessibleDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					ReplicaTableClassSummary: &types.TableClassSummary{
						TableClass:         types.TableClass("STANDARD"),
						LastUpdateDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					},
					GlobalTableSettingsReplicationMode: types.GlobalTableSettingsReplicationMode("ENABLED"),
				},
				{
					RegionName:                   ptr.String("__RegionName__"),
					ReplicaStatus:                types.ReplicaStatus("CREATING"),
					ReplicaArn:                   ptr.String("__ReplicaArn__"),
					ReplicaStatusDescription:     ptr.String("__ReplicaStatusDescription__"),
					ReplicaStatusPercentProgress: ptr.String("__ReplicaStatusPercentProgress__"),
					KMSMasterKeyId:               ptr.String("__KMSMasterKeyId__"),
					ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
						ReadCapacityUnits: ptr.Int64(1),
					},
					OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
						MaxReadRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.TableWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.TableStatus("CREATING"),
					},
					GlobalSecondaryIndexes: []types.ReplicaGlobalSecondaryIndexDescription{
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
					},
					ReplicaInaccessibleDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					ReplicaTableClassSummary: &types.TableClassSummary{
						TableClass:         types.TableClass("STANDARD"),
						LastUpdateDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					},
					GlobalTableSettingsReplicationMode: types.GlobalTableSettingsReplicationMode("ENABLED"),
				},
			},
			GlobalTableWitnesses: []types.GlobalTableWitnessDescription{
				{
					RegionName:    ptr.String("__RegionName__"),
					WitnessStatus: types.WitnessStatus("CREATING"),
				},
				{
					RegionName:    ptr.String("__RegionName__"),
					WitnessStatus: types.WitnessStatus("CREATING"),
				},
			},
			GlobalTableSettingsReplicationMode: types.GlobalTableSettingsReplicationMode("ENABLED"),
			RestoreSummary: &types.RestoreSummary{
				SourceBackupArn:   ptr.String("__SourceBackupArn__"),
				SourceTableArn:    ptr.String("__SourceTableArn__"),
				RestoreDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				RestoreInProgress: ptr.Bool(true),
			},
			SSEDescription: &types.SSEDescription{
				Status:                         types.SSEStatus("ENABLING"),
				SSEType:                        types.SSEType("AES256"),
				KMSMasterKeyArn:                ptr.String("__KMSMasterKeyArn__"),
				InaccessibleEncryptionDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			},
			ArchivalSummary: &types.ArchivalSummary{
				ArchivalDateTime:  ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				ArchivalReason:    ptr.String("__ArchivalReason__"),
				ArchivalBackupArn: ptr.String("__ArchivalBackupArn__"),
			},
			TableClassSummary: &types.TableClassSummary{
				TableClass:         types.TableClass("STANDARD"),
				LastUpdateDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			},
			DeletionProtectionEnabled: ptr.Bool(true),
			OnDemandThroughput: &types.OnDemandThroughput{
				MaxReadRequestUnits:  ptr.Int64(1),
				MaxWriteRequestUnits: ptr.Int64(1),
			},
			WarmThroughput: &types.TableWarmThroughputDescription{
				ReadUnitsPerSecond:  ptr.Int64(1),
				WriteUnitsPerSecond: ptr.Int64(1),
				Status:              types.TableStatus("CREATING"),
			},
			MultiRegionConsistency: types.MultiRegionConsistency("EVENTUAL"),
		},
	}
	status, header, body, err := serdeRespReadSnapshot("CreateTable.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.CreateTable(context.Background(), &CreateTableInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "CreateTable.response", err)
	}
}

func TestCheckResponseSnapshot_DeleteBackup(t *testing.T) {
	want := &DeleteBackupOutput{
		BackupDescription: &types.BackupDescription{
			BackupDetails: &types.BackupDetails{
				BackupArn:              ptr.String("__BackupArn__"),
				BackupName:             ptr.String("__BackupName__"),
				BackupSizeBytes:        ptr.Int64(1),
				BackupStatus:           types.BackupStatus("CREATING"),
				BackupType:             types.BackupType("USER"),
				BackupCreationDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				BackupExpiryDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			},
			SourceTableDetails: &types.SourceTableDetails{
				TableName:      ptr.String("__TableName__"),
				TableId:        ptr.String("__TableId__"),
				TableArn:       ptr.String("__TableArn__"),
				TableSizeBytes: ptr.Int64(1),
				KeySchema: []types.KeySchemaElement{
					{
						AttributeName: ptr.String("__AttributeName__"),
						KeyType:       types.KeyType("HASH"),
					},
					{
						AttributeName: ptr.String("__AttributeName__"),
						KeyType:       types.KeyType("HASH"),
					},
				},
				TableCreationDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				ProvisionedThroughput: &types.ProvisionedThroughput{
					ReadCapacityUnits:  ptr.Int64(1),
					WriteCapacityUnits: ptr.Int64(1),
				},
				OnDemandThroughput: &types.OnDemandThroughput{
					MaxReadRequestUnits:  ptr.Int64(1),
					MaxWriteRequestUnits: ptr.Int64(1),
				},
				ItemCount:   ptr.Int64(1),
				BillingMode: types.BillingMode("PROVISIONED"),
			},
			SourceTableFeatureDetails: &types.SourceTableFeatureDetails{
				LocalSecondaryIndexes: []types.LocalSecondaryIndexInfo{
					{
						IndexName: ptr.String("__IndexName__"),
						KeySchema: []types.KeySchemaElement{
							{
								AttributeName: ptr.String("__AttributeName__"),
								KeyType:       types.KeyType("HASH"),
							},
							{
								AttributeName: ptr.String("__AttributeName__"),
								KeyType:       types.KeyType("HASH"),
							},
						},
						Projection: &types.Projection{
							ProjectionType: types.ProjectionType("ALL"),
							NonKeyAttributes: []string{
								"__Member__",
								"__Member__",
							},
						},
					},
					{
						IndexName: ptr.String("__IndexName__"),
						KeySchema: []types.KeySchemaElement{
							{
								AttributeName: ptr.String("__AttributeName__"),
								KeyType:       types.KeyType("HASH"),
							},
							{
								AttributeName: ptr.String("__AttributeName__"),
								KeyType:       types.KeyType("HASH"),
							},
						},
						Projection: &types.Projection{
							ProjectionType: types.ProjectionType("ALL"),
							NonKeyAttributes: []string{
								"__Member__",
								"__Member__",
							},
						},
					},
				},
				GlobalSecondaryIndexes: []types.GlobalSecondaryIndexInfo{
					{
						IndexName: ptr.String("__IndexName__"),
						KeySchema: []types.KeySchemaElement{
							{
								AttributeName: ptr.String("__AttributeName__"),
								KeyType:       types.KeyType("HASH"),
							},
							{
								AttributeName: ptr.String("__AttributeName__"),
								KeyType:       types.KeyType("HASH"),
							},
						},
						Projection: &types.Projection{
							ProjectionType: types.ProjectionType("ALL"),
							NonKeyAttributes: []string{
								"__Member__",
								"__Member__",
							},
						},
						ProvisionedThroughput: &types.ProvisionedThroughput{
							ReadCapacityUnits:  ptr.Int64(1),
							WriteCapacityUnits: ptr.Int64(1),
						},
						OnDemandThroughput: &types.OnDemandThroughput{
							MaxReadRequestUnits:  ptr.Int64(1),
							MaxWriteRequestUnits: ptr.Int64(1),
						},
					},
					{
						IndexName: ptr.String("__IndexName__"),
						KeySchema: []types.KeySchemaElement{
							{
								AttributeName: ptr.String("__AttributeName__"),
								KeyType:       types.KeyType("HASH"),
							},
							{
								AttributeName: ptr.String("__AttributeName__"),
								KeyType:       types.KeyType("HASH"),
							},
						},
						Projection: &types.Projection{
							ProjectionType: types.ProjectionType("ALL"),
							NonKeyAttributes: []string{
								"__Member__",
								"__Member__",
							},
						},
						ProvisionedThroughput: &types.ProvisionedThroughput{
							ReadCapacityUnits:  ptr.Int64(1),
							WriteCapacityUnits: ptr.Int64(1),
						},
						OnDemandThroughput: &types.OnDemandThroughput{
							MaxReadRequestUnits:  ptr.Int64(1),
							MaxWriteRequestUnits: ptr.Int64(1),
						},
					},
				},
				StreamDescription: &types.StreamSpecification{
					StreamEnabled:  ptr.Bool(true),
					StreamViewType: types.StreamViewType("NEW_IMAGE"),
				},
				TimeToLiveDescription: &types.TimeToLiveDescription{
					TimeToLiveStatus: types.TimeToLiveStatus("ENABLING"),
					AttributeName:    ptr.String("__AttributeName__"),
				},
				SSEDescription: &types.SSEDescription{
					Status:                         types.SSEStatus("ENABLING"),
					SSEType:                        types.SSEType("AES256"),
					KMSMasterKeyArn:                ptr.String("__KMSMasterKeyArn__"),
					InaccessibleEncryptionDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				},
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("DeleteBackup.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.DeleteBackup(context.Background(), &DeleteBackupInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "DeleteBackup.response", err)
	}
}

func TestCheckResponseSnapshot_DeleteItem(t *testing.T) {
	want := &DeleteItemOutput{
		Attributes: map[string]types.AttributeValue{
			"key0": &types.AttributeValueMemberS{
				Value: "__AttributeValueMemberS__",
			},
		},
		ConsumedCapacity: &types.ConsumedCapacity{
			TableName:          ptr.String("__TableName__"),
			CapacityUnits:      ptr.Float64(1.0),
			ReadCapacityUnits:  ptr.Float64(1.0),
			WriteCapacityUnits: ptr.Float64(1.0),
			Table: &types.Capacity{
				ReadCapacityUnits:  ptr.Float64(1.0),
				WriteCapacityUnits: ptr.Float64(1.0),
				CapacityUnits:      ptr.Float64(1.0),
			},
			LocalSecondaryIndexes: map[string]types.Capacity{
				"key0": {
					ReadCapacityUnits:  ptr.Float64(1.0),
					WriteCapacityUnits: ptr.Float64(1.0),
					CapacityUnits:      ptr.Float64(1.0),
				},
			},
			GlobalSecondaryIndexes: map[string]types.Capacity{
				"key0": {
					ReadCapacityUnits:  ptr.Float64(1.0),
					WriteCapacityUnits: ptr.Float64(1.0),
					CapacityUnits:      ptr.Float64(1.0),
				},
			},
		},
		ItemCollectionMetrics: &types.ItemCollectionMetrics{
			ItemCollectionKey: map[string]types.AttributeValue{
				"key0": &types.AttributeValueMemberS{
					Value: "__AttributeValueMemberS__",
				},
			},
			SizeEstimateRangeGB: []float64{
				1.0,
				1.0,
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("DeleteItem.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.DeleteItem(context.Background(), &DeleteItemInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "DeleteItem.response", err)
	}
}

func TestCheckResponseSnapshot_DeleteResourcePolicy(t *testing.T) {
	want := &DeleteResourcePolicyOutput{
		RevisionId: ptr.String("__RevisionId__"),
	}
	status, header, body, err := serdeRespReadSnapshot("DeleteResourcePolicy.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.DeleteResourcePolicy(context.Background(), &DeleteResourcePolicyInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "DeleteResourcePolicy.response", err)
	}
}

func TestCheckResponseSnapshot_DeleteTable(t *testing.T) {
	want := &DeleteTableOutput{
		TableDescription: &types.TableDescription{
			AttributeDefinitions: []types.AttributeDefinition{
				{
					AttributeName: ptr.String("__AttributeName__"),
					AttributeType: types.ScalarAttributeType("S"),
				},
				{
					AttributeName: ptr.String("__AttributeName__"),
					AttributeType: types.ScalarAttributeType("S"),
				},
			},
			TableName: ptr.String("__TableName__"),
			KeySchema: []types.KeySchemaElement{
				{
					AttributeName: ptr.String("__AttributeName__"),
					KeyType:       types.KeyType("HASH"),
				},
				{
					AttributeName: ptr.String("__AttributeName__"),
					KeyType:       types.KeyType("HASH"),
				},
			},
			TableStatus:      types.TableStatus("CREATING"),
			CreationDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			ProvisionedThroughput: &types.ProvisionedThroughputDescription{
				LastIncreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				LastDecreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				NumberOfDecreasesToday: ptr.Int64(1),
				ReadCapacityUnits:      ptr.Int64(1),
				WriteCapacityUnits:     ptr.Int64(1),
			},
			TableSizeBytes: ptr.Int64(1),
			ItemCount:      ptr.Int64(1),
			TableArn:       ptr.String("__TableArn__"),
			TableId:        ptr.String("__TableId__"),
			BillingModeSummary: &types.BillingModeSummary{
				BillingMode:                       types.BillingMode("PROVISIONED"),
				LastUpdateToPayPerRequestDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			},
			LocalSecondaryIndexes: []types.LocalSecondaryIndexDescription{
				{
					IndexName: ptr.String("__IndexName__"),
					KeySchema: []types.KeySchemaElement{
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
					},
					Projection: &types.Projection{
						ProjectionType: types.ProjectionType("ALL"),
						NonKeyAttributes: []string{
							"__Member__",
							"__Member__",
						},
					},
					IndexSizeBytes: ptr.Int64(1),
					ItemCount:      ptr.Int64(1),
					IndexArn:       ptr.String("__IndexArn__"),
				},
				{
					IndexName: ptr.String("__IndexName__"),
					KeySchema: []types.KeySchemaElement{
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
					},
					Projection: &types.Projection{
						ProjectionType: types.ProjectionType("ALL"),
						NonKeyAttributes: []string{
							"__Member__",
							"__Member__",
						},
					},
					IndexSizeBytes: ptr.Int64(1),
					ItemCount:      ptr.Int64(1),
					IndexArn:       ptr.String("__IndexArn__"),
				},
			},
			GlobalSecondaryIndexes: []types.GlobalSecondaryIndexDescription{
				{
					IndexName: ptr.String("__IndexName__"),
					KeySchema: []types.KeySchemaElement{
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
					},
					Projection: &types.Projection{
						ProjectionType: types.ProjectionType("ALL"),
						NonKeyAttributes: []string{
							"__Member__",
							"__Member__",
						},
					},
					IndexStatus: types.IndexStatus("CREATING"),
					Backfilling: ptr.Bool(true),
					ProvisionedThroughput: &types.ProvisionedThroughputDescription{
						LastIncreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
						LastDecreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
						NumberOfDecreasesToday: ptr.Int64(1),
						ReadCapacityUnits:      ptr.Int64(1),
						WriteCapacityUnits:     ptr.Int64(1),
					},
					IndexSizeBytes: ptr.Int64(1),
					ItemCount:      ptr.Int64(1),
					IndexArn:       ptr.String("__IndexArn__"),
					OnDemandThroughput: &types.OnDemandThroughput{
						MaxReadRequestUnits:  ptr.Int64(1),
						MaxWriteRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.IndexStatus("CREATING"),
					},
				},
				{
					IndexName: ptr.String("__IndexName__"),
					KeySchema: []types.KeySchemaElement{
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
					},
					Projection: &types.Projection{
						ProjectionType: types.ProjectionType("ALL"),
						NonKeyAttributes: []string{
							"__Member__",
							"__Member__",
						},
					},
					IndexStatus: types.IndexStatus("CREATING"),
					Backfilling: ptr.Bool(true),
					ProvisionedThroughput: &types.ProvisionedThroughputDescription{
						LastIncreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
						LastDecreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
						NumberOfDecreasesToday: ptr.Int64(1),
						ReadCapacityUnits:      ptr.Int64(1),
						WriteCapacityUnits:     ptr.Int64(1),
					},
					IndexSizeBytes: ptr.Int64(1),
					ItemCount:      ptr.Int64(1),
					IndexArn:       ptr.String("__IndexArn__"),
					OnDemandThroughput: &types.OnDemandThroughput{
						MaxReadRequestUnits:  ptr.Int64(1),
						MaxWriteRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.IndexStatus("CREATING"),
					},
				},
			},
			StreamSpecification: &types.StreamSpecification{
				StreamEnabled:  ptr.Bool(true),
				StreamViewType: types.StreamViewType("NEW_IMAGE"),
			},
			LatestStreamLabel:  ptr.String("__LatestStreamLabel__"),
			LatestStreamArn:    ptr.String("__LatestStreamArn__"),
			GlobalTableVersion: ptr.String("__GlobalTableVersion__"),
			Replicas: []types.ReplicaDescription{
				{
					RegionName:                   ptr.String("__RegionName__"),
					ReplicaStatus:                types.ReplicaStatus("CREATING"),
					ReplicaArn:                   ptr.String("__ReplicaArn__"),
					ReplicaStatusDescription:     ptr.String("__ReplicaStatusDescription__"),
					ReplicaStatusPercentProgress: ptr.String("__ReplicaStatusPercentProgress__"),
					KMSMasterKeyId:               ptr.String("__KMSMasterKeyId__"),
					ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
						ReadCapacityUnits: ptr.Int64(1),
					},
					OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
						MaxReadRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.TableWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.TableStatus("CREATING"),
					},
					GlobalSecondaryIndexes: []types.ReplicaGlobalSecondaryIndexDescription{
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
					},
					ReplicaInaccessibleDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					ReplicaTableClassSummary: &types.TableClassSummary{
						TableClass:         types.TableClass("STANDARD"),
						LastUpdateDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					},
					GlobalTableSettingsReplicationMode: types.GlobalTableSettingsReplicationMode("ENABLED"),
				},
				{
					RegionName:                   ptr.String("__RegionName__"),
					ReplicaStatus:                types.ReplicaStatus("CREATING"),
					ReplicaArn:                   ptr.String("__ReplicaArn__"),
					ReplicaStatusDescription:     ptr.String("__ReplicaStatusDescription__"),
					ReplicaStatusPercentProgress: ptr.String("__ReplicaStatusPercentProgress__"),
					KMSMasterKeyId:               ptr.String("__KMSMasterKeyId__"),
					ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
						ReadCapacityUnits: ptr.Int64(1),
					},
					OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
						MaxReadRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.TableWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.TableStatus("CREATING"),
					},
					GlobalSecondaryIndexes: []types.ReplicaGlobalSecondaryIndexDescription{
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
					},
					ReplicaInaccessibleDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					ReplicaTableClassSummary: &types.TableClassSummary{
						TableClass:         types.TableClass("STANDARD"),
						LastUpdateDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					},
					GlobalTableSettingsReplicationMode: types.GlobalTableSettingsReplicationMode("ENABLED"),
				},
			},
			GlobalTableWitnesses: []types.GlobalTableWitnessDescription{
				{
					RegionName:    ptr.String("__RegionName__"),
					WitnessStatus: types.WitnessStatus("CREATING"),
				},
				{
					RegionName:    ptr.String("__RegionName__"),
					WitnessStatus: types.WitnessStatus("CREATING"),
				},
			},
			GlobalTableSettingsReplicationMode: types.GlobalTableSettingsReplicationMode("ENABLED"),
			RestoreSummary: &types.RestoreSummary{
				SourceBackupArn:   ptr.String("__SourceBackupArn__"),
				SourceTableArn:    ptr.String("__SourceTableArn__"),
				RestoreDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				RestoreInProgress: ptr.Bool(true),
			},
			SSEDescription: &types.SSEDescription{
				Status:                         types.SSEStatus("ENABLING"),
				SSEType:                        types.SSEType("AES256"),
				KMSMasterKeyArn:                ptr.String("__KMSMasterKeyArn__"),
				InaccessibleEncryptionDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			},
			ArchivalSummary: &types.ArchivalSummary{
				ArchivalDateTime:  ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				ArchivalReason:    ptr.String("__ArchivalReason__"),
				ArchivalBackupArn: ptr.String("__ArchivalBackupArn__"),
			},
			TableClassSummary: &types.TableClassSummary{
				TableClass:         types.TableClass("STANDARD"),
				LastUpdateDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			},
			DeletionProtectionEnabled: ptr.Bool(true),
			OnDemandThroughput: &types.OnDemandThroughput{
				MaxReadRequestUnits:  ptr.Int64(1),
				MaxWriteRequestUnits: ptr.Int64(1),
			},
			WarmThroughput: &types.TableWarmThroughputDescription{
				ReadUnitsPerSecond:  ptr.Int64(1),
				WriteUnitsPerSecond: ptr.Int64(1),
				Status:              types.TableStatus("CREATING"),
			},
			MultiRegionConsistency: types.MultiRegionConsistency("EVENTUAL"),
		},
	}
	status, header, body, err := serdeRespReadSnapshot("DeleteTable.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.DeleteTable(context.Background(), &DeleteTableInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "DeleteTable.response", err)
	}
}

func TestCheckResponseSnapshot_DescribeBackup(t *testing.T) {
	want := &DescribeBackupOutput{
		BackupDescription: &types.BackupDescription{
			BackupDetails: &types.BackupDetails{
				BackupArn:              ptr.String("__BackupArn__"),
				BackupName:             ptr.String("__BackupName__"),
				BackupSizeBytes:        ptr.Int64(1),
				BackupStatus:           types.BackupStatus("CREATING"),
				BackupType:             types.BackupType("USER"),
				BackupCreationDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				BackupExpiryDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			},
			SourceTableDetails: &types.SourceTableDetails{
				TableName:      ptr.String("__TableName__"),
				TableId:        ptr.String("__TableId__"),
				TableArn:       ptr.String("__TableArn__"),
				TableSizeBytes: ptr.Int64(1),
				KeySchema: []types.KeySchemaElement{
					{
						AttributeName: ptr.String("__AttributeName__"),
						KeyType:       types.KeyType("HASH"),
					},
					{
						AttributeName: ptr.String("__AttributeName__"),
						KeyType:       types.KeyType("HASH"),
					},
				},
				TableCreationDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				ProvisionedThroughput: &types.ProvisionedThroughput{
					ReadCapacityUnits:  ptr.Int64(1),
					WriteCapacityUnits: ptr.Int64(1),
				},
				OnDemandThroughput: &types.OnDemandThroughput{
					MaxReadRequestUnits:  ptr.Int64(1),
					MaxWriteRequestUnits: ptr.Int64(1),
				},
				ItemCount:   ptr.Int64(1),
				BillingMode: types.BillingMode("PROVISIONED"),
			},
			SourceTableFeatureDetails: &types.SourceTableFeatureDetails{
				LocalSecondaryIndexes: []types.LocalSecondaryIndexInfo{
					{
						IndexName: ptr.String("__IndexName__"),
						KeySchema: []types.KeySchemaElement{
							{
								AttributeName: ptr.String("__AttributeName__"),
								KeyType:       types.KeyType("HASH"),
							},
							{
								AttributeName: ptr.String("__AttributeName__"),
								KeyType:       types.KeyType("HASH"),
							},
						},
						Projection: &types.Projection{
							ProjectionType: types.ProjectionType("ALL"),
							NonKeyAttributes: []string{
								"__Member__",
								"__Member__",
							},
						},
					},
					{
						IndexName: ptr.String("__IndexName__"),
						KeySchema: []types.KeySchemaElement{
							{
								AttributeName: ptr.String("__AttributeName__"),
								KeyType:       types.KeyType("HASH"),
							},
							{
								AttributeName: ptr.String("__AttributeName__"),
								KeyType:       types.KeyType("HASH"),
							},
						},
						Projection: &types.Projection{
							ProjectionType: types.ProjectionType("ALL"),
							NonKeyAttributes: []string{
								"__Member__",
								"__Member__",
							},
						},
					},
				},
				GlobalSecondaryIndexes: []types.GlobalSecondaryIndexInfo{
					{
						IndexName: ptr.String("__IndexName__"),
						KeySchema: []types.KeySchemaElement{
							{
								AttributeName: ptr.String("__AttributeName__"),
								KeyType:       types.KeyType("HASH"),
							},
							{
								AttributeName: ptr.String("__AttributeName__"),
								KeyType:       types.KeyType("HASH"),
							},
						},
						Projection: &types.Projection{
							ProjectionType: types.ProjectionType("ALL"),
							NonKeyAttributes: []string{
								"__Member__",
								"__Member__",
							},
						},
						ProvisionedThroughput: &types.ProvisionedThroughput{
							ReadCapacityUnits:  ptr.Int64(1),
							WriteCapacityUnits: ptr.Int64(1),
						},
						OnDemandThroughput: &types.OnDemandThroughput{
							MaxReadRequestUnits:  ptr.Int64(1),
							MaxWriteRequestUnits: ptr.Int64(1),
						},
					},
					{
						IndexName: ptr.String("__IndexName__"),
						KeySchema: []types.KeySchemaElement{
							{
								AttributeName: ptr.String("__AttributeName__"),
								KeyType:       types.KeyType("HASH"),
							},
							{
								AttributeName: ptr.String("__AttributeName__"),
								KeyType:       types.KeyType("HASH"),
							},
						},
						Projection: &types.Projection{
							ProjectionType: types.ProjectionType("ALL"),
							NonKeyAttributes: []string{
								"__Member__",
								"__Member__",
							},
						},
						ProvisionedThroughput: &types.ProvisionedThroughput{
							ReadCapacityUnits:  ptr.Int64(1),
							WriteCapacityUnits: ptr.Int64(1),
						},
						OnDemandThroughput: &types.OnDemandThroughput{
							MaxReadRequestUnits:  ptr.Int64(1),
							MaxWriteRequestUnits: ptr.Int64(1),
						},
					},
				},
				StreamDescription: &types.StreamSpecification{
					StreamEnabled:  ptr.Bool(true),
					StreamViewType: types.StreamViewType("NEW_IMAGE"),
				},
				TimeToLiveDescription: &types.TimeToLiveDescription{
					TimeToLiveStatus: types.TimeToLiveStatus("ENABLING"),
					AttributeName:    ptr.String("__AttributeName__"),
				},
				SSEDescription: &types.SSEDescription{
					Status:                         types.SSEStatus("ENABLING"),
					SSEType:                        types.SSEType("AES256"),
					KMSMasterKeyArn:                ptr.String("__KMSMasterKeyArn__"),
					InaccessibleEncryptionDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				},
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("DescribeBackup.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.DescribeBackup(context.Background(), &DescribeBackupInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "DescribeBackup.response", err)
	}
}

func TestCheckResponseSnapshot_DescribeContinuousBackups(t *testing.T) {
	want := &DescribeContinuousBackupsOutput{
		ContinuousBackupsDescription: &types.ContinuousBackupsDescription{
			ContinuousBackupsStatus: types.ContinuousBackupsStatus("ENABLED"),
			PointInTimeRecoveryDescription: &types.PointInTimeRecoveryDescription{
				PointInTimeRecoveryStatus:  types.PointInTimeRecoveryStatus("ENABLED"),
				RecoveryPeriodInDays:       ptr.Int32(1),
				EarliestRestorableDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				LatestRestorableDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("DescribeContinuousBackups.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.DescribeContinuousBackups(context.Background(), &DescribeContinuousBackupsInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "DescribeContinuousBackups.response", err)
	}
}

func TestCheckResponseSnapshot_DescribeContributorInsights(t *testing.T) {
	want := &DescribeContributorInsightsOutput{
		TableName: ptr.String("__TableName__"),
		IndexName: ptr.String("__IndexName__"),
		ContributorInsightsRuleList: []string{
			"__Member__",
			"__Member__",
		},
		ContributorInsightsStatus: types.ContributorInsightsStatus("ENABLING"),
		LastUpdateDateTime:        ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
		FailureException: &types.FailureException{
			ExceptionName:        ptr.String("__ExceptionName__"),
			ExceptionDescription: ptr.String("__ExceptionDescription__"),
		},
		ContributorInsightsMode: types.ContributorInsightsMode("ACCESSED_AND_THROTTLED_KEYS"),
	}
	status, header, body, err := serdeRespReadSnapshot("DescribeContributorInsights.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.DescribeContributorInsights(context.Background(), &DescribeContributorInsightsInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "DescribeContributorInsights.response", err)
	}
}

func TestCheckResponseSnapshot_DescribeEndpoints(t *testing.T) {
	want := &DescribeEndpointsOutput{
		Endpoints: []types.Endpoint{
			{
				Address:              ptr.String("__Address__"),
				CachePeriodInMinutes: 1,
			},
			{
				Address:              ptr.String("__Address__"),
				CachePeriodInMinutes: 1,
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("DescribeEndpoints.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.DescribeEndpoints(context.Background(), &DescribeEndpointsInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "DescribeEndpoints.response", err)
	}
}

func TestCheckResponseSnapshot_DescribeExport(t *testing.T) {
	want := &DescribeExportOutput{
		ExportDescription: &types.ExportDescription{
			ExportArn:       ptr.String("__ExportArn__"),
			ExportStatus:    types.ExportStatus("IN_PROGRESS"),
			StartTime:       ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			EndTime:         ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			ExportManifest:  ptr.String("__ExportManifest__"),
			TableArn:        ptr.String("__TableArn__"),
			TableId:         ptr.String("__TableId__"),
			ExportTime:      ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			ClientToken:     ptr.String("__ClientToken__"),
			S3Bucket:        ptr.String("__S3Bucket__"),
			S3BucketOwner:   ptr.String("__S3BucketOwner__"),
			S3Prefix:        ptr.String("__S3Prefix__"),
			S3SseAlgorithm:  types.S3SseAlgorithm("AES256"),
			S3SseKmsKeyId:   ptr.String("__S3SseKmsKeyId__"),
			FailureCode:     ptr.String("__FailureCode__"),
			FailureMessage:  ptr.String("__FailureMessage__"),
			ExportFormat:    types.ExportFormat("DYNAMODB_JSON"),
			BilledSizeBytes: ptr.Int64(1),
			ItemCount:       ptr.Int64(1),
			ExportType:      types.ExportType("FULL_EXPORT"),
			IncrementalExportSpecification: &types.IncrementalExportSpecification{
				ExportFromTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				ExportToTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				ExportViewType: types.ExportViewType("NEW_IMAGE"),
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("DescribeExport.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.DescribeExport(context.Background(), &DescribeExportInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "DescribeExport.response", err)
	}
}

func TestCheckResponseSnapshot_DescribeGlobalTable(t *testing.T) {
	want := &DescribeGlobalTableOutput{
		GlobalTableDescription: &types.GlobalTableDescription{
			ReplicationGroup: []types.ReplicaDescription{
				{
					RegionName:                   ptr.String("__RegionName__"),
					ReplicaStatus:                types.ReplicaStatus("CREATING"),
					ReplicaArn:                   ptr.String("__ReplicaArn__"),
					ReplicaStatusDescription:     ptr.String("__ReplicaStatusDescription__"),
					ReplicaStatusPercentProgress: ptr.String("__ReplicaStatusPercentProgress__"),
					KMSMasterKeyId:               ptr.String("__KMSMasterKeyId__"),
					ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
						ReadCapacityUnits: ptr.Int64(1),
					},
					OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
						MaxReadRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.TableWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.TableStatus("CREATING"),
					},
					GlobalSecondaryIndexes: []types.ReplicaGlobalSecondaryIndexDescription{
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
					},
					ReplicaInaccessibleDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					ReplicaTableClassSummary: &types.TableClassSummary{
						TableClass:         types.TableClass("STANDARD"),
						LastUpdateDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					},
					GlobalTableSettingsReplicationMode: types.GlobalTableSettingsReplicationMode("ENABLED"),
				},
				{
					RegionName:                   ptr.String("__RegionName__"),
					ReplicaStatus:                types.ReplicaStatus("CREATING"),
					ReplicaArn:                   ptr.String("__ReplicaArn__"),
					ReplicaStatusDescription:     ptr.String("__ReplicaStatusDescription__"),
					ReplicaStatusPercentProgress: ptr.String("__ReplicaStatusPercentProgress__"),
					KMSMasterKeyId:               ptr.String("__KMSMasterKeyId__"),
					ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
						ReadCapacityUnits: ptr.Int64(1),
					},
					OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
						MaxReadRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.TableWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.TableStatus("CREATING"),
					},
					GlobalSecondaryIndexes: []types.ReplicaGlobalSecondaryIndexDescription{
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
					},
					ReplicaInaccessibleDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					ReplicaTableClassSummary: &types.TableClassSummary{
						TableClass:         types.TableClass("STANDARD"),
						LastUpdateDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					},
					GlobalTableSettingsReplicationMode: types.GlobalTableSettingsReplicationMode("ENABLED"),
				},
			},
			GlobalTableArn:    ptr.String("__GlobalTableArn__"),
			CreationDateTime:  ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			GlobalTableStatus: types.GlobalTableStatus("CREATING"),
			GlobalTableName:   ptr.String("__GlobalTableName__"),
		},
	}
	status, header, body, err := serdeRespReadSnapshot("DescribeGlobalTable.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.DescribeGlobalTable(context.Background(), &DescribeGlobalTableInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "DescribeGlobalTable.response", err)
	}
}

func TestCheckResponseSnapshot_DescribeGlobalTableSettings(t *testing.T) {
	want := &DescribeGlobalTableSettingsOutput{
		GlobalTableName: ptr.String("__GlobalTableName__"),
		ReplicaSettings: []types.ReplicaSettingsDescription{
			{
				RegionName:    ptr.String("__RegionName__"),
				ReplicaStatus: types.ReplicaStatus("CREATING"),
				ReplicaBillingModeSummary: &types.BillingModeSummary{
					BillingMode:                       types.BillingMode("PROVISIONED"),
					LastUpdateToPayPerRequestDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				},
				ReplicaProvisionedReadCapacityUnits: ptr.Int64(1),
				ReplicaProvisionedReadCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
					MinimumUnits:        ptr.Int64(1),
					MaximumUnits:        ptr.Int64(1),
					AutoScalingDisabled: ptr.Bool(true),
					AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
					ScalingPolicies: []types.AutoScalingPolicyDescription{
						{
							PolicyName: ptr.String("__PolicyName__"),
							TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
								DisableScaleIn:   ptr.Bool(true),
								ScaleInCooldown:  ptr.Int32(1),
								ScaleOutCooldown: ptr.Int32(1),
								TargetValue:      ptr.Float64(1.0),
							},
						},
						{
							PolicyName: ptr.String("__PolicyName__"),
							TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
								DisableScaleIn:   ptr.Bool(true),
								ScaleInCooldown:  ptr.Int32(1),
								ScaleOutCooldown: ptr.Int32(1),
								TargetValue:      ptr.Float64(1.0),
							},
						},
					},
				},
				ReplicaProvisionedWriteCapacityUnits: ptr.Int64(1),
				ReplicaProvisionedWriteCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
					MinimumUnits:        ptr.Int64(1),
					MaximumUnits:        ptr.Int64(1),
					AutoScalingDisabled: ptr.Bool(true),
					AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
					ScalingPolicies: []types.AutoScalingPolicyDescription{
						{
							PolicyName: ptr.String("__PolicyName__"),
							TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
								DisableScaleIn:   ptr.Bool(true),
								ScaleInCooldown:  ptr.Int32(1),
								ScaleOutCooldown: ptr.Int32(1),
								TargetValue:      ptr.Float64(1.0),
							},
						},
						{
							PolicyName: ptr.String("__PolicyName__"),
							TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
								DisableScaleIn:   ptr.Bool(true),
								ScaleInCooldown:  ptr.Int32(1),
								ScaleOutCooldown: ptr.Int32(1),
								TargetValue:      ptr.Float64(1.0),
							},
						},
					},
				},
				ReplicaGlobalSecondaryIndexSettings: []types.ReplicaGlobalSecondaryIndexSettingsDescription{
					{
						IndexName:                    ptr.String("__IndexName__"),
						IndexStatus:                  types.IndexStatus("CREATING"),
						ProvisionedReadCapacityUnits: ptr.Int64(1),
						ProvisionedReadCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
							MinimumUnits:        ptr.Int64(1),
							MaximumUnits:        ptr.Int64(1),
							AutoScalingDisabled: ptr.Bool(true),
							AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
							ScalingPolicies: []types.AutoScalingPolicyDescription{
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
							},
						},
						ProvisionedWriteCapacityUnits: ptr.Int64(1),
						ProvisionedWriteCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
							MinimumUnits:        ptr.Int64(1),
							MaximumUnits:        ptr.Int64(1),
							AutoScalingDisabled: ptr.Bool(true),
							AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
							ScalingPolicies: []types.AutoScalingPolicyDescription{
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
							},
						},
					},
					{
						IndexName:                    ptr.String("__IndexName__"),
						IndexStatus:                  types.IndexStatus("CREATING"),
						ProvisionedReadCapacityUnits: ptr.Int64(1),
						ProvisionedReadCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
							MinimumUnits:        ptr.Int64(1),
							MaximumUnits:        ptr.Int64(1),
							AutoScalingDisabled: ptr.Bool(true),
							AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
							ScalingPolicies: []types.AutoScalingPolicyDescription{
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
							},
						},
						ProvisionedWriteCapacityUnits: ptr.Int64(1),
						ProvisionedWriteCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
							MinimumUnits:        ptr.Int64(1),
							MaximumUnits:        ptr.Int64(1),
							AutoScalingDisabled: ptr.Bool(true),
							AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
							ScalingPolicies: []types.AutoScalingPolicyDescription{
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
							},
						},
					},
				},
				ReplicaTableClassSummary: &types.TableClassSummary{
					TableClass:         types.TableClass("STANDARD"),
					LastUpdateDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				},
			},
			{
				RegionName:    ptr.String("__RegionName__"),
				ReplicaStatus: types.ReplicaStatus("CREATING"),
				ReplicaBillingModeSummary: &types.BillingModeSummary{
					BillingMode:                       types.BillingMode("PROVISIONED"),
					LastUpdateToPayPerRequestDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				},
				ReplicaProvisionedReadCapacityUnits: ptr.Int64(1),
				ReplicaProvisionedReadCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
					MinimumUnits:        ptr.Int64(1),
					MaximumUnits:        ptr.Int64(1),
					AutoScalingDisabled: ptr.Bool(true),
					AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
					ScalingPolicies: []types.AutoScalingPolicyDescription{
						{
							PolicyName: ptr.String("__PolicyName__"),
							TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
								DisableScaleIn:   ptr.Bool(true),
								ScaleInCooldown:  ptr.Int32(1),
								ScaleOutCooldown: ptr.Int32(1),
								TargetValue:      ptr.Float64(1.0),
							},
						},
						{
							PolicyName: ptr.String("__PolicyName__"),
							TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
								DisableScaleIn:   ptr.Bool(true),
								ScaleInCooldown:  ptr.Int32(1),
								ScaleOutCooldown: ptr.Int32(1),
								TargetValue:      ptr.Float64(1.0),
							},
						},
					},
				},
				ReplicaProvisionedWriteCapacityUnits: ptr.Int64(1),
				ReplicaProvisionedWriteCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
					MinimumUnits:        ptr.Int64(1),
					MaximumUnits:        ptr.Int64(1),
					AutoScalingDisabled: ptr.Bool(true),
					AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
					ScalingPolicies: []types.AutoScalingPolicyDescription{
						{
							PolicyName: ptr.String("__PolicyName__"),
							TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
								DisableScaleIn:   ptr.Bool(true),
								ScaleInCooldown:  ptr.Int32(1),
								ScaleOutCooldown: ptr.Int32(1),
								TargetValue:      ptr.Float64(1.0),
							},
						},
						{
							PolicyName: ptr.String("__PolicyName__"),
							TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
								DisableScaleIn:   ptr.Bool(true),
								ScaleInCooldown:  ptr.Int32(1),
								ScaleOutCooldown: ptr.Int32(1),
								TargetValue:      ptr.Float64(1.0),
							},
						},
					},
				},
				ReplicaGlobalSecondaryIndexSettings: []types.ReplicaGlobalSecondaryIndexSettingsDescription{
					{
						IndexName:                    ptr.String("__IndexName__"),
						IndexStatus:                  types.IndexStatus("CREATING"),
						ProvisionedReadCapacityUnits: ptr.Int64(1),
						ProvisionedReadCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
							MinimumUnits:        ptr.Int64(1),
							MaximumUnits:        ptr.Int64(1),
							AutoScalingDisabled: ptr.Bool(true),
							AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
							ScalingPolicies: []types.AutoScalingPolicyDescription{
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
							},
						},
						ProvisionedWriteCapacityUnits: ptr.Int64(1),
						ProvisionedWriteCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
							MinimumUnits:        ptr.Int64(1),
							MaximumUnits:        ptr.Int64(1),
							AutoScalingDisabled: ptr.Bool(true),
							AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
							ScalingPolicies: []types.AutoScalingPolicyDescription{
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
							},
						},
					},
					{
						IndexName:                    ptr.String("__IndexName__"),
						IndexStatus:                  types.IndexStatus("CREATING"),
						ProvisionedReadCapacityUnits: ptr.Int64(1),
						ProvisionedReadCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
							MinimumUnits:        ptr.Int64(1),
							MaximumUnits:        ptr.Int64(1),
							AutoScalingDisabled: ptr.Bool(true),
							AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
							ScalingPolicies: []types.AutoScalingPolicyDescription{
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
							},
						},
						ProvisionedWriteCapacityUnits: ptr.Int64(1),
						ProvisionedWriteCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
							MinimumUnits:        ptr.Int64(1),
							MaximumUnits:        ptr.Int64(1),
							AutoScalingDisabled: ptr.Bool(true),
							AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
							ScalingPolicies: []types.AutoScalingPolicyDescription{
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
							},
						},
					},
				},
				ReplicaTableClassSummary: &types.TableClassSummary{
					TableClass:         types.TableClass("STANDARD"),
					LastUpdateDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				},
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("DescribeGlobalTableSettings.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.DescribeGlobalTableSettings(context.Background(), &DescribeGlobalTableSettingsInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "DescribeGlobalTableSettings.response", err)
	}
}

func TestCheckResponseSnapshot_DescribeImport(t *testing.T) {
	want := &DescribeImportOutput{
		ImportTableDescription: &types.ImportTableDescription{
			ImportArn:    ptr.String("__ImportArn__"),
			ImportStatus: types.ImportStatus("IN_PROGRESS"),
			TableArn:     ptr.String("__TableArn__"),
			TableId:      ptr.String("__TableId__"),
			ClientToken:  ptr.String("__ClientToken__"),
			S3BucketSource: &types.S3BucketSource{
				S3BucketOwner: ptr.String("__S3BucketOwner__"),
				S3Bucket:      ptr.String("__S3Bucket__"),
				S3KeyPrefix:   ptr.String("__S3KeyPrefix__"),
			},
			ErrorCount:            1,
			CloudWatchLogGroupArn: ptr.String("__CloudWatchLogGroupArn__"),
			InputFormat:           types.InputFormat("DYNAMODB_JSON"),
			InputFormatOptions: &types.InputFormatOptions{
				Csv: &types.CsvOptions{
					Delimiter: ptr.String("__Delimiter__"),
					HeaderList: []string{
						"__Member__",
						"__Member__",
					},
				},
			},
			InputCompressionType: types.InputCompressionType("GZIP"),
			TableCreationParameters: &types.TableCreationParameters{
				TableName: ptr.String("__TableName__"),
				AttributeDefinitions: []types.AttributeDefinition{
					{
						AttributeName: ptr.String("__AttributeName__"),
						AttributeType: types.ScalarAttributeType("S"),
					},
					{
						AttributeName: ptr.String("__AttributeName__"),
						AttributeType: types.ScalarAttributeType("S"),
					},
				},
				KeySchema: []types.KeySchemaElement{
					{
						AttributeName: ptr.String("__AttributeName__"),
						KeyType:       types.KeyType("HASH"),
					},
					{
						AttributeName: ptr.String("__AttributeName__"),
						KeyType:       types.KeyType("HASH"),
					},
				},
				BillingMode: types.BillingMode("PROVISIONED"),
				ProvisionedThroughput: &types.ProvisionedThroughput{
					ReadCapacityUnits:  ptr.Int64(1),
					WriteCapacityUnits: ptr.Int64(1),
				},
				OnDemandThroughput: &types.OnDemandThroughput{
					MaxReadRequestUnits:  ptr.Int64(1),
					MaxWriteRequestUnits: ptr.Int64(1),
				},
				SSESpecification: &types.SSESpecification{
					Enabled:        ptr.Bool(true),
					SSEType:        types.SSEType("AES256"),
					KMSMasterKeyId: ptr.String("__KMSMasterKeyId__"),
				},
				GlobalSecondaryIndexes: []types.GlobalSecondaryIndex{
					{
						IndexName: ptr.String("__IndexName__"),
						KeySchema: []types.KeySchemaElement{
							{
								AttributeName: ptr.String("__AttributeName__"),
								KeyType:       types.KeyType("HASH"),
							},
							{
								AttributeName: ptr.String("__AttributeName__"),
								KeyType:       types.KeyType("HASH"),
							},
						},
						Projection: &types.Projection{
							ProjectionType: types.ProjectionType("ALL"),
							NonKeyAttributes: []string{
								"__Member__",
								"__Member__",
							},
						},
						ProvisionedThroughput: &types.ProvisionedThroughput{
							ReadCapacityUnits:  ptr.Int64(1),
							WriteCapacityUnits: ptr.Int64(1),
						},
						OnDemandThroughput: &types.OnDemandThroughput{
							MaxReadRequestUnits:  ptr.Int64(1),
							MaxWriteRequestUnits: ptr.Int64(1),
						},
						WarmThroughput: &types.WarmThroughput{
							ReadUnitsPerSecond:  ptr.Int64(1),
							WriteUnitsPerSecond: ptr.Int64(1),
						},
					},
					{
						IndexName: ptr.String("__IndexName__"),
						KeySchema: []types.KeySchemaElement{
							{
								AttributeName: ptr.String("__AttributeName__"),
								KeyType:       types.KeyType("HASH"),
							},
							{
								AttributeName: ptr.String("__AttributeName__"),
								KeyType:       types.KeyType("HASH"),
							},
						},
						Projection: &types.Projection{
							ProjectionType: types.ProjectionType("ALL"),
							NonKeyAttributes: []string{
								"__Member__",
								"__Member__",
							},
						},
						ProvisionedThroughput: &types.ProvisionedThroughput{
							ReadCapacityUnits:  ptr.Int64(1),
							WriteCapacityUnits: ptr.Int64(1),
						},
						OnDemandThroughput: &types.OnDemandThroughput{
							MaxReadRequestUnits:  ptr.Int64(1),
							MaxWriteRequestUnits: ptr.Int64(1),
						},
						WarmThroughput: &types.WarmThroughput{
							ReadUnitsPerSecond:  ptr.Int64(1),
							WriteUnitsPerSecond: ptr.Int64(1),
						},
					},
				},
			},
			StartTime:          ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			EndTime:            ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			ProcessedSizeBytes: ptr.Int64(1),
			ProcessedItemCount: 1,
			ImportedItemCount:  1,
			FailureCode:        ptr.String("__FailureCode__"),
			FailureMessage:     ptr.String("__FailureMessage__"),
		},
	}
	status, header, body, err := serdeRespReadSnapshot("DescribeImport.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.DescribeImport(context.Background(), &DescribeImportInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "DescribeImport.response", err)
	}
}

func TestCheckResponseSnapshot_DescribeKinesisStreamingDestination(t *testing.T) {
	want := &DescribeKinesisStreamingDestinationOutput{
		TableName: ptr.String("__TableName__"),
		KinesisDataStreamDestinations: []types.KinesisDataStreamDestination{
			{
				StreamArn:                            ptr.String("__StreamArn__"),
				DestinationStatus:                    types.DestinationStatus("ENABLING"),
				DestinationStatusDescription:         ptr.String("__DestinationStatusDescription__"),
				ApproximateCreationDateTimePrecision: types.ApproximateCreationDateTimePrecision("MILLISECOND"),
			},
			{
				StreamArn:                            ptr.String("__StreamArn__"),
				DestinationStatus:                    types.DestinationStatus("ENABLING"),
				DestinationStatusDescription:         ptr.String("__DestinationStatusDescription__"),
				ApproximateCreationDateTimePrecision: types.ApproximateCreationDateTimePrecision("MILLISECOND"),
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("DescribeKinesisStreamingDestination.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.DescribeKinesisStreamingDestination(context.Background(), &DescribeKinesisStreamingDestinationInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "DescribeKinesisStreamingDestination.response", err)
	}
}

func TestCheckResponseSnapshot_DescribeLimits(t *testing.T) {
	want := &DescribeLimitsOutput{
		AccountMaxReadCapacityUnits:  ptr.Int64(1),
		AccountMaxWriteCapacityUnits: ptr.Int64(1),
		TableMaxReadCapacityUnits:    ptr.Int64(1),
		TableMaxWriteCapacityUnits:   ptr.Int64(1),
	}
	status, header, body, err := serdeRespReadSnapshot("DescribeLimits.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.DescribeLimits(context.Background(), &DescribeLimitsInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "DescribeLimits.response", err)
	}
}

func TestCheckResponseSnapshot_DescribeTable(t *testing.T) {
	want := &DescribeTableOutput{
		Table: &types.TableDescription{
			AttributeDefinitions: []types.AttributeDefinition{
				{
					AttributeName: ptr.String("__AttributeName__"),
					AttributeType: types.ScalarAttributeType("S"),
				},
				{
					AttributeName: ptr.String("__AttributeName__"),
					AttributeType: types.ScalarAttributeType("S"),
				},
			},
			TableName: ptr.String("__TableName__"),
			KeySchema: []types.KeySchemaElement{
				{
					AttributeName: ptr.String("__AttributeName__"),
					KeyType:       types.KeyType("HASH"),
				},
				{
					AttributeName: ptr.String("__AttributeName__"),
					KeyType:       types.KeyType("HASH"),
				},
			},
			TableStatus:      types.TableStatus("CREATING"),
			CreationDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			ProvisionedThroughput: &types.ProvisionedThroughputDescription{
				LastIncreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				LastDecreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				NumberOfDecreasesToday: ptr.Int64(1),
				ReadCapacityUnits:      ptr.Int64(1),
				WriteCapacityUnits:     ptr.Int64(1),
			},
			TableSizeBytes: ptr.Int64(1),
			ItemCount:      ptr.Int64(1),
			TableArn:       ptr.String("__TableArn__"),
			TableId:        ptr.String("__TableId__"),
			BillingModeSummary: &types.BillingModeSummary{
				BillingMode:                       types.BillingMode("PROVISIONED"),
				LastUpdateToPayPerRequestDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			},
			LocalSecondaryIndexes: []types.LocalSecondaryIndexDescription{
				{
					IndexName: ptr.String("__IndexName__"),
					KeySchema: []types.KeySchemaElement{
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
					},
					Projection: &types.Projection{
						ProjectionType: types.ProjectionType("ALL"),
						NonKeyAttributes: []string{
							"__Member__",
							"__Member__",
						},
					},
					IndexSizeBytes: ptr.Int64(1),
					ItemCount:      ptr.Int64(1),
					IndexArn:       ptr.String("__IndexArn__"),
				},
				{
					IndexName: ptr.String("__IndexName__"),
					KeySchema: []types.KeySchemaElement{
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
					},
					Projection: &types.Projection{
						ProjectionType: types.ProjectionType("ALL"),
						NonKeyAttributes: []string{
							"__Member__",
							"__Member__",
						},
					},
					IndexSizeBytes: ptr.Int64(1),
					ItemCount:      ptr.Int64(1),
					IndexArn:       ptr.String("__IndexArn__"),
				},
			},
			GlobalSecondaryIndexes: []types.GlobalSecondaryIndexDescription{
				{
					IndexName: ptr.String("__IndexName__"),
					KeySchema: []types.KeySchemaElement{
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
					},
					Projection: &types.Projection{
						ProjectionType: types.ProjectionType("ALL"),
						NonKeyAttributes: []string{
							"__Member__",
							"__Member__",
						},
					},
					IndexStatus: types.IndexStatus("CREATING"),
					Backfilling: ptr.Bool(true),
					ProvisionedThroughput: &types.ProvisionedThroughputDescription{
						LastIncreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
						LastDecreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
						NumberOfDecreasesToday: ptr.Int64(1),
						ReadCapacityUnits:      ptr.Int64(1),
						WriteCapacityUnits:     ptr.Int64(1),
					},
					IndexSizeBytes: ptr.Int64(1),
					ItemCount:      ptr.Int64(1),
					IndexArn:       ptr.String("__IndexArn__"),
					OnDemandThroughput: &types.OnDemandThroughput{
						MaxReadRequestUnits:  ptr.Int64(1),
						MaxWriteRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.IndexStatus("CREATING"),
					},
				},
				{
					IndexName: ptr.String("__IndexName__"),
					KeySchema: []types.KeySchemaElement{
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
					},
					Projection: &types.Projection{
						ProjectionType: types.ProjectionType("ALL"),
						NonKeyAttributes: []string{
							"__Member__",
							"__Member__",
						},
					},
					IndexStatus: types.IndexStatus("CREATING"),
					Backfilling: ptr.Bool(true),
					ProvisionedThroughput: &types.ProvisionedThroughputDescription{
						LastIncreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
						LastDecreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
						NumberOfDecreasesToday: ptr.Int64(1),
						ReadCapacityUnits:      ptr.Int64(1),
						WriteCapacityUnits:     ptr.Int64(1),
					},
					IndexSizeBytes: ptr.Int64(1),
					ItemCount:      ptr.Int64(1),
					IndexArn:       ptr.String("__IndexArn__"),
					OnDemandThroughput: &types.OnDemandThroughput{
						MaxReadRequestUnits:  ptr.Int64(1),
						MaxWriteRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.IndexStatus("CREATING"),
					},
				},
			},
			StreamSpecification: &types.StreamSpecification{
				StreamEnabled:  ptr.Bool(true),
				StreamViewType: types.StreamViewType("NEW_IMAGE"),
			},
			LatestStreamLabel:  ptr.String("__LatestStreamLabel__"),
			LatestStreamArn:    ptr.String("__LatestStreamArn__"),
			GlobalTableVersion: ptr.String("__GlobalTableVersion__"),
			Replicas: []types.ReplicaDescription{
				{
					RegionName:                   ptr.String("__RegionName__"),
					ReplicaStatus:                types.ReplicaStatus("CREATING"),
					ReplicaArn:                   ptr.String("__ReplicaArn__"),
					ReplicaStatusDescription:     ptr.String("__ReplicaStatusDescription__"),
					ReplicaStatusPercentProgress: ptr.String("__ReplicaStatusPercentProgress__"),
					KMSMasterKeyId:               ptr.String("__KMSMasterKeyId__"),
					ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
						ReadCapacityUnits: ptr.Int64(1),
					},
					OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
						MaxReadRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.TableWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.TableStatus("CREATING"),
					},
					GlobalSecondaryIndexes: []types.ReplicaGlobalSecondaryIndexDescription{
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
					},
					ReplicaInaccessibleDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					ReplicaTableClassSummary: &types.TableClassSummary{
						TableClass:         types.TableClass("STANDARD"),
						LastUpdateDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					},
					GlobalTableSettingsReplicationMode: types.GlobalTableSettingsReplicationMode("ENABLED"),
				},
				{
					RegionName:                   ptr.String("__RegionName__"),
					ReplicaStatus:                types.ReplicaStatus("CREATING"),
					ReplicaArn:                   ptr.String("__ReplicaArn__"),
					ReplicaStatusDescription:     ptr.String("__ReplicaStatusDescription__"),
					ReplicaStatusPercentProgress: ptr.String("__ReplicaStatusPercentProgress__"),
					KMSMasterKeyId:               ptr.String("__KMSMasterKeyId__"),
					ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
						ReadCapacityUnits: ptr.Int64(1),
					},
					OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
						MaxReadRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.TableWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.TableStatus("CREATING"),
					},
					GlobalSecondaryIndexes: []types.ReplicaGlobalSecondaryIndexDescription{
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
					},
					ReplicaInaccessibleDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					ReplicaTableClassSummary: &types.TableClassSummary{
						TableClass:         types.TableClass("STANDARD"),
						LastUpdateDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					},
					GlobalTableSettingsReplicationMode: types.GlobalTableSettingsReplicationMode("ENABLED"),
				},
			},
			GlobalTableWitnesses: []types.GlobalTableWitnessDescription{
				{
					RegionName:    ptr.String("__RegionName__"),
					WitnessStatus: types.WitnessStatus("CREATING"),
				},
				{
					RegionName:    ptr.String("__RegionName__"),
					WitnessStatus: types.WitnessStatus("CREATING"),
				},
			},
			GlobalTableSettingsReplicationMode: types.GlobalTableSettingsReplicationMode("ENABLED"),
			RestoreSummary: &types.RestoreSummary{
				SourceBackupArn:   ptr.String("__SourceBackupArn__"),
				SourceTableArn:    ptr.String("__SourceTableArn__"),
				RestoreDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				RestoreInProgress: ptr.Bool(true),
			},
			SSEDescription: &types.SSEDescription{
				Status:                         types.SSEStatus("ENABLING"),
				SSEType:                        types.SSEType("AES256"),
				KMSMasterKeyArn:                ptr.String("__KMSMasterKeyArn__"),
				InaccessibleEncryptionDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			},
			ArchivalSummary: &types.ArchivalSummary{
				ArchivalDateTime:  ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				ArchivalReason:    ptr.String("__ArchivalReason__"),
				ArchivalBackupArn: ptr.String("__ArchivalBackupArn__"),
			},
			TableClassSummary: &types.TableClassSummary{
				TableClass:         types.TableClass("STANDARD"),
				LastUpdateDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			},
			DeletionProtectionEnabled: ptr.Bool(true),
			OnDemandThroughput: &types.OnDemandThroughput{
				MaxReadRequestUnits:  ptr.Int64(1),
				MaxWriteRequestUnits: ptr.Int64(1),
			},
			WarmThroughput: &types.TableWarmThroughputDescription{
				ReadUnitsPerSecond:  ptr.Int64(1),
				WriteUnitsPerSecond: ptr.Int64(1),
				Status:              types.TableStatus("CREATING"),
			},
			MultiRegionConsistency: types.MultiRegionConsistency("EVENTUAL"),
		},
	}
	status, header, body, err := serdeRespReadSnapshot("DescribeTable.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.DescribeTable(context.Background(), &DescribeTableInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "DescribeTable.response", err)
	}
}

func TestCheckResponseSnapshot_DescribeTableReplicaAutoScaling(t *testing.T) {
	want := &DescribeTableReplicaAutoScalingOutput{
		TableAutoScalingDescription: &types.TableAutoScalingDescription{
			TableName:   ptr.String("__TableName__"),
			TableStatus: types.TableStatus("CREATING"),
			Replicas: []types.ReplicaAutoScalingDescription{
				{
					RegionName: ptr.String("__RegionName__"),
					GlobalSecondaryIndexes: []types.ReplicaGlobalSecondaryIndexAutoScalingDescription{
						{
							IndexName:   ptr.String("__IndexName__"),
							IndexStatus: types.IndexStatus("CREATING"),
							ProvisionedReadCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
								MinimumUnits:        ptr.Int64(1),
								MaximumUnits:        ptr.Int64(1),
								AutoScalingDisabled: ptr.Bool(true),
								AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
								ScalingPolicies: []types.AutoScalingPolicyDescription{
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
								},
							},
							ProvisionedWriteCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
								MinimumUnits:        ptr.Int64(1),
								MaximumUnits:        ptr.Int64(1),
								AutoScalingDisabled: ptr.Bool(true),
								AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
								ScalingPolicies: []types.AutoScalingPolicyDescription{
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
								},
							},
						},
						{
							IndexName:   ptr.String("__IndexName__"),
							IndexStatus: types.IndexStatus("CREATING"),
							ProvisionedReadCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
								MinimumUnits:        ptr.Int64(1),
								MaximumUnits:        ptr.Int64(1),
								AutoScalingDisabled: ptr.Bool(true),
								AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
								ScalingPolicies: []types.AutoScalingPolicyDescription{
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
								},
							},
							ProvisionedWriteCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
								MinimumUnits:        ptr.Int64(1),
								MaximumUnits:        ptr.Int64(1),
								AutoScalingDisabled: ptr.Bool(true),
								AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
								ScalingPolicies: []types.AutoScalingPolicyDescription{
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
								},
							},
						},
					},
					ReplicaProvisionedReadCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
						MinimumUnits:        ptr.Int64(1),
						MaximumUnits:        ptr.Int64(1),
						AutoScalingDisabled: ptr.Bool(true),
						AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
						ScalingPolicies: []types.AutoScalingPolicyDescription{
							{
								PolicyName: ptr.String("__PolicyName__"),
								TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
									DisableScaleIn:   ptr.Bool(true),
									ScaleInCooldown:  ptr.Int32(1),
									ScaleOutCooldown: ptr.Int32(1),
									TargetValue:      ptr.Float64(1.0),
								},
							},
							{
								PolicyName: ptr.String("__PolicyName__"),
								TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
									DisableScaleIn:   ptr.Bool(true),
									ScaleInCooldown:  ptr.Int32(1),
									ScaleOutCooldown: ptr.Int32(1),
									TargetValue:      ptr.Float64(1.0),
								},
							},
						},
					},
					ReplicaProvisionedWriteCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
						MinimumUnits:        ptr.Int64(1),
						MaximumUnits:        ptr.Int64(1),
						AutoScalingDisabled: ptr.Bool(true),
						AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
						ScalingPolicies: []types.AutoScalingPolicyDescription{
							{
								PolicyName: ptr.String("__PolicyName__"),
								TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
									DisableScaleIn:   ptr.Bool(true),
									ScaleInCooldown:  ptr.Int32(1),
									ScaleOutCooldown: ptr.Int32(1),
									TargetValue:      ptr.Float64(1.0),
								},
							},
							{
								PolicyName: ptr.String("__PolicyName__"),
								TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
									DisableScaleIn:   ptr.Bool(true),
									ScaleInCooldown:  ptr.Int32(1),
									ScaleOutCooldown: ptr.Int32(1),
									TargetValue:      ptr.Float64(1.0),
								},
							},
						},
					},
					ReplicaStatus: types.ReplicaStatus("CREATING"),
				},
				{
					RegionName: ptr.String("__RegionName__"),
					GlobalSecondaryIndexes: []types.ReplicaGlobalSecondaryIndexAutoScalingDescription{
						{
							IndexName:   ptr.String("__IndexName__"),
							IndexStatus: types.IndexStatus("CREATING"),
							ProvisionedReadCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
								MinimumUnits:        ptr.Int64(1),
								MaximumUnits:        ptr.Int64(1),
								AutoScalingDisabled: ptr.Bool(true),
								AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
								ScalingPolicies: []types.AutoScalingPolicyDescription{
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
								},
							},
							ProvisionedWriteCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
								MinimumUnits:        ptr.Int64(1),
								MaximumUnits:        ptr.Int64(1),
								AutoScalingDisabled: ptr.Bool(true),
								AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
								ScalingPolicies: []types.AutoScalingPolicyDescription{
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
								},
							},
						},
						{
							IndexName:   ptr.String("__IndexName__"),
							IndexStatus: types.IndexStatus("CREATING"),
							ProvisionedReadCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
								MinimumUnits:        ptr.Int64(1),
								MaximumUnits:        ptr.Int64(1),
								AutoScalingDisabled: ptr.Bool(true),
								AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
								ScalingPolicies: []types.AutoScalingPolicyDescription{
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
								},
							},
							ProvisionedWriteCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
								MinimumUnits:        ptr.Int64(1),
								MaximumUnits:        ptr.Int64(1),
								AutoScalingDisabled: ptr.Bool(true),
								AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
								ScalingPolicies: []types.AutoScalingPolicyDescription{
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
								},
							},
						},
					},
					ReplicaProvisionedReadCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
						MinimumUnits:        ptr.Int64(1),
						MaximumUnits:        ptr.Int64(1),
						AutoScalingDisabled: ptr.Bool(true),
						AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
						ScalingPolicies: []types.AutoScalingPolicyDescription{
							{
								PolicyName: ptr.String("__PolicyName__"),
								TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
									DisableScaleIn:   ptr.Bool(true),
									ScaleInCooldown:  ptr.Int32(1),
									ScaleOutCooldown: ptr.Int32(1),
									TargetValue:      ptr.Float64(1.0),
								},
							},
							{
								PolicyName: ptr.String("__PolicyName__"),
								TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
									DisableScaleIn:   ptr.Bool(true),
									ScaleInCooldown:  ptr.Int32(1),
									ScaleOutCooldown: ptr.Int32(1),
									TargetValue:      ptr.Float64(1.0),
								},
							},
						},
					},
					ReplicaProvisionedWriteCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
						MinimumUnits:        ptr.Int64(1),
						MaximumUnits:        ptr.Int64(1),
						AutoScalingDisabled: ptr.Bool(true),
						AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
						ScalingPolicies: []types.AutoScalingPolicyDescription{
							{
								PolicyName: ptr.String("__PolicyName__"),
								TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
									DisableScaleIn:   ptr.Bool(true),
									ScaleInCooldown:  ptr.Int32(1),
									ScaleOutCooldown: ptr.Int32(1),
									TargetValue:      ptr.Float64(1.0),
								},
							},
							{
								PolicyName: ptr.String("__PolicyName__"),
								TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
									DisableScaleIn:   ptr.Bool(true),
									ScaleInCooldown:  ptr.Int32(1),
									ScaleOutCooldown: ptr.Int32(1),
									TargetValue:      ptr.Float64(1.0),
								},
							},
						},
					},
					ReplicaStatus: types.ReplicaStatus("CREATING"),
				},
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("DescribeTableReplicaAutoScaling.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.DescribeTableReplicaAutoScaling(context.Background(), &DescribeTableReplicaAutoScalingInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "DescribeTableReplicaAutoScaling.response", err)
	}
}

func TestCheckResponseSnapshot_DescribeTimeToLive(t *testing.T) {
	want := &DescribeTimeToLiveOutput{
		TimeToLiveDescription: &types.TimeToLiveDescription{
			TimeToLiveStatus: types.TimeToLiveStatus("ENABLING"),
			AttributeName:    ptr.String("__AttributeName__"),
		},
	}
	status, header, body, err := serdeRespReadSnapshot("DescribeTimeToLive.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.DescribeTimeToLive(context.Background(), &DescribeTimeToLiveInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "DescribeTimeToLive.response", err)
	}
}

func TestCheckResponseSnapshot_DisableKinesisStreamingDestination(t *testing.T) {
	want := &DisableKinesisStreamingDestinationOutput{
		TableName:         ptr.String("__TableName__"),
		StreamArn:         ptr.String("__StreamArn__"),
		DestinationStatus: types.DestinationStatus("ENABLING"),
		EnableKinesisStreamingConfiguration: &types.EnableKinesisStreamingConfiguration{
			ApproximateCreationDateTimePrecision: types.ApproximateCreationDateTimePrecision("MILLISECOND"),
		},
	}
	status, header, body, err := serdeRespReadSnapshot("DisableKinesisStreamingDestination.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.DisableKinesisStreamingDestination(context.Background(), &DisableKinesisStreamingDestinationInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "DisableKinesisStreamingDestination.response", err)
	}
}

func TestCheckResponseSnapshot_EnableKinesisStreamingDestination(t *testing.T) {
	want := &EnableKinesisStreamingDestinationOutput{
		TableName:         ptr.String("__TableName__"),
		StreamArn:         ptr.String("__StreamArn__"),
		DestinationStatus: types.DestinationStatus("ENABLING"),
		EnableKinesisStreamingConfiguration: &types.EnableKinesisStreamingConfiguration{
			ApproximateCreationDateTimePrecision: types.ApproximateCreationDateTimePrecision("MILLISECOND"),
		},
	}
	status, header, body, err := serdeRespReadSnapshot("EnableKinesisStreamingDestination.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.EnableKinesisStreamingDestination(context.Background(), &EnableKinesisStreamingDestinationInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "EnableKinesisStreamingDestination.response", err)
	}
}

func TestCheckResponseSnapshot_ExecuteStatement(t *testing.T) {
	want := &ExecuteStatementOutput{
		Items: []map[string]types.AttributeValue{
			{
				"key0": &types.AttributeValueMemberS{
					Value: "__AttributeValueMemberS__",
				},
			},
			{
				"key0": &types.AttributeValueMemberS{
					Value: "__AttributeValueMemberS__",
				},
			},
		},
		NextToken: ptr.String("__NextToken__"),
		ConsumedCapacity: &types.ConsumedCapacity{
			TableName:          ptr.String("__TableName__"),
			CapacityUnits:      ptr.Float64(1.0),
			ReadCapacityUnits:  ptr.Float64(1.0),
			WriteCapacityUnits: ptr.Float64(1.0),
			Table: &types.Capacity{
				ReadCapacityUnits:  ptr.Float64(1.0),
				WriteCapacityUnits: ptr.Float64(1.0),
				CapacityUnits:      ptr.Float64(1.0),
			},
			LocalSecondaryIndexes: map[string]types.Capacity{
				"key0": {
					ReadCapacityUnits:  ptr.Float64(1.0),
					WriteCapacityUnits: ptr.Float64(1.0),
					CapacityUnits:      ptr.Float64(1.0),
				},
			},
			GlobalSecondaryIndexes: map[string]types.Capacity{
				"key0": {
					ReadCapacityUnits:  ptr.Float64(1.0),
					WriteCapacityUnits: ptr.Float64(1.0),
					CapacityUnits:      ptr.Float64(1.0),
				},
			},
		},
		LastEvaluatedKey: map[string]types.AttributeValue{
			"key0": &types.AttributeValueMemberS{
				Value: "__AttributeValueMemberS__",
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("ExecuteStatement.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.ExecuteStatement(context.Background(), &ExecuteStatementInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "ExecuteStatement.response", err)
	}
}

func TestCheckResponseSnapshot_ExecuteTransaction(t *testing.T) {
	want := &ExecuteTransactionOutput{
		Responses: []types.ItemResponse{
			{
				Item: map[string]types.AttributeValue{
					"key0": &types.AttributeValueMemberS{
						Value: "__AttributeValueMemberS__",
					},
				},
			},
			{
				Item: map[string]types.AttributeValue{
					"key0": &types.AttributeValueMemberS{
						Value: "__AttributeValueMemberS__",
					},
				},
			},
		},
		ConsumedCapacity: []types.ConsumedCapacity{
			{
				TableName:          ptr.String("__TableName__"),
				CapacityUnits:      ptr.Float64(1.0),
				ReadCapacityUnits:  ptr.Float64(1.0),
				WriteCapacityUnits: ptr.Float64(1.0),
				Table: &types.Capacity{
					ReadCapacityUnits:  ptr.Float64(1.0),
					WriteCapacityUnits: ptr.Float64(1.0),
					CapacityUnits:      ptr.Float64(1.0),
				},
				LocalSecondaryIndexes: map[string]types.Capacity{
					"key0": {
						ReadCapacityUnits:  ptr.Float64(1.0),
						WriteCapacityUnits: ptr.Float64(1.0),
						CapacityUnits:      ptr.Float64(1.0),
					},
				},
				GlobalSecondaryIndexes: map[string]types.Capacity{
					"key0": {
						ReadCapacityUnits:  ptr.Float64(1.0),
						WriteCapacityUnits: ptr.Float64(1.0),
						CapacityUnits:      ptr.Float64(1.0),
					},
				},
			},
			{
				TableName:          ptr.String("__TableName__"),
				CapacityUnits:      ptr.Float64(1.0),
				ReadCapacityUnits:  ptr.Float64(1.0),
				WriteCapacityUnits: ptr.Float64(1.0),
				Table: &types.Capacity{
					ReadCapacityUnits:  ptr.Float64(1.0),
					WriteCapacityUnits: ptr.Float64(1.0),
					CapacityUnits:      ptr.Float64(1.0),
				},
				LocalSecondaryIndexes: map[string]types.Capacity{
					"key0": {
						ReadCapacityUnits:  ptr.Float64(1.0),
						WriteCapacityUnits: ptr.Float64(1.0),
						CapacityUnits:      ptr.Float64(1.0),
					},
				},
				GlobalSecondaryIndexes: map[string]types.Capacity{
					"key0": {
						ReadCapacityUnits:  ptr.Float64(1.0),
						WriteCapacityUnits: ptr.Float64(1.0),
						CapacityUnits:      ptr.Float64(1.0),
					},
				},
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("ExecuteTransaction.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.ExecuteTransaction(context.Background(), &ExecuteTransactionInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "ExecuteTransaction.response", err)
	}
}

func TestCheckResponseSnapshot_ExportTableToPointInTime(t *testing.T) {
	want := &ExportTableToPointInTimeOutput{
		ExportDescription: &types.ExportDescription{
			ExportArn:       ptr.String("__ExportArn__"),
			ExportStatus:    types.ExportStatus("IN_PROGRESS"),
			StartTime:       ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			EndTime:         ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			ExportManifest:  ptr.String("__ExportManifest__"),
			TableArn:        ptr.String("__TableArn__"),
			TableId:         ptr.String("__TableId__"),
			ExportTime:      ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			ClientToken:     ptr.String("__ClientToken__"),
			S3Bucket:        ptr.String("__S3Bucket__"),
			S3BucketOwner:   ptr.String("__S3BucketOwner__"),
			S3Prefix:        ptr.String("__S3Prefix__"),
			S3SseAlgorithm:  types.S3SseAlgorithm("AES256"),
			S3SseKmsKeyId:   ptr.String("__S3SseKmsKeyId__"),
			FailureCode:     ptr.String("__FailureCode__"),
			FailureMessage:  ptr.String("__FailureMessage__"),
			ExportFormat:    types.ExportFormat("DYNAMODB_JSON"),
			BilledSizeBytes: ptr.Int64(1),
			ItemCount:       ptr.Int64(1),
			ExportType:      types.ExportType("FULL_EXPORT"),
			IncrementalExportSpecification: &types.IncrementalExportSpecification{
				ExportFromTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				ExportToTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				ExportViewType: types.ExportViewType("NEW_IMAGE"),
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("ExportTableToPointInTime.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.ExportTableToPointInTime(context.Background(), &ExportTableToPointInTimeInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "ExportTableToPointInTime.response", err)
	}
}

func TestCheckResponseSnapshot_GetItem(t *testing.T) {
	want := &GetItemOutput{
		Item: map[string]types.AttributeValue{
			"key0": &types.AttributeValueMemberS{
				Value: "__AttributeValueMemberS__",
			},
		},
		ConsumedCapacity: &types.ConsumedCapacity{
			TableName:          ptr.String("__TableName__"),
			CapacityUnits:      ptr.Float64(1.0),
			ReadCapacityUnits:  ptr.Float64(1.0),
			WriteCapacityUnits: ptr.Float64(1.0),
			Table: &types.Capacity{
				ReadCapacityUnits:  ptr.Float64(1.0),
				WriteCapacityUnits: ptr.Float64(1.0),
				CapacityUnits:      ptr.Float64(1.0),
			},
			LocalSecondaryIndexes: map[string]types.Capacity{
				"key0": {
					ReadCapacityUnits:  ptr.Float64(1.0),
					WriteCapacityUnits: ptr.Float64(1.0),
					CapacityUnits:      ptr.Float64(1.0),
				},
			},
			GlobalSecondaryIndexes: map[string]types.Capacity{
				"key0": {
					ReadCapacityUnits:  ptr.Float64(1.0),
					WriteCapacityUnits: ptr.Float64(1.0),
					CapacityUnits:      ptr.Float64(1.0),
				},
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("GetItem.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.GetItem(context.Background(), &GetItemInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "GetItem.response", err)
	}
}

func TestCheckResponseSnapshot_GetResourcePolicy(t *testing.T) {
	want := &GetResourcePolicyOutput{
		Policy:     ptr.String("__Policy__"),
		RevisionId: ptr.String("__RevisionId__"),
	}
	status, header, body, err := serdeRespReadSnapshot("GetResourcePolicy.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.GetResourcePolicy(context.Background(), &GetResourcePolicyInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "GetResourcePolicy.response", err)
	}
}

func TestCheckResponseSnapshot_ImportTable(t *testing.T) {
	want := &ImportTableOutput{
		ImportTableDescription: &types.ImportTableDescription{
			ImportArn:    ptr.String("__ImportArn__"),
			ImportStatus: types.ImportStatus("IN_PROGRESS"),
			TableArn:     ptr.String("__TableArn__"),
			TableId:      ptr.String("__TableId__"),
			ClientToken:  ptr.String("__ClientToken__"),
			S3BucketSource: &types.S3BucketSource{
				S3BucketOwner: ptr.String("__S3BucketOwner__"),
				S3Bucket:      ptr.String("__S3Bucket__"),
				S3KeyPrefix:   ptr.String("__S3KeyPrefix__"),
			},
			ErrorCount:            1,
			CloudWatchLogGroupArn: ptr.String("__CloudWatchLogGroupArn__"),
			InputFormat:           types.InputFormat("DYNAMODB_JSON"),
			InputFormatOptions: &types.InputFormatOptions{
				Csv: &types.CsvOptions{
					Delimiter: ptr.String("__Delimiter__"),
					HeaderList: []string{
						"__Member__",
						"__Member__",
					},
				},
			},
			InputCompressionType: types.InputCompressionType("GZIP"),
			TableCreationParameters: &types.TableCreationParameters{
				TableName: ptr.String("__TableName__"),
				AttributeDefinitions: []types.AttributeDefinition{
					{
						AttributeName: ptr.String("__AttributeName__"),
						AttributeType: types.ScalarAttributeType("S"),
					},
					{
						AttributeName: ptr.String("__AttributeName__"),
						AttributeType: types.ScalarAttributeType("S"),
					},
				},
				KeySchema: []types.KeySchemaElement{
					{
						AttributeName: ptr.String("__AttributeName__"),
						KeyType:       types.KeyType("HASH"),
					},
					{
						AttributeName: ptr.String("__AttributeName__"),
						KeyType:       types.KeyType("HASH"),
					},
				},
				BillingMode: types.BillingMode("PROVISIONED"),
				ProvisionedThroughput: &types.ProvisionedThroughput{
					ReadCapacityUnits:  ptr.Int64(1),
					WriteCapacityUnits: ptr.Int64(1),
				},
				OnDemandThroughput: &types.OnDemandThroughput{
					MaxReadRequestUnits:  ptr.Int64(1),
					MaxWriteRequestUnits: ptr.Int64(1),
				},
				SSESpecification: &types.SSESpecification{
					Enabled:        ptr.Bool(true),
					SSEType:        types.SSEType("AES256"),
					KMSMasterKeyId: ptr.String("__KMSMasterKeyId__"),
				},
				GlobalSecondaryIndexes: []types.GlobalSecondaryIndex{
					{
						IndexName: ptr.String("__IndexName__"),
						KeySchema: []types.KeySchemaElement{
							{
								AttributeName: ptr.String("__AttributeName__"),
								KeyType:       types.KeyType("HASH"),
							},
							{
								AttributeName: ptr.String("__AttributeName__"),
								KeyType:       types.KeyType("HASH"),
							},
						},
						Projection: &types.Projection{
							ProjectionType: types.ProjectionType("ALL"),
							NonKeyAttributes: []string{
								"__Member__",
								"__Member__",
							},
						},
						ProvisionedThroughput: &types.ProvisionedThroughput{
							ReadCapacityUnits:  ptr.Int64(1),
							WriteCapacityUnits: ptr.Int64(1),
						},
						OnDemandThroughput: &types.OnDemandThroughput{
							MaxReadRequestUnits:  ptr.Int64(1),
							MaxWriteRequestUnits: ptr.Int64(1),
						},
						WarmThroughput: &types.WarmThroughput{
							ReadUnitsPerSecond:  ptr.Int64(1),
							WriteUnitsPerSecond: ptr.Int64(1),
						},
					},
					{
						IndexName: ptr.String("__IndexName__"),
						KeySchema: []types.KeySchemaElement{
							{
								AttributeName: ptr.String("__AttributeName__"),
								KeyType:       types.KeyType("HASH"),
							},
							{
								AttributeName: ptr.String("__AttributeName__"),
								KeyType:       types.KeyType("HASH"),
							},
						},
						Projection: &types.Projection{
							ProjectionType: types.ProjectionType("ALL"),
							NonKeyAttributes: []string{
								"__Member__",
								"__Member__",
							},
						},
						ProvisionedThroughput: &types.ProvisionedThroughput{
							ReadCapacityUnits:  ptr.Int64(1),
							WriteCapacityUnits: ptr.Int64(1),
						},
						OnDemandThroughput: &types.OnDemandThroughput{
							MaxReadRequestUnits:  ptr.Int64(1),
							MaxWriteRequestUnits: ptr.Int64(1),
						},
						WarmThroughput: &types.WarmThroughput{
							ReadUnitsPerSecond:  ptr.Int64(1),
							WriteUnitsPerSecond: ptr.Int64(1),
						},
					},
				},
			},
			StartTime:          ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			EndTime:            ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			ProcessedSizeBytes: ptr.Int64(1),
			ProcessedItemCount: 1,
			ImportedItemCount:  1,
			FailureCode:        ptr.String("__FailureCode__"),
			FailureMessage:     ptr.String("__FailureMessage__"),
		},
	}
	status, header, body, err := serdeRespReadSnapshot("ImportTable.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.ImportTable(context.Background(), &ImportTableInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "ImportTable.response", err)
	}
}

func TestCheckResponseSnapshot_ListBackups(t *testing.T) {
	want := &ListBackupsOutput{
		BackupSummaries: []types.BackupSummary{
			{
				TableName:              ptr.String("__TableName__"),
				TableId:                ptr.String("__TableId__"),
				TableArn:               ptr.String("__TableArn__"),
				BackupArn:              ptr.String("__BackupArn__"),
				BackupName:             ptr.String("__BackupName__"),
				BackupCreationDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				BackupExpiryDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				BackupStatus:           types.BackupStatus("CREATING"),
				BackupType:             types.BackupType("USER"),
				BackupSizeBytes:        ptr.Int64(1),
			},
			{
				TableName:              ptr.String("__TableName__"),
				TableId:                ptr.String("__TableId__"),
				TableArn:               ptr.String("__TableArn__"),
				BackupArn:              ptr.String("__BackupArn__"),
				BackupName:             ptr.String("__BackupName__"),
				BackupCreationDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				BackupExpiryDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				BackupStatus:           types.BackupStatus("CREATING"),
				BackupType:             types.BackupType("USER"),
				BackupSizeBytes:        ptr.Int64(1),
			},
		},
		LastEvaluatedBackupArn: ptr.String("__LastEvaluatedBackupArn__"),
	}
	status, header, body, err := serdeRespReadSnapshot("ListBackups.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.ListBackups(context.Background(), &ListBackupsInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "ListBackups.response", err)
	}
}

func TestCheckResponseSnapshot_ListContributorInsights(t *testing.T) {
	want := &ListContributorInsightsOutput{
		ContributorInsightsSummaries: []types.ContributorInsightsSummary{
			{
				TableName:                 ptr.String("__TableName__"),
				IndexName:                 ptr.String("__IndexName__"),
				ContributorInsightsStatus: types.ContributorInsightsStatus("ENABLING"),
				ContributorInsightsMode:   types.ContributorInsightsMode("ACCESSED_AND_THROTTLED_KEYS"),
			},
			{
				TableName:                 ptr.String("__TableName__"),
				IndexName:                 ptr.String("__IndexName__"),
				ContributorInsightsStatus: types.ContributorInsightsStatus("ENABLING"),
				ContributorInsightsMode:   types.ContributorInsightsMode("ACCESSED_AND_THROTTLED_KEYS"),
			},
		},
		NextToken: ptr.String("__NextToken__"),
	}
	status, header, body, err := serdeRespReadSnapshot("ListContributorInsights.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.ListContributorInsights(context.Background(), &ListContributorInsightsInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "ListContributorInsights.response", err)
	}
}

func TestCheckResponseSnapshot_ListExports(t *testing.T) {
	want := &ListExportsOutput{
		ExportSummaries: []types.ExportSummary{
			{
				ExportArn:    ptr.String("__ExportArn__"),
				ExportStatus: types.ExportStatus("IN_PROGRESS"),
				ExportType:   types.ExportType("FULL_EXPORT"),
			},
			{
				ExportArn:    ptr.String("__ExportArn__"),
				ExportStatus: types.ExportStatus("IN_PROGRESS"),
				ExportType:   types.ExportType("FULL_EXPORT"),
			},
		},
		NextToken: ptr.String("__NextToken__"),
	}
	status, header, body, err := serdeRespReadSnapshot("ListExports.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.ListExports(context.Background(), &ListExportsInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "ListExports.response", err)
	}
}

func TestCheckResponseSnapshot_ListGlobalTables(t *testing.T) {
	want := &ListGlobalTablesOutput{
		GlobalTables: []types.GlobalTable{
			{
				GlobalTableName: ptr.String("__GlobalTableName__"),
				ReplicationGroup: []types.Replica{
					{
						RegionName: ptr.String("__RegionName__"),
					},
					{
						RegionName: ptr.String("__RegionName__"),
					},
				},
			},
			{
				GlobalTableName: ptr.String("__GlobalTableName__"),
				ReplicationGroup: []types.Replica{
					{
						RegionName: ptr.String("__RegionName__"),
					},
					{
						RegionName: ptr.String("__RegionName__"),
					},
				},
			},
		},
		LastEvaluatedGlobalTableName: ptr.String("__LastEvaluatedGlobalTableName__"),
	}
	status, header, body, err := serdeRespReadSnapshot("ListGlobalTables.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.ListGlobalTables(context.Background(), &ListGlobalTablesInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "ListGlobalTables.response", err)
	}
}

func TestCheckResponseSnapshot_ListImports(t *testing.T) {
	want := &ListImportsOutput{
		ImportSummaryList: []types.ImportSummary{
			{
				ImportArn:    ptr.String("__ImportArn__"),
				ImportStatus: types.ImportStatus("IN_PROGRESS"),
				TableArn:     ptr.String("__TableArn__"),
				S3BucketSource: &types.S3BucketSource{
					S3BucketOwner: ptr.String("__S3BucketOwner__"),
					S3Bucket:      ptr.String("__S3Bucket__"),
					S3KeyPrefix:   ptr.String("__S3KeyPrefix__"),
				},
				CloudWatchLogGroupArn: ptr.String("__CloudWatchLogGroupArn__"),
				InputFormat:           types.InputFormat("DYNAMODB_JSON"),
				StartTime:             ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				EndTime:               ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			},
			{
				ImportArn:    ptr.String("__ImportArn__"),
				ImportStatus: types.ImportStatus("IN_PROGRESS"),
				TableArn:     ptr.String("__TableArn__"),
				S3BucketSource: &types.S3BucketSource{
					S3BucketOwner: ptr.String("__S3BucketOwner__"),
					S3Bucket:      ptr.String("__S3Bucket__"),
					S3KeyPrefix:   ptr.String("__S3KeyPrefix__"),
				},
				CloudWatchLogGroupArn: ptr.String("__CloudWatchLogGroupArn__"),
				InputFormat:           types.InputFormat("DYNAMODB_JSON"),
				StartTime:             ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				EndTime:               ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			},
		},
		NextToken: ptr.String("__NextToken__"),
	}
	status, header, body, err := serdeRespReadSnapshot("ListImports.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.ListImports(context.Background(), &ListImportsInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "ListImports.response", err)
	}
}

func TestCheckResponseSnapshot_ListTables(t *testing.T) {
	want := &ListTablesOutput{
		TableNames: []string{
			"__Member__",
			"__Member__",
		},
		LastEvaluatedTableName: ptr.String("__LastEvaluatedTableName__"),
	}
	status, header, body, err := serdeRespReadSnapshot("ListTables.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.ListTables(context.Background(), &ListTablesInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "ListTables.response", err)
	}
}

func TestCheckResponseSnapshot_ListTagsOfResource(t *testing.T) {
	want := &ListTagsOfResourceOutput{
		Tags: []types.Tag{
			{
				Key:   ptr.String("__Key__"),
				Value: ptr.String("__Value__"),
			},
			{
				Key:   ptr.String("__Key__"),
				Value: ptr.String("__Value__"),
			},
		},
		NextToken: ptr.String("__NextToken__"),
	}
	status, header, body, err := serdeRespReadSnapshot("ListTagsOfResource.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.ListTagsOfResource(context.Background(), &ListTagsOfResourceInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "ListTagsOfResource.response", err)
	}
}

func TestCheckResponseSnapshot_PutItem(t *testing.T) {
	want := &PutItemOutput{
		Attributes: map[string]types.AttributeValue{
			"key0": &types.AttributeValueMemberS{
				Value: "__AttributeValueMemberS__",
			},
		},
		ConsumedCapacity: &types.ConsumedCapacity{
			TableName:          ptr.String("__TableName__"),
			CapacityUnits:      ptr.Float64(1.0),
			ReadCapacityUnits:  ptr.Float64(1.0),
			WriteCapacityUnits: ptr.Float64(1.0),
			Table: &types.Capacity{
				ReadCapacityUnits:  ptr.Float64(1.0),
				WriteCapacityUnits: ptr.Float64(1.0),
				CapacityUnits:      ptr.Float64(1.0),
			},
			LocalSecondaryIndexes: map[string]types.Capacity{
				"key0": {
					ReadCapacityUnits:  ptr.Float64(1.0),
					WriteCapacityUnits: ptr.Float64(1.0),
					CapacityUnits:      ptr.Float64(1.0),
				},
			},
			GlobalSecondaryIndexes: map[string]types.Capacity{
				"key0": {
					ReadCapacityUnits:  ptr.Float64(1.0),
					WriteCapacityUnits: ptr.Float64(1.0),
					CapacityUnits:      ptr.Float64(1.0),
				},
			},
		},
		ItemCollectionMetrics: &types.ItemCollectionMetrics{
			ItemCollectionKey: map[string]types.AttributeValue{
				"key0": &types.AttributeValueMemberS{
					Value: "__AttributeValueMemberS__",
				},
			},
			SizeEstimateRangeGB: []float64{
				1.0,
				1.0,
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("PutItem.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.PutItem(context.Background(), &PutItemInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "PutItem.response", err)
	}
}

func TestCheckResponseSnapshot_PutResourcePolicy(t *testing.T) {
	want := &PutResourcePolicyOutput{
		RevisionId: ptr.String("__RevisionId__"),
	}
	status, header, body, err := serdeRespReadSnapshot("PutResourcePolicy.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.PutResourcePolicy(context.Background(), &PutResourcePolicyInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "PutResourcePolicy.response", err)
	}
}

func TestCheckResponseSnapshot_Query(t *testing.T) {
	want := &QueryOutput{
		Items: []map[string]types.AttributeValue{
			{
				"key0": &types.AttributeValueMemberS{
					Value: "__AttributeValueMemberS__",
				},
			},
			{
				"key0": &types.AttributeValueMemberS{
					Value: "__AttributeValueMemberS__",
				},
			},
		},
		Count:        1,
		ScannedCount: 1,
		LastEvaluatedKey: map[string]types.AttributeValue{
			"key0": &types.AttributeValueMemberS{
				Value: "__AttributeValueMemberS__",
			},
		},
		ConsumedCapacity: &types.ConsumedCapacity{
			TableName:          ptr.String("__TableName__"),
			CapacityUnits:      ptr.Float64(1.0),
			ReadCapacityUnits:  ptr.Float64(1.0),
			WriteCapacityUnits: ptr.Float64(1.0),
			Table: &types.Capacity{
				ReadCapacityUnits:  ptr.Float64(1.0),
				WriteCapacityUnits: ptr.Float64(1.0),
				CapacityUnits:      ptr.Float64(1.0),
			},
			LocalSecondaryIndexes: map[string]types.Capacity{
				"key0": {
					ReadCapacityUnits:  ptr.Float64(1.0),
					WriteCapacityUnits: ptr.Float64(1.0),
					CapacityUnits:      ptr.Float64(1.0),
				},
			},
			GlobalSecondaryIndexes: map[string]types.Capacity{
				"key0": {
					ReadCapacityUnits:  ptr.Float64(1.0),
					WriteCapacityUnits: ptr.Float64(1.0),
					CapacityUnits:      ptr.Float64(1.0),
				},
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("Query.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.Query(context.Background(), &QueryInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "Query.response", err)
	}
}

func TestCheckResponseSnapshot_RestoreTableFromBackup(t *testing.T) {
	want := &RestoreTableFromBackupOutput{
		TableDescription: &types.TableDescription{
			AttributeDefinitions: []types.AttributeDefinition{
				{
					AttributeName: ptr.String("__AttributeName__"),
					AttributeType: types.ScalarAttributeType("S"),
				},
				{
					AttributeName: ptr.String("__AttributeName__"),
					AttributeType: types.ScalarAttributeType("S"),
				},
			},
			TableName: ptr.String("__TableName__"),
			KeySchema: []types.KeySchemaElement{
				{
					AttributeName: ptr.String("__AttributeName__"),
					KeyType:       types.KeyType("HASH"),
				},
				{
					AttributeName: ptr.String("__AttributeName__"),
					KeyType:       types.KeyType("HASH"),
				},
			},
			TableStatus:      types.TableStatus("CREATING"),
			CreationDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			ProvisionedThroughput: &types.ProvisionedThroughputDescription{
				LastIncreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				LastDecreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				NumberOfDecreasesToday: ptr.Int64(1),
				ReadCapacityUnits:      ptr.Int64(1),
				WriteCapacityUnits:     ptr.Int64(1),
			},
			TableSizeBytes: ptr.Int64(1),
			ItemCount:      ptr.Int64(1),
			TableArn:       ptr.String("__TableArn__"),
			TableId:        ptr.String("__TableId__"),
			BillingModeSummary: &types.BillingModeSummary{
				BillingMode:                       types.BillingMode("PROVISIONED"),
				LastUpdateToPayPerRequestDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			},
			LocalSecondaryIndexes: []types.LocalSecondaryIndexDescription{
				{
					IndexName: ptr.String("__IndexName__"),
					KeySchema: []types.KeySchemaElement{
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
					},
					Projection: &types.Projection{
						ProjectionType: types.ProjectionType("ALL"),
						NonKeyAttributes: []string{
							"__Member__",
							"__Member__",
						},
					},
					IndexSizeBytes: ptr.Int64(1),
					ItemCount:      ptr.Int64(1),
					IndexArn:       ptr.String("__IndexArn__"),
				},
				{
					IndexName: ptr.String("__IndexName__"),
					KeySchema: []types.KeySchemaElement{
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
					},
					Projection: &types.Projection{
						ProjectionType: types.ProjectionType("ALL"),
						NonKeyAttributes: []string{
							"__Member__",
							"__Member__",
						},
					},
					IndexSizeBytes: ptr.Int64(1),
					ItemCount:      ptr.Int64(1),
					IndexArn:       ptr.String("__IndexArn__"),
				},
			},
			GlobalSecondaryIndexes: []types.GlobalSecondaryIndexDescription{
				{
					IndexName: ptr.String("__IndexName__"),
					KeySchema: []types.KeySchemaElement{
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
					},
					Projection: &types.Projection{
						ProjectionType: types.ProjectionType("ALL"),
						NonKeyAttributes: []string{
							"__Member__",
							"__Member__",
						},
					},
					IndexStatus: types.IndexStatus("CREATING"),
					Backfilling: ptr.Bool(true),
					ProvisionedThroughput: &types.ProvisionedThroughputDescription{
						LastIncreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
						LastDecreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
						NumberOfDecreasesToday: ptr.Int64(1),
						ReadCapacityUnits:      ptr.Int64(1),
						WriteCapacityUnits:     ptr.Int64(1),
					},
					IndexSizeBytes: ptr.Int64(1),
					ItemCount:      ptr.Int64(1),
					IndexArn:       ptr.String("__IndexArn__"),
					OnDemandThroughput: &types.OnDemandThroughput{
						MaxReadRequestUnits:  ptr.Int64(1),
						MaxWriteRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.IndexStatus("CREATING"),
					},
				},
				{
					IndexName: ptr.String("__IndexName__"),
					KeySchema: []types.KeySchemaElement{
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
					},
					Projection: &types.Projection{
						ProjectionType: types.ProjectionType("ALL"),
						NonKeyAttributes: []string{
							"__Member__",
							"__Member__",
						},
					},
					IndexStatus: types.IndexStatus("CREATING"),
					Backfilling: ptr.Bool(true),
					ProvisionedThroughput: &types.ProvisionedThroughputDescription{
						LastIncreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
						LastDecreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
						NumberOfDecreasesToday: ptr.Int64(1),
						ReadCapacityUnits:      ptr.Int64(1),
						WriteCapacityUnits:     ptr.Int64(1),
					},
					IndexSizeBytes: ptr.Int64(1),
					ItemCount:      ptr.Int64(1),
					IndexArn:       ptr.String("__IndexArn__"),
					OnDemandThroughput: &types.OnDemandThroughput{
						MaxReadRequestUnits:  ptr.Int64(1),
						MaxWriteRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.IndexStatus("CREATING"),
					},
				},
			},
			StreamSpecification: &types.StreamSpecification{
				StreamEnabled:  ptr.Bool(true),
				StreamViewType: types.StreamViewType("NEW_IMAGE"),
			},
			LatestStreamLabel:  ptr.String("__LatestStreamLabel__"),
			LatestStreamArn:    ptr.String("__LatestStreamArn__"),
			GlobalTableVersion: ptr.String("__GlobalTableVersion__"),
			Replicas: []types.ReplicaDescription{
				{
					RegionName:                   ptr.String("__RegionName__"),
					ReplicaStatus:                types.ReplicaStatus("CREATING"),
					ReplicaArn:                   ptr.String("__ReplicaArn__"),
					ReplicaStatusDescription:     ptr.String("__ReplicaStatusDescription__"),
					ReplicaStatusPercentProgress: ptr.String("__ReplicaStatusPercentProgress__"),
					KMSMasterKeyId:               ptr.String("__KMSMasterKeyId__"),
					ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
						ReadCapacityUnits: ptr.Int64(1),
					},
					OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
						MaxReadRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.TableWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.TableStatus("CREATING"),
					},
					GlobalSecondaryIndexes: []types.ReplicaGlobalSecondaryIndexDescription{
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
					},
					ReplicaInaccessibleDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					ReplicaTableClassSummary: &types.TableClassSummary{
						TableClass:         types.TableClass("STANDARD"),
						LastUpdateDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					},
					GlobalTableSettingsReplicationMode: types.GlobalTableSettingsReplicationMode("ENABLED"),
				},
				{
					RegionName:                   ptr.String("__RegionName__"),
					ReplicaStatus:                types.ReplicaStatus("CREATING"),
					ReplicaArn:                   ptr.String("__ReplicaArn__"),
					ReplicaStatusDescription:     ptr.String("__ReplicaStatusDescription__"),
					ReplicaStatusPercentProgress: ptr.String("__ReplicaStatusPercentProgress__"),
					KMSMasterKeyId:               ptr.String("__KMSMasterKeyId__"),
					ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
						ReadCapacityUnits: ptr.Int64(1),
					},
					OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
						MaxReadRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.TableWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.TableStatus("CREATING"),
					},
					GlobalSecondaryIndexes: []types.ReplicaGlobalSecondaryIndexDescription{
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
					},
					ReplicaInaccessibleDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					ReplicaTableClassSummary: &types.TableClassSummary{
						TableClass:         types.TableClass("STANDARD"),
						LastUpdateDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					},
					GlobalTableSettingsReplicationMode: types.GlobalTableSettingsReplicationMode("ENABLED"),
				},
			},
			GlobalTableWitnesses: []types.GlobalTableWitnessDescription{
				{
					RegionName:    ptr.String("__RegionName__"),
					WitnessStatus: types.WitnessStatus("CREATING"),
				},
				{
					RegionName:    ptr.String("__RegionName__"),
					WitnessStatus: types.WitnessStatus("CREATING"),
				},
			},
			GlobalTableSettingsReplicationMode: types.GlobalTableSettingsReplicationMode("ENABLED"),
			RestoreSummary: &types.RestoreSummary{
				SourceBackupArn:   ptr.String("__SourceBackupArn__"),
				SourceTableArn:    ptr.String("__SourceTableArn__"),
				RestoreDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				RestoreInProgress: ptr.Bool(true),
			},
			SSEDescription: &types.SSEDescription{
				Status:                         types.SSEStatus("ENABLING"),
				SSEType:                        types.SSEType("AES256"),
				KMSMasterKeyArn:                ptr.String("__KMSMasterKeyArn__"),
				InaccessibleEncryptionDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			},
			ArchivalSummary: &types.ArchivalSummary{
				ArchivalDateTime:  ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				ArchivalReason:    ptr.String("__ArchivalReason__"),
				ArchivalBackupArn: ptr.String("__ArchivalBackupArn__"),
			},
			TableClassSummary: &types.TableClassSummary{
				TableClass:         types.TableClass("STANDARD"),
				LastUpdateDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			},
			DeletionProtectionEnabled: ptr.Bool(true),
			OnDemandThroughput: &types.OnDemandThroughput{
				MaxReadRequestUnits:  ptr.Int64(1),
				MaxWriteRequestUnits: ptr.Int64(1),
			},
			WarmThroughput: &types.TableWarmThroughputDescription{
				ReadUnitsPerSecond:  ptr.Int64(1),
				WriteUnitsPerSecond: ptr.Int64(1),
				Status:              types.TableStatus("CREATING"),
			},
			MultiRegionConsistency: types.MultiRegionConsistency("EVENTUAL"),
		},
	}
	status, header, body, err := serdeRespReadSnapshot("RestoreTableFromBackup.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.RestoreTableFromBackup(context.Background(), &RestoreTableFromBackupInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "RestoreTableFromBackup.response", err)
	}
}

func TestCheckResponseSnapshot_RestoreTableToPointInTime(t *testing.T) {
	want := &RestoreTableToPointInTimeOutput{
		TableDescription: &types.TableDescription{
			AttributeDefinitions: []types.AttributeDefinition{
				{
					AttributeName: ptr.String("__AttributeName__"),
					AttributeType: types.ScalarAttributeType("S"),
				},
				{
					AttributeName: ptr.String("__AttributeName__"),
					AttributeType: types.ScalarAttributeType("S"),
				},
			},
			TableName: ptr.String("__TableName__"),
			KeySchema: []types.KeySchemaElement{
				{
					AttributeName: ptr.String("__AttributeName__"),
					KeyType:       types.KeyType("HASH"),
				},
				{
					AttributeName: ptr.String("__AttributeName__"),
					KeyType:       types.KeyType("HASH"),
				},
			},
			TableStatus:      types.TableStatus("CREATING"),
			CreationDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			ProvisionedThroughput: &types.ProvisionedThroughputDescription{
				LastIncreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				LastDecreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				NumberOfDecreasesToday: ptr.Int64(1),
				ReadCapacityUnits:      ptr.Int64(1),
				WriteCapacityUnits:     ptr.Int64(1),
			},
			TableSizeBytes: ptr.Int64(1),
			ItemCount:      ptr.Int64(1),
			TableArn:       ptr.String("__TableArn__"),
			TableId:        ptr.String("__TableId__"),
			BillingModeSummary: &types.BillingModeSummary{
				BillingMode:                       types.BillingMode("PROVISIONED"),
				LastUpdateToPayPerRequestDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			},
			LocalSecondaryIndexes: []types.LocalSecondaryIndexDescription{
				{
					IndexName: ptr.String("__IndexName__"),
					KeySchema: []types.KeySchemaElement{
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
					},
					Projection: &types.Projection{
						ProjectionType: types.ProjectionType("ALL"),
						NonKeyAttributes: []string{
							"__Member__",
							"__Member__",
						},
					},
					IndexSizeBytes: ptr.Int64(1),
					ItemCount:      ptr.Int64(1),
					IndexArn:       ptr.String("__IndexArn__"),
				},
				{
					IndexName: ptr.String("__IndexName__"),
					KeySchema: []types.KeySchemaElement{
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
					},
					Projection: &types.Projection{
						ProjectionType: types.ProjectionType("ALL"),
						NonKeyAttributes: []string{
							"__Member__",
							"__Member__",
						},
					},
					IndexSizeBytes: ptr.Int64(1),
					ItemCount:      ptr.Int64(1),
					IndexArn:       ptr.String("__IndexArn__"),
				},
			},
			GlobalSecondaryIndexes: []types.GlobalSecondaryIndexDescription{
				{
					IndexName: ptr.String("__IndexName__"),
					KeySchema: []types.KeySchemaElement{
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
					},
					Projection: &types.Projection{
						ProjectionType: types.ProjectionType("ALL"),
						NonKeyAttributes: []string{
							"__Member__",
							"__Member__",
						},
					},
					IndexStatus: types.IndexStatus("CREATING"),
					Backfilling: ptr.Bool(true),
					ProvisionedThroughput: &types.ProvisionedThroughputDescription{
						LastIncreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
						LastDecreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
						NumberOfDecreasesToday: ptr.Int64(1),
						ReadCapacityUnits:      ptr.Int64(1),
						WriteCapacityUnits:     ptr.Int64(1),
					},
					IndexSizeBytes: ptr.Int64(1),
					ItemCount:      ptr.Int64(1),
					IndexArn:       ptr.String("__IndexArn__"),
					OnDemandThroughput: &types.OnDemandThroughput{
						MaxReadRequestUnits:  ptr.Int64(1),
						MaxWriteRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.IndexStatus("CREATING"),
					},
				},
				{
					IndexName: ptr.String("__IndexName__"),
					KeySchema: []types.KeySchemaElement{
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
					},
					Projection: &types.Projection{
						ProjectionType: types.ProjectionType("ALL"),
						NonKeyAttributes: []string{
							"__Member__",
							"__Member__",
						},
					},
					IndexStatus: types.IndexStatus("CREATING"),
					Backfilling: ptr.Bool(true),
					ProvisionedThroughput: &types.ProvisionedThroughputDescription{
						LastIncreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
						LastDecreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
						NumberOfDecreasesToday: ptr.Int64(1),
						ReadCapacityUnits:      ptr.Int64(1),
						WriteCapacityUnits:     ptr.Int64(1),
					},
					IndexSizeBytes: ptr.Int64(1),
					ItemCount:      ptr.Int64(1),
					IndexArn:       ptr.String("__IndexArn__"),
					OnDemandThroughput: &types.OnDemandThroughput{
						MaxReadRequestUnits:  ptr.Int64(1),
						MaxWriteRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.IndexStatus("CREATING"),
					},
				},
			},
			StreamSpecification: &types.StreamSpecification{
				StreamEnabled:  ptr.Bool(true),
				StreamViewType: types.StreamViewType("NEW_IMAGE"),
			},
			LatestStreamLabel:  ptr.String("__LatestStreamLabel__"),
			LatestStreamArn:    ptr.String("__LatestStreamArn__"),
			GlobalTableVersion: ptr.String("__GlobalTableVersion__"),
			Replicas: []types.ReplicaDescription{
				{
					RegionName:                   ptr.String("__RegionName__"),
					ReplicaStatus:                types.ReplicaStatus("CREATING"),
					ReplicaArn:                   ptr.String("__ReplicaArn__"),
					ReplicaStatusDescription:     ptr.String("__ReplicaStatusDescription__"),
					ReplicaStatusPercentProgress: ptr.String("__ReplicaStatusPercentProgress__"),
					KMSMasterKeyId:               ptr.String("__KMSMasterKeyId__"),
					ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
						ReadCapacityUnits: ptr.Int64(1),
					},
					OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
						MaxReadRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.TableWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.TableStatus("CREATING"),
					},
					GlobalSecondaryIndexes: []types.ReplicaGlobalSecondaryIndexDescription{
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
					},
					ReplicaInaccessibleDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					ReplicaTableClassSummary: &types.TableClassSummary{
						TableClass:         types.TableClass("STANDARD"),
						LastUpdateDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					},
					GlobalTableSettingsReplicationMode: types.GlobalTableSettingsReplicationMode("ENABLED"),
				},
				{
					RegionName:                   ptr.String("__RegionName__"),
					ReplicaStatus:                types.ReplicaStatus("CREATING"),
					ReplicaArn:                   ptr.String("__ReplicaArn__"),
					ReplicaStatusDescription:     ptr.String("__ReplicaStatusDescription__"),
					ReplicaStatusPercentProgress: ptr.String("__ReplicaStatusPercentProgress__"),
					KMSMasterKeyId:               ptr.String("__KMSMasterKeyId__"),
					ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
						ReadCapacityUnits: ptr.Int64(1),
					},
					OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
						MaxReadRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.TableWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.TableStatus("CREATING"),
					},
					GlobalSecondaryIndexes: []types.ReplicaGlobalSecondaryIndexDescription{
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
					},
					ReplicaInaccessibleDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					ReplicaTableClassSummary: &types.TableClassSummary{
						TableClass:         types.TableClass("STANDARD"),
						LastUpdateDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					},
					GlobalTableSettingsReplicationMode: types.GlobalTableSettingsReplicationMode("ENABLED"),
				},
			},
			GlobalTableWitnesses: []types.GlobalTableWitnessDescription{
				{
					RegionName:    ptr.String("__RegionName__"),
					WitnessStatus: types.WitnessStatus("CREATING"),
				},
				{
					RegionName:    ptr.String("__RegionName__"),
					WitnessStatus: types.WitnessStatus("CREATING"),
				},
			},
			GlobalTableSettingsReplicationMode: types.GlobalTableSettingsReplicationMode("ENABLED"),
			RestoreSummary: &types.RestoreSummary{
				SourceBackupArn:   ptr.String("__SourceBackupArn__"),
				SourceTableArn:    ptr.String("__SourceTableArn__"),
				RestoreDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				RestoreInProgress: ptr.Bool(true),
			},
			SSEDescription: &types.SSEDescription{
				Status:                         types.SSEStatus("ENABLING"),
				SSEType:                        types.SSEType("AES256"),
				KMSMasterKeyArn:                ptr.String("__KMSMasterKeyArn__"),
				InaccessibleEncryptionDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			},
			ArchivalSummary: &types.ArchivalSummary{
				ArchivalDateTime:  ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				ArchivalReason:    ptr.String("__ArchivalReason__"),
				ArchivalBackupArn: ptr.String("__ArchivalBackupArn__"),
			},
			TableClassSummary: &types.TableClassSummary{
				TableClass:         types.TableClass("STANDARD"),
				LastUpdateDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			},
			DeletionProtectionEnabled: ptr.Bool(true),
			OnDemandThroughput: &types.OnDemandThroughput{
				MaxReadRequestUnits:  ptr.Int64(1),
				MaxWriteRequestUnits: ptr.Int64(1),
			},
			WarmThroughput: &types.TableWarmThroughputDescription{
				ReadUnitsPerSecond:  ptr.Int64(1),
				WriteUnitsPerSecond: ptr.Int64(1),
				Status:              types.TableStatus("CREATING"),
			},
			MultiRegionConsistency: types.MultiRegionConsistency("EVENTUAL"),
		},
	}
	status, header, body, err := serdeRespReadSnapshot("RestoreTableToPointInTime.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.RestoreTableToPointInTime(context.Background(), &RestoreTableToPointInTimeInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "RestoreTableToPointInTime.response", err)
	}
}

func TestCheckResponseSnapshot_Scan(t *testing.T) {
	want := &ScanOutput{
		Items: []map[string]types.AttributeValue{
			{
				"key0": &types.AttributeValueMemberS{
					Value: "__AttributeValueMemberS__",
				},
			},
			{
				"key0": &types.AttributeValueMemberS{
					Value: "__AttributeValueMemberS__",
				},
			},
		},
		Count:        1,
		ScannedCount: 1,
		LastEvaluatedKey: map[string]types.AttributeValue{
			"key0": &types.AttributeValueMemberS{
				Value: "__AttributeValueMemberS__",
			},
		},
		ConsumedCapacity: &types.ConsumedCapacity{
			TableName:          ptr.String("__TableName__"),
			CapacityUnits:      ptr.Float64(1.0),
			ReadCapacityUnits:  ptr.Float64(1.0),
			WriteCapacityUnits: ptr.Float64(1.0),
			Table: &types.Capacity{
				ReadCapacityUnits:  ptr.Float64(1.0),
				WriteCapacityUnits: ptr.Float64(1.0),
				CapacityUnits:      ptr.Float64(1.0),
			},
			LocalSecondaryIndexes: map[string]types.Capacity{
				"key0": {
					ReadCapacityUnits:  ptr.Float64(1.0),
					WriteCapacityUnits: ptr.Float64(1.0),
					CapacityUnits:      ptr.Float64(1.0),
				},
			},
			GlobalSecondaryIndexes: map[string]types.Capacity{
				"key0": {
					ReadCapacityUnits:  ptr.Float64(1.0),
					WriteCapacityUnits: ptr.Float64(1.0),
					CapacityUnits:      ptr.Float64(1.0),
				},
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("Scan.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.Scan(context.Background(), &ScanInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "Scan.response", err)
	}
}

func TestCheckResponseSnapshot_TagResource(t *testing.T) {
	want := &TagResourceOutput{}
	status, header, body, err := serdeRespReadSnapshot("TagResource.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.TagResource(context.Background(), &TagResourceInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "TagResource.response", err)
	}
}

func TestCheckResponseSnapshot_TransactGetItems(t *testing.T) {
	want := &TransactGetItemsOutput{
		ConsumedCapacity: []types.ConsumedCapacity{
			{
				TableName:          ptr.String("__TableName__"),
				CapacityUnits:      ptr.Float64(1.0),
				ReadCapacityUnits:  ptr.Float64(1.0),
				WriteCapacityUnits: ptr.Float64(1.0),
				Table: &types.Capacity{
					ReadCapacityUnits:  ptr.Float64(1.0),
					WriteCapacityUnits: ptr.Float64(1.0),
					CapacityUnits:      ptr.Float64(1.0),
				},
				LocalSecondaryIndexes: map[string]types.Capacity{
					"key0": {
						ReadCapacityUnits:  ptr.Float64(1.0),
						WriteCapacityUnits: ptr.Float64(1.0),
						CapacityUnits:      ptr.Float64(1.0),
					},
				},
				GlobalSecondaryIndexes: map[string]types.Capacity{
					"key0": {
						ReadCapacityUnits:  ptr.Float64(1.0),
						WriteCapacityUnits: ptr.Float64(1.0),
						CapacityUnits:      ptr.Float64(1.0),
					},
				},
			},
			{
				TableName:          ptr.String("__TableName__"),
				CapacityUnits:      ptr.Float64(1.0),
				ReadCapacityUnits:  ptr.Float64(1.0),
				WriteCapacityUnits: ptr.Float64(1.0),
				Table: &types.Capacity{
					ReadCapacityUnits:  ptr.Float64(1.0),
					WriteCapacityUnits: ptr.Float64(1.0),
					CapacityUnits:      ptr.Float64(1.0),
				},
				LocalSecondaryIndexes: map[string]types.Capacity{
					"key0": {
						ReadCapacityUnits:  ptr.Float64(1.0),
						WriteCapacityUnits: ptr.Float64(1.0),
						CapacityUnits:      ptr.Float64(1.0),
					},
				},
				GlobalSecondaryIndexes: map[string]types.Capacity{
					"key0": {
						ReadCapacityUnits:  ptr.Float64(1.0),
						WriteCapacityUnits: ptr.Float64(1.0),
						CapacityUnits:      ptr.Float64(1.0),
					},
				},
			},
		},
		Responses: []types.ItemResponse{
			{
				Item: map[string]types.AttributeValue{
					"key0": &types.AttributeValueMemberS{
						Value: "__AttributeValueMemberS__",
					},
				},
			},
			{
				Item: map[string]types.AttributeValue{
					"key0": &types.AttributeValueMemberS{
						Value: "__AttributeValueMemberS__",
					},
				},
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("TransactGetItems.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.TransactGetItems(context.Background(), &TransactGetItemsInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "TransactGetItems.response", err)
	}
}

func TestCheckResponseSnapshot_TransactWriteItems(t *testing.T) {
	want := &TransactWriteItemsOutput{
		ConsumedCapacity: []types.ConsumedCapacity{
			{
				TableName:          ptr.String("__TableName__"),
				CapacityUnits:      ptr.Float64(1.0),
				ReadCapacityUnits:  ptr.Float64(1.0),
				WriteCapacityUnits: ptr.Float64(1.0),
				Table: &types.Capacity{
					ReadCapacityUnits:  ptr.Float64(1.0),
					WriteCapacityUnits: ptr.Float64(1.0),
					CapacityUnits:      ptr.Float64(1.0),
				},
				LocalSecondaryIndexes: map[string]types.Capacity{
					"key0": {
						ReadCapacityUnits:  ptr.Float64(1.0),
						WriteCapacityUnits: ptr.Float64(1.0),
						CapacityUnits:      ptr.Float64(1.0),
					},
				},
				GlobalSecondaryIndexes: map[string]types.Capacity{
					"key0": {
						ReadCapacityUnits:  ptr.Float64(1.0),
						WriteCapacityUnits: ptr.Float64(1.0),
						CapacityUnits:      ptr.Float64(1.0),
					},
				},
			},
			{
				TableName:          ptr.String("__TableName__"),
				CapacityUnits:      ptr.Float64(1.0),
				ReadCapacityUnits:  ptr.Float64(1.0),
				WriteCapacityUnits: ptr.Float64(1.0),
				Table: &types.Capacity{
					ReadCapacityUnits:  ptr.Float64(1.0),
					WriteCapacityUnits: ptr.Float64(1.0),
					CapacityUnits:      ptr.Float64(1.0),
				},
				LocalSecondaryIndexes: map[string]types.Capacity{
					"key0": {
						ReadCapacityUnits:  ptr.Float64(1.0),
						WriteCapacityUnits: ptr.Float64(1.0),
						CapacityUnits:      ptr.Float64(1.0),
					},
				},
				GlobalSecondaryIndexes: map[string]types.Capacity{
					"key0": {
						ReadCapacityUnits:  ptr.Float64(1.0),
						WriteCapacityUnits: ptr.Float64(1.0),
						CapacityUnits:      ptr.Float64(1.0),
					},
				},
			},
		},
		ItemCollectionMetrics: map[string][]types.ItemCollectionMetrics{
			"key0": {
				{
					ItemCollectionKey: map[string]types.AttributeValue{
						"key0": &types.AttributeValueMemberS{
							Value: "__AttributeValueMemberS__",
						},
					},
					SizeEstimateRangeGB: []float64{
						1.0,
						1.0,
					},
				},
				{
					ItemCollectionKey: map[string]types.AttributeValue{
						"key0": &types.AttributeValueMemberS{
							Value: "__AttributeValueMemberS__",
						},
					},
					SizeEstimateRangeGB: []float64{
						1.0,
						1.0,
					},
				},
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("TransactWriteItems.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.TransactWriteItems(context.Background(), &TransactWriteItemsInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "TransactWriteItems.response", err)
	}
}

func TestCheckResponseSnapshot_UntagResource(t *testing.T) {
	want := &UntagResourceOutput{}
	status, header, body, err := serdeRespReadSnapshot("UntagResource.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.UntagResource(context.Background(), &UntagResourceInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "UntagResource.response", err)
	}
}

func TestCheckResponseSnapshot_UpdateContinuousBackups(t *testing.T) {
	want := &UpdateContinuousBackupsOutput{
		ContinuousBackupsDescription: &types.ContinuousBackupsDescription{
			ContinuousBackupsStatus: types.ContinuousBackupsStatus("ENABLED"),
			PointInTimeRecoveryDescription: &types.PointInTimeRecoveryDescription{
				PointInTimeRecoveryStatus:  types.PointInTimeRecoveryStatus("ENABLED"),
				RecoveryPeriodInDays:       ptr.Int32(1),
				EarliestRestorableDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				LatestRestorableDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("UpdateContinuousBackups.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.UpdateContinuousBackups(context.Background(), &UpdateContinuousBackupsInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "UpdateContinuousBackups.response", err)
	}
}

func TestCheckResponseSnapshot_UpdateContributorInsights(t *testing.T) {
	want := &UpdateContributorInsightsOutput{
		TableName:                 ptr.String("__TableName__"),
		IndexName:                 ptr.String("__IndexName__"),
		ContributorInsightsStatus: types.ContributorInsightsStatus("ENABLING"),
		ContributorInsightsMode:   types.ContributorInsightsMode("ACCESSED_AND_THROTTLED_KEYS"),
	}
	status, header, body, err := serdeRespReadSnapshot("UpdateContributorInsights.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.UpdateContributorInsights(context.Background(), &UpdateContributorInsightsInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "UpdateContributorInsights.response", err)
	}
}

func TestCheckResponseSnapshot_UpdateGlobalTable(t *testing.T) {
	want := &UpdateGlobalTableOutput{
		GlobalTableDescription: &types.GlobalTableDescription{
			ReplicationGroup: []types.ReplicaDescription{
				{
					RegionName:                   ptr.String("__RegionName__"),
					ReplicaStatus:                types.ReplicaStatus("CREATING"),
					ReplicaArn:                   ptr.String("__ReplicaArn__"),
					ReplicaStatusDescription:     ptr.String("__ReplicaStatusDescription__"),
					ReplicaStatusPercentProgress: ptr.String("__ReplicaStatusPercentProgress__"),
					KMSMasterKeyId:               ptr.String("__KMSMasterKeyId__"),
					ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
						ReadCapacityUnits: ptr.Int64(1),
					},
					OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
						MaxReadRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.TableWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.TableStatus("CREATING"),
					},
					GlobalSecondaryIndexes: []types.ReplicaGlobalSecondaryIndexDescription{
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
					},
					ReplicaInaccessibleDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					ReplicaTableClassSummary: &types.TableClassSummary{
						TableClass:         types.TableClass("STANDARD"),
						LastUpdateDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					},
					GlobalTableSettingsReplicationMode: types.GlobalTableSettingsReplicationMode("ENABLED"),
				},
				{
					RegionName:                   ptr.String("__RegionName__"),
					ReplicaStatus:                types.ReplicaStatus("CREATING"),
					ReplicaArn:                   ptr.String("__ReplicaArn__"),
					ReplicaStatusDescription:     ptr.String("__ReplicaStatusDescription__"),
					ReplicaStatusPercentProgress: ptr.String("__ReplicaStatusPercentProgress__"),
					KMSMasterKeyId:               ptr.String("__KMSMasterKeyId__"),
					ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
						ReadCapacityUnits: ptr.Int64(1),
					},
					OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
						MaxReadRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.TableWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.TableStatus("CREATING"),
					},
					GlobalSecondaryIndexes: []types.ReplicaGlobalSecondaryIndexDescription{
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
					},
					ReplicaInaccessibleDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					ReplicaTableClassSummary: &types.TableClassSummary{
						TableClass:         types.TableClass("STANDARD"),
						LastUpdateDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					},
					GlobalTableSettingsReplicationMode: types.GlobalTableSettingsReplicationMode("ENABLED"),
				},
			},
			GlobalTableArn:    ptr.String("__GlobalTableArn__"),
			CreationDateTime:  ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			GlobalTableStatus: types.GlobalTableStatus("CREATING"),
			GlobalTableName:   ptr.String("__GlobalTableName__"),
		},
	}
	status, header, body, err := serdeRespReadSnapshot("UpdateGlobalTable.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.UpdateGlobalTable(context.Background(), &UpdateGlobalTableInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "UpdateGlobalTable.response", err)
	}
}

func TestCheckResponseSnapshot_UpdateGlobalTableSettings(t *testing.T) {
	want := &UpdateGlobalTableSettingsOutput{
		GlobalTableName: ptr.String("__GlobalTableName__"),
		ReplicaSettings: []types.ReplicaSettingsDescription{
			{
				RegionName:    ptr.String("__RegionName__"),
				ReplicaStatus: types.ReplicaStatus("CREATING"),
				ReplicaBillingModeSummary: &types.BillingModeSummary{
					BillingMode:                       types.BillingMode("PROVISIONED"),
					LastUpdateToPayPerRequestDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				},
				ReplicaProvisionedReadCapacityUnits: ptr.Int64(1),
				ReplicaProvisionedReadCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
					MinimumUnits:        ptr.Int64(1),
					MaximumUnits:        ptr.Int64(1),
					AutoScalingDisabled: ptr.Bool(true),
					AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
					ScalingPolicies: []types.AutoScalingPolicyDescription{
						{
							PolicyName: ptr.String("__PolicyName__"),
							TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
								DisableScaleIn:   ptr.Bool(true),
								ScaleInCooldown:  ptr.Int32(1),
								ScaleOutCooldown: ptr.Int32(1),
								TargetValue:      ptr.Float64(1.0),
							},
						},
						{
							PolicyName: ptr.String("__PolicyName__"),
							TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
								DisableScaleIn:   ptr.Bool(true),
								ScaleInCooldown:  ptr.Int32(1),
								ScaleOutCooldown: ptr.Int32(1),
								TargetValue:      ptr.Float64(1.0),
							},
						},
					},
				},
				ReplicaProvisionedWriteCapacityUnits: ptr.Int64(1),
				ReplicaProvisionedWriteCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
					MinimumUnits:        ptr.Int64(1),
					MaximumUnits:        ptr.Int64(1),
					AutoScalingDisabled: ptr.Bool(true),
					AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
					ScalingPolicies: []types.AutoScalingPolicyDescription{
						{
							PolicyName: ptr.String("__PolicyName__"),
							TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
								DisableScaleIn:   ptr.Bool(true),
								ScaleInCooldown:  ptr.Int32(1),
								ScaleOutCooldown: ptr.Int32(1),
								TargetValue:      ptr.Float64(1.0),
							},
						},
						{
							PolicyName: ptr.String("__PolicyName__"),
							TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
								DisableScaleIn:   ptr.Bool(true),
								ScaleInCooldown:  ptr.Int32(1),
								ScaleOutCooldown: ptr.Int32(1),
								TargetValue:      ptr.Float64(1.0),
							},
						},
					},
				},
				ReplicaGlobalSecondaryIndexSettings: []types.ReplicaGlobalSecondaryIndexSettingsDescription{
					{
						IndexName:                    ptr.String("__IndexName__"),
						IndexStatus:                  types.IndexStatus("CREATING"),
						ProvisionedReadCapacityUnits: ptr.Int64(1),
						ProvisionedReadCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
							MinimumUnits:        ptr.Int64(1),
							MaximumUnits:        ptr.Int64(1),
							AutoScalingDisabled: ptr.Bool(true),
							AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
							ScalingPolicies: []types.AutoScalingPolicyDescription{
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
							},
						},
						ProvisionedWriteCapacityUnits: ptr.Int64(1),
						ProvisionedWriteCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
							MinimumUnits:        ptr.Int64(1),
							MaximumUnits:        ptr.Int64(1),
							AutoScalingDisabled: ptr.Bool(true),
							AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
							ScalingPolicies: []types.AutoScalingPolicyDescription{
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
							},
						},
					},
					{
						IndexName:                    ptr.String("__IndexName__"),
						IndexStatus:                  types.IndexStatus("CREATING"),
						ProvisionedReadCapacityUnits: ptr.Int64(1),
						ProvisionedReadCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
							MinimumUnits:        ptr.Int64(1),
							MaximumUnits:        ptr.Int64(1),
							AutoScalingDisabled: ptr.Bool(true),
							AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
							ScalingPolicies: []types.AutoScalingPolicyDescription{
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
							},
						},
						ProvisionedWriteCapacityUnits: ptr.Int64(1),
						ProvisionedWriteCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
							MinimumUnits:        ptr.Int64(1),
							MaximumUnits:        ptr.Int64(1),
							AutoScalingDisabled: ptr.Bool(true),
							AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
							ScalingPolicies: []types.AutoScalingPolicyDescription{
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
							},
						},
					},
				},
				ReplicaTableClassSummary: &types.TableClassSummary{
					TableClass:         types.TableClass("STANDARD"),
					LastUpdateDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				},
			},
			{
				RegionName:    ptr.String("__RegionName__"),
				ReplicaStatus: types.ReplicaStatus("CREATING"),
				ReplicaBillingModeSummary: &types.BillingModeSummary{
					BillingMode:                       types.BillingMode("PROVISIONED"),
					LastUpdateToPayPerRequestDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				},
				ReplicaProvisionedReadCapacityUnits: ptr.Int64(1),
				ReplicaProvisionedReadCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
					MinimumUnits:        ptr.Int64(1),
					MaximumUnits:        ptr.Int64(1),
					AutoScalingDisabled: ptr.Bool(true),
					AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
					ScalingPolicies: []types.AutoScalingPolicyDescription{
						{
							PolicyName: ptr.String("__PolicyName__"),
							TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
								DisableScaleIn:   ptr.Bool(true),
								ScaleInCooldown:  ptr.Int32(1),
								ScaleOutCooldown: ptr.Int32(1),
								TargetValue:      ptr.Float64(1.0),
							},
						},
						{
							PolicyName: ptr.String("__PolicyName__"),
							TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
								DisableScaleIn:   ptr.Bool(true),
								ScaleInCooldown:  ptr.Int32(1),
								ScaleOutCooldown: ptr.Int32(1),
								TargetValue:      ptr.Float64(1.0),
							},
						},
					},
				},
				ReplicaProvisionedWriteCapacityUnits: ptr.Int64(1),
				ReplicaProvisionedWriteCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
					MinimumUnits:        ptr.Int64(1),
					MaximumUnits:        ptr.Int64(1),
					AutoScalingDisabled: ptr.Bool(true),
					AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
					ScalingPolicies: []types.AutoScalingPolicyDescription{
						{
							PolicyName: ptr.String("__PolicyName__"),
							TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
								DisableScaleIn:   ptr.Bool(true),
								ScaleInCooldown:  ptr.Int32(1),
								ScaleOutCooldown: ptr.Int32(1),
								TargetValue:      ptr.Float64(1.0),
							},
						},
						{
							PolicyName: ptr.String("__PolicyName__"),
							TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
								DisableScaleIn:   ptr.Bool(true),
								ScaleInCooldown:  ptr.Int32(1),
								ScaleOutCooldown: ptr.Int32(1),
								TargetValue:      ptr.Float64(1.0),
							},
						},
					},
				},
				ReplicaGlobalSecondaryIndexSettings: []types.ReplicaGlobalSecondaryIndexSettingsDescription{
					{
						IndexName:                    ptr.String("__IndexName__"),
						IndexStatus:                  types.IndexStatus("CREATING"),
						ProvisionedReadCapacityUnits: ptr.Int64(1),
						ProvisionedReadCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
							MinimumUnits:        ptr.Int64(1),
							MaximumUnits:        ptr.Int64(1),
							AutoScalingDisabled: ptr.Bool(true),
							AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
							ScalingPolicies: []types.AutoScalingPolicyDescription{
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
							},
						},
						ProvisionedWriteCapacityUnits: ptr.Int64(1),
						ProvisionedWriteCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
							MinimumUnits:        ptr.Int64(1),
							MaximumUnits:        ptr.Int64(1),
							AutoScalingDisabled: ptr.Bool(true),
							AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
							ScalingPolicies: []types.AutoScalingPolicyDescription{
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
							},
						},
					},
					{
						IndexName:                    ptr.String("__IndexName__"),
						IndexStatus:                  types.IndexStatus("CREATING"),
						ProvisionedReadCapacityUnits: ptr.Int64(1),
						ProvisionedReadCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
							MinimumUnits:        ptr.Int64(1),
							MaximumUnits:        ptr.Int64(1),
							AutoScalingDisabled: ptr.Bool(true),
							AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
							ScalingPolicies: []types.AutoScalingPolicyDescription{
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
							},
						},
						ProvisionedWriteCapacityUnits: ptr.Int64(1),
						ProvisionedWriteCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
							MinimumUnits:        ptr.Int64(1),
							MaximumUnits:        ptr.Int64(1),
							AutoScalingDisabled: ptr.Bool(true),
							AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
							ScalingPolicies: []types.AutoScalingPolicyDescription{
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
								{
									PolicyName: ptr.String("__PolicyName__"),
									TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
										DisableScaleIn:   ptr.Bool(true),
										ScaleInCooldown:  ptr.Int32(1),
										ScaleOutCooldown: ptr.Int32(1),
										TargetValue:      ptr.Float64(1.0),
									},
								},
							},
						},
					},
				},
				ReplicaTableClassSummary: &types.TableClassSummary{
					TableClass:         types.TableClass("STANDARD"),
					LastUpdateDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				},
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("UpdateGlobalTableSettings.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.UpdateGlobalTableSettings(context.Background(), &UpdateGlobalTableSettingsInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "UpdateGlobalTableSettings.response", err)
	}
}

func TestCheckResponseSnapshot_UpdateItem(t *testing.T) {
	want := &UpdateItemOutput{
		Attributes: map[string]types.AttributeValue{
			"key0": &types.AttributeValueMemberS{
				Value: "__AttributeValueMemberS__",
			},
		},
		ConsumedCapacity: &types.ConsumedCapacity{
			TableName:          ptr.String("__TableName__"),
			CapacityUnits:      ptr.Float64(1.0),
			ReadCapacityUnits:  ptr.Float64(1.0),
			WriteCapacityUnits: ptr.Float64(1.0),
			Table: &types.Capacity{
				ReadCapacityUnits:  ptr.Float64(1.0),
				WriteCapacityUnits: ptr.Float64(1.0),
				CapacityUnits:      ptr.Float64(1.0),
			},
			LocalSecondaryIndexes: map[string]types.Capacity{
				"key0": {
					ReadCapacityUnits:  ptr.Float64(1.0),
					WriteCapacityUnits: ptr.Float64(1.0),
					CapacityUnits:      ptr.Float64(1.0),
				},
			},
			GlobalSecondaryIndexes: map[string]types.Capacity{
				"key0": {
					ReadCapacityUnits:  ptr.Float64(1.0),
					WriteCapacityUnits: ptr.Float64(1.0),
					CapacityUnits:      ptr.Float64(1.0),
				},
			},
		},
		ItemCollectionMetrics: &types.ItemCollectionMetrics{
			ItemCollectionKey: map[string]types.AttributeValue{
				"key0": &types.AttributeValueMemberS{
					Value: "__AttributeValueMemberS__",
				},
			},
			SizeEstimateRangeGB: []float64{
				1.0,
				1.0,
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("UpdateItem.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.UpdateItem(context.Background(), &UpdateItemInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "UpdateItem.response", err)
	}
}

func TestCheckResponseSnapshot_UpdateKinesisStreamingDestination(t *testing.T) {
	want := &UpdateKinesisStreamingDestinationOutput{
		TableName:         ptr.String("__TableName__"),
		StreamArn:         ptr.String("__StreamArn__"),
		DestinationStatus: types.DestinationStatus("ENABLING"),
		UpdateKinesisStreamingConfiguration: &types.UpdateKinesisStreamingConfiguration{
			ApproximateCreationDateTimePrecision: types.ApproximateCreationDateTimePrecision("MILLISECOND"),
		},
	}
	status, header, body, err := serdeRespReadSnapshot("UpdateKinesisStreamingDestination.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.UpdateKinesisStreamingDestination(context.Background(), &UpdateKinesisStreamingDestinationInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "UpdateKinesisStreamingDestination.response", err)
	}
}

func TestCheckResponseSnapshot_UpdateTable(t *testing.T) {
	want := &UpdateTableOutput{
		TableDescription: &types.TableDescription{
			AttributeDefinitions: []types.AttributeDefinition{
				{
					AttributeName: ptr.String("__AttributeName__"),
					AttributeType: types.ScalarAttributeType("S"),
				},
				{
					AttributeName: ptr.String("__AttributeName__"),
					AttributeType: types.ScalarAttributeType("S"),
				},
			},
			TableName: ptr.String("__TableName__"),
			KeySchema: []types.KeySchemaElement{
				{
					AttributeName: ptr.String("__AttributeName__"),
					KeyType:       types.KeyType("HASH"),
				},
				{
					AttributeName: ptr.String("__AttributeName__"),
					KeyType:       types.KeyType("HASH"),
				},
			},
			TableStatus:      types.TableStatus("CREATING"),
			CreationDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			ProvisionedThroughput: &types.ProvisionedThroughputDescription{
				LastIncreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				LastDecreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				NumberOfDecreasesToday: ptr.Int64(1),
				ReadCapacityUnits:      ptr.Int64(1),
				WriteCapacityUnits:     ptr.Int64(1),
			},
			TableSizeBytes: ptr.Int64(1),
			ItemCount:      ptr.Int64(1),
			TableArn:       ptr.String("__TableArn__"),
			TableId:        ptr.String("__TableId__"),
			BillingModeSummary: &types.BillingModeSummary{
				BillingMode:                       types.BillingMode("PROVISIONED"),
				LastUpdateToPayPerRequestDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			},
			LocalSecondaryIndexes: []types.LocalSecondaryIndexDescription{
				{
					IndexName: ptr.String("__IndexName__"),
					KeySchema: []types.KeySchemaElement{
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
					},
					Projection: &types.Projection{
						ProjectionType: types.ProjectionType("ALL"),
						NonKeyAttributes: []string{
							"__Member__",
							"__Member__",
						},
					},
					IndexSizeBytes: ptr.Int64(1),
					ItemCount:      ptr.Int64(1),
					IndexArn:       ptr.String("__IndexArn__"),
				},
				{
					IndexName: ptr.String("__IndexName__"),
					KeySchema: []types.KeySchemaElement{
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
					},
					Projection: &types.Projection{
						ProjectionType: types.ProjectionType("ALL"),
						NonKeyAttributes: []string{
							"__Member__",
							"__Member__",
						},
					},
					IndexSizeBytes: ptr.Int64(1),
					ItemCount:      ptr.Int64(1),
					IndexArn:       ptr.String("__IndexArn__"),
				},
			},
			GlobalSecondaryIndexes: []types.GlobalSecondaryIndexDescription{
				{
					IndexName: ptr.String("__IndexName__"),
					KeySchema: []types.KeySchemaElement{
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
					},
					Projection: &types.Projection{
						ProjectionType: types.ProjectionType("ALL"),
						NonKeyAttributes: []string{
							"__Member__",
							"__Member__",
						},
					},
					IndexStatus: types.IndexStatus("CREATING"),
					Backfilling: ptr.Bool(true),
					ProvisionedThroughput: &types.ProvisionedThroughputDescription{
						LastIncreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
						LastDecreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
						NumberOfDecreasesToday: ptr.Int64(1),
						ReadCapacityUnits:      ptr.Int64(1),
						WriteCapacityUnits:     ptr.Int64(1),
					},
					IndexSizeBytes: ptr.Int64(1),
					ItemCount:      ptr.Int64(1),
					IndexArn:       ptr.String("__IndexArn__"),
					OnDemandThroughput: &types.OnDemandThroughput{
						MaxReadRequestUnits:  ptr.Int64(1),
						MaxWriteRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.IndexStatus("CREATING"),
					},
				},
				{
					IndexName: ptr.String("__IndexName__"),
					KeySchema: []types.KeySchemaElement{
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
						{
							AttributeName: ptr.String("__AttributeName__"),
							KeyType:       types.KeyType("HASH"),
						},
					},
					Projection: &types.Projection{
						ProjectionType: types.ProjectionType("ALL"),
						NonKeyAttributes: []string{
							"__Member__",
							"__Member__",
						},
					},
					IndexStatus: types.IndexStatus("CREATING"),
					Backfilling: ptr.Bool(true),
					ProvisionedThroughput: &types.ProvisionedThroughputDescription{
						LastIncreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
						LastDecreaseDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
						NumberOfDecreasesToday: ptr.Int64(1),
						ReadCapacityUnits:      ptr.Int64(1),
						WriteCapacityUnits:     ptr.Int64(1),
					},
					IndexSizeBytes: ptr.Int64(1),
					ItemCount:      ptr.Int64(1),
					IndexArn:       ptr.String("__IndexArn__"),
					OnDemandThroughput: &types.OnDemandThroughput{
						MaxReadRequestUnits:  ptr.Int64(1),
						MaxWriteRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.IndexStatus("CREATING"),
					},
				},
			},
			StreamSpecification: &types.StreamSpecification{
				StreamEnabled:  ptr.Bool(true),
				StreamViewType: types.StreamViewType("NEW_IMAGE"),
			},
			LatestStreamLabel:  ptr.String("__LatestStreamLabel__"),
			LatestStreamArn:    ptr.String("__LatestStreamArn__"),
			GlobalTableVersion: ptr.String("__GlobalTableVersion__"),
			Replicas: []types.ReplicaDescription{
				{
					RegionName:                   ptr.String("__RegionName__"),
					ReplicaStatus:                types.ReplicaStatus("CREATING"),
					ReplicaArn:                   ptr.String("__ReplicaArn__"),
					ReplicaStatusDescription:     ptr.String("__ReplicaStatusDescription__"),
					ReplicaStatusPercentProgress: ptr.String("__ReplicaStatusPercentProgress__"),
					KMSMasterKeyId:               ptr.String("__KMSMasterKeyId__"),
					ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
						ReadCapacityUnits: ptr.Int64(1),
					},
					OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
						MaxReadRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.TableWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.TableStatus("CREATING"),
					},
					GlobalSecondaryIndexes: []types.ReplicaGlobalSecondaryIndexDescription{
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
					},
					ReplicaInaccessibleDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					ReplicaTableClassSummary: &types.TableClassSummary{
						TableClass:         types.TableClass("STANDARD"),
						LastUpdateDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					},
					GlobalTableSettingsReplicationMode: types.GlobalTableSettingsReplicationMode("ENABLED"),
				},
				{
					RegionName:                   ptr.String("__RegionName__"),
					ReplicaStatus:                types.ReplicaStatus("CREATING"),
					ReplicaArn:                   ptr.String("__ReplicaArn__"),
					ReplicaStatusDescription:     ptr.String("__ReplicaStatusDescription__"),
					ReplicaStatusPercentProgress: ptr.String("__ReplicaStatusPercentProgress__"),
					KMSMasterKeyId:               ptr.String("__KMSMasterKeyId__"),
					ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
						ReadCapacityUnits: ptr.Int64(1),
					},
					OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
						MaxReadRequestUnits: ptr.Int64(1),
					},
					WarmThroughput: &types.TableWarmThroughputDescription{
						ReadUnitsPerSecond:  ptr.Int64(1),
						WriteUnitsPerSecond: ptr.Int64(1),
						Status:              types.TableStatus("CREATING"),
					},
					GlobalSecondaryIndexes: []types.ReplicaGlobalSecondaryIndexDescription{
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
						{
							IndexName: ptr.String("__IndexName__"),
							ProvisionedThroughputOverride: &types.ProvisionedThroughputOverride{
								ReadCapacityUnits: ptr.Int64(1),
							},
							OnDemandThroughputOverride: &types.OnDemandThroughputOverride{
								MaxReadRequestUnits: ptr.Int64(1),
							},
							WarmThroughput: &types.GlobalSecondaryIndexWarmThroughputDescription{
								ReadUnitsPerSecond:  ptr.Int64(1),
								WriteUnitsPerSecond: ptr.Int64(1),
								Status:              types.IndexStatus("CREATING"),
							},
						},
					},
					ReplicaInaccessibleDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					ReplicaTableClassSummary: &types.TableClassSummary{
						TableClass:         types.TableClass("STANDARD"),
						LastUpdateDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
					},
					GlobalTableSettingsReplicationMode: types.GlobalTableSettingsReplicationMode("ENABLED"),
				},
			},
			GlobalTableWitnesses: []types.GlobalTableWitnessDescription{
				{
					RegionName:    ptr.String("__RegionName__"),
					WitnessStatus: types.WitnessStatus("CREATING"),
				},
				{
					RegionName:    ptr.String("__RegionName__"),
					WitnessStatus: types.WitnessStatus("CREATING"),
				},
			},
			GlobalTableSettingsReplicationMode: types.GlobalTableSettingsReplicationMode("ENABLED"),
			RestoreSummary: &types.RestoreSummary{
				SourceBackupArn:   ptr.String("__SourceBackupArn__"),
				SourceTableArn:    ptr.String("__SourceTableArn__"),
				RestoreDateTime:   ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				RestoreInProgress: ptr.Bool(true),
			},
			SSEDescription: &types.SSEDescription{
				Status:                         types.SSEStatus("ENABLING"),
				SSEType:                        types.SSEType("AES256"),
				KMSMasterKeyArn:                ptr.String("__KMSMasterKeyArn__"),
				InaccessibleEncryptionDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			},
			ArchivalSummary: &types.ArchivalSummary{
				ArchivalDateTime:  ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
				ArchivalReason:    ptr.String("__ArchivalReason__"),
				ArchivalBackupArn: ptr.String("__ArchivalBackupArn__"),
			},
			TableClassSummary: &types.TableClassSummary{
				TableClass:         types.TableClass("STANDARD"),
				LastUpdateDateTime: ptr.Time(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),
			},
			DeletionProtectionEnabled: ptr.Bool(true),
			OnDemandThroughput: &types.OnDemandThroughput{
				MaxReadRequestUnits:  ptr.Int64(1),
				MaxWriteRequestUnits: ptr.Int64(1),
			},
			WarmThroughput: &types.TableWarmThroughputDescription{
				ReadUnitsPerSecond:  ptr.Int64(1),
				WriteUnitsPerSecond: ptr.Int64(1),
				Status:              types.TableStatus("CREATING"),
			},
			MultiRegionConsistency: types.MultiRegionConsistency("EVENTUAL"),
		},
	}
	status, header, body, err := serdeRespReadSnapshot("UpdateTable.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.UpdateTable(context.Background(), &UpdateTableInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "UpdateTable.response", err)
	}
}

func TestCheckResponseSnapshot_UpdateTableReplicaAutoScaling(t *testing.T) {
	want := &UpdateTableReplicaAutoScalingOutput{
		TableAutoScalingDescription: &types.TableAutoScalingDescription{
			TableName:   ptr.String("__TableName__"),
			TableStatus: types.TableStatus("CREATING"),
			Replicas: []types.ReplicaAutoScalingDescription{
				{
					RegionName: ptr.String("__RegionName__"),
					GlobalSecondaryIndexes: []types.ReplicaGlobalSecondaryIndexAutoScalingDescription{
						{
							IndexName:   ptr.String("__IndexName__"),
							IndexStatus: types.IndexStatus("CREATING"),
							ProvisionedReadCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
								MinimumUnits:        ptr.Int64(1),
								MaximumUnits:        ptr.Int64(1),
								AutoScalingDisabled: ptr.Bool(true),
								AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
								ScalingPolicies: []types.AutoScalingPolicyDescription{
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
								},
							},
							ProvisionedWriteCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
								MinimumUnits:        ptr.Int64(1),
								MaximumUnits:        ptr.Int64(1),
								AutoScalingDisabled: ptr.Bool(true),
								AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
								ScalingPolicies: []types.AutoScalingPolicyDescription{
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
								},
							},
						},
						{
							IndexName:   ptr.String("__IndexName__"),
							IndexStatus: types.IndexStatus("CREATING"),
							ProvisionedReadCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
								MinimumUnits:        ptr.Int64(1),
								MaximumUnits:        ptr.Int64(1),
								AutoScalingDisabled: ptr.Bool(true),
								AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
								ScalingPolicies: []types.AutoScalingPolicyDescription{
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
								},
							},
							ProvisionedWriteCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
								MinimumUnits:        ptr.Int64(1),
								MaximumUnits:        ptr.Int64(1),
								AutoScalingDisabled: ptr.Bool(true),
								AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
								ScalingPolicies: []types.AutoScalingPolicyDescription{
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
								},
							},
						},
					},
					ReplicaProvisionedReadCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
						MinimumUnits:        ptr.Int64(1),
						MaximumUnits:        ptr.Int64(1),
						AutoScalingDisabled: ptr.Bool(true),
						AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
						ScalingPolicies: []types.AutoScalingPolicyDescription{
							{
								PolicyName: ptr.String("__PolicyName__"),
								TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
									DisableScaleIn:   ptr.Bool(true),
									ScaleInCooldown:  ptr.Int32(1),
									ScaleOutCooldown: ptr.Int32(1),
									TargetValue:      ptr.Float64(1.0),
								},
							},
							{
								PolicyName: ptr.String("__PolicyName__"),
								TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
									DisableScaleIn:   ptr.Bool(true),
									ScaleInCooldown:  ptr.Int32(1),
									ScaleOutCooldown: ptr.Int32(1),
									TargetValue:      ptr.Float64(1.0),
								},
							},
						},
					},
					ReplicaProvisionedWriteCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
						MinimumUnits:        ptr.Int64(1),
						MaximumUnits:        ptr.Int64(1),
						AutoScalingDisabled: ptr.Bool(true),
						AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
						ScalingPolicies: []types.AutoScalingPolicyDescription{
							{
								PolicyName: ptr.String("__PolicyName__"),
								TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
									DisableScaleIn:   ptr.Bool(true),
									ScaleInCooldown:  ptr.Int32(1),
									ScaleOutCooldown: ptr.Int32(1),
									TargetValue:      ptr.Float64(1.0),
								},
							},
							{
								PolicyName: ptr.String("__PolicyName__"),
								TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
									DisableScaleIn:   ptr.Bool(true),
									ScaleInCooldown:  ptr.Int32(1),
									ScaleOutCooldown: ptr.Int32(1),
									TargetValue:      ptr.Float64(1.0),
								},
							},
						},
					},
					ReplicaStatus: types.ReplicaStatus("CREATING"),
				},
				{
					RegionName: ptr.String("__RegionName__"),
					GlobalSecondaryIndexes: []types.ReplicaGlobalSecondaryIndexAutoScalingDescription{
						{
							IndexName:   ptr.String("__IndexName__"),
							IndexStatus: types.IndexStatus("CREATING"),
							ProvisionedReadCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
								MinimumUnits:        ptr.Int64(1),
								MaximumUnits:        ptr.Int64(1),
								AutoScalingDisabled: ptr.Bool(true),
								AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
								ScalingPolicies: []types.AutoScalingPolicyDescription{
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
								},
							},
							ProvisionedWriteCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
								MinimumUnits:        ptr.Int64(1),
								MaximumUnits:        ptr.Int64(1),
								AutoScalingDisabled: ptr.Bool(true),
								AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
								ScalingPolicies: []types.AutoScalingPolicyDescription{
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
								},
							},
						},
						{
							IndexName:   ptr.String("__IndexName__"),
							IndexStatus: types.IndexStatus("CREATING"),
							ProvisionedReadCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
								MinimumUnits:        ptr.Int64(1),
								MaximumUnits:        ptr.Int64(1),
								AutoScalingDisabled: ptr.Bool(true),
								AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
								ScalingPolicies: []types.AutoScalingPolicyDescription{
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
								},
							},
							ProvisionedWriteCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
								MinimumUnits:        ptr.Int64(1),
								MaximumUnits:        ptr.Int64(1),
								AutoScalingDisabled: ptr.Bool(true),
								AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
								ScalingPolicies: []types.AutoScalingPolicyDescription{
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
									{
										PolicyName: ptr.String("__PolicyName__"),
										TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
											DisableScaleIn:   ptr.Bool(true),
											ScaleInCooldown:  ptr.Int32(1),
											ScaleOutCooldown: ptr.Int32(1),
											TargetValue:      ptr.Float64(1.0),
										},
									},
								},
							},
						},
					},
					ReplicaProvisionedReadCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
						MinimumUnits:        ptr.Int64(1),
						MaximumUnits:        ptr.Int64(1),
						AutoScalingDisabled: ptr.Bool(true),
						AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
						ScalingPolicies: []types.AutoScalingPolicyDescription{
							{
								PolicyName: ptr.String("__PolicyName__"),
								TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
									DisableScaleIn:   ptr.Bool(true),
									ScaleInCooldown:  ptr.Int32(1),
									ScaleOutCooldown: ptr.Int32(1),
									TargetValue:      ptr.Float64(1.0),
								},
							},
							{
								PolicyName: ptr.String("__PolicyName__"),
								TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
									DisableScaleIn:   ptr.Bool(true),
									ScaleInCooldown:  ptr.Int32(1),
									ScaleOutCooldown: ptr.Int32(1),
									TargetValue:      ptr.Float64(1.0),
								},
							},
						},
					},
					ReplicaProvisionedWriteCapacityAutoScalingSettings: &types.AutoScalingSettingsDescription{
						MinimumUnits:        ptr.Int64(1),
						MaximumUnits:        ptr.Int64(1),
						AutoScalingDisabled: ptr.Bool(true),
						AutoScalingRoleArn:  ptr.String("__AutoScalingRoleArn__"),
						ScalingPolicies: []types.AutoScalingPolicyDescription{
							{
								PolicyName: ptr.String("__PolicyName__"),
								TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
									DisableScaleIn:   ptr.Bool(true),
									ScaleInCooldown:  ptr.Int32(1),
									ScaleOutCooldown: ptr.Int32(1),
									TargetValue:      ptr.Float64(1.0),
								},
							},
							{
								PolicyName: ptr.String("__PolicyName__"),
								TargetTrackingScalingPolicyConfiguration: &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{
									DisableScaleIn:   ptr.Bool(true),
									ScaleInCooldown:  ptr.Int32(1),
									ScaleOutCooldown: ptr.Int32(1),
									TargetValue:      ptr.Float64(1.0),
								},
							},
						},
					},
					ReplicaStatus: types.ReplicaStatus("CREATING"),
				},
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("UpdateTableReplicaAutoScaling.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.UpdateTableReplicaAutoScaling(context.Background(), &UpdateTableReplicaAutoScalingInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "UpdateTableReplicaAutoScaling.response", err)
	}
}

func TestCheckResponseSnapshot_UpdateTimeToLive(t *testing.T) {
	want := &UpdateTimeToLiveOutput{
		TimeToLiveSpecification: &types.TimeToLiveSpecification{
			Enabled:       ptr.Bool(true),
			AttributeName: ptr.String("__AttributeName__"),
		},
	}
	status, header, body, err := serdeRespReadSnapshot("UpdateTimeToLive.response")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	got, err := svc.UpdateTimeToLive(context.Background(), &UpdateTimeToLiveInput{})
	if err != nil {
		t.Fatal(err)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("response snapshot mismatch for %s: %v", "UpdateTimeToLive.response", err)
	}
}

func TestCheckResponseSnapshot_Error_BackupInUseException(t *testing.T) {
	want := &types.BackupInUseException{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("BackupInUseException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.CreateBackup(context.Background(), &CreateBackupInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.BackupInUseException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.BackupInUseException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "BackupInUseException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_BackupNotFoundException(t *testing.T) {
	want := &types.BackupNotFoundException{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("BackupNotFoundException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.DeleteBackup(context.Background(), &DeleteBackupInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.BackupNotFoundException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.BackupNotFoundException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "BackupNotFoundException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_ConditionalCheckFailedException(t *testing.T) {
	want := &types.ConditionalCheckFailedException{
		Message: ptr.String("__Message__"),
		Item: map[string]types.AttributeValue{
			"key0": &types.AttributeValueMemberS{
				Value: "__AttributeValueMemberS__",
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("ConditionalCheckFailedException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.DeleteItem(context.Background(), &DeleteItemInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.ConditionalCheckFailedException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.ConditionalCheckFailedException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "ConditionalCheckFailedException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_ContinuousBackupsUnavailableException(t *testing.T) {
	want := &types.ContinuousBackupsUnavailableException{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("ContinuousBackupsUnavailableException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.CreateBackup(context.Background(), &CreateBackupInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.ContinuousBackupsUnavailableException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.ContinuousBackupsUnavailableException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "ContinuousBackupsUnavailableException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_DuplicateItemException(t *testing.T) {
	want := &types.DuplicateItemException{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("DuplicateItemException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.ExecuteStatement(context.Background(), &ExecuteStatementInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.DuplicateItemException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.DuplicateItemException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "DuplicateItemException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_ExportConflictException(t *testing.T) {
	want := &types.ExportConflictException{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("ExportConflictException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.ExportTableToPointInTime(context.Background(), &ExportTableToPointInTimeInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.ExportConflictException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.ExportConflictException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "ExportConflictException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_ExportNotFoundException(t *testing.T) {
	want := &types.ExportNotFoundException{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("ExportNotFoundException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.DescribeExport(context.Background(), &DescribeExportInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.ExportNotFoundException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.ExportNotFoundException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "ExportNotFoundException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_GlobalTableAlreadyExistsException(t *testing.T) {
	want := &types.GlobalTableAlreadyExistsException{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("GlobalTableAlreadyExistsException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.CreateGlobalTable(context.Background(), &CreateGlobalTableInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.GlobalTableAlreadyExistsException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.GlobalTableAlreadyExistsException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "GlobalTableAlreadyExistsException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_GlobalTableNotFoundException(t *testing.T) {
	want := &types.GlobalTableNotFoundException{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("GlobalTableNotFoundException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.DescribeGlobalTable(context.Background(), &DescribeGlobalTableInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.GlobalTableNotFoundException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.GlobalTableNotFoundException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "GlobalTableNotFoundException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_IdempotentParameterMismatchException(t *testing.T) {
	want := &types.IdempotentParameterMismatchException{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("IdempotentParameterMismatchException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.ExecuteTransaction(context.Background(), &ExecuteTransactionInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.IdempotentParameterMismatchException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.IdempotentParameterMismatchException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "IdempotentParameterMismatchException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_ImportConflictException(t *testing.T) {
	want := &types.ImportConflictException{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("ImportConflictException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.ImportTable(context.Background(), &ImportTableInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.ImportConflictException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.ImportConflictException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "ImportConflictException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_ImportNotFoundException(t *testing.T) {
	want := &types.ImportNotFoundException{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("ImportNotFoundException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.DescribeImport(context.Background(), &DescribeImportInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.ImportNotFoundException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.ImportNotFoundException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "ImportNotFoundException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_IndexNotFoundException(t *testing.T) {
	want := &types.IndexNotFoundException{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("IndexNotFoundException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.UpdateGlobalTableSettings(context.Background(), &UpdateGlobalTableSettingsInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.IndexNotFoundException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.IndexNotFoundException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "IndexNotFoundException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_InternalServerError(t *testing.T) {
	want := &types.InternalServerError{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("InternalServerError.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.BatchExecuteStatement(context.Background(), &BatchExecuteStatementInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.InternalServerError
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.InternalServerError, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "InternalServerError.error", err)
	}
}

func TestCheckResponseSnapshot_Error_InvalidEndpointException(t *testing.T) {
	want := &types.InvalidEndpointException{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("InvalidEndpointException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.BatchGetItem(context.Background(), &BatchGetItemInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.InvalidEndpointException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.InvalidEndpointException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "InvalidEndpointException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_InvalidExportTimeException(t *testing.T) {
	want := &types.InvalidExportTimeException{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("InvalidExportTimeException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.ExportTableToPointInTime(context.Background(), &ExportTableToPointInTimeInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.InvalidExportTimeException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.InvalidExportTimeException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "InvalidExportTimeException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_InvalidRestoreTimeException(t *testing.T) {
	want := &types.InvalidRestoreTimeException{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("InvalidRestoreTimeException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.RestoreTableToPointInTime(context.Background(), &RestoreTableToPointInTimeInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.InvalidRestoreTimeException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.InvalidRestoreTimeException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "InvalidRestoreTimeException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_ItemCollectionSizeLimitExceededException(t *testing.T) {
	want := &types.ItemCollectionSizeLimitExceededException{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("ItemCollectionSizeLimitExceededException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.BatchWriteItem(context.Background(), &BatchWriteItemInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.ItemCollectionSizeLimitExceededException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.ItemCollectionSizeLimitExceededException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "ItemCollectionSizeLimitExceededException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_LimitExceededException(t *testing.T) {
	want := &types.LimitExceededException{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("LimitExceededException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.CreateBackup(context.Background(), &CreateBackupInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.LimitExceededException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.LimitExceededException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "LimitExceededException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_PointInTimeRecoveryUnavailableException(t *testing.T) {
	want := &types.PointInTimeRecoveryUnavailableException{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("PointInTimeRecoveryUnavailableException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.ExportTableToPointInTime(context.Background(), &ExportTableToPointInTimeInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.PointInTimeRecoveryUnavailableException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.PointInTimeRecoveryUnavailableException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "PointInTimeRecoveryUnavailableException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_PolicyNotFoundException(t *testing.T) {
	want := &types.PolicyNotFoundException{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("PolicyNotFoundException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.DeleteResourcePolicy(context.Background(), &DeleteResourcePolicyInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.PolicyNotFoundException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.PolicyNotFoundException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "PolicyNotFoundException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_ProvisionedThroughputExceededException(t *testing.T) {
	want := &types.ProvisionedThroughputExceededException{
		Message: ptr.String("__Message__"),
		ThrottlingReasons: []types.ThrottlingReason{
			{
				Reason:   ptr.String("__Reason__"),
				Resource: ptr.String("__Resource__"),
			},
			{
				Reason:   ptr.String("__Reason__"),
				Resource: ptr.String("__Resource__"),
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("ProvisionedThroughputExceededException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.BatchGetItem(context.Background(), &BatchGetItemInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.ProvisionedThroughputExceededException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.ProvisionedThroughputExceededException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "ProvisionedThroughputExceededException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_ReplicaAlreadyExistsException(t *testing.T) {
	want := &types.ReplicaAlreadyExistsException{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("ReplicaAlreadyExistsException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.UpdateGlobalTable(context.Background(), &UpdateGlobalTableInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.ReplicaAlreadyExistsException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.ReplicaAlreadyExistsException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "ReplicaAlreadyExistsException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_ReplicaNotFoundException(t *testing.T) {
	want := &types.ReplicaNotFoundException{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("ReplicaNotFoundException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.UpdateGlobalTable(context.Background(), &UpdateGlobalTableInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.ReplicaNotFoundException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.ReplicaNotFoundException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "ReplicaNotFoundException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_ReplicatedWriteConflictException(t *testing.T) {
	want := &types.ReplicatedWriteConflictException{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("ReplicatedWriteConflictException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.BatchWriteItem(context.Background(), &BatchWriteItemInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.ReplicatedWriteConflictException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.ReplicatedWriteConflictException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "ReplicatedWriteConflictException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_RequestLimitExceeded(t *testing.T) {
	want := &types.RequestLimitExceeded{
		Message: ptr.String("__Message__"),
		ThrottlingReasons: []types.ThrottlingReason{
			{
				Reason:   ptr.String("__Reason__"),
				Resource: ptr.String("__Resource__"),
			},
			{
				Reason:   ptr.String("__Reason__"),
				Resource: ptr.String("__Resource__"),
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("RequestLimitExceeded.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.BatchExecuteStatement(context.Background(), &BatchExecuteStatementInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.RequestLimitExceeded
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.RequestLimitExceeded, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "RequestLimitExceeded.error", err)
	}
}

func TestCheckResponseSnapshot_Error_ResourceInUseException(t *testing.T) {
	want := &types.ResourceInUseException{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("ResourceInUseException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.CreateTable(context.Background(), &CreateTableInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.ResourceInUseException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.ResourceInUseException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "ResourceInUseException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_ResourceNotFoundException(t *testing.T) {
	want := &types.ResourceNotFoundException{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("ResourceNotFoundException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.BatchGetItem(context.Background(), &BatchGetItemInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.ResourceNotFoundException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.ResourceNotFoundException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "ResourceNotFoundException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_TableAlreadyExistsException(t *testing.T) {
	want := &types.TableAlreadyExistsException{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("TableAlreadyExistsException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.RestoreTableFromBackup(context.Background(), &RestoreTableFromBackupInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.TableAlreadyExistsException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.TableAlreadyExistsException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "TableAlreadyExistsException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_TableInUseException(t *testing.T) {
	want := &types.TableInUseException{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("TableInUseException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.CreateBackup(context.Background(), &CreateBackupInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.TableInUseException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.TableInUseException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "TableInUseException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_TableNotFoundException(t *testing.T) {
	want := &types.TableNotFoundException{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("TableNotFoundException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.CreateBackup(context.Background(), &CreateBackupInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.TableNotFoundException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.TableNotFoundException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "TableNotFoundException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_ThrottlingException(t *testing.T) {
	want := &types.ThrottlingException{
		Message: ptr.String("__Message__"),
		ThrottlingReasons: []types.ThrottlingReason{
			{
				Reason:   ptr.String("__Reason__"),
				Resource: ptr.String("__Resource__"),
			},
			{
				Reason:   ptr.String("__Reason__"),
				Resource: ptr.String("__Resource__"),
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("ThrottlingException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.BatchExecuteStatement(context.Background(), &BatchExecuteStatementInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.ThrottlingException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.ThrottlingException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "ThrottlingException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_TransactionCanceledException(t *testing.T) {
	want := &types.TransactionCanceledException{
		Message: ptr.String("__Message__"),
		CancellationReasons: []types.CancellationReason{
			{
				Item: map[string]types.AttributeValue{
					"key0": &types.AttributeValueMemberS{
						Value: "__AttributeValueMemberS__",
					},
				},
				Code:    ptr.String("__Code__"),
				Message: ptr.String("__Message__"),
			},
			{
				Item: map[string]types.AttributeValue{
					"key0": &types.AttributeValueMemberS{
						Value: "__AttributeValueMemberS__",
					},
				},
				Code:    ptr.String("__Code__"),
				Message: ptr.String("__Message__"),
			},
		},
	}
	status, header, body, err := serdeRespReadSnapshot("TransactionCanceledException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.ExecuteTransaction(context.Background(), &ExecuteTransactionInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.TransactionCanceledException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.TransactionCanceledException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "TransactionCanceledException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_TransactionConflictException(t *testing.T) {
	want := &types.TransactionConflictException{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("TransactionConflictException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.DeleteItem(context.Background(), &DeleteItemInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.TransactionConflictException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.TransactionConflictException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "TransactionConflictException.error", err)
	}
}

func TestCheckResponseSnapshot_Error_TransactionInProgressException(t *testing.T) {
	want := &types.TransactionInProgressException{
		Message: ptr.String("__Message__"),
	}
	status, header, body, err := serdeRespReadSnapshot("TransactionInProgressException.error")
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("no response snapshot fixture")
	}
	if err != nil {
		t.Fatal(err)
	}
	svc := serdeRespClient(status, header, body)
	_, opErr := svc.ExecuteTransaction(context.Background(), &ExecuteTransactionInput{})
	if opErr == nil {
		t.Fatal("expected error, got nil")
	}
	var got *types.TransactionInProgressException
	if !errors.As(opErr, &got) {
		t.Fatalf("expected types.TransactionInProgressException, got %v", opErr)
	}
	if err := smithytesting.CompareValues(want, got); err != nil {
		t.Errorf("error response snapshot mismatch for %s: %v", "TransactionInProgressException.error", err)
	}
}
