// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. package dynamodb_test import ( "context" "fmt" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/aws/awserr" "github.com/aws/aws-sdk-go-v2/aws/external" "github.com/aws/aws-sdk-go-v2/service/dynamodb" ) var _ aws.Config // To retrieve multiple items from a table // // This example reads multiple items from the Music table using a batch of three GetItem // requests. Only the AlbumTitle attribute is returned. func ExampleClient_BatchGetItemRequest_shared00() { cfg, err := external.LoadDefaultAWSConfig() if err != nil { panic("failed to load config, " + err.Error()) } svc := dynamodb.New(cfg) input := &dynamodb.BatchGetItemInput{ RequestItems: map[string]dynamodb.KeysAndAttributes{ "Music": { Keys: []map[string]dynamodb.AttributeValue{ { "Artist": dynamodb.AttributeValue{ S: aws.String("No One You Know"), }, "SongTitle": dynamodb.AttributeValue{ S: aws.String("Call Me Today"), }, }, { "Artist": dynamodb.AttributeValue{ S: aws.String("Acme Band"), }, "SongTitle": dynamodb.AttributeValue{ S: aws.String("Happy Day"), }, }, { "Artist": dynamodb.AttributeValue{ S: aws.String("No One You Know"), }, "SongTitle": dynamodb.AttributeValue{ S: aws.String("Scared of My Shadow"), }, }, }, ProjectionExpression: aws.String("AlbumTitle"), }, }, } req := svc.BatchGetItemRequest(input) result, err := req.Send(context.Background()) if err != nil { if aerr, ok := err.(awserr.Error); ok { switch aerr.Code() { case dynamodb.ErrCodeProvisionedThroughputExceededException: fmt.Println(dynamodb.ErrCodeProvisionedThroughputExceededException, aerr.Error()) case dynamodb.ErrCodeResourceNotFoundException: fmt.Println(dynamodb.ErrCodeResourceNotFoundException, aerr.Error()) case dynamodb.ErrCodeRequestLimitExceeded: fmt.Println(dynamodb.ErrCodeRequestLimitExceeded, aerr.Error()) case dynamodb.ErrCodeInternalServerError: fmt.Println(dynamodb.ErrCodeInternalServerError, aerr.Error()) default: fmt.Println(aerr.Error()) } } else { // Print the error, cast err to awserr.Error to get the Code and // Message from an error. fmt.Println(err.Error()) } return } fmt.Println(result) } // To add multiple items to a table // // This example adds three new items to the Music table using a batch of three PutItem // requests. func ExampleClient_BatchWriteItemRequest_shared00() { cfg, err := external.LoadDefaultAWSConfig() if err != nil { panic("failed to load config, " + err.Error()) } svc := dynamodb.New(cfg) input := &dynamodb.BatchWriteItemInput{ RequestItems: map[string][]dynamodb.WriteRequest{ "Music": { { PutRequest: &dynamodb.PutRequest{ Item: map[string]dynamodb.AttributeValue{ "AlbumTitle": { S: aws.String("Somewhat Famous"), }, "Artist": { S: aws.String("No One You Know"), }, "SongTitle": { S: aws.String("Call Me Today"), }, }, }, }, { PutRequest: &dynamodb.PutRequest{ Item: map[string]dynamodb.AttributeValue{ "AlbumTitle": { S: aws.String("Songs About Life"), }, "Artist": { S: aws.String("Acme Band"), }, "SongTitle": { S: aws.String("Happy Day"), }, }, }, }, { PutRequest: &dynamodb.PutRequest{ Item: map[string]dynamodb.AttributeValue{ "AlbumTitle": { S: aws.String("Blue Sky Blues"), }, "Artist": { S: aws.String("No One You Know"), }, "SongTitle": { S: aws.String("Scared of My Shadow"), }, }, }, }, }, }, } req := svc.BatchWriteItemRequest(input) result, err := req.Send(context.Background()) if err != nil { if aerr, ok := err.(awserr.Error); ok { switch aerr.Code() { case dynamodb.ErrCodeProvisionedThroughputExceededException: fmt.Println(dynamodb.ErrCodeProvisionedThroughputExceededException, aerr.Error()) case dynamodb.ErrCodeResourceNotFoundException: fmt.Println(dynamodb.ErrCodeResourceNotFoundException, aerr.Error()) case dynamodb.ErrCodeItemCollectionSizeLimitExceededException: fmt.Println(dynamodb.ErrCodeItemCollectionSizeLimitExceededException, aerr.Error()) case dynamodb.ErrCodeRequestLimitExceeded: fmt.Println(dynamodb.ErrCodeRequestLimitExceeded, aerr.Error()) case dynamodb.ErrCodeInternalServerError: fmt.Println(dynamodb.ErrCodeInternalServerError, aerr.Error()) default: fmt.Println(aerr.Error()) } } else { // Print the error, cast err to awserr.Error to get the Code and // Message from an error. fmt.Println(err.Error()) } return } fmt.Println(result) } // To create a table // // This example creates a table named Music. func ExampleClient_CreateTableRequest_shared00() { cfg, err := external.LoadDefaultAWSConfig() if err != nil { panic("failed to load config, " + err.Error()) } svc := dynamodb.New(cfg) input := &dynamodb.CreateTableInput{ AttributeDefinitions: []dynamodb.AttributeDefinition{ { AttributeName: aws.String("Artist"), AttributeType: dynamodb.ScalarAttributeTypeS, }, { AttributeName: aws.String("SongTitle"), AttributeType: dynamodb.ScalarAttributeTypeS, }, }, KeySchema: []dynamodb.KeySchemaElement{ { AttributeName: aws.String("Artist"), KeyType: dynamodb.KeyTypeHash, }, { AttributeName: aws.String("SongTitle"), KeyType: dynamodb.KeyTypeRange, }, }, ProvisionedThroughput: &dynamodb.ProvisionedThroughput{ ReadCapacityUnits: aws.Int64(5), WriteCapacityUnits: aws.Int64(5), }, TableName: aws.String("Music"), } req := svc.CreateTableRequest(input) result, err := req.Send(context.Background()) if err != nil { if aerr, ok := err.(awserr.Error); ok { switch aerr.Code() { case dynamodb.ErrCodeResourceInUseException: fmt.Println(dynamodb.ErrCodeResourceInUseException, aerr.Error()) case dynamodb.ErrCodeLimitExceededException: fmt.Println(dynamodb.ErrCodeLimitExceededException, aerr.Error()) case dynamodb.ErrCodeInternalServerError: fmt.Println(dynamodb.ErrCodeInternalServerError, aerr.Error()) default: fmt.Println(aerr.Error()) } } else { // Print the error, cast err to awserr.Error to get the Code and // Message from an error. fmt.Println(err.Error()) } return } fmt.Println(result) } // To delete an item // // This example deletes an item from the Music table. func ExampleClient_DeleteItemRequest_shared00() { cfg, err := external.LoadDefaultAWSConfig() if err != nil { panic("failed to load config, " + err.Error()) } svc := dynamodb.New(cfg) input := &dynamodb.DeleteItemInput{ Key: map[string]dynamodb.AttributeValue{ "Artist": { S: aws.String("No One You Know"), }, "SongTitle": { S: aws.String("Scared of My Shadow"), }, }, TableName: aws.String("Music"), } req := svc.DeleteItemRequest(input) result, err := req.Send(context.Background()) if err != nil { if aerr, ok := err.(awserr.Error); ok { switch aerr.Code() { case dynamodb.ErrCodeConditionalCheckFailedException: fmt.Println(dynamodb.ErrCodeConditionalCheckFailedException, aerr.Error()) case dynamodb.ErrCodeProvisionedThroughputExceededException: fmt.Println(dynamodb.ErrCodeProvisionedThroughputExceededException, aerr.Error()) case dynamodb.ErrCodeResourceNotFoundException: fmt.Println(dynamodb.ErrCodeResourceNotFoundException, aerr.Error()) case dynamodb.ErrCodeItemCollectionSizeLimitExceededException: fmt.Println(dynamodb.ErrCodeItemCollectionSizeLimitExceededException, aerr.Error()) case dynamodb.ErrCodeTransactionConflictException: fmt.Println(dynamodb.ErrCodeTransactionConflictException, aerr.Error()) case dynamodb.ErrCodeRequestLimitExceeded: fmt.Println(dynamodb.ErrCodeRequestLimitExceeded, aerr.Error()) case dynamodb.ErrCodeInternalServerError: fmt.Println(dynamodb.ErrCodeInternalServerError, aerr.Error()) default: fmt.Println(aerr.Error()) } } else { // Print the error, cast err to awserr.Error to get the Code and // Message from an error. fmt.Println(err.Error()) } return } fmt.Println(result) } // To delete a table // // This example deletes the Music table. func ExampleClient_DeleteTableRequest_shared00() { cfg, err := external.LoadDefaultAWSConfig() if err != nil { panic("failed to load config, " + err.Error()) } svc := dynamodb.New(cfg) input := &dynamodb.DeleteTableInput{ TableName: aws.String("Music"), } req := svc.DeleteTableRequest(input) result, err := req.Send(context.Background()) if err != nil { if aerr, ok := err.(awserr.Error); ok { switch aerr.Code() { case dynamodb.ErrCodeResourceInUseException: fmt.Println(dynamodb.ErrCodeResourceInUseException, aerr.Error()) case dynamodb.ErrCodeResourceNotFoundException: fmt.Println(dynamodb.ErrCodeResourceNotFoundException, aerr.Error()) case dynamodb.ErrCodeLimitExceededException: fmt.Println(dynamodb.ErrCodeLimitExceededException, aerr.Error()) case dynamodb.ErrCodeInternalServerError: fmt.Println(dynamodb.ErrCodeInternalServerError, aerr.Error()) default: fmt.Println(aerr.Error()) } } else { // Print the error, cast err to awserr.Error to get the Code and // Message from an error. fmt.Println(err.Error()) } return } fmt.Println(result) } // To determine capacity limits per table and account, in the current AWS region // // The following example returns the maximum read and write capacity units per table, // and for the AWS account, in the current AWS region. func ExampleClient_DescribeLimitsRequest_shared00() { cfg, err := external.LoadDefaultAWSConfig() if err != nil { panic("failed to load config, " + err.Error()) } svc := dynamodb.New(cfg) input := &dynamodb.DescribeLimitsInput{} req := svc.DescribeLimitsRequest(input) result, err := req.Send(context.Background()) if err != nil { if aerr, ok := err.(awserr.Error); ok { switch aerr.Code() { case dynamodb.ErrCodeInternalServerError: fmt.Println(dynamodb.ErrCodeInternalServerError, aerr.Error()) default: fmt.Println(aerr.Error()) } } else { // Print the error, cast err to awserr.Error to get the Code and // Message from an error. fmt.Println(err.Error()) } return } fmt.Println(result) } // To describe a table // // This example describes the Music table. func ExampleClient_DescribeTableRequest_shared00() { cfg, err := external.LoadDefaultAWSConfig() if err != nil { panic("failed to load config, " + err.Error()) } svc := dynamodb.New(cfg) input := &dynamodb.DescribeTableInput{ TableName: aws.String("Music"), } req := svc.DescribeTableRequest(input) result, err := req.Send(context.Background()) if err != nil { if aerr, ok := err.(awserr.Error); ok { switch aerr.Code() { case dynamodb.ErrCodeResourceNotFoundException: fmt.Println(dynamodb.ErrCodeResourceNotFoundException, aerr.Error()) case dynamodb.ErrCodeInternalServerError: fmt.Println(dynamodb.ErrCodeInternalServerError, aerr.Error()) default: fmt.Println(aerr.Error()) } } else { // Print the error, cast err to awserr.Error to get the Code and // Message from an error. fmt.Println(err.Error()) } return } fmt.Println(result) } // To read an item from a table // // This example retrieves an item from the Music table. The table has a partition key // and a sort key (Artist and SongTitle), so you must specify both of these attributes. func ExampleClient_GetItemRequest_shared00() { cfg, err := external.LoadDefaultAWSConfig() if err != nil { panic("failed to load config, " + err.Error()) } svc := dynamodb.New(cfg) input := &dynamodb.GetItemInput{ Key: map[string]dynamodb.AttributeValue{ "Artist": { S: aws.String("Acme Band"), }, "SongTitle": { S: aws.String("Happy Day"), }, }, TableName: aws.String("Music"), } req := svc.GetItemRequest(input) result, err := req.Send(context.Background()) if err != nil { if aerr, ok := err.(awserr.Error); ok { switch aerr.Code() { case dynamodb.ErrCodeProvisionedThroughputExceededException: fmt.Println(dynamodb.ErrCodeProvisionedThroughputExceededException, aerr.Error()) case dynamodb.ErrCodeResourceNotFoundException: fmt.Println(dynamodb.ErrCodeResourceNotFoundException, aerr.Error()) case dynamodb.ErrCodeRequestLimitExceeded: fmt.Println(dynamodb.ErrCodeRequestLimitExceeded, aerr.Error()) case dynamodb.ErrCodeInternalServerError: fmt.Println(dynamodb.ErrCodeInternalServerError, aerr.Error()) default: fmt.Println(aerr.Error()) } } else { // Print the error, cast err to awserr.Error to get the Code and // Message from an error. fmt.Println(err.Error()) } return } fmt.Println(result) } // To list tables // // This example lists all of the tables associated with the current AWS account and // endpoint. func ExampleClient_ListTablesRequest_shared00() { cfg, err := external.LoadDefaultAWSConfig() if err != nil { panic("failed to load config, " + err.Error()) } svc := dynamodb.New(cfg) input := &dynamodb.ListTablesInput{} req := svc.ListTablesRequest(input) result, err := req.Send(context.Background()) if err != nil { if aerr, ok := err.(awserr.Error); ok { switch aerr.Code() { case dynamodb.ErrCodeInternalServerError: fmt.Println(dynamodb.ErrCodeInternalServerError, aerr.Error()) default: fmt.Println(aerr.Error()) } } else { // Print the error, cast err to awserr.Error to get the Code and // Message from an error. fmt.Println(err.Error()) } return } fmt.Println(result) } // To add an item to a table // // This example adds a new item to the Music table. func ExampleClient_PutItemRequest_shared00() { cfg, err := external.LoadDefaultAWSConfig() if err != nil { panic("failed to load config, " + err.Error()) } svc := dynamodb.New(cfg) input := &dynamodb.PutItemInput{ Item: map[string]dynamodb.AttributeValue{ "AlbumTitle": { S: aws.String("Somewhat Famous"), }, "Artist": { S: aws.String("No One You Know"), }, "SongTitle": { S: aws.String("Call Me Today"), }, }, ReturnConsumedCapacity: dynamodb.ReturnConsumedCapacityTotal, TableName: aws.String("Music"), } req := svc.PutItemRequest(input) result, err := req.Send(context.Background()) if err != nil { if aerr, ok := err.(awserr.Error); ok { switch aerr.Code() { case dynamodb.ErrCodeConditionalCheckFailedException: fmt.Println(dynamodb.ErrCodeConditionalCheckFailedException, aerr.Error()) case dynamodb.ErrCodeProvisionedThroughputExceededException: fmt.Println(dynamodb.ErrCodeProvisionedThroughputExceededException, aerr.Error()) case dynamodb.ErrCodeResourceNotFoundException: fmt.Println(dynamodb.ErrCodeResourceNotFoundException, aerr.Error()) case dynamodb.ErrCodeItemCollectionSizeLimitExceededException: fmt.Println(dynamodb.ErrCodeItemCollectionSizeLimitExceededException, aerr.Error()) case dynamodb.ErrCodeTransactionConflictException: fmt.Println(dynamodb.ErrCodeTransactionConflictException, aerr.Error()) case dynamodb.ErrCodeRequestLimitExceeded: fmt.Println(dynamodb.ErrCodeRequestLimitExceeded, aerr.Error()) case dynamodb.ErrCodeInternalServerError: fmt.Println(dynamodb.ErrCodeInternalServerError, aerr.Error()) default: fmt.Println(aerr.Error()) } } else { // Print the error, cast err to awserr.Error to get the Code and // Message from an error. fmt.Println(err.Error()) } return } fmt.Println(result) } // To query an item // // This example queries items in the Music table. The table has a partition key and // sort key (Artist and SongTitle), but this query only specifies the partition key // value. It returns song titles by the artist named "No One You Know". func ExampleClient_QueryRequest_shared00() { cfg, err := external.LoadDefaultAWSConfig() if err != nil { panic("failed to load config, " + err.Error()) } svc := dynamodb.New(cfg) input := &dynamodb.QueryInput{ ExpressionAttributeValues: map[string]dynamodb.AttributeValue{ ":v1": { S: aws.String("No One You Know"), }, }, KeyConditionExpression: aws.String("Artist = :v1"), ProjectionExpression: aws.String("SongTitle"), TableName: aws.String("Music"), } req := svc.QueryRequest(input) result, err := req.Send(context.Background()) if err != nil { if aerr, ok := err.(awserr.Error); ok { switch aerr.Code() { case dynamodb.ErrCodeProvisionedThroughputExceededException: fmt.Println(dynamodb.ErrCodeProvisionedThroughputExceededException, aerr.Error()) case dynamodb.ErrCodeResourceNotFoundException: fmt.Println(dynamodb.ErrCodeResourceNotFoundException, aerr.Error()) case dynamodb.ErrCodeRequestLimitExceeded: fmt.Println(dynamodb.ErrCodeRequestLimitExceeded, aerr.Error()) case dynamodb.ErrCodeInternalServerError: fmt.Println(dynamodb.ErrCodeInternalServerError, aerr.Error()) default: fmt.Println(aerr.Error()) } } else { // Print the error, cast err to awserr.Error to get the Code and // Message from an error. fmt.Println(err.Error()) } return } fmt.Println(result) } // To scan a table // // This example scans the entire Music table, and then narrows the results to songs // by the artist "No One You Know". For each item, only the album title and song title // are returned. func ExampleClient_ScanRequest_shared00() { cfg, err := external.LoadDefaultAWSConfig() if err != nil { panic("failed to load config, " + err.Error()) } svc := dynamodb.New(cfg) input := &dynamodb.ScanInput{ ExpressionAttributeNames: map[string]string{ "#AT": "AlbumTitle", "#ST": "SongTitle", }, ExpressionAttributeValues: map[string]dynamodb.AttributeValue{ ":a": { S: aws.String("No One You Know"), }, }, FilterExpression: aws.String("Artist = :a"), ProjectionExpression: aws.String("#ST, #AT"), TableName: aws.String("Music"), } req := svc.ScanRequest(input) result, err := req.Send(context.Background()) if err != nil { if aerr, ok := err.(awserr.Error); ok { switch aerr.Code() { case dynamodb.ErrCodeProvisionedThroughputExceededException: fmt.Println(dynamodb.ErrCodeProvisionedThroughputExceededException, aerr.Error()) case dynamodb.ErrCodeResourceNotFoundException: fmt.Println(dynamodb.ErrCodeResourceNotFoundException, aerr.Error()) case dynamodb.ErrCodeRequestLimitExceeded: fmt.Println(dynamodb.ErrCodeRequestLimitExceeded, aerr.Error()) case dynamodb.ErrCodeInternalServerError: fmt.Println(dynamodb.ErrCodeInternalServerError, aerr.Error()) default: fmt.Println(aerr.Error()) } } else { // Print the error, cast err to awserr.Error to get the Code and // Message from an error. fmt.Println(err.Error()) } return } fmt.Println(result) } // To update an item in a table // // This example updates an item in the Music table. It adds a new attribute (Year) and // modifies the AlbumTitle attribute. All of the attributes in the item, as they appear // after the update, are returned in the response. func ExampleClient_UpdateItemRequest_shared00() { cfg, err := external.LoadDefaultAWSConfig() if err != nil { panic("failed to load config, " + err.Error()) } svc := dynamodb.New(cfg) input := &dynamodb.UpdateItemInput{ ExpressionAttributeNames: map[string]string{ "#AT": "AlbumTitle", "#Y": "Year", }, ExpressionAttributeValues: map[string]dynamodb.AttributeValue{ ":t": { S: aws.String("Louder Than Ever"), }, ":y": { N: aws.String("2015"), }, }, Key: map[string]dynamodb.AttributeValue{ "Artist": { S: aws.String("Acme Band"), }, "SongTitle": { S: aws.String("Happy Day"), }, }, ReturnValues: dynamodb.ReturnValueAllNew, TableName: aws.String("Music"), UpdateExpression: aws.String("SET #Y = :y, #AT = :t"), } req := svc.UpdateItemRequest(input) result, err := req.Send(context.Background()) if err != nil { if aerr, ok := err.(awserr.Error); ok { switch aerr.Code() { case dynamodb.ErrCodeConditionalCheckFailedException: fmt.Println(dynamodb.ErrCodeConditionalCheckFailedException, aerr.Error()) case dynamodb.ErrCodeProvisionedThroughputExceededException: fmt.Println(dynamodb.ErrCodeProvisionedThroughputExceededException, aerr.Error()) case dynamodb.ErrCodeResourceNotFoundException: fmt.Println(dynamodb.ErrCodeResourceNotFoundException, aerr.Error()) case dynamodb.ErrCodeItemCollectionSizeLimitExceededException: fmt.Println(dynamodb.ErrCodeItemCollectionSizeLimitExceededException, aerr.Error()) case dynamodb.ErrCodeTransactionConflictException: fmt.Println(dynamodb.ErrCodeTransactionConflictException, aerr.Error()) case dynamodb.ErrCodeRequestLimitExceeded: fmt.Println(dynamodb.ErrCodeRequestLimitExceeded, aerr.Error()) case dynamodb.ErrCodeInternalServerError: fmt.Println(dynamodb.ErrCodeInternalServerError, aerr.Error()) default: fmt.Println(aerr.Error()) } } else { // Print the error, cast err to awserr.Error to get the Code and // Message from an error. fmt.Println(err.Error()) } return } fmt.Println(result) } // To modify a table's provisioned throughput // // This example increases the provisioned read and write capacity on the Music table. func ExampleClient_UpdateTableRequest_shared00() { cfg, err := external.LoadDefaultAWSConfig() if err != nil { panic("failed to load config, " + err.Error()) } svc := dynamodb.New(cfg) input := &dynamodb.UpdateTableInput{ ProvisionedThroughput: &dynamodb.ProvisionedThroughput{ ReadCapacityUnits: aws.Int64(10), WriteCapacityUnits: aws.Int64(10), }, TableName: aws.String("MusicCollection"), } req := svc.UpdateTableRequest(input) result, err := req.Send(context.Background()) if err != nil { if aerr, ok := err.(awserr.Error); ok { switch aerr.Code() { case dynamodb.ErrCodeResourceInUseException: fmt.Println(dynamodb.ErrCodeResourceInUseException, aerr.Error()) case dynamodb.ErrCodeResourceNotFoundException: fmt.Println(dynamodb.ErrCodeResourceNotFoundException, aerr.Error()) case dynamodb.ErrCodeLimitExceededException: fmt.Println(dynamodb.ErrCodeLimitExceededException, aerr.Error()) case dynamodb.ErrCodeInternalServerError: fmt.Println(dynamodb.ErrCodeInternalServerError, aerr.Error()) default: fmt.Println(aerr.Error()) } } else { // Print the error, cast err to awserr.Error to get the Code and // Message from an error. fmt.Println(err.Error()) } return } fmt.Println(result) }