1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. 2 3package dynamodb 4 5import ( 6 "fmt" 7 "net/url" 8 "time" 9 10 "github.com/aws/aws-sdk-go/aws" 11 "github.com/aws/aws-sdk-go/aws/awsutil" 12 "github.com/aws/aws-sdk-go/aws/crr" 13 "github.com/aws/aws-sdk-go/aws/request" 14 "github.com/aws/aws-sdk-go/private/protocol" 15 "github.com/aws/aws-sdk-go/private/protocol/jsonrpc" 16) 17 18const opBatchGetItem = "BatchGetItem" 19 20// BatchGetItemRequest generates a "aws/request.Request" representing the 21// client's request for the BatchGetItem operation. The "output" return 22// value will be populated with the request's response once the request completes 23// successfully. 24// 25// Use "Send" method on the returned Request to send the API call to the service. 26// the "output" return value is not valid until after Send returns without error. 27// 28// See BatchGetItem for more information on using the BatchGetItem 29// API call, and error handling. 30// 31// This method is useful when you want to inject custom logic or configuration 32// into the SDK's request lifecycle. Such as custom headers, or retry logic. 33// 34// 35// // Example sending a request using the BatchGetItemRequest method. 36// req, resp := client.BatchGetItemRequest(params) 37// 38// err := req.Send() 39// if err == nil { // resp is now filled 40// fmt.Println(resp) 41// } 42// 43// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/BatchGetItem 44func (c *DynamoDB) BatchGetItemRequest(input *BatchGetItemInput) (req *request.Request, output *BatchGetItemOutput) { 45 op := &request.Operation{ 46 Name: opBatchGetItem, 47 HTTPMethod: "POST", 48 HTTPPath: "/", 49 Paginator: &request.Paginator{ 50 InputTokens: []string{"RequestItems"}, 51 OutputTokens: []string{"UnprocessedKeys"}, 52 LimitToken: "", 53 TruncationToken: "", 54 }, 55 } 56 57 if input == nil { 58 input = &BatchGetItemInput{} 59 } 60 61 output = &BatchGetItemOutput{} 62 req = c.newRequest(op, input, output) 63 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 64 de := discovererDescribeEndpoints{ 65 Required: false, 66 EndpointCache: c.endpointCache, 67 Params: map[string]*string{ 68 "op": aws.String(req.Operation.Name), 69 }, 70 Client: c, 71 } 72 73 for k, v := range de.Params { 74 if v == nil { 75 delete(de.Params, k) 76 } 77 } 78 79 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 80 Name: "crr.endpointdiscovery", 81 Fn: de.Handler, 82 }) 83 } 84 return 85} 86 87// BatchGetItem API operation for Amazon DynamoDB. 88// 89// The BatchGetItem operation returns the attributes of one or more items from 90// one or more tables. You identify requested items by primary key. 91// 92// A single operation can retrieve up to 16 MB of data, which can contain as 93// many as 100 items. BatchGetItem returns a partial result if the response 94// size limit is exceeded, the table's provisioned throughput is exceeded, or 95// an internal processing failure occurs. If a partial result is returned, the 96// operation returns a value for UnprocessedKeys. You can use this value to 97// retry the operation starting with the next item to get. 98// 99// If you request more than 100 items, BatchGetItem returns a ValidationException 100// with the message "Too many items requested for the BatchGetItem call." 101// 102// For example, if you ask to retrieve 100 items, but each individual item is 103// 300 KB in size, the system returns 52 items (so as not to exceed the 16 MB 104// limit). It also returns an appropriate UnprocessedKeys value so you can get 105// the next page of results. If desired, your application can include its own 106// logic to assemble the pages of results into one dataset. 107// 108// If none of the items can be processed due to insufficient provisioned throughput 109// on all of the tables in the request, then BatchGetItem returns a ProvisionedThroughputExceededException. 110// If at least one of the items is successfully processed, then BatchGetItem 111// completes successfully, while returning the keys of the unread items in UnprocessedKeys. 112// 113// If DynamoDB returns any unprocessed items, you should retry the batch operation 114// on those items. However, we strongly recommend that you use an exponential 115// backoff algorithm. If you retry the batch operation immediately, the underlying 116// read or write requests can still fail due to throttling on the individual 117// tables. If you delay the batch operation using exponential backoff, the individual 118// requests in the batch are much more likely to succeed. 119// 120// For more information, see Batch Operations and Error Handling (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ErrorHandling.html#BatchOperations) 121// in the Amazon DynamoDB Developer Guide. 122// 123// By default, BatchGetItem performs eventually consistent reads on every table 124// in the request. If you want strongly consistent reads instead, you can set 125// ConsistentRead to true for any or all tables. 126// 127// In order to minimize response latency, BatchGetItem retrieves items in parallel. 128// 129// When designing your application, keep in mind that DynamoDB does not return 130// items in any particular order. To help parse the response by item, include 131// the primary key values for the items in your request in the ProjectionExpression 132// parameter. 133// 134// If a requested item does not exist, it is not returned in the result. Requests 135// for nonexistent items consume the minimum read capacity units according to 136// the type of read. For more information, see Working with Tables (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#CapacityUnitCalculations) 137// in the Amazon DynamoDB Developer Guide. 138// 139// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 140// with awserr.Error's Code and Message methods to get detailed information about 141// the error. 142// 143// See the AWS API reference guide for Amazon DynamoDB's 144// API operation BatchGetItem for usage and error information. 145// 146// Returned Error Codes: 147// * ErrCodeProvisionedThroughputExceededException "ProvisionedThroughputExceededException" 148// Your request rate is too high. The AWS SDKs for DynamoDB automatically retry 149// requests that receive this exception. Your request is eventually successful, 150// unless your retry queue is too large to finish. Reduce the frequency of requests 151// and use exponential backoff. For more information, go to Error Retries and 152// Exponential Backoff (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.RetryAndBackoff) 153// in the Amazon DynamoDB Developer Guide. 154// 155// * ErrCodeResourceNotFoundException "ResourceNotFoundException" 156// The operation tried to access a nonexistent table or index. The resource 157// might not be specified correctly, or its status might not be ACTIVE. 158// 159// * ErrCodeRequestLimitExceeded "RequestLimitExceeded" 160// Throughput exceeds the current throughput limit for your account. Please 161// contact AWS Support at AWS Support (https://aws.amazon.com/support) to request 162// a limit increase. 163// 164// * ErrCodeInternalServerError "InternalServerError" 165// An error occurred on the server side. 166// 167// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/BatchGetItem 168func (c *DynamoDB) BatchGetItem(input *BatchGetItemInput) (*BatchGetItemOutput, error) { 169 req, out := c.BatchGetItemRequest(input) 170 return out, req.Send() 171} 172 173// BatchGetItemWithContext is the same as BatchGetItem with the addition of 174// the ability to pass a context and additional request options. 175// 176// See BatchGetItem for details on how to use this API operation. 177// 178// The context must be non-nil and will be used for request cancellation. If 179// the context is nil a panic will occur. In the future the SDK may create 180// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 181// for more information on using Contexts. 182func (c *DynamoDB) BatchGetItemWithContext(ctx aws.Context, input *BatchGetItemInput, opts ...request.Option) (*BatchGetItemOutput, error) { 183 req, out := c.BatchGetItemRequest(input) 184 req.SetContext(ctx) 185 req.ApplyOptions(opts...) 186 return out, req.Send() 187} 188 189// BatchGetItemPages iterates over the pages of a BatchGetItem operation, 190// calling the "fn" function with the response data for each page. To stop 191// iterating, return false from the fn function. 192// 193// See BatchGetItem method for more information on how to use this operation. 194// 195// Note: This operation can generate multiple requests to a service. 196// 197// // Example iterating over at most 3 pages of a BatchGetItem operation. 198// pageNum := 0 199// err := client.BatchGetItemPages(params, 200// func(page *dynamodb.BatchGetItemOutput, lastPage bool) bool { 201// pageNum++ 202// fmt.Println(page) 203// return pageNum <= 3 204// }) 205// 206func (c *DynamoDB) BatchGetItemPages(input *BatchGetItemInput, fn func(*BatchGetItemOutput, bool) bool) error { 207 return c.BatchGetItemPagesWithContext(aws.BackgroundContext(), input, fn) 208} 209 210// BatchGetItemPagesWithContext same as BatchGetItemPages except 211// it takes a Context and allows setting request options on the pages. 212// 213// The context must be non-nil and will be used for request cancellation. If 214// the context is nil a panic will occur. In the future the SDK may create 215// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 216// for more information on using Contexts. 217func (c *DynamoDB) BatchGetItemPagesWithContext(ctx aws.Context, input *BatchGetItemInput, fn func(*BatchGetItemOutput, bool) bool, opts ...request.Option) error { 218 p := request.Pagination{ 219 NewRequest: func() (*request.Request, error) { 220 var inCpy *BatchGetItemInput 221 if input != nil { 222 tmp := *input 223 inCpy = &tmp 224 } 225 req, _ := c.BatchGetItemRequest(inCpy) 226 req.SetContext(ctx) 227 req.ApplyOptions(opts...) 228 return req, nil 229 }, 230 } 231 232 cont := true 233 for p.Next() && cont { 234 cont = fn(p.Page().(*BatchGetItemOutput), !p.HasNextPage()) 235 } 236 return p.Err() 237} 238 239const opBatchWriteItem = "BatchWriteItem" 240 241// BatchWriteItemRequest generates a "aws/request.Request" representing the 242// client's request for the BatchWriteItem operation. The "output" return 243// value will be populated with the request's response once the request completes 244// successfully. 245// 246// Use "Send" method on the returned Request to send the API call to the service. 247// the "output" return value is not valid until after Send returns without error. 248// 249// See BatchWriteItem for more information on using the BatchWriteItem 250// API call, and error handling. 251// 252// This method is useful when you want to inject custom logic or configuration 253// into the SDK's request lifecycle. Such as custom headers, or retry logic. 254// 255// 256// // Example sending a request using the BatchWriteItemRequest method. 257// req, resp := client.BatchWriteItemRequest(params) 258// 259// err := req.Send() 260// if err == nil { // resp is now filled 261// fmt.Println(resp) 262// } 263// 264// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/BatchWriteItem 265func (c *DynamoDB) BatchWriteItemRequest(input *BatchWriteItemInput) (req *request.Request, output *BatchWriteItemOutput) { 266 op := &request.Operation{ 267 Name: opBatchWriteItem, 268 HTTPMethod: "POST", 269 HTTPPath: "/", 270 } 271 272 if input == nil { 273 input = &BatchWriteItemInput{} 274 } 275 276 output = &BatchWriteItemOutput{} 277 req = c.newRequest(op, input, output) 278 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 279 de := discovererDescribeEndpoints{ 280 Required: false, 281 EndpointCache: c.endpointCache, 282 Params: map[string]*string{ 283 "op": aws.String(req.Operation.Name), 284 }, 285 Client: c, 286 } 287 288 for k, v := range de.Params { 289 if v == nil { 290 delete(de.Params, k) 291 } 292 } 293 294 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 295 Name: "crr.endpointdiscovery", 296 Fn: de.Handler, 297 }) 298 } 299 return 300} 301 302// BatchWriteItem API operation for Amazon DynamoDB. 303// 304// The BatchWriteItem operation puts or deletes multiple items in one or more 305// tables. A single call to BatchWriteItem can write up to 16 MB of data, which 306// can comprise as many as 25 put or delete requests. Individual items to be 307// written can be as large as 400 KB. 308// 309// BatchWriteItem cannot update items. To update items, use the UpdateItem action. 310// 311// The individual PutItem and DeleteItem operations specified in BatchWriteItem 312// are atomic; however BatchWriteItem as a whole is not. If any requested operations 313// fail because the table's provisioned throughput is exceeded or an internal 314// processing failure occurs, the failed operations are returned in the UnprocessedItems 315// response parameter. You can investigate and optionally resend the requests. 316// Typically, you would call BatchWriteItem in a loop. Each iteration would 317// check for unprocessed items and submit a new BatchWriteItem request with 318// those unprocessed items until all items have been processed. 319// 320// If none of the items can be processed due to insufficient provisioned throughput 321// on all of the tables in the request, then BatchWriteItem returns a ProvisionedThroughputExceededException. 322// 323// If DynamoDB returns any unprocessed items, you should retry the batch operation 324// on those items. However, we strongly recommend that you use an exponential 325// backoff algorithm. If you retry the batch operation immediately, the underlying 326// read or write requests can still fail due to throttling on the individual 327// tables. If you delay the batch operation using exponential backoff, the individual 328// requests in the batch are much more likely to succeed. 329// 330// For more information, see Batch Operations and Error Handling (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ErrorHandling.html#Programming.Errors.BatchOperations) 331// in the Amazon DynamoDB Developer Guide. 332// 333// With BatchWriteItem, you can efficiently write or delete large amounts of 334// data, such as from Amazon EMR, or copy data from another database into DynamoDB. 335// In order to improve performance with these large-scale operations, BatchWriteItem 336// does not behave in the same way as individual PutItem and DeleteItem calls 337// would. For example, you cannot specify conditions on individual put and delete 338// requests, and BatchWriteItem does not return deleted items in the response. 339// 340// If you use a programming language that supports concurrency, you can use 341// threads to write items in parallel. Your application must include the necessary 342// logic to manage the threads. With languages that don't support threading, 343// you must update or delete the specified items one at a time. In both situations, 344// BatchWriteItem performs the specified put and delete operations in parallel, 345// giving you the power of the thread pool approach without having to introduce 346// complexity into your application. 347// 348// Parallel processing reduces latency, but each specified put and delete request 349// consumes the same number of write capacity units whether it is processed 350// in parallel or not. Delete operations on nonexistent items consume one write 351// capacity unit. 352// 353// If one or more of the following is true, DynamoDB rejects the entire batch 354// write operation: 355// 356// * One or more tables specified in the BatchWriteItem request does not 357// exist. 358// 359// * Primary key attributes specified on an item in the request do not match 360// those in the corresponding table's primary key schema. 361// 362// * You try to perform multiple operations on the same item in the same 363// BatchWriteItem request. For example, you cannot put and delete the same 364// item in the same BatchWriteItem request. 365// 366// * Your request contains at least two items with identical hash and range 367// keys (which essentially is two put operations). 368// 369// * There are more than 25 requests in the batch. 370// 371// * Any individual item in a batch exceeds 400 KB. 372// 373// * The total request size exceeds 16 MB. 374// 375// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 376// with awserr.Error's Code and Message methods to get detailed information about 377// the error. 378// 379// See the AWS API reference guide for Amazon DynamoDB's 380// API operation BatchWriteItem for usage and error information. 381// 382// Returned Error Codes: 383// * ErrCodeProvisionedThroughputExceededException "ProvisionedThroughputExceededException" 384// Your request rate is too high. The AWS SDKs for DynamoDB automatically retry 385// requests that receive this exception. Your request is eventually successful, 386// unless your retry queue is too large to finish. Reduce the frequency of requests 387// and use exponential backoff. For more information, go to Error Retries and 388// Exponential Backoff (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.RetryAndBackoff) 389// in the Amazon DynamoDB Developer Guide. 390// 391// * ErrCodeResourceNotFoundException "ResourceNotFoundException" 392// The operation tried to access a nonexistent table or index. The resource 393// might not be specified correctly, or its status might not be ACTIVE. 394// 395// * ErrCodeItemCollectionSizeLimitExceededException "ItemCollectionSizeLimitExceededException" 396// An item collection is too large. This exception is only returned for tables 397// that have one or more local secondary indexes. 398// 399// * ErrCodeRequestLimitExceeded "RequestLimitExceeded" 400// Throughput exceeds the current throughput limit for your account. Please 401// contact AWS Support at AWS Support (https://aws.amazon.com/support) to request 402// a limit increase. 403// 404// * ErrCodeInternalServerError "InternalServerError" 405// An error occurred on the server side. 406// 407// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/BatchWriteItem 408func (c *DynamoDB) BatchWriteItem(input *BatchWriteItemInput) (*BatchWriteItemOutput, error) { 409 req, out := c.BatchWriteItemRequest(input) 410 return out, req.Send() 411} 412 413// BatchWriteItemWithContext is the same as BatchWriteItem with the addition of 414// the ability to pass a context and additional request options. 415// 416// See BatchWriteItem for details on how to use this API operation. 417// 418// The context must be non-nil and will be used for request cancellation. If 419// the context is nil a panic will occur. In the future the SDK may create 420// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 421// for more information on using Contexts. 422func (c *DynamoDB) BatchWriteItemWithContext(ctx aws.Context, input *BatchWriteItemInput, opts ...request.Option) (*BatchWriteItemOutput, error) { 423 req, out := c.BatchWriteItemRequest(input) 424 req.SetContext(ctx) 425 req.ApplyOptions(opts...) 426 return out, req.Send() 427} 428 429const opCreateBackup = "CreateBackup" 430 431// CreateBackupRequest generates a "aws/request.Request" representing the 432// client's request for the CreateBackup operation. The "output" return 433// value will be populated with the request's response once the request completes 434// successfully. 435// 436// Use "Send" method on the returned Request to send the API call to the service. 437// the "output" return value is not valid until after Send returns without error. 438// 439// See CreateBackup for more information on using the CreateBackup 440// API call, and error handling. 441// 442// This method is useful when you want to inject custom logic or configuration 443// into the SDK's request lifecycle. Such as custom headers, or retry logic. 444// 445// 446// // Example sending a request using the CreateBackupRequest method. 447// req, resp := client.CreateBackupRequest(params) 448// 449// err := req.Send() 450// if err == nil { // resp is now filled 451// fmt.Println(resp) 452// } 453// 454// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/CreateBackup 455func (c *DynamoDB) CreateBackupRequest(input *CreateBackupInput) (req *request.Request, output *CreateBackupOutput) { 456 op := &request.Operation{ 457 Name: opCreateBackup, 458 HTTPMethod: "POST", 459 HTTPPath: "/", 460 } 461 462 if input == nil { 463 input = &CreateBackupInput{} 464 } 465 466 output = &CreateBackupOutput{} 467 req = c.newRequest(op, input, output) 468 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 469 de := discovererDescribeEndpoints{ 470 Required: false, 471 EndpointCache: c.endpointCache, 472 Params: map[string]*string{ 473 "op": aws.String(req.Operation.Name), 474 }, 475 Client: c, 476 } 477 478 for k, v := range de.Params { 479 if v == nil { 480 delete(de.Params, k) 481 } 482 } 483 484 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 485 Name: "crr.endpointdiscovery", 486 Fn: de.Handler, 487 }) 488 } 489 return 490} 491 492// CreateBackup API operation for Amazon DynamoDB. 493// 494// Creates a backup for an existing table. 495// 496// Each time you create an on-demand backup, the entire table data is backed 497// up. There is no limit to the number of on-demand backups that can be taken. 498// 499// When you create an on-demand backup, a time marker of the request is cataloged, 500// and the backup is created asynchronously, by applying all changes until the 501// time of the request to the last full table snapshot. Backup requests are 502// processed instantaneously and become available for restore within minutes. 503// 504// You can call CreateBackup at a maximum rate of 50 times per second. 505// 506// All backups in DynamoDB work without consuming any provisioned throughput 507// on the table. 508// 509// If you submit a backup request on 2018-12-14 at 14:25:00, the backup is guaranteed 510// to contain all data committed to the table up to 14:24:00, and data committed 511// after 14:26:00 will not be. The backup might contain data modifications made 512// between 14:24:00 and 14:26:00. On-demand backup does not support causal consistency. 513// 514// Along with data, the following are also included on the backups: 515// 516// * Global secondary indexes (GSIs) 517// 518// * Local secondary indexes (LSIs) 519// 520// * Streams 521// 522// * Provisioned read and write capacity 523// 524// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 525// with awserr.Error's Code and Message methods to get detailed information about 526// the error. 527// 528// See the AWS API reference guide for Amazon DynamoDB's 529// API operation CreateBackup for usage and error information. 530// 531// Returned Error Codes: 532// * ErrCodeTableNotFoundException "TableNotFoundException" 533// A source table with the name TableName does not currently exist within the 534// subscriber's account. 535// 536// * ErrCodeTableInUseException "TableInUseException" 537// A target table with the specified name is either being created or deleted. 538// 539// * ErrCodeContinuousBackupsUnavailableException "ContinuousBackupsUnavailableException" 540// Backups have not yet been enabled for this table. 541// 542// * ErrCodeBackupInUseException "BackupInUseException" 543// There is another ongoing conflicting backup control plane operation on the 544// table. The backup is either being created, deleted or restored to a table. 545// 546// * ErrCodeLimitExceededException "LimitExceededException" 547// There is no limit to the number of daily on-demand backups that can be taken. 548// 549// Up to 50 simultaneous table operations are allowed per account. These operations 550// include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup, 551// and RestoreTableToPointInTime. 552// 553// The only exception is when you are creating a table with one or more secondary 554// indexes. You can have up to 25 such requests running at a time; however, 555// if the table or index specifications are complex, DynamoDB might temporarily 556// reduce the number of concurrent operations. 557// 558// There is a soft account limit of 256 tables. 559// 560// * ErrCodeInternalServerError "InternalServerError" 561// An error occurred on the server side. 562// 563// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/CreateBackup 564func (c *DynamoDB) CreateBackup(input *CreateBackupInput) (*CreateBackupOutput, error) { 565 req, out := c.CreateBackupRequest(input) 566 return out, req.Send() 567} 568 569// CreateBackupWithContext is the same as CreateBackup with the addition of 570// the ability to pass a context and additional request options. 571// 572// See CreateBackup for details on how to use this API operation. 573// 574// The context must be non-nil and will be used for request cancellation. If 575// the context is nil a panic will occur. In the future the SDK may create 576// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 577// for more information on using Contexts. 578func (c *DynamoDB) CreateBackupWithContext(ctx aws.Context, input *CreateBackupInput, opts ...request.Option) (*CreateBackupOutput, error) { 579 req, out := c.CreateBackupRequest(input) 580 req.SetContext(ctx) 581 req.ApplyOptions(opts...) 582 return out, req.Send() 583} 584 585const opCreateGlobalTable = "CreateGlobalTable" 586 587// CreateGlobalTableRequest generates a "aws/request.Request" representing the 588// client's request for the CreateGlobalTable operation. The "output" return 589// value will be populated with the request's response once the request completes 590// successfully. 591// 592// Use "Send" method on the returned Request to send the API call to the service. 593// the "output" return value is not valid until after Send returns without error. 594// 595// See CreateGlobalTable for more information on using the CreateGlobalTable 596// API call, and error handling. 597// 598// This method is useful when you want to inject custom logic or configuration 599// into the SDK's request lifecycle. Such as custom headers, or retry logic. 600// 601// 602// // Example sending a request using the CreateGlobalTableRequest method. 603// req, resp := client.CreateGlobalTableRequest(params) 604// 605// err := req.Send() 606// if err == nil { // resp is now filled 607// fmt.Println(resp) 608// } 609// 610// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/CreateGlobalTable 611func (c *DynamoDB) CreateGlobalTableRequest(input *CreateGlobalTableInput) (req *request.Request, output *CreateGlobalTableOutput) { 612 op := &request.Operation{ 613 Name: opCreateGlobalTable, 614 HTTPMethod: "POST", 615 HTTPPath: "/", 616 } 617 618 if input == nil { 619 input = &CreateGlobalTableInput{} 620 } 621 622 output = &CreateGlobalTableOutput{} 623 req = c.newRequest(op, input, output) 624 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 625 de := discovererDescribeEndpoints{ 626 Required: false, 627 EndpointCache: c.endpointCache, 628 Params: map[string]*string{ 629 "op": aws.String(req.Operation.Name), 630 }, 631 Client: c, 632 } 633 634 for k, v := range de.Params { 635 if v == nil { 636 delete(de.Params, k) 637 } 638 } 639 640 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 641 Name: "crr.endpointdiscovery", 642 Fn: de.Handler, 643 }) 644 } 645 return 646} 647 648// CreateGlobalTable API operation for Amazon DynamoDB. 649// 650// Creates a global table from an existing table. A global table creates a replication 651// relationship between two or more DynamoDB tables with the same table name 652// in the provided Regions. 653// 654// If you want to add a new replica table to a global table, each of the following 655// conditions must be true: 656// 657// * The table must have the same primary key as all of the other replicas. 658// 659// * The table must have the same name as all of the other replicas. 660// 661// * The table must have DynamoDB Streams enabled, with the stream containing 662// both the new and the old images of the item. 663// 664// * None of the replica tables in the global table can contain any data. 665// 666// If global secondary indexes are specified, then the following conditions 667// must also be met: 668// 669// * The global secondary indexes must have the same name. 670// 671// * The global secondary indexes must have the same hash key and sort key 672// (if present). 673// 674// Write capacity settings should be set consistently across your replica tables 675// and secondary indexes. DynamoDB strongly recommends enabling auto scaling 676// to manage the write capacity settings for all of your global tables replicas 677// and indexes. 678// 679// If you prefer to manage write capacity settings manually, you should provision 680// equal replicated write capacity units to your replica tables. You should 681// also provision equal replicated write capacity units to matching secondary 682// indexes across your global table. 683// 684// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 685// with awserr.Error's Code and Message methods to get detailed information about 686// the error. 687// 688// See the AWS API reference guide for Amazon DynamoDB's 689// API operation CreateGlobalTable for usage and error information. 690// 691// Returned Error Codes: 692// * ErrCodeLimitExceededException "LimitExceededException" 693// There is no limit to the number of daily on-demand backups that can be taken. 694// 695// Up to 50 simultaneous table operations are allowed per account. These operations 696// include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup, 697// and RestoreTableToPointInTime. 698// 699// The only exception is when you are creating a table with one or more secondary 700// indexes. You can have up to 25 such requests running at a time; however, 701// if the table or index specifications are complex, DynamoDB might temporarily 702// reduce the number of concurrent operations. 703// 704// There is a soft account limit of 256 tables. 705// 706// * ErrCodeInternalServerError "InternalServerError" 707// An error occurred on the server side. 708// 709// * ErrCodeGlobalTableAlreadyExistsException "GlobalTableAlreadyExistsException" 710// The specified global table already exists. 711// 712// * ErrCodeTableNotFoundException "TableNotFoundException" 713// A source table with the name TableName does not currently exist within the 714// subscriber's account. 715// 716// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/CreateGlobalTable 717func (c *DynamoDB) CreateGlobalTable(input *CreateGlobalTableInput) (*CreateGlobalTableOutput, error) { 718 req, out := c.CreateGlobalTableRequest(input) 719 return out, req.Send() 720} 721 722// CreateGlobalTableWithContext is the same as CreateGlobalTable with the addition of 723// the ability to pass a context and additional request options. 724// 725// See CreateGlobalTable for details on how to use this API operation. 726// 727// The context must be non-nil and will be used for request cancellation. If 728// the context is nil a panic will occur. In the future the SDK may create 729// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 730// for more information on using Contexts. 731func (c *DynamoDB) CreateGlobalTableWithContext(ctx aws.Context, input *CreateGlobalTableInput, opts ...request.Option) (*CreateGlobalTableOutput, error) { 732 req, out := c.CreateGlobalTableRequest(input) 733 req.SetContext(ctx) 734 req.ApplyOptions(opts...) 735 return out, req.Send() 736} 737 738const opCreateTable = "CreateTable" 739 740// CreateTableRequest generates a "aws/request.Request" representing the 741// client's request for the CreateTable operation. The "output" return 742// value will be populated with the request's response once the request completes 743// successfully. 744// 745// Use "Send" method on the returned Request to send the API call to the service. 746// the "output" return value is not valid until after Send returns without error. 747// 748// See CreateTable for more information on using the CreateTable 749// API call, and error handling. 750// 751// This method is useful when you want to inject custom logic or configuration 752// into the SDK's request lifecycle. Such as custom headers, or retry logic. 753// 754// 755// // Example sending a request using the CreateTableRequest method. 756// req, resp := client.CreateTableRequest(params) 757// 758// err := req.Send() 759// if err == nil { // resp is now filled 760// fmt.Println(resp) 761// } 762// 763// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/CreateTable 764func (c *DynamoDB) CreateTableRequest(input *CreateTableInput) (req *request.Request, output *CreateTableOutput) { 765 op := &request.Operation{ 766 Name: opCreateTable, 767 HTTPMethod: "POST", 768 HTTPPath: "/", 769 } 770 771 if input == nil { 772 input = &CreateTableInput{} 773 } 774 775 output = &CreateTableOutput{} 776 req = c.newRequest(op, input, output) 777 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 778 de := discovererDescribeEndpoints{ 779 Required: false, 780 EndpointCache: c.endpointCache, 781 Params: map[string]*string{ 782 "op": aws.String(req.Operation.Name), 783 }, 784 Client: c, 785 } 786 787 for k, v := range de.Params { 788 if v == nil { 789 delete(de.Params, k) 790 } 791 } 792 793 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 794 Name: "crr.endpointdiscovery", 795 Fn: de.Handler, 796 }) 797 } 798 return 799} 800 801// CreateTable API operation for Amazon DynamoDB. 802// 803// The CreateTable operation adds a new table to your account. In an AWS account, 804// table names must be unique within each Region. That is, you can have two 805// tables with same name if you create the tables in different Regions. 806// 807// CreateTable is an asynchronous operation. Upon receiving a CreateTable request, 808// DynamoDB immediately returns a response with a TableStatus of CREATING. After 809// the table is created, DynamoDB sets the TableStatus to ACTIVE. You can perform 810// read and write operations only on an ACTIVE table. 811// 812// You can optionally define secondary indexes on the new table, as part of 813// the CreateTable operation. If you want to create multiple tables with secondary 814// indexes on them, you must create the tables sequentially. Only one table 815// with secondary indexes can be in the CREATING state at any given time. 816// 817// You can use the DescribeTable action to check the table status. 818// 819// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 820// with awserr.Error's Code and Message methods to get detailed information about 821// the error. 822// 823// See the AWS API reference guide for Amazon DynamoDB's 824// API operation CreateTable for usage and error information. 825// 826// Returned Error Codes: 827// * ErrCodeResourceInUseException "ResourceInUseException" 828// The operation conflicts with the resource's availability. For example, you 829// attempted to recreate an existing table, or tried to delete a table currently 830// in the CREATING state. 831// 832// * ErrCodeLimitExceededException "LimitExceededException" 833// There is no limit to the number of daily on-demand backups that can be taken. 834// 835// Up to 50 simultaneous table operations are allowed per account. These operations 836// include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup, 837// and RestoreTableToPointInTime. 838// 839// The only exception is when you are creating a table with one or more secondary 840// indexes. You can have up to 25 such requests running at a time; however, 841// if the table or index specifications are complex, DynamoDB might temporarily 842// reduce the number of concurrent operations. 843// 844// There is a soft account limit of 256 tables. 845// 846// * ErrCodeInternalServerError "InternalServerError" 847// An error occurred on the server side. 848// 849// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/CreateTable 850func (c *DynamoDB) CreateTable(input *CreateTableInput) (*CreateTableOutput, error) { 851 req, out := c.CreateTableRequest(input) 852 return out, req.Send() 853} 854 855// CreateTableWithContext is the same as CreateTable with the addition of 856// the ability to pass a context and additional request options. 857// 858// See CreateTable for details on how to use this API operation. 859// 860// The context must be non-nil and will be used for request cancellation. If 861// the context is nil a panic will occur. In the future the SDK may create 862// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 863// for more information on using Contexts. 864func (c *DynamoDB) CreateTableWithContext(ctx aws.Context, input *CreateTableInput, opts ...request.Option) (*CreateTableOutput, error) { 865 req, out := c.CreateTableRequest(input) 866 req.SetContext(ctx) 867 req.ApplyOptions(opts...) 868 return out, req.Send() 869} 870 871const opDeleteBackup = "DeleteBackup" 872 873// DeleteBackupRequest generates a "aws/request.Request" representing the 874// client's request for the DeleteBackup operation. The "output" return 875// value will be populated with the request's response once the request completes 876// successfully. 877// 878// Use "Send" method on the returned Request to send the API call to the service. 879// the "output" return value is not valid until after Send returns without error. 880// 881// See DeleteBackup for more information on using the DeleteBackup 882// API call, and error handling. 883// 884// This method is useful when you want to inject custom logic or configuration 885// into the SDK's request lifecycle. Such as custom headers, or retry logic. 886// 887// 888// // Example sending a request using the DeleteBackupRequest method. 889// req, resp := client.DeleteBackupRequest(params) 890// 891// err := req.Send() 892// if err == nil { // resp is now filled 893// fmt.Println(resp) 894// } 895// 896// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DeleteBackup 897func (c *DynamoDB) DeleteBackupRequest(input *DeleteBackupInput) (req *request.Request, output *DeleteBackupOutput) { 898 op := &request.Operation{ 899 Name: opDeleteBackup, 900 HTTPMethod: "POST", 901 HTTPPath: "/", 902 } 903 904 if input == nil { 905 input = &DeleteBackupInput{} 906 } 907 908 output = &DeleteBackupOutput{} 909 req = c.newRequest(op, input, output) 910 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 911 de := discovererDescribeEndpoints{ 912 Required: false, 913 EndpointCache: c.endpointCache, 914 Params: map[string]*string{ 915 "op": aws.String(req.Operation.Name), 916 }, 917 Client: c, 918 } 919 920 for k, v := range de.Params { 921 if v == nil { 922 delete(de.Params, k) 923 } 924 } 925 926 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 927 Name: "crr.endpointdiscovery", 928 Fn: de.Handler, 929 }) 930 } 931 return 932} 933 934// DeleteBackup API operation for Amazon DynamoDB. 935// 936// Deletes an existing backup of a table. 937// 938// You can call DeleteBackup at a maximum rate of 10 times per second. 939// 940// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 941// with awserr.Error's Code and Message methods to get detailed information about 942// the error. 943// 944// See the AWS API reference guide for Amazon DynamoDB's 945// API operation DeleteBackup for usage and error information. 946// 947// Returned Error Codes: 948// * ErrCodeBackupNotFoundException "BackupNotFoundException" 949// Backup not found for the given BackupARN. 950// 951// * ErrCodeBackupInUseException "BackupInUseException" 952// There is another ongoing conflicting backup control plane operation on the 953// table. The backup is either being created, deleted or restored to a table. 954// 955// * ErrCodeLimitExceededException "LimitExceededException" 956// There is no limit to the number of daily on-demand backups that can be taken. 957// 958// Up to 50 simultaneous table operations are allowed per account. These operations 959// include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup, 960// and RestoreTableToPointInTime. 961// 962// The only exception is when you are creating a table with one or more secondary 963// indexes. You can have up to 25 such requests running at a time; however, 964// if the table or index specifications are complex, DynamoDB might temporarily 965// reduce the number of concurrent operations. 966// 967// There is a soft account limit of 256 tables. 968// 969// * ErrCodeInternalServerError "InternalServerError" 970// An error occurred on the server side. 971// 972// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DeleteBackup 973func (c *DynamoDB) DeleteBackup(input *DeleteBackupInput) (*DeleteBackupOutput, error) { 974 req, out := c.DeleteBackupRequest(input) 975 return out, req.Send() 976} 977 978// DeleteBackupWithContext is the same as DeleteBackup with the addition of 979// the ability to pass a context and additional request options. 980// 981// See DeleteBackup for details on how to use this API operation. 982// 983// The context must be non-nil and will be used for request cancellation. If 984// the context is nil a panic will occur. In the future the SDK may create 985// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 986// for more information on using Contexts. 987func (c *DynamoDB) DeleteBackupWithContext(ctx aws.Context, input *DeleteBackupInput, opts ...request.Option) (*DeleteBackupOutput, error) { 988 req, out := c.DeleteBackupRequest(input) 989 req.SetContext(ctx) 990 req.ApplyOptions(opts...) 991 return out, req.Send() 992} 993 994const opDeleteItem = "DeleteItem" 995 996// DeleteItemRequest generates a "aws/request.Request" representing the 997// client's request for the DeleteItem operation. The "output" return 998// value will be populated with the request's response once the request completes 999// successfully. 1000// 1001// Use "Send" method on the returned Request to send the API call to the service. 1002// the "output" return value is not valid until after Send returns without error. 1003// 1004// See DeleteItem for more information on using the DeleteItem 1005// API call, and error handling. 1006// 1007// This method is useful when you want to inject custom logic or configuration 1008// into the SDK's request lifecycle. Such as custom headers, or retry logic. 1009// 1010// 1011// // Example sending a request using the DeleteItemRequest method. 1012// req, resp := client.DeleteItemRequest(params) 1013// 1014// err := req.Send() 1015// if err == nil { // resp is now filled 1016// fmt.Println(resp) 1017// } 1018// 1019// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DeleteItem 1020func (c *DynamoDB) DeleteItemRequest(input *DeleteItemInput) (req *request.Request, output *DeleteItemOutput) { 1021 op := &request.Operation{ 1022 Name: opDeleteItem, 1023 HTTPMethod: "POST", 1024 HTTPPath: "/", 1025 } 1026 1027 if input == nil { 1028 input = &DeleteItemInput{} 1029 } 1030 1031 output = &DeleteItemOutput{} 1032 req = c.newRequest(op, input, output) 1033 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 1034 de := discovererDescribeEndpoints{ 1035 Required: false, 1036 EndpointCache: c.endpointCache, 1037 Params: map[string]*string{ 1038 "op": aws.String(req.Operation.Name), 1039 }, 1040 Client: c, 1041 } 1042 1043 for k, v := range de.Params { 1044 if v == nil { 1045 delete(de.Params, k) 1046 } 1047 } 1048 1049 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 1050 Name: "crr.endpointdiscovery", 1051 Fn: de.Handler, 1052 }) 1053 } 1054 return 1055} 1056 1057// DeleteItem API operation for Amazon DynamoDB. 1058// 1059// Deletes a single item in a table by primary key. You can perform a conditional 1060// delete operation that deletes the item if it exists, or if it has an expected 1061// attribute value. 1062// 1063// In addition to deleting an item, you can also return the item's attribute 1064// values in the same operation, using the ReturnValues parameter. 1065// 1066// Unless you specify conditions, the DeleteItem is an idempotent operation; 1067// running it multiple times on the same item or attribute does not result in 1068// an error response. 1069// 1070// Conditional deletes are useful for deleting items only if specific conditions 1071// are met. If those conditions are met, DynamoDB performs the delete. Otherwise, 1072// the item is not deleted. 1073// 1074// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1075// with awserr.Error's Code and Message methods to get detailed information about 1076// the error. 1077// 1078// See the AWS API reference guide for Amazon DynamoDB's 1079// API operation DeleteItem for usage and error information. 1080// 1081// Returned Error Codes: 1082// * ErrCodeConditionalCheckFailedException "ConditionalCheckFailedException" 1083// A condition specified in the operation could not be evaluated. 1084// 1085// * ErrCodeProvisionedThroughputExceededException "ProvisionedThroughputExceededException" 1086// Your request rate is too high. The AWS SDKs for DynamoDB automatically retry 1087// requests that receive this exception. Your request is eventually successful, 1088// unless your retry queue is too large to finish. Reduce the frequency of requests 1089// and use exponential backoff. For more information, go to Error Retries and 1090// Exponential Backoff (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.RetryAndBackoff) 1091// in the Amazon DynamoDB Developer Guide. 1092// 1093// * ErrCodeResourceNotFoundException "ResourceNotFoundException" 1094// The operation tried to access a nonexistent table or index. The resource 1095// might not be specified correctly, or its status might not be ACTIVE. 1096// 1097// * ErrCodeItemCollectionSizeLimitExceededException "ItemCollectionSizeLimitExceededException" 1098// An item collection is too large. This exception is only returned for tables 1099// that have one or more local secondary indexes. 1100// 1101// * ErrCodeTransactionConflictException "TransactionConflictException" 1102// Operation was rejected because there is an ongoing transaction for the item. 1103// 1104// * ErrCodeRequestLimitExceeded "RequestLimitExceeded" 1105// Throughput exceeds the current throughput limit for your account. Please 1106// contact AWS Support at AWS Support (https://aws.amazon.com/support) to request 1107// a limit increase. 1108// 1109// * ErrCodeInternalServerError "InternalServerError" 1110// An error occurred on the server side. 1111// 1112// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DeleteItem 1113func (c *DynamoDB) DeleteItem(input *DeleteItemInput) (*DeleteItemOutput, error) { 1114 req, out := c.DeleteItemRequest(input) 1115 return out, req.Send() 1116} 1117 1118// DeleteItemWithContext is the same as DeleteItem with the addition of 1119// the ability to pass a context and additional request options. 1120// 1121// See DeleteItem for details on how to use this API operation. 1122// 1123// The context must be non-nil and will be used for request cancellation. If 1124// the context is nil a panic will occur. In the future the SDK may create 1125// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1126// for more information on using Contexts. 1127func (c *DynamoDB) DeleteItemWithContext(ctx aws.Context, input *DeleteItemInput, opts ...request.Option) (*DeleteItemOutput, error) { 1128 req, out := c.DeleteItemRequest(input) 1129 req.SetContext(ctx) 1130 req.ApplyOptions(opts...) 1131 return out, req.Send() 1132} 1133 1134const opDeleteTable = "DeleteTable" 1135 1136// DeleteTableRequest generates a "aws/request.Request" representing the 1137// client's request for the DeleteTable operation. The "output" return 1138// value will be populated with the request's response once the request completes 1139// successfully. 1140// 1141// Use "Send" method on the returned Request to send the API call to the service. 1142// the "output" return value is not valid until after Send returns without error. 1143// 1144// See DeleteTable for more information on using the DeleteTable 1145// API call, and error handling. 1146// 1147// This method is useful when you want to inject custom logic or configuration 1148// into the SDK's request lifecycle. Such as custom headers, or retry logic. 1149// 1150// 1151// // Example sending a request using the DeleteTableRequest method. 1152// req, resp := client.DeleteTableRequest(params) 1153// 1154// err := req.Send() 1155// if err == nil { // resp is now filled 1156// fmt.Println(resp) 1157// } 1158// 1159// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DeleteTable 1160func (c *DynamoDB) DeleteTableRequest(input *DeleteTableInput) (req *request.Request, output *DeleteTableOutput) { 1161 op := &request.Operation{ 1162 Name: opDeleteTable, 1163 HTTPMethod: "POST", 1164 HTTPPath: "/", 1165 } 1166 1167 if input == nil { 1168 input = &DeleteTableInput{} 1169 } 1170 1171 output = &DeleteTableOutput{} 1172 req = c.newRequest(op, input, output) 1173 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 1174 de := discovererDescribeEndpoints{ 1175 Required: false, 1176 EndpointCache: c.endpointCache, 1177 Params: map[string]*string{ 1178 "op": aws.String(req.Operation.Name), 1179 }, 1180 Client: c, 1181 } 1182 1183 for k, v := range de.Params { 1184 if v == nil { 1185 delete(de.Params, k) 1186 } 1187 } 1188 1189 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 1190 Name: "crr.endpointdiscovery", 1191 Fn: de.Handler, 1192 }) 1193 } 1194 return 1195} 1196 1197// DeleteTable API operation for Amazon DynamoDB. 1198// 1199// The DeleteTable operation deletes a table and all of its items. After a DeleteTable 1200// request, the specified table is in the DELETING state until DynamoDB completes 1201// the deletion. If the table is in the ACTIVE state, you can delete it. If 1202// a table is in CREATING or UPDATING states, then DynamoDB returns a ResourceInUseException. 1203// If the specified table does not exist, DynamoDB returns a ResourceNotFoundException. 1204// If table is already in the DELETING state, no error is returned. 1205// 1206// DynamoDB might continue to accept data read and write operations, such as 1207// GetItem and PutItem, on a table in the DELETING state until the table deletion 1208// is complete. 1209// 1210// When you delete a table, any indexes on that table are also deleted. 1211// 1212// If you have DynamoDB Streams enabled on the table, then the corresponding 1213// stream on that table goes into the DISABLED state, and the stream is automatically 1214// deleted after 24 hours. 1215// 1216// Use the DescribeTable action to check the status of the table. 1217// 1218// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1219// with awserr.Error's Code and Message methods to get detailed information about 1220// the error. 1221// 1222// See the AWS API reference guide for Amazon DynamoDB's 1223// API operation DeleteTable for usage and error information. 1224// 1225// Returned Error Codes: 1226// * ErrCodeResourceInUseException "ResourceInUseException" 1227// The operation conflicts with the resource's availability. For example, you 1228// attempted to recreate an existing table, or tried to delete a table currently 1229// in the CREATING state. 1230// 1231// * ErrCodeResourceNotFoundException "ResourceNotFoundException" 1232// The operation tried to access a nonexistent table or index. The resource 1233// might not be specified correctly, or its status might not be ACTIVE. 1234// 1235// * ErrCodeLimitExceededException "LimitExceededException" 1236// There is no limit to the number of daily on-demand backups that can be taken. 1237// 1238// Up to 50 simultaneous table operations are allowed per account. These operations 1239// include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup, 1240// and RestoreTableToPointInTime. 1241// 1242// The only exception is when you are creating a table with one or more secondary 1243// indexes. You can have up to 25 such requests running at a time; however, 1244// if the table or index specifications are complex, DynamoDB might temporarily 1245// reduce the number of concurrent operations. 1246// 1247// There is a soft account limit of 256 tables. 1248// 1249// * ErrCodeInternalServerError "InternalServerError" 1250// An error occurred on the server side. 1251// 1252// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DeleteTable 1253func (c *DynamoDB) DeleteTable(input *DeleteTableInput) (*DeleteTableOutput, error) { 1254 req, out := c.DeleteTableRequest(input) 1255 return out, req.Send() 1256} 1257 1258// DeleteTableWithContext is the same as DeleteTable with the addition of 1259// the ability to pass a context and additional request options. 1260// 1261// See DeleteTable for details on how to use this API operation. 1262// 1263// The context must be non-nil and will be used for request cancellation. If 1264// the context is nil a panic will occur. In the future the SDK may create 1265// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1266// for more information on using Contexts. 1267func (c *DynamoDB) DeleteTableWithContext(ctx aws.Context, input *DeleteTableInput, opts ...request.Option) (*DeleteTableOutput, error) { 1268 req, out := c.DeleteTableRequest(input) 1269 req.SetContext(ctx) 1270 req.ApplyOptions(opts...) 1271 return out, req.Send() 1272} 1273 1274const opDescribeBackup = "DescribeBackup" 1275 1276// DescribeBackupRequest generates a "aws/request.Request" representing the 1277// client's request for the DescribeBackup operation. The "output" return 1278// value will be populated with the request's response once the request completes 1279// successfully. 1280// 1281// Use "Send" method on the returned Request to send the API call to the service. 1282// the "output" return value is not valid until after Send returns without error. 1283// 1284// See DescribeBackup for more information on using the DescribeBackup 1285// API call, and error handling. 1286// 1287// This method is useful when you want to inject custom logic or configuration 1288// into the SDK's request lifecycle. Such as custom headers, or retry logic. 1289// 1290// 1291// // Example sending a request using the DescribeBackupRequest method. 1292// req, resp := client.DescribeBackupRequest(params) 1293// 1294// err := req.Send() 1295// if err == nil { // resp is now filled 1296// fmt.Println(resp) 1297// } 1298// 1299// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeBackup 1300func (c *DynamoDB) DescribeBackupRequest(input *DescribeBackupInput) (req *request.Request, output *DescribeBackupOutput) { 1301 op := &request.Operation{ 1302 Name: opDescribeBackup, 1303 HTTPMethod: "POST", 1304 HTTPPath: "/", 1305 } 1306 1307 if input == nil { 1308 input = &DescribeBackupInput{} 1309 } 1310 1311 output = &DescribeBackupOutput{} 1312 req = c.newRequest(op, input, output) 1313 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 1314 de := discovererDescribeEndpoints{ 1315 Required: false, 1316 EndpointCache: c.endpointCache, 1317 Params: map[string]*string{ 1318 "op": aws.String(req.Operation.Name), 1319 }, 1320 Client: c, 1321 } 1322 1323 for k, v := range de.Params { 1324 if v == nil { 1325 delete(de.Params, k) 1326 } 1327 } 1328 1329 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 1330 Name: "crr.endpointdiscovery", 1331 Fn: de.Handler, 1332 }) 1333 } 1334 return 1335} 1336 1337// DescribeBackup API operation for Amazon DynamoDB. 1338// 1339// Describes an existing backup of a table. 1340// 1341// You can call DescribeBackup at a maximum rate of 10 times per second. 1342// 1343// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1344// with awserr.Error's Code and Message methods to get detailed information about 1345// the error. 1346// 1347// See the AWS API reference guide for Amazon DynamoDB's 1348// API operation DescribeBackup for usage and error information. 1349// 1350// Returned Error Codes: 1351// * ErrCodeBackupNotFoundException "BackupNotFoundException" 1352// Backup not found for the given BackupARN. 1353// 1354// * ErrCodeInternalServerError "InternalServerError" 1355// An error occurred on the server side. 1356// 1357// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeBackup 1358func (c *DynamoDB) DescribeBackup(input *DescribeBackupInput) (*DescribeBackupOutput, error) { 1359 req, out := c.DescribeBackupRequest(input) 1360 return out, req.Send() 1361} 1362 1363// DescribeBackupWithContext is the same as DescribeBackup with the addition of 1364// the ability to pass a context and additional request options. 1365// 1366// See DescribeBackup for details on how to use this API operation. 1367// 1368// The context must be non-nil and will be used for request cancellation. If 1369// the context is nil a panic will occur. In the future the SDK may create 1370// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1371// for more information on using Contexts. 1372func (c *DynamoDB) DescribeBackupWithContext(ctx aws.Context, input *DescribeBackupInput, opts ...request.Option) (*DescribeBackupOutput, error) { 1373 req, out := c.DescribeBackupRequest(input) 1374 req.SetContext(ctx) 1375 req.ApplyOptions(opts...) 1376 return out, req.Send() 1377} 1378 1379const opDescribeContinuousBackups = "DescribeContinuousBackups" 1380 1381// DescribeContinuousBackupsRequest generates a "aws/request.Request" representing the 1382// client's request for the DescribeContinuousBackups operation. The "output" return 1383// value will be populated with the request's response once the request completes 1384// successfully. 1385// 1386// Use "Send" method on the returned Request to send the API call to the service. 1387// the "output" return value is not valid until after Send returns without error. 1388// 1389// See DescribeContinuousBackups for more information on using the DescribeContinuousBackups 1390// API call, and error handling. 1391// 1392// This method is useful when you want to inject custom logic or configuration 1393// into the SDK's request lifecycle. Such as custom headers, or retry logic. 1394// 1395// 1396// // Example sending a request using the DescribeContinuousBackupsRequest method. 1397// req, resp := client.DescribeContinuousBackupsRequest(params) 1398// 1399// err := req.Send() 1400// if err == nil { // resp is now filled 1401// fmt.Println(resp) 1402// } 1403// 1404// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeContinuousBackups 1405func (c *DynamoDB) DescribeContinuousBackupsRequest(input *DescribeContinuousBackupsInput) (req *request.Request, output *DescribeContinuousBackupsOutput) { 1406 op := &request.Operation{ 1407 Name: opDescribeContinuousBackups, 1408 HTTPMethod: "POST", 1409 HTTPPath: "/", 1410 } 1411 1412 if input == nil { 1413 input = &DescribeContinuousBackupsInput{} 1414 } 1415 1416 output = &DescribeContinuousBackupsOutput{} 1417 req = c.newRequest(op, input, output) 1418 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 1419 de := discovererDescribeEndpoints{ 1420 Required: false, 1421 EndpointCache: c.endpointCache, 1422 Params: map[string]*string{ 1423 "op": aws.String(req.Operation.Name), 1424 }, 1425 Client: c, 1426 } 1427 1428 for k, v := range de.Params { 1429 if v == nil { 1430 delete(de.Params, k) 1431 } 1432 } 1433 1434 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 1435 Name: "crr.endpointdiscovery", 1436 Fn: de.Handler, 1437 }) 1438 } 1439 return 1440} 1441 1442// DescribeContinuousBackups API operation for Amazon DynamoDB. 1443// 1444// Checks the status of continuous backups and point in time recovery on the 1445// specified table. Continuous backups are ENABLED on all tables at table creation. 1446// If point in time recovery is enabled, PointInTimeRecoveryStatus will be set 1447// to ENABLED. 1448// 1449// After continuous backups and point in time recovery are enabled, you can 1450// restore to any point in time within EarliestRestorableDateTime and LatestRestorableDateTime. 1451// 1452// LatestRestorableDateTime is typically 5 minutes before the current time. 1453// You can restore your table to any point in time during the last 35 days. 1454// 1455// You can call DescribeContinuousBackups at a maximum rate of 10 times per 1456// second. 1457// 1458// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1459// with awserr.Error's Code and Message methods to get detailed information about 1460// the error. 1461// 1462// See the AWS API reference guide for Amazon DynamoDB's 1463// API operation DescribeContinuousBackups for usage and error information. 1464// 1465// Returned Error Codes: 1466// * ErrCodeTableNotFoundException "TableNotFoundException" 1467// A source table with the name TableName does not currently exist within the 1468// subscriber's account. 1469// 1470// * ErrCodeInternalServerError "InternalServerError" 1471// An error occurred on the server side. 1472// 1473// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeContinuousBackups 1474func (c *DynamoDB) DescribeContinuousBackups(input *DescribeContinuousBackupsInput) (*DescribeContinuousBackupsOutput, error) { 1475 req, out := c.DescribeContinuousBackupsRequest(input) 1476 return out, req.Send() 1477} 1478 1479// DescribeContinuousBackupsWithContext is the same as DescribeContinuousBackups with the addition of 1480// the ability to pass a context and additional request options. 1481// 1482// See DescribeContinuousBackups for details on how to use this API operation. 1483// 1484// The context must be non-nil and will be used for request cancellation. If 1485// the context is nil a panic will occur. In the future the SDK may create 1486// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1487// for more information on using Contexts. 1488func (c *DynamoDB) DescribeContinuousBackupsWithContext(ctx aws.Context, input *DescribeContinuousBackupsInput, opts ...request.Option) (*DescribeContinuousBackupsOutput, error) { 1489 req, out := c.DescribeContinuousBackupsRequest(input) 1490 req.SetContext(ctx) 1491 req.ApplyOptions(opts...) 1492 return out, req.Send() 1493} 1494 1495const opDescribeEndpoints = "DescribeEndpoints" 1496 1497// DescribeEndpointsRequest generates a "aws/request.Request" representing the 1498// client's request for the DescribeEndpoints operation. The "output" return 1499// value will be populated with the request's response once the request completes 1500// successfully. 1501// 1502// Use "Send" method on the returned Request to send the API call to the service. 1503// the "output" return value is not valid until after Send returns without error. 1504// 1505// See DescribeEndpoints for more information on using the DescribeEndpoints 1506// API call, and error handling. 1507// 1508// This method is useful when you want to inject custom logic or configuration 1509// into the SDK's request lifecycle. Such as custom headers, or retry logic. 1510// 1511// 1512// // Example sending a request using the DescribeEndpointsRequest method. 1513// req, resp := client.DescribeEndpointsRequest(params) 1514// 1515// err := req.Send() 1516// if err == nil { // resp is now filled 1517// fmt.Println(resp) 1518// } 1519// 1520// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeEndpoints 1521func (c *DynamoDB) DescribeEndpointsRequest(input *DescribeEndpointsInput) (req *request.Request, output *DescribeEndpointsOutput) { 1522 op := &request.Operation{ 1523 Name: opDescribeEndpoints, 1524 HTTPMethod: "POST", 1525 HTTPPath: "/", 1526 } 1527 1528 if input == nil { 1529 input = &DescribeEndpointsInput{} 1530 } 1531 1532 output = &DescribeEndpointsOutput{} 1533 req = c.newRequest(op, input, output) 1534 return 1535} 1536 1537// DescribeEndpoints API operation for Amazon DynamoDB. 1538// 1539// Returns the regional endpoint information. 1540// 1541// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1542// with awserr.Error's Code and Message methods to get detailed information about 1543// the error. 1544// 1545// See the AWS API reference guide for Amazon DynamoDB's 1546// API operation DescribeEndpoints for usage and error information. 1547// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeEndpoints 1548func (c *DynamoDB) DescribeEndpoints(input *DescribeEndpointsInput) (*DescribeEndpointsOutput, error) { 1549 req, out := c.DescribeEndpointsRequest(input) 1550 return out, req.Send() 1551} 1552 1553// DescribeEndpointsWithContext is the same as DescribeEndpoints with the addition of 1554// the ability to pass a context and additional request options. 1555// 1556// See DescribeEndpoints for details on how to use this API operation. 1557// 1558// The context must be non-nil and will be used for request cancellation. If 1559// the context is nil a panic will occur. In the future the SDK may create 1560// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1561// for more information on using Contexts. 1562func (c *DynamoDB) DescribeEndpointsWithContext(ctx aws.Context, input *DescribeEndpointsInput, opts ...request.Option) (*DescribeEndpointsOutput, error) { 1563 req, out := c.DescribeEndpointsRequest(input) 1564 req.SetContext(ctx) 1565 req.ApplyOptions(opts...) 1566 return out, req.Send() 1567} 1568 1569type discovererDescribeEndpoints struct { 1570 Client *DynamoDB 1571 Required bool 1572 EndpointCache *crr.EndpointCache 1573 Params map[string]*string 1574 Key string 1575} 1576 1577func (d *discovererDescribeEndpoints) Discover() (crr.Endpoint, error) { 1578 input := &DescribeEndpointsInput{} 1579 1580 resp, err := d.Client.DescribeEndpoints(input) 1581 if err != nil { 1582 return crr.Endpoint{}, err 1583 } 1584 1585 endpoint := crr.Endpoint{ 1586 Key: d.Key, 1587 } 1588 1589 for _, e := range resp.Endpoints { 1590 if e.Address == nil { 1591 continue 1592 } 1593 1594 cachedInMinutes := aws.Int64Value(e.CachePeriodInMinutes) 1595 u, err := url.Parse(*e.Address) 1596 if err != nil { 1597 continue 1598 } 1599 1600 addr := crr.WeightedAddress{ 1601 URL: u, 1602 Expired: time.Now().Add(time.Duration(cachedInMinutes) * time.Minute), 1603 } 1604 1605 endpoint.Add(addr) 1606 } 1607 1608 d.EndpointCache.Add(endpoint) 1609 1610 return endpoint, nil 1611} 1612 1613func (d *discovererDescribeEndpoints) Handler(r *request.Request) { 1614 endpointKey := crr.BuildEndpointKey(d.Params) 1615 d.Key = endpointKey 1616 1617 endpoint, err := d.EndpointCache.Get(d, endpointKey, d.Required) 1618 if err != nil { 1619 r.Error = err 1620 return 1621 } 1622 1623 if endpoint.URL != nil && len(endpoint.URL.String()) > 0 { 1624 r.HTTPRequest.URL = endpoint.URL 1625 } 1626} 1627 1628const opDescribeGlobalTable = "DescribeGlobalTable" 1629 1630// DescribeGlobalTableRequest generates a "aws/request.Request" representing the 1631// client's request for the DescribeGlobalTable operation. The "output" return 1632// value will be populated with the request's response once the request completes 1633// successfully. 1634// 1635// Use "Send" method on the returned Request to send the API call to the service. 1636// the "output" return value is not valid until after Send returns without error. 1637// 1638// See DescribeGlobalTable for more information on using the DescribeGlobalTable 1639// API call, and error handling. 1640// 1641// This method is useful when you want to inject custom logic or configuration 1642// into the SDK's request lifecycle. Such as custom headers, or retry logic. 1643// 1644// 1645// // Example sending a request using the DescribeGlobalTableRequest method. 1646// req, resp := client.DescribeGlobalTableRequest(params) 1647// 1648// err := req.Send() 1649// if err == nil { // resp is now filled 1650// fmt.Println(resp) 1651// } 1652// 1653// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeGlobalTable 1654func (c *DynamoDB) DescribeGlobalTableRequest(input *DescribeGlobalTableInput) (req *request.Request, output *DescribeGlobalTableOutput) { 1655 op := &request.Operation{ 1656 Name: opDescribeGlobalTable, 1657 HTTPMethod: "POST", 1658 HTTPPath: "/", 1659 } 1660 1661 if input == nil { 1662 input = &DescribeGlobalTableInput{} 1663 } 1664 1665 output = &DescribeGlobalTableOutput{} 1666 req = c.newRequest(op, input, output) 1667 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 1668 de := discovererDescribeEndpoints{ 1669 Required: false, 1670 EndpointCache: c.endpointCache, 1671 Params: map[string]*string{ 1672 "op": aws.String(req.Operation.Name), 1673 }, 1674 Client: c, 1675 } 1676 1677 for k, v := range de.Params { 1678 if v == nil { 1679 delete(de.Params, k) 1680 } 1681 } 1682 1683 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 1684 Name: "crr.endpointdiscovery", 1685 Fn: de.Handler, 1686 }) 1687 } 1688 return 1689} 1690 1691// DescribeGlobalTable API operation for Amazon DynamoDB. 1692// 1693// Returns information about the specified global table. 1694// 1695// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1696// with awserr.Error's Code and Message methods to get detailed information about 1697// the error. 1698// 1699// See the AWS API reference guide for Amazon DynamoDB's 1700// API operation DescribeGlobalTable for usage and error information. 1701// 1702// Returned Error Codes: 1703// * ErrCodeInternalServerError "InternalServerError" 1704// An error occurred on the server side. 1705// 1706// * ErrCodeGlobalTableNotFoundException "GlobalTableNotFoundException" 1707// The specified global table does not exist. 1708// 1709// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeGlobalTable 1710func (c *DynamoDB) DescribeGlobalTable(input *DescribeGlobalTableInput) (*DescribeGlobalTableOutput, error) { 1711 req, out := c.DescribeGlobalTableRequest(input) 1712 return out, req.Send() 1713} 1714 1715// DescribeGlobalTableWithContext is the same as DescribeGlobalTable with the addition of 1716// the ability to pass a context and additional request options. 1717// 1718// See DescribeGlobalTable for details on how to use this API operation. 1719// 1720// The context must be non-nil and will be used for request cancellation. If 1721// the context is nil a panic will occur. In the future the SDK may create 1722// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1723// for more information on using Contexts. 1724func (c *DynamoDB) DescribeGlobalTableWithContext(ctx aws.Context, input *DescribeGlobalTableInput, opts ...request.Option) (*DescribeGlobalTableOutput, error) { 1725 req, out := c.DescribeGlobalTableRequest(input) 1726 req.SetContext(ctx) 1727 req.ApplyOptions(opts...) 1728 return out, req.Send() 1729} 1730 1731const opDescribeGlobalTableSettings = "DescribeGlobalTableSettings" 1732 1733// DescribeGlobalTableSettingsRequest generates a "aws/request.Request" representing the 1734// client's request for the DescribeGlobalTableSettings operation. The "output" return 1735// value will be populated with the request's response once the request completes 1736// successfully. 1737// 1738// Use "Send" method on the returned Request to send the API call to the service. 1739// the "output" return value is not valid until after Send returns without error. 1740// 1741// See DescribeGlobalTableSettings for more information on using the DescribeGlobalTableSettings 1742// API call, and error handling. 1743// 1744// This method is useful when you want to inject custom logic or configuration 1745// into the SDK's request lifecycle. Such as custom headers, or retry logic. 1746// 1747// 1748// // Example sending a request using the DescribeGlobalTableSettingsRequest method. 1749// req, resp := client.DescribeGlobalTableSettingsRequest(params) 1750// 1751// err := req.Send() 1752// if err == nil { // resp is now filled 1753// fmt.Println(resp) 1754// } 1755// 1756// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeGlobalTableSettings 1757func (c *DynamoDB) DescribeGlobalTableSettingsRequest(input *DescribeGlobalTableSettingsInput) (req *request.Request, output *DescribeGlobalTableSettingsOutput) { 1758 op := &request.Operation{ 1759 Name: opDescribeGlobalTableSettings, 1760 HTTPMethod: "POST", 1761 HTTPPath: "/", 1762 } 1763 1764 if input == nil { 1765 input = &DescribeGlobalTableSettingsInput{} 1766 } 1767 1768 output = &DescribeGlobalTableSettingsOutput{} 1769 req = c.newRequest(op, input, output) 1770 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 1771 de := discovererDescribeEndpoints{ 1772 Required: false, 1773 EndpointCache: c.endpointCache, 1774 Params: map[string]*string{ 1775 "op": aws.String(req.Operation.Name), 1776 }, 1777 Client: c, 1778 } 1779 1780 for k, v := range de.Params { 1781 if v == nil { 1782 delete(de.Params, k) 1783 } 1784 } 1785 1786 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 1787 Name: "crr.endpointdiscovery", 1788 Fn: de.Handler, 1789 }) 1790 } 1791 return 1792} 1793 1794// DescribeGlobalTableSettings API operation for Amazon DynamoDB. 1795// 1796// Describes Region-specific settings for a global table. 1797// 1798// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1799// with awserr.Error's Code and Message methods to get detailed information about 1800// the error. 1801// 1802// See the AWS API reference guide for Amazon DynamoDB's 1803// API operation DescribeGlobalTableSettings for usage and error information. 1804// 1805// Returned Error Codes: 1806// * ErrCodeGlobalTableNotFoundException "GlobalTableNotFoundException" 1807// The specified global table does not exist. 1808// 1809// * ErrCodeInternalServerError "InternalServerError" 1810// An error occurred on the server side. 1811// 1812// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeGlobalTableSettings 1813func (c *DynamoDB) DescribeGlobalTableSettings(input *DescribeGlobalTableSettingsInput) (*DescribeGlobalTableSettingsOutput, error) { 1814 req, out := c.DescribeGlobalTableSettingsRequest(input) 1815 return out, req.Send() 1816} 1817 1818// DescribeGlobalTableSettingsWithContext is the same as DescribeGlobalTableSettings with the addition of 1819// the ability to pass a context and additional request options. 1820// 1821// See DescribeGlobalTableSettings for details on how to use this API operation. 1822// 1823// The context must be non-nil and will be used for request cancellation. If 1824// the context is nil a panic will occur. In the future the SDK may create 1825// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1826// for more information on using Contexts. 1827func (c *DynamoDB) DescribeGlobalTableSettingsWithContext(ctx aws.Context, input *DescribeGlobalTableSettingsInput, opts ...request.Option) (*DescribeGlobalTableSettingsOutput, error) { 1828 req, out := c.DescribeGlobalTableSettingsRequest(input) 1829 req.SetContext(ctx) 1830 req.ApplyOptions(opts...) 1831 return out, req.Send() 1832} 1833 1834const opDescribeLimits = "DescribeLimits" 1835 1836// DescribeLimitsRequest generates a "aws/request.Request" representing the 1837// client's request for the DescribeLimits operation. The "output" return 1838// value will be populated with the request's response once the request completes 1839// successfully. 1840// 1841// Use "Send" method on the returned Request to send the API call to the service. 1842// the "output" return value is not valid until after Send returns without error. 1843// 1844// See DescribeLimits for more information on using the DescribeLimits 1845// API call, and error handling. 1846// 1847// This method is useful when you want to inject custom logic or configuration 1848// into the SDK's request lifecycle. Such as custom headers, or retry logic. 1849// 1850// 1851// // Example sending a request using the DescribeLimitsRequest method. 1852// req, resp := client.DescribeLimitsRequest(params) 1853// 1854// err := req.Send() 1855// if err == nil { // resp is now filled 1856// fmt.Println(resp) 1857// } 1858// 1859// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeLimits 1860func (c *DynamoDB) DescribeLimitsRequest(input *DescribeLimitsInput) (req *request.Request, output *DescribeLimitsOutput) { 1861 op := &request.Operation{ 1862 Name: opDescribeLimits, 1863 HTTPMethod: "POST", 1864 HTTPPath: "/", 1865 } 1866 1867 if input == nil { 1868 input = &DescribeLimitsInput{} 1869 } 1870 1871 output = &DescribeLimitsOutput{} 1872 req = c.newRequest(op, input, output) 1873 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 1874 de := discovererDescribeEndpoints{ 1875 Required: false, 1876 EndpointCache: c.endpointCache, 1877 Params: map[string]*string{ 1878 "op": aws.String(req.Operation.Name), 1879 }, 1880 Client: c, 1881 } 1882 1883 for k, v := range de.Params { 1884 if v == nil { 1885 delete(de.Params, k) 1886 } 1887 } 1888 1889 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 1890 Name: "crr.endpointdiscovery", 1891 Fn: de.Handler, 1892 }) 1893 } 1894 return 1895} 1896 1897// DescribeLimits API operation for Amazon DynamoDB. 1898// 1899// Returns the current provisioned-capacity limits for your AWS account in a 1900// Region, both for the Region as a whole and for any one DynamoDB table that 1901// you create there. 1902// 1903// When you establish an AWS account, the account has initial limits on the 1904// maximum read capacity units and write capacity units that you can provision 1905// across all of your DynamoDB tables in a given Region. Also, there are per-table 1906// limits that apply when you create a table there. For more information, see 1907// Limits (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) 1908// page in the Amazon DynamoDB Developer Guide. 1909// 1910// Although you can increase these limits by filing a case at AWS Support Center 1911// (https://console.aws.amazon.com/support/home#/), obtaining the increase is 1912// not instantaneous. The DescribeLimits action lets you write code to compare 1913// the capacity you are currently using to those limits imposed by your account 1914// so that you have enough time to apply for an increase before you hit a limit. 1915// 1916// For example, you could use one of the AWS SDKs to do the following: 1917// 1918// Call DescribeLimits for a particular Region to obtain your current account 1919// limits on provisioned capacity there. 1920// 1921// Create a variable to hold the aggregate read capacity units provisioned for 1922// all your tables in that Region, and one to hold the aggregate write capacity 1923// units. Zero them both. 1924// 1925// Call ListTables to obtain a list of all your DynamoDB tables. 1926// 1927// For each table name listed by ListTables, do the following: 1928// 1929// * Call DescribeTable with the table name. 1930// 1931// * Use the data returned by DescribeTable to add the read capacity units 1932// and write capacity units provisioned for the table itself to your variables. 1933// 1934// * If the table has one or more global secondary indexes (GSIs), loop over 1935// these GSIs and add their provisioned capacity values to your variables 1936// as well. 1937// 1938// Report the account limits for that Region returned by DescribeLimits, along 1939// with the total current provisioned capacity levels you have calculated. 1940// 1941// This will let you see whether you are getting close to your account-level 1942// limits. 1943// 1944// The per-table limits apply only when you are creating a new table. They restrict 1945// the sum of the provisioned capacity of the new table itself and all its global 1946// secondary indexes. 1947// 1948// For existing tables and their GSIs, DynamoDB doesn't let you increase provisioned 1949// capacity extremely rapidly. But the only upper limit that applies is that 1950// the aggregate provisioned capacity over all your tables and GSIs cannot exceed 1951// either of the per-account limits. 1952// 1953// DescribeLimits should only be called periodically. You can expect throttling 1954// errors if you call it more than once in a minute. 1955// 1956// The DescribeLimits Request element has no content. 1957// 1958// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1959// with awserr.Error's Code and Message methods to get detailed information about 1960// the error. 1961// 1962// See the AWS API reference guide for Amazon DynamoDB's 1963// API operation DescribeLimits for usage and error information. 1964// 1965// Returned Error Codes: 1966// * ErrCodeInternalServerError "InternalServerError" 1967// An error occurred on the server side. 1968// 1969// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeLimits 1970func (c *DynamoDB) DescribeLimits(input *DescribeLimitsInput) (*DescribeLimitsOutput, error) { 1971 req, out := c.DescribeLimitsRequest(input) 1972 return out, req.Send() 1973} 1974 1975// DescribeLimitsWithContext is the same as DescribeLimits with the addition of 1976// the ability to pass a context and additional request options. 1977// 1978// See DescribeLimits for details on how to use this API operation. 1979// 1980// The context must be non-nil and will be used for request cancellation. If 1981// the context is nil a panic will occur. In the future the SDK may create 1982// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1983// for more information on using Contexts. 1984func (c *DynamoDB) DescribeLimitsWithContext(ctx aws.Context, input *DescribeLimitsInput, opts ...request.Option) (*DescribeLimitsOutput, error) { 1985 req, out := c.DescribeLimitsRequest(input) 1986 req.SetContext(ctx) 1987 req.ApplyOptions(opts...) 1988 return out, req.Send() 1989} 1990 1991const opDescribeTable = "DescribeTable" 1992 1993// DescribeTableRequest generates a "aws/request.Request" representing the 1994// client's request for the DescribeTable operation. The "output" return 1995// value will be populated with the request's response once the request completes 1996// successfully. 1997// 1998// Use "Send" method on the returned Request to send the API call to the service. 1999// the "output" return value is not valid until after Send returns without error. 2000// 2001// See DescribeTable for more information on using the DescribeTable 2002// API call, and error handling. 2003// 2004// This method is useful when you want to inject custom logic or configuration 2005// into the SDK's request lifecycle. Such as custom headers, or retry logic. 2006// 2007// 2008// // Example sending a request using the DescribeTableRequest method. 2009// req, resp := client.DescribeTableRequest(params) 2010// 2011// err := req.Send() 2012// if err == nil { // resp is now filled 2013// fmt.Println(resp) 2014// } 2015// 2016// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeTable 2017func (c *DynamoDB) DescribeTableRequest(input *DescribeTableInput) (req *request.Request, output *DescribeTableOutput) { 2018 op := &request.Operation{ 2019 Name: opDescribeTable, 2020 HTTPMethod: "POST", 2021 HTTPPath: "/", 2022 } 2023 2024 if input == nil { 2025 input = &DescribeTableInput{} 2026 } 2027 2028 output = &DescribeTableOutput{} 2029 req = c.newRequest(op, input, output) 2030 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 2031 de := discovererDescribeEndpoints{ 2032 Required: false, 2033 EndpointCache: c.endpointCache, 2034 Params: map[string]*string{ 2035 "op": aws.String(req.Operation.Name), 2036 }, 2037 Client: c, 2038 } 2039 2040 for k, v := range de.Params { 2041 if v == nil { 2042 delete(de.Params, k) 2043 } 2044 } 2045 2046 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 2047 Name: "crr.endpointdiscovery", 2048 Fn: de.Handler, 2049 }) 2050 } 2051 return 2052} 2053 2054// DescribeTable API operation for Amazon DynamoDB. 2055// 2056// Returns information about the table, including the current status of the 2057// table, when it was created, the primary key schema, and any indexes on the 2058// table. 2059// 2060// If you issue a DescribeTable request immediately after a CreateTable request, 2061// DynamoDB might return a ResourceNotFoundException. This is because DescribeTable 2062// uses an eventually consistent query, and the metadata for your table might 2063// not be available at that moment. Wait for a few seconds, and then try the 2064// DescribeTable request again. 2065// 2066// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2067// with awserr.Error's Code and Message methods to get detailed information about 2068// the error. 2069// 2070// See the AWS API reference guide for Amazon DynamoDB's 2071// API operation DescribeTable for usage and error information. 2072// 2073// Returned Error Codes: 2074// * ErrCodeResourceNotFoundException "ResourceNotFoundException" 2075// The operation tried to access a nonexistent table or index. The resource 2076// might not be specified correctly, or its status might not be ACTIVE. 2077// 2078// * ErrCodeInternalServerError "InternalServerError" 2079// An error occurred on the server side. 2080// 2081// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeTable 2082func (c *DynamoDB) DescribeTable(input *DescribeTableInput) (*DescribeTableOutput, error) { 2083 req, out := c.DescribeTableRequest(input) 2084 return out, req.Send() 2085} 2086 2087// DescribeTableWithContext is the same as DescribeTable with the addition of 2088// the ability to pass a context and additional request options. 2089// 2090// See DescribeTable for details on how to use this API operation. 2091// 2092// The context must be non-nil and will be used for request cancellation. If 2093// the context is nil a panic will occur. In the future the SDK may create 2094// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2095// for more information on using Contexts. 2096func (c *DynamoDB) DescribeTableWithContext(ctx aws.Context, input *DescribeTableInput, opts ...request.Option) (*DescribeTableOutput, error) { 2097 req, out := c.DescribeTableRequest(input) 2098 req.SetContext(ctx) 2099 req.ApplyOptions(opts...) 2100 return out, req.Send() 2101} 2102 2103const opDescribeTimeToLive = "DescribeTimeToLive" 2104 2105// DescribeTimeToLiveRequest generates a "aws/request.Request" representing the 2106// client's request for the DescribeTimeToLive operation. The "output" return 2107// value will be populated with the request's response once the request completes 2108// successfully. 2109// 2110// Use "Send" method on the returned Request to send the API call to the service. 2111// the "output" return value is not valid until after Send returns without error. 2112// 2113// See DescribeTimeToLive for more information on using the DescribeTimeToLive 2114// API call, and error handling. 2115// 2116// This method is useful when you want to inject custom logic or configuration 2117// into the SDK's request lifecycle. Such as custom headers, or retry logic. 2118// 2119// 2120// // Example sending a request using the DescribeTimeToLiveRequest method. 2121// req, resp := client.DescribeTimeToLiveRequest(params) 2122// 2123// err := req.Send() 2124// if err == nil { // resp is now filled 2125// fmt.Println(resp) 2126// } 2127// 2128// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeTimeToLive 2129func (c *DynamoDB) DescribeTimeToLiveRequest(input *DescribeTimeToLiveInput) (req *request.Request, output *DescribeTimeToLiveOutput) { 2130 op := &request.Operation{ 2131 Name: opDescribeTimeToLive, 2132 HTTPMethod: "POST", 2133 HTTPPath: "/", 2134 } 2135 2136 if input == nil { 2137 input = &DescribeTimeToLiveInput{} 2138 } 2139 2140 output = &DescribeTimeToLiveOutput{} 2141 req = c.newRequest(op, input, output) 2142 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 2143 de := discovererDescribeEndpoints{ 2144 Required: false, 2145 EndpointCache: c.endpointCache, 2146 Params: map[string]*string{ 2147 "op": aws.String(req.Operation.Name), 2148 }, 2149 Client: c, 2150 } 2151 2152 for k, v := range de.Params { 2153 if v == nil { 2154 delete(de.Params, k) 2155 } 2156 } 2157 2158 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 2159 Name: "crr.endpointdiscovery", 2160 Fn: de.Handler, 2161 }) 2162 } 2163 return 2164} 2165 2166// DescribeTimeToLive API operation for Amazon DynamoDB. 2167// 2168// Gives a description of the Time to Live (TTL) status on the specified table. 2169// 2170// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2171// with awserr.Error's Code and Message methods to get detailed information about 2172// the error. 2173// 2174// See the AWS API reference guide for Amazon DynamoDB's 2175// API operation DescribeTimeToLive for usage and error information. 2176// 2177// Returned Error Codes: 2178// * ErrCodeResourceNotFoundException "ResourceNotFoundException" 2179// The operation tried to access a nonexistent table or index. The resource 2180// might not be specified correctly, or its status might not be ACTIVE. 2181// 2182// * ErrCodeInternalServerError "InternalServerError" 2183// An error occurred on the server side. 2184// 2185// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeTimeToLive 2186func (c *DynamoDB) DescribeTimeToLive(input *DescribeTimeToLiveInput) (*DescribeTimeToLiveOutput, error) { 2187 req, out := c.DescribeTimeToLiveRequest(input) 2188 return out, req.Send() 2189} 2190 2191// DescribeTimeToLiveWithContext is the same as DescribeTimeToLive with the addition of 2192// the ability to pass a context and additional request options. 2193// 2194// See DescribeTimeToLive for details on how to use this API operation. 2195// 2196// The context must be non-nil and will be used for request cancellation. If 2197// the context is nil a panic will occur. In the future the SDK may create 2198// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2199// for more information on using Contexts. 2200func (c *DynamoDB) DescribeTimeToLiveWithContext(ctx aws.Context, input *DescribeTimeToLiveInput, opts ...request.Option) (*DescribeTimeToLiveOutput, error) { 2201 req, out := c.DescribeTimeToLiveRequest(input) 2202 req.SetContext(ctx) 2203 req.ApplyOptions(opts...) 2204 return out, req.Send() 2205} 2206 2207const opGetItem = "GetItem" 2208 2209// GetItemRequest generates a "aws/request.Request" representing the 2210// client's request for the GetItem operation. The "output" return 2211// value will be populated with the request's response once the request completes 2212// successfully. 2213// 2214// Use "Send" method on the returned Request to send the API call to the service. 2215// the "output" return value is not valid until after Send returns without error. 2216// 2217// See GetItem for more information on using the GetItem 2218// API call, and error handling. 2219// 2220// This method is useful when you want to inject custom logic or configuration 2221// into the SDK's request lifecycle. Such as custom headers, or retry logic. 2222// 2223// 2224// // Example sending a request using the GetItemRequest method. 2225// req, resp := client.GetItemRequest(params) 2226// 2227// err := req.Send() 2228// if err == nil { // resp is now filled 2229// fmt.Println(resp) 2230// } 2231// 2232// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/GetItem 2233func (c *DynamoDB) GetItemRequest(input *GetItemInput) (req *request.Request, output *GetItemOutput) { 2234 op := &request.Operation{ 2235 Name: opGetItem, 2236 HTTPMethod: "POST", 2237 HTTPPath: "/", 2238 } 2239 2240 if input == nil { 2241 input = &GetItemInput{} 2242 } 2243 2244 output = &GetItemOutput{} 2245 req = c.newRequest(op, input, output) 2246 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 2247 de := discovererDescribeEndpoints{ 2248 Required: false, 2249 EndpointCache: c.endpointCache, 2250 Params: map[string]*string{ 2251 "op": aws.String(req.Operation.Name), 2252 }, 2253 Client: c, 2254 } 2255 2256 for k, v := range de.Params { 2257 if v == nil { 2258 delete(de.Params, k) 2259 } 2260 } 2261 2262 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 2263 Name: "crr.endpointdiscovery", 2264 Fn: de.Handler, 2265 }) 2266 } 2267 return 2268} 2269 2270// GetItem API operation for Amazon DynamoDB. 2271// 2272// The GetItem operation returns a set of attributes for the item with the given 2273// primary key. If there is no matching item, GetItem does not return any data 2274// and there will be no Item element in the response. 2275// 2276// GetItem provides an eventually consistent read by default. If your application 2277// requires a strongly consistent read, set ConsistentRead to true. Although 2278// a strongly consistent read might take more time than an eventually consistent 2279// read, it always returns the last updated value. 2280// 2281// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2282// with awserr.Error's Code and Message methods to get detailed information about 2283// the error. 2284// 2285// See the AWS API reference guide for Amazon DynamoDB's 2286// API operation GetItem for usage and error information. 2287// 2288// Returned Error Codes: 2289// * ErrCodeProvisionedThroughputExceededException "ProvisionedThroughputExceededException" 2290// Your request rate is too high. The AWS SDKs for DynamoDB automatically retry 2291// requests that receive this exception. Your request is eventually successful, 2292// unless your retry queue is too large to finish. Reduce the frequency of requests 2293// and use exponential backoff. For more information, go to Error Retries and 2294// Exponential Backoff (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.RetryAndBackoff) 2295// in the Amazon DynamoDB Developer Guide. 2296// 2297// * ErrCodeResourceNotFoundException "ResourceNotFoundException" 2298// The operation tried to access a nonexistent table or index. The resource 2299// might not be specified correctly, or its status might not be ACTIVE. 2300// 2301// * ErrCodeRequestLimitExceeded "RequestLimitExceeded" 2302// Throughput exceeds the current throughput limit for your account. Please 2303// contact AWS Support at AWS Support (https://aws.amazon.com/support) to request 2304// a limit increase. 2305// 2306// * ErrCodeInternalServerError "InternalServerError" 2307// An error occurred on the server side. 2308// 2309// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/GetItem 2310func (c *DynamoDB) GetItem(input *GetItemInput) (*GetItemOutput, error) { 2311 req, out := c.GetItemRequest(input) 2312 return out, req.Send() 2313} 2314 2315// GetItemWithContext is the same as GetItem with the addition of 2316// the ability to pass a context and additional request options. 2317// 2318// See GetItem for details on how to use this API operation. 2319// 2320// The context must be non-nil and will be used for request cancellation. If 2321// the context is nil a panic will occur. In the future the SDK may create 2322// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2323// for more information on using Contexts. 2324func (c *DynamoDB) GetItemWithContext(ctx aws.Context, input *GetItemInput, opts ...request.Option) (*GetItemOutput, error) { 2325 req, out := c.GetItemRequest(input) 2326 req.SetContext(ctx) 2327 req.ApplyOptions(opts...) 2328 return out, req.Send() 2329} 2330 2331const opListBackups = "ListBackups" 2332 2333// ListBackupsRequest generates a "aws/request.Request" representing the 2334// client's request for the ListBackups operation. The "output" return 2335// value will be populated with the request's response once the request completes 2336// successfully. 2337// 2338// Use "Send" method on the returned Request to send the API call to the service. 2339// the "output" return value is not valid until after Send returns without error. 2340// 2341// See ListBackups for more information on using the ListBackups 2342// API call, and error handling. 2343// 2344// This method is useful when you want to inject custom logic or configuration 2345// into the SDK's request lifecycle. Such as custom headers, or retry logic. 2346// 2347// 2348// // Example sending a request using the ListBackupsRequest method. 2349// req, resp := client.ListBackupsRequest(params) 2350// 2351// err := req.Send() 2352// if err == nil { // resp is now filled 2353// fmt.Println(resp) 2354// } 2355// 2356// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ListBackups 2357func (c *DynamoDB) ListBackupsRequest(input *ListBackupsInput) (req *request.Request, output *ListBackupsOutput) { 2358 op := &request.Operation{ 2359 Name: opListBackups, 2360 HTTPMethod: "POST", 2361 HTTPPath: "/", 2362 } 2363 2364 if input == nil { 2365 input = &ListBackupsInput{} 2366 } 2367 2368 output = &ListBackupsOutput{} 2369 req = c.newRequest(op, input, output) 2370 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 2371 de := discovererDescribeEndpoints{ 2372 Required: false, 2373 EndpointCache: c.endpointCache, 2374 Params: map[string]*string{ 2375 "op": aws.String(req.Operation.Name), 2376 }, 2377 Client: c, 2378 } 2379 2380 for k, v := range de.Params { 2381 if v == nil { 2382 delete(de.Params, k) 2383 } 2384 } 2385 2386 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 2387 Name: "crr.endpointdiscovery", 2388 Fn: de.Handler, 2389 }) 2390 } 2391 return 2392} 2393 2394// ListBackups API operation for Amazon DynamoDB. 2395// 2396// List backups associated with an AWS account. To list backups for a given 2397// table, specify TableName. ListBackups returns a paginated list of results 2398// with at most 1 MB worth of items in a page. You can also specify a limit 2399// for the maximum number of entries to be returned in a page. 2400// 2401// In the request, start time is inclusive, but end time is exclusive. Note 2402// that these limits are for the time at which the original backup was requested. 2403// 2404// You can call ListBackups a maximum of five times per second. 2405// 2406// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2407// with awserr.Error's Code and Message methods to get detailed information about 2408// the error. 2409// 2410// See the AWS API reference guide for Amazon DynamoDB's 2411// API operation ListBackups for usage and error information. 2412// 2413// Returned Error Codes: 2414// * ErrCodeInternalServerError "InternalServerError" 2415// An error occurred on the server side. 2416// 2417// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ListBackups 2418func (c *DynamoDB) ListBackups(input *ListBackupsInput) (*ListBackupsOutput, error) { 2419 req, out := c.ListBackupsRequest(input) 2420 return out, req.Send() 2421} 2422 2423// ListBackupsWithContext is the same as ListBackups with the addition of 2424// the ability to pass a context and additional request options. 2425// 2426// See ListBackups for details on how to use this API operation. 2427// 2428// The context must be non-nil and will be used for request cancellation. If 2429// the context is nil a panic will occur. In the future the SDK may create 2430// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2431// for more information on using Contexts. 2432func (c *DynamoDB) ListBackupsWithContext(ctx aws.Context, input *ListBackupsInput, opts ...request.Option) (*ListBackupsOutput, error) { 2433 req, out := c.ListBackupsRequest(input) 2434 req.SetContext(ctx) 2435 req.ApplyOptions(opts...) 2436 return out, req.Send() 2437} 2438 2439const opListGlobalTables = "ListGlobalTables" 2440 2441// ListGlobalTablesRequest generates a "aws/request.Request" representing the 2442// client's request for the ListGlobalTables operation. The "output" return 2443// value will be populated with the request's response once the request completes 2444// successfully. 2445// 2446// Use "Send" method on the returned Request to send the API call to the service. 2447// the "output" return value is not valid until after Send returns without error. 2448// 2449// See ListGlobalTables for more information on using the ListGlobalTables 2450// API call, and error handling. 2451// 2452// This method is useful when you want to inject custom logic or configuration 2453// into the SDK's request lifecycle. Such as custom headers, or retry logic. 2454// 2455// 2456// // Example sending a request using the ListGlobalTablesRequest method. 2457// req, resp := client.ListGlobalTablesRequest(params) 2458// 2459// err := req.Send() 2460// if err == nil { // resp is now filled 2461// fmt.Println(resp) 2462// } 2463// 2464// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ListGlobalTables 2465func (c *DynamoDB) ListGlobalTablesRequest(input *ListGlobalTablesInput) (req *request.Request, output *ListGlobalTablesOutput) { 2466 op := &request.Operation{ 2467 Name: opListGlobalTables, 2468 HTTPMethod: "POST", 2469 HTTPPath: "/", 2470 } 2471 2472 if input == nil { 2473 input = &ListGlobalTablesInput{} 2474 } 2475 2476 output = &ListGlobalTablesOutput{} 2477 req = c.newRequest(op, input, output) 2478 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 2479 de := discovererDescribeEndpoints{ 2480 Required: false, 2481 EndpointCache: c.endpointCache, 2482 Params: map[string]*string{ 2483 "op": aws.String(req.Operation.Name), 2484 }, 2485 Client: c, 2486 } 2487 2488 for k, v := range de.Params { 2489 if v == nil { 2490 delete(de.Params, k) 2491 } 2492 } 2493 2494 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 2495 Name: "crr.endpointdiscovery", 2496 Fn: de.Handler, 2497 }) 2498 } 2499 return 2500} 2501 2502// ListGlobalTables API operation for Amazon DynamoDB. 2503// 2504// Lists all global tables that have a replica in the specified Region. 2505// 2506// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2507// with awserr.Error's Code and Message methods to get detailed information about 2508// the error. 2509// 2510// See the AWS API reference guide for Amazon DynamoDB's 2511// API operation ListGlobalTables for usage and error information. 2512// 2513// Returned Error Codes: 2514// * ErrCodeInternalServerError "InternalServerError" 2515// An error occurred on the server side. 2516// 2517// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ListGlobalTables 2518func (c *DynamoDB) ListGlobalTables(input *ListGlobalTablesInput) (*ListGlobalTablesOutput, error) { 2519 req, out := c.ListGlobalTablesRequest(input) 2520 return out, req.Send() 2521} 2522 2523// ListGlobalTablesWithContext is the same as ListGlobalTables with the addition of 2524// the ability to pass a context and additional request options. 2525// 2526// See ListGlobalTables for details on how to use this API operation. 2527// 2528// The context must be non-nil and will be used for request cancellation. If 2529// the context is nil a panic will occur. In the future the SDK may create 2530// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2531// for more information on using Contexts. 2532func (c *DynamoDB) ListGlobalTablesWithContext(ctx aws.Context, input *ListGlobalTablesInput, opts ...request.Option) (*ListGlobalTablesOutput, error) { 2533 req, out := c.ListGlobalTablesRequest(input) 2534 req.SetContext(ctx) 2535 req.ApplyOptions(opts...) 2536 return out, req.Send() 2537} 2538 2539const opListTables = "ListTables" 2540 2541// ListTablesRequest generates a "aws/request.Request" representing the 2542// client's request for the ListTables operation. The "output" return 2543// value will be populated with the request's response once the request completes 2544// successfully. 2545// 2546// Use "Send" method on the returned Request to send the API call to the service. 2547// the "output" return value is not valid until after Send returns without error. 2548// 2549// See ListTables for more information on using the ListTables 2550// API call, and error handling. 2551// 2552// This method is useful when you want to inject custom logic or configuration 2553// into the SDK's request lifecycle. Such as custom headers, or retry logic. 2554// 2555// 2556// // Example sending a request using the ListTablesRequest method. 2557// req, resp := client.ListTablesRequest(params) 2558// 2559// err := req.Send() 2560// if err == nil { // resp is now filled 2561// fmt.Println(resp) 2562// } 2563// 2564// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ListTables 2565func (c *DynamoDB) ListTablesRequest(input *ListTablesInput) (req *request.Request, output *ListTablesOutput) { 2566 op := &request.Operation{ 2567 Name: opListTables, 2568 HTTPMethod: "POST", 2569 HTTPPath: "/", 2570 Paginator: &request.Paginator{ 2571 InputTokens: []string{"ExclusiveStartTableName"}, 2572 OutputTokens: []string{"LastEvaluatedTableName"}, 2573 LimitToken: "Limit", 2574 TruncationToken: "", 2575 }, 2576 } 2577 2578 if input == nil { 2579 input = &ListTablesInput{} 2580 } 2581 2582 output = &ListTablesOutput{} 2583 req = c.newRequest(op, input, output) 2584 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 2585 de := discovererDescribeEndpoints{ 2586 Required: false, 2587 EndpointCache: c.endpointCache, 2588 Params: map[string]*string{ 2589 "op": aws.String(req.Operation.Name), 2590 }, 2591 Client: c, 2592 } 2593 2594 for k, v := range de.Params { 2595 if v == nil { 2596 delete(de.Params, k) 2597 } 2598 } 2599 2600 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 2601 Name: "crr.endpointdiscovery", 2602 Fn: de.Handler, 2603 }) 2604 } 2605 return 2606} 2607 2608// ListTables API operation for Amazon DynamoDB. 2609// 2610// Returns an array of table names associated with the current account and endpoint. 2611// The output from ListTables is paginated, with each page returning a maximum 2612// of 100 table names. 2613// 2614// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2615// with awserr.Error's Code and Message methods to get detailed information about 2616// the error. 2617// 2618// See the AWS API reference guide for Amazon DynamoDB's 2619// API operation ListTables for usage and error information. 2620// 2621// Returned Error Codes: 2622// * ErrCodeInternalServerError "InternalServerError" 2623// An error occurred on the server side. 2624// 2625// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ListTables 2626func (c *DynamoDB) ListTables(input *ListTablesInput) (*ListTablesOutput, error) { 2627 req, out := c.ListTablesRequest(input) 2628 return out, req.Send() 2629} 2630 2631// ListTablesWithContext is the same as ListTables with the addition of 2632// the ability to pass a context and additional request options. 2633// 2634// See ListTables for details on how to use this API operation. 2635// 2636// The context must be non-nil and will be used for request cancellation. If 2637// the context is nil a panic will occur. In the future the SDK may create 2638// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2639// for more information on using Contexts. 2640func (c *DynamoDB) ListTablesWithContext(ctx aws.Context, input *ListTablesInput, opts ...request.Option) (*ListTablesOutput, error) { 2641 req, out := c.ListTablesRequest(input) 2642 req.SetContext(ctx) 2643 req.ApplyOptions(opts...) 2644 return out, req.Send() 2645} 2646 2647// ListTablesPages iterates over the pages of a ListTables operation, 2648// calling the "fn" function with the response data for each page. To stop 2649// iterating, return false from the fn function. 2650// 2651// See ListTables method for more information on how to use this operation. 2652// 2653// Note: This operation can generate multiple requests to a service. 2654// 2655// // Example iterating over at most 3 pages of a ListTables operation. 2656// pageNum := 0 2657// err := client.ListTablesPages(params, 2658// func(page *dynamodb.ListTablesOutput, lastPage bool) bool { 2659// pageNum++ 2660// fmt.Println(page) 2661// return pageNum <= 3 2662// }) 2663// 2664func (c *DynamoDB) ListTablesPages(input *ListTablesInput, fn func(*ListTablesOutput, bool) bool) error { 2665 return c.ListTablesPagesWithContext(aws.BackgroundContext(), input, fn) 2666} 2667 2668// ListTablesPagesWithContext same as ListTablesPages except 2669// it takes a Context and allows setting request options on the pages. 2670// 2671// The context must be non-nil and will be used for request cancellation. If 2672// the context is nil a panic will occur. In the future the SDK may create 2673// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2674// for more information on using Contexts. 2675func (c *DynamoDB) ListTablesPagesWithContext(ctx aws.Context, input *ListTablesInput, fn func(*ListTablesOutput, bool) bool, opts ...request.Option) error { 2676 p := request.Pagination{ 2677 NewRequest: func() (*request.Request, error) { 2678 var inCpy *ListTablesInput 2679 if input != nil { 2680 tmp := *input 2681 inCpy = &tmp 2682 } 2683 req, _ := c.ListTablesRequest(inCpy) 2684 req.SetContext(ctx) 2685 req.ApplyOptions(opts...) 2686 return req, nil 2687 }, 2688 } 2689 2690 cont := true 2691 for p.Next() && cont { 2692 cont = fn(p.Page().(*ListTablesOutput), !p.HasNextPage()) 2693 } 2694 return p.Err() 2695} 2696 2697const opListTagsOfResource = "ListTagsOfResource" 2698 2699// ListTagsOfResourceRequest generates a "aws/request.Request" representing the 2700// client's request for the ListTagsOfResource operation. The "output" return 2701// value will be populated with the request's response once the request completes 2702// successfully. 2703// 2704// Use "Send" method on the returned Request to send the API call to the service. 2705// the "output" return value is not valid until after Send returns without error. 2706// 2707// See ListTagsOfResource for more information on using the ListTagsOfResource 2708// API call, and error handling. 2709// 2710// This method is useful when you want to inject custom logic or configuration 2711// into the SDK's request lifecycle. Such as custom headers, or retry logic. 2712// 2713// 2714// // Example sending a request using the ListTagsOfResourceRequest method. 2715// req, resp := client.ListTagsOfResourceRequest(params) 2716// 2717// err := req.Send() 2718// if err == nil { // resp is now filled 2719// fmt.Println(resp) 2720// } 2721// 2722// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ListTagsOfResource 2723func (c *DynamoDB) ListTagsOfResourceRequest(input *ListTagsOfResourceInput) (req *request.Request, output *ListTagsOfResourceOutput) { 2724 op := &request.Operation{ 2725 Name: opListTagsOfResource, 2726 HTTPMethod: "POST", 2727 HTTPPath: "/", 2728 } 2729 2730 if input == nil { 2731 input = &ListTagsOfResourceInput{} 2732 } 2733 2734 output = &ListTagsOfResourceOutput{} 2735 req = c.newRequest(op, input, output) 2736 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 2737 de := discovererDescribeEndpoints{ 2738 Required: false, 2739 EndpointCache: c.endpointCache, 2740 Params: map[string]*string{ 2741 "op": aws.String(req.Operation.Name), 2742 }, 2743 Client: c, 2744 } 2745 2746 for k, v := range de.Params { 2747 if v == nil { 2748 delete(de.Params, k) 2749 } 2750 } 2751 2752 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 2753 Name: "crr.endpointdiscovery", 2754 Fn: de.Handler, 2755 }) 2756 } 2757 return 2758} 2759 2760// ListTagsOfResource API operation for Amazon DynamoDB. 2761// 2762// List all tags on an Amazon DynamoDB resource. You can call ListTagsOfResource 2763// up to 10 times per second, per account. 2764// 2765// For an overview on tagging DynamoDB resources, see Tagging for DynamoDB (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html) 2766// in the Amazon DynamoDB Developer Guide. 2767// 2768// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2769// with awserr.Error's Code and Message methods to get detailed information about 2770// the error. 2771// 2772// See the AWS API reference guide for Amazon DynamoDB's 2773// API operation ListTagsOfResource for usage and error information. 2774// 2775// Returned Error Codes: 2776// * ErrCodeResourceNotFoundException "ResourceNotFoundException" 2777// The operation tried to access a nonexistent table or index. The resource 2778// might not be specified correctly, or its status might not be ACTIVE. 2779// 2780// * ErrCodeInternalServerError "InternalServerError" 2781// An error occurred on the server side. 2782// 2783// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ListTagsOfResource 2784func (c *DynamoDB) ListTagsOfResource(input *ListTagsOfResourceInput) (*ListTagsOfResourceOutput, error) { 2785 req, out := c.ListTagsOfResourceRequest(input) 2786 return out, req.Send() 2787} 2788 2789// ListTagsOfResourceWithContext is the same as ListTagsOfResource with the addition of 2790// the ability to pass a context and additional request options. 2791// 2792// See ListTagsOfResource for details on how to use this API operation. 2793// 2794// The context must be non-nil and will be used for request cancellation. If 2795// the context is nil a panic will occur. In the future the SDK may create 2796// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2797// for more information on using Contexts. 2798func (c *DynamoDB) ListTagsOfResourceWithContext(ctx aws.Context, input *ListTagsOfResourceInput, opts ...request.Option) (*ListTagsOfResourceOutput, error) { 2799 req, out := c.ListTagsOfResourceRequest(input) 2800 req.SetContext(ctx) 2801 req.ApplyOptions(opts...) 2802 return out, req.Send() 2803} 2804 2805const opPutItem = "PutItem" 2806 2807// PutItemRequest generates a "aws/request.Request" representing the 2808// client's request for the PutItem operation. The "output" return 2809// value will be populated with the request's response once the request completes 2810// successfully. 2811// 2812// Use "Send" method on the returned Request to send the API call to the service. 2813// the "output" return value is not valid until after Send returns without error. 2814// 2815// See PutItem for more information on using the PutItem 2816// API call, and error handling. 2817// 2818// This method is useful when you want to inject custom logic or configuration 2819// into the SDK's request lifecycle. Such as custom headers, or retry logic. 2820// 2821// 2822// // Example sending a request using the PutItemRequest method. 2823// req, resp := client.PutItemRequest(params) 2824// 2825// err := req.Send() 2826// if err == nil { // resp is now filled 2827// fmt.Println(resp) 2828// } 2829// 2830// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/PutItem 2831func (c *DynamoDB) PutItemRequest(input *PutItemInput) (req *request.Request, output *PutItemOutput) { 2832 op := &request.Operation{ 2833 Name: opPutItem, 2834 HTTPMethod: "POST", 2835 HTTPPath: "/", 2836 } 2837 2838 if input == nil { 2839 input = &PutItemInput{} 2840 } 2841 2842 output = &PutItemOutput{} 2843 req = c.newRequest(op, input, output) 2844 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 2845 de := discovererDescribeEndpoints{ 2846 Required: false, 2847 EndpointCache: c.endpointCache, 2848 Params: map[string]*string{ 2849 "op": aws.String(req.Operation.Name), 2850 }, 2851 Client: c, 2852 } 2853 2854 for k, v := range de.Params { 2855 if v == nil { 2856 delete(de.Params, k) 2857 } 2858 } 2859 2860 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 2861 Name: "crr.endpointdiscovery", 2862 Fn: de.Handler, 2863 }) 2864 } 2865 return 2866} 2867 2868// PutItem API operation for Amazon DynamoDB. 2869// 2870// Creates a new item, or replaces an old item with a new item. If an item that 2871// has the same primary key as the new item already exists in the specified 2872// table, the new item completely replaces the existing item. You can perform 2873// a conditional put operation (add a new item if one with the specified primary 2874// key doesn't exist), or replace an existing item if it has certain attribute 2875// values. You can return the item's attribute values in the same operation, 2876// using the ReturnValues parameter. 2877// 2878// This topic provides general information about the PutItem API. 2879// 2880// For information on how to call the PutItem API using the AWS SDK in specific 2881// languages, see the following: 2882// 2883// * PutItem in the AWS Command Line Interface (http://docs.aws.amazon.com/goto/aws-cli/dynamodb-2012-08-10/PutItem) 2884// 2885// * PutItem in the AWS SDK for .NET (http://docs.aws.amazon.com/goto/DotNetSDKV3/dynamodb-2012-08-10/PutItem) 2886// 2887// * PutItem in the AWS SDK for C++ (http://docs.aws.amazon.com/goto/SdkForCpp/dynamodb-2012-08-10/PutItem) 2888// 2889// * PutItem in the AWS SDK for Go (http://docs.aws.amazon.com/goto/SdkForGoV1/dynamodb-2012-08-10/PutItem) 2890// 2891// * PutItem in the AWS SDK for Java (http://docs.aws.amazon.com/goto/SdkForJava/dynamodb-2012-08-10/PutItem) 2892// 2893// * PutItem in the AWS SDK for JavaScript (http://docs.aws.amazon.com/goto/AWSJavaScriptSDK/dynamodb-2012-08-10/PutItem) 2894// 2895// * PutItem in the AWS SDK for PHP V3 (http://docs.aws.amazon.com/goto/SdkForPHPV3/dynamodb-2012-08-10/PutItem) 2896// 2897// * PutItem in the AWS SDK for Python (http://docs.aws.amazon.com/goto/boto3/dynamodb-2012-08-10/PutItem) 2898// 2899// * PutItem in the AWS SDK for Ruby V2 (http://docs.aws.amazon.com/goto/SdkForRubyV2/dynamodb-2012-08-10/PutItem) 2900// 2901// When you add an item, the primary key attributes are the only required attributes. 2902// Attribute values cannot be null. String and Binary type attributes must have 2903// lengths greater than zero. Set type attributes cannot be empty. Requests 2904// with empty values will be rejected with a ValidationException exception. 2905// 2906// To prevent a new item from replacing an existing item, use a conditional 2907// expression that contains the attribute_not_exists function with the name 2908// of the attribute being used as the partition key for the table. Since every 2909// record must contain that attribute, the attribute_not_exists function will 2910// only succeed if no matching item exists. 2911// 2912// For more information about PutItem, see Working with Items (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithItems.html) 2913// in the Amazon DynamoDB Developer Guide. 2914// 2915// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2916// with awserr.Error's Code and Message methods to get detailed information about 2917// the error. 2918// 2919// See the AWS API reference guide for Amazon DynamoDB's 2920// API operation PutItem for usage and error information. 2921// 2922// Returned Error Codes: 2923// * ErrCodeConditionalCheckFailedException "ConditionalCheckFailedException" 2924// A condition specified in the operation could not be evaluated. 2925// 2926// * ErrCodeProvisionedThroughputExceededException "ProvisionedThroughputExceededException" 2927// Your request rate is too high. The AWS SDKs for DynamoDB automatically retry 2928// requests that receive this exception. Your request is eventually successful, 2929// unless your retry queue is too large to finish. Reduce the frequency of requests 2930// and use exponential backoff. For more information, go to Error Retries and 2931// Exponential Backoff (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.RetryAndBackoff) 2932// in the Amazon DynamoDB Developer Guide. 2933// 2934// * ErrCodeResourceNotFoundException "ResourceNotFoundException" 2935// The operation tried to access a nonexistent table or index. The resource 2936// might not be specified correctly, or its status might not be ACTIVE. 2937// 2938// * ErrCodeItemCollectionSizeLimitExceededException "ItemCollectionSizeLimitExceededException" 2939// An item collection is too large. This exception is only returned for tables 2940// that have one or more local secondary indexes. 2941// 2942// * ErrCodeTransactionConflictException "TransactionConflictException" 2943// Operation was rejected because there is an ongoing transaction for the item. 2944// 2945// * ErrCodeRequestLimitExceeded "RequestLimitExceeded" 2946// Throughput exceeds the current throughput limit for your account. Please 2947// contact AWS Support at AWS Support (https://aws.amazon.com/support) to request 2948// a limit increase. 2949// 2950// * ErrCodeInternalServerError "InternalServerError" 2951// An error occurred on the server side. 2952// 2953// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/PutItem 2954func (c *DynamoDB) PutItem(input *PutItemInput) (*PutItemOutput, error) { 2955 req, out := c.PutItemRequest(input) 2956 return out, req.Send() 2957} 2958 2959// PutItemWithContext is the same as PutItem with the addition of 2960// the ability to pass a context and additional request options. 2961// 2962// See PutItem for details on how to use this API operation. 2963// 2964// The context must be non-nil and will be used for request cancellation. If 2965// the context is nil a panic will occur. In the future the SDK may create 2966// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2967// for more information on using Contexts. 2968func (c *DynamoDB) PutItemWithContext(ctx aws.Context, input *PutItemInput, opts ...request.Option) (*PutItemOutput, error) { 2969 req, out := c.PutItemRequest(input) 2970 req.SetContext(ctx) 2971 req.ApplyOptions(opts...) 2972 return out, req.Send() 2973} 2974 2975const opQuery = "Query" 2976 2977// QueryRequest generates a "aws/request.Request" representing the 2978// client's request for the Query operation. The "output" return 2979// value will be populated with the request's response once the request completes 2980// successfully. 2981// 2982// Use "Send" method on the returned Request to send the API call to the service. 2983// the "output" return value is not valid until after Send returns without error. 2984// 2985// See Query for more information on using the Query 2986// API call, and error handling. 2987// 2988// This method is useful when you want to inject custom logic or configuration 2989// into the SDK's request lifecycle. Such as custom headers, or retry logic. 2990// 2991// 2992// // Example sending a request using the QueryRequest method. 2993// req, resp := client.QueryRequest(params) 2994// 2995// err := req.Send() 2996// if err == nil { // resp is now filled 2997// fmt.Println(resp) 2998// } 2999// 3000// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/Query 3001func (c *DynamoDB) QueryRequest(input *QueryInput) (req *request.Request, output *QueryOutput) { 3002 op := &request.Operation{ 3003 Name: opQuery, 3004 HTTPMethod: "POST", 3005 HTTPPath: "/", 3006 Paginator: &request.Paginator{ 3007 InputTokens: []string{"ExclusiveStartKey"}, 3008 OutputTokens: []string{"LastEvaluatedKey"}, 3009 LimitToken: "Limit", 3010 TruncationToken: "", 3011 }, 3012 } 3013 3014 if input == nil { 3015 input = &QueryInput{} 3016 } 3017 3018 output = &QueryOutput{} 3019 req = c.newRequest(op, input, output) 3020 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 3021 de := discovererDescribeEndpoints{ 3022 Required: false, 3023 EndpointCache: c.endpointCache, 3024 Params: map[string]*string{ 3025 "op": aws.String(req.Operation.Name), 3026 }, 3027 Client: c, 3028 } 3029 3030 for k, v := range de.Params { 3031 if v == nil { 3032 delete(de.Params, k) 3033 } 3034 } 3035 3036 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 3037 Name: "crr.endpointdiscovery", 3038 Fn: de.Handler, 3039 }) 3040 } 3041 return 3042} 3043 3044// Query API operation for Amazon DynamoDB. 3045// 3046// The Query operation finds items based on primary key values. You can query 3047// any table or secondary index that has a composite primary key (a partition 3048// key and a sort key). 3049// 3050// Use the KeyConditionExpression parameter to provide a specific value for 3051// the partition key. The Query operation will return all of the items from 3052// the table or index with that partition key value. You can optionally narrow 3053// the scope of the Query operation by specifying a sort key value and a comparison 3054// operator in KeyConditionExpression. To further refine the Query results, 3055// you can optionally provide a FilterExpression. A FilterExpression determines 3056// which items within the results should be returned to you. All of the other 3057// results are discarded. 3058// 3059// A Query operation always returns a result set. If no matching items are found, 3060// the result set will be empty. Queries that do not return results consume 3061// the minimum number of read capacity units for that type of read operation. 3062// 3063// DynamoDB calculates the number of read capacity units consumed based on item 3064// size, not on the amount of data that is returned to an application. The number 3065// of capacity units consumed will be the same whether you request all of the 3066// attributes (the default behavior) or just some of them (using a projection 3067// expression). The number will also be the same whether or not you use a FilterExpression. 3068// 3069// Query results are always sorted by the sort key value. If the data type of 3070// the sort key is Number, the results are returned in numeric order; otherwise, 3071// the results are returned in order of UTF-8 bytes. By default, the sort order 3072// is ascending. To reverse the order, set the ScanIndexForward parameter to 3073// false. 3074// 3075// A single Query operation will read up to the maximum number of items set 3076// (if using the Limit parameter) or a maximum of 1 MB of data and then apply 3077// any filtering to the results using FilterExpression. If LastEvaluatedKey 3078// is present in the response, you will need to paginate the result set. For 3079// more information, see Paginating the Results (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Query.html#Query.Pagination) 3080// in the Amazon DynamoDB Developer Guide. 3081// 3082// FilterExpression is applied after a Query finishes, but before the results 3083// are returned. A FilterExpression cannot contain partition key or sort key 3084// attributes. You need to specify those attributes in the KeyConditionExpression. 3085// 3086// A Query operation can return an empty result set and a LastEvaluatedKey if 3087// all the items read for the page of results are filtered out. 3088// 3089// You can query a table, a local secondary index, or a global secondary index. 3090// For a query on a table or on a local secondary index, you can set the ConsistentRead 3091// parameter to true and obtain a strongly consistent result. Global secondary 3092// indexes support eventually consistent reads only, so do not specify ConsistentRead 3093// when querying a global secondary index. 3094// 3095// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3096// with awserr.Error's Code and Message methods to get detailed information about 3097// the error. 3098// 3099// See the AWS API reference guide for Amazon DynamoDB's 3100// API operation Query for usage and error information. 3101// 3102// Returned Error Codes: 3103// * ErrCodeProvisionedThroughputExceededException "ProvisionedThroughputExceededException" 3104// Your request rate is too high. The AWS SDKs for DynamoDB automatically retry 3105// requests that receive this exception. Your request is eventually successful, 3106// unless your retry queue is too large to finish. Reduce the frequency of requests 3107// and use exponential backoff. For more information, go to Error Retries and 3108// Exponential Backoff (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.RetryAndBackoff) 3109// in the Amazon DynamoDB Developer Guide. 3110// 3111// * ErrCodeResourceNotFoundException "ResourceNotFoundException" 3112// The operation tried to access a nonexistent table or index. The resource 3113// might not be specified correctly, or its status might not be ACTIVE. 3114// 3115// * ErrCodeRequestLimitExceeded "RequestLimitExceeded" 3116// Throughput exceeds the current throughput limit for your account. Please 3117// contact AWS Support at AWS Support (https://aws.amazon.com/support) to request 3118// a limit increase. 3119// 3120// * ErrCodeInternalServerError "InternalServerError" 3121// An error occurred on the server side. 3122// 3123// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/Query 3124func (c *DynamoDB) Query(input *QueryInput) (*QueryOutput, error) { 3125 req, out := c.QueryRequest(input) 3126 return out, req.Send() 3127} 3128 3129// QueryWithContext is the same as Query with the addition of 3130// the ability to pass a context and additional request options. 3131// 3132// See Query for details on how to use this API operation. 3133// 3134// The context must be non-nil and will be used for request cancellation. If 3135// the context is nil a panic will occur. In the future the SDK may create 3136// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3137// for more information on using Contexts. 3138func (c *DynamoDB) QueryWithContext(ctx aws.Context, input *QueryInput, opts ...request.Option) (*QueryOutput, error) { 3139 req, out := c.QueryRequest(input) 3140 req.SetContext(ctx) 3141 req.ApplyOptions(opts...) 3142 return out, req.Send() 3143} 3144 3145// QueryPages iterates over the pages of a Query operation, 3146// calling the "fn" function with the response data for each page. To stop 3147// iterating, return false from the fn function. 3148// 3149// See Query method for more information on how to use this operation. 3150// 3151// Note: This operation can generate multiple requests to a service. 3152// 3153// // Example iterating over at most 3 pages of a Query operation. 3154// pageNum := 0 3155// err := client.QueryPages(params, 3156// func(page *dynamodb.QueryOutput, lastPage bool) bool { 3157// pageNum++ 3158// fmt.Println(page) 3159// return pageNum <= 3 3160// }) 3161// 3162func (c *DynamoDB) QueryPages(input *QueryInput, fn func(*QueryOutput, bool) bool) error { 3163 return c.QueryPagesWithContext(aws.BackgroundContext(), input, fn) 3164} 3165 3166// QueryPagesWithContext same as QueryPages except 3167// it takes a Context and allows setting request options on the pages. 3168// 3169// The context must be non-nil and will be used for request cancellation. If 3170// the context is nil a panic will occur. In the future the SDK may create 3171// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3172// for more information on using Contexts. 3173func (c *DynamoDB) QueryPagesWithContext(ctx aws.Context, input *QueryInput, fn func(*QueryOutput, bool) bool, opts ...request.Option) error { 3174 p := request.Pagination{ 3175 NewRequest: func() (*request.Request, error) { 3176 var inCpy *QueryInput 3177 if input != nil { 3178 tmp := *input 3179 inCpy = &tmp 3180 } 3181 req, _ := c.QueryRequest(inCpy) 3182 req.SetContext(ctx) 3183 req.ApplyOptions(opts...) 3184 return req, nil 3185 }, 3186 } 3187 3188 cont := true 3189 for p.Next() && cont { 3190 cont = fn(p.Page().(*QueryOutput), !p.HasNextPage()) 3191 } 3192 return p.Err() 3193} 3194 3195const opRestoreTableFromBackup = "RestoreTableFromBackup" 3196 3197// RestoreTableFromBackupRequest generates a "aws/request.Request" representing the 3198// client's request for the RestoreTableFromBackup operation. The "output" return 3199// value will be populated with the request's response once the request completes 3200// successfully. 3201// 3202// Use "Send" method on the returned Request to send the API call to the service. 3203// the "output" return value is not valid until after Send returns without error. 3204// 3205// See RestoreTableFromBackup for more information on using the RestoreTableFromBackup 3206// API call, and error handling. 3207// 3208// This method is useful when you want to inject custom logic or configuration 3209// into the SDK's request lifecycle. Such as custom headers, or retry logic. 3210// 3211// 3212// // Example sending a request using the RestoreTableFromBackupRequest method. 3213// req, resp := client.RestoreTableFromBackupRequest(params) 3214// 3215// err := req.Send() 3216// if err == nil { // resp is now filled 3217// fmt.Println(resp) 3218// } 3219// 3220// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/RestoreTableFromBackup 3221func (c *DynamoDB) RestoreTableFromBackupRequest(input *RestoreTableFromBackupInput) (req *request.Request, output *RestoreTableFromBackupOutput) { 3222 op := &request.Operation{ 3223 Name: opRestoreTableFromBackup, 3224 HTTPMethod: "POST", 3225 HTTPPath: "/", 3226 } 3227 3228 if input == nil { 3229 input = &RestoreTableFromBackupInput{} 3230 } 3231 3232 output = &RestoreTableFromBackupOutput{} 3233 req = c.newRequest(op, input, output) 3234 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 3235 de := discovererDescribeEndpoints{ 3236 Required: false, 3237 EndpointCache: c.endpointCache, 3238 Params: map[string]*string{ 3239 "op": aws.String(req.Operation.Name), 3240 }, 3241 Client: c, 3242 } 3243 3244 for k, v := range de.Params { 3245 if v == nil { 3246 delete(de.Params, k) 3247 } 3248 } 3249 3250 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 3251 Name: "crr.endpointdiscovery", 3252 Fn: de.Handler, 3253 }) 3254 } 3255 return 3256} 3257 3258// RestoreTableFromBackup API operation for Amazon DynamoDB. 3259// 3260// Creates a new table from an existing backup. Any number of users can execute 3261// up to 4 concurrent restores (any type of restore) in a given account. 3262// 3263// You can call RestoreTableFromBackup at a maximum rate of 10 times per second. 3264// 3265// You must manually set up the following on the restored table: 3266// 3267// * Auto scaling policies 3268// 3269// * IAM policies 3270// 3271// * Amazon CloudWatch metrics and alarms 3272// 3273// * Tags 3274// 3275// * Stream settings 3276// 3277// * Time to Live (TTL) settings 3278// 3279// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3280// with awserr.Error's Code and Message methods to get detailed information about 3281// the error. 3282// 3283// See the AWS API reference guide for Amazon DynamoDB's 3284// API operation RestoreTableFromBackup for usage and error information. 3285// 3286// Returned Error Codes: 3287// * ErrCodeTableAlreadyExistsException "TableAlreadyExistsException" 3288// A target table with the specified name already exists. 3289// 3290// * ErrCodeTableInUseException "TableInUseException" 3291// A target table with the specified name is either being created or deleted. 3292// 3293// * ErrCodeBackupNotFoundException "BackupNotFoundException" 3294// Backup not found for the given BackupARN. 3295// 3296// * ErrCodeBackupInUseException "BackupInUseException" 3297// There is another ongoing conflicting backup control plane operation on the 3298// table. The backup is either being created, deleted or restored to a table. 3299// 3300// * ErrCodeLimitExceededException "LimitExceededException" 3301// There is no limit to the number of daily on-demand backups that can be taken. 3302// 3303// Up to 50 simultaneous table operations are allowed per account. These operations 3304// include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup, 3305// and RestoreTableToPointInTime. 3306// 3307// The only exception is when you are creating a table with one or more secondary 3308// indexes. You can have up to 25 such requests running at a time; however, 3309// if the table or index specifications are complex, DynamoDB might temporarily 3310// reduce the number of concurrent operations. 3311// 3312// There is a soft account limit of 256 tables. 3313// 3314// * ErrCodeInternalServerError "InternalServerError" 3315// An error occurred on the server side. 3316// 3317// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/RestoreTableFromBackup 3318func (c *DynamoDB) RestoreTableFromBackup(input *RestoreTableFromBackupInput) (*RestoreTableFromBackupOutput, error) { 3319 req, out := c.RestoreTableFromBackupRequest(input) 3320 return out, req.Send() 3321} 3322 3323// RestoreTableFromBackupWithContext is the same as RestoreTableFromBackup with the addition of 3324// the ability to pass a context and additional request options. 3325// 3326// See RestoreTableFromBackup for details on how to use this API operation. 3327// 3328// The context must be non-nil and will be used for request cancellation. If 3329// the context is nil a panic will occur. In the future the SDK may create 3330// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3331// for more information on using Contexts. 3332func (c *DynamoDB) RestoreTableFromBackupWithContext(ctx aws.Context, input *RestoreTableFromBackupInput, opts ...request.Option) (*RestoreTableFromBackupOutput, error) { 3333 req, out := c.RestoreTableFromBackupRequest(input) 3334 req.SetContext(ctx) 3335 req.ApplyOptions(opts...) 3336 return out, req.Send() 3337} 3338 3339const opRestoreTableToPointInTime = "RestoreTableToPointInTime" 3340 3341// RestoreTableToPointInTimeRequest generates a "aws/request.Request" representing the 3342// client's request for the RestoreTableToPointInTime operation. The "output" return 3343// value will be populated with the request's response once the request completes 3344// successfully. 3345// 3346// Use "Send" method on the returned Request to send the API call to the service. 3347// the "output" return value is not valid until after Send returns without error. 3348// 3349// See RestoreTableToPointInTime for more information on using the RestoreTableToPointInTime 3350// API call, and error handling. 3351// 3352// This method is useful when you want to inject custom logic or configuration 3353// into the SDK's request lifecycle. Such as custom headers, or retry logic. 3354// 3355// 3356// // Example sending a request using the RestoreTableToPointInTimeRequest method. 3357// req, resp := client.RestoreTableToPointInTimeRequest(params) 3358// 3359// err := req.Send() 3360// if err == nil { // resp is now filled 3361// fmt.Println(resp) 3362// } 3363// 3364// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/RestoreTableToPointInTime 3365func (c *DynamoDB) RestoreTableToPointInTimeRequest(input *RestoreTableToPointInTimeInput) (req *request.Request, output *RestoreTableToPointInTimeOutput) { 3366 op := &request.Operation{ 3367 Name: opRestoreTableToPointInTime, 3368 HTTPMethod: "POST", 3369 HTTPPath: "/", 3370 } 3371 3372 if input == nil { 3373 input = &RestoreTableToPointInTimeInput{} 3374 } 3375 3376 output = &RestoreTableToPointInTimeOutput{} 3377 req = c.newRequest(op, input, output) 3378 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 3379 de := discovererDescribeEndpoints{ 3380 Required: false, 3381 EndpointCache: c.endpointCache, 3382 Params: map[string]*string{ 3383 "op": aws.String(req.Operation.Name), 3384 }, 3385 Client: c, 3386 } 3387 3388 for k, v := range de.Params { 3389 if v == nil { 3390 delete(de.Params, k) 3391 } 3392 } 3393 3394 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 3395 Name: "crr.endpointdiscovery", 3396 Fn: de.Handler, 3397 }) 3398 } 3399 return 3400} 3401 3402// RestoreTableToPointInTime API operation for Amazon DynamoDB. 3403// 3404// Restores the specified table to the specified point in time within EarliestRestorableDateTime 3405// and LatestRestorableDateTime. You can restore your table to any point in 3406// time during the last 35 days. Any number of users can execute up to 4 concurrent 3407// restores (any type of restore) in a given account. 3408// 3409// When you restore using point in time recovery, DynamoDB restores your table 3410// data to the state based on the selected date and time (day:hour:minute:second) 3411// to a new table. 3412// 3413// Along with data, the following are also included on the new restored table 3414// using point in time recovery: 3415// 3416// * Global secondary indexes (GSIs) 3417// 3418// * Local secondary indexes (LSIs) 3419// 3420// * Provisioned read and write capacity 3421// 3422// * Encryption settings All these settings come from the current settings 3423// of the source table at the time of restore. 3424// 3425// You must manually set up the following on the restored table: 3426// 3427// * Auto scaling policies 3428// 3429// * IAM policies 3430// 3431// * Amazon CloudWatch metrics and alarms 3432// 3433// * Tags 3434// 3435// * Stream settings 3436// 3437// * Time to Live (TTL) settings 3438// 3439// * Point in time recovery settings 3440// 3441// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3442// with awserr.Error's Code and Message methods to get detailed information about 3443// the error. 3444// 3445// See the AWS API reference guide for Amazon DynamoDB's 3446// API operation RestoreTableToPointInTime for usage and error information. 3447// 3448// Returned Error Codes: 3449// * ErrCodeTableAlreadyExistsException "TableAlreadyExistsException" 3450// A target table with the specified name already exists. 3451// 3452// * ErrCodeTableNotFoundException "TableNotFoundException" 3453// A source table with the name TableName does not currently exist within the 3454// subscriber's account. 3455// 3456// * ErrCodeTableInUseException "TableInUseException" 3457// A target table with the specified name is either being created or deleted. 3458// 3459// * ErrCodeLimitExceededException "LimitExceededException" 3460// There is no limit to the number of daily on-demand backups that can be taken. 3461// 3462// Up to 50 simultaneous table operations are allowed per account. These operations 3463// include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup, 3464// and RestoreTableToPointInTime. 3465// 3466// The only exception is when you are creating a table with one or more secondary 3467// indexes. You can have up to 25 such requests running at a time; however, 3468// if the table or index specifications are complex, DynamoDB might temporarily 3469// reduce the number of concurrent operations. 3470// 3471// There is a soft account limit of 256 tables. 3472// 3473// * ErrCodeInvalidRestoreTimeException "InvalidRestoreTimeException" 3474// An invalid restore time was specified. RestoreDateTime must be between EarliestRestorableDateTime 3475// and LatestRestorableDateTime. 3476// 3477// * ErrCodePointInTimeRecoveryUnavailableException "PointInTimeRecoveryUnavailableException" 3478// Point in time recovery has not yet been enabled for this source table. 3479// 3480// * ErrCodeInternalServerError "InternalServerError" 3481// An error occurred on the server side. 3482// 3483// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/RestoreTableToPointInTime 3484func (c *DynamoDB) RestoreTableToPointInTime(input *RestoreTableToPointInTimeInput) (*RestoreTableToPointInTimeOutput, error) { 3485 req, out := c.RestoreTableToPointInTimeRequest(input) 3486 return out, req.Send() 3487} 3488 3489// RestoreTableToPointInTimeWithContext is the same as RestoreTableToPointInTime with the addition of 3490// the ability to pass a context and additional request options. 3491// 3492// See RestoreTableToPointInTime for details on how to use this API operation. 3493// 3494// The context must be non-nil and will be used for request cancellation. If 3495// the context is nil a panic will occur. In the future the SDK may create 3496// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3497// for more information on using Contexts. 3498func (c *DynamoDB) RestoreTableToPointInTimeWithContext(ctx aws.Context, input *RestoreTableToPointInTimeInput, opts ...request.Option) (*RestoreTableToPointInTimeOutput, error) { 3499 req, out := c.RestoreTableToPointInTimeRequest(input) 3500 req.SetContext(ctx) 3501 req.ApplyOptions(opts...) 3502 return out, req.Send() 3503} 3504 3505const opScan = "Scan" 3506 3507// ScanRequest generates a "aws/request.Request" representing the 3508// client's request for the Scan operation. The "output" return 3509// value will be populated with the request's response once the request completes 3510// successfully. 3511// 3512// Use "Send" method on the returned Request to send the API call to the service. 3513// the "output" return value is not valid until after Send returns without error. 3514// 3515// See Scan for more information on using the Scan 3516// API call, and error handling. 3517// 3518// This method is useful when you want to inject custom logic or configuration 3519// into the SDK's request lifecycle. Such as custom headers, or retry logic. 3520// 3521// 3522// // Example sending a request using the ScanRequest method. 3523// req, resp := client.ScanRequest(params) 3524// 3525// err := req.Send() 3526// if err == nil { // resp is now filled 3527// fmt.Println(resp) 3528// } 3529// 3530// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/Scan 3531func (c *DynamoDB) ScanRequest(input *ScanInput) (req *request.Request, output *ScanOutput) { 3532 op := &request.Operation{ 3533 Name: opScan, 3534 HTTPMethod: "POST", 3535 HTTPPath: "/", 3536 Paginator: &request.Paginator{ 3537 InputTokens: []string{"ExclusiveStartKey"}, 3538 OutputTokens: []string{"LastEvaluatedKey"}, 3539 LimitToken: "Limit", 3540 TruncationToken: "", 3541 }, 3542 } 3543 3544 if input == nil { 3545 input = &ScanInput{} 3546 } 3547 3548 output = &ScanOutput{} 3549 req = c.newRequest(op, input, output) 3550 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 3551 de := discovererDescribeEndpoints{ 3552 Required: false, 3553 EndpointCache: c.endpointCache, 3554 Params: map[string]*string{ 3555 "op": aws.String(req.Operation.Name), 3556 }, 3557 Client: c, 3558 } 3559 3560 for k, v := range de.Params { 3561 if v == nil { 3562 delete(de.Params, k) 3563 } 3564 } 3565 3566 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 3567 Name: "crr.endpointdiscovery", 3568 Fn: de.Handler, 3569 }) 3570 } 3571 return 3572} 3573 3574// Scan API operation for Amazon DynamoDB. 3575// 3576// The Scan operation returns one or more items and item attributes by accessing 3577// every item in a table or a secondary index. To have DynamoDB return fewer 3578// items, you can provide a FilterExpression operation. 3579// 3580// If the total number of scanned items exceeds the maximum dataset size limit 3581// of 1 MB, the scan stops and results are returned to the user as a LastEvaluatedKey 3582// value to continue the scan in a subsequent operation. The results also include 3583// the number of items exceeding the limit. A scan can result in no table data 3584// meeting the filter criteria. 3585// 3586// A single Scan operation reads up to the maximum number of items set (if using 3587// the Limit parameter) or a maximum of 1 MB of data and then apply any filtering 3588// to the results using FilterExpression. If LastEvaluatedKey is present in 3589// the response, you need to paginate the result set. For more information, 3590// see Paginating the Results (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Scan.html#Scan.Pagination) 3591// in the Amazon DynamoDB Developer Guide. 3592// 3593// Scan operations proceed sequentially; however, for faster performance on 3594// a large table or secondary index, applications can request a parallel Scan 3595// operation by providing the Segment and TotalSegments parameters. For more 3596// information, see Parallel Scan (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Scan.html#Scan.ParallelScan) 3597// in the Amazon DynamoDB Developer Guide. 3598// 3599// Scan uses eventually consistent reads when accessing the data in a table; 3600// therefore, the result set might not include the changes to data in the table 3601// immediately before the operation began. If you need a consistent copy of 3602// the data, as of the time that the Scan begins, you can set the ConsistentRead 3603// parameter to true. 3604// 3605// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3606// with awserr.Error's Code and Message methods to get detailed information about 3607// the error. 3608// 3609// See the AWS API reference guide for Amazon DynamoDB's 3610// API operation Scan for usage and error information. 3611// 3612// Returned Error Codes: 3613// * ErrCodeProvisionedThroughputExceededException "ProvisionedThroughputExceededException" 3614// Your request rate is too high. The AWS SDKs for DynamoDB automatically retry 3615// requests that receive this exception. Your request is eventually successful, 3616// unless your retry queue is too large to finish. Reduce the frequency of requests 3617// and use exponential backoff. For more information, go to Error Retries and 3618// Exponential Backoff (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.RetryAndBackoff) 3619// in the Amazon DynamoDB Developer Guide. 3620// 3621// * ErrCodeResourceNotFoundException "ResourceNotFoundException" 3622// The operation tried to access a nonexistent table or index. The resource 3623// might not be specified correctly, or its status might not be ACTIVE. 3624// 3625// * ErrCodeRequestLimitExceeded "RequestLimitExceeded" 3626// Throughput exceeds the current throughput limit for your account. Please 3627// contact AWS Support at AWS Support (https://aws.amazon.com/support) to request 3628// a limit increase. 3629// 3630// * ErrCodeInternalServerError "InternalServerError" 3631// An error occurred on the server side. 3632// 3633// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/Scan 3634func (c *DynamoDB) Scan(input *ScanInput) (*ScanOutput, error) { 3635 req, out := c.ScanRequest(input) 3636 return out, req.Send() 3637} 3638 3639// ScanWithContext is the same as Scan with the addition of 3640// the ability to pass a context and additional request options. 3641// 3642// See Scan for details on how to use this API operation. 3643// 3644// The context must be non-nil and will be used for request cancellation. If 3645// the context is nil a panic will occur. In the future the SDK may create 3646// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3647// for more information on using Contexts. 3648func (c *DynamoDB) ScanWithContext(ctx aws.Context, input *ScanInput, opts ...request.Option) (*ScanOutput, error) { 3649 req, out := c.ScanRequest(input) 3650 req.SetContext(ctx) 3651 req.ApplyOptions(opts...) 3652 return out, req.Send() 3653} 3654 3655// ScanPages iterates over the pages of a Scan operation, 3656// calling the "fn" function with the response data for each page. To stop 3657// iterating, return false from the fn function. 3658// 3659// See Scan method for more information on how to use this operation. 3660// 3661// Note: This operation can generate multiple requests to a service. 3662// 3663// // Example iterating over at most 3 pages of a Scan operation. 3664// pageNum := 0 3665// err := client.ScanPages(params, 3666// func(page *dynamodb.ScanOutput, lastPage bool) bool { 3667// pageNum++ 3668// fmt.Println(page) 3669// return pageNum <= 3 3670// }) 3671// 3672func (c *DynamoDB) ScanPages(input *ScanInput, fn func(*ScanOutput, bool) bool) error { 3673 return c.ScanPagesWithContext(aws.BackgroundContext(), input, fn) 3674} 3675 3676// ScanPagesWithContext same as ScanPages except 3677// it takes a Context and allows setting request options on the pages. 3678// 3679// The context must be non-nil and will be used for request cancellation. If 3680// the context is nil a panic will occur. In the future the SDK may create 3681// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3682// for more information on using Contexts. 3683func (c *DynamoDB) ScanPagesWithContext(ctx aws.Context, input *ScanInput, fn func(*ScanOutput, bool) bool, opts ...request.Option) error { 3684 p := request.Pagination{ 3685 NewRequest: func() (*request.Request, error) { 3686 var inCpy *ScanInput 3687 if input != nil { 3688 tmp := *input 3689 inCpy = &tmp 3690 } 3691 req, _ := c.ScanRequest(inCpy) 3692 req.SetContext(ctx) 3693 req.ApplyOptions(opts...) 3694 return req, nil 3695 }, 3696 } 3697 3698 cont := true 3699 for p.Next() && cont { 3700 cont = fn(p.Page().(*ScanOutput), !p.HasNextPage()) 3701 } 3702 return p.Err() 3703} 3704 3705const opTagResource = "TagResource" 3706 3707// TagResourceRequest generates a "aws/request.Request" representing the 3708// client's request for the TagResource operation. The "output" return 3709// value will be populated with the request's response once the request completes 3710// successfully. 3711// 3712// Use "Send" method on the returned Request to send the API call to the service. 3713// the "output" return value is not valid until after Send returns without error. 3714// 3715// See TagResource for more information on using the TagResource 3716// API call, and error handling. 3717// 3718// This method is useful when you want to inject custom logic or configuration 3719// into the SDK's request lifecycle. Such as custom headers, or retry logic. 3720// 3721// 3722// // Example sending a request using the TagResourceRequest method. 3723// req, resp := client.TagResourceRequest(params) 3724// 3725// err := req.Send() 3726// if err == nil { // resp is now filled 3727// fmt.Println(resp) 3728// } 3729// 3730// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/TagResource 3731func (c *DynamoDB) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) { 3732 op := &request.Operation{ 3733 Name: opTagResource, 3734 HTTPMethod: "POST", 3735 HTTPPath: "/", 3736 } 3737 3738 if input == nil { 3739 input = &TagResourceInput{} 3740 } 3741 3742 output = &TagResourceOutput{} 3743 req = c.newRequest(op, input, output) 3744 req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 3745 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 3746 de := discovererDescribeEndpoints{ 3747 Required: false, 3748 EndpointCache: c.endpointCache, 3749 Params: map[string]*string{ 3750 "op": aws.String(req.Operation.Name), 3751 }, 3752 Client: c, 3753 } 3754 3755 for k, v := range de.Params { 3756 if v == nil { 3757 delete(de.Params, k) 3758 } 3759 } 3760 3761 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 3762 Name: "crr.endpointdiscovery", 3763 Fn: de.Handler, 3764 }) 3765 } 3766 return 3767} 3768 3769// TagResource API operation for Amazon DynamoDB. 3770// 3771// Associate a set of tags with an Amazon DynamoDB resource. You can then activate 3772// these user-defined tags so that they appear on the Billing and Cost Management 3773// console for cost allocation tracking. You can call TagResource up to five 3774// times per second, per account. 3775// 3776// For an overview on tagging DynamoDB resources, see Tagging for DynamoDB (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html) 3777// in the Amazon DynamoDB Developer Guide. 3778// 3779// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3780// with awserr.Error's Code and Message methods to get detailed information about 3781// the error. 3782// 3783// See the AWS API reference guide for Amazon DynamoDB's 3784// API operation TagResource for usage and error information. 3785// 3786// Returned Error Codes: 3787// * ErrCodeLimitExceededException "LimitExceededException" 3788// There is no limit to the number of daily on-demand backups that can be taken. 3789// 3790// Up to 50 simultaneous table operations are allowed per account. These operations 3791// include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup, 3792// and RestoreTableToPointInTime. 3793// 3794// The only exception is when you are creating a table with one or more secondary 3795// indexes. You can have up to 25 such requests running at a time; however, 3796// if the table or index specifications are complex, DynamoDB might temporarily 3797// reduce the number of concurrent operations. 3798// 3799// There is a soft account limit of 256 tables. 3800// 3801// * ErrCodeResourceNotFoundException "ResourceNotFoundException" 3802// The operation tried to access a nonexistent table or index. The resource 3803// might not be specified correctly, or its status might not be ACTIVE. 3804// 3805// * ErrCodeInternalServerError "InternalServerError" 3806// An error occurred on the server side. 3807// 3808// * ErrCodeResourceInUseException "ResourceInUseException" 3809// The operation conflicts with the resource's availability. For example, you 3810// attempted to recreate an existing table, or tried to delete a table currently 3811// in the CREATING state. 3812// 3813// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/TagResource 3814func (c *DynamoDB) TagResource(input *TagResourceInput) (*TagResourceOutput, error) { 3815 req, out := c.TagResourceRequest(input) 3816 return out, req.Send() 3817} 3818 3819// TagResourceWithContext is the same as TagResource with the addition of 3820// the ability to pass a context and additional request options. 3821// 3822// See TagResource for details on how to use this API operation. 3823// 3824// The context must be non-nil and will be used for request cancellation. If 3825// the context is nil a panic will occur. In the future the SDK may create 3826// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3827// for more information on using Contexts. 3828func (c *DynamoDB) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) { 3829 req, out := c.TagResourceRequest(input) 3830 req.SetContext(ctx) 3831 req.ApplyOptions(opts...) 3832 return out, req.Send() 3833} 3834 3835const opTransactGetItems = "TransactGetItems" 3836 3837// TransactGetItemsRequest generates a "aws/request.Request" representing the 3838// client's request for the TransactGetItems operation. The "output" return 3839// value will be populated with the request's response once the request completes 3840// successfully. 3841// 3842// Use "Send" method on the returned Request to send the API call to the service. 3843// the "output" return value is not valid until after Send returns without error. 3844// 3845// See TransactGetItems for more information on using the TransactGetItems 3846// API call, and error handling. 3847// 3848// This method is useful when you want to inject custom logic or configuration 3849// into the SDK's request lifecycle. Such as custom headers, or retry logic. 3850// 3851// 3852// // Example sending a request using the TransactGetItemsRequest method. 3853// req, resp := client.TransactGetItemsRequest(params) 3854// 3855// err := req.Send() 3856// if err == nil { // resp is now filled 3857// fmt.Println(resp) 3858// } 3859// 3860// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/TransactGetItems 3861func (c *DynamoDB) TransactGetItemsRequest(input *TransactGetItemsInput) (req *request.Request, output *TransactGetItemsOutput) { 3862 op := &request.Operation{ 3863 Name: opTransactGetItems, 3864 HTTPMethod: "POST", 3865 HTTPPath: "/", 3866 } 3867 3868 if input == nil { 3869 input = &TransactGetItemsInput{} 3870 } 3871 3872 output = &TransactGetItemsOutput{} 3873 req = c.newRequest(op, input, output) 3874 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 3875 de := discovererDescribeEndpoints{ 3876 Required: false, 3877 EndpointCache: c.endpointCache, 3878 Params: map[string]*string{ 3879 "op": aws.String(req.Operation.Name), 3880 }, 3881 Client: c, 3882 } 3883 3884 for k, v := range de.Params { 3885 if v == nil { 3886 delete(de.Params, k) 3887 } 3888 } 3889 3890 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 3891 Name: "crr.endpointdiscovery", 3892 Fn: de.Handler, 3893 }) 3894 } 3895 return 3896} 3897 3898// TransactGetItems API operation for Amazon DynamoDB. 3899// 3900// TransactGetItems is a synchronous operation that atomically retrieves multiple 3901// items from one or more tables (but not from indexes) in a single account 3902// and Region. A TransactGetItems call can contain up to 25 TransactGetItem 3903// objects, each of which contains a Get structure that specifies an item to 3904// retrieve from a table in the account and Region. A call to TransactGetItems 3905// cannot retrieve items from tables in more than one AWS account or Region. 3906// The aggregate size of the items in the transaction cannot exceed 4 MB. 3907// 3908// All AWS Regions and AWS GovCloud (US) support up to 25 items per transaction 3909// with up to 4 MB of data, except the following AWS Regions: 3910// 3911// * China (Beijing) 3912// 3913// * China (Ningxia) 3914// 3915// The China (Beijing) and China (Ningxia) Regions support up to 10 items per 3916// transaction with up to 4 MB of data. 3917// 3918// DynamoDB rejects the entire TransactGetItems request if any of the following 3919// is true: 3920// 3921// * A conflicting operation is in the process of updating an item to be 3922// read. 3923// 3924// * There is insufficient provisioned capacity for the transaction to be 3925// completed. 3926// 3927// * There is a user error, such as an invalid data format. 3928// 3929// * The aggregate size of the items in the transaction cannot exceed 4 MB. 3930// 3931// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3932// with awserr.Error's Code and Message methods to get detailed information about 3933// the error. 3934// 3935// See the AWS API reference guide for Amazon DynamoDB's 3936// API operation TransactGetItems for usage and error information. 3937// 3938// Returned Error Codes: 3939// * ErrCodeResourceNotFoundException "ResourceNotFoundException" 3940// The operation tried to access a nonexistent table or index. The resource 3941// might not be specified correctly, or its status might not be ACTIVE. 3942// 3943// * ErrCodeTransactionCanceledException "TransactionCanceledException" 3944// The entire transaction request was canceled. 3945// 3946// DynamoDB cancels a TransactWriteItems request under the following circumstances: 3947// 3948// * A condition in one of the condition expressions is not met. 3949// 3950// * A table in the TransactWriteItems request is in a different account 3951// or region. 3952// 3953// * More than one action in the TransactWriteItems operation targets the 3954// same item. 3955// 3956// * There is insufficient provisioned capacity for the transaction to be 3957// completed. 3958// 3959// * An item size becomes too large (larger than 400 KB), or a local secondary 3960// index (LSI) becomes too large, or a similar validation error occurs because 3961// of changes made by the transaction. 3962// 3963// * The aggregate size of the items in the transaction exceeds 4 MBs. 3964// 3965// * There is a user error, such as an invalid data format. 3966// 3967// DynamoDB cancels a TransactGetItems request under the following circumstances: 3968// 3969// * There is an ongoing TransactGetItems operation that conflicts with a 3970// concurrent PutItem, UpdateItem, DeleteItem or TransactWriteItems request. 3971// In this case the TransactGetItems operation fails with a TransactionCanceledException. 3972// 3973// * A table in the TransactGetItems request is in a different account or 3974// region. 3975// 3976// * There is insufficient provisioned capacity for the transaction to be 3977// completed. 3978// 3979// * The aggregate size of the items in the transaction exceeds 4 MBs. 3980// 3981// * There is a user error, such as an invalid data format. 3982// 3983// If using Java, DynamoDB lists the cancellation reasons on the CancellationReasons 3984// property. This property is not set for other languages. Transaction cancellation 3985// reasons are ordered in the order of requested items, if an item has no error 3986// it will have NONE code and Null message. 3987// 3988// Cancellation reason codes and possible error messages: 3989// 3990// * No Errors: Code: NONE Message: null 3991// 3992// * Conditional Check Failed: Code: ConditionalCheckFailed Message: The 3993// conditional request failed. 3994// 3995// * Item Collection Size Limit Exceeded: Code: ItemCollectionSizeLimitExceeded 3996// Message: Collection size exceeded. 3997// 3998// * Transaction Conflict: Code: TransactionConflict Message: Transaction 3999// is ongoing for the item. 4000// 4001// * Provisioned Throughput Exceeded: Code: ProvisionedThroughputExceeded 4002// Messages: The level of configured provisioned throughput for the table 4003// was exceeded. Consider increasing your provisioning level with the UpdateTable 4004// API. This Message is received when provisioned throughput is exceeded 4005// is on a provisioned DynamoDB table. The level of configured provisioned 4006// throughput for one or more global secondary indexes of the table was exceeded. 4007// Consider increasing your provisioning level for the under-provisioned 4008// global secondary indexes with the UpdateTable API. This message is returned 4009// when provisioned throughput is exceeded is on a provisioned GSI. 4010// 4011// * Throttling Error: Code: ThrottlingError Messages: Throughput exceeds 4012// the current capacity of your table or index. DynamoDB is automatically 4013// scaling your table or index so please try again shortly. If exceptions 4014// persist, check if you have a hot key: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-partition-key-design.html. 4015// This message is returned when writes get throttled on an On-Demand table 4016// as DynamoDB is automatically scaling the table. Throughput exceeds the 4017// current capacity for one or more global secondary indexes. DynamoDB is 4018// automatically scaling your index so please try again shortly. This message 4019// is returned when when writes get throttled on an On-Demand GSI as DynamoDB 4020// is automatically scaling the GSI. 4021// 4022// * Validation Error: Code: ValidationError Messages: One or more parameter 4023// values were invalid. The update expression attempted to update the secondary 4024// index key beyond allowed size limits. The update expression attempted 4025// to update the secondary index key to unsupported type. An operand in the 4026// update expression has an incorrect data type. Item size to update has 4027// exceeded the maximum allowed size. Number overflow. Attempting to store 4028// a number with magnitude larger than supported range. Type mismatch for 4029// attribute to update. Nesting Levels have exceeded supported limits. The 4030// document path provided in the update expression is invalid for update. 4031// The provided expression refers to an attribute that does not exist in 4032// the item. 4033// 4034// * ErrCodeProvisionedThroughputExceededException "ProvisionedThroughputExceededException" 4035// Your request rate is too high. The AWS SDKs for DynamoDB automatically retry 4036// requests that receive this exception. Your request is eventually successful, 4037// unless your retry queue is too large to finish. Reduce the frequency of requests 4038// and use exponential backoff. For more information, go to Error Retries and 4039// Exponential Backoff (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.RetryAndBackoff) 4040// in the Amazon DynamoDB Developer Guide. 4041// 4042// * ErrCodeInternalServerError "InternalServerError" 4043// An error occurred on the server side. 4044// 4045// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/TransactGetItems 4046func (c *DynamoDB) TransactGetItems(input *TransactGetItemsInput) (*TransactGetItemsOutput, error) { 4047 req, out := c.TransactGetItemsRequest(input) 4048 return out, req.Send() 4049} 4050 4051// TransactGetItemsWithContext is the same as TransactGetItems with the addition of 4052// the ability to pass a context and additional request options. 4053// 4054// See TransactGetItems for details on how to use this API operation. 4055// 4056// The context must be non-nil and will be used for request cancellation. If 4057// the context is nil a panic will occur. In the future the SDK may create 4058// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4059// for more information on using Contexts. 4060func (c *DynamoDB) TransactGetItemsWithContext(ctx aws.Context, input *TransactGetItemsInput, opts ...request.Option) (*TransactGetItemsOutput, error) { 4061 req, out := c.TransactGetItemsRequest(input) 4062 req.SetContext(ctx) 4063 req.ApplyOptions(opts...) 4064 return out, req.Send() 4065} 4066 4067const opTransactWriteItems = "TransactWriteItems" 4068 4069// TransactWriteItemsRequest generates a "aws/request.Request" representing the 4070// client's request for the TransactWriteItems operation. The "output" return 4071// value will be populated with the request's response once the request completes 4072// successfully. 4073// 4074// Use "Send" method on the returned Request to send the API call to the service. 4075// the "output" return value is not valid until after Send returns without error. 4076// 4077// See TransactWriteItems for more information on using the TransactWriteItems 4078// API call, and error handling. 4079// 4080// This method is useful when you want to inject custom logic or configuration 4081// into the SDK's request lifecycle. Such as custom headers, or retry logic. 4082// 4083// 4084// // Example sending a request using the TransactWriteItemsRequest method. 4085// req, resp := client.TransactWriteItemsRequest(params) 4086// 4087// err := req.Send() 4088// if err == nil { // resp is now filled 4089// fmt.Println(resp) 4090// } 4091// 4092// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/TransactWriteItems 4093func (c *DynamoDB) TransactWriteItemsRequest(input *TransactWriteItemsInput) (req *request.Request, output *TransactWriteItemsOutput) { 4094 op := &request.Operation{ 4095 Name: opTransactWriteItems, 4096 HTTPMethod: "POST", 4097 HTTPPath: "/", 4098 } 4099 4100 if input == nil { 4101 input = &TransactWriteItemsInput{} 4102 } 4103 4104 output = &TransactWriteItemsOutput{} 4105 req = c.newRequest(op, input, output) 4106 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 4107 de := discovererDescribeEndpoints{ 4108 Required: false, 4109 EndpointCache: c.endpointCache, 4110 Params: map[string]*string{ 4111 "op": aws.String(req.Operation.Name), 4112 }, 4113 Client: c, 4114 } 4115 4116 for k, v := range de.Params { 4117 if v == nil { 4118 delete(de.Params, k) 4119 } 4120 } 4121 4122 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 4123 Name: "crr.endpointdiscovery", 4124 Fn: de.Handler, 4125 }) 4126 } 4127 return 4128} 4129 4130// TransactWriteItems API operation for Amazon DynamoDB. 4131// 4132// TransactWriteItems is a synchronous write operation that groups up to 25 4133// action requests. These actions can target items in different tables, but 4134// not in different AWS accounts or Regions, and no two actions can target the 4135// same item. For example, you cannot both ConditionCheck and Update the same 4136// item. The aggregate size of the items in the transaction cannot exceed 4 4137// MB. 4138// 4139// All AWS Regions and AWS GovCloud (US) support up to 25 items per transaction 4140// with up to 4 MB of data, except the following AWS Regions: 4141// 4142// * China (Beijing) 4143// 4144// * China (Ningxia) 4145// 4146// The China (Beijing) and China (Ningxia) Regions support up to 10 items per 4147// transaction with up to 4 MB of data. 4148// 4149// The actions are completed atomically so that either all of them succeed, 4150// or all of them fail. They are defined by the following objects: 4151// 4152// * Put — Initiates a PutItem operation to write a new item. This structure 4153// specifies the primary key of the item to be written, the name of the table 4154// to write it in, an optional condition expression that must be satisfied 4155// for the write to succeed, a list of the item's attributes, and a field 4156// indicating whether to retrieve the item's attributes if the condition 4157// is not met. 4158// 4159// * Update — Initiates an UpdateItem operation to update an existing item. 4160// This structure specifies the primary key of the item to be updated, the 4161// name of the table where it resides, an optional condition expression that 4162// must be satisfied for the update to succeed, an expression that defines 4163// one or more attributes to be updated, and a field indicating whether to 4164// retrieve the item's attributes if the condition is not met. 4165// 4166// * Delete — Initiates a DeleteItem operation to delete an existing item. 4167// This structure specifies the primary key of the item to be deleted, the 4168// name of the table where it resides, an optional condition expression that 4169// must be satisfied for the deletion to succeed, and a field indicating 4170// whether to retrieve the item's attributes if the condition is not met. 4171// 4172// * ConditionCheck — Applies a condition to an item that is not being 4173// modified by the transaction. This structure specifies the primary key 4174// of the item to be checked, the name of the table where it resides, a condition 4175// expression that must be satisfied for the transaction to succeed, and 4176// a field indicating whether to retrieve the item's attributes if the condition 4177// is not met. 4178// 4179// DynamoDB rejects the entire TransactWriteItems request if any of the following 4180// is true: 4181// 4182// * A condition in one of the condition expressions is not met. 4183// 4184// * An ongoing operation is in the process of updating the same item. 4185// 4186// * There is insufficient provisioned capacity for the transaction to be 4187// completed. 4188// 4189// * An item size becomes too large (bigger than 400 KB), a local secondary 4190// index (LSI) becomes too large, or a similar validation error occurs because 4191// of changes made by the transaction. 4192// 4193// * The aggregate size of the items in the transaction exceeds 4 MB. 4194// 4195// * There is a user error, such as an invalid data format. 4196// 4197// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4198// with awserr.Error's Code and Message methods to get detailed information about 4199// the error. 4200// 4201// See the AWS API reference guide for Amazon DynamoDB's 4202// API operation TransactWriteItems for usage and error information. 4203// 4204// Returned Error Codes: 4205// * ErrCodeResourceNotFoundException "ResourceNotFoundException" 4206// The operation tried to access a nonexistent table or index. The resource 4207// might not be specified correctly, or its status might not be ACTIVE. 4208// 4209// * ErrCodeTransactionCanceledException "TransactionCanceledException" 4210// The entire transaction request was canceled. 4211// 4212// DynamoDB cancels a TransactWriteItems request under the following circumstances: 4213// 4214// * A condition in one of the condition expressions is not met. 4215// 4216// * A table in the TransactWriteItems request is in a different account 4217// or region. 4218// 4219// * More than one action in the TransactWriteItems operation targets the 4220// same item. 4221// 4222// * There is insufficient provisioned capacity for the transaction to be 4223// completed. 4224// 4225// * An item size becomes too large (larger than 400 KB), or a local secondary 4226// index (LSI) becomes too large, or a similar validation error occurs because 4227// of changes made by the transaction. 4228// 4229// * The aggregate size of the items in the transaction exceeds 4 MBs. 4230// 4231// * There is a user error, such as an invalid data format. 4232// 4233// DynamoDB cancels a TransactGetItems request under the following circumstances: 4234// 4235// * There is an ongoing TransactGetItems operation that conflicts with a 4236// concurrent PutItem, UpdateItem, DeleteItem or TransactWriteItems request. 4237// In this case the TransactGetItems operation fails with a TransactionCanceledException. 4238// 4239// * A table in the TransactGetItems request is in a different account or 4240// region. 4241// 4242// * There is insufficient provisioned capacity for the transaction to be 4243// completed. 4244// 4245// * The aggregate size of the items in the transaction exceeds 4 MBs. 4246// 4247// * There is a user error, such as an invalid data format. 4248// 4249// If using Java, DynamoDB lists the cancellation reasons on the CancellationReasons 4250// property. This property is not set for other languages. Transaction cancellation 4251// reasons are ordered in the order of requested items, if an item has no error 4252// it will have NONE code and Null message. 4253// 4254// Cancellation reason codes and possible error messages: 4255// 4256// * No Errors: Code: NONE Message: null 4257// 4258// * Conditional Check Failed: Code: ConditionalCheckFailed Message: The 4259// conditional request failed. 4260// 4261// * Item Collection Size Limit Exceeded: Code: ItemCollectionSizeLimitExceeded 4262// Message: Collection size exceeded. 4263// 4264// * Transaction Conflict: Code: TransactionConflict Message: Transaction 4265// is ongoing for the item. 4266// 4267// * Provisioned Throughput Exceeded: Code: ProvisionedThroughputExceeded 4268// Messages: The level of configured provisioned throughput for the table 4269// was exceeded. Consider increasing your provisioning level with the UpdateTable 4270// API. This Message is received when provisioned throughput is exceeded 4271// is on a provisioned DynamoDB table. The level of configured provisioned 4272// throughput for one or more global secondary indexes of the table was exceeded. 4273// Consider increasing your provisioning level for the under-provisioned 4274// global secondary indexes with the UpdateTable API. This message is returned 4275// when provisioned throughput is exceeded is on a provisioned GSI. 4276// 4277// * Throttling Error: Code: ThrottlingError Messages: Throughput exceeds 4278// the current capacity of your table or index. DynamoDB is automatically 4279// scaling your table or index so please try again shortly. If exceptions 4280// persist, check if you have a hot key: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-partition-key-design.html. 4281// This message is returned when writes get throttled on an On-Demand table 4282// as DynamoDB is automatically scaling the table. Throughput exceeds the 4283// current capacity for one or more global secondary indexes. DynamoDB is 4284// automatically scaling your index so please try again shortly. This message 4285// is returned when when writes get throttled on an On-Demand GSI as DynamoDB 4286// is automatically scaling the GSI. 4287// 4288// * Validation Error: Code: ValidationError Messages: One or more parameter 4289// values were invalid. The update expression attempted to update the secondary 4290// index key beyond allowed size limits. The update expression attempted 4291// to update the secondary index key to unsupported type. An operand in the 4292// update expression has an incorrect data type. Item size to update has 4293// exceeded the maximum allowed size. Number overflow. Attempting to store 4294// a number with magnitude larger than supported range. Type mismatch for 4295// attribute to update. Nesting Levels have exceeded supported limits. The 4296// document path provided in the update expression is invalid for update. 4297// The provided expression refers to an attribute that does not exist in 4298// the item. 4299// 4300// * ErrCodeTransactionInProgressException "TransactionInProgressException" 4301// The transaction with the given request token is already in progress. 4302// 4303// * ErrCodeIdempotentParameterMismatchException "IdempotentParameterMismatchException" 4304// DynamoDB rejected the request because you retried a request with a different 4305// payload but with an idempotent token that was already used. 4306// 4307// * ErrCodeProvisionedThroughputExceededException "ProvisionedThroughputExceededException" 4308// Your request rate is too high. The AWS SDKs for DynamoDB automatically retry 4309// requests that receive this exception. Your request is eventually successful, 4310// unless your retry queue is too large to finish. Reduce the frequency of requests 4311// and use exponential backoff. For more information, go to Error Retries and 4312// Exponential Backoff (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.RetryAndBackoff) 4313// in the Amazon DynamoDB Developer Guide. 4314// 4315// * ErrCodeInternalServerError "InternalServerError" 4316// An error occurred on the server side. 4317// 4318// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/TransactWriteItems 4319func (c *DynamoDB) TransactWriteItems(input *TransactWriteItemsInput) (*TransactWriteItemsOutput, error) { 4320 req, out := c.TransactWriteItemsRequest(input) 4321 return out, req.Send() 4322} 4323 4324// TransactWriteItemsWithContext is the same as TransactWriteItems with the addition of 4325// the ability to pass a context and additional request options. 4326// 4327// See TransactWriteItems for details on how to use this API operation. 4328// 4329// The context must be non-nil and will be used for request cancellation. If 4330// the context is nil a panic will occur. In the future the SDK may create 4331// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4332// for more information on using Contexts. 4333func (c *DynamoDB) TransactWriteItemsWithContext(ctx aws.Context, input *TransactWriteItemsInput, opts ...request.Option) (*TransactWriteItemsOutput, error) { 4334 req, out := c.TransactWriteItemsRequest(input) 4335 req.SetContext(ctx) 4336 req.ApplyOptions(opts...) 4337 return out, req.Send() 4338} 4339 4340const opUntagResource = "UntagResource" 4341 4342// UntagResourceRequest generates a "aws/request.Request" representing the 4343// client's request for the UntagResource operation. The "output" return 4344// value will be populated with the request's response once the request completes 4345// successfully. 4346// 4347// Use "Send" method on the returned Request to send the API call to the service. 4348// the "output" return value is not valid until after Send returns without error. 4349// 4350// See UntagResource for more information on using the UntagResource 4351// API call, and error handling. 4352// 4353// This method is useful when you want to inject custom logic or configuration 4354// into the SDK's request lifecycle. Such as custom headers, or retry logic. 4355// 4356// 4357// // Example sending a request using the UntagResourceRequest method. 4358// req, resp := client.UntagResourceRequest(params) 4359// 4360// err := req.Send() 4361// if err == nil { // resp is now filled 4362// fmt.Println(resp) 4363// } 4364// 4365// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UntagResource 4366func (c *DynamoDB) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) { 4367 op := &request.Operation{ 4368 Name: opUntagResource, 4369 HTTPMethod: "POST", 4370 HTTPPath: "/", 4371 } 4372 4373 if input == nil { 4374 input = &UntagResourceInput{} 4375 } 4376 4377 output = &UntagResourceOutput{} 4378 req = c.newRequest(op, input, output) 4379 req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 4380 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 4381 de := discovererDescribeEndpoints{ 4382 Required: false, 4383 EndpointCache: c.endpointCache, 4384 Params: map[string]*string{ 4385 "op": aws.String(req.Operation.Name), 4386 }, 4387 Client: c, 4388 } 4389 4390 for k, v := range de.Params { 4391 if v == nil { 4392 delete(de.Params, k) 4393 } 4394 } 4395 4396 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 4397 Name: "crr.endpointdiscovery", 4398 Fn: de.Handler, 4399 }) 4400 } 4401 return 4402} 4403 4404// UntagResource API operation for Amazon DynamoDB. 4405// 4406// Removes the association of tags from an Amazon DynamoDB resource. You can 4407// call UntagResource up to five times per second, per account. 4408// 4409// For an overview on tagging DynamoDB resources, see Tagging for DynamoDB (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html) 4410// in the Amazon DynamoDB Developer Guide. 4411// 4412// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4413// with awserr.Error's Code and Message methods to get detailed information about 4414// the error. 4415// 4416// See the AWS API reference guide for Amazon DynamoDB's 4417// API operation UntagResource for usage and error information. 4418// 4419// Returned Error Codes: 4420// * ErrCodeLimitExceededException "LimitExceededException" 4421// There is no limit to the number of daily on-demand backups that can be taken. 4422// 4423// Up to 50 simultaneous table operations are allowed per account. These operations 4424// include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup, 4425// and RestoreTableToPointInTime. 4426// 4427// The only exception is when you are creating a table with one or more secondary 4428// indexes. You can have up to 25 such requests running at a time; however, 4429// if the table or index specifications are complex, DynamoDB might temporarily 4430// reduce the number of concurrent operations. 4431// 4432// There is a soft account limit of 256 tables. 4433// 4434// * ErrCodeResourceNotFoundException "ResourceNotFoundException" 4435// The operation tried to access a nonexistent table or index. The resource 4436// might not be specified correctly, or its status might not be ACTIVE. 4437// 4438// * ErrCodeInternalServerError "InternalServerError" 4439// An error occurred on the server side. 4440// 4441// * ErrCodeResourceInUseException "ResourceInUseException" 4442// The operation conflicts with the resource's availability. For example, you 4443// attempted to recreate an existing table, or tried to delete a table currently 4444// in the CREATING state. 4445// 4446// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UntagResource 4447func (c *DynamoDB) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) { 4448 req, out := c.UntagResourceRequest(input) 4449 return out, req.Send() 4450} 4451 4452// UntagResourceWithContext is the same as UntagResource with the addition of 4453// the ability to pass a context and additional request options. 4454// 4455// See UntagResource for details on how to use this API operation. 4456// 4457// The context must be non-nil and will be used for request cancellation. If 4458// the context is nil a panic will occur. In the future the SDK may create 4459// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4460// for more information on using Contexts. 4461func (c *DynamoDB) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) { 4462 req, out := c.UntagResourceRequest(input) 4463 req.SetContext(ctx) 4464 req.ApplyOptions(opts...) 4465 return out, req.Send() 4466} 4467 4468const opUpdateContinuousBackups = "UpdateContinuousBackups" 4469 4470// UpdateContinuousBackupsRequest generates a "aws/request.Request" representing the 4471// client's request for the UpdateContinuousBackups operation. The "output" return 4472// value will be populated with the request's response once the request completes 4473// successfully. 4474// 4475// Use "Send" method on the returned Request to send the API call to the service. 4476// the "output" return value is not valid until after Send returns without error. 4477// 4478// See UpdateContinuousBackups for more information on using the UpdateContinuousBackups 4479// API call, and error handling. 4480// 4481// This method is useful when you want to inject custom logic or configuration 4482// into the SDK's request lifecycle. Such as custom headers, or retry logic. 4483// 4484// 4485// // Example sending a request using the UpdateContinuousBackupsRequest method. 4486// req, resp := client.UpdateContinuousBackupsRequest(params) 4487// 4488// err := req.Send() 4489// if err == nil { // resp is now filled 4490// fmt.Println(resp) 4491// } 4492// 4493// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateContinuousBackups 4494func (c *DynamoDB) UpdateContinuousBackupsRequest(input *UpdateContinuousBackupsInput) (req *request.Request, output *UpdateContinuousBackupsOutput) { 4495 op := &request.Operation{ 4496 Name: opUpdateContinuousBackups, 4497 HTTPMethod: "POST", 4498 HTTPPath: "/", 4499 } 4500 4501 if input == nil { 4502 input = &UpdateContinuousBackupsInput{} 4503 } 4504 4505 output = &UpdateContinuousBackupsOutput{} 4506 req = c.newRequest(op, input, output) 4507 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 4508 de := discovererDescribeEndpoints{ 4509 Required: false, 4510 EndpointCache: c.endpointCache, 4511 Params: map[string]*string{ 4512 "op": aws.String(req.Operation.Name), 4513 }, 4514 Client: c, 4515 } 4516 4517 for k, v := range de.Params { 4518 if v == nil { 4519 delete(de.Params, k) 4520 } 4521 } 4522 4523 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 4524 Name: "crr.endpointdiscovery", 4525 Fn: de.Handler, 4526 }) 4527 } 4528 return 4529} 4530 4531// UpdateContinuousBackups API operation for Amazon DynamoDB. 4532// 4533// UpdateContinuousBackups enables or disables point in time recovery for the 4534// specified table. A successful UpdateContinuousBackups call returns the current 4535// ContinuousBackupsDescription. Continuous backups are ENABLED on all tables 4536// at table creation. If point in time recovery is enabled, PointInTimeRecoveryStatus 4537// will be set to ENABLED. 4538// 4539// Once continuous backups and point in time recovery are enabled, you can restore 4540// to any point in time within EarliestRestorableDateTime and LatestRestorableDateTime. 4541// 4542// LatestRestorableDateTime is typically 5 minutes before the current time. 4543// You can restore your table to any point in time during the last 35 days. 4544// 4545// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4546// with awserr.Error's Code and Message methods to get detailed information about 4547// the error. 4548// 4549// See the AWS API reference guide for Amazon DynamoDB's 4550// API operation UpdateContinuousBackups for usage and error information. 4551// 4552// Returned Error Codes: 4553// * ErrCodeTableNotFoundException "TableNotFoundException" 4554// A source table with the name TableName does not currently exist within the 4555// subscriber's account. 4556// 4557// * ErrCodeContinuousBackupsUnavailableException "ContinuousBackupsUnavailableException" 4558// Backups have not yet been enabled for this table. 4559// 4560// * ErrCodeInternalServerError "InternalServerError" 4561// An error occurred on the server side. 4562// 4563// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateContinuousBackups 4564func (c *DynamoDB) UpdateContinuousBackups(input *UpdateContinuousBackupsInput) (*UpdateContinuousBackupsOutput, error) { 4565 req, out := c.UpdateContinuousBackupsRequest(input) 4566 return out, req.Send() 4567} 4568 4569// UpdateContinuousBackupsWithContext is the same as UpdateContinuousBackups with the addition of 4570// the ability to pass a context and additional request options. 4571// 4572// See UpdateContinuousBackups for details on how to use this API operation. 4573// 4574// The context must be non-nil and will be used for request cancellation. If 4575// the context is nil a panic will occur. In the future the SDK may create 4576// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4577// for more information on using Contexts. 4578func (c *DynamoDB) UpdateContinuousBackupsWithContext(ctx aws.Context, input *UpdateContinuousBackupsInput, opts ...request.Option) (*UpdateContinuousBackupsOutput, error) { 4579 req, out := c.UpdateContinuousBackupsRequest(input) 4580 req.SetContext(ctx) 4581 req.ApplyOptions(opts...) 4582 return out, req.Send() 4583} 4584 4585const opUpdateGlobalTable = "UpdateGlobalTable" 4586 4587// UpdateGlobalTableRequest generates a "aws/request.Request" representing the 4588// client's request for the UpdateGlobalTable operation. The "output" return 4589// value will be populated with the request's response once the request completes 4590// successfully. 4591// 4592// Use "Send" method on the returned Request to send the API call to the service. 4593// the "output" return value is not valid until after Send returns without error. 4594// 4595// See UpdateGlobalTable for more information on using the UpdateGlobalTable 4596// API call, and error handling. 4597// 4598// This method is useful when you want to inject custom logic or configuration 4599// into the SDK's request lifecycle. Such as custom headers, or retry logic. 4600// 4601// 4602// // Example sending a request using the UpdateGlobalTableRequest method. 4603// req, resp := client.UpdateGlobalTableRequest(params) 4604// 4605// err := req.Send() 4606// if err == nil { // resp is now filled 4607// fmt.Println(resp) 4608// } 4609// 4610// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateGlobalTable 4611func (c *DynamoDB) UpdateGlobalTableRequest(input *UpdateGlobalTableInput) (req *request.Request, output *UpdateGlobalTableOutput) { 4612 op := &request.Operation{ 4613 Name: opUpdateGlobalTable, 4614 HTTPMethod: "POST", 4615 HTTPPath: "/", 4616 } 4617 4618 if input == nil { 4619 input = &UpdateGlobalTableInput{} 4620 } 4621 4622 output = &UpdateGlobalTableOutput{} 4623 req = c.newRequest(op, input, output) 4624 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 4625 de := discovererDescribeEndpoints{ 4626 Required: false, 4627 EndpointCache: c.endpointCache, 4628 Params: map[string]*string{ 4629 "op": aws.String(req.Operation.Name), 4630 }, 4631 Client: c, 4632 } 4633 4634 for k, v := range de.Params { 4635 if v == nil { 4636 delete(de.Params, k) 4637 } 4638 } 4639 4640 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 4641 Name: "crr.endpointdiscovery", 4642 Fn: de.Handler, 4643 }) 4644 } 4645 return 4646} 4647 4648// UpdateGlobalTable API operation for Amazon DynamoDB. 4649// 4650// Adds or removes replicas in the specified global table. The global table 4651// must already exist to be able to use this operation. Any replica to be added 4652// must be empty, have the same name as the global table, have the same key 4653// schema, have DynamoDB Streams enabled, and have the same provisioned and 4654// maximum write capacity units. 4655// 4656// Although you can use UpdateGlobalTable to add replicas and remove replicas 4657// in a single request, for simplicity we recommend that you issue separate 4658// requests for adding or removing replicas. 4659// 4660// If global secondary indexes are specified, then the following conditions 4661// must also be met: 4662// 4663// * The global secondary indexes must have the same name. 4664// 4665// * The global secondary indexes must have the same hash key and sort key 4666// (if present). 4667// 4668// * The global secondary indexes must have the same provisioned and maximum 4669// write capacity units. 4670// 4671// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4672// with awserr.Error's Code and Message methods to get detailed information about 4673// the error. 4674// 4675// See the AWS API reference guide for Amazon DynamoDB's 4676// API operation UpdateGlobalTable for usage and error information. 4677// 4678// Returned Error Codes: 4679// * ErrCodeInternalServerError "InternalServerError" 4680// An error occurred on the server side. 4681// 4682// * ErrCodeGlobalTableNotFoundException "GlobalTableNotFoundException" 4683// The specified global table does not exist. 4684// 4685// * ErrCodeReplicaAlreadyExistsException "ReplicaAlreadyExistsException" 4686// The specified replica is already part of the global table. 4687// 4688// * ErrCodeReplicaNotFoundException "ReplicaNotFoundException" 4689// The specified replica is no longer part of the global table. 4690// 4691// * ErrCodeTableNotFoundException "TableNotFoundException" 4692// A source table with the name TableName does not currently exist within the 4693// subscriber's account. 4694// 4695// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateGlobalTable 4696func (c *DynamoDB) UpdateGlobalTable(input *UpdateGlobalTableInput) (*UpdateGlobalTableOutput, error) { 4697 req, out := c.UpdateGlobalTableRequest(input) 4698 return out, req.Send() 4699} 4700 4701// UpdateGlobalTableWithContext is the same as UpdateGlobalTable with the addition of 4702// the ability to pass a context and additional request options. 4703// 4704// See UpdateGlobalTable for details on how to use this API operation. 4705// 4706// The context must be non-nil and will be used for request cancellation. If 4707// the context is nil a panic will occur. In the future the SDK may create 4708// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4709// for more information on using Contexts. 4710func (c *DynamoDB) UpdateGlobalTableWithContext(ctx aws.Context, input *UpdateGlobalTableInput, opts ...request.Option) (*UpdateGlobalTableOutput, error) { 4711 req, out := c.UpdateGlobalTableRequest(input) 4712 req.SetContext(ctx) 4713 req.ApplyOptions(opts...) 4714 return out, req.Send() 4715} 4716 4717const opUpdateGlobalTableSettings = "UpdateGlobalTableSettings" 4718 4719// UpdateGlobalTableSettingsRequest generates a "aws/request.Request" representing the 4720// client's request for the UpdateGlobalTableSettings operation. The "output" return 4721// value will be populated with the request's response once the request completes 4722// successfully. 4723// 4724// Use "Send" method on the returned Request to send the API call to the service. 4725// the "output" return value is not valid until after Send returns without error. 4726// 4727// See UpdateGlobalTableSettings for more information on using the UpdateGlobalTableSettings 4728// API call, and error handling. 4729// 4730// This method is useful when you want to inject custom logic or configuration 4731// into the SDK's request lifecycle. Such as custom headers, or retry logic. 4732// 4733// 4734// // Example sending a request using the UpdateGlobalTableSettingsRequest method. 4735// req, resp := client.UpdateGlobalTableSettingsRequest(params) 4736// 4737// err := req.Send() 4738// if err == nil { // resp is now filled 4739// fmt.Println(resp) 4740// } 4741// 4742// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateGlobalTableSettings 4743func (c *DynamoDB) UpdateGlobalTableSettingsRequest(input *UpdateGlobalTableSettingsInput) (req *request.Request, output *UpdateGlobalTableSettingsOutput) { 4744 op := &request.Operation{ 4745 Name: opUpdateGlobalTableSettings, 4746 HTTPMethod: "POST", 4747 HTTPPath: "/", 4748 } 4749 4750 if input == nil { 4751 input = &UpdateGlobalTableSettingsInput{} 4752 } 4753 4754 output = &UpdateGlobalTableSettingsOutput{} 4755 req = c.newRequest(op, input, output) 4756 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 4757 de := discovererDescribeEndpoints{ 4758 Required: false, 4759 EndpointCache: c.endpointCache, 4760 Params: map[string]*string{ 4761 "op": aws.String(req.Operation.Name), 4762 }, 4763 Client: c, 4764 } 4765 4766 for k, v := range de.Params { 4767 if v == nil { 4768 delete(de.Params, k) 4769 } 4770 } 4771 4772 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 4773 Name: "crr.endpointdiscovery", 4774 Fn: de.Handler, 4775 }) 4776 } 4777 return 4778} 4779 4780// UpdateGlobalTableSettings API operation for Amazon DynamoDB. 4781// 4782// Updates settings for a global table. 4783// 4784// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4785// with awserr.Error's Code and Message methods to get detailed information about 4786// the error. 4787// 4788// See the AWS API reference guide for Amazon DynamoDB's 4789// API operation UpdateGlobalTableSettings for usage and error information. 4790// 4791// Returned Error Codes: 4792// * ErrCodeGlobalTableNotFoundException "GlobalTableNotFoundException" 4793// The specified global table does not exist. 4794// 4795// * ErrCodeReplicaNotFoundException "ReplicaNotFoundException" 4796// The specified replica is no longer part of the global table. 4797// 4798// * ErrCodeIndexNotFoundException "IndexNotFoundException" 4799// The operation tried to access a nonexistent index. 4800// 4801// * ErrCodeLimitExceededException "LimitExceededException" 4802// There is no limit to the number of daily on-demand backups that can be taken. 4803// 4804// Up to 50 simultaneous table operations are allowed per account. These operations 4805// include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup, 4806// and RestoreTableToPointInTime. 4807// 4808// The only exception is when you are creating a table with one or more secondary 4809// indexes. You can have up to 25 such requests running at a time; however, 4810// if the table or index specifications are complex, DynamoDB might temporarily 4811// reduce the number of concurrent operations. 4812// 4813// There is a soft account limit of 256 tables. 4814// 4815// * ErrCodeResourceInUseException "ResourceInUseException" 4816// The operation conflicts with the resource's availability. For example, you 4817// attempted to recreate an existing table, or tried to delete a table currently 4818// in the CREATING state. 4819// 4820// * ErrCodeInternalServerError "InternalServerError" 4821// An error occurred on the server side. 4822// 4823// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateGlobalTableSettings 4824func (c *DynamoDB) UpdateGlobalTableSettings(input *UpdateGlobalTableSettingsInput) (*UpdateGlobalTableSettingsOutput, error) { 4825 req, out := c.UpdateGlobalTableSettingsRequest(input) 4826 return out, req.Send() 4827} 4828 4829// UpdateGlobalTableSettingsWithContext is the same as UpdateGlobalTableSettings with the addition of 4830// the ability to pass a context and additional request options. 4831// 4832// See UpdateGlobalTableSettings for details on how to use this API operation. 4833// 4834// The context must be non-nil and will be used for request cancellation. If 4835// the context is nil a panic will occur. In the future the SDK may create 4836// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4837// for more information on using Contexts. 4838func (c *DynamoDB) UpdateGlobalTableSettingsWithContext(ctx aws.Context, input *UpdateGlobalTableSettingsInput, opts ...request.Option) (*UpdateGlobalTableSettingsOutput, error) { 4839 req, out := c.UpdateGlobalTableSettingsRequest(input) 4840 req.SetContext(ctx) 4841 req.ApplyOptions(opts...) 4842 return out, req.Send() 4843} 4844 4845const opUpdateItem = "UpdateItem" 4846 4847// UpdateItemRequest generates a "aws/request.Request" representing the 4848// client's request for the UpdateItem operation. The "output" return 4849// value will be populated with the request's response once the request completes 4850// successfully. 4851// 4852// Use "Send" method on the returned Request to send the API call to the service. 4853// the "output" return value is not valid until after Send returns without error. 4854// 4855// See UpdateItem for more information on using the UpdateItem 4856// API call, and error handling. 4857// 4858// This method is useful when you want to inject custom logic or configuration 4859// into the SDK's request lifecycle. Such as custom headers, or retry logic. 4860// 4861// 4862// // Example sending a request using the UpdateItemRequest method. 4863// req, resp := client.UpdateItemRequest(params) 4864// 4865// err := req.Send() 4866// if err == nil { // resp is now filled 4867// fmt.Println(resp) 4868// } 4869// 4870// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateItem 4871func (c *DynamoDB) UpdateItemRequest(input *UpdateItemInput) (req *request.Request, output *UpdateItemOutput) { 4872 op := &request.Operation{ 4873 Name: opUpdateItem, 4874 HTTPMethod: "POST", 4875 HTTPPath: "/", 4876 } 4877 4878 if input == nil { 4879 input = &UpdateItemInput{} 4880 } 4881 4882 output = &UpdateItemOutput{} 4883 req = c.newRequest(op, input, output) 4884 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 4885 de := discovererDescribeEndpoints{ 4886 Required: false, 4887 EndpointCache: c.endpointCache, 4888 Params: map[string]*string{ 4889 "op": aws.String(req.Operation.Name), 4890 }, 4891 Client: c, 4892 } 4893 4894 for k, v := range de.Params { 4895 if v == nil { 4896 delete(de.Params, k) 4897 } 4898 } 4899 4900 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 4901 Name: "crr.endpointdiscovery", 4902 Fn: de.Handler, 4903 }) 4904 } 4905 return 4906} 4907 4908// UpdateItem API operation for Amazon DynamoDB. 4909// 4910// Edits an existing item's attributes, or adds a new item to the table if it 4911// does not already exist. You can put, delete, or add attribute values. You 4912// can also perform a conditional update on an existing item (insert a new attribute 4913// name-value pair if it doesn't exist, or replace an existing name-value pair 4914// if it has certain expected attribute values). 4915// 4916// You can also return the item's attribute values in the same UpdateItem operation 4917// using the ReturnValues parameter. 4918// 4919// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4920// with awserr.Error's Code and Message methods to get detailed information about 4921// the error. 4922// 4923// See the AWS API reference guide for Amazon DynamoDB's 4924// API operation UpdateItem for usage and error information. 4925// 4926// Returned Error Codes: 4927// * ErrCodeConditionalCheckFailedException "ConditionalCheckFailedException" 4928// A condition specified in the operation could not be evaluated. 4929// 4930// * ErrCodeProvisionedThroughputExceededException "ProvisionedThroughputExceededException" 4931// Your request rate is too high. The AWS SDKs for DynamoDB automatically retry 4932// requests that receive this exception. Your request is eventually successful, 4933// unless your retry queue is too large to finish. Reduce the frequency of requests 4934// and use exponential backoff. For more information, go to Error Retries and 4935// Exponential Backoff (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.RetryAndBackoff) 4936// in the Amazon DynamoDB Developer Guide. 4937// 4938// * ErrCodeResourceNotFoundException "ResourceNotFoundException" 4939// The operation tried to access a nonexistent table or index. The resource 4940// might not be specified correctly, or its status might not be ACTIVE. 4941// 4942// * ErrCodeItemCollectionSizeLimitExceededException "ItemCollectionSizeLimitExceededException" 4943// An item collection is too large. This exception is only returned for tables 4944// that have one or more local secondary indexes. 4945// 4946// * ErrCodeTransactionConflictException "TransactionConflictException" 4947// Operation was rejected because there is an ongoing transaction for the item. 4948// 4949// * ErrCodeRequestLimitExceeded "RequestLimitExceeded" 4950// Throughput exceeds the current throughput limit for your account. Please 4951// contact AWS Support at AWS Support (https://aws.amazon.com/support) to request 4952// a limit increase. 4953// 4954// * ErrCodeInternalServerError "InternalServerError" 4955// An error occurred on the server side. 4956// 4957// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateItem 4958func (c *DynamoDB) UpdateItem(input *UpdateItemInput) (*UpdateItemOutput, error) { 4959 req, out := c.UpdateItemRequest(input) 4960 return out, req.Send() 4961} 4962 4963// UpdateItemWithContext is the same as UpdateItem with the addition of 4964// the ability to pass a context and additional request options. 4965// 4966// See UpdateItem for details on how to use this API operation. 4967// 4968// The context must be non-nil and will be used for request cancellation. If 4969// the context is nil a panic will occur. In the future the SDK may create 4970// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4971// for more information on using Contexts. 4972func (c *DynamoDB) UpdateItemWithContext(ctx aws.Context, input *UpdateItemInput, opts ...request.Option) (*UpdateItemOutput, error) { 4973 req, out := c.UpdateItemRequest(input) 4974 req.SetContext(ctx) 4975 req.ApplyOptions(opts...) 4976 return out, req.Send() 4977} 4978 4979const opUpdateTable = "UpdateTable" 4980 4981// UpdateTableRequest generates a "aws/request.Request" representing the 4982// client's request for the UpdateTable operation. The "output" return 4983// value will be populated with the request's response once the request completes 4984// successfully. 4985// 4986// Use "Send" method on the returned Request to send the API call to the service. 4987// the "output" return value is not valid until after Send returns without error. 4988// 4989// See UpdateTable for more information on using the UpdateTable 4990// API call, and error handling. 4991// 4992// This method is useful when you want to inject custom logic or configuration 4993// into the SDK's request lifecycle. Such as custom headers, or retry logic. 4994// 4995// 4996// // Example sending a request using the UpdateTableRequest method. 4997// req, resp := client.UpdateTableRequest(params) 4998// 4999// err := req.Send() 5000// if err == nil { // resp is now filled 5001// fmt.Println(resp) 5002// } 5003// 5004// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateTable 5005func (c *DynamoDB) UpdateTableRequest(input *UpdateTableInput) (req *request.Request, output *UpdateTableOutput) { 5006 op := &request.Operation{ 5007 Name: opUpdateTable, 5008 HTTPMethod: "POST", 5009 HTTPPath: "/", 5010 } 5011 5012 if input == nil { 5013 input = &UpdateTableInput{} 5014 } 5015 5016 output = &UpdateTableOutput{} 5017 req = c.newRequest(op, input, output) 5018 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 5019 de := discovererDescribeEndpoints{ 5020 Required: false, 5021 EndpointCache: c.endpointCache, 5022 Params: map[string]*string{ 5023 "op": aws.String(req.Operation.Name), 5024 }, 5025 Client: c, 5026 } 5027 5028 for k, v := range de.Params { 5029 if v == nil { 5030 delete(de.Params, k) 5031 } 5032 } 5033 5034 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 5035 Name: "crr.endpointdiscovery", 5036 Fn: de.Handler, 5037 }) 5038 } 5039 return 5040} 5041 5042// UpdateTable API operation for Amazon DynamoDB. 5043// 5044// Modifies the provisioned throughput settings, global secondary indexes, or 5045// DynamoDB Streams settings for a given table. 5046// 5047// You can only perform one of the following operations at once: 5048// 5049// * Modify the provisioned throughput settings of the table. 5050// 5051// * Enable or disable DynamoDB Streams on the table. 5052// 5053// * Remove a global secondary index from the table. 5054// 5055// * Create a new global secondary index on the table. After the index begins 5056// backfilling, you can use UpdateTable to perform other operations. 5057// 5058// UpdateTable is an asynchronous operation; while it is executing, the table 5059// status changes from ACTIVE to UPDATING. While it is UPDATING, you cannot 5060// issue another UpdateTable request. When the table returns to the ACTIVE state, 5061// the UpdateTable operation is complete. 5062// 5063// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 5064// with awserr.Error's Code and Message methods to get detailed information about 5065// the error. 5066// 5067// See the AWS API reference guide for Amazon DynamoDB's 5068// API operation UpdateTable for usage and error information. 5069// 5070// Returned Error Codes: 5071// * ErrCodeResourceInUseException "ResourceInUseException" 5072// The operation conflicts with the resource's availability. For example, you 5073// attempted to recreate an existing table, or tried to delete a table currently 5074// in the CREATING state. 5075// 5076// * ErrCodeResourceNotFoundException "ResourceNotFoundException" 5077// The operation tried to access a nonexistent table or index. The resource 5078// might not be specified correctly, or its status might not be ACTIVE. 5079// 5080// * ErrCodeLimitExceededException "LimitExceededException" 5081// There is no limit to the number of daily on-demand backups that can be taken. 5082// 5083// Up to 50 simultaneous table operations are allowed per account. These operations 5084// include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup, 5085// and RestoreTableToPointInTime. 5086// 5087// The only exception is when you are creating a table with one or more secondary 5088// indexes. You can have up to 25 such requests running at a time; however, 5089// if the table or index specifications are complex, DynamoDB might temporarily 5090// reduce the number of concurrent operations. 5091// 5092// There is a soft account limit of 256 tables. 5093// 5094// * ErrCodeInternalServerError "InternalServerError" 5095// An error occurred on the server side. 5096// 5097// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateTable 5098func (c *DynamoDB) UpdateTable(input *UpdateTableInput) (*UpdateTableOutput, error) { 5099 req, out := c.UpdateTableRequest(input) 5100 return out, req.Send() 5101} 5102 5103// UpdateTableWithContext is the same as UpdateTable with the addition of 5104// the ability to pass a context and additional request options. 5105// 5106// See UpdateTable for details on how to use this API operation. 5107// 5108// The context must be non-nil and will be used for request cancellation. If 5109// the context is nil a panic will occur. In the future the SDK may create 5110// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 5111// for more information on using Contexts. 5112func (c *DynamoDB) UpdateTableWithContext(ctx aws.Context, input *UpdateTableInput, opts ...request.Option) (*UpdateTableOutput, error) { 5113 req, out := c.UpdateTableRequest(input) 5114 req.SetContext(ctx) 5115 req.ApplyOptions(opts...) 5116 return out, req.Send() 5117} 5118 5119const opUpdateTimeToLive = "UpdateTimeToLive" 5120 5121// UpdateTimeToLiveRequest generates a "aws/request.Request" representing the 5122// client's request for the UpdateTimeToLive operation. The "output" return 5123// value will be populated with the request's response once the request completes 5124// successfully. 5125// 5126// Use "Send" method on the returned Request to send the API call to the service. 5127// the "output" return value is not valid until after Send returns without error. 5128// 5129// See UpdateTimeToLive for more information on using the UpdateTimeToLive 5130// API call, and error handling. 5131// 5132// This method is useful when you want to inject custom logic or configuration 5133// into the SDK's request lifecycle. Such as custom headers, or retry logic. 5134// 5135// 5136// // Example sending a request using the UpdateTimeToLiveRequest method. 5137// req, resp := client.UpdateTimeToLiveRequest(params) 5138// 5139// err := req.Send() 5140// if err == nil { // resp is now filled 5141// fmt.Println(resp) 5142// } 5143// 5144// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateTimeToLive 5145func (c *DynamoDB) UpdateTimeToLiveRequest(input *UpdateTimeToLiveInput) (req *request.Request, output *UpdateTimeToLiveOutput) { 5146 op := &request.Operation{ 5147 Name: opUpdateTimeToLive, 5148 HTTPMethod: "POST", 5149 HTTPPath: "/", 5150 } 5151 5152 if input == nil { 5153 input = &UpdateTimeToLiveInput{} 5154 } 5155 5156 output = &UpdateTimeToLiveOutput{} 5157 req = c.newRequest(op, input, output) 5158 if aws.BoolValue(req.Config.EnableEndpointDiscovery) { 5159 de := discovererDescribeEndpoints{ 5160 Required: false, 5161 EndpointCache: c.endpointCache, 5162 Params: map[string]*string{ 5163 "op": aws.String(req.Operation.Name), 5164 }, 5165 Client: c, 5166 } 5167 5168 for k, v := range de.Params { 5169 if v == nil { 5170 delete(de.Params, k) 5171 } 5172 } 5173 5174 req.Handlers.Build.PushFrontNamed(request.NamedHandler{ 5175 Name: "crr.endpointdiscovery", 5176 Fn: de.Handler, 5177 }) 5178 } 5179 return 5180} 5181 5182// UpdateTimeToLive API operation for Amazon DynamoDB. 5183// 5184// The UpdateTimeToLive method enables or disables Time to Live (TTL) for the 5185// specified table. A successful UpdateTimeToLive call returns the current TimeToLiveSpecification. 5186// It can take up to one hour for the change to fully process. Any additional 5187// UpdateTimeToLive calls for the same table during this one hour duration result 5188// in a ValidationException. 5189// 5190// TTL compares the current time in epoch time format to the time stored in 5191// the TTL attribute of an item. If the epoch time value stored in the attribute 5192// is less than the current time, the item is marked as expired and subsequently 5193// deleted. 5194// 5195// The epoch time format is the number of seconds elapsed since 12:00:00 AM 5196// January 1, 1970 UTC. 5197// 5198// DynamoDB deletes expired items on a best-effort basis to ensure availability 5199// of throughput for other data operations. 5200// 5201// DynamoDB typically deletes expired items within two days of expiration. The 5202// exact duration within which an item gets deleted after expiration is specific 5203// to the nature of the workload. Items that have expired and not been deleted 5204// will still show up in reads, queries, and scans. 5205// 5206// As items are deleted, they are removed from any local secondary index and 5207// global secondary index immediately in the same eventually consistent way 5208// as a standard delete operation. 5209// 5210// For more information, see Time To Live (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/TTL.html) 5211// in the Amazon DynamoDB Developer Guide. 5212// 5213// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 5214// with awserr.Error's Code and Message methods to get detailed information about 5215// the error. 5216// 5217// See the AWS API reference guide for Amazon DynamoDB's 5218// API operation UpdateTimeToLive for usage and error information. 5219// 5220// Returned Error Codes: 5221// * ErrCodeResourceInUseException "ResourceInUseException" 5222// The operation conflicts with the resource's availability. For example, you 5223// attempted to recreate an existing table, or tried to delete a table currently 5224// in the CREATING state. 5225// 5226// * ErrCodeResourceNotFoundException "ResourceNotFoundException" 5227// The operation tried to access a nonexistent table or index. The resource 5228// might not be specified correctly, or its status might not be ACTIVE. 5229// 5230// * ErrCodeLimitExceededException "LimitExceededException" 5231// There is no limit to the number of daily on-demand backups that can be taken. 5232// 5233// Up to 50 simultaneous table operations are allowed per account. These operations 5234// include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup, 5235// and RestoreTableToPointInTime. 5236// 5237// The only exception is when you are creating a table with one or more secondary 5238// indexes. You can have up to 25 such requests running at a time; however, 5239// if the table or index specifications are complex, DynamoDB might temporarily 5240// reduce the number of concurrent operations. 5241// 5242// There is a soft account limit of 256 tables. 5243// 5244// * ErrCodeInternalServerError "InternalServerError" 5245// An error occurred on the server side. 5246// 5247// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateTimeToLive 5248func (c *DynamoDB) UpdateTimeToLive(input *UpdateTimeToLiveInput) (*UpdateTimeToLiveOutput, error) { 5249 req, out := c.UpdateTimeToLiveRequest(input) 5250 return out, req.Send() 5251} 5252 5253// UpdateTimeToLiveWithContext is the same as UpdateTimeToLive with the addition of 5254// the ability to pass a context and additional request options. 5255// 5256// See UpdateTimeToLive for details on how to use this API operation. 5257// 5258// The context must be non-nil and will be used for request cancellation. If 5259// the context is nil a panic will occur. In the future the SDK may create 5260// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 5261// for more information on using Contexts. 5262func (c *DynamoDB) UpdateTimeToLiveWithContext(ctx aws.Context, input *UpdateTimeToLiveInput, opts ...request.Option) (*UpdateTimeToLiveOutput, error) { 5263 req, out := c.UpdateTimeToLiveRequest(input) 5264 req.SetContext(ctx) 5265 req.ApplyOptions(opts...) 5266 return out, req.Send() 5267} 5268 5269// Represents an attribute for describing the key schema for the table and indexes. 5270type AttributeDefinition struct { 5271 _ struct{} `type:"structure"` 5272 5273 // A name for the attribute. 5274 // 5275 // AttributeName is a required field 5276 AttributeName *string `min:"1" type:"string" required:"true"` 5277 5278 // The data type for the attribute, where: 5279 // 5280 // * S - the attribute is of type String 5281 // 5282 // * N - the attribute is of type Number 5283 // 5284 // * B - the attribute is of type Binary 5285 // 5286 // AttributeType is a required field 5287 AttributeType *string `type:"string" required:"true" enum:"ScalarAttributeType"` 5288} 5289 5290// String returns the string representation 5291func (s AttributeDefinition) String() string { 5292 return awsutil.Prettify(s) 5293} 5294 5295// GoString returns the string representation 5296func (s AttributeDefinition) GoString() string { 5297 return s.String() 5298} 5299 5300// Validate inspects the fields of the type to determine if they are valid. 5301func (s *AttributeDefinition) Validate() error { 5302 invalidParams := request.ErrInvalidParams{Context: "AttributeDefinition"} 5303 if s.AttributeName == nil { 5304 invalidParams.Add(request.NewErrParamRequired("AttributeName")) 5305 } 5306 if s.AttributeName != nil && len(*s.AttributeName) < 1 { 5307 invalidParams.Add(request.NewErrParamMinLen("AttributeName", 1)) 5308 } 5309 if s.AttributeType == nil { 5310 invalidParams.Add(request.NewErrParamRequired("AttributeType")) 5311 } 5312 5313 if invalidParams.Len() > 0 { 5314 return invalidParams 5315 } 5316 return nil 5317} 5318 5319// SetAttributeName sets the AttributeName field's value. 5320func (s *AttributeDefinition) SetAttributeName(v string) *AttributeDefinition { 5321 s.AttributeName = &v 5322 return s 5323} 5324 5325// SetAttributeType sets the AttributeType field's value. 5326func (s *AttributeDefinition) SetAttributeType(v string) *AttributeDefinition { 5327 s.AttributeType = &v 5328 return s 5329} 5330 5331// Represents the data for an attribute. 5332// 5333// Each attribute value is described as a name-value pair. The name is the data 5334// type, and the value is the data itself. 5335// 5336// For more information, see Data Types (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes) 5337// in the Amazon DynamoDB Developer Guide. 5338type AttributeValue struct { 5339 _ struct{} `type:"structure"` 5340 5341 // An attribute of type Binary. For example: 5342 // 5343 // "B": "dGhpcyB0ZXh0IGlzIGJhc2U2NC1lbmNvZGVk" 5344 // 5345 // B is automatically base64 encoded/decoded by the SDK. 5346 B []byte `type:"blob"` 5347 5348 // An attribute of type Boolean. For example: 5349 // 5350 // "BOOL": true 5351 BOOL *bool `type:"boolean"` 5352 5353 // An attribute of type Binary Set. For example: 5354 // 5355 // "BS": ["U3Vubnk=", "UmFpbnk=", "U25vd3k="] 5356 BS [][]byte `type:"list"` 5357 5358 // An attribute of type List. For example: 5359 // 5360 // "L": [ {"S": "Cookies"} , {"S": "Coffee"}, {"N", "3.14159"}] 5361 L []*AttributeValue `type:"list"` 5362 5363 // An attribute of type Map. For example: 5364 // 5365 // "M": {"Name": {"S": "Joe"}, "Age": {"N": "35"}} 5366 M map[string]*AttributeValue `type:"map"` 5367 5368 // An attribute of type Number. For example: 5369 // 5370 // "N": "123.45" 5371 // 5372 // Numbers are sent across the network to DynamoDB as strings, to maximize compatibility 5373 // across languages and libraries. However, DynamoDB treats them as number type 5374 // attributes for mathematical operations. 5375 N *string `type:"string"` 5376 5377 // An attribute of type Number Set. For example: 5378 // 5379 // "NS": ["42.2", "-19", "7.5", "3.14"] 5380 // 5381 // Numbers are sent across the network to DynamoDB as strings, to maximize compatibility 5382 // across languages and libraries. However, DynamoDB treats them as number type 5383 // attributes for mathematical operations. 5384 NS []*string `type:"list"` 5385 5386 // An attribute of type Null. For example: 5387 // 5388 // "NULL": true 5389 NULL *bool `type:"boolean"` 5390 5391 // An attribute of type String. For example: 5392 // 5393 // "S": "Hello" 5394 S *string `type:"string"` 5395 5396 // An attribute of type String Set. For example: 5397 // 5398 // "SS": ["Giraffe", "Hippo" ,"Zebra"] 5399 SS []*string `type:"list"` 5400} 5401 5402// String returns the string representation 5403func (s AttributeValue) String() string { 5404 return awsutil.Prettify(s) 5405} 5406 5407// GoString returns the string representation 5408func (s AttributeValue) GoString() string { 5409 return s.String() 5410} 5411 5412// SetB sets the B field's value. 5413func (s *AttributeValue) SetB(v []byte) *AttributeValue { 5414 s.B = v 5415 return s 5416} 5417 5418// SetBOOL sets the BOOL field's value. 5419func (s *AttributeValue) SetBOOL(v bool) *AttributeValue { 5420 s.BOOL = &v 5421 return s 5422} 5423 5424// SetBS sets the BS field's value. 5425func (s *AttributeValue) SetBS(v [][]byte) *AttributeValue { 5426 s.BS = v 5427 return s 5428} 5429 5430// SetL sets the L field's value. 5431func (s *AttributeValue) SetL(v []*AttributeValue) *AttributeValue { 5432 s.L = v 5433 return s 5434} 5435 5436// SetM sets the M field's value. 5437func (s *AttributeValue) SetM(v map[string]*AttributeValue) *AttributeValue { 5438 s.M = v 5439 return s 5440} 5441 5442// SetN sets the N field's value. 5443func (s *AttributeValue) SetN(v string) *AttributeValue { 5444 s.N = &v 5445 return s 5446} 5447 5448// SetNS sets the NS field's value. 5449func (s *AttributeValue) SetNS(v []*string) *AttributeValue { 5450 s.NS = v 5451 return s 5452} 5453 5454// SetNULL sets the NULL field's value. 5455func (s *AttributeValue) SetNULL(v bool) *AttributeValue { 5456 s.NULL = &v 5457 return s 5458} 5459 5460// SetS sets the S field's value. 5461func (s *AttributeValue) SetS(v string) *AttributeValue { 5462 s.S = &v 5463 return s 5464} 5465 5466// SetSS sets the SS field's value. 5467func (s *AttributeValue) SetSS(v []*string) *AttributeValue { 5468 s.SS = v 5469 return s 5470} 5471 5472// For the UpdateItem operation, represents the attributes to be modified, the 5473// action to perform on each, and the new value for each. 5474// 5475// You cannot use UpdateItem to update any primary key attributes. Instead, 5476// you will need to delete the item, and then use PutItem to create a new item 5477// with new attributes. 5478// 5479// Attribute values cannot be null; string and binary type attributes must have 5480// lengths greater than zero; and set type attributes must not be empty. Requests 5481// with empty values will be rejected with a ValidationException exception. 5482type AttributeValueUpdate struct { 5483 _ struct{} `type:"structure"` 5484 5485 // Specifies how to perform the update. Valid values are PUT (default), DELETE, 5486 // and ADD. The behavior depends on whether the specified primary key already 5487 // exists in the table. 5488 // 5489 // If an item with the specified Key is found in the table: 5490 // 5491 // * PUT - Adds the specified attribute to the item. If the attribute already 5492 // exists, it is replaced by the new value. 5493 // 5494 // * DELETE - If no value is specified, the attribute and its value are removed 5495 // from the item. The data type of the specified value must match the existing 5496 // value's data type. If a set of values is specified, then those values 5497 // are subtracted from the old set. For example, if the attribute value was 5498 // the set [a,b,c] and the DELETE action specified [a,c], then the final 5499 // attribute value would be [b]. Specifying an empty set is an error. 5500 // 5501 // * ADD - If the attribute does not already exist, then the attribute and 5502 // its values are added to the item. If the attribute does exist, then the 5503 // behavior of ADD depends on the data type of the attribute: If the existing 5504 // attribute is a number, and if Value is also a number, then the Value is 5505 // mathematically added to the existing attribute. If Value is a negative 5506 // number, then it is subtracted from the existing attribute. If you use 5507 // ADD to increment or decrement a number value for an item that doesn't 5508 // exist before the update, DynamoDB uses 0 as the initial value. In addition, 5509 // if you use ADD to update an existing item, and intend to increment or 5510 // decrement an attribute value which does not yet exist, DynamoDB uses 0 5511 // as the initial value. For example, suppose that the item you want to update 5512 // does not yet have an attribute named itemcount, but you decide to ADD 5513 // the number 3 to this attribute anyway, even though it currently does not 5514 // exist. DynamoDB will create the itemcount attribute, set its initial value 5515 // to 0, and finally add 3 to it. The result will be a new itemcount attribute 5516 // in the item, with a value of 3. If the existing data type is a set, and 5517 // if the Value is also a set, then the Value is added to the existing set. 5518 // (This is a set operation, not mathematical addition.) For example, if 5519 // the attribute value was the set [1,2], and the ADD action specified [3], 5520 // then the final attribute value would be [1,2,3]. An error occurs if an 5521 // Add action is specified for a set attribute and the attribute type specified 5522 // does not match the existing set type. Both sets must have the same primitive 5523 // data type. For example, if the existing data type is a set of strings, 5524 // the Value must also be a set of strings. The same holds true for number 5525 // sets and binary sets. This action is only valid for an existing attribute 5526 // whose data type is number or is a set. Do not use ADD for any other data 5527 // types. 5528 // 5529 // If no item with the specified Key is found: 5530 // 5531 // * PUT - DynamoDB creates a new item with the specified primary key, and 5532 // then adds the attribute. 5533 // 5534 // * DELETE - Nothing happens; there is no attribute to delete. 5535 // 5536 // * ADD - DynamoDB creates an item with the supplied primary key and number 5537 // (or set of numbers) for the attribute value. The only data types allowed 5538 // are number and number set; no other data types can be specified. 5539 Action *string `type:"string" enum:"AttributeAction"` 5540 5541 // Represents the data for an attribute. 5542 // 5543 // Each attribute value is described as a name-value pair. The name is the data 5544 // type, and the value is the data itself. 5545 // 5546 // For more information, see Data Types (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes) 5547 // in the Amazon DynamoDB Developer Guide. 5548 Value *AttributeValue `type:"structure"` 5549} 5550 5551// String returns the string representation 5552func (s AttributeValueUpdate) String() string { 5553 return awsutil.Prettify(s) 5554} 5555 5556// GoString returns the string representation 5557func (s AttributeValueUpdate) GoString() string { 5558 return s.String() 5559} 5560 5561// SetAction sets the Action field's value. 5562func (s *AttributeValueUpdate) SetAction(v string) *AttributeValueUpdate { 5563 s.Action = &v 5564 return s 5565} 5566 5567// SetValue sets the Value field's value. 5568func (s *AttributeValueUpdate) SetValue(v *AttributeValue) *AttributeValueUpdate { 5569 s.Value = v 5570 return s 5571} 5572 5573// Represents the properties of the scaling policy. 5574type AutoScalingPolicyDescription struct { 5575 _ struct{} `type:"structure"` 5576 5577 // The name of the scaling policy. 5578 PolicyName *string `min:"1" type:"string"` 5579 5580 // Represents a target tracking scaling policy configuration. 5581 TargetTrackingScalingPolicyConfiguration *AutoScalingTargetTrackingScalingPolicyConfigurationDescription `type:"structure"` 5582} 5583 5584// String returns the string representation 5585func (s AutoScalingPolicyDescription) String() string { 5586 return awsutil.Prettify(s) 5587} 5588 5589// GoString returns the string representation 5590func (s AutoScalingPolicyDescription) GoString() string { 5591 return s.String() 5592} 5593 5594// SetPolicyName sets the PolicyName field's value. 5595func (s *AutoScalingPolicyDescription) SetPolicyName(v string) *AutoScalingPolicyDescription { 5596 s.PolicyName = &v 5597 return s 5598} 5599 5600// SetTargetTrackingScalingPolicyConfiguration sets the TargetTrackingScalingPolicyConfiguration field's value. 5601func (s *AutoScalingPolicyDescription) SetTargetTrackingScalingPolicyConfiguration(v *AutoScalingTargetTrackingScalingPolicyConfigurationDescription) *AutoScalingPolicyDescription { 5602 s.TargetTrackingScalingPolicyConfiguration = v 5603 return s 5604} 5605 5606// Represents the autoscaling policy to be modified. 5607type AutoScalingPolicyUpdate struct { 5608 _ struct{} `type:"structure"` 5609 5610 // The name of the scaling policy. 5611 PolicyName *string `min:"1" type:"string"` 5612 5613 // Represents a target tracking scaling policy configuration. 5614 // 5615 // TargetTrackingScalingPolicyConfiguration is a required field 5616 TargetTrackingScalingPolicyConfiguration *AutoScalingTargetTrackingScalingPolicyConfigurationUpdate `type:"structure" required:"true"` 5617} 5618 5619// String returns the string representation 5620func (s AutoScalingPolicyUpdate) String() string { 5621 return awsutil.Prettify(s) 5622} 5623 5624// GoString returns the string representation 5625func (s AutoScalingPolicyUpdate) GoString() string { 5626 return s.String() 5627} 5628 5629// Validate inspects the fields of the type to determine if they are valid. 5630func (s *AutoScalingPolicyUpdate) Validate() error { 5631 invalidParams := request.ErrInvalidParams{Context: "AutoScalingPolicyUpdate"} 5632 if s.PolicyName != nil && len(*s.PolicyName) < 1 { 5633 invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1)) 5634 } 5635 if s.TargetTrackingScalingPolicyConfiguration == nil { 5636 invalidParams.Add(request.NewErrParamRequired("TargetTrackingScalingPolicyConfiguration")) 5637 } 5638 if s.TargetTrackingScalingPolicyConfiguration != nil { 5639 if err := s.TargetTrackingScalingPolicyConfiguration.Validate(); err != nil { 5640 invalidParams.AddNested("TargetTrackingScalingPolicyConfiguration", err.(request.ErrInvalidParams)) 5641 } 5642 } 5643 5644 if invalidParams.Len() > 0 { 5645 return invalidParams 5646 } 5647 return nil 5648} 5649 5650// SetPolicyName sets the PolicyName field's value. 5651func (s *AutoScalingPolicyUpdate) SetPolicyName(v string) *AutoScalingPolicyUpdate { 5652 s.PolicyName = &v 5653 return s 5654} 5655 5656// SetTargetTrackingScalingPolicyConfiguration sets the TargetTrackingScalingPolicyConfiguration field's value. 5657func (s *AutoScalingPolicyUpdate) SetTargetTrackingScalingPolicyConfiguration(v *AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) *AutoScalingPolicyUpdate { 5658 s.TargetTrackingScalingPolicyConfiguration = v 5659 return s 5660} 5661 5662// Represents the autoscaling settings for a global table or global secondary 5663// index. 5664type AutoScalingSettingsDescription struct { 5665 _ struct{} `type:"structure"` 5666 5667 // Disabled autoscaling for this global table or global secondary index. 5668 AutoScalingDisabled *bool `type:"boolean"` 5669 5670 // Role ARN used for configuring autoScaling policy. 5671 AutoScalingRoleArn *string `type:"string"` 5672 5673 // The maximum capacity units that a global table or global secondary index 5674 // should be scaled up to. 5675 MaximumUnits *int64 `min:"1" type:"long"` 5676 5677 // The minimum capacity units that a global table or global secondary index 5678 // should be scaled down to. 5679 MinimumUnits *int64 `min:"1" type:"long"` 5680 5681 // Information about the scaling policies. 5682 ScalingPolicies []*AutoScalingPolicyDescription `type:"list"` 5683} 5684 5685// String returns the string representation 5686func (s AutoScalingSettingsDescription) String() string { 5687 return awsutil.Prettify(s) 5688} 5689 5690// GoString returns the string representation 5691func (s AutoScalingSettingsDescription) GoString() string { 5692 return s.String() 5693} 5694 5695// SetAutoScalingDisabled sets the AutoScalingDisabled field's value. 5696func (s *AutoScalingSettingsDescription) SetAutoScalingDisabled(v bool) *AutoScalingSettingsDescription { 5697 s.AutoScalingDisabled = &v 5698 return s 5699} 5700 5701// SetAutoScalingRoleArn sets the AutoScalingRoleArn field's value. 5702func (s *AutoScalingSettingsDescription) SetAutoScalingRoleArn(v string) *AutoScalingSettingsDescription { 5703 s.AutoScalingRoleArn = &v 5704 return s 5705} 5706 5707// SetMaximumUnits sets the MaximumUnits field's value. 5708func (s *AutoScalingSettingsDescription) SetMaximumUnits(v int64) *AutoScalingSettingsDescription { 5709 s.MaximumUnits = &v 5710 return s 5711} 5712 5713// SetMinimumUnits sets the MinimumUnits field's value. 5714func (s *AutoScalingSettingsDescription) SetMinimumUnits(v int64) *AutoScalingSettingsDescription { 5715 s.MinimumUnits = &v 5716 return s 5717} 5718 5719// SetScalingPolicies sets the ScalingPolicies field's value. 5720func (s *AutoScalingSettingsDescription) SetScalingPolicies(v []*AutoScalingPolicyDescription) *AutoScalingSettingsDescription { 5721 s.ScalingPolicies = v 5722 return s 5723} 5724 5725// Represents the autoscaling settings to be modified for a global table or 5726// global secondary index. 5727type AutoScalingSettingsUpdate struct { 5728 _ struct{} `type:"structure"` 5729 5730 // Disabled autoscaling for this global table or global secondary index. 5731 AutoScalingDisabled *bool `type:"boolean"` 5732 5733 // Role ARN used for configuring autoscaling policy. 5734 AutoScalingRoleArn *string `min:"1" type:"string"` 5735 5736 // The maximum capacity units that a global table or global secondary index 5737 // should be scaled up to. 5738 MaximumUnits *int64 `min:"1" type:"long"` 5739 5740 // The minimum capacity units that a global table or global secondary index 5741 // should be scaled down to. 5742 MinimumUnits *int64 `min:"1" type:"long"` 5743 5744 // The scaling policy to apply for scaling target global table or global secondary 5745 // index capacity units. 5746 ScalingPolicyUpdate *AutoScalingPolicyUpdate `type:"structure"` 5747} 5748 5749// String returns the string representation 5750func (s AutoScalingSettingsUpdate) String() string { 5751 return awsutil.Prettify(s) 5752} 5753 5754// GoString returns the string representation 5755func (s AutoScalingSettingsUpdate) GoString() string { 5756 return s.String() 5757} 5758 5759// Validate inspects the fields of the type to determine if they are valid. 5760func (s *AutoScalingSettingsUpdate) Validate() error { 5761 invalidParams := request.ErrInvalidParams{Context: "AutoScalingSettingsUpdate"} 5762 if s.AutoScalingRoleArn != nil && len(*s.AutoScalingRoleArn) < 1 { 5763 invalidParams.Add(request.NewErrParamMinLen("AutoScalingRoleArn", 1)) 5764 } 5765 if s.MaximumUnits != nil && *s.MaximumUnits < 1 { 5766 invalidParams.Add(request.NewErrParamMinValue("MaximumUnits", 1)) 5767 } 5768 if s.MinimumUnits != nil && *s.MinimumUnits < 1 { 5769 invalidParams.Add(request.NewErrParamMinValue("MinimumUnits", 1)) 5770 } 5771 if s.ScalingPolicyUpdate != nil { 5772 if err := s.ScalingPolicyUpdate.Validate(); err != nil { 5773 invalidParams.AddNested("ScalingPolicyUpdate", err.(request.ErrInvalidParams)) 5774 } 5775 } 5776 5777 if invalidParams.Len() > 0 { 5778 return invalidParams 5779 } 5780 return nil 5781} 5782 5783// SetAutoScalingDisabled sets the AutoScalingDisabled field's value. 5784func (s *AutoScalingSettingsUpdate) SetAutoScalingDisabled(v bool) *AutoScalingSettingsUpdate { 5785 s.AutoScalingDisabled = &v 5786 return s 5787} 5788 5789// SetAutoScalingRoleArn sets the AutoScalingRoleArn field's value. 5790func (s *AutoScalingSettingsUpdate) SetAutoScalingRoleArn(v string) *AutoScalingSettingsUpdate { 5791 s.AutoScalingRoleArn = &v 5792 return s 5793} 5794 5795// SetMaximumUnits sets the MaximumUnits field's value. 5796func (s *AutoScalingSettingsUpdate) SetMaximumUnits(v int64) *AutoScalingSettingsUpdate { 5797 s.MaximumUnits = &v 5798 return s 5799} 5800 5801// SetMinimumUnits sets the MinimumUnits field's value. 5802func (s *AutoScalingSettingsUpdate) SetMinimumUnits(v int64) *AutoScalingSettingsUpdate { 5803 s.MinimumUnits = &v 5804 return s 5805} 5806 5807// SetScalingPolicyUpdate sets the ScalingPolicyUpdate field's value. 5808func (s *AutoScalingSettingsUpdate) SetScalingPolicyUpdate(v *AutoScalingPolicyUpdate) *AutoScalingSettingsUpdate { 5809 s.ScalingPolicyUpdate = v 5810 return s 5811} 5812 5813// Represents the properties of a target tracking scaling policy. 5814type AutoScalingTargetTrackingScalingPolicyConfigurationDescription struct { 5815 _ struct{} `type:"structure"` 5816 5817 // Indicates whether scale in by the target tracking policy is disabled. If 5818 // the value is true, scale in is disabled and the target tracking policy won't 5819 // remove capacity from the scalable resource. Otherwise, scale in is enabled 5820 // and the target tracking policy can remove capacity from the scalable resource. 5821 // The default value is false. 5822 DisableScaleIn *bool `type:"boolean"` 5823 5824 // The amount of time, in seconds, after a scale in activity completes before 5825 // another scale in activity can start. The cooldown period is used to block 5826 // subsequent scale in requests until it has expired. You should scale in conservatively 5827 // to protect your application's availability. However, if another alarm triggers 5828 // a scale out policy during the cooldown period after a scale-in, application 5829 // autoscaling scales out your scalable target immediately. 5830 ScaleInCooldown *int64 `type:"integer"` 5831 5832 // The amount of time, in seconds, after a scale out activity completes before 5833 // another scale out activity can start. While the cooldown period is in effect, 5834 // the capacity that has been added by the previous scale out event that initiated 5835 // the cooldown is calculated as part of the desired capacity for the next scale 5836 // out. You should continuously (but not excessively) scale out. 5837 ScaleOutCooldown *int64 `type:"integer"` 5838 5839 // The target value for the metric. The range is 8.515920e-109 to 1.174271e+108 5840 // (Base 10) or 2e-360 to 2e360 (Base 2). 5841 // 5842 // TargetValue is a required field 5843 TargetValue *float64 `type:"double" required:"true"` 5844} 5845 5846// String returns the string representation 5847func (s AutoScalingTargetTrackingScalingPolicyConfigurationDescription) String() string { 5848 return awsutil.Prettify(s) 5849} 5850 5851// GoString returns the string representation 5852func (s AutoScalingTargetTrackingScalingPolicyConfigurationDescription) GoString() string { 5853 return s.String() 5854} 5855 5856// SetDisableScaleIn sets the DisableScaleIn field's value. 5857func (s *AutoScalingTargetTrackingScalingPolicyConfigurationDescription) SetDisableScaleIn(v bool) *AutoScalingTargetTrackingScalingPolicyConfigurationDescription { 5858 s.DisableScaleIn = &v 5859 return s 5860} 5861 5862// SetScaleInCooldown sets the ScaleInCooldown field's value. 5863func (s *AutoScalingTargetTrackingScalingPolicyConfigurationDescription) SetScaleInCooldown(v int64) *AutoScalingTargetTrackingScalingPolicyConfigurationDescription { 5864 s.ScaleInCooldown = &v 5865 return s 5866} 5867 5868// SetScaleOutCooldown sets the ScaleOutCooldown field's value. 5869func (s *AutoScalingTargetTrackingScalingPolicyConfigurationDescription) SetScaleOutCooldown(v int64) *AutoScalingTargetTrackingScalingPolicyConfigurationDescription { 5870 s.ScaleOutCooldown = &v 5871 return s 5872} 5873 5874// SetTargetValue sets the TargetValue field's value. 5875func (s *AutoScalingTargetTrackingScalingPolicyConfigurationDescription) SetTargetValue(v float64) *AutoScalingTargetTrackingScalingPolicyConfigurationDescription { 5876 s.TargetValue = &v 5877 return s 5878} 5879 5880// Represents the settings of a target tracking scaling policy that will be 5881// modified. 5882type AutoScalingTargetTrackingScalingPolicyConfigurationUpdate struct { 5883 _ struct{} `type:"structure"` 5884 5885 // Indicates whether scale in by the target tracking policy is disabled. If 5886 // the value is true, scale in is disabled and the target tracking policy won't 5887 // remove capacity from the scalable resource. Otherwise, scale in is enabled 5888 // and the target tracking policy can remove capacity from the scalable resource. 5889 // The default value is false. 5890 DisableScaleIn *bool `type:"boolean"` 5891 5892 // The amount of time, in seconds, after a scale in activity completes before 5893 // another scale in activity can start. The cooldown period is used to block 5894 // subsequent scale in requests until it has expired. You should scale in conservatively 5895 // to protect your application's availability. However, if another alarm triggers 5896 // a scale out policy during the cooldown period after a scale-in, application 5897 // autoscaling scales out your scalable target immediately. 5898 ScaleInCooldown *int64 `type:"integer"` 5899 5900 // The amount of time, in seconds, after a scale out activity completes before 5901 // another scale out activity can start. While the cooldown period is in effect, 5902 // the capacity that has been added by the previous scale out event that initiated 5903 // the cooldown is calculated as part of the desired capacity for the next scale 5904 // out. You should continuously (but not excessively) scale out. 5905 ScaleOutCooldown *int64 `type:"integer"` 5906 5907 // The target value for the metric. The range is 8.515920e-109 to 1.174271e+108 5908 // (Base 10) or 2e-360 to 2e360 (Base 2). 5909 // 5910 // TargetValue is a required field 5911 TargetValue *float64 `type:"double" required:"true"` 5912} 5913 5914// String returns the string representation 5915func (s AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) String() string { 5916 return awsutil.Prettify(s) 5917} 5918 5919// GoString returns the string representation 5920func (s AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) GoString() string { 5921 return s.String() 5922} 5923 5924// Validate inspects the fields of the type to determine if they are valid. 5925func (s *AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) Validate() error { 5926 invalidParams := request.ErrInvalidParams{Context: "AutoScalingTargetTrackingScalingPolicyConfigurationUpdate"} 5927 if s.TargetValue == nil { 5928 invalidParams.Add(request.NewErrParamRequired("TargetValue")) 5929 } 5930 5931 if invalidParams.Len() > 0 { 5932 return invalidParams 5933 } 5934 return nil 5935} 5936 5937// SetDisableScaleIn sets the DisableScaleIn field's value. 5938func (s *AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) SetDisableScaleIn(v bool) *AutoScalingTargetTrackingScalingPolicyConfigurationUpdate { 5939 s.DisableScaleIn = &v 5940 return s 5941} 5942 5943// SetScaleInCooldown sets the ScaleInCooldown field's value. 5944func (s *AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) SetScaleInCooldown(v int64) *AutoScalingTargetTrackingScalingPolicyConfigurationUpdate { 5945 s.ScaleInCooldown = &v 5946 return s 5947} 5948 5949// SetScaleOutCooldown sets the ScaleOutCooldown field's value. 5950func (s *AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) SetScaleOutCooldown(v int64) *AutoScalingTargetTrackingScalingPolicyConfigurationUpdate { 5951 s.ScaleOutCooldown = &v 5952 return s 5953} 5954 5955// SetTargetValue sets the TargetValue field's value. 5956func (s *AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) SetTargetValue(v float64) *AutoScalingTargetTrackingScalingPolicyConfigurationUpdate { 5957 s.TargetValue = &v 5958 return s 5959} 5960 5961// Contains the description of the backup created for the table. 5962type BackupDescription struct { 5963 _ struct{} `type:"structure"` 5964 5965 // Contains the details of the backup created for the table. 5966 BackupDetails *BackupDetails `type:"structure"` 5967 5968 // Contains the details of the table when the backup was created. 5969 SourceTableDetails *SourceTableDetails `type:"structure"` 5970 5971 // Contains the details of the features enabled on the table when the backup 5972 // was created. For example, LSIs, GSIs, streams, TTL. 5973 SourceTableFeatureDetails *SourceTableFeatureDetails `type:"structure"` 5974} 5975 5976// String returns the string representation 5977func (s BackupDescription) String() string { 5978 return awsutil.Prettify(s) 5979} 5980 5981// GoString returns the string representation 5982func (s BackupDescription) GoString() string { 5983 return s.String() 5984} 5985 5986// SetBackupDetails sets the BackupDetails field's value. 5987func (s *BackupDescription) SetBackupDetails(v *BackupDetails) *BackupDescription { 5988 s.BackupDetails = v 5989 return s 5990} 5991 5992// SetSourceTableDetails sets the SourceTableDetails field's value. 5993func (s *BackupDescription) SetSourceTableDetails(v *SourceTableDetails) *BackupDescription { 5994 s.SourceTableDetails = v 5995 return s 5996} 5997 5998// SetSourceTableFeatureDetails sets the SourceTableFeatureDetails field's value. 5999func (s *BackupDescription) SetSourceTableFeatureDetails(v *SourceTableFeatureDetails) *BackupDescription { 6000 s.SourceTableFeatureDetails = v 6001 return s 6002} 6003 6004// Contains the details of the backup created for the table. 6005type BackupDetails struct { 6006 _ struct{} `type:"structure"` 6007 6008 // ARN associated with the backup. 6009 // 6010 // BackupArn is a required field 6011 BackupArn *string `min:"37" type:"string" required:"true"` 6012 6013 // Time at which the backup was created. This is the request time of the backup. 6014 // 6015 // BackupCreationDateTime is a required field 6016 BackupCreationDateTime *time.Time `type:"timestamp" required:"true"` 6017 6018 // Time at which the automatic on-demand backup created by DynamoDB will expire. 6019 // This SYSTEM on-demand backup expires automatically 35 days after its creation. 6020 BackupExpiryDateTime *time.Time `type:"timestamp"` 6021 6022 // Name of the requested backup. 6023 // 6024 // BackupName is a required field 6025 BackupName *string `min:"3" type:"string" required:"true"` 6026 6027 // Size of the backup in bytes. 6028 BackupSizeBytes *int64 `type:"long"` 6029 6030 // Backup can be in one of the following states: CREATING, ACTIVE, DELETED. 6031 // 6032 // BackupStatus is a required field 6033 BackupStatus *string `type:"string" required:"true" enum:"BackupStatus"` 6034 6035 // BackupType: 6036 // 6037 // * USER - You create and manage these using the on-demand backup feature. 6038 // 6039 // * SYSTEM - If you delete a table with point-in-time recovery enabled, 6040 // a SYSTEM backup is automatically created and is retained for 35 days (at 6041 // no additional cost). System backups allow you to restore the deleted table 6042 // to the state it was in just before the point of deletion. 6043 // 6044 // * AWS_BACKUP - On-demand backup created by you from AWS Backup service. 6045 // 6046 // BackupType is a required field 6047 BackupType *string `type:"string" required:"true" enum:"BackupType"` 6048} 6049 6050// String returns the string representation 6051func (s BackupDetails) String() string { 6052 return awsutil.Prettify(s) 6053} 6054 6055// GoString returns the string representation 6056func (s BackupDetails) GoString() string { 6057 return s.String() 6058} 6059 6060// SetBackupArn sets the BackupArn field's value. 6061func (s *BackupDetails) SetBackupArn(v string) *BackupDetails { 6062 s.BackupArn = &v 6063 return s 6064} 6065 6066// SetBackupCreationDateTime sets the BackupCreationDateTime field's value. 6067func (s *BackupDetails) SetBackupCreationDateTime(v time.Time) *BackupDetails { 6068 s.BackupCreationDateTime = &v 6069 return s 6070} 6071 6072// SetBackupExpiryDateTime sets the BackupExpiryDateTime field's value. 6073func (s *BackupDetails) SetBackupExpiryDateTime(v time.Time) *BackupDetails { 6074 s.BackupExpiryDateTime = &v 6075 return s 6076} 6077 6078// SetBackupName sets the BackupName field's value. 6079func (s *BackupDetails) SetBackupName(v string) *BackupDetails { 6080 s.BackupName = &v 6081 return s 6082} 6083 6084// SetBackupSizeBytes sets the BackupSizeBytes field's value. 6085func (s *BackupDetails) SetBackupSizeBytes(v int64) *BackupDetails { 6086 s.BackupSizeBytes = &v 6087 return s 6088} 6089 6090// SetBackupStatus sets the BackupStatus field's value. 6091func (s *BackupDetails) SetBackupStatus(v string) *BackupDetails { 6092 s.BackupStatus = &v 6093 return s 6094} 6095 6096// SetBackupType sets the BackupType field's value. 6097func (s *BackupDetails) SetBackupType(v string) *BackupDetails { 6098 s.BackupType = &v 6099 return s 6100} 6101 6102// Contains details for the backup. 6103type BackupSummary struct { 6104 _ struct{} `type:"structure"` 6105 6106 // ARN associated with the backup. 6107 BackupArn *string `min:"37" type:"string"` 6108 6109 // Time at which the backup was created. 6110 BackupCreationDateTime *time.Time `type:"timestamp"` 6111 6112 // Time at which the automatic on-demand backup created by DynamoDB will expire. 6113 // This SYSTEM on-demand backup expires automatically 35 days after its creation. 6114 BackupExpiryDateTime *time.Time `type:"timestamp"` 6115 6116 // Name of the specified backup. 6117 BackupName *string `min:"3" type:"string"` 6118 6119 // Size of the backup in bytes. 6120 BackupSizeBytes *int64 `type:"long"` 6121 6122 // Backup can be in one of the following states: CREATING, ACTIVE, DELETED. 6123 BackupStatus *string `type:"string" enum:"BackupStatus"` 6124 6125 // BackupType: 6126 // 6127 // * USER - You create and manage these using the on-demand backup feature. 6128 // 6129 // * SYSTEM - If you delete a table with point-in-time recovery enabled, 6130 // a SYSTEM backup is automatically created and is retained for 35 days (at 6131 // no additional cost). System backups allow you to restore the deleted table 6132 // to the state it was in just before the point of deletion. 6133 // 6134 // * AWS_BACKUP - On-demand backup created by you from AWS Backup service. 6135 BackupType *string `type:"string" enum:"BackupType"` 6136 6137 // ARN associated with the table. 6138 TableArn *string `type:"string"` 6139 6140 // Unique identifier for the table. 6141 TableId *string `type:"string"` 6142 6143 // Name of the table. 6144 TableName *string `min:"3" type:"string"` 6145} 6146 6147// String returns the string representation 6148func (s BackupSummary) String() string { 6149 return awsutil.Prettify(s) 6150} 6151 6152// GoString returns the string representation 6153func (s BackupSummary) GoString() string { 6154 return s.String() 6155} 6156 6157// SetBackupArn sets the BackupArn field's value. 6158func (s *BackupSummary) SetBackupArn(v string) *BackupSummary { 6159 s.BackupArn = &v 6160 return s 6161} 6162 6163// SetBackupCreationDateTime sets the BackupCreationDateTime field's value. 6164func (s *BackupSummary) SetBackupCreationDateTime(v time.Time) *BackupSummary { 6165 s.BackupCreationDateTime = &v 6166 return s 6167} 6168 6169// SetBackupExpiryDateTime sets the BackupExpiryDateTime field's value. 6170func (s *BackupSummary) SetBackupExpiryDateTime(v time.Time) *BackupSummary { 6171 s.BackupExpiryDateTime = &v 6172 return s 6173} 6174 6175// SetBackupName sets the BackupName field's value. 6176func (s *BackupSummary) SetBackupName(v string) *BackupSummary { 6177 s.BackupName = &v 6178 return s 6179} 6180 6181// SetBackupSizeBytes sets the BackupSizeBytes field's value. 6182func (s *BackupSummary) SetBackupSizeBytes(v int64) *BackupSummary { 6183 s.BackupSizeBytes = &v 6184 return s 6185} 6186 6187// SetBackupStatus sets the BackupStatus field's value. 6188func (s *BackupSummary) SetBackupStatus(v string) *BackupSummary { 6189 s.BackupStatus = &v 6190 return s 6191} 6192 6193// SetBackupType sets the BackupType field's value. 6194func (s *BackupSummary) SetBackupType(v string) *BackupSummary { 6195 s.BackupType = &v 6196 return s 6197} 6198 6199// SetTableArn sets the TableArn field's value. 6200func (s *BackupSummary) SetTableArn(v string) *BackupSummary { 6201 s.TableArn = &v 6202 return s 6203} 6204 6205// SetTableId sets the TableId field's value. 6206func (s *BackupSummary) SetTableId(v string) *BackupSummary { 6207 s.TableId = &v 6208 return s 6209} 6210 6211// SetTableName sets the TableName field's value. 6212func (s *BackupSummary) SetTableName(v string) *BackupSummary { 6213 s.TableName = &v 6214 return s 6215} 6216 6217// Represents the input of a BatchGetItem operation. 6218type BatchGetItemInput struct { 6219 _ struct{} `type:"structure"` 6220 6221 // A map of one or more table names and, for each table, a map that describes 6222 // one or more items to retrieve from that table. Each table name can be used 6223 // only once per BatchGetItem request. 6224 // 6225 // Each element in the map of items to retrieve consists of the following: 6226 // 6227 // * ConsistentRead - If true, a strongly consistent read is used; if false 6228 // (the default), an eventually consistent read is used. 6229 // 6230 // * ExpressionAttributeNames - One or more substitution tokens for attribute 6231 // names in the ProjectionExpression parameter. The following are some use 6232 // cases for using ExpressionAttributeNames: To access an attribute whose 6233 // name conflicts with a DynamoDB reserved word. To create a placeholder 6234 // for repeating occurrences of an attribute name in an expression. To prevent 6235 // special characters in an attribute name from being misinterpreted in an 6236 // expression. Use the # character in an expression to dereference an attribute 6237 // name. For example, consider the following attribute name: Percentile The 6238 // name of this attribute conflicts with a reserved word, so it cannot be 6239 // used directly in an expression. (For the complete list of reserved words, 6240 // see Reserved Words (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html) 6241 // in the Amazon DynamoDB Developer Guide). To work around this, you could 6242 // specify the following for ExpressionAttributeNames: {"#P":"Percentile"} 6243 // You could then use this substitution in an expression, as in this example: 6244 // #P = :val Tokens that begin with the : character are expression attribute 6245 // values, which are placeholders for the actual value at runtime. For more 6246 // information about expression attribute names, see Accessing Item Attributes 6247 // (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html) 6248 // in the Amazon DynamoDB Developer Guide. 6249 // 6250 // * Keys - An array of primary key attribute values that define specific 6251 // items in the table. For each primary key, you must provide all of the 6252 // key attributes. For example, with a simple primary key, you only need 6253 // to provide the partition key value. For a composite key, you must provide 6254 // both the partition key value and the sort key value. 6255 // 6256 // * ProjectionExpression - A string that identifies one or more attributes 6257 // to retrieve from the table. These attributes can include scalars, sets, 6258 // or elements of a JSON document. The attributes in the expression must 6259 // be separated by commas. If no attribute names are specified, then all 6260 // attributes are returned. If any of the requested attributes are not found, 6261 // they do not appear in the result. For more information, see Accessing 6262 // Item Attributes (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html) 6263 // in the Amazon DynamoDB Developer Guide. 6264 // 6265 // * AttributesToGet - This is a legacy parameter. Use ProjectionExpression 6266 // instead. For more information, see AttributesToGet (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.AttributesToGet.html) 6267 // in the Amazon DynamoDB Developer Guide. 6268 // 6269 // RequestItems is a required field 6270 RequestItems map[string]*KeysAndAttributes `min:"1" type:"map" required:"true"` 6271 6272 // Determines the level of detail about provisioned throughput consumption that 6273 // is returned in the response: 6274 // 6275 // * INDEXES - The response includes the aggregate ConsumedCapacity for the 6276 // operation, together with ConsumedCapacity for each table and secondary 6277 // index that was accessed. Note that some operations, such as GetItem and 6278 // BatchGetItem, do not access any indexes at all. In these cases, specifying 6279 // INDEXES will only return ConsumedCapacity information for table(s). 6280 // 6281 // * TOTAL - The response includes only the aggregate ConsumedCapacity for 6282 // the operation. 6283 // 6284 // * NONE - No ConsumedCapacity details are included in the response. 6285 ReturnConsumedCapacity *string `type:"string" enum:"ReturnConsumedCapacity"` 6286} 6287 6288// String returns the string representation 6289func (s BatchGetItemInput) String() string { 6290 return awsutil.Prettify(s) 6291} 6292 6293// GoString returns the string representation 6294func (s BatchGetItemInput) GoString() string { 6295 return s.String() 6296} 6297 6298// Validate inspects the fields of the type to determine if they are valid. 6299func (s *BatchGetItemInput) Validate() error { 6300 invalidParams := request.ErrInvalidParams{Context: "BatchGetItemInput"} 6301 if s.RequestItems == nil { 6302 invalidParams.Add(request.NewErrParamRequired("RequestItems")) 6303 } 6304 if s.RequestItems != nil && len(s.RequestItems) < 1 { 6305 invalidParams.Add(request.NewErrParamMinLen("RequestItems", 1)) 6306 } 6307 if s.RequestItems != nil { 6308 for i, v := range s.RequestItems { 6309 if v == nil { 6310 continue 6311 } 6312 if err := v.Validate(); err != nil { 6313 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RequestItems", i), err.(request.ErrInvalidParams)) 6314 } 6315 } 6316 } 6317 6318 if invalidParams.Len() > 0 { 6319 return invalidParams 6320 } 6321 return nil 6322} 6323 6324// SetRequestItems sets the RequestItems field's value. 6325func (s *BatchGetItemInput) SetRequestItems(v map[string]*KeysAndAttributes) *BatchGetItemInput { 6326 s.RequestItems = v 6327 return s 6328} 6329 6330// SetReturnConsumedCapacity sets the ReturnConsumedCapacity field's value. 6331func (s *BatchGetItemInput) SetReturnConsumedCapacity(v string) *BatchGetItemInput { 6332 s.ReturnConsumedCapacity = &v 6333 return s 6334} 6335 6336// Represents the output of a BatchGetItem operation. 6337type BatchGetItemOutput struct { 6338 _ struct{} `type:"structure"` 6339 6340 // The read capacity units consumed by the entire BatchGetItem operation. 6341 // 6342 // Each element consists of: 6343 // 6344 // * TableName - The table that consumed the provisioned throughput. 6345 // 6346 // * CapacityUnits - The total number of capacity units consumed. 6347 ConsumedCapacity []*ConsumedCapacity `type:"list"` 6348 6349 // A map of table name to a list of items. Each object in Responses consists 6350 // of a table name, along with a map of attribute data consisting of the data 6351 // type and attribute value. 6352 Responses map[string][]map[string]*AttributeValue `type:"map"` 6353 6354 // A map of tables and their respective keys that were not processed with the 6355 // current response. The UnprocessedKeys value is in the same form as RequestItems, 6356 // so the value can be provided directly to a subsequent BatchGetItem operation. 6357 // For more information, see RequestItems in the Request Parameters section. 6358 // 6359 // Each element consists of: 6360 // 6361 // * Keys - An array of primary key attribute values that define specific 6362 // items in the table. 6363 // 6364 // * ProjectionExpression - One or more attributes to be retrieved from the 6365 // table or index. By default, all attributes are returned. If a requested 6366 // attribute is not found, it does not appear in the result. 6367 // 6368 // * ConsistentRead - The consistency of a read operation. If set to true, 6369 // then a strongly consistent read is used; otherwise, an eventually consistent 6370 // read is used. 6371 // 6372 // If there are no unprocessed keys remaining, the response contains an empty 6373 // UnprocessedKeys map. 6374 UnprocessedKeys map[string]*KeysAndAttributes `min:"1" type:"map"` 6375} 6376 6377// String returns the string representation 6378func (s BatchGetItemOutput) String() string { 6379 return awsutil.Prettify(s) 6380} 6381 6382// GoString returns the string representation 6383func (s BatchGetItemOutput) GoString() string { 6384 return s.String() 6385} 6386 6387// SetConsumedCapacity sets the ConsumedCapacity field's value. 6388func (s *BatchGetItemOutput) SetConsumedCapacity(v []*ConsumedCapacity) *BatchGetItemOutput { 6389 s.ConsumedCapacity = v 6390 return s 6391} 6392 6393// SetResponses sets the Responses field's value. 6394func (s *BatchGetItemOutput) SetResponses(v map[string][]map[string]*AttributeValue) *BatchGetItemOutput { 6395 s.Responses = v 6396 return s 6397} 6398 6399// SetUnprocessedKeys sets the UnprocessedKeys field's value. 6400func (s *BatchGetItemOutput) SetUnprocessedKeys(v map[string]*KeysAndAttributes) *BatchGetItemOutput { 6401 s.UnprocessedKeys = v 6402 return s 6403} 6404 6405// Represents the input of a BatchWriteItem operation. 6406type BatchWriteItemInput struct { 6407 _ struct{} `type:"structure"` 6408 6409 // A map of one or more table names and, for each table, a list of operations 6410 // to be performed (DeleteRequest or PutRequest). Each element in the map consists 6411 // of the following: 6412 // 6413 // * DeleteRequest - Perform a DeleteItem operation on the specified item. 6414 // The item to be deleted is identified by a Key subelement: Key - A map 6415 // of primary key attribute values that uniquely identify the item. Each 6416 // entry in this map consists of an attribute name and an attribute value. 6417 // For each primary key, you must provide all of the key attributes. For 6418 // example, with a simple primary key, you only need to provide a value for 6419 // the partition key. For a composite primary key, you must provide values 6420 // for both the partition key and the sort key. 6421 // 6422 // * PutRequest - Perform a PutItem operation on the specified item. The 6423 // item to be put is identified by an Item subelement: Item - A map of attributes 6424 // and their values. Each entry in this map consists of an attribute name 6425 // and an attribute value. Attribute values must not be null; string and 6426 // binary type attributes must have lengths greater than zero; and set type 6427 // attributes must not be empty. Requests that contain empty values are rejected 6428 // with a ValidationException exception. If you specify any attributes that 6429 // are part of an index key, then the data types for those attributes must 6430 // match those of the schema in the table's attribute definition. 6431 // 6432 // RequestItems is a required field 6433 RequestItems map[string][]*WriteRequest `min:"1" type:"map" required:"true"` 6434 6435 // Determines the level of detail about provisioned throughput consumption that 6436 // is returned in the response: 6437 // 6438 // * INDEXES - The response includes the aggregate ConsumedCapacity for the 6439 // operation, together with ConsumedCapacity for each table and secondary 6440 // index that was accessed. Note that some operations, such as GetItem and 6441 // BatchGetItem, do not access any indexes at all. In these cases, specifying 6442 // INDEXES will only return ConsumedCapacity information for table(s). 6443 // 6444 // * TOTAL - The response includes only the aggregate ConsumedCapacity for 6445 // the operation. 6446 // 6447 // * NONE - No ConsumedCapacity details are included in the response. 6448 ReturnConsumedCapacity *string `type:"string" enum:"ReturnConsumedCapacity"` 6449 6450 // Determines whether item collection metrics are returned. If set to SIZE, 6451 // the response includes statistics about item collections, if any, that were 6452 // modified during the operation are returned in the response. If set to NONE 6453 // (the default), no statistics are returned. 6454 ReturnItemCollectionMetrics *string `type:"string" enum:"ReturnItemCollectionMetrics"` 6455} 6456 6457// String returns the string representation 6458func (s BatchWriteItemInput) String() string { 6459 return awsutil.Prettify(s) 6460} 6461 6462// GoString returns the string representation 6463func (s BatchWriteItemInput) GoString() string { 6464 return s.String() 6465} 6466 6467// Validate inspects the fields of the type to determine if they are valid. 6468func (s *BatchWriteItemInput) Validate() error { 6469 invalidParams := request.ErrInvalidParams{Context: "BatchWriteItemInput"} 6470 if s.RequestItems == nil { 6471 invalidParams.Add(request.NewErrParamRequired("RequestItems")) 6472 } 6473 if s.RequestItems != nil && len(s.RequestItems) < 1 { 6474 invalidParams.Add(request.NewErrParamMinLen("RequestItems", 1)) 6475 } 6476 6477 if invalidParams.Len() > 0 { 6478 return invalidParams 6479 } 6480 return nil 6481} 6482 6483// SetRequestItems sets the RequestItems field's value. 6484func (s *BatchWriteItemInput) SetRequestItems(v map[string][]*WriteRequest) *BatchWriteItemInput { 6485 s.RequestItems = v 6486 return s 6487} 6488 6489// SetReturnConsumedCapacity sets the ReturnConsumedCapacity field's value. 6490func (s *BatchWriteItemInput) SetReturnConsumedCapacity(v string) *BatchWriteItemInput { 6491 s.ReturnConsumedCapacity = &v 6492 return s 6493} 6494 6495// SetReturnItemCollectionMetrics sets the ReturnItemCollectionMetrics field's value. 6496func (s *BatchWriteItemInput) SetReturnItemCollectionMetrics(v string) *BatchWriteItemInput { 6497 s.ReturnItemCollectionMetrics = &v 6498 return s 6499} 6500 6501// Represents the output of a BatchWriteItem operation. 6502type BatchWriteItemOutput struct { 6503 _ struct{} `type:"structure"` 6504 6505 // The capacity units consumed by the entire BatchWriteItem operation. 6506 // 6507 // Each element consists of: 6508 // 6509 // * TableName - The table that consumed the provisioned throughput. 6510 // 6511 // * CapacityUnits - The total number of capacity units consumed. 6512 ConsumedCapacity []*ConsumedCapacity `type:"list"` 6513 6514 // A list of tables that were processed by BatchWriteItem and, for each table, 6515 // information about any item collections that were affected by individual DeleteItem 6516 // or PutItem operations. 6517 // 6518 // Each entry consists of the following subelements: 6519 // 6520 // * ItemCollectionKey - The partition key value of the item collection. 6521 // This is the same as the partition key value of the item. 6522 // 6523 // * SizeEstimateRangeGB - An estimate of item collection size, expressed 6524 // in GB. This is a two-element array containing a lower bound and an upper 6525 // bound for the estimate. The estimate includes the size of all the items 6526 // in the table, plus the size of all attributes projected into all of the 6527 // local secondary indexes on the table. Use this estimate to measure whether 6528 // a local secondary index is approaching its size limit. The estimate is 6529 // subject to change over time; therefore, do not rely on the precision or 6530 // accuracy of the estimate. 6531 ItemCollectionMetrics map[string][]*ItemCollectionMetrics `type:"map"` 6532 6533 // A map of tables and requests against those tables that were not processed. 6534 // The UnprocessedItems value is in the same form as RequestItems, so you can 6535 // provide this value directly to a subsequent BatchGetItem operation. For more 6536 // information, see RequestItems in the Request Parameters section. 6537 // 6538 // Each UnprocessedItems entry consists of a table name and, for that table, 6539 // a list of operations to perform (DeleteRequest or PutRequest). 6540 // 6541 // * DeleteRequest - Perform a DeleteItem operation on the specified item. 6542 // The item to be deleted is identified by a Key subelement: Key - A map 6543 // of primary key attribute values that uniquely identify the item. Each 6544 // entry in this map consists of an attribute name and an attribute value. 6545 // 6546 // * PutRequest - Perform a PutItem operation on the specified item. The 6547 // item to be put is identified by an Item subelement: Item - A map of attributes 6548 // and their values. Each entry in this map consists of an attribute name 6549 // and an attribute value. Attribute values must not be null; string and 6550 // binary type attributes must have lengths greater than zero; and set type 6551 // attributes must not be empty. Requests that contain empty values will 6552 // be rejected with a ValidationException exception. If you specify any attributes 6553 // that are part of an index key, then the data types for those attributes 6554 // must match those of the schema in the table's attribute definition. 6555 // 6556 // If there are no unprocessed items remaining, the response contains an empty 6557 // UnprocessedItems map. 6558 UnprocessedItems map[string][]*WriteRequest `min:"1" type:"map"` 6559} 6560 6561// String returns the string representation 6562func (s BatchWriteItemOutput) String() string { 6563 return awsutil.Prettify(s) 6564} 6565 6566// GoString returns the string representation 6567func (s BatchWriteItemOutput) GoString() string { 6568 return s.String() 6569} 6570 6571// SetConsumedCapacity sets the ConsumedCapacity field's value. 6572func (s *BatchWriteItemOutput) SetConsumedCapacity(v []*ConsumedCapacity) *BatchWriteItemOutput { 6573 s.ConsumedCapacity = v 6574 return s 6575} 6576 6577// SetItemCollectionMetrics sets the ItemCollectionMetrics field's value. 6578func (s *BatchWriteItemOutput) SetItemCollectionMetrics(v map[string][]*ItemCollectionMetrics) *BatchWriteItemOutput { 6579 s.ItemCollectionMetrics = v 6580 return s 6581} 6582 6583// SetUnprocessedItems sets the UnprocessedItems field's value. 6584func (s *BatchWriteItemOutput) SetUnprocessedItems(v map[string][]*WriteRequest) *BatchWriteItemOutput { 6585 s.UnprocessedItems = v 6586 return s 6587} 6588 6589// Contains the details for the read/write capacity mode. 6590type BillingModeSummary struct { 6591 _ struct{} `type:"structure"` 6592 6593 // Controls how you are charged for read and write throughput and how you manage 6594 // capacity. This setting can be changed later. 6595 // 6596 // * PROVISIONED - Sets the read/write capacity mode to PROVISIONED. We recommend 6597 // using PROVISIONED for predictable workloads. 6598 // 6599 // * PAY_PER_REQUEST - Sets the read/write capacity mode to PAY_PER_REQUEST. 6600 // We recommend using PAY_PER_REQUEST for unpredictable workloads. 6601 BillingMode *string `type:"string" enum:"BillingMode"` 6602 6603 // Represents the time when PAY_PER_REQUEST was last set as the read/write capacity 6604 // mode. 6605 LastUpdateToPayPerRequestDateTime *time.Time `type:"timestamp"` 6606} 6607 6608// String returns the string representation 6609func (s BillingModeSummary) String() string { 6610 return awsutil.Prettify(s) 6611} 6612 6613// GoString returns the string representation 6614func (s BillingModeSummary) GoString() string { 6615 return s.String() 6616} 6617 6618// SetBillingMode sets the BillingMode field's value. 6619func (s *BillingModeSummary) SetBillingMode(v string) *BillingModeSummary { 6620 s.BillingMode = &v 6621 return s 6622} 6623 6624// SetLastUpdateToPayPerRequestDateTime sets the LastUpdateToPayPerRequestDateTime field's value. 6625func (s *BillingModeSummary) SetLastUpdateToPayPerRequestDateTime(v time.Time) *BillingModeSummary { 6626 s.LastUpdateToPayPerRequestDateTime = &v 6627 return s 6628} 6629 6630// An ordered list of errors for each item in the request which caused the transaction 6631// to get cancelled. The values of the list are ordered according to the ordering 6632// of the TransactWriteItems request parameter. If no error occurred for the 6633// associated item an error with a Null code and Null message will be present. 6634type CancellationReason struct { 6635 _ struct{} `type:"structure"` 6636 6637 // Status code for the result of the cancelled transaction. 6638 Code *string `type:"string"` 6639 6640 // Item in the request which caused the transaction to get cancelled. 6641 Item map[string]*AttributeValue `type:"map"` 6642 6643 // Cancellation reason message description. 6644 Message *string `type:"string"` 6645} 6646 6647// String returns the string representation 6648func (s CancellationReason) String() string { 6649 return awsutil.Prettify(s) 6650} 6651 6652// GoString returns the string representation 6653func (s CancellationReason) GoString() string { 6654 return s.String() 6655} 6656 6657// SetCode sets the Code field's value. 6658func (s *CancellationReason) SetCode(v string) *CancellationReason { 6659 s.Code = &v 6660 return s 6661} 6662 6663// SetItem sets the Item field's value. 6664func (s *CancellationReason) SetItem(v map[string]*AttributeValue) *CancellationReason { 6665 s.Item = v 6666 return s 6667} 6668 6669// SetMessage sets the Message field's value. 6670func (s *CancellationReason) SetMessage(v string) *CancellationReason { 6671 s.Message = &v 6672 return s 6673} 6674 6675// Represents the amount of provisioned throughput capacity consumed on a table 6676// or an index. 6677type Capacity struct { 6678 _ struct{} `type:"structure"` 6679 6680 // The total number of capacity units consumed on a table or an index. 6681 CapacityUnits *float64 `type:"double"` 6682 6683 // The total number of read capacity units consumed on a table or an index. 6684 ReadCapacityUnits *float64 `type:"double"` 6685 6686 // The total number of write capacity units consumed on a table or an index. 6687 WriteCapacityUnits *float64 `type:"double"` 6688} 6689 6690// String returns the string representation 6691func (s Capacity) String() string { 6692 return awsutil.Prettify(s) 6693} 6694 6695// GoString returns the string representation 6696func (s Capacity) GoString() string { 6697 return s.String() 6698} 6699 6700// SetCapacityUnits sets the CapacityUnits field's value. 6701func (s *Capacity) SetCapacityUnits(v float64) *Capacity { 6702 s.CapacityUnits = &v 6703 return s 6704} 6705 6706// SetReadCapacityUnits sets the ReadCapacityUnits field's value. 6707func (s *Capacity) SetReadCapacityUnits(v float64) *Capacity { 6708 s.ReadCapacityUnits = &v 6709 return s 6710} 6711 6712// SetWriteCapacityUnits sets the WriteCapacityUnits field's value. 6713func (s *Capacity) SetWriteCapacityUnits(v float64) *Capacity { 6714 s.WriteCapacityUnits = &v 6715 return s 6716} 6717 6718// Represents the selection criteria for a Query or Scan operation: 6719// 6720// * For a Query operation, Condition is used for specifying the KeyConditions 6721// to use when querying a table or an index. For KeyConditions, only the 6722// following comparison operators are supported: EQ | LE | LT | GE | GT | 6723// BEGINS_WITH | BETWEEN Condition is also used in a QueryFilter, which evaluates 6724// the query results and returns only the desired values. 6725// 6726// * For a Scan operation, Condition is used in a ScanFilter, which evaluates 6727// the scan results and returns only the desired values. 6728type Condition struct { 6729 _ struct{} `type:"structure"` 6730 6731 // One or more values to evaluate against the supplied attribute. The number 6732 // of values in the list depends on the ComparisonOperator being used. 6733 // 6734 // For type Number, value comparisons are numeric. 6735 // 6736 // String value comparisons for greater than, equals, or less than are based 6737 // on ASCII character code values. For example, a is greater than A, and a is 6738 // greater than B. For a list of code values, see http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters 6739 // (http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters). 6740 // 6741 // For Binary, DynamoDB treats each byte of the binary data as unsigned when 6742 // it compares binary values. 6743 AttributeValueList []*AttributeValue `type:"list"` 6744 6745 // A comparator for evaluating attributes. For example, equals, greater than, 6746 // less than, etc. 6747 // 6748 // The following comparison operators are available: 6749 // 6750 // EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS | 6751 // BEGINS_WITH | IN | BETWEEN 6752 // 6753 // The following are descriptions of each comparison operator. 6754 // 6755 // * EQ : Equal. EQ is supported for all data types, including lists and 6756 // maps. AttributeValueList can contain only one AttributeValue element of 6757 // type String, Number, Binary, String Set, Number Set, or Binary Set. If 6758 // an item contains an AttributeValue element of a different type than the 6759 // one provided in the request, the value does not match. For example, {"S":"6"} 6760 // does not equal {"N":"6"}. Also, {"N":"6"} does not equal {"NS":["6", "2", 6761 // "1"]}. 6762 // 6763 // * NE : Not equal. NE is supported for all data types, including lists 6764 // and maps. AttributeValueList can contain only one AttributeValue of type 6765 // String, Number, Binary, String Set, Number Set, or Binary Set. If an item 6766 // contains an AttributeValue of a different type than the one provided in 6767 // the request, the value does not match. For example, {"S":"6"} does not 6768 // equal {"N":"6"}. Also, {"N":"6"} does not equal {"NS":["6", "2", "1"]}. 6769 // 6770 // * LE : Less than or equal. AttributeValueList can contain only one AttributeValue 6771 // element of type String, Number, or Binary (not a set type). If an item 6772 // contains an AttributeValue element of a different type than the one provided 6773 // in the request, the value does not match. For example, {"S":"6"} does 6774 // not equal {"N":"6"}. Also, {"N":"6"} does not compare to {"NS":["6", "2", 6775 // "1"]}. 6776 // 6777 // * LT : Less than. AttributeValueList can contain only one AttributeValue 6778 // of type String, Number, or Binary (not a set type). If an item contains 6779 // an AttributeValue element of a different type than the one provided in 6780 // the request, the value does not match. For example, {"S":"6"} does not 6781 // equal {"N":"6"}. Also, {"N":"6"} does not compare to {"NS":["6", "2", 6782 // "1"]}. 6783 // 6784 // * GE : Greater than or equal. AttributeValueList can contain only one 6785 // AttributeValue element of type String, Number, or Binary (not a set type). 6786 // If an item contains an AttributeValue element of a different type than 6787 // the one provided in the request, the value does not match. For example, 6788 // {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"} does not compare to 6789 // {"NS":["6", "2", "1"]}. 6790 // 6791 // * GT : Greater than. AttributeValueList can contain only one AttributeValue 6792 // element of type String, Number, or Binary (not a set type). If an item 6793 // contains an AttributeValue element of a different type than the one provided 6794 // in the request, the value does not match. For example, {"S":"6"} does 6795 // not equal {"N":"6"}. Also, {"N":"6"} does not compare to {"NS":["6", "2", 6796 // "1"]}. 6797 // 6798 // * NOT_NULL : The attribute exists. NOT_NULL is supported for all data 6799 // types, including lists and maps. This operator tests for the existence 6800 // of an attribute, not its data type. If the data type of attribute "a" 6801 // is null, and you evaluate it using NOT_NULL, the result is a Boolean true. 6802 // This result is because the attribute "a" exists; its data type is not 6803 // relevant to the NOT_NULL comparison operator. 6804 // 6805 // * NULL : The attribute does not exist. NULL is supported for all data 6806 // types, including lists and maps. This operator tests for the nonexistence 6807 // of an attribute, not its data type. If the data type of attribute "a" 6808 // is null, and you evaluate it using NULL, the result is a Boolean false. 6809 // This is because the attribute "a" exists; its data type is not relevant 6810 // to the NULL comparison operator. 6811 // 6812 // * CONTAINS : Checks for a subsequence, or value in a set. AttributeValueList 6813 // can contain only one AttributeValue element of type String, Number, or 6814 // Binary (not a set type). If the target attribute of the comparison is 6815 // of type String, then the operator checks for a substring match. If the 6816 // target attribute of the comparison is of type Binary, then the operator 6817 // looks for a subsequence of the target that matches the input. If the target 6818 // attribute of the comparison is a set ("SS", "NS", or "BS"), then the operator 6819 // evaluates to true if it finds an exact match with any member of the set. 6820 // CONTAINS is supported for lists: When evaluating "a CONTAINS b", "a" can 6821 // be a list; however, "b" cannot be a set, a map, or a list. 6822 // 6823 // * NOT_CONTAINS : Checks for absence of a subsequence, or absence of a 6824 // value in a set. AttributeValueList can contain only one AttributeValue 6825 // element of type String, Number, or Binary (not a set type). If the target 6826 // attribute of the comparison is a String, then the operator checks for 6827 // the absence of a substring match. If the target attribute of the comparison 6828 // is Binary, then the operator checks for the absence of a subsequence of 6829 // the target that matches the input. If the target attribute of the comparison 6830 // is a set ("SS", "NS", or "BS"), then the operator evaluates to true if 6831 // it does not find an exact match with any member of the set. NOT_CONTAINS 6832 // is supported for lists: When evaluating "a NOT CONTAINS b", "a" can be 6833 // a list; however, "b" cannot be a set, a map, or a list. 6834 // 6835 // * BEGINS_WITH : Checks for a prefix. AttributeValueList can contain only 6836 // one AttributeValue of type String or Binary (not a Number or a set type). 6837 // The target attribute of the comparison must be of type String or Binary 6838 // (not a Number or a set type). 6839 // 6840 // * IN : Checks for matching elements in a list. AttributeValueList can 6841 // contain one or more AttributeValue elements of type String, Number, or 6842 // Binary. These attributes are compared against an existing attribute of 6843 // an item. If any elements of the input are equal to the item attribute, 6844 // the expression evaluates to true. 6845 // 6846 // * BETWEEN : Greater than or equal to the first value, and less than or 6847 // equal to the second value. AttributeValueList must contain two AttributeValue 6848 // elements of the same type, either String, Number, or Binary (not a set 6849 // type). A target attribute matches if the target value is greater than, 6850 // or equal to, the first element and less than, or equal to, the second 6851 // element. If an item contains an AttributeValue element of a different 6852 // type than the one provided in the request, the value does not match. For 6853 // example, {"S":"6"} does not compare to {"N":"6"}. Also, {"N":"6"} does 6854 // not compare to {"NS":["6", "2", "1"]} 6855 // 6856 // For usage examples of AttributeValueList and ComparisonOperator, see Legacy 6857 // Conditional Parameters (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.html) 6858 // in the Amazon DynamoDB Developer Guide. 6859 // 6860 // ComparisonOperator is a required field 6861 ComparisonOperator *string `type:"string" required:"true" enum:"ComparisonOperator"` 6862} 6863 6864// String returns the string representation 6865func (s Condition) String() string { 6866 return awsutil.Prettify(s) 6867} 6868 6869// GoString returns the string representation 6870func (s Condition) GoString() string { 6871 return s.String() 6872} 6873 6874// Validate inspects the fields of the type to determine if they are valid. 6875func (s *Condition) Validate() error { 6876 invalidParams := request.ErrInvalidParams{Context: "Condition"} 6877 if s.ComparisonOperator == nil { 6878 invalidParams.Add(request.NewErrParamRequired("ComparisonOperator")) 6879 } 6880 6881 if invalidParams.Len() > 0 { 6882 return invalidParams 6883 } 6884 return nil 6885} 6886 6887// SetAttributeValueList sets the AttributeValueList field's value. 6888func (s *Condition) SetAttributeValueList(v []*AttributeValue) *Condition { 6889 s.AttributeValueList = v 6890 return s 6891} 6892 6893// SetComparisonOperator sets the ComparisonOperator field's value. 6894func (s *Condition) SetComparisonOperator(v string) *Condition { 6895 s.ComparisonOperator = &v 6896 return s 6897} 6898 6899// Represents a request to perform a check that an item exists or to check the 6900// condition of specific attributes of the item.. 6901type ConditionCheck struct { 6902 _ struct{} `type:"structure"` 6903 6904 // A condition that must be satisfied in order for a conditional update to succeed. 6905 // 6906 // ConditionExpression is a required field 6907 ConditionExpression *string `type:"string" required:"true"` 6908 6909 // One or more substitution tokens for attribute names in an expression. 6910 ExpressionAttributeNames map[string]*string `type:"map"` 6911 6912 // One or more values that can be substituted in an expression. 6913 ExpressionAttributeValues map[string]*AttributeValue `type:"map"` 6914 6915 // The primary key of the item to be checked. Each element consists of an attribute 6916 // name and a value for that attribute. 6917 // 6918 // Key is a required field 6919 Key map[string]*AttributeValue `type:"map" required:"true"` 6920 6921 // Use ReturnValuesOnConditionCheckFailure to get the item attributes if the 6922 // ConditionCheck condition fails. For ReturnValuesOnConditionCheckFailure, 6923 // the valid values are: NONE and ALL_OLD. 6924 ReturnValuesOnConditionCheckFailure *string `type:"string" enum:"ReturnValuesOnConditionCheckFailure"` 6925 6926 // Name of the table for the check item request. 6927 // 6928 // TableName is a required field 6929 TableName *string `min:"3" type:"string" required:"true"` 6930} 6931 6932// String returns the string representation 6933func (s ConditionCheck) String() string { 6934 return awsutil.Prettify(s) 6935} 6936 6937// GoString returns the string representation 6938func (s ConditionCheck) GoString() string { 6939 return s.String() 6940} 6941 6942// Validate inspects the fields of the type to determine if they are valid. 6943func (s *ConditionCheck) Validate() error { 6944 invalidParams := request.ErrInvalidParams{Context: "ConditionCheck"} 6945 if s.ConditionExpression == nil { 6946 invalidParams.Add(request.NewErrParamRequired("ConditionExpression")) 6947 } 6948 if s.Key == nil { 6949 invalidParams.Add(request.NewErrParamRequired("Key")) 6950 } 6951 if s.TableName == nil { 6952 invalidParams.Add(request.NewErrParamRequired("TableName")) 6953 } 6954 if s.TableName != nil && len(*s.TableName) < 3 { 6955 invalidParams.Add(request.NewErrParamMinLen("TableName", 3)) 6956 } 6957 6958 if invalidParams.Len() > 0 { 6959 return invalidParams 6960 } 6961 return nil 6962} 6963 6964// SetConditionExpression sets the ConditionExpression field's value. 6965func (s *ConditionCheck) SetConditionExpression(v string) *ConditionCheck { 6966 s.ConditionExpression = &v 6967 return s 6968} 6969 6970// SetExpressionAttributeNames sets the ExpressionAttributeNames field's value. 6971func (s *ConditionCheck) SetExpressionAttributeNames(v map[string]*string) *ConditionCheck { 6972 s.ExpressionAttributeNames = v 6973 return s 6974} 6975 6976// SetExpressionAttributeValues sets the ExpressionAttributeValues field's value. 6977func (s *ConditionCheck) SetExpressionAttributeValues(v map[string]*AttributeValue) *ConditionCheck { 6978 s.ExpressionAttributeValues = v 6979 return s 6980} 6981 6982// SetKey sets the Key field's value. 6983func (s *ConditionCheck) SetKey(v map[string]*AttributeValue) *ConditionCheck { 6984 s.Key = v 6985 return s 6986} 6987 6988// SetReturnValuesOnConditionCheckFailure sets the ReturnValuesOnConditionCheckFailure field's value. 6989func (s *ConditionCheck) SetReturnValuesOnConditionCheckFailure(v string) *ConditionCheck { 6990 s.ReturnValuesOnConditionCheckFailure = &v 6991 return s 6992} 6993 6994// SetTableName sets the TableName field's value. 6995func (s *ConditionCheck) SetTableName(v string) *ConditionCheck { 6996 s.TableName = &v 6997 return s 6998} 6999 7000// The capacity units consumed by an operation. The data returned includes the 7001// total provisioned throughput consumed, along with statistics for the table 7002// and any indexes involved in the operation. ConsumedCapacity is only returned 7003// if the request asked for it. For more information, see Provisioned Throughput 7004// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html) 7005// in the Amazon DynamoDB Developer Guide. 7006type ConsumedCapacity struct { 7007 _ struct{} `type:"structure"` 7008 7009 // The total number of capacity units consumed by the operation. 7010 CapacityUnits *float64 `type:"double"` 7011 7012 // The amount of throughput consumed on each global index affected by the operation. 7013 GlobalSecondaryIndexes map[string]*Capacity `type:"map"` 7014 7015 // The amount of throughput consumed on each local index affected by the operation. 7016 LocalSecondaryIndexes map[string]*Capacity `type:"map"` 7017 7018 // The total number of read capacity units consumed by the operation. 7019 ReadCapacityUnits *float64 `type:"double"` 7020 7021 // The amount of throughput consumed on the table affected by the operation. 7022 Table *Capacity `type:"structure"` 7023 7024 // The name of the table that was affected by the operation. 7025 TableName *string `min:"3" type:"string"` 7026 7027 // The total number of write capacity units consumed by the operation. 7028 WriteCapacityUnits *float64 `type:"double"` 7029} 7030 7031// String returns the string representation 7032func (s ConsumedCapacity) String() string { 7033 return awsutil.Prettify(s) 7034} 7035 7036// GoString returns the string representation 7037func (s ConsumedCapacity) GoString() string { 7038 return s.String() 7039} 7040 7041// SetCapacityUnits sets the CapacityUnits field's value. 7042func (s *ConsumedCapacity) SetCapacityUnits(v float64) *ConsumedCapacity { 7043 s.CapacityUnits = &v 7044 return s 7045} 7046 7047// SetGlobalSecondaryIndexes sets the GlobalSecondaryIndexes field's value. 7048func (s *ConsumedCapacity) SetGlobalSecondaryIndexes(v map[string]*Capacity) *ConsumedCapacity { 7049 s.GlobalSecondaryIndexes = v 7050 return s 7051} 7052 7053// SetLocalSecondaryIndexes sets the LocalSecondaryIndexes field's value. 7054func (s *ConsumedCapacity) SetLocalSecondaryIndexes(v map[string]*Capacity) *ConsumedCapacity { 7055 s.LocalSecondaryIndexes = v 7056 return s 7057} 7058 7059// SetReadCapacityUnits sets the ReadCapacityUnits field's value. 7060func (s *ConsumedCapacity) SetReadCapacityUnits(v float64) *ConsumedCapacity { 7061 s.ReadCapacityUnits = &v 7062 return s 7063} 7064 7065// SetTable sets the Table field's value. 7066func (s *ConsumedCapacity) SetTable(v *Capacity) *ConsumedCapacity { 7067 s.Table = v 7068 return s 7069} 7070 7071// SetTableName sets the TableName field's value. 7072func (s *ConsumedCapacity) SetTableName(v string) *ConsumedCapacity { 7073 s.TableName = &v 7074 return s 7075} 7076 7077// SetWriteCapacityUnits sets the WriteCapacityUnits field's value. 7078func (s *ConsumedCapacity) SetWriteCapacityUnits(v float64) *ConsumedCapacity { 7079 s.WriteCapacityUnits = &v 7080 return s 7081} 7082 7083// Represents the continuous backups and point in time recovery settings on 7084// the table. 7085type ContinuousBackupsDescription struct { 7086 _ struct{} `type:"structure"` 7087 7088 // ContinuousBackupsStatus can be one of the following states: ENABLED, DISABLED 7089 // 7090 // ContinuousBackupsStatus is a required field 7091 ContinuousBackupsStatus *string `type:"string" required:"true" enum:"ContinuousBackupsStatus"` 7092 7093 // The description of the point in time recovery settings applied to the table. 7094 PointInTimeRecoveryDescription *PointInTimeRecoveryDescription `type:"structure"` 7095} 7096 7097// String returns the string representation 7098func (s ContinuousBackupsDescription) String() string { 7099 return awsutil.Prettify(s) 7100} 7101 7102// GoString returns the string representation 7103func (s ContinuousBackupsDescription) GoString() string { 7104 return s.String() 7105} 7106 7107// SetContinuousBackupsStatus sets the ContinuousBackupsStatus field's value. 7108func (s *ContinuousBackupsDescription) SetContinuousBackupsStatus(v string) *ContinuousBackupsDescription { 7109 s.ContinuousBackupsStatus = &v 7110 return s 7111} 7112 7113// SetPointInTimeRecoveryDescription sets the PointInTimeRecoveryDescription field's value. 7114func (s *ContinuousBackupsDescription) SetPointInTimeRecoveryDescription(v *PointInTimeRecoveryDescription) *ContinuousBackupsDescription { 7115 s.PointInTimeRecoveryDescription = v 7116 return s 7117} 7118 7119type CreateBackupInput struct { 7120 _ struct{} `type:"structure"` 7121 7122 // Specified name for the backup. 7123 // 7124 // BackupName is a required field 7125 BackupName *string `min:"3" type:"string" required:"true"` 7126 7127 // The name of the table. 7128 // 7129 // TableName is a required field 7130 TableName *string `min:"3" type:"string" required:"true"` 7131} 7132 7133// String returns the string representation 7134func (s CreateBackupInput) String() string { 7135 return awsutil.Prettify(s) 7136} 7137 7138// GoString returns the string representation 7139func (s CreateBackupInput) GoString() string { 7140 return s.String() 7141} 7142 7143// Validate inspects the fields of the type to determine if they are valid. 7144func (s *CreateBackupInput) Validate() error { 7145 invalidParams := request.ErrInvalidParams{Context: "CreateBackupInput"} 7146 if s.BackupName == nil { 7147 invalidParams.Add(request.NewErrParamRequired("BackupName")) 7148 } 7149 if s.BackupName != nil && len(*s.BackupName) < 3 { 7150 invalidParams.Add(request.NewErrParamMinLen("BackupName", 3)) 7151 } 7152 if s.TableName == nil { 7153 invalidParams.Add(request.NewErrParamRequired("TableName")) 7154 } 7155 if s.TableName != nil && len(*s.TableName) < 3 { 7156 invalidParams.Add(request.NewErrParamMinLen("TableName", 3)) 7157 } 7158 7159 if invalidParams.Len() > 0 { 7160 return invalidParams 7161 } 7162 return nil 7163} 7164 7165// SetBackupName sets the BackupName field's value. 7166func (s *CreateBackupInput) SetBackupName(v string) *CreateBackupInput { 7167 s.BackupName = &v 7168 return s 7169} 7170 7171// SetTableName sets the TableName field's value. 7172func (s *CreateBackupInput) SetTableName(v string) *CreateBackupInput { 7173 s.TableName = &v 7174 return s 7175} 7176 7177type CreateBackupOutput struct { 7178 _ struct{} `type:"structure"` 7179 7180 // Contains the details of the backup created for the table. 7181 BackupDetails *BackupDetails `type:"structure"` 7182} 7183 7184// String returns the string representation 7185func (s CreateBackupOutput) String() string { 7186 return awsutil.Prettify(s) 7187} 7188 7189// GoString returns the string representation 7190func (s CreateBackupOutput) GoString() string { 7191 return s.String() 7192} 7193 7194// SetBackupDetails sets the BackupDetails field's value. 7195func (s *CreateBackupOutput) SetBackupDetails(v *BackupDetails) *CreateBackupOutput { 7196 s.BackupDetails = v 7197 return s 7198} 7199 7200// Represents a new global secondary index to be added to an existing table. 7201type CreateGlobalSecondaryIndexAction struct { 7202 _ struct{} `type:"structure"` 7203 7204 // The name of the global secondary index to be created. 7205 // 7206 // IndexName is a required field 7207 IndexName *string `min:"3" type:"string" required:"true"` 7208 7209 // The key schema for the global secondary index. 7210 // 7211 // KeySchema is a required field 7212 KeySchema []*KeySchemaElement `min:"1" type:"list" required:"true"` 7213 7214 // Represents attributes that are copied (projected) from the table into an 7215 // index. These are in addition to the primary key attributes and index key 7216 // attributes, which are automatically projected. 7217 // 7218 // Projection is a required field 7219 Projection *Projection `type:"structure" required:"true"` 7220 7221 // Represents the provisioned throughput settings for the specified global secondary 7222 // index. 7223 // 7224 // For current minimum and maximum provisioned throughput values, see Limits 7225 // (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) 7226 // in the Amazon DynamoDB Developer Guide. 7227 ProvisionedThroughput *ProvisionedThroughput `type:"structure"` 7228} 7229 7230// String returns the string representation 7231func (s CreateGlobalSecondaryIndexAction) String() string { 7232 return awsutil.Prettify(s) 7233} 7234 7235// GoString returns the string representation 7236func (s CreateGlobalSecondaryIndexAction) GoString() string { 7237 return s.String() 7238} 7239 7240// Validate inspects the fields of the type to determine if they are valid. 7241func (s *CreateGlobalSecondaryIndexAction) Validate() error { 7242 invalidParams := request.ErrInvalidParams{Context: "CreateGlobalSecondaryIndexAction"} 7243 if s.IndexName == nil { 7244 invalidParams.Add(request.NewErrParamRequired("IndexName")) 7245 } 7246 if s.IndexName != nil && len(*s.IndexName) < 3 { 7247 invalidParams.Add(request.NewErrParamMinLen("IndexName", 3)) 7248 } 7249 if s.KeySchema == nil { 7250 invalidParams.Add(request.NewErrParamRequired("KeySchema")) 7251 } 7252 if s.KeySchema != nil && len(s.KeySchema) < 1 { 7253 invalidParams.Add(request.NewErrParamMinLen("KeySchema", 1)) 7254 } 7255 if s.Projection == nil { 7256 invalidParams.Add(request.NewErrParamRequired("Projection")) 7257 } 7258 if s.KeySchema != nil { 7259 for i, v := range s.KeySchema { 7260 if v == nil { 7261 continue 7262 } 7263 if err := v.Validate(); err != nil { 7264 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "KeySchema", i), err.(request.ErrInvalidParams)) 7265 } 7266 } 7267 } 7268 if s.Projection != nil { 7269 if err := s.Projection.Validate(); err != nil { 7270 invalidParams.AddNested("Projection", err.(request.ErrInvalidParams)) 7271 } 7272 } 7273 if s.ProvisionedThroughput != nil { 7274 if err := s.ProvisionedThroughput.Validate(); err != nil { 7275 invalidParams.AddNested("ProvisionedThroughput", err.(request.ErrInvalidParams)) 7276 } 7277 } 7278 7279 if invalidParams.Len() > 0 { 7280 return invalidParams 7281 } 7282 return nil 7283} 7284 7285// SetIndexName sets the IndexName field's value. 7286func (s *CreateGlobalSecondaryIndexAction) SetIndexName(v string) *CreateGlobalSecondaryIndexAction { 7287 s.IndexName = &v 7288 return s 7289} 7290 7291// SetKeySchema sets the KeySchema field's value. 7292func (s *CreateGlobalSecondaryIndexAction) SetKeySchema(v []*KeySchemaElement) *CreateGlobalSecondaryIndexAction { 7293 s.KeySchema = v 7294 return s 7295} 7296 7297// SetProjection sets the Projection field's value. 7298func (s *CreateGlobalSecondaryIndexAction) SetProjection(v *Projection) *CreateGlobalSecondaryIndexAction { 7299 s.Projection = v 7300 return s 7301} 7302 7303// SetProvisionedThroughput sets the ProvisionedThroughput field's value. 7304func (s *CreateGlobalSecondaryIndexAction) SetProvisionedThroughput(v *ProvisionedThroughput) *CreateGlobalSecondaryIndexAction { 7305 s.ProvisionedThroughput = v 7306 return s 7307} 7308 7309type CreateGlobalTableInput struct { 7310 _ struct{} `type:"structure"` 7311 7312 // The global table name. 7313 // 7314 // GlobalTableName is a required field 7315 GlobalTableName *string `min:"3" type:"string" required:"true"` 7316 7317 // The Regions where the global table needs to be created. 7318 // 7319 // ReplicationGroup is a required field 7320 ReplicationGroup []*Replica `type:"list" required:"true"` 7321} 7322 7323// String returns the string representation 7324func (s CreateGlobalTableInput) String() string { 7325 return awsutil.Prettify(s) 7326} 7327 7328// GoString returns the string representation 7329func (s CreateGlobalTableInput) GoString() string { 7330 return s.String() 7331} 7332 7333// Validate inspects the fields of the type to determine if they are valid. 7334func (s *CreateGlobalTableInput) Validate() error { 7335 invalidParams := request.ErrInvalidParams{Context: "CreateGlobalTableInput"} 7336 if s.GlobalTableName == nil { 7337 invalidParams.Add(request.NewErrParamRequired("GlobalTableName")) 7338 } 7339 if s.GlobalTableName != nil && len(*s.GlobalTableName) < 3 { 7340 invalidParams.Add(request.NewErrParamMinLen("GlobalTableName", 3)) 7341 } 7342 if s.ReplicationGroup == nil { 7343 invalidParams.Add(request.NewErrParamRequired("ReplicationGroup")) 7344 } 7345 7346 if invalidParams.Len() > 0 { 7347 return invalidParams 7348 } 7349 return nil 7350} 7351 7352// SetGlobalTableName sets the GlobalTableName field's value. 7353func (s *CreateGlobalTableInput) SetGlobalTableName(v string) *CreateGlobalTableInput { 7354 s.GlobalTableName = &v 7355 return s 7356} 7357 7358// SetReplicationGroup sets the ReplicationGroup field's value. 7359func (s *CreateGlobalTableInput) SetReplicationGroup(v []*Replica) *CreateGlobalTableInput { 7360 s.ReplicationGroup = v 7361 return s 7362} 7363 7364type CreateGlobalTableOutput struct { 7365 _ struct{} `type:"structure"` 7366 7367 // Contains the details of the global table. 7368 GlobalTableDescription *GlobalTableDescription `type:"structure"` 7369} 7370 7371// String returns the string representation 7372func (s CreateGlobalTableOutput) String() string { 7373 return awsutil.Prettify(s) 7374} 7375 7376// GoString returns the string representation 7377func (s CreateGlobalTableOutput) GoString() string { 7378 return s.String() 7379} 7380 7381// SetGlobalTableDescription sets the GlobalTableDescription field's value. 7382func (s *CreateGlobalTableOutput) SetGlobalTableDescription(v *GlobalTableDescription) *CreateGlobalTableOutput { 7383 s.GlobalTableDescription = v 7384 return s 7385} 7386 7387// Represents a replica to be added. 7388type CreateReplicaAction struct { 7389 _ struct{} `type:"structure"` 7390 7391 // The region of the replica to be added. 7392 // 7393 // RegionName is a required field 7394 RegionName *string `type:"string" required:"true"` 7395} 7396 7397// String returns the string representation 7398func (s CreateReplicaAction) String() string { 7399 return awsutil.Prettify(s) 7400} 7401 7402// GoString returns the string representation 7403func (s CreateReplicaAction) GoString() string { 7404 return s.String() 7405} 7406 7407// Validate inspects the fields of the type to determine if they are valid. 7408func (s *CreateReplicaAction) Validate() error { 7409 invalidParams := request.ErrInvalidParams{Context: "CreateReplicaAction"} 7410 if s.RegionName == nil { 7411 invalidParams.Add(request.NewErrParamRequired("RegionName")) 7412 } 7413 7414 if invalidParams.Len() > 0 { 7415 return invalidParams 7416 } 7417 return nil 7418} 7419 7420// SetRegionName sets the RegionName field's value. 7421func (s *CreateReplicaAction) SetRegionName(v string) *CreateReplicaAction { 7422 s.RegionName = &v 7423 return s 7424} 7425 7426// Represents the input of a CreateTable operation. 7427type CreateTableInput struct { 7428 _ struct{} `type:"structure"` 7429 7430 // An array of attributes that describe the key schema for the table and indexes. 7431 // 7432 // AttributeDefinitions is a required field 7433 AttributeDefinitions []*AttributeDefinition `type:"list" required:"true"` 7434 7435 // Controls how you are charged for read and write throughput and how you manage 7436 // capacity. This setting can be changed later. 7437 // 7438 // * PROVISIONED - Sets the billing mode to PROVISIONED. We recommend using 7439 // PROVISIONED for predictable workloads. 7440 // 7441 // * PAY_PER_REQUEST - Sets the billing mode to PAY_PER_REQUEST. We recommend 7442 // using PAY_PER_REQUEST for unpredictable workloads. 7443 BillingMode *string `type:"string" enum:"BillingMode"` 7444 7445 // One or more global secondary indexes (the maximum is 20) to be created on 7446 // the table. Each global secondary index in the array includes the following: 7447 // 7448 // * IndexName - The name of the global secondary index. Must be unique only 7449 // for this table. 7450 // 7451 // * KeySchema - Specifies the key schema for the global secondary index. 7452 // 7453 // * Projection - Specifies attributes that are copied (projected) from the 7454 // table into the index. These are in addition to the primary key attributes 7455 // and index key attributes, which are automatically projected. Each attribute 7456 // specification is composed of: ProjectionType - One of the following: KEYS_ONLY 7457 // - Only the index and primary keys are projected into the index. INCLUDE 7458 // - Only the specified table attributes are projected into the index. The 7459 // list of projected attributes is in NonKeyAttributes. ALL - All of the 7460 // table attributes are projected into the index. NonKeyAttributes - A list 7461 // of one or more non-key attribute names that are projected into the secondary 7462 // index. The total count of attributes provided in NonKeyAttributes, summed 7463 // across all of the secondary indexes, must not exceed 100. If you project 7464 // the same attribute into two different indexes, this counts as two distinct 7465 // attributes when determining the total. 7466 // 7467 // * ProvisionedThroughput - The provisioned throughput settings for the 7468 // global secondary index, consisting of read and write capacity units. 7469 GlobalSecondaryIndexes []*GlobalSecondaryIndex `type:"list"` 7470 7471 // Specifies the attributes that make up the primary key for a table or an index. 7472 // The attributes in KeySchema must also be defined in the AttributeDefinitions 7473 // array. For more information, see Data Model (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html) 7474 // in the Amazon DynamoDB Developer Guide. 7475 // 7476 // Each KeySchemaElement in the array is composed of: 7477 // 7478 // * AttributeName - The name of this key attribute. 7479 // 7480 // * KeyType - The role that the key attribute will assume: HASH - partition 7481 // key RANGE - sort key 7482 // 7483 // The partition key of an item is also known as its hash attribute. The term 7484 // "hash attribute" derives from the DynamoDB usage of an internal hash function 7485 // to evenly distribute data items across partitions, based on their partition 7486 // key values. 7487 // 7488 // The sort key of an item is also known as its range attribute. The term "range 7489 // attribute" derives from the way DynamoDB stores items with the same partition 7490 // key physically close together, in sorted order by the sort key value. 7491 // 7492 // For a simple primary key (partition key), you must provide exactly one element 7493 // with a KeyType of HASH. 7494 // 7495 // For a composite primary key (partition key and sort key), you must provide 7496 // exactly two elements, in this order: The first element must have a KeyType 7497 // of HASH, and the second element must have a KeyType of RANGE. 7498 // 7499 // For more information, see Working with Tables (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#WorkingWithTables.primary.key) 7500 // in the Amazon DynamoDB Developer Guide. 7501 // 7502 // KeySchema is a required field 7503 KeySchema []*KeySchemaElement `min:"1" type:"list" required:"true"` 7504 7505 // One or more local secondary indexes (the maximum is 5) to be created on the 7506 // table. Each index is scoped to a given partition key value. There is a 10 7507 // GB size limit per partition key value; otherwise, the size of a local secondary 7508 // index is unconstrained. 7509 // 7510 // Each local secondary index in the array includes the following: 7511 // 7512 // * IndexName - The name of the local secondary index. Must be unique only 7513 // for this table. 7514 // 7515 // * KeySchema - Specifies the key schema for the local secondary index. 7516 // The key schema must begin with the same partition key as the table. 7517 // 7518 // * Projection - Specifies attributes that are copied (projected) from the 7519 // table into the index. These are in addition to the primary key attributes 7520 // and index key attributes, which are automatically projected. Each attribute 7521 // specification is composed of: ProjectionType - One of the following: KEYS_ONLY 7522 // - Only the index and primary keys are projected into the index. INCLUDE 7523 // - Only the specified table attributes are projected into the index. The 7524 // list of projected attributes is in NonKeyAttributes. ALL - All of the 7525 // table attributes are projected into the index. NonKeyAttributes - A list 7526 // of one or more non-key attribute names that are projected into the secondary 7527 // index. The total count of attributes provided in NonKeyAttributes, summed 7528 // across all of the secondary indexes, must not exceed 100. If you project 7529 // the same attribute into two different indexes, this counts as two distinct 7530 // attributes when determining the total. 7531 LocalSecondaryIndexes []*LocalSecondaryIndex `type:"list"` 7532 7533 // Represents the provisioned throughput settings for a specified table or index. 7534 // The settings can be modified using the UpdateTable operation. 7535 // 7536 // If you set BillingMode as PROVISIONED, you must specify this property. If 7537 // you set BillingMode as PAY_PER_REQUEST, you cannot specify this property. 7538 // 7539 // For current minimum and maximum provisioned throughput values, see Limits 7540 // (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) 7541 // in the Amazon DynamoDB Developer Guide. 7542 ProvisionedThroughput *ProvisionedThroughput `type:"structure"` 7543 7544 // Represents the settings used to enable server-side encryption. 7545 SSESpecification *SSESpecification `type:"structure"` 7546 7547 // The settings for DynamoDB Streams on the table. These settings consist of: 7548 // 7549 // * StreamEnabled - Indicates whether DynamoDB Streams is to be enabled 7550 // (true) or disabled (false). 7551 // 7552 // * StreamViewType - When an item in the table is modified, StreamViewType 7553 // determines what information is written to the table's stream. Valid values 7554 // for StreamViewType are: KEYS_ONLY - Only the key attributes of the modified 7555 // item are written to the stream. NEW_IMAGE - The entire item, as it appears 7556 // after it was modified, is written to the stream. OLD_IMAGE - The entire 7557 // item, as it appeared before it was modified, is written to the stream. 7558 // NEW_AND_OLD_IMAGES - Both the new and the old item images of the item 7559 // are written to the stream. 7560 StreamSpecification *StreamSpecification `type:"structure"` 7561 7562 // The name of the table to create. 7563 // 7564 // TableName is a required field 7565 TableName *string `min:"3" type:"string" required:"true"` 7566 7567 // A list of key-value pairs to label the table. For more information, see Tagging 7568 // for DynamoDB (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html). 7569 Tags []*Tag `type:"list"` 7570} 7571 7572// String returns the string representation 7573func (s CreateTableInput) String() string { 7574 return awsutil.Prettify(s) 7575} 7576 7577// GoString returns the string representation 7578func (s CreateTableInput) GoString() string { 7579 return s.String() 7580} 7581 7582// Validate inspects the fields of the type to determine if they are valid. 7583func (s *CreateTableInput) Validate() error { 7584 invalidParams := request.ErrInvalidParams{Context: "CreateTableInput"} 7585 if s.AttributeDefinitions == nil { 7586 invalidParams.Add(request.NewErrParamRequired("AttributeDefinitions")) 7587 } 7588 if s.KeySchema == nil { 7589 invalidParams.Add(request.NewErrParamRequired("KeySchema")) 7590 } 7591 if s.KeySchema != nil && len(s.KeySchema) < 1 { 7592 invalidParams.Add(request.NewErrParamMinLen("KeySchema", 1)) 7593 } 7594 if s.TableName == nil { 7595 invalidParams.Add(request.NewErrParamRequired("TableName")) 7596 } 7597 if s.TableName != nil && len(*s.TableName) < 3 { 7598 invalidParams.Add(request.NewErrParamMinLen("TableName", 3)) 7599 } 7600 if s.AttributeDefinitions != nil { 7601 for i, v := range s.AttributeDefinitions { 7602 if v == nil { 7603 continue 7604 } 7605 if err := v.Validate(); err != nil { 7606 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeDefinitions", i), err.(request.ErrInvalidParams)) 7607 } 7608 } 7609 } 7610 if s.GlobalSecondaryIndexes != nil { 7611 for i, v := range s.GlobalSecondaryIndexes { 7612 if v == nil { 7613 continue 7614 } 7615 if err := v.Validate(); err != nil { 7616 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "GlobalSecondaryIndexes", i), err.(request.ErrInvalidParams)) 7617 } 7618 } 7619 } 7620 if s.KeySchema != nil { 7621 for i, v := range s.KeySchema { 7622 if v == nil { 7623 continue 7624 } 7625 if err := v.Validate(); err != nil { 7626 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "KeySchema", i), err.(request.ErrInvalidParams)) 7627 } 7628 } 7629 } 7630 if s.LocalSecondaryIndexes != nil { 7631 for i, v := range s.LocalSecondaryIndexes { 7632 if v == nil { 7633 continue 7634 } 7635 if err := v.Validate(); err != nil { 7636 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "LocalSecondaryIndexes", i), err.(request.ErrInvalidParams)) 7637 } 7638 } 7639 } 7640 if s.ProvisionedThroughput != nil { 7641 if err := s.ProvisionedThroughput.Validate(); err != nil { 7642 invalidParams.AddNested("ProvisionedThroughput", err.(request.ErrInvalidParams)) 7643 } 7644 } 7645 if s.Tags != nil { 7646 for i, v := range s.Tags { 7647 if v == nil { 7648 continue 7649 } 7650 if err := v.Validate(); err != nil { 7651 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) 7652 } 7653 } 7654 } 7655 7656 if invalidParams.Len() > 0 { 7657 return invalidParams 7658 } 7659 return nil 7660} 7661 7662// SetAttributeDefinitions sets the AttributeDefinitions field's value. 7663func (s *CreateTableInput) SetAttributeDefinitions(v []*AttributeDefinition) *CreateTableInput { 7664 s.AttributeDefinitions = v 7665 return s 7666} 7667 7668// SetBillingMode sets the BillingMode field's value. 7669func (s *CreateTableInput) SetBillingMode(v string) *CreateTableInput { 7670 s.BillingMode = &v 7671 return s 7672} 7673 7674// SetGlobalSecondaryIndexes sets the GlobalSecondaryIndexes field's value. 7675func (s *CreateTableInput) SetGlobalSecondaryIndexes(v []*GlobalSecondaryIndex) *CreateTableInput { 7676 s.GlobalSecondaryIndexes = v 7677 return s 7678} 7679 7680// SetKeySchema sets the KeySchema field's value. 7681func (s *CreateTableInput) SetKeySchema(v []*KeySchemaElement) *CreateTableInput { 7682 s.KeySchema = v 7683 return s 7684} 7685 7686// SetLocalSecondaryIndexes sets the LocalSecondaryIndexes field's value. 7687func (s *CreateTableInput) SetLocalSecondaryIndexes(v []*LocalSecondaryIndex) *CreateTableInput { 7688 s.LocalSecondaryIndexes = v 7689 return s 7690} 7691 7692// SetProvisionedThroughput sets the ProvisionedThroughput field's value. 7693func (s *CreateTableInput) SetProvisionedThroughput(v *ProvisionedThroughput) *CreateTableInput { 7694 s.ProvisionedThroughput = v 7695 return s 7696} 7697 7698// SetSSESpecification sets the SSESpecification field's value. 7699func (s *CreateTableInput) SetSSESpecification(v *SSESpecification) *CreateTableInput { 7700 s.SSESpecification = v 7701 return s 7702} 7703 7704// SetStreamSpecification sets the StreamSpecification field's value. 7705func (s *CreateTableInput) SetStreamSpecification(v *StreamSpecification) *CreateTableInput { 7706 s.StreamSpecification = v 7707 return s 7708} 7709 7710// SetTableName sets the TableName field's value. 7711func (s *CreateTableInput) SetTableName(v string) *CreateTableInput { 7712 s.TableName = &v 7713 return s 7714} 7715 7716// SetTags sets the Tags field's value. 7717func (s *CreateTableInput) SetTags(v []*Tag) *CreateTableInput { 7718 s.Tags = v 7719 return s 7720} 7721 7722// Represents the output of a CreateTable operation. 7723type CreateTableOutput struct { 7724 _ struct{} `type:"structure"` 7725 7726 // Represents the properties of the table. 7727 TableDescription *TableDescription `type:"structure"` 7728} 7729 7730// String returns the string representation 7731func (s CreateTableOutput) String() string { 7732 return awsutil.Prettify(s) 7733} 7734 7735// GoString returns the string representation 7736func (s CreateTableOutput) GoString() string { 7737 return s.String() 7738} 7739 7740// SetTableDescription sets the TableDescription field's value. 7741func (s *CreateTableOutput) SetTableDescription(v *TableDescription) *CreateTableOutput { 7742 s.TableDescription = v 7743 return s 7744} 7745 7746// Represents a request to perform a DeleteItem operation. 7747type Delete struct { 7748 _ struct{} `type:"structure"` 7749 7750 // A condition that must be satisfied in order for a conditional delete to succeed. 7751 ConditionExpression *string `type:"string"` 7752 7753 // One or more substitution tokens for attribute names in an expression. 7754 ExpressionAttributeNames map[string]*string `type:"map"` 7755 7756 // One or more values that can be substituted in an expression. 7757 ExpressionAttributeValues map[string]*AttributeValue `type:"map"` 7758 7759 // The primary key of the item to be deleted. Each element consists of an attribute 7760 // name and a value for that attribute. 7761 // 7762 // Key is a required field 7763 Key map[string]*AttributeValue `type:"map" required:"true"` 7764 7765 // Use ReturnValuesOnConditionCheckFailure to get the item attributes if the 7766 // Delete condition fails. For ReturnValuesOnConditionCheckFailure, the valid 7767 // values are: NONE and ALL_OLD. 7768 ReturnValuesOnConditionCheckFailure *string `type:"string" enum:"ReturnValuesOnConditionCheckFailure"` 7769 7770 // Name of the table in which the item to be deleted resides. 7771 // 7772 // TableName is a required field 7773 TableName *string `min:"3" type:"string" required:"true"` 7774} 7775 7776// String returns the string representation 7777func (s Delete) String() string { 7778 return awsutil.Prettify(s) 7779} 7780 7781// GoString returns the string representation 7782func (s Delete) GoString() string { 7783 return s.String() 7784} 7785 7786// Validate inspects the fields of the type to determine if they are valid. 7787func (s *Delete) Validate() error { 7788 invalidParams := request.ErrInvalidParams{Context: "Delete"} 7789 if s.Key == nil { 7790 invalidParams.Add(request.NewErrParamRequired("Key")) 7791 } 7792 if s.TableName == nil { 7793 invalidParams.Add(request.NewErrParamRequired("TableName")) 7794 } 7795 if s.TableName != nil && len(*s.TableName) < 3 { 7796 invalidParams.Add(request.NewErrParamMinLen("TableName", 3)) 7797 } 7798 7799 if invalidParams.Len() > 0 { 7800 return invalidParams 7801 } 7802 return nil 7803} 7804 7805// SetConditionExpression sets the ConditionExpression field's value. 7806func (s *Delete) SetConditionExpression(v string) *Delete { 7807 s.ConditionExpression = &v 7808 return s 7809} 7810 7811// SetExpressionAttributeNames sets the ExpressionAttributeNames field's value. 7812func (s *Delete) SetExpressionAttributeNames(v map[string]*string) *Delete { 7813 s.ExpressionAttributeNames = v 7814 return s 7815} 7816 7817// SetExpressionAttributeValues sets the ExpressionAttributeValues field's value. 7818func (s *Delete) SetExpressionAttributeValues(v map[string]*AttributeValue) *Delete { 7819 s.ExpressionAttributeValues = v 7820 return s 7821} 7822 7823// SetKey sets the Key field's value. 7824func (s *Delete) SetKey(v map[string]*AttributeValue) *Delete { 7825 s.Key = v 7826 return s 7827} 7828 7829// SetReturnValuesOnConditionCheckFailure sets the ReturnValuesOnConditionCheckFailure field's value. 7830func (s *Delete) SetReturnValuesOnConditionCheckFailure(v string) *Delete { 7831 s.ReturnValuesOnConditionCheckFailure = &v 7832 return s 7833} 7834 7835// SetTableName sets the TableName field's value. 7836func (s *Delete) SetTableName(v string) *Delete { 7837 s.TableName = &v 7838 return s 7839} 7840 7841type DeleteBackupInput struct { 7842 _ struct{} `type:"structure"` 7843 7844 // The ARN associated with the backup. 7845 // 7846 // BackupArn is a required field 7847 BackupArn *string `min:"37" type:"string" required:"true"` 7848} 7849 7850// String returns the string representation 7851func (s DeleteBackupInput) String() string { 7852 return awsutil.Prettify(s) 7853} 7854 7855// GoString returns the string representation 7856func (s DeleteBackupInput) GoString() string { 7857 return s.String() 7858} 7859 7860// Validate inspects the fields of the type to determine if they are valid. 7861func (s *DeleteBackupInput) Validate() error { 7862 invalidParams := request.ErrInvalidParams{Context: "DeleteBackupInput"} 7863 if s.BackupArn == nil { 7864 invalidParams.Add(request.NewErrParamRequired("BackupArn")) 7865 } 7866 if s.BackupArn != nil && len(*s.BackupArn) < 37 { 7867 invalidParams.Add(request.NewErrParamMinLen("BackupArn", 37)) 7868 } 7869 7870 if invalidParams.Len() > 0 { 7871 return invalidParams 7872 } 7873 return nil 7874} 7875 7876// SetBackupArn sets the BackupArn field's value. 7877func (s *DeleteBackupInput) SetBackupArn(v string) *DeleteBackupInput { 7878 s.BackupArn = &v 7879 return s 7880} 7881 7882type DeleteBackupOutput struct { 7883 _ struct{} `type:"structure"` 7884 7885 // Contains the description of the backup created for the table. 7886 BackupDescription *BackupDescription `type:"structure"` 7887} 7888 7889// String returns the string representation 7890func (s DeleteBackupOutput) String() string { 7891 return awsutil.Prettify(s) 7892} 7893 7894// GoString returns the string representation 7895func (s DeleteBackupOutput) GoString() string { 7896 return s.String() 7897} 7898 7899// SetBackupDescription sets the BackupDescription field's value. 7900func (s *DeleteBackupOutput) SetBackupDescription(v *BackupDescription) *DeleteBackupOutput { 7901 s.BackupDescription = v 7902 return s 7903} 7904 7905// Represents a global secondary index to be deleted from an existing table. 7906type DeleteGlobalSecondaryIndexAction struct { 7907 _ struct{} `type:"structure"` 7908 7909 // The name of the global secondary index to be deleted. 7910 // 7911 // IndexName is a required field 7912 IndexName *string `min:"3" type:"string" required:"true"` 7913} 7914 7915// String returns the string representation 7916func (s DeleteGlobalSecondaryIndexAction) String() string { 7917 return awsutil.Prettify(s) 7918} 7919 7920// GoString returns the string representation 7921func (s DeleteGlobalSecondaryIndexAction) GoString() string { 7922 return s.String() 7923} 7924 7925// Validate inspects the fields of the type to determine if they are valid. 7926func (s *DeleteGlobalSecondaryIndexAction) Validate() error { 7927 invalidParams := request.ErrInvalidParams{Context: "DeleteGlobalSecondaryIndexAction"} 7928 if s.IndexName == nil { 7929 invalidParams.Add(request.NewErrParamRequired("IndexName")) 7930 } 7931 if s.IndexName != nil && len(*s.IndexName) < 3 { 7932 invalidParams.Add(request.NewErrParamMinLen("IndexName", 3)) 7933 } 7934 7935 if invalidParams.Len() > 0 { 7936 return invalidParams 7937 } 7938 return nil 7939} 7940 7941// SetIndexName sets the IndexName field's value. 7942func (s *DeleteGlobalSecondaryIndexAction) SetIndexName(v string) *DeleteGlobalSecondaryIndexAction { 7943 s.IndexName = &v 7944 return s 7945} 7946 7947// Represents the input of a DeleteItem operation. 7948type DeleteItemInput struct { 7949 _ struct{} `type:"structure"` 7950 7951 // A condition that must be satisfied in order for a conditional DeleteItem 7952 // to succeed. 7953 // 7954 // An expression can contain any of the following: 7955 // 7956 // * Functions: attribute_exists | attribute_not_exists | attribute_type 7957 // | contains | begins_with | size These function names are case-sensitive. 7958 // 7959 // * Comparison operators: = | <> | < | > | <= | >= | BETWEEN | IN 7960 // 7961 // * Logical operators: AND | OR | NOT 7962 // 7963 // For more information about condition expressions, see Condition Expressions 7964 // (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html) 7965 // in the Amazon DynamoDB Developer Guide. 7966 ConditionExpression *string `type:"string"` 7967 7968 // This is a legacy parameter. Use ConditionExpression instead. For more information, 7969 // see ConditionalOperator (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ConditionalOperator.html) 7970 // in the Amazon DynamoDB Developer Guide. 7971 ConditionalOperator *string `type:"string" enum:"ConditionalOperator"` 7972 7973 // This is a legacy parameter. Use ConditionExpression instead. For more information, 7974 // see Expected (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.Expected.html) 7975 // in the Amazon DynamoDB Developer Guide. 7976 Expected map[string]*ExpectedAttributeValue `type:"map"` 7977 7978 // One or more substitution tokens for attribute names in an expression. The 7979 // following are some use cases for using ExpressionAttributeNames: 7980 // 7981 // * To access an attribute whose name conflicts with a DynamoDB reserved 7982 // word. 7983 // 7984 // * To create a placeholder for repeating occurrences of an attribute name 7985 // in an expression. 7986 // 7987 // * To prevent special characters in an attribute name from being misinterpreted 7988 // in an expression. 7989 // 7990 // Use the # character in an expression to dereference an attribute name. For 7991 // example, consider the following attribute name: 7992 // 7993 // * Percentile 7994 // 7995 // The name of this attribute conflicts with a reserved word, so it cannot be 7996 // used directly in an expression. (For the complete list of reserved words, 7997 // see Reserved Words (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html) 7998 // in the Amazon DynamoDB Developer Guide). To work around this, you could specify 7999 // the following for ExpressionAttributeNames: 8000 // 8001 // * {"#P":"Percentile"} 8002 // 8003 // You could then use this substitution in an expression, as in this example: 8004 // 8005 // * #P = :val 8006 // 8007 // Tokens that begin with the : character are expression attribute values, which 8008 // are placeholders for the actual value at runtime. 8009 // 8010 // For more information on expression attribute names, see Specifying Item Attributes 8011 // (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html) 8012 // in the Amazon DynamoDB Developer Guide. 8013 ExpressionAttributeNames map[string]*string `type:"map"` 8014 8015 // One or more values that can be substituted in an expression. 8016 // 8017 // Use the : (colon) character in an expression to dereference an attribute 8018 // value. For example, suppose that you wanted to check whether the value of 8019 // the ProductStatus attribute was one of the following: 8020 // 8021 // Available | Backordered | Discontinued 8022 // 8023 // You would first need to specify ExpressionAttributeValues as follows: 8024 // 8025 // { ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"} 8026 // } 8027 // 8028 // You could then use these values in an expression, such as this: 8029 // 8030 // ProductStatus IN (:avail, :back, :disc) 8031 // 8032 // For more information on expression attribute values, see Condition Expressions 8033 // (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html) 8034 // in the Amazon DynamoDB Developer Guide. 8035 ExpressionAttributeValues map[string]*AttributeValue `type:"map"` 8036 8037 // A map of attribute names to AttributeValue objects, representing the primary 8038 // key of the item to delete. 8039 // 8040 // For the primary key, you must provide all of the attributes. For example, 8041 // with a simple primary key, you only need to provide a value for the partition 8042 // key. For a composite primary key, you must provide values for both the partition 8043 // key and the sort key. 8044 // 8045 // Key is a required field 8046 Key map[string]*AttributeValue `type:"map" required:"true"` 8047 8048 // Determines the level of detail about provisioned throughput consumption that 8049 // is returned in the response: 8050 // 8051 // * INDEXES - The response includes the aggregate ConsumedCapacity for the 8052 // operation, together with ConsumedCapacity for each table and secondary 8053 // index that was accessed. Note that some operations, such as GetItem and 8054 // BatchGetItem, do not access any indexes at all. In these cases, specifying 8055 // INDEXES will only return ConsumedCapacity information for table(s). 8056 // 8057 // * TOTAL - The response includes only the aggregate ConsumedCapacity for 8058 // the operation. 8059 // 8060 // * NONE - No ConsumedCapacity details are included in the response. 8061 ReturnConsumedCapacity *string `type:"string" enum:"ReturnConsumedCapacity"` 8062 8063 // Determines whether item collection metrics are returned. If set to SIZE, 8064 // the response includes statistics about item collections, if any, that were 8065 // modified during the operation are returned in the response. If set to NONE 8066 // (the default), no statistics are returned. 8067 ReturnItemCollectionMetrics *string `type:"string" enum:"ReturnItemCollectionMetrics"` 8068 8069 // Use ReturnValues if you want to get the item attributes as they appeared 8070 // before they were deleted. For DeleteItem, the valid values are: 8071 // 8072 // * NONE - If ReturnValues is not specified, or if its value is NONE, then 8073 // nothing is returned. (This setting is the default for ReturnValues.) 8074 // 8075 // * ALL_OLD - The content of the old item is returned. 8076 // 8077 // The ReturnValues parameter is used by several DynamoDB operations; however, 8078 // DeleteItem does not recognize any values other than NONE or ALL_OLD. 8079 ReturnValues *string `type:"string" enum:"ReturnValue"` 8080 8081 // The name of the table from which to delete the item. 8082 // 8083 // TableName is a required field 8084 TableName *string `min:"3" type:"string" required:"true"` 8085} 8086 8087// String returns the string representation 8088func (s DeleteItemInput) String() string { 8089 return awsutil.Prettify(s) 8090} 8091 8092// GoString returns the string representation 8093func (s DeleteItemInput) GoString() string { 8094 return s.String() 8095} 8096 8097// Validate inspects the fields of the type to determine if they are valid. 8098func (s *DeleteItemInput) Validate() error { 8099 invalidParams := request.ErrInvalidParams{Context: "DeleteItemInput"} 8100 if s.Key == nil { 8101 invalidParams.Add(request.NewErrParamRequired("Key")) 8102 } 8103 if s.TableName == nil { 8104 invalidParams.Add(request.NewErrParamRequired("TableName")) 8105 } 8106 if s.TableName != nil && len(*s.TableName) < 3 { 8107 invalidParams.Add(request.NewErrParamMinLen("TableName", 3)) 8108 } 8109 8110 if invalidParams.Len() > 0 { 8111 return invalidParams 8112 } 8113 return nil 8114} 8115 8116// SetConditionExpression sets the ConditionExpression field's value. 8117func (s *DeleteItemInput) SetConditionExpression(v string) *DeleteItemInput { 8118 s.ConditionExpression = &v 8119 return s 8120} 8121 8122// SetConditionalOperator sets the ConditionalOperator field's value. 8123func (s *DeleteItemInput) SetConditionalOperator(v string) *DeleteItemInput { 8124 s.ConditionalOperator = &v 8125 return s 8126} 8127 8128// SetExpected sets the Expected field's value. 8129func (s *DeleteItemInput) SetExpected(v map[string]*ExpectedAttributeValue) *DeleteItemInput { 8130 s.Expected = v 8131 return s 8132} 8133 8134// SetExpressionAttributeNames sets the ExpressionAttributeNames field's value. 8135func (s *DeleteItemInput) SetExpressionAttributeNames(v map[string]*string) *DeleteItemInput { 8136 s.ExpressionAttributeNames = v 8137 return s 8138} 8139 8140// SetExpressionAttributeValues sets the ExpressionAttributeValues field's value. 8141func (s *DeleteItemInput) SetExpressionAttributeValues(v map[string]*AttributeValue) *DeleteItemInput { 8142 s.ExpressionAttributeValues = v 8143 return s 8144} 8145 8146// SetKey sets the Key field's value. 8147func (s *DeleteItemInput) SetKey(v map[string]*AttributeValue) *DeleteItemInput { 8148 s.Key = v 8149 return s 8150} 8151 8152// SetReturnConsumedCapacity sets the ReturnConsumedCapacity field's value. 8153func (s *DeleteItemInput) SetReturnConsumedCapacity(v string) *DeleteItemInput { 8154 s.ReturnConsumedCapacity = &v 8155 return s 8156} 8157 8158// SetReturnItemCollectionMetrics sets the ReturnItemCollectionMetrics field's value. 8159func (s *DeleteItemInput) SetReturnItemCollectionMetrics(v string) *DeleteItemInput { 8160 s.ReturnItemCollectionMetrics = &v 8161 return s 8162} 8163 8164// SetReturnValues sets the ReturnValues field's value. 8165func (s *DeleteItemInput) SetReturnValues(v string) *DeleteItemInput { 8166 s.ReturnValues = &v 8167 return s 8168} 8169 8170// SetTableName sets the TableName field's value. 8171func (s *DeleteItemInput) SetTableName(v string) *DeleteItemInput { 8172 s.TableName = &v 8173 return s 8174} 8175 8176// Represents the output of a DeleteItem operation. 8177type DeleteItemOutput struct { 8178 _ struct{} `type:"structure"` 8179 8180 // A map of attribute names to AttributeValue objects, representing the item 8181 // as it appeared before the DeleteItem operation. This map appears in the response 8182 // only if ReturnValues was specified as ALL_OLD in the request. 8183 Attributes map[string]*AttributeValue `type:"map"` 8184 8185 // The capacity units consumed by the DeleteItem operation. The data returned 8186 // includes the total provisioned throughput consumed, along with statistics 8187 // for the table and any indexes involved in the operation. ConsumedCapacity 8188 // is only returned if the ReturnConsumedCapacity parameter was specified. For 8189 // more information, see Provisioned Mode (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html) 8190 // in the Amazon DynamoDB Developer Guide. 8191 ConsumedCapacity *ConsumedCapacity `type:"structure"` 8192 8193 // Information about item collections, if any, that were affected by the DeleteItem 8194 // operation. ItemCollectionMetrics is only returned if the ReturnItemCollectionMetrics 8195 // parameter was specified. If the table does not have any local secondary indexes, 8196 // this information is not returned in the response. 8197 // 8198 // Each ItemCollectionMetrics element consists of: 8199 // 8200 // * ItemCollectionKey - The partition key value of the item collection. 8201 // This is the same as the partition key value of the item itself. 8202 // 8203 // * SizeEstimateRangeGB - An estimate of item collection size, in gigabytes. 8204 // This value is a two-element array containing a lower bound and an upper 8205 // bound for the estimate. The estimate includes the size of all the items 8206 // in the table, plus the size of all attributes projected into all of the 8207 // local secondary indexes on that table. Use this estimate to measure whether 8208 // a local secondary index is approaching its size limit. The estimate is 8209 // subject to change over time; therefore, do not rely on the precision or 8210 // accuracy of the estimate. 8211 ItemCollectionMetrics *ItemCollectionMetrics `type:"structure"` 8212} 8213 8214// String returns the string representation 8215func (s DeleteItemOutput) String() string { 8216 return awsutil.Prettify(s) 8217} 8218 8219// GoString returns the string representation 8220func (s DeleteItemOutput) GoString() string { 8221 return s.String() 8222} 8223 8224// SetAttributes sets the Attributes field's value. 8225func (s *DeleteItemOutput) SetAttributes(v map[string]*AttributeValue) *DeleteItemOutput { 8226 s.Attributes = v 8227 return s 8228} 8229 8230// SetConsumedCapacity sets the ConsumedCapacity field's value. 8231func (s *DeleteItemOutput) SetConsumedCapacity(v *ConsumedCapacity) *DeleteItemOutput { 8232 s.ConsumedCapacity = v 8233 return s 8234} 8235 8236// SetItemCollectionMetrics sets the ItemCollectionMetrics field's value. 8237func (s *DeleteItemOutput) SetItemCollectionMetrics(v *ItemCollectionMetrics) *DeleteItemOutput { 8238 s.ItemCollectionMetrics = v 8239 return s 8240} 8241 8242// Represents a replica to be removed. 8243type DeleteReplicaAction struct { 8244 _ struct{} `type:"structure"` 8245 8246 // The region of the replica to be removed. 8247 // 8248 // RegionName is a required field 8249 RegionName *string `type:"string" required:"true"` 8250} 8251 8252// String returns the string representation 8253func (s DeleteReplicaAction) String() string { 8254 return awsutil.Prettify(s) 8255} 8256 8257// GoString returns the string representation 8258func (s DeleteReplicaAction) GoString() string { 8259 return s.String() 8260} 8261 8262// Validate inspects the fields of the type to determine if they are valid. 8263func (s *DeleteReplicaAction) Validate() error { 8264 invalidParams := request.ErrInvalidParams{Context: "DeleteReplicaAction"} 8265 if s.RegionName == nil { 8266 invalidParams.Add(request.NewErrParamRequired("RegionName")) 8267 } 8268 8269 if invalidParams.Len() > 0 { 8270 return invalidParams 8271 } 8272 return nil 8273} 8274 8275// SetRegionName sets the RegionName field's value. 8276func (s *DeleteReplicaAction) SetRegionName(v string) *DeleteReplicaAction { 8277 s.RegionName = &v 8278 return s 8279} 8280 8281// Represents a request to perform a DeleteItem operation on an item. 8282type DeleteRequest struct { 8283 _ struct{} `type:"structure"` 8284 8285 // A map of attribute name to attribute values, representing the primary key 8286 // of the item to delete. All of the table's primary key attributes must be 8287 // specified, and their data types must match those of the table's key schema. 8288 // 8289 // Key is a required field 8290 Key map[string]*AttributeValue `type:"map" required:"true"` 8291} 8292 8293// String returns the string representation 8294func (s DeleteRequest) String() string { 8295 return awsutil.Prettify(s) 8296} 8297 8298// GoString returns the string representation 8299func (s DeleteRequest) GoString() string { 8300 return s.String() 8301} 8302 8303// SetKey sets the Key field's value. 8304func (s *DeleteRequest) SetKey(v map[string]*AttributeValue) *DeleteRequest { 8305 s.Key = v 8306 return s 8307} 8308 8309// Represents the input of a DeleteTable operation. 8310type DeleteTableInput struct { 8311 _ struct{} `type:"structure"` 8312 8313 // The name of the table to delete. 8314 // 8315 // TableName is a required field 8316 TableName *string `min:"3" type:"string" required:"true"` 8317} 8318 8319// String returns the string representation 8320func (s DeleteTableInput) String() string { 8321 return awsutil.Prettify(s) 8322} 8323 8324// GoString returns the string representation 8325func (s DeleteTableInput) GoString() string { 8326 return s.String() 8327} 8328 8329// Validate inspects the fields of the type to determine if they are valid. 8330func (s *DeleteTableInput) Validate() error { 8331 invalidParams := request.ErrInvalidParams{Context: "DeleteTableInput"} 8332 if s.TableName == nil { 8333 invalidParams.Add(request.NewErrParamRequired("TableName")) 8334 } 8335 if s.TableName != nil && len(*s.TableName) < 3 { 8336 invalidParams.Add(request.NewErrParamMinLen("TableName", 3)) 8337 } 8338 8339 if invalidParams.Len() > 0 { 8340 return invalidParams 8341 } 8342 return nil 8343} 8344 8345// SetTableName sets the TableName field's value. 8346func (s *DeleteTableInput) SetTableName(v string) *DeleteTableInput { 8347 s.TableName = &v 8348 return s 8349} 8350 8351// Represents the output of a DeleteTable operation. 8352type DeleteTableOutput struct { 8353 _ struct{} `type:"structure"` 8354 8355 // Represents the properties of a table. 8356 TableDescription *TableDescription `type:"structure"` 8357} 8358 8359// String returns the string representation 8360func (s DeleteTableOutput) String() string { 8361 return awsutil.Prettify(s) 8362} 8363 8364// GoString returns the string representation 8365func (s DeleteTableOutput) GoString() string { 8366 return s.String() 8367} 8368 8369// SetTableDescription sets the TableDescription field's value. 8370func (s *DeleteTableOutput) SetTableDescription(v *TableDescription) *DeleteTableOutput { 8371 s.TableDescription = v 8372 return s 8373} 8374 8375type DescribeBackupInput struct { 8376 _ struct{} `type:"structure"` 8377 8378 // The Amazon Resource Name (ARN) associated with the backup. 8379 // 8380 // BackupArn is a required field 8381 BackupArn *string `min:"37" type:"string" required:"true"` 8382} 8383 8384// String returns the string representation 8385func (s DescribeBackupInput) String() string { 8386 return awsutil.Prettify(s) 8387} 8388 8389// GoString returns the string representation 8390func (s DescribeBackupInput) GoString() string { 8391 return s.String() 8392} 8393 8394// Validate inspects the fields of the type to determine if they are valid. 8395func (s *DescribeBackupInput) Validate() error { 8396 invalidParams := request.ErrInvalidParams{Context: "DescribeBackupInput"} 8397 if s.BackupArn == nil { 8398 invalidParams.Add(request.NewErrParamRequired("BackupArn")) 8399 } 8400 if s.BackupArn != nil && len(*s.BackupArn) < 37 { 8401 invalidParams.Add(request.NewErrParamMinLen("BackupArn", 37)) 8402 } 8403 8404 if invalidParams.Len() > 0 { 8405 return invalidParams 8406 } 8407 return nil 8408} 8409 8410// SetBackupArn sets the BackupArn field's value. 8411func (s *DescribeBackupInput) SetBackupArn(v string) *DescribeBackupInput { 8412 s.BackupArn = &v 8413 return s 8414} 8415 8416type DescribeBackupOutput struct { 8417 _ struct{} `type:"structure"` 8418 8419 // Contains the description of the backup created for the table. 8420 BackupDescription *BackupDescription `type:"structure"` 8421} 8422 8423// String returns the string representation 8424func (s DescribeBackupOutput) String() string { 8425 return awsutil.Prettify(s) 8426} 8427 8428// GoString returns the string representation 8429func (s DescribeBackupOutput) GoString() string { 8430 return s.String() 8431} 8432 8433// SetBackupDescription sets the BackupDescription field's value. 8434func (s *DescribeBackupOutput) SetBackupDescription(v *BackupDescription) *DescribeBackupOutput { 8435 s.BackupDescription = v 8436 return s 8437} 8438 8439type DescribeContinuousBackupsInput struct { 8440 _ struct{} `type:"structure"` 8441 8442 // Name of the table for which the customer wants to check the continuous backups 8443 // and point in time recovery settings. 8444 // 8445 // TableName is a required field 8446 TableName *string `min:"3" type:"string" required:"true"` 8447} 8448 8449// String returns the string representation 8450func (s DescribeContinuousBackupsInput) String() string { 8451 return awsutil.Prettify(s) 8452} 8453 8454// GoString returns the string representation 8455func (s DescribeContinuousBackupsInput) GoString() string { 8456 return s.String() 8457} 8458 8459// Validate inspects the fields of the type to determine if they are valid. 8460func (s *DescribeContinuousBackupsInput) Validate() error { 8461 invalidParams := request.ErrInvalidParams{Context: "DescribeContinuousBackupsInput"} 8462 if s.TableName == nil { 8463 invalidParams.Add(request.NewErrParamRequired("TableName")) 8464 } 8465 if s.TableName != nil && len(*s.TableName) < 3 { 8466 invalidParams.Add(request.NewErrParamMinLen("TableName", 3)) 8467 } 8468 8469 if invalidParams.Len() > 0 { 8470 return invalidParams 8471 } 8472 return nil 8473} 8474 8475// SetTableName sets the TableName field's value. 8476func (s *DescribeContinuousBackupsInput) SetTableName(v string) *DescribeContinuousBackupsInput { 8477 s.TableName = &v 8478 return s 8479} 8480 8481type DescribeContinuousBackupsOutput struct { 8482 _ struct{} `type:"structure"` 8483 8484 // Represents the continuous backups and point in time recovery settings on 8485 // the table. 8486 ContinuousBackupsDescription *ContinuousBackupsDescription `type:"structure"` 8487} 8488 8489// String returns the string representation 8490func (s DescribeContinuousBackupsOutput) String() string { 8491 return awsutil.Prettify(s) 8492} 8493 8494// GoString returns the string representation 8495func (s DescribeContinuousBackupsOutput) GoString() string { 8496 return s.String() 8497} 8498 8499// SetContinuousBackupsDescription sets the ContinuousBackupsDescription field's value. 8500func (s *DescribeContinuousBackupsOutput) SetContinuousBackupsDescription(v *ContinuousBackupsDescription) *DescribeContinuousBackupsOutput { 8501 s.ContinuousBackupsDescription = v 8502 return s 8503} 8504 8505type DescribeEndpointsInput struct { 8506 _ struct{} `type:"structure"` 8507} 8508 8509// String returns the string representation 8510func (s DescribeEndpointsInput) String() string { 8511 return awsutil.Prettify(s) 8512} 8513 8514// GoString returns the string representation 8515func (s DescribeEndpointsInput) GoString() string { 8516 return s.String() 8517} 8518 8519type DescribeEndpointsOutput struct { 8520 _ struct{} `type:"structure"` 8521 8522 // List of endpoints. 8523 // 8524 // Endpoints is a required field 8525 Endpoints []*Endpoint `type:"list" required:"true"` 8526} 8527 8528// String returns the string representation 8529func (s DescribeEndpointsOutput) String() string { 8530 return awsutil.Prettify(s) 8531} 8532 8533// GoString returns the string representation 8534func (s DescribeEndpointsOutput) GoString() string { 8535 return s.String() 8536} 8537 8538// SetEndpoints sets the Endpoints field's value. 8539func (s *DescribeEndpointsOutput) SetEndpoints(v []*Endpoint) *DescribeEndpointsOutput { 8540 s.Endpoints = v 8541 return s 8542} 8543 8544type DescribeGlobalTableInput struct { 8545 _ struct{} `type:"structure"` 8546 8547 // The name of the global table. 8548 // 8549 // GlobalTableName is a required field 8550 GlobalTableName *string `min:"3" type:"string" required:"true"` 8551} 8552 8553// String returns the string representation 8554func (s DescribeGlobalTableInput) String() string { 8555 return awsutil.Prettify(s) 8556} 8557 8558// GoString returns the string representation 8559func (s DescribeGlobalTableInput) GoString() string { 8560 return s.String() 8561} 8562 8563// Validate inspects the fields of the type to determine if they are valid. 8564func (s *DescribeGlobalTableInput) Validate() error { 8565 invalidParams := request.ErrInvalidParams{Context: "DescribeGlobalTableInput"} 8566 if s.GlobalTableName == nil { 8567 invalidParams.Add(request.NewErrParamRequired("GlobalTableName")) 8568 } 8569 if s.GlobalTableName != nil && len(*s.GlobalTableName) < 3 { 8570 invalidParams.Add(request.NewErrParamMinLen("GlobalTableName", 3)) 8571 } 8572 8573 if invalidParams.Len() > 0 { 8574 return invalidParams 8575 } 8576 return nil 8577} 8578 8579// SetGlobalTableName sets the GlobalTableName field's value. 8580func (s *DescribeGlobalTableInput) SetGlobalTableName(v string) *DescribeGlobalTableInput { 8581 s.GlobalTableName = &v 8582 return s 8583} 8584 8585type DescribeGlobalTableOutput struct { 8586 _ struct{} `type:"structure"` 8587 8588 // Contains the details of the global table. 8589 GlobalTableDescription *GlobalTableDescription `type:"structure"` 8590} 8591 8592// String returns the string representation 8593func (s DescribeGlobalTableOutput) String() string { 8594 return awsutil.Prettify(s) 8595} 8596 8597// GoString returns the string representation 8598func (s DescribeGlobalTableOutput) GoString() string { 8599 return s.String() 8600} 8601 8602// SetGlobalTableDescription sets the GlobalTableDescription field's value. 8603func (s *DescribeGlobalTableOutput) SetGlobalTableDescription(v *GlobalTableDescription) *DescribeGlobalTableOutput { 8604 s.GlobalTableDescription = v 8605 return s 8606} 8607 8608type DescribeGlobalTableSettingsInput struct { 8609 _ struct{} `type:"structure"` 8610 8611 // The name of the global table to describe. 8612 // 8613 // GlobalTableName is a required field 8614 GlobalTableName *string `min:"3" type:"string" required:"true"` 8615} 8616 8617// String returns the string representation 8618func (s DescribeGlobalTableSettingsInput) String() string { 8619 return awsutil.Prettify(s) 8620} 8621 8622// GoString returns the string representation 8623func (s DescribeGlobalTableSettingsInput) GoString() string { 8624 return s.String() 8625} 8626 8627// Validate inspects the fields of the type to determine if they are valid. 8628func (s *DescribeGlobalTableSettingsInput) Validate() error { 8629 invalidParams := request.ErrInvalidParams{Context: "DescribeGlobalTableSettingsInput"} 8630 if s.GlobalTableName == nil { 8631 invalidParams.Add(request.NewErrParamRequired("GlobalTableName")) 8632 } 8633 if s.GlobalTableName != nil && len(*s.GlobalTableName) < 3 { 8634 invalidParams.Add(request.NewErrParamMinLen("GlobalTableName", 3)) 8635 } 8636 8637 if invalidParams.Len() > 0 { 8638 return invalidParams 8639 } 8640 return nil 8641} 8642 8643// SetGlobalTableName sets the GlobalTableName field's value. 8644func (s *DescribeGlobalTableSettingsInput) SetGlobalTableName(v string) *DescribeGlobalTableSettingsInput { 8645 s.GlobalTableName = &v 8646 return s 8647} 8648 8649type DescribeGlobalTableSettingsOutput struct { 8650 _ struct{} `type:"structure"` 8651 8652 // The name of the global table. 8653 GlobalTableName *string `min:"3" type:"string"` 8654 8655 // The Region-specific settings for the global table. 8656 ReplicaSettings []*ReplicaSettingsDescription `type:"list"` 8657} 8658 8659// String returns the string representation 8660func (s DescribeGlobalTableSettingsOutput) String() string { 8661 return awsutil.Prettify(s) 8662} 8663 8664// GoString returns the string representation 8665func (s DescribeGlobalTableSettingsOutput) GoString() string { 8666 return s.String() 8667} 8668 8669// SetGlobalTableName sets the GlobalTableName field's value. 8670func (s *DescribeGlobalTableSettingsOutput) SetGlobalTableName(v string) *DescribeGlobalTableSettingsOutput { 8671 s.GlobalTableName = &v 8672 return s 8673} 8674 8675// SetReplicaSettings sets the ReplicaSettings field's value. 8676func (s *DescribeGlobalTableSettingsOutput) SetReplicaSettings(v []*ReplicaSettingsDescription) *DescribeGlobalTableSettingsOutput { 8677 s.ReplicaSettings = v 8678 return s 8679} 8680 8681// Represents the input of a DescribeLimits operation. Has no content. 8682type DescribeLimitsInput struct { 8683 _ struct{} `type:"structure"` 8684} 8685 8686// String returns the string representation 8687func (s DescribeLimitsInput) String() string { 8688 return awsutil.Prettify(s) 8689} 8690 8691// GoString returns the string representation 8692func (s DescribeLimitsInput) GoString() string { 8693 return s.String() 8694} 8695 8696// Represents the output of a DescribeLimits operation. 8697type DescribeLimitsOutput struct { 8698 _ struct{} `type:"structure"` 8699 8700 // The maximum total read capacity units that your account allows you to provision 8701 // across all of your tables in this Region. 8702 AccountMaxReadCapacityUnits *int64 `min:"1" type:"long"` 8703 8704 // The maximum total write capacity units that your account allows you to provision 8705 // across all of your tables in this Region. 8706 AccountMaxWriteCapacityUnits *int64 `min:"1" type:"long"` 8707 8708 // The maximum read capacity units that your account allows you to provision 8709 // for a new table that you are creating in this Region, including the read 8710 // capacity units provisioned for its global secondary indexes (GSIs). 8711 TableMaxReadCapacityUnits *int64 `min:"1" type:"long"` 8712 8713 // The maximum write capacity units that your account allows you to provision 8714 // for a new table that you are creating in this Region, including the write 8715 // capacity units provisioned for its global secondary indexes (GSIs). 8716 TableMaxWriteCapacityUnits *int64 `min:"1" type:"long"` 8717} 8718 8719// String returns the string representation 8720func (s DescribeLimitsOutput) String() string { 8721 return awsutil.Prettify(s) 8722} 8723 8724// GoString returns the string representation 8725func (s DescribeLimitsOutput) GoString() string { 8726 return s.String() 8727} 8728 8729// SetAccountMaxReadCapacityUnits sets the AccountMaxReadCapacityUnits field's value. 8730func (s *DescribeLimitsOutput) SetAccountMaxReadCapacityUnits(v int64) *DescribeLimitsOutput { 8731 s.AccountMaxReadCapacityUnits = &v 8732 return s 8733} 8734 8735// SetAccountMaxWriteCapacityUnits sets the AccountMaxWriteCapacityUnits field's value. 8736func (s *DescribeLimitsOutput) SetAccountMaxWriteCapacityUnits(v int64) *DescribeLimitsOutput { 8737 s.AccountMaxWriteCapacityUnits = &v 8738 return s 8739} 8740 8741// SetTableMaxReadCapacityUnits sets the TableMaxReadCapacityUnits field's value. 8742func (s *DescribeLimitsOutput) SetTableMaxReadCapacityUnits(v int64) *DescribeLimitsOutput { 8743 s.TableMaxReadCapacityUnits = &v 8744 return s 8745} 8746 8747// SetTableMaxWriteCapacityUnits sets the TableMaxWriteCapacityUnits field's value. 8748func (s *DescribeLimitsOutput) SetTableMaxWriteCapacityUnits(v int64) *DescribeLimitsOutput { 8749 s.TableMaxWriteCapacityUnits = &v 8750 return s 8751} 8752 8753// Represents the input of a DescribeTable operation. 8754type DescribeTableInput struct { 8755 _ struct{} `type:"structure"` 8756 8757 // The name of the table to describe. 8758 // 8759 // TableName is a required field 8760 TableName *string `min:"3" type:"string" required:"true"` 8761} 8762 8763// String returns the string representation 8764func (s DescribeTableInput) String() string { 8765 return awsutil.Prettify(s) 8766} 8767 8768// GoString returns the string representation 8769func (s DescribeTableInput) GoString() string { 8770 return s.String() 8771} 8772 8773// Validate inspects the fields of the type to determine if they are valid. 8774func (s *DescribeTableInput) Validate() error { 8775 invalidParams := request.ErrInvalidParams{Context: "DescribeTableInput"} 8776 if s.TableName == nil { 8777 invalidParams.Add(request.NewErrParamRequired("TableName")) 8778 } 8779 if s.TableName != nil && len(*s.TableName) < 3 { 8780 invalidParams.Add(request.NewErrParamMinLen("TableName", 3)) 8781 } 8782 8783 if invalidParams.Len() > 0 { 8784 return invalidParams 8785 } 8786 return nil 8787} 8788 8789// SetTableName sets the TableName field's value. 8790func (s *DescribeTableInput) SetTableName(v string) *DescribeTableInput { 8791 s.TableName = &v 8792 return s 8793} 8794 8795// Represents the output of a DescribeTable operation. 8796type DescribeTableOutput struct { 8797 _ struct{} `type:"structure"` 8798 8799 // The properties of the table. 8800 Table *TableDescription `type:"structure"` 8801} 8802 8803// String returns the string representation 8804func (s DescribeTableOutput) String() string { 8805 return awsutil.Prettify(s) 8806} 8807 8808// GoString returns the string representation 8809func (s DescribeTableOutput) GoString() string { 8810 return s.String() 8811} 8812 8813// SetTable sets the Table field's value. 8814func (s *DescribeTableOutput) SetTable(v *TableDescription) *DescribeTableOutput { 8815 s.Table = v 8816 return s 8817} 8818 8819type DescribeTimeToLiveInput struct { 8820 _ struct{} `type:"structure"` 8821 8822 // The name of the table to be described. 8823 // 8824 // TableName is a required field 8825 TableName *string `min:"3" type:"string" required:"true"` 8826} 8827 8828// String returns the string representation 8829func (s DescribeTimeToLiveInput) String() string { 8830 return awsutil.Prettify(s) 8831} 8832 8833// GoString returns the string representation 8834func (s DescribeTimeToLiveInput) GoString() string { 8835 return s.String() 8836} 8837 8838// Validate inspects the fields of the type to determine if they are valid. 8839func (s *DescribeTimeToLiveInput) Validate() error { 8840 invalidParams := request.ErrInvalidParams{Context: "DescribeTimeToLiveInput"} 8841 if s.TableName == nil { 8842 invalidParams.Add(request.NewErrParamRequired("TableName")) 8843 } 8844 if s.TableName != nil && len(*s.TableName) < 3 { 8845 invalidParams.Add(request.NewErrParamMinLen("TableName", 3)) 8846 } 8847 8848 if invalidParams.Len() > 0 { 8849 return invalidParams 8850 } 8851 return nil 8852} 8853 8854// SetTableName sets the TableName field's value. 8855func (s *DescribeTimeToLiveInput) SetTableName(v string) *DescribeTimeToLiveInput { 8856 s.TableName = &v 8857 return s 8858} 8859 8860type DescribeTimeToLiveOutput struct { 8861 _ struct{} `type:"structure"` 8862 8863 // The description of the Time to Live (TTL) status on the specified table. 8864 TimeToLiveDescription *TimeToLiveDescription `type:"structure"` 8865} 8866 8867// String returns the string representation 8868func (s DescribeTimeToLiveOutput) String() string { 8869 return awsutil.Prettify(s) 8870} 8871 8872// GoString returns the string representation 8873func (s DescribeTimeToLiveOutput) GoString() string { 8874 return s.String() 8875} 8876 8877// SetTimeToLiveDescription sets the TimeToLiveDescription field's value. 8878func (s *DescribeTimeToLiveOutput) SetTimeToLiveDescription(v *TimeToLiveDescription) *DescribeTimeToLiveOutput { 8879 s.TimeToLiveDescription = v 8880 return s 8881} 8882 8883// An endpoint information details. 8884type Endpoint struct { 8885 _ struct{} `type:"structure"` 8886 8887 // IP address of the endpoint. 8888 // 8889 // Address is a required field 8890 Address *string `type:"string" required:"true"` 8891 8892 // Endpoint cache time to live (TTL) value. 8893 // 8894 // CachePeriodInMinutes is a required field 8895 CachePeriodInMinutes *int64 `type:"long" required:"true"` 8896} 8897 8898// String returns the string representation 8899func (s Endpoint) String() string { 8900 return awsutil.Prettify(s) 8901} 8902 8903// GoString returns the string representation 8904func (s Endpoint) GoString() string { 8905 return s.String() 8906} 8907 8908// SetAddress sets the Address field's value. 8909func (s *Endpoint) SetAddress(v string) *Endpoint { 8910 s.Address = &v 8911 return s 8912} 8913 8914// SetCachePeriodInMinutes sets the CachePeriodInMinutes field's value. 8915func (s *Endpoint) SetCachePeriodInMinutes(v int64) *Endpoint { 8916 s.CachePeriodInMinutes = &v 8917 return s 8918} 8919 8920// Represents a condition to be compared with an attribute value. This condition 8921// can be used with DeleteItem, PutItem or UpdateItem operations; if the comparison 8922// evaluates to true, the operation succeeds; if not, the operation fails. You 8923// can use ExpectedAttributeValue in one of two different ways: 8924// 8925// * Use AttributeValueList to specify one or more values to compare against 8926// an attribute. Use ComparisonOperator to specify how you want to perform 8927// the comparison. If the comparison evaluates to true, then the conditional 8928// operation succeeds. 8929// 8930// * Use Value to specify a value that DynamoDB will compare against an attribute. 8931// If the values match, then ExpectedAttributeValue evaluates to true and 8932// the conditional operation succeeds. Optionally, you can also set Exists 8933// to false, indicating that you do not expect to find the attribute value 8934// in the table. In this case, the conditional operation succeeds only if 8935// the comparison evaluates to false. 8936// 8937// Value and Exists are incompatible with AttributeValueList and ComparisonOperator. 8938// Note that if you use both sets of parameters at once, DynamoDB will return 8939// a ValidationException exception. 8940type ExpectedAttributeValue struct { 8941 _ struct{} `type:"structure"` 8942 8943 // One or more values to evaluate against the supplied attribute. The number 8944 // of values in the list depends on the ComparisonOperator being used. 8945 // 8946 // For type Number, value comparisons are numeric. 8947 // 8948 // String value comparisons for greater than, equals, or less than are based 8949 // on ASCII character code values. For example, a is greater than A, and a is 8950 // greater than B. For a list of code values, see http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters 8951 // (http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters). 8952 // 8953 // For Binary, DynamoDB treats each byte of the binary data as unsigned when 8954 // it compares binary values. 8955 // 8956 // For information on specifying data types in JSON, see JSON Data Format (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataFormat.html) 8957 // in the Amazon DynamoDB Developer Guide. 8958 AttributeValueList []*AttributeValue `type:"list"` 8959 8960 // A comparator for evaluating attributes in the AttributeValueList. For example, 8961 // equals, greater than, less than, etc. 8962 // 8963 // The following comparison operators are available: 8964 // 8965 // EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS | 8966 // BEGINS_WITH | IN | BETWEEN 8967 // 8968 // The following are descriptions of each comparison operator. 8969 // 8970 // * EQ : Equal. EQ is supported for all data types, including lists and 8971 // maps. AttributeValueList can contain only one AttributeValue element of 8972 // type String, Number, Binary, String Set, Number Set, or Binary Set. If 8973 // an item contains an AttributeValue element of a different type than the 8974 // one provided in the request, the value does not match. For example, {"S":"6"} 8975 // does not equal {"N":"6"}. Also, {"N":"6"} does not equal {"NS":["6", "2", 8976 // "1"]}. 8977 // 8978 // * NE : Not equal. NE is supported for all data types, including lists 8979 // and maps. AttributeValueList can contain only one AttributeValue of type 8980 // String, Number, Binary, String Set, Number Set, or Binary Set. If an item 8981 // contains an AttributeValue of a different type than the one provided in 8982 // the request, the value does not match. For example, {"S":"6"} does not 8983 // equal {"N":"6"}. Also, {"N":"6"} does not equal {"NS":["6", "2", "1"]}. 8984 // 8985 // * LE : Less than or equal. AttributeValueList can contain only one AttributeValue 8986 // element of type String, Number, or Binary (not a set type). If an item 8987 // contains an AttributeValue element of a different type than the one provided 8988 // in the request, the value does not match. For example, {"S":"6"} does 8989 // not equal {"N":"6"}. Also, {"N":"6"} does not compare to {"NS":["6", "2", 8990 // "1"]}. 8991 // 8992 // * LT : Less than. AttributeValueList can contain only one AttributeValue 8993 // of type String, Number, or Binary (not a set type). If an item contains 8994 // an AttributeValue element of a different type than the one provided in 8995 // the request, the value does not match. For example, {"S":"6"} does not 8996 // equal {"N":"6"}. Also, {"N":"6"} does not compare to {"NS":["6", "2", 8997 // "1"]}. 8998 // 8999 // * GE : Greater than or equal. AttributeValueList can contain only one 9000 // AttributeValue element of type String, Number, or Binary (not a set type). 9001 // If an item contains an AttributeValue element of a different type than 9002 // the one provided in the request, the value does not match. For example, 9003 // {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"} does not compare to 9004 // {"NS":["6", "2", "1"]}. 9005 // 9006 // * GT : Greater than. AttributeValueList can contain only one AttributeValue 9007 // element of type String, Number, or Binary (not a set type). If an item 9008 // contains an AttributeValue element of a different type than the one provided 9009 // in the request, the value does not match. For example, {"S":"6"} does 9010 // not equal {"N":"6"}. Also, {"N":"6"} does not compare to {"NS":["6", "2", 9011 // "1"]}. 9012 // 9013 // * NOT_NULL : The attribute exists. NOT_NULL is supported for all data 9014 // types, including lists and maps. This operator tests for the existence 9015 // of an attribute, not its data type. If the data type of attribute "a" 9016 // is null, and you evaluate it using NOT_NULL, the result is a Boolean true. 9017 // This result is because the attribute "a" exists; its data type is not 9018 // relevant to the NOT_NULL comparison operator. 9019 // 9020 // * NULL : The attribute does not exist. NULL is supported for all data 9021 // types, including lists and maps. This operator tests for the nonexistence 9022 // of an attribute, not its data type. If the data type of attribute "a" 9023 // is null, and you evaluate it using NULL, the result is a Boolean false. 9024 // This is because the attribute "a" exists; its data type is not relevant 9025 // to the NULL comparison operator. 9026 // 9027 // * CONTAINS : Checks for a subsequence, or value in a set. AttributeValueList 9028 // can contain only one AttributeValue element of type String, Number, or 9029 // Binary (not a set type). If the target attribute of the comparison is 9030 // of type String, then the operator checks for a substring match. If the 9031 // target attribute of the comparison is of type Binary, then the operator 9032 // looks for a subsequence of the target that matches the input. If the target 9033 // attribute of the comparison is a set ("SS", "NS", or "BS"), then the operator 9034 // evaluates to true if it finds an exact match with any member of the set. 9035 // CONTAINS is supported for lists: When evaluating "a CONTAINS b", "a" can 9036 // be a list; however, "b" cannot be a set, a map, or a list. 9037 // 9038 // * NOT_CONTAINS : Checks for absence of a subsequence, or absence of a 9039 // value in a set. AttributeValueList can contain only one AttributeValue 9040 // element of type String, Number, or Binary (not a set type). If the target 9041 // attribute of the comparison is a String, then the operator checks for 9042 // the absence of a substring match. If the target attribute of the comparison 9043 // is Binary, then the operator checks for the absence of a subsequence of 9044 // the target that matches the input. If the target attribute of the comparison 9045 // is a set ("SS", "NS", or "BS"), then the operator evaluates to true if 9046 // it does not find an exact match with any member of the set. NOT_CONTAINS 9047 // is supported for lists: When evaluating "a NOT CONTAINS b", "a" can be 9048 // a list; however, "b" cannot be a set, a map, or a list. 9049 // 9050 // * BEGINS_WITH : Checks for a prefix. AttributeValueList can contain only 9051 // one AttributeValue of type String or Binary (not a Number or a set type). 9052 // The target attribute of the comparison must be of type String or Binary 9053 // (not a Number or a set type). 9054 // 9055 // * IN : Checks for matching elements in a list. AttributeValueList can 9056 // contain one or more AttributeValue elements of type String, Number, or 9057 // Binary. These attributes are compared against an existing attribute of 9058 // an item. If any elements of the input are equal to the item attribute, 9059 // the expression evaluates to true. 9060 // 9061 // * BETWEEN : Greater than or equal to the first value, and less than or 9062 // equal to the second value. AttributeValueList must contain two AttributeValue 9063 // elements of the same type, either String, Number, or Binary (not a set 9064 // type). A target attribute matches if the target value is greater than, 9065 // or equal to, the first element and less than, or equal to, the second 9066 // element. If an item contains an AttributeValue element of a different 9067 // type than the one provided in the request, the value does not match. For 9068 // example, {"S":"6"} does not compare to {"N":"6"}. Also, {"N":"6"} does 9069 // not compare to {"NS":["6", "2", "1"]} 9070 ComparisonOperator *string `type:"string" enum:"ComparisonOperator"` 9071 9072 // Causes DynamoDB to evaluate the value before attempting a conditional operation: 9073 // 9074 // * If Exists is true, DynamoDB will check to see if that attribute value 9075 // already exists in the table. If it is found, then the operation succeeds. 9076 // If it is not found, the operation fails with a ConditionCheckFailedException. 9077 // 9078 // * If Exists is false, DynamoDB assumes that the attribute value does not 9079 // exist in the table. If in fact the value does not exist, then the assumption 9080 // is valid and the operation succeeds. If the value is found, despite the 9081 // assumption that it does not exist, the operation fails with a ConditionCheckFailedException. 9082 // 9083 // The default setting for Exists is true. If you supply a Value all by itself, 9084 // DynamoDB assumes the attribute exists: You don't have to set Exists to true, 9085 // because it is implied. 9086 // 9087 // DynamoDB returns a ValidationException if: 9088 // 9089 // * Exists is true but there is no Value to check. (You expect a value to 9090 // exist, but don't specify what that value is.) 9091 // 9092 // * Exists is false but you also provide a Value. (You cannot expect an 9093 // attribute to have a value, while also expecting it not to exist.) 9094 Exists *bool `type:"boolean"` 9095 9096 // Represents the data for the expected attribute. 9097 // 9098 // Each attribute value is described as a name-value pair. The name is the data 9099 // type, and the value is the data itself. 9100 // 9101 // For more information, see Data Types (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes) 9102 // in the Amazon DynamoDB Developer Guide. 9103 Value *AttributeValue `type:"structure"` 9104} 9105 9106// String returns the string representation 9107func (s ExpectedAttributeValue) String() string { 9108 return awsutil.Prettify(s) 9109} 9110 9111// GoString returns the string representation 9112func (s ExpectedAttributeValue) GoString() string { 9113 return s.String() 9114} 9115 9116// SetAttributeValueList sets the AttributeValueList field's value. 9117func (s *ExpectedAttributeValue) SetAttributeValueList(v []*AttributeValue) *ExpectedAttributeValue { 9118 s.AttributeValueList = v 9119 return s 9120} 9121 9122// SetComparisonOperator sets the ComparisonOperator field's value. 9123func (s *ExpectedAttributeValue) SetComparisonOperator(v string) *ExpectedAttributeValue { 9124 s.ComparisonOperator = &v 9125 return s 9126} 9127 9128// SetExists sets the Exists field's value. 9129func (s *ExpectedAttributeValue) SetExists(v bool) *ExpectedAttributeValue { 9130 s.Exists = &v 9131 return s 9132} 9133 9134// SetValue sets the Value field's value. 9135func (s *ExpectedAttributeValue) SetValue(v *AttributeValue) *ExpectedAttributeValue { 9136 s.Value = v 9137 return s 9138} 9139 9140// Specifies an item and related attribute values to retrieve in a TransactGetItem 9141// object. 9142type Get struct { 9143 _ struct{} `type:"structure"` 9144 9145 // One or more substitution tokens for attribute names in the ProjectionExpression 9146 // parameter. 9147 ExpressionAttributeNames map[string]*string `type:"map"` 9148 9149 // A map of attribute names to AttributeValue objects that specifies the primary 9150 // key of the item to retrieve. 9151 // 9152 // Key is a required field 9153 Key map[string]*AttributeValue `type:"map" required:"true"` 9154 9155 // A string that identifies one or more attributes of the specified item to 9156 // retrieve from the table. The attributes in the expression must be separated 9157 // by commas. If no attribute names are specified, then all attributes of the 9158 // specified item are returned. If any of the requested attributes are not found, 9159 // they do not appear in the result. 9160 ProjectionExpression *string `type:"string"` 9161 9162 // The name of the table from which to retrieve the specified item. 9163 // 9164 // TableName is a required field 9165 TableName *string `min:"3" type:"string" required:"true"` 9166} 9167 9168// String returns the string representation 9169func (s Get) String() string { 9170 return awsutil.Prettify(s) 9171} 9172 9173// GoString returns the string representation 9174func (s Get) GoString() string { 9175 return s.String() 9176} 9177 9178// Validate inspects the fields of the type to determine if they are valid. 9179func (s *Get) Validate() error { 9180 invalidParams := request.ErrInvalidParams{Context: "Get"} 9181 if s.Key == nil { 9182 invalidParams.Add(request.NewErrParamRequired("Key")) 9183 } 9184 if s.TableName == nil { 9185 invalidParams.Add(request.NewErrParamRequired("TableName")) 9186 } 9187 if s.TableName != nil && len(*s.TableName) < 3 { 9188 invalidParams.Add(request.NewErrParamMinLen("TableName", 3)) 9189 } 9190 9191 if invalidParams.Len() > 0 { 9192 return invalidParams 9193 } 9194 return nil 9195} 9196 9197// SetExpressionAttributeNames sets the ExpressionAttributeNames field's value. 9198func (s *Get) SetExpressionAttributeNames(v map[string]*string) *Get { 9199 s.ExpressionAttributeNames = v 9200 return s 9201} 9202 9203// SetKey sets the Key field's value. 9204func (s *Get) SetKey(v map[string]*AttributeValue) *Get { 9205 s.Key = v 9206 return s 9207} 9208 9209// SetProjectionExpression sets the ProjectionExpression field's value. 9210func (s *Get) SetProjectionExpression(v string) *Get { 9211 s.ProjectionExpression = &v 9212 return s 9213} 9214 9215// SetTableName sets the TableName field's value. 9216func (s *Get) SetTableName(v string) *Get { 9217 s.TableName = &v 9218 return s 9219} 9220 9221// Represents the input of a GetItem operation. 9222type GetItemInput struct { 9223 _ struct{} `type:"structure"` 9224 9225 // This is a legacy parameter. Use ProjectionExpression instead. For more information, 9226 // see AttributesToGet (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.AttributesToGet.html) 9227 // in the Amazon DynamoDB Developer Guide. 9228 AttributesToGet []*string `min:"1" type:"list"` 9229 9230 // Determines the read consistency model: If set to true, then the operation 9231 // uses strongly consistent reads; otherwise, the operation uses eventually 9232 // consistent reads. 9233 ConsistentRead *bool `type:"boolean"` 9234 9235 // One or more substitution tokens for attribute names in an expression. The 9236 // following are some use cases for using ExpressionAttributeNames: 9237 // 9238 // * To access an attribute whose name conflicts with a DynamoDB reserved 9239 // word. 9240 // 9241 // * To create a placeholder for repeating occurrences of an attribute name 9242 // in an expression. 9243 // 9244 // * To prevent special characters in an attribute name from being misinterpreted 9245 // in an expression. 9246 // 9247 // Use the # character in an expression to dereference an attribute name. For 9248 // example, consider the following attribute name: 9249 // 9250 // * Percentile 9251 // 9252 // The name of this attribute conflicts with a reserved word, so it cannot be 9253 // used directly in an expression. (For the complete list of reserved words, 9254 // see Reserved Words (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html) 9255 // in the Amazon DynamoDB Developer Guide). To work around this, you could specify 9256 // the following for ExpressionAttributeNames: 9257 // 9258 // * {"#P":"Percentile"} 9259 // 9260 // You could then use this substitution in an expression, as in this example: 9261 // 9262 // * #P = :val 9263 // 9264 // Tokens that begin with the : character are expression attribute values, which 9265 // are placeholders for the actual value at runtime. 9266 // 9267 // For more information on expression attribute names, see Specifying Item Attributes 9268 // (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html) 9269 // in the Amazon DynamoDB Developer Guide. 9270 ExpressionAttributeNames map[string]*string `type:"map"` 9271 9272 // A map of attribute names to AttributeValue objects, representing the primary 9273 // key of the item to retrieve. 9274 // 9275 // For the primary key, you must provide all of the attributes. For example, 9276 // with a simple primary key, you only need to provide a value for the partition 9277 // key. For a composite primary key, you must provide values for both the partition 9278 // key and the sort key. 9279 // 9280 // Key is a required field 9281 Key map[string]*AttributeValue `type:"map" required:"true"` 9282 9283 // A string that identifies one or more attributes to retrieve from the table. 9284 // These attributes can include scalars, sets, or elements of a JSON document. 9285 // The attributes in the expression must be separated by commas. 9286 // 9287 // If no attribute names are specified, then all attributes are returned. If 9288 // any of the requested attributes are not found, they do not appear in the 9289 // result. 9290 // 9291 // For more information, see Specifying Item Attributes (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html) 9292 // in the Amazon DynamoDB Developer Guide. 9293 ProjectionExpression *string `type:"string"` 9294 9295 // Determines the level of detail about provisioned throughput consumption that 9296 // is returned in the response: 9297 // 9298 // * INDEXES - The response includes the aggregate ConsumedCapacity for the 9299 // operation, together with ConsumedCapacity for each table and secondary 9300 // index that was accessed. Note that some operations, such as GetItem and 9301 // BatchGetItem, do not access any indexes at all. In these cases, specifying 9302 // INDEXES will only return ConsumedCapacity information for table(s). 9303 // 9304 // * TOTAL - The response includes only the aggregate ConsumedCapacity for 9305 // the operation. 9306 // 9307 // * NONE - No ConsumedCapacity details are included in the response. 9308 ReturnConsumedCapacity *string `type:"string" enum:"ReturnConsumedCapacity"` 9309 9310 // The name of the table containing the requested item. 9311 // 9312 // TableName is a required field 9313 TableName *string `min:"3" type:"string" required:"true"` 9314} 9315 9316// String returns the string representation 9317func (s GetItemInput) String() string { 9318 return awsutil.Prettify(s) 9319} 9320 9321// GoString returns the string representation 9322func (s GetItemInput) GoString() string { 9323 return s.String() 9324} 9325 9326// Validate inspects the fields of the type to determine if they are valid. 9327func (s *GetItemInput) Validate() error { 9328 invalidParams := request.ErrInvalidParams{Context: "GetItemInput"} 9329 if s.AttributesToGet != nil && len(s.AttributesToGet) < 1 { 9330 invalidParams.Add(request.NewErrParamMinLen("AttributesToGet", 1)) 9331 } 9332 if s.Key == nil { 9333 invalidParams.Add(request.NewErrParamRequired("Key")) 9334 } 9335 if s.TableName == nil { 9336 invalidParams.Add(request.NewErrParamRequired("TableName")) 9337 } 9338 if s.TableName != nil && len(*s.TableName) < 3 { 9339 invalidParams.Add(request.NewErrParamMinLen("TableName", 3)) 9340 } 9341 9342 if invalidParams.Len() > 0 { 9343 return invalidParams 9344 } 9345 return nil 9346} 9347 9348// SetAttributesToGet sets the AttributesToGet field's value. 9349func (s *GetItemInput) SetAttributesToGet(v []*string) *GetItemInput { 9350 s.AttributesToGet = v 9351 return s 9352} 9353 9354// SetConsistentRead sets the ConsistentRead field's value. 9355func (s *GetItemInput) SetConsistentRead(v bool) *GetItemInput { 9356 s.ConsistentRead = &v 9357 return s 9358} 9359 9360// SetExpressionAttributeNames sets the ExpressionAttributeNames field's value. 9361func (s *GetItemInput) SetExpressionAttributeNames(v map[string]*string) *GetItemInput { 9362 s.ExpressionAttributeNames = v 9363 return s 9364} 9365 9366// SetKey sets the Key field's value. 9367func (s *GetItemInput) SetKey(v map[string]*AttributeValue) *GetItemInput { 9368 s.Key = v 9369 return s 9370} 9371 9372// SetProjectionExpression sets the ProjectionExpression field's value. 9373func (s *GetItemInput) SetProjectionExpression(v string) *GetItemInput { 9374 s.ProjectionExpression = &v 9375 return s 9376} 9377 9378// SetReturnConsumedCapacity sets the ReturnConsumedCapacity field's value. 9379func (s *GetItemInput) SetReturnConsumedCapacity(v string) *GetItemInput { 9380 s.ReturnConsumedCapacity = &v 9381 return s 9382} 9383 9384// SetTableName sets the TableName field's value. 9385func (s *GetItemInput) SetTableName(v string) *GetItemInput { 9386 s.TableName = &v 9387 return s 9388} 9389 9390// Represents the output of a GetItem operation. 9391type GetItemOutput struct { 9392 _ struct{} `type:"structure"` 9393 9394 // The capacity units consumed by the GetItem operation. The data returned includes 9395 // the total provisioned throughput consumed, along with statistics for the 9396 // table and any indexes involved in the operation. ConsumedCapacity is only 9397 // returned if the ReturnConsumedCapacity parameter was specified. For more 9398 // information, see Read/Write Capacity Mode (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html) 9399 // in the Amazon DynamoDB Developer Guide. 9400 ConsumedCapacity *ConsumedCapacity `type:"structure"` 9401 9402 // A map of attribute names to AttributeValue objects, as specified by ProjectionExpression. 9403 Item map[string]*AttributeValue `type:"map"` 9404} 9405 9406// String returns the string representation 9407func (s GetItemOutput) String() string { 9408 return awsutil.Prettify(s) 9409} 9410 9411// GoString returns the string representation 9412func (s GetItemOutput) GoString() string { 9413 return s.String() 9414} 9415 9416// SetConsumedCapacity sets the ConsumedCapacity field's value. 9417func (s *GetItemOutput) SetConsumedCapacity(v *ConsumedCapacity) *GetItemOutput { 9418 s.ConsumedCapacity = v 9419 return s 9420} 9421 9422// SetItem sets the Item field's value. 9423func (s *GetItemOutput) SetItem(v map[string]*AttributeValue) *GetItemOutput { 9424 s.Item = v 9425 return s 9426} 9427 9428// Represents the properties of a global secondary index. 9429type GlobalSecondaryIndex struct { 9430 _ struct{} `type:"structure"` 9431 9432 // The name of the global secondary index. The name must be unique among all 9433 // other indexes on this table. 9434 // 9435 // IndexName is a required field 9436 IndexName *string `min:"3" type:"string" required:"true"` 9437 9438 // The complete key schema for a global secondary index, which consists of one 9439 // or more pairs of attribute names and key types: 9440 // 9441 // * HASH - partition key 9442 // 9443 // * RANGE - sort key 9444 // 9445 // The partition key of an item is also known as its hash attribute. The term 9446 // "hash attribute" derives from DynamoDB' usage of an internal hash function 9447 // to evenly distribute data items across partitions, based on their partition 9448 // key values. 9449 // 9450 // The sort key of an item is also known as its range attribute. The term "range 9451 // attribute" derives from the way DynamoDB stores items with the same partition 9452 // key physically close together, in sorted order by the sort key value. 9453 // 9454 // KeySchema is a required field 9455 KeySchema []*KeySchemaElement `min:"1" type:"list" required:"true"` 9456 9457 // Represents attributes that are copied (projected) from the table into the 9458 // global secondary index. These are in addition to the primary key attributes 9459 // and index key attributes, which are automatically projected. 9460 // 9461 // Projection is a required field 9462 Projection *Projection `type:"structure" required:"true"` 9463 9464 // Represents the provisioned throughput settings for the specified global secondary 9465 // index. 9466 // 9467 // For current minimum and maximum provisioned throughput values, see Limits 9468 // (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) 9469 // in the Amazon DynamoDB Developer Guide. 9470 ProvisionedThroughput *ProvisionedThroughput `type:"structure"` 9471} 9472 9473// String returns the string representation 9474func (s GlobalSecondaryIndex) String() string { 9475 return awsutil.Prettify(s) 9476} 9477 9478// GoString returns the string representation 9479func (s GlobalSecondaryIndex) GoString() string { 9480 return s.String() 9481} 9482 9483// Validate inspects the fields of the type to determine if they are valid. 9484func (s *GlobalSecondaryIndex) Validate() error { 9485 invalidParams := request.ErrInvalidParams{Context: "GlobalSecondaryIndex"} 9486 if s.IndexName == nil { 9487 invalidParams.Add(request.NewErrParamRequired("IndexName")) 9488 } 9489 if s.IndexName != nil && len(*s.IndexName) < 3 { 9490 invalidParams.Add(request.NewErrParamMinLen("IndexName", 3)) 9491 } 9492 if s.KeySchema == nil { 9493 invalidParams.Add(request.NewErrParamRequired("KeySchema")) 9494 } 9495 if s.KeySchema != nil && len(s.KeySchema) < 1 { 9496 invalidParams.Add(request.NewErrParamMinLen("KeySchema", 1)) 9497 } 9498 if s.Projection == nil { 9499 invalidParams.Add(request.NewErrParamRequired("Projection")) 9500 } 9501 if s.KeySchema != nil { 9502 for i, v := range s.KeySchema { 9503 if v == nil { 9504 continue 9505 } 9506 if err := v.Validate(); err != nil { 9507 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "KeySchema", i), err.(request.ErrInvalidParams)) 9508 } 9509 } 9510 } 9511 if s.Projection != nil { 9512 if err := s.Projection.Validate(); err != nil { 9513 invalidParams.AddNested("Projection", err.(request.ErrInvalidParams)) 9514 } 9515 } 9516 if s.ProvisionedThroughput != nil { 9517 if err := s.ProvisionedThroughput.Validate(); err != nil { 9518 invalidParams.AddNested("ProvisionedThroughput", err.(request.ErrInvalidParams)) 9519 } 9520 } 9521 9522 if invalidParams.Len() > 0 { 9523 return invalidParams 9524 } 9525 return nil 9526} 9527 9528// SetIndexName sets the IndexName field's value. 9529func (s *GlobalSecondaryIndex) SetIndexName(v string) *GlobalSecondaryIndex { 9530 s.IndexName = &v 9531 return s 9532} 9533 9534// SetKeySchema sets the KeySchema field's value. 9535func (s *GlobalSecondaryIndex) SetKeySchema(v []*KeySchemaElement) *GlobalSecondaryIndex { 9536 s.KeySchema = v 9537 return s 9538} 9539 9540// SetProjection sets the Projection field's value. 9541func (s *GlobalSecondaryIndex) SetProjection(v *Projection) *GlobalSecondaryIndex { 9542 s.Projection = v 9543 return s 9544} 9545 9546// SetProvisionedThroughput sets the ProvisionedThroughput field's value. 9547func (s *GlobalSecondaryIndex) SetProvisionedThroughput(v *ProvisionedThroughput) *GlobalSecondaryIndex { 9548 s.ProvisionedThroughput = v 9549 return s 9550} 9551 9552// Represents the properties of a global secondary index. 9553type GlobalSecondaryIndexDescription struct { 9554 _ struct{} `type:"structure"` 9555 9556 // Indicates whether the index is currently backfilling. Backfilling is the 9557 // process of reading items from the table and determining whether they can 9558 // be added to the index. (Not all items will qualify: For example, a partition 9559 // key cannot have any duplicate values.) If an item can be added to the index, 9560 // DynamoDB will do so. After all items have been processed, the backfilling 9561 // operation is complete and Backfilling is false. 9562 // 9563 // For indexes that were created during a CreateTable operation, the Backfilling 9564 // attribute does not appear in the DescribeTable output. 9565 Backfilling *bool `type:"boolean"` 9566 9567 // The Amazon Resource Name (ARN) that uniquely identifies the index. 9568 IndexArn *string `type:"string"` 9569 9570 // The name of the global secondary index. 9571 IndexName *string `min:"3" type:"string"` 9572 9573 // The total size of the specified index, in bytes. DynamoDB updates this value 9574 // approximately every six hours. Recent changes might not be reflected in this 9575 // value. 9576 IndexSizeBytes *int64 `type:"long"` 9577 9578 // The current state of the global secondary index: 9579 // 9580 // * CREATING - The index is being created. 9581 // 9582 // * UPDATING - The index is being updated. 9583 // 9584 // * DELETING - The index is being deleted. 9585 // 9586 // * ACTIVE - The index is ready for use. 9587 IndexStatus *string `type:"string" enum:"IndexStatus"` 9588 9589 // The number of items in the specified index. DynamoDB updates this value approximately 9590 // every six hours. Recent changes might not be reflected in this value. 9591 ItemCount *int64 `type:"long"` 9592 9593 // The complete key schema for a global secondary index, which consists of one 9594 // or more pairs of attribute names and key types: 9595 // 9596 // * HASH - partition key 9597 // 9598 // * RANGE - sort key 9599 // 9600 // The partition key of an item is also known as its hash attribute. The term 9601 // "hash attribute" derives from DynamoDB' usage of an internal hash function 9602 // to evenly distribute data items across partitions, based on their partition 9603 // key values. 9604 // 9605 // The sort key of an item is also known as its range attribute. The term "range 9606 // attribute" derives from the way DynamoDB stores items with the same partition 9607 // key physically close together, in sorted order by the sort key value. 9608 KeySchema []*KeySchemaElement `min:"1" type:"list"` 9609 9610 // Represents attributes that are copied (projected) from the table into the 9611 // global secondary index. These are in addition to the primary key attributes 9612 // and index key attributes, which are automatically projected. 9613 Projection *Projection `type:"structure"` 9614 9615 // Represents the provisioned throughput settings for the specified global secondary 9616 // index. 9617 // 9618 // For current minimum and maximum provisioned throughput values, see Limits 9619 // (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) 9620 // in the Amazon DynamoDB Developer Guide. 9621 ProvisionedThroughput *ProvisionedThroughputDescription `type:"structure"` 9622} 9623 9624// String returns the string representation 9625func (s GlobalSecondaryIndexDescription) String() string { 9626 return awsutil.Prettify(s) 9627} 9628 9629// GoString returns the string representation 9630func (s GlobalSecondaryIndexDescription) GoString() string { 9631 return s.String() 9632} 9633 9634// SetBackfilling sets the Backfilling field's value. 9635func (s *GlobalSecondaryIndexDescription) SetBackfilling(v bool) *GlobalSecondaryIndexDescription { 9636 s.Backfilling = &v 9637 return s 9638} 9639 9640// SetIndexArn sets the IndexArn field's value. 9641func (s *GlobalSecondaryIndexDescription) SetIndexArn(v string) *GlobalSecondaryIndexDescription { 9642 s.IndexArn = &v 9643 return s 9644} 9645 9646// SetIndexName sets the IndexName field's value. 9647func (s *GlobalSecondaryIndexDescription) SetIndexName(v string) *GlobalSecondaryIndexDescription { 9648 s.IndexName = &v 9649 return s 9650} 9651 9652// SetIndexSizeBytes sets the IndexSizeBytes field's value. 9653func (s *GlobalSecondaryIndexDescription) SetIndexSizeBytes(v int64) *GlobalSecondaryIndexDescription { 9654 s.IndexSizeBytes = &v 9655 return s 9656} 9657 9658// SetIndexStatus sets the IndexStatus field's value. 9659func (s *GlobalSecondaryIndexDescription) SetIndexStatus(v string) *GlobalSecondaryIndexDescription { 9660 s.IndexStatus = &v 9661 return s 9662} 9663 9664// SetItemCount sets the ItemCount field's value. 9665func (s *GlobalSecondaryIndexDescription) SetItemCount(v int64) *GlobalSecondaryIndexDescription { 9666 s.ItemCount = &v 9667 return s 9668} 9669 9670// SetKeySchema sets the KeySchema field's value. 9671func (s *GlobalSecondaryIndexDescription) SetKeySchema(v []*KeySchemaElement) *GlobalSecondaryIndexDescription { 9672 s.KeySchema = v 9673 return s 9674} 9675 9676// SetProjection sets the Projection field's value. 9677func (s *GlobalSecondaryIndexDescription) SetProjection(v *Projection) *GlobalSecondaryIndexDescription { 9678 s.Projection = v 9679 return s 9680} 9681 9682// SetProvisionedThroughput sets the ProvisionedThroughput field's value. 9683func (s *GlobalSecondaryIndexDescription) SetProvisionedThroughput(v *ProvisionedThroughputDescription) *GlobalSecondaryIndexDescription { 9684 s.ProvisionedThroughput = v 9685 return s 9686} 9687 9688// Represents the properties of a global secondary index for the table when 9689// the backup was created. 9690type GlobalSecondaryIndexInfo struct { 9691 _ struct{} `type:"structure"` 9692 9693 // The name of the global secondary index. 9694 IndexName *string `min:"3" type:"string"` 9695 9696 // The complete key schema for a global secondary index, which consists of one 9697 // or more pairs of attribute names and key types: 9698 // 9699 // * HASH - partition key 9700 // 9701 // * RANGE - sort key 9702 // 9703 // The partition key of an item is also known as its hash attribute. The term 9704 // "hash attribute" derives from DynamoDB' usage of an internal hash function 9705 // to evenly distribute data items across partitions, based on their partition 9706 // key values. 9707 // 9708 // The sort key of an item is also known as its range attribute. The term "range 9709 // attribute" derives from the way DynamoDB stores items with the same partition 9710 // key physically close together, in sorted order by the sort key value. 9711 KeySchema []*KeySchemaElement `min:"1" type:"list"` 9712 9713 // Represents attributes that are copied (projected) from the table into the 9714 // global secondary index. These are in addition to the primary key attributes 9715 // and index key attributes, which are automatically projected. 9716 Projection *Projection `type:"structure"` 9717 9718 // Represents the provisioned throughput settings for the specified global secondary 9719 // index. 9720 ProvisionedThroughput *ProvisionedThroughput `type:"structure"` 9721} 9722 9723// String returns the string representation 9724func (s GlobalSecondaryIndexInfo) String() string { 9725 return awsutil.Prettify(s) 9726} 9727 9728// GoString returns the string representation 9729func (s GlobalSecondaryIndexInfo) GoString() string { 9730 return s.String() 9731} 9732 9733// SetIndexName sets the IndexName field's value. 9734func (s *GlobalSecondaryIndexInfo) SetIndexName(v string) *GlobalSecondaryIndexInfo { 9735 s.IndexName = &v 9736 return s 9737} 9738 9739// SetKeySchema sets the KeySchema field's value. 9740func (s *GlobalSecondaryIndexInfo) SetKeySchema(v []*KeySchemaElement) *GlobalSecondaryIndexInfo { 9741 s.KeySchema = v 9742 return s 9743} 9744 9745// SetProjection sets the Projection field's value. 9746func (s *GlobalSecondaryIndexInfo) SetProjection(v *Projection) *GlobalSecondaryIndexInfo { 9747 s.Projection = v 9748 return s 9749} 9750 9751// SetProvisionedThroughput sets the ProvisionedThroughput field's value. 9752func (s *GlobalSecondaryIndexInfo) SetProvisionedThroughput(v *ProvisionedThroughput) *GlobalSecondaryIndexInfo { 9753 s.ProvisionedThroughput = v 9754 return s 9755} 9756 9757// Represents one of the following: 9758// 9759// * A new global secondary index to be added to an existing table. 9760// 9761// * New provisioned throughput parameters for an existing global secondary 9762// index. 9763// 9764// * An existing global secondary index to be removed from an existing table. 9765type GlobalSecondaryIndexUpdate struct { 9766 _ struct{} `type:"structure"` 9767 9768 // The parameters required for creating a global secondary index on an existing 9769 // table: 9770 // 9771 // * IndexName 9772 // 9773 // * KeySchema 9774 // 9775 // * AttributeDefinitions 9776 // 9777 // * Projection 9778 // 9779 // * ProvisionedThroughput 9780 Create *CreateGlobalSecondaryIndexAction `type:"structure"` 9781 9782 // The name of an existing global secondary index to be removed. 9783 Delete *DeleteGlobalSecondaryIndexAction `type:"structure"` 9784 9785 // The name of an existing global secondary index, along with new provisioned 9786 // throughput settings to be applied to that index. 9787 Update *UpdateGlobalSecondaryIndexAction `type:"structure"` 9788} 9789 9790// String returns the string representation 9791func (s GlobalSecondaryIndexUpdate) String() string { 9792 return awsutil.Prettify(s) 9793} 9794 9795// GoString returns the string representation 9796func (s GlobalSecondaryIndexUpdate) GoString() string { 9797 return s.String() 9798} 9799 9800// Validate inspects the fields of the type to determine if they are valid. 9801func (s *GlobalSecondaryIndexUpdate) Validate() error { 9802 invalidParams := request.ErrInvalidParams{Context: "GlobalSecondaryIndexUpdate"} 9803 if s.Create != nil { 9804 if err := s.Create.Validate(); err != nil { 9805 invalidParams.AddNested("Create", err.(request.ErrInvalidParams)) 9806 } 9807 } 9808 if s.Delete != nil { 9809 if err := s.Delete.Validate(); err != nil { 9810 invalidParams.AddNested("Delete", err.(request.ErrInvalidParams)) 9811 } 9812 } 9813 if s.Update != nil { 9814 if err := s.Update.Validate(); err != nil { 9815 invalidParams.AddNested("Update", err.(request.ErrInvalidParams)) 9816 } 9817 } 9818 9819 if invalidParams.Len() > 0 { 9820 return invalidParams 9821 } 9822 return nil 9823} 9824 9825// SetCreate sets the Create field's value. 9826func (s *GlobalSecondaryIndexUpdate) SetCreate(v *CreateGlobalSecondaryIndexAction) *GlobalSecondaryIndexUpdate { 9827 s.Create = v 9828 return s 9829} 9830 9831// SetDelete sets the Delete field's value. 9832func (s *GlobalSecondaryIndexUpdate) SetDelete(v *DeleteGlobalSecondaryIndexAction) *GlobalSecondaryIndexUpdate { 9833 s.Delete = v 9834 return s 9835} 9836 9837// SetUpdate sets the Update field's value. 9838func (s *GlobalSecondaryIndexUpdate) SetUpdate(v *UpdateGlobalSecondaryIndexAction) *GlobalSecondaryIndexUpdate { 9839 s.Update = v 9840 return s 9841} 9842 9843// Represents the properties of a global table. 9844type GlobalTable struct { 9845 _ struct{} `type:"structure"` 9846 9847 // The global table name. 9848 GlobalTableName *string `min:"3" type:"string"` 9849 9850 // The regions where the global table has replicas. 9851 ReplicationGroup []*Replica `type:"list"` 9852} 9853 9854// String returns the string representation 9855func (s GlobalTable) String() string { 9856 return awsutil.Prettify(s) 9857} 9858 9859// GoString returns the string representation 9860func (s GlobalTable) GoString() string { 9861 return s.String() 9862} 9863 9864// SetGlobalTableName sets the GlobalTableName field's value. 9865func (s *GlobalTable) SetGlobalTableName(v string) *GlobalTable { 9866 s.GlobalTableName = &v 9867 return s 9868} 9869 9870// SetReplicationGroup sets the ReplicationGroup field's value. 9871func (s *GlobalTable) SetReplicationGroup(v []*Replica) *GlobalTable { 9872 s.ReplicationGroup = v 9873 return s 9874} 9875 9876// Contains details about the global table. 9877type GlobalTableDescription struct { 9878 _ struct{} `type:"structure"` 9879 9880 // The creation time of the global table. 9881 CreationDateTime *time.Time `type:"timestamp"` 9882 9883 // The unique identifier of the global table. 9884 GlobalTableArn *string `type:"string"` 9885 9886 // The global table name. 9887 GlobalTableName *string `min:"3" type:"string"` 9888 9889 // The current state of the global table: 9890 // 9891 // * CREATING - The global table is being created. 9892 // 9893 // * UPDATING - The global table is being updated. 9894 // 9895 // * DELETING - The global table is being deleted. 9896 // 9897 // * ACTIVE - The global table is ready for use. 9898 GlobalTableStatus *string `type:"string" enum:"GlobalTableStatus"` 9899 9900 // The regions where the global table has replicas. 9901 ReplicationGroup []*ReplicaDescription `type:"list"` 9902} 9903 9904// String returns the string representation 9905func (s GlobalTableDescription) String() string { 9906 return awsutil.Prettify(s) 9907} 9908 9909// GoString returns the string representation 9910func (s GlobalTableDescription) GoString() string { 9911 return s.String() 9912} 9913 9914// SetCreationDateTime sets the CreationDateTime field's value. 9915func (s *GlobalTableDescription) SetCreationDateTime(v time.Time) *GlobalTableDescription { 9916 s.CreationDateTime = &v 9917 return s 9918} 9919 9920// SetGlobalTableArn sets the GlobalTableArn field's value. 9921func (s *GlobalTableDescription) SetGlobalTableArn(v string) *GlobalTableDescription { 9922 s.GlobalTableArn = &v 9923 return s 9924} 9925 9926// SetGlobalTableName sets the GlobalTableName field's value. 9927func (s *GlobalTableDescription) SetGlobalTableName(v string) *GlobalTableDescription { 9928 s.GlobalTableName = &v 9929 return s 9930} 9931 9932// SetGlobalTableStatus sets the GlobalTableStatus field's value. 9933func (s *GlobalTableDescription) SetGlobalTableStatus(v string) *GlobalTableDescription { 9934 s.GlobalTableStatus = &v 9935 return s 9936} 9937 9938// SetReplicationGroup sets the ReplicationGroup field's value. 9939func (s *GlobalTableDescription) SetReplicationGroup(v []*ReplicaDescription) *GlobalTableDescription { 9940 s.ReplicationGroup = v 9941 return s 9942} 9943 9944// Represents the settings of a global secondary index for a global table that 9945// will be modified. 9946type GlobalTableGlobalSecondaryIndexSettingsUpdate struct { 9947 _ struct{} `type:"structure"` 9948 9949 // The name of the global secondary index. The name must be unique among all 9950 // other indexes on this table. 9951 // 9952 // IndexName is a required field 9953 IndexName *string `min:"3" type:"string" required:"true"` 9954 9955 // AutoScaling settings for managing a global secondary index's write capacity 9956 // units. 9957 ProvisionedWriteCapacityAutoScalingSettingsUpdate *AutoScalingSettingsUpdate `type:"structure"` 9958 9959 // The maximum number of writes consumed per second before DynamoDB returns 9960 // a ThrottlingException. 9961 ProvisionedWriteCapacityUnits *int64 `min:"1" type:"long"` 9962} 9963 9964// String returns the string representation 9965func (s GlobalTableGlobalSecondaryIndexSettingsUpdate) String() string { 9966 return awsutil.Prettify(s) 9967} 9968 9969// GoString returns the string representation 9970func (s GlobalTableGlobalSecondaryIndexSettingsUpdate) GoString() string { 9971 return s.String() 9972} 9973 9974// Validate inspects the fields of the type to determine if they are valid. 9975func (s *GlobalTableGlobalSecondaryIndexSettingsUpdate) Validate() error { 9976 invalidParams := request.ErrInvalidParams{Context: "GlobalTableGlobalSecondaryIndexSettingsUpdate"} 9977 if s.IndexName == nil { 9978 invalidParams.Add(request.NewErrParamRequired("IndexName")) 9979 } 9980 if s.IndexName != nil && len(*s.IndexName) < 3 { 9981 invalidParams.Add(request.NewErrParamMinLen("IndexName", 3)) 9982 } 9983 if s.ProvisionedWriteCapacityUnits != nil && *s.ProvisionedWriteCapacityUnits < 1 { 9984 invalidParams.Add(request.NewErrParamMinValue("ProvisionedWriteCapacityUnits", 1)) 9985 } 9986 if s.ProvisionedWriteCapacityAutoScalingSettingsUpdate != nil { 9987 if err := s.ProvisionedWriteCapacityAutoScalingSettingsUpdate.Validate(); err != nil { 9988 invalidParams.AddNested("ProvisionedWriteCapacityAutoScalingSettingsUpdate", err.(request.ErrInvalidParams)) 9989 } 9990 } 9991 9992 if invalidParams.Len() > 0 { 9993 return invalidParams 9994 } 9995 return nil 9996} 9997 9998// SetIndexName sets the IndexName field's value. 9999func (s *GlobalTableGlobalSecondaryIndexSettingsUpdate) SetIndexName(v string) *GlobalTableGlobalSecondaryIndexSettingsUpdate { 10000 s.IndexName = &v 10001 return s 10002} 10003 10004// SetProvisionedWriteCapacityAutoScalingSettingsUpdate sets the ProvisionedWriteCapacityAutoScalingSettingsUpdate field's value. 10005func (s *GlobalTableGlobalSecondaryIndexSettingsUpdate) SetProvisionedWriteCapacityAutoScalingSettingsUpdate(v *AutoScalingSettingsUpdate) *GlobalTableGlobalSecondaryIndexSettingsUpdate { 10006 s.ProvisionedWriteCapacityAutoScalingSettingsUpdate = v 10007 return s 10008} 10009 10010// SetProvisionedWriteCapacityUnits sets the ProvisionedWriteCapacityUnits field's value. 10011func (s *GlobalTableGlobalSecondaryIndexSettingsUpdate) SetProvisionedWriteCapacityUnits(v int64) *GlobalTableGlobalSecondaryIndexSettingsUpdate { 10012 s.ProvisionedWriteCapacityUnits = &v 10013 return s 10014} 10015 10016// Information about item collections, if any, that were affected by the operation. 10017// ItemCollectionMetrics is only returned if the request asked for it. If the 10018// table does not have any local secondary indexes, this information is not 10019// returned in the response. 10020type ItemCollectionMetrics struct { 10021 _ struct{} `type:"structure"` 10022 10023 // The partition key value of the item collection. This value is the same as 10024 // the partition key value of the item. 10025 ItemCollectionKey map[string]*AttributeValue `type:"map"` 10026 10027 // An estimate of item collection size, in gigabytes. This value is a two-element 10028 // array containing a lower bound and an upper bound for the estimate. The estimate 10029 // includes the size of all the items in the table, plus the size of all attributes 10030 // projected into all of the local secondary indexes on that table. Use this 10031 // estimate to measure whether a local secondary index is approaching its size 10032 // limit. 10033 // 10034 // The estimate is subject to change over time; therefore, do not rely on the 10035 // precision or accuracy of the estimate. 10036 SizeEstimateRangeGB []*float64 `type:"list"` 10037} 10038 10039// String returns the string representation 10040func (s ItemCollectionMetrics) String() string { 10041 return awsutil.Prettify(s) 10042} 10043 10044// GoString returns the string representation 10045func (s ItemCollectionMetrics) GoString() string { 10046 return s.String() 10047} 10048 10049// SetItemCollectionKey sets the ItemCollectionKey field's value. 10050func (s *ItemCollectionMetrics) SetItemCollectionKey(v map[string]*AttributeValue) *ItemCollectionMetrics { 10051 s.ItemCollectionKey = v 10052 return s 10053} 10054 10055// SetSizeEstimateRangeGB sets the SizeEstimateRangeGB field's value. 10056func (s *ItemCollectionMetrics) SetSizeEstimateRangeGB(v []*float64) *ItemCollectionMetrics { 10057 s.SizeEstimateRangeGB = v 10058 return s 10059} 10060 10061// Details for the requested item. 10062type ItemResponse struct { 10063 _ struct{} `type:"structure"` 10064 10065 // Map of attribute data consisting of the data type and attribute value. 10066 Item map[string]*AttributeValue `type:"map"` 10067} 10068 10069// String returns the string representation 10070func (s ItemResponse) String() string { 10071 return awsutil.Prettify(s) 10072} 10073 10074// GoString returns the string representation 10075func (s ItemResponse) GoString() string { 10076 return s.String() 10077} 10078 10079// SetItem sets the Item field's value. 10080func (s *ItemResponse) SetItem(v map[string]*AttributeValue) *ItemResponse { 10081 s.Item = v 10082 return s 10083} 10084 10085// Represents a single element of a key schema. A key schema specifies the attributes 10086// that make up the primary key of a table, or the key attributes of an index. 10087// 10088// A KeySchemaElement represents exactly one attribute of the primary key. For 10089// example, a simple primary key would be represented by one KeySchemaElement 10090// (for the partition key). A composite primary key would require one KeySchemaElement 10091// for the partition key, and another KeySchemaElement for the sort key. 10092// 10093// A KeySchemaElement must be a scalar, top-level attribute (not a nested attribute). 10094// The data type must be one of String, Number, or Binary. The attribute cannot 10095// be nested within a List or a Map. 10096type KeySchemaElement struct { 10097 _ struct{} `type:"structure"` 10098 10099 // The name of a key attribute. 10100 // 10101 // AttributeName is a required field 10102 AttributeName *string `min:"1" type:"string" required:"true"` 10103 10104 // The role that this key attribute will assume: 10105 // 10106 // * HASH - partition key 10107 // 10108 // * RANGE - sort key 10109 // 10110 // The partition key of an item is also known as its hash attribute. The term 10111 // "hash attribute" derives from DynamoDB' usage of an internal hash function 10112 // to evenly distribute data items across partitions, based on their partition 10113 // key values. 10114 // 10115 // The sort key of an item is also known as its range attribute. The term "range 10116 // attribute" derives from the way DynamoDB stores items with the same partition 10117 // key physically close together, in sorted order by the sort key value. 10118 // 10119 // KeyType is a required field 10120 KeyType *string `type:"string" required:"true" enum:"KeyType"` 10121} 10122 10123// String returns the string representation 10124func (s KeySchemaElement) String() string { 10125 return awsutil.Prettify(s) 10126} 10127 10128// GoString returns the string representation 10129func (s KeySchemaElement) GoString() string { 10130 return s.String() 10131} 10132 10133// Validate inspects the fields of the type to determine if they are valid. 10134func (s *KeySchemaElement) Validate() error { 10135 invalidParams := request.ErrInvalidParams{Context: "KeySchemaElement"} 10136 if s.AttributeName == nil { 10137 invalidParams.Add(request.NewErrParamRequired("AttributeName")) 10138 } 10139 if s.AttributeName != nil && len(*s.AttributeName) < 1 { 10140 invalidParams.Add(request.NewErrParamMinLen("AttributeName", 1)) 10141 } 10142 if s.KeyType == nil { 10143 invalidParams.Add(request.NewErrParamRequired("KeyType")) 10144 } 10145 10146 if invalidParams.Len() > 0 { 10147 return invalidParams 10148 } 10149 return nil 10150} 10151 10152// SetAttributeName sets the AttributeName field's value. 10153func (s *KeySchemaElement) SetAttributeName(v string) *KeySchemaElement { 10154 s.AttributeName = &v 10155 return s 10156} 10157 10158// SetKeyType sets the KeyType field's value. 10159func (s *KeySchemaElement) SetKeyType(v string) *KeySchemaElement { 10160 s.KeyType = &v 10161 return s 10162} 10163 10164// Represents a set of primary keys and, for each key, the attributes to retrieve 10165// from the table. 10166// 10167// For each primary key, you must provide all of the key attributes. For example, 10168// with a simple primary key, you only need to provide the partition key. For 10169// a composite primary key, you must provide both the partition key and the 10170// sort key. 10171type KeysAndAttributes struct { 10172 _ struct{} `type:"structure"` 10173 10174 // This is a legacy parameter. Use ProjectionExpression instead. For more information, 10175 // see Legacy Conditional Parameters (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.html) 10176 // in the Amazon DynamoDB Developer Guide. 10177 AttributesToGet []*string `min:"1" type:"list"` 10178 10179 // The consistency of a read operation. If set to true, then a strongly consistent 10180 // read is used; otherwise, an eventually consistent read is used. 10181 ConsistentRead *bool `type:"boolean"` 10182 10183 // One or more substitution tokens for attribute names in an expression. The 10184 // following are some use cases for using ExpressionAttributeNames: 10185 // 10186 // * To access an attribute whose name conflicts with a DynamoDB reserved 10187 // word. 10188 // 10189 // * To create a placeholder for repeating occurrences of an attribute name 10190 // in an expression. 10191 // 10192 // * To prevent special characters in an attribute name from being misinterpreted 10193 // in an expression. 10194 // 10195 // Use the # character in an expression to dereference an attribute name. For 10196 // example, consider the following attribute name: 10197 // 10198 // * Percentile 10199 // 10200 // The name of this attribute conflicts with a reserved word, so it cannot be 10201 // used directly in an expression. (For the complete list of reserved words, 10202 // see Reserved Words (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html) 10203 // in the Amazon DynamoDB Developer Guide). To work around this, you could specify 10204 // the following for ExpressionAttributeNames: 10205 // 10206 // * {"#P":"Percentile"} 10207 // 10208 // You could then use this substitution in an expression, as in this example: 10209 // 10210 // * #P = :val 10211 // 10212 // Tokens that begin with the : character are expression attribute values, which 10213 // are placeholders for the actual value at runtime. 10214 // 10215 // For more information on expression attribute names, see Accessing Item Attributes 10216 // (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html) 10217 // in the Amazon DynamoDB Developer Guide. 10218 ExpressionAttributeNames map[string]*string `type:"map"` 10219 10220 // The primary key attribute values that define the items and the attributes 10221 // associated with the items. 10222 // 10223 // Keys is a required field 10224 Keys []map[string]*AttributeValue `min:"1" type:"list" required:"true"` 10225 10226 // A string that identifies one or more attributes to retrieve from the table. 10227 // These attributes can include scalars, sets, or elements of a JSON document. 10228 // The attributes in the ProjectionExpression must be separated by commas. 10229 // 10230 // If no attribute names are specified, then all attributes will be returned. 10231 // If any of the requested attributes are not found, they will not appear in 10232 // the result. 10233 // 10234 // For more information, see Accessing Item Attributes (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html) 10235 // in the Amazon DynamoDB Developer Guide. 10236 ProjectionExpression *string `type:"string"` 10237} 10238 10239// String returns the string representation 10240func (s KeysAndAttributes) String() string { 10241 return awsutil.Prettify(s) 10242} 10243 10244// GoString returns the string representation 10245func (s KeysAndAttributes) GoString() string { 10246 return s.String() 10247} 10248 10249// Validate inspects the fields of the type to determine if they are valid. 10250func (s *KeysAndAttributes) Validate() error { 10251 invalidParams := request.ErrInvalidParams{Context: "KeysAndAttributes"} 10252 if s.AttributesToGet != nil && len(s.AttributesToGet) < 1 { 10253 invalidParams.Add(request.NewErrParamMinLen("AttributesToGet", 1)) 10254 } 10255 if s.Keys == nil { 10256 invalidParams.Add(request.NewErrParamRequired("Keys")) 10257 } 10258 if s.Keys != nil && len(s.Keys) < 1 { 10259 invalidParams.Add(request.NewErrParamMinLen("Keys", 1)) 10260 } 10261 10262 if invalidParams.Len() > 0 { 10263 return invalidParams 10264 } 10265 return nil 10266} 10267 10268// SetAttributesToGet sets the AttributesToGet field's value. 10269func (s *KeysAndAttributes) SetAttributesToGet(v []*string) *KeysAndAttributes { 10270 s.AttributesToGet = v 10271 return s 10272} 10273 10274// SetConsistentRead sets the ConsistentRead field's value. 10275func (s *KeysAndAttributes) SetConsistentRead(v bool) *KeysAndAttributes { 10276 s.ConsistentRead = &v 10277 return s 10278} 10279 10280// SetExpressionAttributeNames sets the ExpressionAttributeNames field's value. 10281func (s *KeysAndAttributes) SetExpressionAttributeNames(v map[string]*string) *KeysAndAttributes { 10282 s.ExpressionAttributeNames = v 10283 return s 10284} 10285 10286// SetKeys sets the Keys field's value. 10287func (s *KeysAndAttributes) SetKeys(v []map[string]*AttributeValue) *KeysAndAttributes { 10288 s.Keys = v 10289 return s 10290} 10291 10292// SetProjectionExpression sets the ProjectionExpression field's value. 10293func (s *KeysAndAttributes) SetProjectionExpression(v string) *KeysAndAttributes { 10294 s.ProjectionExpression = &v 10295 return s 10296} 10297 10298type ListBackupsInput struct { 10299 _ struct{} `type:"structure"` 10300 10301 // The backups from the table specified by BackupType are listed. 10302 // 10303 // Where BackupType can be: 10304 // 10305 // * USER - On-demand backup created by you. 10306 // 10307 // * SYSTEM - On-demand backup automatically created by DynamoDB. 10308 // 10309 // * ALL - All types of on-demand backups (USER and SYSTEM). 10310 BackupType *string `type:"string" enum:"BackupTypeFilter"` 10311 10312 // LastEvaluatedBackupArn is the Amazon Resource Name (ARN) of the backup last 10313 // evaluated when the current page of results was returned, inclusive of the 10314 // current page of results. This value may be specified as the ExclusiveStartBackupArn 10315 // of a new ListBackups operation in order to fetch the next page of results. 10316 ExclusiveStartBackupArn *string `min:"37" type:"string"` 10317 10318 // Maximum number of backups to return at once. 10319 Limit *int64 `min:"1" type:"integer"` 10320 10321 // The backups from the table specified by TableName are listed. 10322 TableName *string `min:"3" type:"string"` 10323 10324 // Only backups created after this time are listed. TimeRangeLowerBound is inclusive. 10325 TimeRangeLowerBound *time.Time `type:"timestamp"` 10326 10327 // Only backups created before this time are listed. TimeRangeUpperBound is 10328 // exclusive. 10329 TimeRangeUpperBound *time.Time `type:"timestamp"` 10330} 10331 10332// String returns the string representation 10333func (s ListBackupsInput) String() string { 10334 return awsutil.Prettify(s) 10335} 10336 10337// GoString returns the string representation 10338func (s ListBackupsInput) GoString() string { 10339 return s.String() 10340} 10341 10342// Validate inspects the fields of the type to determine if they are valid. 10343func (s *ListBackupsInput) Validate() error { 10344 invalidParams := request.ErrInvalidParams{Context: "ListBackupsInput"} 10345 if s.ExclusiveStartBackupArn != nil && len(*s.ExclusiveStartBackupArn) < 37 { 10346 invalidParams.Add(request.NewErrParamMinLen("ExclusiveStartBackupArn", 37)) 10347 } 10348 if s.Limit != nil && *s.Limit < 1 { 10349 invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) 10350 } 10351 if s.TableName != nil && len(*s.TableName) < 3 { 10352 invalidParams.Add(request.NewErrParamMinLen("TableName", 3)) 10353 } 10354 10355 if invalidParams.Len() > 0 { 10356 return invalidParams 10357 } 10358 return nil 10359} 10360 10361// SetBackupType sets the BackupType field's value. 10362func (s *ListBackupsInput) SetBackupType(v string) *ListBackupsInput { 10363 s.BackupType = &v 10364 return s 10365} 10366 10367// SetExclusiveStartBackupArn sets the ExclusiveStartBackupArn field's value. 10368func (s *ListBackupsInput) SetExclusiveStartBackupArn(v string) *ListBackupsInput { 10369 s.ExclusiveStartBackupArn = &v 10370 return s 10371} 10372 10373// SetLimit sets the Limit field's value. 10374func (s *ListBackupsInput) SetLimit(v int64) *ListBackupsInput { 10375 s.Limit = &v 10376 return s 10377} 10378 10379// SetTableName sets the TableName field's value. 10380func (s *ListBackupsInput) SetTableName(v string) *ListBackupsInput { 10381 s.TableName = &v 10382 return s 10383} 10384 10385// SetTimeRangeLowerBound sets the TimeRangeLowerBound field's value. 10386func (s *ListBackupsInput) SetTimeRangeLowerBound(v time.Time) *ListBackupsInput { 10387 s.TimeRangeLowerBound = &v 10388 return s 10389} 10390 10391// SetTimeRangeUpperBound sets the TimeRangeUpperBound field's value. 10392func (s *ListBackupsInput) SetTimeRangeUpperBound(v time.Time) *ListBackupsInput { 10393 s.TimeRangeUpperBound = &v 10394 return s 10395} 10396 10397type ListBackupsOutput struct { 10398 _ struct{} `type:"structure"` 10399 10400 // List of BackupSummary objects. 10401 BackupSummaries []*BackupSummary `type:"list"` 10402 10403 // The ARN of the backup last evaluated when the current page of results was 10404 // returned, inclusive of the current page of results. This value may be specified 10405 // as the ExclusiveStartBackupArn of a new ListBackups operation in order to 10406 // fetch the next page of results. 10407 // 10408 // If LastEvaluatedBackupArn is empty, then the last page of results has been 10409 // processed and there are no more results to be retrieved. 10410 // 10411 // If LastEvaluatedBackupArn is not empty, this may or may not indicate that 10412 // there is more data to be returned. All results are guaranteed to have been 10413 // returned if and only if no value for LastEvaluatedBackupArn is returned. 10414 LastEvaluatedBackupArn *string `min:"37" type:"string"` 10415} 10416 10417// String returns the string representation 10418func (s ListBackupsOutput) String() string { 10419 return awsutil.Prettify(s) 10420} 10421 10422// GoString returns the string representation 10423func (s ListBackupsOutput) GoString() string { 10424 return s.String() 10425} 10426 10427// SetBackupSummaries sets the BackupSummaries field's value. 10428func (s *ListBackupsOutput) SetBackupSummaries(v []*BackupSummary) *ListBackupsOutput { 10429 s.BackupSummaries = v 10430 return s 10431} 10432 10433// SetLastEvaluatedBackupArn sets the LastEvaluatedBackupArn field's value. 10434func (s *ListBackupsOutput) SetLastEvaluatedBackupArn(v string) *ListBackupsOutput { 10435 s.LastEvaluatedBackupArn = &v 10436 return s 10437} 10438 10439type ListGlobalTablesInput struct { 10440 _ struct{} `type:"structure"` 10441 10442 // The first global table name that this operation will evaluate. 10443 ExclusiveStartGlobalTableName *string `min:"3" type:"string"` 10444 10445 // The maximum number of table names to return. 10446 Limit *int64 `min:"1" type:"integer"` 10447 10448 // Lists the global tables in a specific Region. 10449 RegionName *string `type:"string"` 10450} 10451 10452// String returns the string representation 10453func (s ListGlobalTablesInput) String() string { 10454 return awsutil.Prettify(s) 10455} 10456 10457// GoString returns the string representation 10458func (s ListGlobalTablesInput) GoString() string { 10459 return s.String() 10460} 10461 10462// Validate inspects the fields of the type to determine if they are valid. 10463func (s *ListGlobalTablesInput) Validate() error { 10464 invalidParams := request.ErrInvalidParams{Context: "ListGlobalTablesInput"} 10465 if s.ExclusiveStartGlobalTableName != nil && len(*s.ExclusiveStartGlobalTableName) < 3 { 10466 invalidParams.Add(request.NewErrParamMinLen("ExclusiveStartGlobalTableName", 3)) 10467 } 10468 if s.Limit != nil && *s.Limit < 1 { 10469 invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) 10470 } 10471 10472 if invalidParams.Len() > 0 { 10473 return invalidParams 10474 } 10475 return nil 10476} 10477 10478// SetExclusiveStartGlobalTableName sets the ExclusiveStartGlobalTableName field's value. 10479func (s *ListGlobalTablesInput) SetExclusiveStartGlobalTableName(v string) *ListGlobalTablesInput { 10480 s.ExclusiveStartGlobalTableName = &v 10481 return s 10482} 10483 10484// SetLimit sets the Limit field's value. 10485func (s *ListGlobalTablesInput) SetLimit(v int64) *ListGlobalTablesInput { 10486 s.Limit = &v 10487 return s 10488} 10489 10490// SetRegionName sets the RegionName field's value. 10491func (s *ListGlobalTablesInput) SetRegionName(v string) *ListGlobalTablesInput { 10492 s.RegionName = &v 10493 return s 10494} 10495 10496type ListGlobalTablesOutput struct { 10497 _ struct{} `type:"structure"` 10498 10499 // List of global table names. 10500 GlobalTables []*GlobalTable `type:"list"` 10501 10502 // Last evaluated global table name. 10503 LastEvaluatedGlobalTableName *string `min:"3" type:"string"` 10504} 10505 10506// String returns the string representation 10507func (s ListGlobalTablesOutput) String() string { 10508 return awsutil.Prettify(s) 10509} 10510 10511// GoString returns the string representation 10512func (s ListGlobalTablesOutput) GoString() string { 10513 return s.String() 10514} 10515 10516// SetGlobalTables sets the GlobalTables field's value. 10517func (s *ListGlobalTablesOutput) SetGlobalTables(v []*GlobalTable) *ListGlobalTablesOutput { 10518 s.GlobalTables = v 10519 return s 10520} 10521 10522// SetLastEvaluatedGlobalTableName sets the LastEvaluatedGlobalTableName field's value. 10523func (s *ListGlobalTablesOutput) SetLastEvaluatedGlobalTableName(v string) *ListGlobalTablesOutput { 10524 s.LastEvaluatedGlobalTableName = &v 10525 return s 10526} 10527 10528// Represents the input of a ListTables operation. 10529type ListTablesInput struct { 10530 _ struct{} `type:"structure"` 10531 10532 // The first table name that this operation will evaluate. Use the value that 10533 // was returned for LastEvaluatedTableName in a previous operation, so that 10534 // you can obtain the next page of results. 10535 ExclusiveStartTableName *string `min:"3" type:"string"` 10536 10537 // A maximum number of table names to return. If this parameter is not specified, 10538 // the limit is 100. 10539 Limit *int64 `min:"1" type:"integer"` 10540} 10541 10542// String returns the string representation 10543func (s ListTablesInput) String() string { 10544 return awsutil.Prettify(s) 10545} 10546 10547// GoString returns the string representation 10548func (s ListTablesInput) GoString() string { 10549 return s.String() 10550} 10551 10552// Validate inspects the fields of the type to determine if they are valid. 10553func (s *ListTablesInput) Validate() error { 10554 invalidParams := request.ErrInvalidParams{Context: "ListTablesInput"} 10555 if s.ExclusiveStartTableName != nil && len(*s.ExclusiveStartTableName) < 3 { 10556 invalidParams.Add(request.NewErrParamMinLen("ExclusiveStartTableName", 3)) 10557 } 10558 if s.Limit != nil && *s.Limit < 1 { 10559 invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) 10560 } 10561 10562 if invalidParams.Len() > 0 { 10563 return invalidParams 10564 } 10565 return nil 10566} 10567 10568// SetExclusiveStartTableName sets the ExclusiveStartTableName field's value. 10569func (s *ListTablesInput) SetExclusiveStartTableName(v string) *ListTablesInput { 10570 s.ExclusiveStartTableName = &v 10571 return s 10572} 10573 10574// SetLimit sets the Limit field's value. 10575func (s *ListTablesInput) SetLimit(v int64) *ListTablesInput { 10576 s.Limit = &v 10577 return s 10578} 10579 10580// Represents the output of a ListTables operation. 10581type ListTablesOutput struct { 10582 _ struct{} `type:"structure"` 10583 10584 // The name of the last table in the current page of results. Use this value 10585 // as the ExclusiveStartTableName in a new request to obtain the next page of 10586 // results, until all the table names are returned. 10587 // 10588 // If you do not receive a LastEvaluatedTableName value in the response, this 10589 // means that there are no more table names to be retrieved. 10590 LastEvaluatedTableName *string `min:"3" type:"string"` 10591 10592 // The names of the tables associated with the current account at the current 10593 // endpoint. The maximum size of this array is 100. 10594 // 10595 // If LastEvaluatedTableName also appears in the output, you can use this value 10596 // as the ExclusiveStartTableName parameter in a subsequent ListTables request 10597 // and obtain the next page of results. 10598 TableNames []*string `type:"list"` 10599} 10600 10601// String returns the string representation 10602func (s ListTablesOutput) String() string { 10603 return awsutil.Prettify(s) 10604} 10605 10606// GoString returns the string representation 10607func (s ListTablesOutput) GoString() string { 10608 return s.String() 10609} 10610 10611// SetLastEvaluatedTableName sets the LastEvaluatedTableName field's value. 10612func (s *ListTablesOutput) SetLastEvaluatedTableName(v string) *ListTablesOutput { 10613 s.LastEvaluatedTableName = &v 10614 return s 10615} 10616 10617// SetTableNames sets the TableNames field's value. 10618func (s *ListTablesOutput) SetTableNames(v []*string) *ListTablesOutput { 10619 s.TableNames = v 10620 return s 10621} 10622 10623type ListTagsOfResourceInput struct { 10624 _ struct{} `type:"structure"` 10625 10626 // An optional string that, if supplied, must be copied from the output of a 10627 // previous call to ListTagOfResource. When provided in this manner, this API 10628 // fetches the next page of results. 10629 NextToken *string `type:"string"` 10630 10631 // The Amazon DynamoDB resource with tags to be listed. This value is an Amazon 10632 // Resource Name (ARN). 10633 // 10634 // ResourceArn is a required field 10635 ResourceArn *string `min:"1" type:"string" required:"true"` 10636} 10637 10638// String returns the string representation 10639func (s ListTagsOfResourceInput) String() string { 10640 return awsutil.Prettify(s) 10641} 10642 10643// GoString returns the string representation 10644func (s ListTagsOfResourceInput) GoString() string { 10645 return s.String() 10646} 10647 10648// Validate inspects the fields of the type to determine if they are valid. 10649func (s *ListTagsOfResourceInput) Validate() error { 10650 invalidParams := request.ErrInvalidParams{Context: "ListTagsOfResourceInput"} 10651 if s.ResourceArn == nil { 10652 invalidParams.Add(request.NewErrParamRequired("ResourceArn")) 10653 } 10654 if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { 10655 invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) 10656 } 10657 10658 if invalidParams.Len() > 0 { 10659 return invalidParams 10660 } 10661 return nil 10662} 10663 10664// SetNextToken sets the NextToken field's value. 10665func (s *ListTagsOfResourceInput) SetNextToken(v string) *ListTagsOfResourceInput { 10666 s.NextToken = &v 10667 return s 10668} 10669 10670// SetResourceArn sets the ResourceArn field's value. 10671func (s *ListTagsOfResourceInput) SetResourceArn(v string) *ListTagsOfResourceInput { 10672 s.ResourceArn = &v 10673 return s 10674} 10675 10676type ListTagsOfResourceOutput struct { 10677 _ struct{} `type:"structure"` 10678 10679 // If this value is returned, there are additional results to be displayed. 10680 // To retrieve them, call ListTagsOfResource again, with NextToken set to this 10681 // value. 10682 NextToken *string `type:"string"` 10683 10684 // The tags currently associated with the Amazon DynamoDB resource. 10685 Tags []*Tag `type:"list"` 10686} 10687 10688// String returns the string representation 10689func (s ListTagsOfResourceOutput) String() string { 10690 return awsutil.Prettify(s) 10691} 10692 10693// GoString returns the string representation 10694func (s ListTagsOfResourceOutput) GoString() string { 10695 return s.String() 10696} 10697 10698// SetNextToken sets the NextToken field's value. 10699func (s *ListTagsOfResourceOutput) SetNextToken(v string) *ListTagsOfResourceOutput { 10700 s.NextToken = &v 10701 return s 10702} 10703 10704// SetTags sets the Tags field's value. 10705func (s *ListTagsOfResourceOutput) SetTags(v []*Tag) *ListTagsOfResourceOutput { 10706 s.Tags = v 10707 return s 10708} 10709 10710// Represents the properties of a local secondary index. 10711type LocalSecondaryIndex struct { 10712 _ struct{} `type:"structure"` 10713 10714 // The name of the local secondary index. The name must be unique among all 10715 // other indexes on this table. 10716 // 10717 // IndexName is a required field 10718 IndexName *string `min:"3" type:"string" required:"true"` 10719 10720 // The complete key schema for the local secondary index, consisting of one 10721 // or more pairs of attribute names and key types: 10722 // 10723 // * HASH - partition key 10724 // 10725 // * RANGE - sort key 10726 // 10727 // The partition key of an item is also known as its hash attribute. The term 10728 // "hash attribute" derives from DynamoDB' usage of an internal hash function 10729 // to evenly distribute data items across partitions, based on their partition 10730 // key values. 10731 // 10732 // The sort key of an item is also known as its range attribute. The term "range 10733 // attribute" derives from the way DynamoDB stores items with the same partition 10734 // key physically close together, in sorted order by the sort key value. 10735 // 10736 // KeySchema is a required field 10737 KeySchema []*KeySchemaElement `min:"1" type:"list" required:"true"` 10738 10739 // Represents attributes that are copied (projected) from the table into the 10740 // local secondary index. These are in addition to the primary key attributes 10741 // and index key attributes, which are automatically projected. 10742 // 10743 // Projection is a required field 10744 Projection *Projection `type:"structure" required:"true"` 10745} 10746 10747// String returns the string representation 10748func (s LocalSecondaryIndex) String() string { 10749 return awsutil.Prettify(s) 10750} 10751 10752// GoString returns the string representation 10753func (s LocalSecondaryIndex) GoString() string { 10754 return s.String() 10755} 10756 10757// Validate inspects the fields of the type to determine if they are valid. 10758func (s *LocalSecondaryIndex) Validate() error { 10759 invalidParams := request.ErrInvalidParams{Context: "LocalSecondaryIndex"} 10760 if s.IndexName == nil { 10761 invalidParams.Add(request.NewErrParamRequired("IndexName")) 10762 } 10763 if s.IndexName != nil && len(*s.IndexName) < 3 { 10764 invalidParams.Add(request.NewErrParamMinLen("IndexName", 3)) 10765 } 10766 if s.KeySchema == nil { 10767 invalidParams.Add(request.NewErrParamRequired("KeySchema")) 10768 } 10769 if s.KeySchema != nil && len(s.KeySchema) < 1 { 10770 invalidParams.Add(request.NewErrParamMinLen("KeySchema", 1)) 10771 } 10772 if s.Projection == nil { 10773 invalidParams.Add(request.NewErrParamRequired("Projection")) 10774 } 10775 if s.KeySchema != nil { 10776 for i, v := range s.KeySchema { 10777 if v == nil { 10778 continue 10779 } 10780 if err := v.Validate(); err != nil { 10781 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "KeySchema", i), err.(request.ErrInvalidParams)) 10782 } 10783 } 10784 } 10785 if s.Projection != nil { 10786 if err := s.Projection.Validate(); err != nil { 10787 invalidParams.AddNested("Projection", err.(request.ErrInvalidParams)) 10788 } 10789 } 10790 10791 if invalidParams.Len() > 0 { 10792 return invalidParams 10793 } 10794 return nil 10795} 10796 10797// SetIndexName sets the IndexName field's value. 10798func (s *LocalSecondaryIndex) SetIndexName(v string) *LocalSecondaryIndex { 10799 s.IndexName = &v 10800 return s 10801} 10802 10803// SetKeySchema sets the KeySchema field's value. 10804func (s *LocalSecondaryIndex) SetKeySchema(v []*KeySchemaElement) *LocalSecondaryIndex { 10805 s.KeySchema = v 10806 return s 10807} 10808 10809// SetProjection sets the Projection field's value. 10810func (s *LocalSecondaryIndex) SetProjection(v *Projection) *LocalSecondaryIndex { 10811 s.Projection = v 10812 return s 10813} 10814 10815// Represents the properties of a local secondary index. 10816type LocalSecondaryIndexDescription struct { 10817 _ struct{} `type:"structure"` 10818 10819 // The Amazon Resource Name (ARN) that uniquely identifies the index. 10820 IndexArn *string `type:"string"` 10821 10822 // Represents the name of the local secondary index. 10823 IndexName *string `min:"3" type:"string"` 10824 10825 // The total size of the specified index, in bytes. DynamoDB updates this value 10826 // approximately every six hours. Recent changes might not be reflected in this 10827 // value. 10828 IndexSizeBytes *int64 `type:"long"` 10829 10830 // The number of items in the specified index. DynamoDB updates this value approximately 10831 // every six hours. Recent changes might not be reflected in this value. 10832 ItemCount *int64 `type:"long"` 10833 10834 // The complete key schema for the local secondary index, consisting of one 10835 // or more pairs of attribute names and key types: 10836 // 10837 // * HASH - partition key 10838 // 10839 // * RANGE - sort key 10840 // 10841 // The partition key of an item is also known as its hash attribute. The term 10842 // "hash attribute" derives from DynamoDB' usage of an internal hash function 10843 // to evenly distribute data items across partitions, based on their partition 10844 // key values. 10845 // 10846 // The sort key of an item is also known as its range attribute. The term "range 10847 // attribute" derives from the way DynamoDB stores items with the same partition 10848 // key physically close together, in sorted order by the sort key value. 10849 KeySchema []*KeySchemaElement `min:"1" type:"list"` 10850 10851 // Represents attributes that are copied (projected) from the table into the 10852 // global secondary index. These are in addition to the primary key attributes 10853 // and index key attributes, which are automatically projected. 10854 Projection *Projection `type:"structure"` 10855} 10856 10857// String returns the string representation 10858func (s LocalSecondaryIndexDescription) String() string { 10859 return awsutil.Prettify(s) 10860} 10861 10862// GoString returns the string representation 10863func (s LocalSecondaryIndexDescription) GoString() string { 10864 return s.String() 10865} 10866 10867// SetIndexArn sets the IndexArn field's value. 10868func (s *LocalSecondaryIndexDescription) SetIndexArn(v string) *LocalSecondaryIndexDescription { 10869 s.IndexArn = &v 10870 return s 10871} 10872 10873// SetIndexName sets the IndexName field's value. 10874func (s *LocalSecondaryIndexDescription) SetIndexName(v string) *LocalSecondaryIndexDescription { 10875 s.IndexName = &v 10876 return s 10877} 10878 10879// SetIndexSizeBytes sets the IndexSizeBytes field's value. 10880func (s *LocalSecondaryIndexDescription) SetIndexSizeBytes(v int64) *LocalSecondaryIndexDescription { 10881 s.IndexSizeBytes = &v 10882 return s 10883} 10884 10885// SetItemCount sets the ItemCount field's value. 10886func (s *LocalSecondaryIndexDescription) SetItemCount(v int64) *LocalSecondaryIndexDescription { 10887 s.ItemCount = &v 10888 return s 10889} 10890 10891// SetKeySchema sets the KeySchema field's value. 10892func (s *LocalSecondaryIndexDescription) SetKeySchema(v []*KeySchemaElement) *LocalSecondaryIndexDescription { 10893 s.KeySchema = v 10894 return s 10895} 10896 10897// SetProjection sets the Projection field's value. 10898func (s *LocalSecondaryIndexDescription) SetProjection(v *Projection) *LocalSecondaryIndexDescription { 10899 s.Projection = v 10900 return s 10901} 10902 10903// Represents the properties of a local secondary index for the table when the 10904// backup was created. 10905type LocalSecondaryIndexInfo struct { 10906 _ struct{} `type:"structure"` 10907 10908 // Represents the name of the local secondary index. 10909 IndexName *string `min:"3" type:"string"` 10910 10911 // The complete key schema for a local secondary index, which consists of one 10912 // or more pairs of attribute names and key types: 10913 // 10914 // * HASH - partition key 10915 // 10916 // * RANGE - sort key 10917 // 10918 // The partition key of an item is also known as its hash attribute. The term 10919 // "hash attribute" derives from DynamoDB' usage of an internal hash function 10920 // to evenly distribute data items across partitions, based on their partition 10921 // key values. 10922 // 10923 // The sort key of an item is also known as its range attribute. The term "range 10924 // attribute" derives from the way DynamoDB stores items with the same partition 10925 // key physically close together, in sorted order by the sort key value. 10926 KeySchema []*KeySchemaElement `min:"1" type:"list"` 10927 10928 // Represents attributes that are copied (projected) from the table into the 10929 // global secondary index. These are in addition to the primary key attributes 10930 // and index key attributes, which are automatically projected. 10931 Projection *Projection `type:"structure"` 10932} 10933 10934// String returns the string representation 10935func (s LocalSecondaryIndexInfo) String() string { 10936 return awsutil.Prettify(s) 10937} 10938 10939// GoString returns the string representation 10940func (s LocalSecondaryIndexInfo) GoString() string { 10941 return s.String() 10942} 10943 10944// SetIndexName sets the IndexName field's value. 10945func (s *LocalSecondaryIndexInfo) SetIndexName(v string) *LocalSecondaryIndexInfo { 10946 s.IndexName = &v 10947 return s 10948} 10949 10950// SetKeySchema sets the KeySchema field's value. 10951func (s *LocalSecondaryIndexInfo) SetKeySchema(v []*KeySchemaElement) *LocalSecondaryIndexInfo { 10952 s.KeySchema = v 10953 return s 10954} 10955 10956// SetProjection sets the Projection field's value. 10957func (s *LocalSecondaryIndexInfo) SetProjection(v *Projection) *LocalSecondaryIndexInfo { 10958 s.Projection = v 10959 return s 10960} 10961 10962// The description of the point in time settings applied to the table. 10963type PointInTimeRecoveryDescription struct { 10964 _ struct{} `type:"structure"` 10965 10966 // Specifies the earliest point in time you can restore your table to. It You 10967 // can restore your table to any point in time during the last 35 days. 10968 EarliestRestorableDateTime *time.Time `type:"timestamp"` 10969 10970 // LatestRestorableDateTime is typically 5 minutes before the current time. 10971 LatestRestorableDateTime *time.Time `type:"timestamp"` 10972 10973 // The current state of point in time recovery: 10974 // 10975 // * ENABLING - Point in time recovery is being enabled. 10976 // 10977 // * ENABLED - Point in time recovery is enabled. 10978 // 10979 // * DISABLED - Point in time recovery is disabled. 10980 PointInTimeRecoveryStatus *string `type:"string" enum:"PointInTimeRecoveryStatus"` 10981} 10982 10983// String returns the string representation 10984func (s PointInTimeRecoveryDescription) String() string { 10985 return awsutil.Prettify(s) 10986} 10987 10988// GoString returns the string representation 10989func (s PointInTimeRecoveryDescription) GoString() string { 10990 return s.String() 10991} 10992 10993// SetEarliestRestorableDateTime sets the EarliestRestorableDateTime field's value. 10994func (s *PointInTimeRecoveryDescription) SetEarliestRestorableDateTime(v time.Time) *PointInTimeRecoveryDescription { 10995 s.EarliestRestorableDateTime = &v 10996 return s 10997} 10998 10999// SetLatestRestorableDateTime sets the LatestRestorableDateTime field's value. 11000func (s *PointInTimeRecoveryDescription) SetLatestRestorableDateTime(v time.Time) *PointInTimeRecoveryDescription { 11001 s.LatestRestorableDateTime = &v 11002 return s 11003} 11004 11005// SetPointInTimeRecoveryStatus sets the PointInTimeRecoveryStatus field's value. 11006func (s *PointInTimeRecoveryDescription) SetPointInTimeRecoveryStatus(v string) *PointInTimeRecoveryDescription { 11007 s.PointInTimeRecoveryStatus = &v 11008 return s 11009} 11010 11011// Represents the settings used to enable point in time recovery. 11012type PointInTimeRecoverySpecification struct { 11013 _ struct{} `type:"structure"` 11014 11015 // Indicates whether point in time recovery is enabled (true) or disabled (false) 11016 // on the table. 11017 // 11018 // PointInTimeRecoveryEnabled is a required field 11019 PointInTimeRecoveryEnabled *bool `type:"boolean" required:"true"` 11020} 11021 11022// String returns the string representation 11023func (s PointInTimeRecoverySpecification) String() string { 11024 return awsutil.Prettify(s) 11025} 11026 11027// GoString returns the string representation 11028func (s PointInTimeRecoverySpecification) GoString() string { 11029 return s.String() 11030} 11031 11032// Validate inspects the fields of the type to determine if they are valid. 11033func (s *PointInTimeRecoverySpecification) Validate() error { 11034 invalidParams := request.ErrInvalidParams{Context: "PointInTimeRecoverySpecification"} 11035 if s.PointInTimeRecoveryEnabled == nil { 11036 invalidParams.Add(request.NewErrParamRequired("PointInTimeRecoveryEnabled")) 11037 } 11038 11039 if invalidParams.Len() > 0 { 11040 return invalidParams 11041 } 11042 return nil 11043} 11044 11045// SetPointInTimeRecoveryEnabled sets the PointInTimeRecoveryEnabled field's value. 11046func (s *PointInTimeRecoverySpecification) SetPointInTimeRecoveryEnabled(v bool) *PointInTimeRecoverySpecification { 11047 s.PointInTimeRecoveryEnabled = &v 11048 return s 11049} 11050 11051// Represents attributes that are copied (projected) from the table into an 11052// index. These are in addition to the primary key attributes and index key 11053// attributes, which are automatically projected. 11054type Projection struct { 11055 _ struct{} `type:"structure"` 11056 11057 // Represents the non-key attribute names which will be projected into the index. 11058 // 11059 // For local secondary indexes, the total count of NonKeyAttributes summed across 11060 // all of the local secondary indexes, must not exceed 20. If you project the 11061 // same attribute into two different indexes, this counts as two distinct attributes 11062 // when determining the total. 11063 NonKeyAttributes []*string `min:"1" type:"list"` 11064 11065 // The set of attributes that are projected into the index: 11066 // 11067 // * KEYS_ONLY - Only the index and primary keys are projected into the index. 11068 // 11069 // * INCLUDE - Only the specified table attributes are projected into the 11070 // index. The list of projected attributes are in NonKeyAttributes. 11071 // 11072 // * ALL - All of the table attributes are projected into the index. 11073 ProjectionType *string `type:"string" enum:"ProjectionType"` 11074} 11075 11076// String returns the string representation 11077func (s Projection) String() string { 11078 return awsutil.Prettify(s) 11079} 11080 11081// GoString returns the string representation 11082func (s Projection) GoString() string { 11083 return s.String() 11084} 11085 11086// Validate inspects the fields of the type to determine if they are valid. 11087func (s *Projection) Validate() error { 11088 invalidParams := request.ErrInvalidParams{Context: "Projection"} 11089 if s.NonKeyAttributes != nil && len(s.NonKeyAttributes) < 1 { 11090 invalidParams.Add(request.NewErrParamMinLen("NonKeyAttributes", 1)) 11091 } 11092 11093 if invalidParams.Len() > 0 { 11094 return invalidParams 11095 } 11096 return nil 11097} 11098 11099// SetNonKeyAttributes sets the NonKeyAttributes field's value. 11100func (s *Projection) SetNonKeyAttributes(v []*string) *Projection { 11101 s.NonKeyAttributes = v 11102 return s 11103} 11104 11105// SetProjectionType sets the ProjectionType field's value. 11106func (s *Projection) SetProjectionType(v string) *Projection { 11107 s.ProjectionType = &v 11108 return s 11109} 11110 11111// Represents the provisioned throughput settings for a specified table or index. 11112// The settings can be modified using the UpdateTable operation. 11113// 11114// For current minimum and maximum provisioned throughput values, see Limits 11115// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) 11116// in the Amazon DynamoDB Developer Guide. 11117type ProvisionedThroughput struct { 11118 _ struct{} `type:"structure"` 11119 11120 // The maximum number of strongly consistent reads consumed per second before 11121 // DynamoDB returns a ThrottlingException. For more information, see Specifying 11122 // Read and Write Requirements (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput) 11123 // in the Amazon DynamoDB Developer Guide. 11124 // 11125 // If read/write capacity mode is PAY_PER_REQUEST the value is set to 0. 11126 // 11127 // ReadCapacityUnits is a required field 11128 ReadCapacityUnits *int64 `min:"1" type:"long" required:"true"` 11129 11130 // The maximum number of writes consumed per second before DynamoDB returns 11131 // a ThrottlingException. For more information, see Specifying Read and Write 11132 // Requirements (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput) 11133 // in the Amazon DynamoDB Developer Guide. 11134 // 11135 // If read/write capacity mode is PAY_PER_REQUEST the value is set to 0. 11136 // 11137 // WriteCapacityUnits is a required field 11138 WriteCapacityUnits *int64 `min:"1" type:"long" required:"true"` 11139} 11140 11141// String returns the string representation 11142func (s ProvisionedThroughput) String() string { 11143 return awsutil.Prettify(s) 11144} 11145 11146// GoString returns the string representation 11147func (s ProvisionedThroughput) GoString() string { 11148 return s.String() 11149} 11150 11151// Validate inspects the fields of the type to determine if they are valid. 11152func (s *ProvisionedThroughput) Validate() error { 11153 invalidParams := request.ErrInvalidParams{Context: "ProvisionedThroughput"} 11154 if s.ReadCapacityUnits == nil { 11155 invalidParams.Add(request.NewErrParamRequired("ReadCapacityUnits")) 11156 } 11157 if s.ReadCapacityUnits != nil && *s.ReadCapacityUnits < 1 { 11158 invalidParams.Add(request.NewErrParamMinValue("ReadCapacityUnits", 1)) 11159 } 11160 if s.WriteCapacityUnits == nil { 11161 invalidParams.Add(request.NewErrParamRequired("WriteCapacityUnits")) 11162 } 11163 if s.WriteCapacityUnits != nil && *s.WriteCapacityUnits < 1 { 11164 invalidParams.Add(request.NewErrParamMinValue("WriteCapacityUnits", 1)) 11165 } 11166 11167 if invalidParams.Len() > 0 { 11168 return invalidParams 11169 } 11170 return nil 11171} 11172 11173// SetReadCapacityUnits sets the ReadCapacityUnits field's value. 11174func (s *ProvisionedThroughput) SetReadCapacityUnits(v int64) *ProvisionedThroughput { 11175 s.ReadCapacityUnits = &v 11176 return s 11177} 11178 11179// SetWriteCapacityUnits sets the WriteCapacityUnits field's value. 11180func (s *ProvisionedThroughput) SetWriteCapacityUnits(v int64) *ProvisionedThroughput { 11181 s.WriteCapacityUnits = &v 11182 return s 11183} 11184 11185// Represents the provisioned throughput settings for the table, consisting 11186// of read and write capacity units, along with data about increases and decreases. 11187type ProvisionedThroughputDescription struct { 11188 _ struct{} `type:"structure"` 11189 11190 // The date and time of the last provisioned throughput decrease for this table. 11191 LastDecreaseDateTime *time.Time `type:"timestamp"` 11192 11193 // The date and time of the last provisioned throughput increase for this table. 11194 LastIncreaseDateTime *time.Time `type:"timestamp"` 11195 11196 // The number of provisioned throughput decreases for this table during this 11197 // UTC calendar day. For current maximums on provisioned throughput decreases, 11198 // see Limits (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) 11199 // in the Amazon DynamoDB Developer Guide. 11200 NumberOfDecreasesToday *int64 `min:"1" type:"long"` 11201 11202 // The maximum number of strongly consistent reads consumed per second before 11203 // DynamoDB returns a ThrottlingException. Eventually consistent reads require 11204 // less effort than strongly consistent reads, so a setting of 50 ReadCapacityUnits 11205 // per second provides 100 eventually consistent ReadCapacityUnits per second. 11206 ReadCapacityUnits *int64 `type:"long"` 11207 11208 // The maximum number of writes consumed per second before DynamoDB returns 11209 // a ThrottlingException. 11210 WriteCapacityUnits *int64 `type:"long"` 11211} 11212 11213// String returns the string representation 11214func (s ProvisionedThroughputDescription) String() string { 11215 return awsutil.Prettify(s) 11216} 11217 11218// GoString returns the string representation 11219func (s ProvisionedThroughputDescription) GoString() string { 11220 return s.String() 11221} 11222 11223// SetLastDecreaseDateTime sets the LastDecreaseDateTime field's value. 11224func (s *ProvisionedThroughputDescription) SetLastDecreaseDateTime(v time.Time) *ProvisionedThroughputDescription { 11225 s.LastDecreaseDateTime = &v 11226 return s 11227} 11228 11229// SetLastIncreaseDateTime sets the LastIncreaseDateTime field's value. 11230func (s *ProvisionedThroughputDescription) SetLastIncreaseDateTime(v time.Time) *ProvisionedThroughputDescription { 11231 s.LastIncreaseDateTime = &v 11232 return s 11233} 11234 11235// SetNumberOfDecreasesToday sets the NumberOfDecreasesToday field's value. 11236func (s *ProvisionedThroughputDescription) SetNumberOfDecreasesToday(v int64) *ProvisionedThroughputDescription { 11237 s.NumberOfDecreasesToday = &v 11238 return s 11239} 11240 11241// SetReadCapacityUnits sets the ReadCapacityUnits field's value. 11242func (s *ProvisionedThroughputDescription) SetReadCapacityUnits(v int64) *ProvisionedThroughputDescription { 11243 s.ReadCapacityUnits = &v 11244 return s 11245} 11246 11247// SetWriteCapacityUnits sets the WriteCapacityUnits field's value. 11248func (s *ProvisionedThroughputDescription) SetWriteCapacityUnits(v int64) *ProvisionedThroughputDescription { 11249 s.WriteCapacityUnits = &v 11250 return s 11251} 11252 11253// Represents a request to perform a PutItem operation. 11254type Put struct { 11255 _ struct{} `type:"structure"` 11256 11257 // A condition that must be satisfied in order for a conditional update to succeed. 11258 ConditionExpression *string `type:"string"` 11259 11260 // One or more substitution tokens for attribute names in an expression. 11261 ExpressionAttributeNames map[string]*string `type:"map"` 11262 11263 // One or more values that can be substituted in an expression. 11264 ExpressionAttributeValues map[string]*AttributeValue `type:"map"` 11265 11266 // A map of attribute name to attribute values, representing the primary key 11267 // of the item to be written by PutItem. All of the table's primary key attributes 11268 // must be specified, and their data types must match those of the table's key 11269 // schema. If any attributes are present in the item that are part of an index 11270 // key schema for the table, their types must match the index key schema. 11271 // 11272 // Item is a required field 11273 Item map[string]*AttributeValue `type:"map" required:"true"` 11274 11275 // Use ReturnValuesOnConditionCheckFailure to get the item attributes if the 11276 // Put condition fails. For ReturnValuesOnConditionCheckFailure, the valid values 11277 // are: NONE and ALL_OLD. 11278 ReturnValuesOnConditionCheckFailure *string `type:"string" enum:"ReturnValuesOnConditionCheckFailure"` 11279 11280 // Name of the table in which to write the item. 11281 // 11282 // TableName is a required field 11283 TableName *string `min:"3" type:"string" required:"true"` 11284} 11285 11286// String returns the string representation 11287func (s Put) String() string { 11288 return awsutil.Prettify(s) 11289} 11290 11291// GoString returns the string representation 11292func (s Put) GoString() string { 11293 return s.String() 11294} 11295 11296// Validate inspects the fields of the type to determine if they are valid. 11297func (s *Put) Validate() error { 11298 invalidParams := request.ErrInvalidParams{Context: "Put"} 11299 if s.Item == nil { 11300 invalidParams.Add(request.NewErrParamRequired("Item")) 11301 } 11302 if s.TableName == nil { 11303 invalidParams.Add(request.NewErrParamRequired("TableName")) 11304 } 11305 if s.TableName != nil && len(*s.TableName) < 3 { 11306 invalidParams.Add(request.NewErrParamMinLen("TableName", 3)) 11307 } 11308 11309 if invalidParams.Len() > 0 { 11310 return invalidParams 11311 } 11312 return nil 11313} 11314 11315// SetConditionExpression sets the ConditionExpression field's value. 11316func (s *Put) SetConditionExpression(v string) *Put { 11317 s.ConditionExpression = &v 11318 return s 11319} 11320 11321// SetExpressionAttributeNames sets the ExpressionAttributeNames field's value. 11322func (s *Put) SetExpressionAttributeNames(v map[string]*string) *Put { 11323 s.ExpressionAttributeNames = v 11324 return s 11325} 11326 11327// SetExpressionAttributeValues sets the ExpressionAttributeValues field's value. 11328func (s *Put) SetExpressionAttributeValues(v map[string]*AttributeValue) *Put { 11329 s.ExpressionAttributeValues = v 11330 return s 11331} 11332 11333// SetItem sets the Item field's value. 11334func (s *Put) SetItem(v map[string]*AttributeValue) *Put { 11335 s.Item = v 11336 return s 11337} 11338 11339// SetReturnValuesOnConditionCheckFailure sets the ReturnValuesOnConditionCheckFailure field's value. 11340func (s *Put) SetReturnValuesOnConditionCheckFailure(v string) *Put { 11341 s.ReturnValuesOnConditionCheckFailure = &v 11342 return s 11343} 11344 11345// SetTableName sets the TableName field's value. 11346func (s *Put) SetTableName(v string) *Put { 11347 s.TableName = &v 11348 return s 11349} 11350 11351// Represents the input of a PutItem operation. 11352type PutItemInput struct { 11353 _ struct{} `type:"structure"` 11354 11355 // A condition that must be satisfied in order for a conditional PutItem operation 11356 // to succeed. 11357 // 11358 // An expression can contain any of the following: 11359 // 11360 // * Functions: attribute_exists | attribute_not_exists | attribute_type 11361 // | contains | begins_with | size These function names are case-sensitive. 11362 // 11363 // * Comparison operators: = | <> | < | > | <= | >= | BETWEEN | IN 11364 // 11365 // * Logical operators: AND | OR | NOT 11366 // 11367 // For more information on condition expressions, see Condition Expressions 11368 // (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html) 11369 // in the Amazon DynamoDB Developer Guide. 11370 ConditionExpression *string `type:"string"` 11371 11372 // This is a legacy parameter. Use ConditionExpression instead. For more information, 11373 // see ConditionalOperator (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ConditionalOperator.html) 11374 // in the Amazon DynamoDB Developer Guide. 11375 ConditionalOperator *string `type:"string" enum:"ConditionalOperator"` 11376 11377 // This is a legacy parameter. Use ConditionExpression instead. For more information, 11378 // see Expected (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.Expected.html) 11379 // in the Amazon DynamoDB Developer Guide. 11380 Expected map[string]*ExpectedAttributeValue `type:"map"` 11381 11382 // One or more substitution tokens for attribute names in an expression. The 11383 // following are some use cases for using ExpressionAttributeNames: 11384 // 11385 // * To access an attribute whose name conflicts with a DynamoDB reserved 11386 // word. 11387 // 11388 // * To create a placeholder for repeating occurrences of an attribute name 11389 // in an expression. 11390 // 11391 // * To prevent special characters in an attribute name from being misinterpreted 11392 // in an expression. 11393 // 11394 // Use the # character in an expression to dereference an attribute name. For 11395 // example, consider the following attribute name: 11396 // 11397 // * Percentile 11398 // 11399 // The name of this attribute conflicts with a reserved word, so it cannot be 11400 // used directly in an expression. (For the complete list of reserved words, 11401 // see Reserved Words (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html) 11402 // in the Amazon DynamoDB Developer Guide). To work around this, you could specify 11403 // the following for ExpressionAttributeNames: 11404 // 11405 // * {"#P":"Percentile"} 11406 // 11407 // You could then use this substitution in an expression, as in this example: 11408 // 11409 // * #P = :val 11410 // 11411 // Tokens that begin with the : character are expression attribute values, which 11412 // are placeholders for the actual value at runtime. 11413 // 11414 // For more information on expression attribute names, see Specifying Item Attributes 11415 // (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html) 11416 // in the Amazon DynamoDB Developer Guide. 11417 ExpressionAttributeNames map[string]*string `type:"map"` 11418 11419 // One or more values that can be substituted in an expression. 11420 // 11421 // Use the : (colon) character in an expression to dereference an attribute 11422 // value. For example, suppose that you wanted to check whether the value of 11423 // the ProductStatus attribute was one of the following: 11424 // 11425 // Available | Backordered | Discontinued 11426 // 11427 // You would first need to specify ExpressionAttributeValues as follows: 11428 // 11429 // { ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"} 11430 // } 11431 // 11432 // You could then use these values in an expression, such as this: 11433 // 11434 // ProductStatus IN (:avail, :back, :disc) 11435 // 11436 // For more information on expression attribute values, see Condition Expressions 11437 // (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html) 11438 // in the Amazon DynamoDB Developer Guide. 11439 ExpressionAttributeValues map[string]*AttributeValue `type:"map"` 11440 11441 // A map of attribute name/value pairs, one for each attribute. Only the primary 11442 // key attributes are required; you can optionally provide other attribute name-value 11443 // pairs for the item. 11444 // 11445 // You must provide all of the attributes for the primary key. For example, 11446 // with a simple primary key, you only need to provide a value for the partition 11447 // key. For a composite primary key, you must provide both values for both the 11448 // partition key and the sort key. 11449 // 11450 // If you specify any attributes that are part of an index key, then the data 11451 // types for those attributes must match those of the schema in the table's 11452 // attribute definition. 11453 // 11454 // For more information about primary keys, see Primary Key (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html#HowItWorks.CoreComponents.PrimaryKey) 11455 // in the Amazon DynamoDB Developer Guide. 11456 // 11457 // Each element in the Item map is an AttributeValue object. 11458 // 11459 // Item is a required field 11460 Item map[string]*AttributeValue `type:"map" required:"true"` 11461 11462 // Determines the level of detail about provisioned throughput consumption that 11463 // is returned in the response: 11464 // 11465 // * INDEXES - The response includes the aggregate ConsumedCapacity for the 11466 // operation, together with ConsumedCapacity for each table and secondary 11467 // index that was accessed. Note that some operations, such as GetItem and 11468 // BatchGetItem, do not access any indexes at all. In these cases, specifying 11469 // INDEXES will only return ConsumedCapacity information for table(s). 11470 // 11471 // * TOTAL - The response includes only the aggregate ConsumedCapacity for 11472 // the operation. 11473 // 11474 // * NONE - No ConsumedCapacity details are included in the response. 11475 ReturnConsumedCapacity *string `type:"string" enum:"ReturnConsumedCapacity"` 11476 11477 // Determines whether item collection metrics are returned. If set to SIZE, 11478 // the response includes statistics about item collections, if any, that were 11479 // modified during the operation are returned in the response. If set to NONE 11480 // (the default), no statistics are returned. 11481 ReturnItemCollectionMetrics *string `type:"string" enum:"ReturnItemCollectionMetrics"` 11482 11483 // Use ReturnValues if you want to get the item attributes as they appeared 11484 // before they were updated with the PutItem request. For PutItem, the valid 11485 // values are: 11486 // 11487 // * NONE - If ReturnValues is not specified, or if its value is NONE, then 11488 // nothing is returned. (This setting is the default for ReturnValues.) 11489 // 11490 // * ALL_OLD - If PutItem overwrote an attribute name-value pair, then the 11491 // content of the old item is returned. 11492 // 11493 // The ReturnValues parameter is used by several DynamoDB operations; however, 11494 // PutItem does not recognize any values other than NONE or ALL_OLD. 11495 ReturnValues *string `type:"string" enum:"ReturnValue"` 11496 11497 // The name of the table to contain the item. 11498 // 11499 // TableName is a required field 11500 TableName *string `min:"3" type:"string" required:"true"` 11501} 11502 11503// String returns the string representation 11504func (s PutItemInput) String() string { 11505 return awsutil.Prettify(s) 11506} 11507 11508// GoString returns the string representation 11509func (s PutItemInput) GoString() string { 11510 return s.String() 11511} 11512 11513// Validate inspects the fields of the type to determine if they are valid. 11514func (s *PutItemInput) Validate() error { 11515 invalidParams := request.ErrInvalidParams{Context: "PutItemInput"} 11516 if s.Item == nil { 11517 invalidParams.Add(request.NewErrParamRequired("Item")) 11518 } 11519 if s.TableName == nil { 11520 invalidParams.Add(request.NewErrParamRequired("TableName")) 11521 } 11522 if s.TableName != nil && len(*s.TableName) < 3 { 11523 invalidParams.Add(request.NewErrParamMinLen("TableName", 3)) 11524 } 11525 11526 if invalidParams.Len() > 0 { 11527 return invalidParams 11528 } 11529 return nil 11530} 11531 11532// SetConditionExpression sets the ConditionExpression field's value. 11533func (s *PutItemInput) SetConditionExpression(v string) *PutItemInput { 11534 s.ConditionExpression = &v 11535 return s 11536} 11537 11538// SetConditionalOperator sets the ConditionalOperator field's value. 11539func (s *PutItemInput) SetConditionalOperator(v string) *PutItemInput { 11540 s.ConditionalOperator = &v 11541 return s 11542} 11543 11544// SetExpected sets the Expected field's value. 11545func (s *PutItemInput) SetExpected(v map[string]*ExpectedAttributeValue) *PutItemInput { 11546 s.Expected = v 11547 return s 11548} 11549 11550// SetExpressionAttributeNames sets the ExpressionAttributeNames field's value. 11551func (s *PutItemInput) SetExpressionAttributeNames(v map[string]*string) *PutItemInput { 11552 s.ExpressionAttributeNames = v 11553 return s 11554} 11555 11556// SetExpressionAttributeValues sets the ExpressionAttributeValues field's value. 11557func (s *PutItemInput) SetExpressionAttributeValues(v map[string]*AttributeValue) *PutItemInput { 11558 s.ExpressionAttributeValues = v 11559 return s 11560} 11561 11562// SetItem sets the Item field's value. 11563func (s *PutItemInput) SetItem(v map[string]*AttributeValue) *PutItemInput { 11564 s.Item = v 11565 return s 11566} 11567 11568// SetReturnConsumedCapacity sets the ReturnConsumedCapacity field's value. 11569func (s *PutItemInput) SetReturnConsumedCapacity(v string) *PutItemInput { 11570 s.ReturnConsumedCapacity = &v 11571 return s 11572} 11573 11574// SetReturnItemCollectionMetrics sets the ReturnItemCollectionMetrics field's value. 11575func (s *PutItemInput) SetReturnItemCollectionMetrics(v string) *PutItemInput { 11576 s.ReturnItemCollectionMetrics = &v 11577 return s 11578} 11579 11580// SetReturnValues sets the ReturnValues field's value. 11581func (s *PutItemInput) SetReturnValues(v string) *PutItemInput { 11582 s.ReturnValues = &v 11583 return s 11584} 11585 11586// SetTableName sets the TableName field's value. 11587func (s *PutItemInput) SetTableName(v string) *PutItemInput { 11588 s.TableName = &v 11589 return s 11590} 11591 11592// Represents the output of a PutItem operation. 11593type PutItemOutput struct { 11594 _ struct{} `type:"structure"` 11595 11596 // The attribute values as they appeared before the PutItem operation, but only 11597 // if ReturnValues is specified as ALL_OLD in the request. Each element consists 11598 // of an attribute name and an attribute value. 11599 Attributes map[string]*AttributeValue `type:"map"` 11600 11601 // The capacity units consumed by the PutItem operation. The data returned includes 11602 // the total provisioned throughput consumed, along with statistics for the 11603 // table and any indexes involved in the operation. ConsumedCapacity is only 11604 // returned if the ReturnConsumedCapacity parameter was specified. For more 11605 // information, see Read/Write Capacity Mode (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html) 11606 // in the Amazon DynamoDB Developer Guide. 11607 ConsumedCapacity *ConsumedCapacity `type:"structure"` 11608 11609 // Information about item collections, if any, that were affected by the PutItem 11610 // operation. ItemCollectionMetrics is only returned if the ReturnItemCollectionMetrics 11611 // parameter was specified. If the table does not have any local secondary indexes, 11612 // this information is not returned in the response. 11613 // 11614 // Each ItemCollectionMetrics element consists of: 11615 // 11616 // * ItemCollectionKey - The partition key value of the item collection. 11617 // This is the same as the partition key value of the item itself. 11618 // 11619 // * SizeEstimateRangeGB - An estimate of item collection size, in gigabytes. 11620 // This value is a two-element array containing a lower bound and an upper 11621 // bound for the estimate. The estimate includes the size of all the items 11622 // in the table, plus the size of all attributes projected into all of the 11623 // local secondary indexes on that table. Use this estimate to measure whether 11624 // a local secondary index is approaching its size limit. The estimate is 11625 // subject to change over time; therefore, do not rely on the precision or 11626 // accuracy of the estimate. 11627 ItemCollectionMetrics *ItemCollectionMetrics `type:"structure"` 11628} 11629 11630// String returns the string representation 11631func (s PutItemOutput) String() string { 11632 return awsutil.Prettify(s) 11633} 11634 11635// GoString returns the string representation 11636func (s PutItemOutput) GoString() string { 11637 return s.String() 11638} 11639 11640// SetAttributes sets the Attributes field's value. 11641func (s *PutItemOutput) SetAttributes(v map[string]*AttributeValue) *PutItemOutput { 11642 s.Attributes = v 11643 return s 11644} 11645 11646// SetConsumedCapacity sets the ConsumedCapacity field's value. 11647func (s *PutItemOutput) SetConsumedCapacity(v *ConsumedCapacity) *PutItemOutput { 11648 s.ConsumedCapacity = v 11649 return s 11650} 11651 11652// SetItemCollectionMetrics sets the ItemCollectionMetrics field's value. 11653func (s *PutItemOutput) SetItemCollectionMetrics(v *ItemCollectionMetrics) *PutItemOutput { 11654 s.ItemCollectionMetrics = v 11655 return s 11656} 11657 11658// Represents a request to perform a PutItem operation on an item. 11659type PutRequest struct { 11660 _ struct{} `type:"structure"` 11661 11662 // A map of attribute name to attribute values, representing the primary key 11663 // of an item to be processed by PutItem. All of the table's primary key attributes 11664 // must be specified, and their data types must match those of the table's key 11665 // schema. If any attributes are present in the item which are part of an index 11666 // key schema for the table, their types must match the index key schema. 11667 // 11668 // Item is a required field 11669 Item map[string]*AttributeValue `type:"map" required:"true"` 11670} 11671 11672// String returns the string representation 11673func (s PutRequest) String() string { 11674 return awsutil.Prettify(s) 11675} 11676 11677// GoString returns the string representation 11678func (s PutRequest) GoString() string { 11679 return s.String() 11680} 11681 11682// SetItem sets the Item field's value. 11683func (s *PutRequest) SetItem(v map[string]*AttributeValue) *PutRequest { 11684 s.Item = v 11685 return s 11686} 11687 11688// Represents the input of a Query operation. 11689type QueryInput struct { 11690 _ struct{} `type:"structure"` 11691 11692 // This is a legacy parameter. Use ProjectionExpression instead. For more information, 11693 // see AttributesToGet (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.AttributesToGet.html) 11694 // in the Amazon DynamoDB Developer Guide. 11695 AttributesToGet []*string `min:"1" type:"list"` 11696 11697 // This is a legacy parameter. Use FilterExpression instead. For more information, 11698 // see ConditionalOperator (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ConditionalOperator.html) 11699 // in the Amazon DynamoDB Developer Guide. 11700 ConditionalOperator *string `type:"string" enum:"ConditionalOperator"` 11701 11702 // Determines the read consistency model: If set to true, then the operation 11703 // uses strongly consistent reads; otherwise, the operation uses eventually 11704 // consistent reads. 11705 // 11706 // Strongly consistent reads are not supported on global secondary indexes. 11707 // If you query a global secondary index with ConsistentRead set to true, you 11708 // will receive a ValidationException. 11709 ConsistentRead *bool `type:"boolean"` 11710 11711 // The primary key of the first item that this operation will evaluate. Use 11712 // the value that was returned for LastEvaluatedKey in the previous operation. 11713 // 11714 // The data type for ExclusiveStartKey must be String, Number, or Binary. No 11715 // set data types are allowed. 11716 ExclusiveStartKey map[string]*AttributeValue `type:"map"` 11717 11718 // One or more substitution tokens for attribute names in an expression. The 11719 // following are some use cases for using ExpressionAttributeNames: 11720 // 11721 // * To access an attribute whose name conflicts with a DynamoDB reserved 11722 // word. 11723 // 11724 // * To create a placeholder for repeating occurrences of an attribute name 11725 // in an expression. 11726 // 11727 // * To prevent special characters in an attribute name from being misinterpreted 11728 // in an expression. 11729 // 11730 // Use the # character in an expression to dereference an attribute name. For 11731 // example, consider the following attribute name: 11732 // 11733 // * Percentile 11734 // 11735 // The name of this attribute conflicts with a reserved word, so it cannot be 11736 // used directly in an expression. (For the complete list of reserved words, 11737 // see Reserved Words (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html) 11738 // in the Amazon DynamoDB Developer Guide). To work around this, you could specify 11739 // the following for ExpressionAttributeNames: 11740 // 11741 // * {"#P":"Percentile"} 11742 // 11743 // You could then use this substitution in an expression, as in this example: 11744 // 11745 // * #P = :val 11746 // 11747 // Tokens that begin with the : character are expression attribute values, which 11748 // are placeholders for the actual value at runtime. 11749 // 11750 // For more information on expression attribute names, see Specifying Item Attributes 11751 // (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html) 11752 // in the Amazon DynamoDB Developer Guide. 11753 ExpressionAttributeNames map[string]*string `type:"map"` 11754 11755 // One or more values that can be substituted in an expression. 11756 // 11757 // Use the : (colon) character in an expression to dereference an attribute 11758 // value. For example, suppose that you wanted to check whether the value of 11759 // the ProductStatus attribute was one of the following: 11760 // 11761 // Available | Backordered | Discontinued 11762 // 11763 // You would first need to specify ExpressionAttributeValues as follows: 11764 // 11765 // { ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"} 11766 // } 11767 // 11768 // You could then use these values in an expression, such as this: 11769 // 11770 // ProductStatus IN (:avail, :back, :disc) 11771 // 11772 // For more information on expression attribute values, see Specifying Conditions 11773 // (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html) 11774 // in the Amazon DynamoDB Developer Guide. 11775 ExpressionAttributeValues map[string]*AttributeValue `type:"map"` 11776 11777 // A string that contains conditions that DynamoDB applies after the Query operation, 11778 // but before the data is returned to you. Items that do not satisfy the FilterExpression 11779 // criteria are not returned. 11780 // 11781 // A FilterExpression does not allow key attributes. You cannot define a filter 11782 // expression based on a partition key or a sort key. 11783 // 11784 // A FilterExpression is applied after the items have already been read; the 11785 // process of filtering does not consume any additional read capacity units. 11786 // 11787 // For more information, see Filter Expressions (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#FilteringResults) 11788 // in the Amazon DynamoDB Developer Guide. 11789 FilterExpression *string `type:"string"` 11790 11791 // The name of an index to query. This index can be any local secondary index 11792 // or global secondary index on the table. Note that if you use the IndexName 11793 // parameter, you must also provide TableName. 11794 IndexName *string `min:"3" type:"string"` 11795 11796 // The condition that specifies the key values for items to be retrieved by 11797 // the Query action. 11798 // 11799 // The condition must perform an equality test on a single partition key value. 11800 // 11801 // The condition can optionally perform one of several comparison tests on a 11802 // single sort key value. This allows Query to retrieve one item with a given 11803 // partition key value and sort key value, or several items that have the same 11804 // partition key value but different sort key values. 11805 // 11806 // The partition key equality test is required, and must be specified in the 11807 // following format: 11808 // 11809 // partitionKeyName = :partitionkeyval 11810 // 11811 // If you also want to provide a condition for the sort key, it must be combined 11812 // using AND with the condition for the sort key. Following is an example, using 11813 // the = comparison operator for the sort key: 11814 // 11815 // partitionKeyName = :partitionkeyval AND sortKeyName = :sortkeyval 11816 // 11817 // Valid comparisons for the sort key condition are as follows: 11818 // 11819 // * sortKeyName = :sortkeyval - true if the sort key value is equal to :sortkeyval. 11820 // 11821 // * sortKeyName < :sortkeyval - true if the sort key value is less than 11822 // :sortkeyval. 11823 // 11824 // * sortKeyName <= :sortkeyval - true if the sort key value is less than 11825 // or equal to :sortkeyval. 11826 // 11827 // * sortKeyName > :sortkeyval - true if the sort key value is greater than 11828 // :sortkeyval. 11829 // 11830 // * sortKeyName >= :sortkeyval - true if the sort key value is greater than 11831 // or equal to :sortkeyval. 11832 // 11833 // * sortKeyName BETWEEN :sortkeyval1 AND :sortkeyval2 - true if the sort 11834 // key value is greater than or equal to :sortkeyval1, and less than or equal 11835 // to :sortkeyval2. 11836 // 11837 // * begins_with ( sortKeyName, :sortkeyval ) - true if the sort key value 11838 // begins with a particular operand. (You cannot use this function with a 11839 // sort key that is of type Number.) Note that the function name begins_with 11840 // is case-sensitive. 11841 // 11842 // Use the ExpressionAttributeValues parameter to replace tokens such as :partitionval 11843 // and :sortval with actual values at runtime. 11844 // 11845 // You can optionally use the ExpressionAttributeNames parameter to replace 11846 // the names of the partition key and sort key with placeholder tokens. This 11847 // option might be necessary if an attribute name conflicts with a DynamoDB 11848 // reserved word. For example, the following KeyConditionExpression parameter 11849 // causes an error because Size is a reserved word: 11850 // 11851 // * Size = :myval 11852 // 11853 // To work around this, define a placeholder (such a #S) to represent the attribute 11854 // name Size. KeyConditionExpression then is as follows: 11855 // 11856 // * #S = :myval 11857 // 11858 // For a list of reserved words, see Reserved Words (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html) 11859 // in the Amazon DynamoDB Developer Guide. 11860 // 11861 // For more information on ExpressionAttributeNames and ExpressionAttributeValues, 11862 // see Using Placeholders for Attribute Names and Values (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ExpressionPlaceholders.html) 11863 // in the Amazon DynamoDB Developer Guide. 11864 KeyConditionExpression *string `type:"string"` 11865 11866 // This is a legacy parameter. Use KeyConditionExpression instead. For more 11867 // information, see KeyConditions (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.KeyConditions.html) 11868 // in the Amazon DynamoDB Developer Guide. 11869 KeyConditions map[string]*Condition `type:"map"` 11870 11871 // The maximum number of items to evaluate (not necessarily the number of matching 11872 // items). If DynamoDB processes the number of items up to the limit while processing 11873 // the results, it stops the operation and returns the matching values up to 11874 // that point, and a key in LastEvaluatedKey to apply in a subsequent operation, 11875 // so that you can pick up where you left off. Also, if the processed dataset 11876 // size exceeds 1 MB before DynamoDB reaches this limit, it stops the operation 11877 // and returns the matching values up to the limit, and a key in LastEvaluatedKey 11878 // to apply in a subsequent operation to continue the operation. For more information, 11879 // see Query and Scan (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html) 11880 // in the Amazon DynamoDB Developer Guide. 11881 Limit *int64 `min:"1" type:"integer"` 11882 11883 // A string that identifies one or more attributes to retrieve from the table. 11884 // These attributes can include scalars, sets, or elements of a JSON document. 11885 // The attributes in the expression must be separated by commas. 11886 // 11887 // If no attribute names are specified, then all attributes will be returned. 11888 // If any of the requested attributes are not found, they will not appear in 11889 // the result. 11890 // 11891 // For more information, see Accessing Item Attributes (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html) 11892 // in the Amazon DynamoDB Developer Guide. 11893 ProjectionExpression *string `type:"string"` 11894 11895 // This is a legacy parameter. Use FilterExpression instead. For more information, 11896 // see QueryFilter (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.QueryFilter.html) 11897 // in the Amazon DynamoDB Developer Guide. 11898 QueryFilter map[string]*Condition `type:"map"` 11899 11900 // Determines the level of detail about provisioned throughput consumption that 11901 // is returned in the response: 11902 // 11903 // * INDEXES - The response includes the aggregate ConsumedCapacity for the 11904 // operation, together with ConsumedCapacity for each table and secondary 11905 // index that was accessed. Note that some operations, such as GetItem and 11906 // BatchGetItem, do not access any indexes at all. In these cases, specifying 11907 // INDEXES will only return ConsumedCapacity information for table(s). 11908 // 11909 // * TOTAL - The response includes only the aggregate ConsumedCapacity for 11910 // the operation. 11911 // 11912 // * NONE - No ConsumedCapacity details are included in the response. 11913 ReturnConsumedCapacity *string `type:"string" enum:"ReturnConsumedCapacity"` 11914 11915 // Specifies the order for index traversal: If true (default), the traversal 11916 // is performed in ascending order; if false, the traversal is performed in 11917 // descending order. 11918 // 11919 // Items with the same partition key value are stored in sorted order by sort 11920 // key. If the sort key data type is Number, the results are stored in numeric 11921 // order. For type String, the results are stored in order of UTF-8 bytes. For 11922 // type Binary, DynamoDB treats each byte of the binary data as unsigned. 11923 // 11924 // If ScanIndexForward is true, DynamoDB returns the results in the order in 11925 // which they are stored (by sort key value). This is the default behavior. 11926 // If ScanIndexForward is false, DynamoDB reads the results in reverse order 11927 // by sort key value, and then returns the results to the client. 11928 ScanIndexForward *bool `type:"boolean"` 11929 11930 // The attributes to be returned in the result. You can retrieve all item attributes, 11931 // specific item attributes, the count of matching items, or in the case of 11932 // an index, some or all of the attributes projected into the index. 11933 // 11934 // * ALL_ATTRIBUTES - Returns all of the item attributes from the specified 11935 // table or index. If you query a local secondary index, then for each matching 11936 // item in the index, DynamoDB fetches the entire item from the parent table. 11937 // If the index is configured to project all item attributes, then all of 11938 // the data can be obtained from the local secondary index, and no fetching 11939 // is required. 11940 // 11941 // * ALL_PROJECTED_ATTRIBUTES - Allowed only when querying an index. Retrieves 11942 // all attributes that have been projected into the index. If the index is 11943 // configured to project all attributes, this return value is equivalent 11944 // to specifying ALL_ATTRIBUTES. 11945 // 11946 // * COUNT - Returns the number of matching items, rather than the matching 11947 // items themselves. 11948 // 11949 // * SPECIFIC_ATTRIBUTES - Returns only the attributes listed in AttributesToGet. 11950 // This return value is equivalent to specifying AttributesToGet without 11951 // specifying any value for Select. If you query or scan a local secondary 11952 // index and request only attributes that are projected into that index, 11953 // the operation will read only the index and not the table. If any of the 11954 // requested attributes are not projected into the local secondary index, 11955 // DynamoDB fetches each of these attributes from the parent table. This 11956 // extra fetching incurs additional throughput cost and latency. If you query 11957 // or scan a global secondary index, you can only request attributes that 11958 // are projected into the index. Global secondary index queries cannot fetch 11959 // attributes from the parent table. 11960 // 11961 // If neither Select nor AttributesToGet are specified, DynamoDB defaults to 11962 // ALL_ATTRIBUTES when accessing a table, and ALL_PROJECTED_ATTRIBUTES when 11963 // accessing an index. You cannot use both Select and AttributesToGet together 11964 // in a single request, unless the value for Select is SPECIFIC_ATTRIBUTES. 11965 // (This usage is equivalent to specifying AttributesToGet without any value 11966 // for Select.) 11967 // 11968 // If you use the ProjectionExpression parameter, then the value for Select 11969 // can only be SPECIFIC_ATTRIBUTES. Any other value for Select will return an 11970 // error. 11971 Select *string `type:"string" enum:"Select"` 11972 11973 // The name of the table containing the requested items. 11974 // 11975 // TableName is a required field 11976 TableName *string `min:"3" type:"string" required:"true"` 11977} 11978 11979// String returns the string representation 11980func (s QueryInput) String() string { 11981 return awsutil.Prettify(s) 11982} 11983 11984// GoString returns the string representation 11985func (s QueryInput) GoString() string { 11986 return s.String() 11987} 11988 11989// Validate inspects the fields of the type to determine if they are valid. 11990func (s *QueryInput) Validate() error { 11991 invalidParams := request.ErrInvalidParams{Context: "QueryInput"} 11992 if s.AttributesToGet != nil && len(s.AttributesToGet) < 1 { 11993 invalidParams.Add(request.NewErrParamMinLen("AttributesToGet", 1)) 11994 } 11995 if s.IndexName != nil && len(*s.IndexName) < 3 { 11996 invalidParams.Add(request.NewErrParamMinLen("IndexName", 3)) 11997 } 11998 if s.Limit != nil && *s.Limit < 1 { 11999 invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) 12000 } 12001 if s.TableName == nil { 12002 invalidParams.Add(request.NewErrParamRequired("TableName")) 12003 } 12004 if s.TableName != nil && len(*s.TableName) < 3 { 12005 invalidParams.Add(request.NewErrParamMinLen("TableName", 3)) 12006 } 12007 if s.KeyConditions != nil { 12008 for i, v := range s.KeyConditions { 12009 if v == nil { 12010 continue 12011 } 12012 if err := v.Validate(); err != nil { 12013 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "KeyConditions", i), err.(request.ErrInvalidParams)) 12014 } 12015 } 12016 } 12017 if s.QueryFilter != nil { 12018 for i, v := range s.QueryFilter { 12019 if v == nil { 12020 continue 12021 } 12022 if err := v.Validate(); err != nil { 12023 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "QueryFilter", i), err.(request.ErrInvalidParams)) 12024 } 12025 } 12026 } 12027 12028 if invalidParams.Len() > 0 { 12029 return invalidParams 12030 } 12031 return nil 12032} 12033 12034// SetAttributesToGet sets the AttributesToGet field's value. 12035func (s *QueryInput) SetAttributesToGet(v []*string) *QueryInput { 12036 s.AttributesToGet = v 12037 return s 12038} 12039 12040// SetConditionalOperator sets the ConditionalOperator field's value. 12041func (s *QueryInput) SetConditionalOperator(v string) *QueryInput { 12042 s.ConditionalOperator = &v 12043 return s 12044} 12045 12046// SetConsistentRead sets the ConsistentRead field's value. 12047func (s *QueryInput) SetConsistentRead(v bool) *QueryInput { 12048 s.ConsistentRead = &v 12049 return s 12050} 12051 12052// SetExclusiveStartKey sets the ExclusiveStartKey field's value. 12053func (s *QueryInput) SetExclusiveStartKey(v map[string]*AttributeValue) *QueryInput { 12054 s.ExclusiveStartKey = v 12055 return s 12056} 12057 12058// SetExpressionAttributeNames sets the ExpressionAttributeNames field's value. 12059func (s *QueryInput) SetExpressionAttributeNames(v map[string]*string) *QueryInput { 12060 s.ExpressionAttributeNames = v 12061 return s 12062} 12063 12064// SetExpressionAttributeValues sets the ExpressionAttributeValues field's value. 12065func (s *QueryInput) SetExpressionAttributeValues(v map[string]*AttributeValue) *QueryInput { 12066 s.ExpressionAttributeValues = v 12067 return s 12068} 12069 12070// SetFilterExpression sets the FilterExpression field's value. 12071func (s *QueryInput) SetFilterExpression(v string) *QueryInput { 12072 s.FilterExpression = &v 12073 return s 12074} 12075 12076// SetIndexName sets the IndexName field's value. 12077func (s *QueryInput) SetIndexName(v string) *QueryInput { 12078 s.IndexName = &v 12079 return s 12080} 12081 12082// SetKeyConditionExpression sets the KeyConditionExpression field's value. 12083func (s *QueryInput) SetKeyConditionExpression(v string) *QueryInput { 12084 s.KeyConditionExpression = &v 12085 return s 12086} 12087 12088// SetKeyConditions sets the KeyConditions field's value. 12089func (s *QueryInput) SetKeyConditions(v map[string]*Condition) *QueryInput { 12090 s.KeyConditions = v 12091 return s 12092} 12093 12094// SetLimit sets the Limit field's value. 12095func (s *QueryInput) SetLimit(v int64) *QueryInput { 12096 s.Limit = &v 12097 return s 12098} 12099 12100// SetProjectionExpression sets the ProjectionExpression field's value. 12101func (s *QueryInput) SetProjectionExpression(v string) *QueryInput { 12102 s.ProjectionExpression = &v 12103 return s 12104} 12105 12106// SetQueryFilter sets the QueryFilter field's value. 12107func (s *QueryInput) SetQueryFilter(v map[string]*Condition) *QueryInput { 12108 s.QueryFilter = v 12109 return s 12110} 12111 12112// SetReturnConsumedCapacity sets the ReturnConsumedCapacity field's value. 12113func (s *QueryInput) SetReturnConsumedCapacity(v string) *QueryInput { 12114 s.ReturnConsumedCapacity = &v 12115 return s 12116} 12117 12118// SetScanIndexForward sets the ScanIndexForward field's value. 12119func (s *QueryInput) SetScanIndexForward(v bool) *QueryInput { 12120 s.ScanIndexForward = &v 12121 return s 12122} 12123 12124// SetSelect sets the Select field's value. 12125func (s *QueryInput) SetSelect(v string) *QueryInput { 12126 s.Select = &v 12127 return s 12128} 12129 12130// SetTableName sets the TableName field's value. 12131func (s *QueryInput) SetTableName(v string) *QueryInput { 12132 s.TableName = &v 12133 return s 12134} 12135 12136// Represents the output of a Query operation. 12137type QueryOutput struct { 12138 _ struct{} `type:"structure"` 12139 12140 // The capacity units consumed by the Query operation. The data returned includes 12141 // the total provisioned throughput consumed, along with statistics for the 12142 // table and any indexes involved in the operation. ConsumedCapacity is only 12143 // returned if the ReturnConsumedCapacity parameter was specified. For more 12144 // information, see Provisioned Throughput (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html) 12145 // in the Amazon DynamoDB Developer Guide. 12146 ConsumedCapacity *ConsumedCapacity `type:"structure"` 12147 12148 // The number of items in the response. 12149 // 12150 // If you used a QueryFilter in the request, then Count is the number of items 12151 // returned after the filter was applied, and ScannedCount is the number of 12152 // matching items before the filter was applied. 12153 // 12154 // If you did not use a filter in the request, then Count and ScannedCount are 12155 // the same. 12156 Count *int64 `type:"integer"` 12157 12158 // An array of item attributes that match the query criteria. Each element in 12159 // this array consists of an attribute name and the value for that attribute. 12160 Items []map[string]*AttributeValue `type:"list"` 12161 12162 // The primary key of the item where the operation stopped, inclusive of the 12163 // previous result set. Use this value to start a new operation, excluding this 12164 // value in the new request. 12165 // 12166 // If LastEvaluatedKey is empty, then the "last page" of results has been processed 12167 // and there is no more data to be retrieved. 12168 // 12169 // If LastEvaluatedKey is not empty, it does not necessarily mean that there 12170 // is more data in the result set. The only way to know when you have reached 12171 // the end of the result set is when LastEvaluatedKey is empty. 12172 LastEvaluatedKey map[string]*AttributeValue `type:"map"` 12173 12174 // The number of items evaluated, before any QueryFilter is applied. A high 12175 // ScannedCount value with few, or no, Count results indicates an inefficient 12176 // Query operation. For more information, see Count and ScannedCount (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#Count) 12177 // in the Amazon DynamoDB Developer Guide. 12178 // 12179 // If you did not use a filter in the request, then ScannedCount is the same 12180 // as Count. 12181 ScannedCount *int64 `type:"integer"` 12182} 12183 12184// String returns the string representation 12185func (s QueryOutput) String() string { 12186 return awsutil.Prettify(s) 12187} 12188 12189// GoString returns the string representation 12190func (s QueryOutput) GoString() string { 12191 return s.String() 12192} 12193 12194// SetConsumedCapacity sets the ConsumedCapacity field's value. 12195func (s *QueryOutput) SetConsumedCapacity(v *ConsumedCapacity) *QueryOutput { 12196 s.ConsumedCapacity = v 12197 return s 12198} 12199 12200// SetCount sets the Count field's value. 12201func (s *QueryOutput) SetCount(v int64) *QueryOutput { 12202 s.Count = &v 12203 return s 12204} 12205 12206// SetItems sets the Items field's value. 12207func (s *QueryOutput) SetItems(v []map[string]*AttributeValue) *QueryOutput { 12208 s.Items = v 12209 return s 12210} 12211 12212// SetLastEvaluatedKey sets the LastEvaluatedKey field's value. 12213func (s *QueryOutput) SetLastEvaluatedKey(v map[string]*AttributeValue) *QueryOutput { 12214 s.LastEvaluatedKey = v 12215 return s 12216} 12217 12218// SetScannedCount sets the ScannedCount field's value. 12219func (s *QueryOutput) SetScannedCount(v int64) *QueryOutput { 12220 s.ScannedCount = &v 12221 return s 12222} 12223 12224// Represents the properties of a replica. 12225type Replica struct { 12226 _ struct{} `type:"structure"` 12227 12228 // The region where the replica needs to be created. 12229 RegionName *string `type:"string"` 12230} 12231 12232// String returns the string representation 12233func (s Replica) String() string { 12234 return awsutil.Prettify(s) 12235} 12236 12237// GoString returns the string representation 12238func (s Replica) GoString() string { 12239 return s.String() 12240} 12241 12242// SetRegionName sets the RegionName field's value. 12243func (s *Replica) SetRegionName(v string) *Replica { 12244 s.RegionName = &v 12245 return s 12246} 12247 12248// Contains the details of the replica. 12249type ReplicaDescription struct { 12250 _ struct{} `type:"structure"` 12251 12252 // The name of the region. 12253 RegionName *string `type:"string"` 12254} 12255 12256// String returns the string representation 12257func (s ReplicaDescription) String() string { 12258 return awsutil.Prettify(s) 12259} 12260 12261// GoString returns the string representation 12262func (s ReplicaDescription) GoString() string { 12263 return s.String() 12264} 12265 12266// SetRegionName sets the RegionName field's value. 12267func (s *ReplicaDescription) SetRegionName(v string) *ReplicaDescription { 12268 s.RegionName = &v 12269 return s 12270} 12271 12272// Represents the properties of a global secondary index. 12273type ReplicaGlobalSecondaryIndexSettingsDescription struct { 12274 _ struct{} `type:"structure"` 12275 12276 // The name of the global secondary index. The name must be unique among all 12277 // other indexes on this table. 12278 // 12279 // IndexName is a required field 12280 IndexName *string `min:"3" type:"string" required:"true"` 12281 12282 // The current status of the global secondary index: 12283 // 12284 // * CREATING - The global secondary index is being created. 12285 // 12286 // * UPDATING - The global secondary index is being updated. 12287 // 12288 // * DELETING - The global secondary index is being deleted. 12289 // 12290 // * ACTIVE - The global secondary index is ready for use. 12291 IndexStatus *string `type:"string" enum:"IndexStatus"` 12292 12293 // Autoscaling settings for a global secondary index replica's read capacity 12294 // units. 12295 ProvisionedReadCapacityAutoScalingSettings *AutoScalingSettingsDescription `type:"structure"` 12296 12297 // The maximum number of strongly consistent reads consumed per second before 12298 // DynamoDB returns a ThrottlingException. 12299 ProvisionedReadCapacityUnits *int64 `min:"1" type:"long"` 12300 12301 // AutoScaling settings for a global secondary index replica's write capacity 12302 // units. 12303 ProvisionedWriteCapacityAutoScalingSettings *AutoScalingSettingsDescription `type:"structure"` 12304 12305 // The maximum number of writes consumed per second before DynamoDB returns 12306 // a ThrottlingException. 12307 ProvisionedWriteCapacityUnits *int64 `min:"1" type:"long"` 12308} 12309 12310// String returns the string representation 12311func (s ReplicaGlobalSecondaryIndexSettingsDescription) String() string { 12312 return awsutil.Prettify(s) 12313} 12314 12315// GoString returns the string representation 12316func (s ReplicaGlobalSecondaryIndexSettingsDescription) GoString() string { 12317 return s.String() 12318} 12319 12320// SetIndexName sets the IndexName field's value. 12321func (s *ReplicaGlobalSecondaryIndexSettingsDescription) SetIndexName(v string) *ReplicaGlobalSecondaryIndexSettingsDescription { 12322 s.IndexName = &v 12323 return s 12324} 12325 12326// SetIndexStatus sets the IndexStatus field's value. 12327func (s *ReplicaGlobalSecondaryIndexSettingsDescription) SetIndexStatus(v string) *ReplicaGlobalSecondaryIndexSettingsDescription { 12328 s.IndexStatus = &v 12329 return s 12330} 12331 12332// SetProvisionedReadCapacityAutoScalingSettings sets the ProvisionedReadCapacityAutoScalingSettings field's value. 12333func (s *ReplicaGlobalSecondaryIndexSettingsDescription) SetProvisionedReadCapacityAutoScalingSettings(v *AutoScalingSettingsDescription) *ReplicaGlobalSecondaryIndexSettingsDescription { 12334 s.ProvisionedReadCapacityAutoScalingSettings = v 12335 return s 12336} 12337 12338// SetProvisionedReadCapacityUnits sets the ProvisionedReadCapacityUnits field's value. 12339func (s *ReplicaGlobalSecondaryIndexSettingsDescription) SetProvisionedReadCapacityUnits(v int64) *ReplicaGlobalSecondaryIndexSettingsDescription { 12340 s.ProvisionedReadCapacityUnits = &v 12341 return s 12342} 12343 12344// SetProvisionedWriteCapacityAutoScalingSettings sets the ProvisionedWriteCapacityAutoScalingSettings field's value. 12345func (s *ReplicaGlobalSecondaryIndexSettingsDescription) SetProvisionedWriteCapacityAutoScalingSettings(v *AutoScalingSettingsDescription) *ReplicaGlobalSecondaryIndexSettingsDescription { 12346 s.ProvisionedWriteCapacityAutoScalingSettings = v 12347 return s 12348} 12349 12350// SetProvisionedWriteCapacityUnits sets the ProvisionedWriteCapacityUnits field's value. 12351func (s *ReplicaGlobalSecondaryIndexSettingsDescription) SetProvisionedWriteCapacityUnits(v int64) *ReplicaGlobalSecondaryIndexSettingsDescription { 12352 s.ProvisionedWriteCapacityUnits = &v 12353 return s 12354} 12355 12356// Represents the settings of a global secondary index for a global table that 12357// will be modified. 12358type ReplicaGlobalSecondaryIndexSettingsUpdate struct { 12359 _ struct{} `type:"structure"` 12360 12361 // The name of the global secondary index. The name must be unique among all 12362 // other indexes on this table. 12363 // 12364 // IndexName is a required field 12365 IndexName *string `min:"3" type:"string" required:"true"` 12366 12367 // Autoscaling settings for managing a global secondary index replica's read 12368 // capacity units. 12369 ProvisionedReadCapacityAutoScalingSettingsUpdate *AutoScalingSettingsUpdate `type:"structure"` 12370 12371 // The maximum number of strongly consistent reads consumed per second before 12372 // DynamoDB returns a ThrottlingException. 12373 ProvisionedReadCapacityUnits *int64 `min:"1" type:"long"` 12374} 12375 12376// String returns the string representation 12377func (s ReplicaGlobalSecondaryIndexSettingsUpdate) String() string { 12378 return awsutil.Prettify(s) 12379} 12380 12381// GoString returns the string representation 12382func (s ReplicaGlobalSecondaryIndexSettingsUpdate) GoString() string { 12383 return s.String() 12384} 12385 12386// Validate inspects the fields of the type to determine if they are valid. 12387func (s *ReplicaGlobalSecondaryIndexSettingsUpdate) Validate() error { 12388 invalidParams := request.ErrInvalidParams{Context: "ReplicaGlobalSecondaryIndexSettingsUpdate"} 12389 if s.IndexName == nil { 12390 invalidParams.Add(request.NewErrParamRequired("IndexName")) 12391 } 12392 if s.IndexName != nil && len(*s.IndexName) < 3 { 12393 invalidParams.Add(request.NewErrParamMinLen("IndexName", 3)) 12394 } 12395 if s.ProvisionedReadCapacityUnits != nil && *s.ProvisionedReadCapacityUnits < 1 { 12396 invalidParams.Add(request.NewErrParamMinValue("ProvisionedReadCapacityUnits", 1)) 12397 } 12398 if s.ProvisionedReadCapacityAutoScalingSettingsUpdate != nil { 12399 if err := s.ProvisionedReadCapacityAutoScalingSettingsUpdate.Validate(); err != nil { 12400 invalidParams.AddNested("ProvisionedReadCapacityAutoScalingSettingsUpdate", err.(request.ErrInvalidParams)) 12401 } 12402 } 12403 12404 if invalidParams.Len() > 0 { 12405 return invalidParams 12406 } 12407 return nil 12408} 12409 12410// SetIndexName sets the IndexName field's value. 12411func (s *ReplicaGlobalSecondaryIndexSettingsUpdate) SetIndexName(v string) *ReplicaGlobalSecondaryIndexSettingsUpdate { 12412 s.IndexName = &v 12413 return s 12414} 12415 12416// SetProvisionedReadCapacityAutoScalingSettingsUpdate sets the ProvisionedReadCapacityAutoScalingSettingsUpdate field's value. 12417func (s *ReplicaGlobalSecondaryIndexSettingsUpdate) SetProvisionedReadCapacityAutoScalingSettingsUpdate(v *AutoScalingSettingsUpdate) *ReplicaGlobalSecondaryIndexSettingsUpdate { 12418 s.ProvisionedReadCapacityAutoScalingSettingsUpdate = v 12419 return s 12420} 12421 12422// SetProvisionedReadCapacityUnits sets the ProvisionedReadCapacityUnits field's value. 12423func (s *ReplicaGlobalSecondaryIndexSettingsUpdate) SetProvisionedReadCapacityUnits(v int64) *ReplicaGlobalSecondaryIndexSettingsUpdate { 12424 s.ProvisionedReadCapacityUnits = &v 12425 return s 12426} 12427 12428// Represents the properties of a replica. 12429type ReplicaSettingsDescription struct { 12430 _ struct{} `type:"structure"` 12431 12432 // The region name of the replica. 12433 // 12434 // RegionName is a required field 12435 RegionName *string `type:"string" required:"true"` 12436 12437 // The read/write capacity mode of the replica. 12438 ReplicaBillingModeSummary *BillingModeSummary `type:"structure"` 12439 12440 // Replica global secondary index settings for the global table. 12441 ReplicaGlobalSecondaryIndexSettings []*ReplicaGlobalSecondaryIndexSettingsDescription `type:"list"` 12442 12443 // Autoscaling settings for a global table replica's read capacity units. 12444 ReplicaProvisionedReadCapacityAutoScalingSettings *AutoScalingSettingsDescription `type:"structure"` 12445 12446 // The maximum number of strongly consistent reads consumed per second before 12447 // DynamoDB returns a ThrottlingException. For more information, see Specifying 12448 // Read and Write Requirements (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput) 12449 // in the Amazon DynamoDB Developer Guide. 12450 ReplicaProvisionedReadCapacityUnits *int64 `type:"long"` 12451 12452 // AutoScaling settings for a global table replica's write capacity units. 12453 ReplicaProvisionedWriteCapacityAutoScalingSettings *AutoScalingSettingsDescription `type:"structure"` 12454 12455 // The maximum number of writes consumed per second before DynamoDB returns 12456 // a ThrottlingException. For more information, see Specifying Read and Write 12457 // Requirements (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput) 12458 // in the Amazon DynamoDB Developer Guide. 12459 ReplicaProvisionedWriteCapacityUnits *int64 `type:"long"` 12460 12461 // The current state of the region: 12462 // 12463 // * CREATING - The region is being created. 12464 // 12465 // * UPDATING - The region is being updated. 12466 // 12467 // * DELETING - The region is being deleted. 12468 // 12469 // * ACTIVE - The region is ready for use. 12470 ReplicaStatus *string `type:"string" enum:"ReplicaStatus"` 12471} 12472 12473// String returns the string representation 12474func (s ReplicaSettingsDescription) String() string { 12475 return awsutil.Prettify(s) 12476} 12477 12478// GoString returns the string representation 12479func (s ReplicaSettingsDescription) GoString() string { 12480 return s.String() 12481} 12482 12483// SetRegionName sets the RegionName field's value. 12484func (s *ReplicaSettingsDescription) SetRegionName(v string) *ReplicaSettingsDescription { 12485 s.RegionName = &v 12486 return s 12487} 12488 12489// SetReplicaBillingModeSummary sets the ReplicaBillingModeSummary field's value. 12490func (s *ReplicaSettingsDescription) SetReplicaBillingModeSummary(v *BillingModeSummary) *ReplicaSettingsDescription { 12491 s.ReplicaBillingModeSummary = v 12492 return s 12493} 12494 12495// SetReplicaGlobalSecondaryIndexSettings sets the ReplicaGlobalSecondaryIndexSettings field's value. 12496func (s *ReplicaSettingsDescription) SetReplicaGlobalSecondaryIndexSettings(v []*ReplicaGlobalSecondaryIndexSettingsDescription) *ReplicaSettingsDescription { 12497 s.ReplicaGlobalSecondaryIndexSettings = v 12498 return s 12499} 12500 12501// SetReplicaProvisionedReadCapacityAutoScalingSettings sets the ReplicaProvisionedReadCapacityAutoScalingSettings field's value. 12502func (s *ReplicaSettingsDescription) SetReplicaProvisionedReadCapacityAutoScalingSettings(v *AutoScalingSettingsDescription) *ReplicaSettingsDescription { 12503 s.ReplicaProvisionedReadCapacityAutoScalingSettings = v 12504 return s 12505} 12506 12507// SetReplicaProvisionedReadCapacityUnits sets the ReplicaProvisionedReadCapacityUnits field's value. 12508func (s *ReplicaSettingsDescription) SetReplicaProvisionedReadCapacityUnits(v int64) *ReplicaSettingsDescription { 12509 s.ReplicaProvisionedReadCapacityUnits = &v 12510 return s 12511} 12512 12513// SetReplicaProvisionedWriteCapacityAutoScalingSettings sets the ReplicaProvisionedWriteCapacityAutoScalingSettings field's value. 12514func (s *ReplicaSettingsDescription) SetReplicaProvisionedWriteCapacityAutoScalingSettings(v *AutoScalingSettingsDescription) *ReplicaSettingsDescription { 12515 s.ReplicaProvisionedWriteCapacityAutoScalingSettings = v 12516 return s 12517} 12518 12519// SetReplicaProvisionedWriteCapacityUnits sets the ReplicaProvisionedWriteCapacityUnits field's value. 12520func (s *ReplicaSettingsDescription) SetReplicaProvisionedWriteCapacityUnits(v int64) *ReplicaSettingsDescription { 12521 s.ReplicaProvisionedWriteCapacityUnits = &v 12522 return s 12523} 12524 12525// SetReplicaStatus sets the ReplicaStatus field's value. 12526func (s *ReplicaSettingsDescription) SetReplicaStatus(v string) *ReplicaSettingsDescription { 12527 s.ReplicaStatus = &v 12528 return s 12529} 12530 12531// Represents the settings for a global table in a region that will be modified. 12532type ReplicaSettingsUpdate struct { 12533 _ struct{} `type:"structure"` 12534 12535 // The region of the replica to be added. 12536 // 12537 // RegionName is a required field 12538 RegionName *string `type:"string" required:"true"` 12539 12540 // Represents the settings of a global secondary index for a global table that 12541 // will be modified. 12542 ReplicaGlobalSecondaryIndexSettingsUpdate []*ReplicaGlobalSecondaryIndexSettingsUpdate `min:"1" type:"list"` 12543 12544 // Autoscaling settings for managing a global table replica's read capacity 12545 // units. 12546 ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate *AutoScalingSettingsUpdate `type:"structure"` 12547 12548 // The maximum number of strongly consistent reads consumed per second before 12549 // DynamoDB returns a ThrottlingException. For more information, see Specifying 12550 // Read and Write Requirements (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput) 12551 // in the Amazon DynamoDB Developer Guide. 12552 ReplicaProvisionedReadCapacityUnits *int64 `min:"1" type:"long"` 12553} 12554 12555// String returns the string representation 12556func (s ReplicaSettingsUpdate) String() string { 12557 return awsutil.Prettify(s) 12558} 12559 12560// GoString returns the string representation 12561func (s ReplicaSettingsUpdate) GoString() string { 12562 return s.String() 12563} 12564 12565// Validate inspects the fields of the type to determine if they are valid. 12566func (s *ReplicaSettingsUpdate) Validate() error { 12567 invalidParams := request.ErrInvalidParams{Context: "ReplicaSettingsUpdate"} 12568 if s.RegionName == nil { 12569 invalidParams.Add(request.NewErrParamRequired("RegionName")) 12570 } 12571 if s.ReplicaGlobalSecondaryIndexSettingsUpdate != nil && len(s.ReplicaGlobalSecondaryIndexSettingsUpdate) < 1 { 12572 invalidParams.Add(request.NewErrParamMinLen("ReplicaGlobalSecondaryIndexSettingsUpdate", 1)) 12573 } 12574 if s.ReplicaProvisionedReadCapacityUnits != nil && *s.ReplicaProvisionedReadCapacityUnits < 1 { 12575 invalidParams.Add(request.NewErrParamMinValue("ReplicaProvisionedReadCapacityUnits", 1)) 12576 } 12577 if s.ReplicaGlobalSecondaryIndexSettingsUpdate != nil { 12578 for i, v := range s.ReplicaGlobalSecondaryIndexSettingsUpdate { 12579 if v == nil { 12580 continue 12581 } 12582 if err := v.Validate(); err != nil { 12583 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ReplicaGlobalSecondaryIndexSettingsUpdate", i), err.(request.ErrInvalidParams)) 12584 } 12585 } 12586 } 12587 if s.ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate != nil { 12588 if err := s.ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate.Validate(); err != nil { 12589 invalidParams.AddNested("ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate", err.(request.ErrInvalidParams)) 12590 } 12591 } 12592 12593 if invalidParams.Len() > 0 { 12594 return invalidParams 12595 } 12596 return nil 12597} 12598 12599// SetRegionName sets the RegionName field's value. 12600func (s *ReplicaSettingsUpdate) SetRegionName(v string) *ReplicaSettingsUpdate { 12601 s.RegionName = &v 12602 return s 12603} 12604 12605// SetReplicaGlobalSecondaryIndexSettingsUpdate sets the ReplicaGlobalSecondaryIndexSettingsUpdate field's value. 12606func (s *ReplicaSettingsUpdate) SetReplicaGlobalSecondaryIndexSettingsUpdate(v []*ReplicaGlobalSecondaryIndexSettingsUpdate) *ReplicaSettingsUpdate { 12607 s.ReplicaGlobalSecondaryIndexSettingsUpdate = v 12608 return s 12609} 12610 12611// SetReplicaProvisionedReadCapacityAutoScalingSettingsUpdate sets the ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate field's value. 12612func (s *ReplicaSettingsUpdate) SetReplicaProvisionedReadCapacityAutoScalingSettingsUpdate(v *AutoScalingSettingsUpdate) *ReplicaSettingsUpdate { 12613 s.ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate = v 12614 return s 12615} 12616 12617// SetReplicaProvisionedReadCapacityUnits sets the ReplicaProvisionedReadCapacityUnits field's value. 12618func (s *ReplicaSettingsUpdate) SetReplicaProvisionedReadCapacityUnits(v int64) *ReplicaSettingsUpdate { 12619 s.ReplicaProvisionedReadCapacityUnits = &v 12620 return s 12621} 12622 12623// Represents one of the following: 12624// 12625// * A new replica to be added to an existing global table. 12626// 12627// * New parameters for an existing replica. 12628// 12629// * An existing replica to be removed from an existing global table. 12630type ReplicaUpdate struct { 12631 _ struct{} `type:"structure"` 12632 12633 // The parameters required for creating a replica on an existing global table. 12634 Create *CreateReplicaAction `type:"structure"` 12635 12636 // The name of the existing replica to be removed. 12637 Delete *DeleteReplicaAction `type:"structure"` 12638} 12639 12640// String returns the string representation 12641func (s ReplicaUpdate) String() string { 12642 return awsutil.Prettify(s) 12643} 12644 12645// GoString returns the string representation 12646func (s ReplicaUpdate) GoString() string { 12647 return s.String() 12648} 12649 12650// Validate inspects the fields of the type to determine if they are valid. 12651func (s *ReplicaUpdate) Validate() error { 12652 invalidParams := request.ErrInvalidParams{Context: "ReplicaUpdate"} 12653 if s.Create != nil { 12654 if err := s.Create.Validate(); err != nil { 12655 invalidParams.AddNested("Create", err.(request.ErrInvalidParams)) 12656 } 12657 } 12658 if s.Delete != nil { 12659 if err := s.Delete.Validate(); err != nil { 12660 invalidParams.AddNested("Delete", err.(request.ErrInvalidParams)) 12661 } 12662 } 12663 12664 if invalidParams.Len() > 0 { 12665 return invalidParams 12666 } 12667 return nil 12668} 12669 12670// SetCreate sets the Create field's value. 12671func (s *ReplicaUpdate) SetCreate(v *CreateReplicaAction) *ReplicaUpdate { 12672 s.Create = v 12673 return s 12674} 12675 12676// SetDelete sets the Delete field's value. 12677func (s *ReplicaUpdate) SetDelete(v *DeleteReplicaAction) *ReplicaUpdate { 12678 s.Delete = v 12679 return s 12680} 12681 12682// Contains details for the restore. 12683type RestoreSummary struct { 12684 _ struct{} `type:"structure"` 12685 12686 // Point in time or source backup time. 12687 // 12688 // RestoreDateTime is a required field 12689 RestoreDateTime *time.Time `type:"timestamp" required:"true"` 12690 12691 // Indicates if a restore is in progress or not. 12692 // 12693 // RestoreInProgress is a required field 12694 RestoreInProgress *bool `type:"boolean" required:"true"` 12695 12696 // ARN of the backup from which the table was restored. 12697 SourceBackupArn *string `min:"37" type:"string"` 12698 12699 // ARN of the source table of the backup that is being restored. 12700 SourceTableArn *string `type:"string"` 12701} 12702 12703// String returns the string representation 12704func (s RestoreSummary) String() string { 12705 return awsutil.Prettify(s) 12706} 12707 12708// GoString returns the string representation 12709func (s RestoreSummary) GoString() string { 12710 return s.String() 12711} 12712 12713// SetRestoreDateTime sets the RestoreDateTime field's value. 12714func (s *RestoreSummary) SetRestoreDateTime(v time.Time) *RestoreSummary { 12715 s.RestoreDateTime = &v 12716 return s 12717} 12718 12719// SetRestoreInProgress sets the RestoreInProgress field's value. 12720func (s *RestoreSummary) SetRestoreInProgress(v bool) *RestoreSummary { 12721 s.RestoreInProgress = &v 12722 return s 12723} 12724 12725// SetSourceBackupArn sets the SourceBackupArn field's value. 12726func (s *RestoreSummary) SetSourceBackupArn(v string) *RestoreSummary { 12727 s.SourceBackupArn = &v 12728 return s 12729} 12730 12731// SetSourceTableArn sets the SourceTableArn field's value. 12732func (s *RestoreSummary) SetSourceTableArn(v string) *RestoreSummary { 12733 s.SourceTableArn = &v 12734 return s 12735} 12736 12737type RestoreTableFromBackupInput struct { 12738 _ struct{} `type:"structure"` 12739 12740 // The Amazon Resource Name (ARN) associated with the backup. 12741 // 12742 // BackupArn is a required field 12743 BackupArn *string `min:"37" type:"string" required:"true"` 12744 12745 // The name of the new table to which the backup must be restored. 12746 // 12747 // TargetTableName is a required field 12748 TargetTableName *string `min:"3" type:"string" required:"true"` 12749} 12750 12751// String returns the string representation 12752func (s RestoreTableFromBackupInput) String() string { 12753 return awsutil.Prettify(s) 12754} 12755 12756// GoString returns the string representation 12757func (s RestoreTableFromBackupInput) GoString() string { 12758 return s.String() 12759} 12760 12761// Validate inspects the fields of the type to determine if they are valid. 12762func (s *RestoreTableFromBackupInput) Validate() error { 12763 invalidParams := request.ErrInvalidParams{Context: "RestoreTableFromBackupInput"} 12764 if s.BackupArn == nil { 12765 invalidParams.Add(request.NewErrParamRequired("BackupArn")) 12766 } 12767 if s.BackupArn != nil && len(*s.BackupArn) < 37 { 12768 invalidParams.Add(request.NewErrParamMinLen("BackupArn", 37)) 12769 } 12770 if s.TargetTableName == nil { 12771 invalidParams.Add(request.NewErrParamRequired("TargetTableName")) 12772 } 12773 if s.TargetTableName != nil && len(*s.TargetTableName) < 3 { 12774 invalidParams.Add(request.NewErrParamMinLen("TargetTableName", 3)) 12775 } 12776 12777 if invalidParams.Len() > 0 { 12778 return invalidParams 12779 } 12780 return nil 12781} 12782 12783// SetBackupArn sets the BackupArn field's value. 12784func (s *RestoreTableFromBackupInput) SetBackupArn(v string) *RestoreTableFromBackupInput { 12785 s.BackupArn = &v 12786 return s 12787} 12788 12789// SetTargetTableName sets the TargetTableName field's value. 12790func (s *RestoreTableFromBackupInput) SetTargetTableName(v string) *RestoreTableFromBackupInput { 12791 s.TargetTableName = &v 12792 return s 12793} 12794 12795type RestoreTableFromBackupOutput struct { 12796 _ struct{} `type:"structure"` 12797 12798 // The description of the table created from an existing backup. 12799 TableDescription *TableDescription `type:"structure"` 12800} 12801 12802// String returns the string representation 12803func (s RestoreTableFromBackupOutput) String() string { 12804 return awsutil.Prettify(s) 12805} 12806 12807// GoString returns the string representation 12808func (s RestoreTableFromBackupOutput) GoString() string { 12809 return s.String() 12810} 12811 12812// SetTableDescription sets the TableDescription field's value. 12813func (s *RestoreTableFromBackupOutput) SetTableDescription(v *TableDescription) *RestoreTableFromBackupOutput { 12814 s.TableDescription = v 12815 return s 12816} 12817 12818type RestoreTableToPointInTimeInput struct { 12819 _ struct{} `type:"structure"` 12820 12821 // Time in the past to restore the table to. 12822 RestoreDateTime *time.Time `type:"timestamp"` 12823 12824 // Name of the source table that is being restored. 12825 // 12826 // SourceTableName is a required field 12827 SourceTableName *string `min:"3" type:"string" required:"true"` 12828 12829 // The name of the new table to which it must be restored to. 12830 // 12831 // TargetTableName is a required field 12832 TargetTableName *string `min:"3" type:"string" required:"true"` 12833 12834 // Restore the table to the latest possible time. LatestRestorableDateTime is 12835 // typically 5 minutes before the current time. 12836 UseLatestRestorableTime *bool `type:"boolean"` 12837} 12838 12839// String returns the string representation 12840func (s RestoreTableToPointInTimeInput) String() string { 12841 return awsutil.Prettify(s) 12842} 12843 12844// GoString returns the string representation 12845func (s RestoreTableToPointInTimeInput) GoString() string { 12846 return s.String() 12847} 12848 12849// Validate inspects the fields of the type to determine if they are valid. 12850func (s *RestoreTableToPointInTimeInput) Validate() error { 12851 invalidParams := request.ErrInvalidParams{Context: "RestoreTableToPointInTimeInput"} 12852 if s.SourceTableName == nil { 12853 invalidParams.Add(request.NewErrParamRequired("SourceTableName")) 12854 } 12855 if s.SourceTableName != nil && len(*s.SourceTableName) < 3 { 12856 invalidParams.Add(request.NewErrParamMinLen("SourceTableName", 3)) 12857 } 12858 if s.TargetTableName == nil { 12859 invalidParams.Add(request.NewErrParamRequired("TargetTableName")) 12860 } 12861 if s.TargetTableName != nil && len(*s.TargetTableName) < 3 { 12862 invalidParams.Add(request.NewErrParamMinLen("TargetTableName", 3)) 12863 } 12864 12865 if invalidParams.Len() > 0 { 12866 return invalidParams 12867 } 12868 return nil 12869} 12870 12871// SetRestoreDateTime sets the RestoreDateTime field's value. 12872func (s *RestoreTableToPointInTimeInput) SetRestoreDateTime(v time.Time) *RestoreTableToPointInTimeInput { 12873 s.RestoreDateTime = &v 12874 return s 12875} 12876 12877// SetSourceTableName sets the SourceTableName field's value. 12878func (s *RestoreTableToPointInTimeInput) SetSourceTableName(v string) *RestoreTableToPointInTimeInput { 12879 s.SourceTableName = &v 12880 return s 12881} 12882 12883// SetTargetTableName sets the TargetTableName field's value. 12884func (s *RestoreTableToPointInTimeInput) SetTargetTableName(v string) *RestoreTableToPointInTimeInput { 12885 s.TargetTableName = &v 12886 return s 12887} 12888 12889// SetUseLatestRestorableTime sets the UseLatestRestorableTime field's value. 12890func (s *RestoreTableToPointInTimeInput) SetUseLatestRestorableTime(v bool) *RestoreTableToPointInTimeInput { 12891 s.UseLatestRestorableTime = &v 12892 return s 12893} 12894 12895type RestoreTableToPointInTimeOutput struct { 12896 _ struct{} `type:"structure"` 12897 12898 // Represents the properties of a table. 12899 TableDescription *TableDescription `type:"structure"` 12900} 12901 12902// String returns the string representation 12903func (s RestoreTableToPointInTimeOutput) String() string { 12904 return awsutil.Prettify(s) 12905} 12906 12907// GoString returns the string representation 12908func (s RestoreTableToPointInTimeOutput) GoString() string { 12909 return s.String() 12910} 12911 12912// SetTableDescription sets the TableDescription field's value. 12913func (s *RestoreTableToPointInTimeOutput) SetTableDescription(v *TableDescription) *RestoreTableToPointInTimeOutput { 12914 s.TableDescription = v 12915 return s 12916} 12917 12918// The description of the server-side encryption status on the specified table. 12919type SSEDescription struct { 12920 _ struct{} `type:"structure"` 12921 12922 // The KMS customer master key (CMK) ARN used for the KMS encryption. 12923 KMSMasterKeyArn *string `type:"string"` 12924 12925 // Server-side encryption type. The only supported value is: 12926 // 12927 // * KMS - Server-side encryption which uses AWS Key Management Service. 12928 // Key is stored in your account and is managed by AWS KMS (KMS charges apply). 12929 SSEType *string `type:"string" enum:"SSEType"` 12930 12931 // Represents the current state of server-side encryption. The only supported 12932 // values are: 12933 // 12934 // * ENABLED - Server-side encryption is enabled. 12935 // 12936 // * UPDATING - Server-side encryption is being updated. 12937 Status *string `type:"string" enum:"SSEStatus"` 12938} 12939 12940// String returns the string representation 12941func (s SSEDescription) String() string { 12942 return awsutil.Prettify(s) 12943} 12944 12945// GoString returns the string representation 12946func (s SSEDescription) GoString() string { 12947 return s.String() 12948} 12949 12950// SetKMSMasterKeyArn sets the KMSMasterKeyArn field's value. 12951func (s *SSEDescription) SetKMSMasterKeyArn(v string) *SSEDescription { 12952 s.KMSMasterKeyArn = &v 12953 return s 12954} 12955 12956// SetSSEType sets the SSEType field's value. 12957func (s *SSEDescription) SetSSEType(v string) *SSEDescription { 12958 s.SSEType = &v 12959 return s 12960} 12961 12962// SetStatus sets the Status field's value. 12963func (s *SSEDescription) SetStatus(v string) *SSEDescription { 12964 s.Status = &v 12965 return s 12966} 12967 12968// Represents the settings used to enable server-side encryption. 12969type SSESpecification struct { 12970 _ struct{} `type:"structure"` 12971 12972 // Indicates whether server-side encryption is done using an AWS managed CMK 12973 // or an AWS owned CMK. If enabled (true), server-side encryption type is set 12974 // to KMS and an AWS managed CMK is used (AWS KMS charges apply). If disabled 12975 // (false) or not specified, server-side encryption is set to AWS owned CMK. 12976 Enabled *bool `type:"boolean"` 12977 12978 // The KMS Customer Master Key (CMK) which should be used for the KMS encryption. 12979 // To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, 12980 // or alias ARN. Note that you should only provide this parameter if the key 12981 // is different from the default DynamoDB Customer Master Key alias/aws/dynamodb. 12982 KMSMasterKeyId *string `type:"string"` 12983 12984 // Server-side encryption type. The only supported value is: 12985 // 12986 // * KMS - Server-side encryption which uses AWS Key Management Service. 12987 // Key is stored in your account and is managed by AWS KMS (KMS charges apply). 12988 SSEType *string `type:"string" enum:"SSEType"` 12989} 12990 12991// String returns the string representation 12992func (s SSESpecification) String() string { 12993 return awsutil.Prettify(s) 12994} 12995 12996// GoString returns the string representation 12997func (s SSESpecification) GoString() string { 12998 return s.String() 12999} 13000 13001// SetEnabled sets the Enabled field's value. 13002func (s *SSESpecification) SetEnabled(v bool) *SSESpecification { 13003 s.Enabled = &v 13004 return s 13005} 13006 13007// SetKMSMasterKeyId sets the KMSMasterKeyId field's value. 13008func (s *SSESpecification) SetKMSMasterKeyId(v string) *SSESpecification { 13009 s.KMSMasterKeyId = &v 13010 return s 13011} 13012 13013// SetSSEType sets the SSEType field's value. 13014func (s *SSESpecification) SetSSEType(v string) *SSESpecification { 13015 s.SSEType = &v 13016 return s 13017} 13018 13019// Represents the input of a Scan operation. 13020type ScanInput struct { 13021 _ struct{} `type:"structure"` 13022 13023 // This is a legacy parameter. Use ProjectionExpression instead. For more information, 13024 // see AttributesToGet (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.AttributesToGet.html) 13025 // in the Amazon DynamoDB Developer Guide. 13026 AttributesToGet []*string `min:"1" type:"list"` 13027 13028 // This is a legacy parameter. Use FilterExpression instead. For more information, 13029 // see ConditionalOperator (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ConditionalOperator.html) 13030 // in the Amazon DynamoDB Developer Guide. 13031 ConditionalOperator *string `type:"string" enum:"ConditionalOperator"` 13032 13033 // A Boolean value that determines the read consistency model during the scan: 13034 // 13035 // * If ConsistentRead is false, then the data returned from Scan might not 13036 // contain the results from other recently completed write operations (PutItem, 13037 // UpdateItem, or DeleteItem). 13038 // 13039 // * If ConsistentRead is true, then all of the write operations that completed 13040 // before the Scan began are guaranteed to be contained in the Scan response. 13041 // 13042 // The default setting for ConsistentRead is false. 13043 // 13044 // The ConsistentRead parameter is not supported on global secondary indexes. 13045 // If you scan a global secondary index with ConsistentRead set to true, you 13046 // will receive a ValidationException. 13047 ConsistentRead *bool `type:"boolean"` 13048 13049 // The primary key of the first item that this operation will evaluate. Use 13050 // the value that was returned for LastEvaluatedKey in the previous operation. 13051 // 13052 // The data type for ExclusiveStartKey must be String, Number or Binary. No 13053 // set data types are allowed. 13054 // 13055 // In a parallel scan, a Scan request that includes ExclusiveStartKey must specify 13056 // the same segment whose previous Scan returned the corresponding value of 13057 // LastEvaluatedKey. 13058 ExclusiveStartKey map[string]*AttributeValue `type:"map"` 13059 13060 // One or more substitution tokens for attribute names in an expression. The 13061 // following are some use cases for using ExpressionAttributeNames: 13062 // 13063 // * To access an attribute whose name conflicts with a DynamoDB reserved 13064 // word. 13065 // 13066 // * To create a placeholder for repeating occurrences of an attribute name 13067 // in an expression. 13068 // 13069 // * To prevent special characters in an attribute name from being misinterpreted 13070 // in an expression. 13071 // 13072 // Use the # character in an expression to dereference an attribute name. For 13073 // example, consider the following attribute name: 13074 // 13075 // * Percentile 13076 // 13077 // The name of this attribute conflicts with a reserved word, so it cannot be 13078 // used directly in an expression. (For the complete list of reserved words, 13079 // see Reserved Words (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html) 13080 // in the Amazon DynamoDB Developer Guide). To work around this, you could specify 13081 // the following for ExpressionAttributeNames: 13082 // 13083 // * {"#P":"Percentile"} 13084 // 13085 // You could then use this substitution in an expression, as in this example: 13086 // 13087 // * #P = :val 13088 // 13089 // Tokens that begin with the : character are expression attribute values, which 13090 // are placeholders for the actual value at runtime. 13091 // 13092 // For more information on expression attribute names, see Specifying Item Attributes 13093 // (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html) 13094 // in the Amazon DynamoDB Developer Guide. 13095 ExpressionAttributeNames map[string]*string `type:"map"` 13096 13097 // One or more values that can be substituted in an expression. 13098 // 13099 // Use the : (colon) character in an expression to dereference an attribute 13100 // value. For example, suppose that you wanted to check whether the value of 13101 // the ProductStatus attribute was one of the following: 13102 // 13103 // Available | Backordered | Discontinued 13104 // 13105 // You would first need to specify ExpressionAttributeValues as follows: 13106 // 13107 // { ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"} 13108 // } 13109 // 13110 // You could then use these values in an expression, such as this: 13111 // 13112 // ProductStatus IN (:avail, :back, :disc) 13113 // 13114 // For more information on expression attribute values, see Condition Expressions 13115 // (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html) 13116 // in the Amazon DynamoDB Developer Guide. 13117 ExpressionAttributeValues map[string]*AttributeValue `type:"map"` 13118 13119 // A string that contains conditions that DynamoDB applies after the Scan operation, 13120 // but before the data is returned to you. Items that do not satisfy the FilterExpression 13121 // criteria are not returned. 13122 // 13123 // A FilterExpression is applied after the items have already been read; the 13124 // process of filtering does not consume any additional read capacity units. 13125 // 13126 // For more information, see Filter Expressions (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#FilteringResults) 13127 // in the Amazon DynamoDB Developer Guide. 13128 FilterExpression *string `type:"string"` 13129 13130 // The name of a secondary index to scan. This index can be any local secondary 13131 // index or global secondary index. Note that if you use the IndexName parameter, 13132 // you must also provide TableName. 13133 IndexName *string `min:"3" type:"string"` 13134 13135 // The maximum number of items to evaluate (not necessarily the number of matching 13136 // items). If DynamoDB processes the number of items up to the limit while processing 13137 // the results, it stops the operation and returns the matching values up to 13138 // that point, and a key in LastEvaluatedKey to apply in a subsequent operation, 13139 // so that you can pick up where you left off. Also, if the processed dataset 13140 // size exceeds 1 MB before DynamoDB reaches this limit, it stops the operation 13141 // and returns the matching values up to the limit, and a key in LastEvaluatedKey 13142 // to apply in a subsequent operation to continue the operation. For more information, 13143 // see Working with Queries (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html) 13144 // in the Amazon DynamoDB Developer Guide. 13145 Limit *int64 `min:"1" type:"integer"` 13146 13147 // A string that identifies one or more attributes to retrieve from the specified 13148 // table or index. These attributes can include scalars, sets, or elements of 13149 // a JSON document. The attributes in the expression must be separated by commas. 13150 // 13151 // If no attribute names are specified, then all attributes will be returned. 13152 // If any of the requested attributes are not found, they will not appear in 13153 // the result. 13154 // 13155 // For more information, see Specifying Item Attributes (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html) 13156 // in the Amazon DynamoDB Developer Guide. 13157 ProjectionExpression *string `type:"string"` 13158 13159 // Determines the level of detail about provisioned throughput consumption that 13160 // is returned in the response: 13161 // 13162 // * INDEXES - The response includes the aggregate ConsumedCapacity for the 13163 // operation, together with ConsumedCapacity for each table and secondary 13164 // index that was accessed. Note that some operations, such as GetItem and 13165 // BatchGetItem, do not access any indexes at all. In these cases, specifying 13166 // INDEXES will only return ConsumedCapacity information for table(s). 13167 // 13168 // * TOTAL - The response includes only the aggregate ConsumedCapacity for 13169 // the operation. 13170 // 13171 // * NONE - No ConsumedCapacity details are included in the response. 13172 ReturnConsumedCapacity *string `type:"string" enum:"ReturnConsumedCapacity"` 13173 13174 // This is a legacy parameter. Use FilterExpression instead. For more information, 13175 // see ScanFilter (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ScanFilter.html) 13176 // in the Amazon DynamoDB Developer Guide. 13177 ScanFilter map[string]*Condition `type:"map"` 13178 13179 // For a parallel Scan request, Segment identifies an individual segment to 13180 // be scanned by an application worker. 13181 // 13182 // Segment IDs are zero-based, so the first segment is always 0. For example, 13183 // if you want to use four application threads to scan a table or an index, 13184 // then the first thread specifies a Segment value of 0, the second thread specifies 13185 // 1, and so on. 13186 // 13187 // The value of LastEvaluatedKey returned from a parallel Scan request must 13188 // be used as ExclusiveStartKey with the same segment ID in a subsequent Scan 13189 // operation. 13190 // 13191 // The value for Segment must be greater than or equal to 0, and less than the 13192 // value provided for TotalSegments. 13193 // 13194 // If you provide Segment, you must also provide TotalSegments. 13195 Segment *int64 `type:"integer"` 13196 13197 // The attributes to be returned in the result. You can retrieve all item attributes, 13198 // specific item attributes, the count of matching items, or in the case of 13199 // an index, some or all of the attributes projected into the index. 13200 // 13201 // * ALL_ATTRIBUTES - Returns all of the item attributes from the specified 13202 // table or index. If you query a local secondary index, then for each matching 13203 // item in the index, DynamoDB fetches the entire item from the parent table. 13204 // If the index is configured to project all item attributes, then all of 13205 // the data can be obtained from the local secondary index, and no fetching 13206 // is required. 13207 // 13208 // * ALL_PROJECTED_ATTRIBUTES - Allowed only when querying an index. Retrieves 13209 // all attributes that have been projected into the index. If the index is 13210 // configured to project all attributes, this return value is equivalent 13211 // to specifying ALL_ATTRIBUTES. 13212 // 13213 // * COUNT - Returns the number of matching items, rather than the matching 13214 // items themselves. 13215 // 13216 // * SPECIFIC_ATTRIBUTES - Returns only the attributes listed in AttributesToGet. 13217 // This return value is equivalent to specifying AttributesToGet without 13218 // specifying any value for Select. If you query or scan a local secondary 13219 // index and request only attributes that are projected into that index, 13220 // the operation reads only the index and not the table. If any of the requested 13221 // attributes are not projected into the local secondary index, DynamoDB 13222 // fetches each of these attributes from the parent table. This extra fetching 13223 // incurs additional throughput cost and latency. If you query or scan a 13224 // global secondary index, you can only request attributes that are projected 13225 // into the index. Global secondary index queries cannot fetch attributes 13226 // from the parent table. 13227 // 13228 // If neither Select nor AttributesToGet are specified, DynamoDB defaults to 13229 // ALL_ATTRIBUTES when accessing a table, and ALL_PROJECTED_ATTRIBUTES when 13230 // accessing an index. You cannot use both Select and AttributesToGet together 13231 // in a single request, unless the value for Select is SPECIFIC_ATTRIBUTES. 13232 // (This usage is equivalent to specifying AttributesToGet without any value 13233 // for Select.) 13234 // 13235 // If you use the ProjectionExpression parameter, then the value for Select 13236 // can only be SPECIFIC_ATTRIBUTES. Any other value for Select will return an 13237 // error. 13238 Select *string `type:"string" enum:"Select"` 13239 13240 // The name of the table containing the requested items; or, if you provide 13241 // IndexName, the name of the table to which that index belongs. 13242 // 13243 // TableName is a required field 13244 TableName *string `min:"3" type:"string" required:"true"` 13245 13246 // For a parallel Scan request, TotalSegments represents the total number of 13247 // segments into which the Scan operation will be divided. The value of TotalSegments 13248 // corresponds to the number of application workers that will perform the parallel 13249 // scan. For example, if you want to use four application threads to scan a 13250 // table or an index, specify a TotalSegments value of 4. 13251 // 13252 // The value for TotalSegments must be greater than or equal to 1, and less 13253 // than or equal to 1000000. If you specify a TotalSegments value of 1, the 13254 // Scan operation will be sequential rather than parallel. 13255 // 13256 // If you specify TotalSegments, you must also specify Segment. 13257 TotalSegments *int64 `min:"1" type:"integer"` 13258} 13259 13260// String returns the string representation 13261func (s ScanInput) String() string { 13262 return awsutil.Prettify(s) 13263} 13264 13265// GoString returns the string representation 13266func (s ScanInput) GoString() string { 13267 return s.String() 13268} 13269 13270// Validate inspects the fields of the type to determine if they are valid. 13271func (s *ScanInput) Validate() error { 13272 invalidParams := request.ErrInvalidParams{Context: "ScanInput"} 13273 if s.AttributesToGet != nil && len(s.AttributesToGet) < 1 { 13274 invalidParams.Add(request.NewErrParamMinLen("AttributesToGet", 1)) 13275 } 13276 if s.IndexName != nil && len(*s.IndexName) < 3 { 13277 invalidParams.Add(request.NewErrParamMinLen("IndexName", 3)) 13278 } 13279 if s.Limit != nil && *s.Limit < 1 { 13280 invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) 13281 } 13282 if s.TableName == nil { 13283 invalidParams.Add(request.NewErrParamRequired("TableName")) 13284 } 13285 if s.TableName != nil && len(*s.TableName) < 3 { 13286 invalidParams.Add(request.NewErrParamMinLen("TableName", 3)) 13287 } 13288 if s.TotalSegments != nil && *s.TotalSegments < 1 { 13289 invalidParams.Add(request.NewErrParamMinValue("TotalSegments", 1)) 13290 } 13291 if s.ScanFilter != nil { 13292 for i, v := range s.ScanFilter { 13293 if v == nil { 13294 continue 13295 } 13296 if err := v.Validate(); err != nil { 13297 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ScanFilter", i), err.(request.ErrInvalidParams)) 13298 } 13299 } 13300 } 13301 13302 if invalidParams.Len() > 0 { 13303 return invalidParams 13304 } 13305 return nil 13306} 13307 13308// SetAttributesToGet sets the AttributesToGet field's value. 13309func (s *ScanInput) SetAttributesToGet(v []*string) *ScanInput { 13310 s.AttributesToGet = v 13311 return s 13312} 13313 13314// SetConditionalOperator sets the ConditionalOperator field's value. 13315func (s *ScanInput) SetConditionalOperator(v string) *ScanInput { 13316 s.ConditionalOperator = &v 13317 return s 13318} 13319 13320// SetConsistentRead sets the ConsistentRead field's value. 13321func (s *ScanInput) SetConsistentRead(v bool) *ScanInput { 13322 s.ConsistentRead = &v 13323 return s 13324} 13325 13326// SetExclusiveStartKey sets the ExclusiveStartKey field's value. 13327func (s *ScanInput) SetExclusiveStartKey(v map[string]*AttributeValue) *ScanInput { 13328 s.ExclusiveStartKey = v 13329 return s 13330} 13331 13332// SetExpressionAttributeNames sets the ExpressionAttributeNames field's value. 13333func (s *ScanInput) SetExpressionAttributeNames(v map[string]*string) *ScanInput { 13334 s.ExpressionAttributeNames = v 13335 return s 13336} 13337 13338// SetExpressionAttributeValues sets the ExpressionAttributeValues field's value. 13339func (s *ScanInput) SetExpressionAttributeValues(v map[string]*AttributeValue) *ScanInput { 13340 s.ExpressionAttributeValues = v 13341 return s 13342} 13343 13344// SetFilterExpression sets the FilterExpression field's value. 13345func (s *ScanInput) SetFilterExpression(v string) *ScanInput { 13346 s.FilterExpression = &v 13347 return s 13348} 13349 13350// SetIndexName sets the IndexName field's value. 13351func (s *ScanInput) SetIndexName(v string) *ScanInput { 13352 s.IndexName = &v 13353 return s 13354} 13355 13356// SetLimit sets the Limit field's value. 13357func (s *ScanInput) SetLimit(v int64) *ScanInput { 13358 s.Limit = &v 13359 return s 13360} 13361 13362// SetProjectionExpression sets the ProjectionExpression field's value. 13363func (s *ScanInput) SetProjectionExpression(v string) *ScanInput { 13364 s.ProjectionExpression = &v 13365 return s 13366} 13367 13368// SetReturnConsumedCapacity sets the ReturnConsumedCapacity field's value. 13369func (s *ScanInput) SetReturnConsumedCapacity(v string) *ScanInput { 13370 s.ReturnConsumedCapacity = &v 13371 return s 13372} 13373 13374// SetScanFilter sets the ScanFilter field's value. 13375func (s *ScanInput) SetScanFilter(v map[string]*Condition) *ScanInput { 13376 s.ScanFilter = v 13377 return s 13378} 13379 13380// SetSegment sets the Segment field's value. 13381func (s *ScanInput) SetSegment(v int64) *ScanInput { 13382 s.Segment = &v 13383 return s 13384} 13385 13386// SetSelect sets the Select field's value. 13387func (s *ScanInput) SetSelect(v string) *ScanInput { 13388 s.Select = &v 13389 return s 13390} 13391 13392// SetTableName sets the TableName field's value. 13393func (s *ScanInput) SetTableName(v string) *ScanInput { 13394 s.TableName = &v 13395 return s 13396} 13397 13398// SetTotalSegments sets the TotalSegments field's value. 13399func (s *ScanInput) SetTotalSegments(v int64) *ScanInput { 13400 s.TotalSegments = &v 13401 return s 13402} 13403 13404// Represents the output of a Scan operation. 13405type ScanOutput struct { 13406 _ struct{} `type:"structure"` 13407 13408 // The capacity units consumed by the Scan operation. The data returned includes 13409 // the total provisioned throughput consumed, along with statistics for the 13410 // table and any indexes involved in the operation. ConsumedCapacity is only 13411 // returned if the ReturnConsumedCapacity parameter was specified. For more 13412 // information, see Provisioned Throughput (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html) 13413 // in the Amazon DynamoDB Developer Guide. 13414 ConsumedCapacity *ConsumedCapacity `type:"structure"` 13415 13416 // The number of items in the response. 13417 // 13418 // If you set ScanFilter in the request, then Count is the number of items returned 13419 // after the filter was applied, and ScannedCount is the number of matching 13420 // items before the filter was applied. 13421 // 13422 // If you did not use a filter in the request, then Count is the same as ScannedCount. 13423 Count *int64 `type:"integer"` 13424 13425 // An array of item attributes that match the scan criteria. Each element in 13426 // this array consists of an attribute name and the value for that attribute. 13427 Items []map[string]*AttributeValue `type:"list"` 13428 13429 // The primary key of the item where the operation stopped, inclusive of the 13430 // previous result set. Use this value to start a new operation, excluding this 13431 // value in the new request. 13432 // 13433 // If LastEvaluatedKey is empty, then the "last page" of results has been processed 13434 // and there is no more data to be retrieved. 13435 // 13436 // If LastEvaluatedKey is not empty, it does not necessarily mean that there 13437 // is more data in the result set. The only way to know when you have reached 13438 // the end of the result set is when LastEvaluatedKey is empty. 13439 LastEvaluatedKey map[string]*AttributeValue `type:"map"` 13440 13441 // The number of items evaluated, before any ScanFilter is applied. A high ScannedCount 13442 // value with few, or no, Count results indicates an inefficient Scan operation. 13443 // For more information, see Count and ScannedCount (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#Count) 13444 // in the Amazon DynamoDB Developer Guide. 13445 // 13446 // If you did not use a filter in the request, then ScannedCount is the same 13447 // as Count. 13448 ScannedCount *int64 `type:"integer"` 13449} 13450 13451// String returns the string representation 13452func (s ScanOutput) String() string { 13453 return awsutil.Prettify(s) 13454} 13455 13456// GoString returns the string representation 13457func (s ScanOutput) GoString() string { 13458 return s.String() 13459} 13460 13461// SetConsumedCapacity sets the ConsumedCapacity field's value. 13462func (s *ScanOutput) SetConsumedCapacity(v *ConsumedCapacity) *ScanOutput { 13463 s.ConsumedCapacity = v 13464 return s 13465} 13466 13467// SetCount sets the Count field's value. 13468func (s *ScanOutput) SetCount(v int64) *ScanOutput { 13469 s.Count = &v 13470 return s 13471} 13472 13473// SetItems sets the Items field's value. 13474func (s *ScanOutput) SetItems(v []map[string]*AttributeValue) *ScanOutput { 13475 s.Items = v 13476 return s 13477} 13478 13479// SetLastEvaluatedKey sets the LastEvaluatedKey field's value. 13480func (s *ScanOutput) SetLastEvaluatedKey(v map[string]*AttributeValue) *ScanOutput { 13481 s.LastEvaluatedKey = v 13482 return s 13483} 13484 13485// SetScannedCount sets the ScannedCount field's value. 13486func (s *ScanOutput) SetScannedCount(v int64) *ScanOutput { 13487 s.ScannedCount = &v 13488 return s 13489} 13490 13491// Contains the details of the table when the backup was created. 13492type SourceTableDetails struct { 13493 _ struct{} `type:"structure"` 13494 13495 // Controls how you are charged for read and write throughput and how you manage 13496 // capacity. This setting can be changed later. 13497 // 13498 // * PROVISIONED - Sets the read/write capacity mode to PROVISIONED. We recommend 13499 // using PROVISIONED for predictable workloads. 13500 // 13501 // * PAY_PER_REQUEST - Sets the read/write capacity mode to PAY_PER_REQUEST. 13502 // We recommend using PAY_PER_REQUEST for unpredictable workloads. 13503 BillingMode *string `type:"string" enum:"BillingMode"` 13504 13505 // Number of items in the table. Please note this is an approximate value. 13506 ItemCount *int64 `type:"long"` 13507 13508 // Schema of the table. 13509 // 13510 // KeySchema is a required field 13511 KeySchema []*KeySchemaElement `min:"1" type:"list" required:"true"` 13512 13513 // Read IOPs and Write IOPS on the table when the backup was created. 13514 // 13515 // ProvisionedThroughput is a required field 13516 ProvisionedThroughput *ProvisionedThroughput `type:"structure" required:"true"` 13517 13518 // ARN of the table for which backup was created. 13519 TableArn *string `type:"string"` 13520 13521 // Time when the source table was created. 13522 // 13523 // TableCreationDateTime is a required field 13524 TableCreationDateTime *time.Time `type:"timestamp" required:"true"` 13525 13526 // Unique identifier for the table for which the backup was created. 13527 // 13528 // TableId is a required field 13529 TableId *string `type:"string" required:"true"` 13530 13531 // The name of the table for which the backup was created. 13532 // 13533 // TableName is a required field 13534 TableName *string `min:"3" type:"string" required:"true"` 13535 13536 // Size of the table in bytes. Please note this is an approximate value. 13537 TableSizeBytes *int64 `type:"long"` 13538} 13539 13540// String returns the string representation 13541func (s SourceTableDetails) String() string { 13542 return awsutil.Prettify(s) 13543} 13544 13545// GoString returns the string representation 13546func (s SourceTableDetails) GoString() string { 13547 return s.String() 13548} 13549 13550// SetBillingMode sets the BillingMode field's value. 13551func (s *SourceTableDetails) SetBillingMode(v string) *SourceTableDetails { 13552 s.BillingMode = &v 13553 return s 13554} 13555 13556// SetItemCount sets the ItemCount field's value. 13557func (s *SourceTableDetails) SetItemCount(v int64) *SourceTableDetails { 13558 s.ItemCount = &v 13559 return s 13560} 13561 13562// SetKeySchema sets the KeySchema field's value. 13563func (s *SourceTableDetails) SetKeySchema(v []*KeySchemaElement) *SourceTableDetails { 13564 s.KeySchema = v 13565 return s 13566} 13567 13568// SetProvisionedThroughput sets the ProvisionedThroughput field's value. 13569func (s *SourceTableDetails) SetProvisionedThroughput(v *ProvisionedThroughput) *SourceTableDetails { 13570 s.ProvisionedThroughput = v 13571 return s 13572} 13573 13574// SetTableArn sets the TableArn field's value. 13575func (s *SourceTableDetails) SetTableArn(v string) *SourceTableDetails { 13576 s.TableArn = &v 13577 return s 13578} 13579 13580// SetTableCreationDateTime sets the TableCreationDateTime field's value. 13581func (s *SourceTableDetails) SetTableCreationDateTime(v time.Time) *SourceTableDetails { 13582 s.TableCreationDateTime = &v 13583 return s 13584} 13585 13586// SetTableId sets the TableId field's value. 13587func (s *SourceTableDetails) SetTableId(v string) *SourceTableDetails { 13588 s.TableId = &v 13589 return s 13590} 13591 13592// SetTableName sets the TableName field's value. 13593func (s *SourceTableDetails) SetTableName(v string) *SourceTableDetails { 13594 s.TableName = &v 13595 return s 13596} 13597 13598// SetTableSizeBytes sets the TableSizeBytes field's value. 13599func (s *SourceTableDetails) SetTableSizeBytes(v int64) *SourceTableDetails { 13600 s.TableSizeBytes = &v 13601 return s 13602} 13603 13604// Contains the details of the features enabled on the table when the backup 13605// was created. For example, LSIs, GSIs, streams, TTL. 13606type SourceTableFeatureDetails struct { 13607 _ struct{} `type:"structure"` 13608 13609 // Represents the GSI properties for the table when the backup was created. 13610 // It includes the IndexName, KeySchema, Projection and ProvisionedThroughput 13611 // for the GSIs on the table at the time of backup. 13612 GlobalSecondaryIndexes []*GlobalSecondaryIndexInfo `type:"list"` 13613 13614 // Represents the LSI properties for the table when the backup was created. 13615 // It includes the IndexName, KeySchema and Projection for the LSIs on the table 13616 // at the time of backup. 13617 LocalSecondaryIndexes []*LocalSecondaryIndexInfo `type:"list"` 13618 13619 // The description of the server-side encryption status on the table when the 13620 // backup was created. 13621 SSEDescription *SSEDescription `type:"structure"` 13622 13623 // Stream settings on the table when the backup was created. 13624 StreamDescription *StreamSpecification `type:"structure"` 13625 13626 // Time to Live settings on the table when the backup was created. 13627 TimeToLiveDescription *TimeToLiveDescription `type:"structure"` 13628} 13629 13630// String returns the string representation 13631func (s SourceTableFeatureDetails) String() string { 13632 return awsutil.Prettify(s) 13633} 13634 13635// GoString returns the string representation 13636func (s SourceTableFeatureDetails) GoString() string { 13637 return s.String() 13638} 13639 13640// SetGlobalSecondaryIndexes sets the GlobalSecondaryIndexes field's value. 13641func (s *SourceTableFeatureDetails) SetGlobalSecondaryIndexes(v []*GlobalSecondaryIndexInfo) *SourceTableFeatureDetails { 13642 s.GlobalSecondaryIndexes = v 13643 return s 13644} 13645 13646// SetLocalSecondaryIndexes sets the LocalSecondaryIndexes field's value. 13647func (s *SourceTableFeatureDetails) SetLocalSecondaryIndexes(v []*LocalSecondaryIndexInfo) *SourceTableFeatureDetails { 13648 s.LocalSecondaryIndexes = v 13649 return s 13650} 13651 13652// SetSSEDescription sets the SSEDescription field's value. 13653func (s *SourceTableFeatureDetails) SetSSEDescription(v *SSEDescription) *SourceTableFeatureDetails { 13654 s.SSEDescription = v 13655 return s 13656} 13657 13658// SetStreamDescription sets the StreamDescription field's value. 13659func (s *SourceTableFeatureDetails) SetStreamDescription(v *StreamSpecification) *SourceTableFeatureDetails { 13660 s.StreamDescription = v 13661 return s 13662} 13663 13664// SetTimeToLiveDescription sets the TimeToLiveDescription field's value. 13665func (s *SourceTableFeatureDetails) SetTimeToLiveDescription(v *TimeToLiveDescription) *SourceTableFeatureDetails { 13666 s.TimeToLiveDescription = v 13667 return s 13668} 13669 13670// Represents the DynamoDB Streams configuration for a table in DynamoDB. 13671type StreamSpecification struct { 13672 _ struct{} `type:"structure"` 13673 13674 // Indicates whether DynamoDB Streams is enabled (true) or disabled (false) 13675 // on the table. 13676 StreamEnabled *bool `type:"boolean"` 13677 13678 // When an item in the table is modified, StreamViewType determines what information 13679 // is written to the stream for this table. Valid values for StreamViewType 13680 // are: 13681 // 13682 // * KEYS_ONLY - Only the key attributes of the modified item are written 13683 // to the stream. 13684 // 13685 // * NEW_IMAGE - The entire item, as it appears after it was modified, is 13686 // written to the stream. 13687 // 13688 // * OLD_IMAGE - The entire item, as it appeared before it was modified, 13689 // is written to the stream. 13690 // 13691 // * NEW_AND_OLD_IMAGES - Both the new and the old item images of the item 13692 // are written to the stream. 13693 StreamViewType *string `type:"string" enum:"StreamViewType"` 13694} 13695 13696// String returns the string representation 13697func (s StreamSpecification) String() string { 13698 return awsutil.Prettify(s) 13699} 13700 13701// GoString returns the string representation 13702func (s StreamSpecification) GoString() string { 13703 return s.String() 13704} 13705 13706// SetStreamEnabled sets the StreamEnabled field's value. 13707func (s *StreamSpecification) SetStreamEnabled(v bool) *StreamSpecification { 13708 s.StreamEnabled = &v 13709 return s 13710} 13711 13712// SetStreamViewType sets the StreamViewType field's value. 13713func (s *StreamSpecification) SetStreamViewType(v string) *StreamSpecification { 13714 s.StreamViewType = &v 13715 return s 13716} 13717 13718// Represents the properties of a table. 13719type TableDescription struct { 13720 _ struct{} `type:"structure"` 13721 13722 // An array of AttributeDefinition objects. Each of these objects describes 13723 // one attribute in the table and index key schema. 13724 // 13725 // Each AttributeDefinition object in this array is composed of: 13726 // 13727 // * AttributeName - The name of the attribute. 13728 // 13729 // * AttributeType - The data type for the attribute. 13730 AttributeDefinitions []*AttributeDefinition `type:"list"` 13731 13732 // Contains the details for the read/write capacity mode. 13733 BillingModeSummary *BillingModeSummary `type:"structure"` 13734 13735 // The date and time when the table was created, in UNIX epoch time (http://www.epochconverter.com/) 13736 // format. 13737 CreationDateTime *time.Time `type:"timestamp"` 13738 13739 // The global secondary indexes, if any, on the table. Each index is scoped 13740 // to a given partition key value. Each element is composed of: 13741 // 13742 // * Backfilling - If true, then the index is currently in the backfilling 13743 // phase. Backfilling occurs only when a new global secondary index is added 13744 // to the table; it is the process by which DynamoDB populates the new index 13745 // with data from the table. (This attribute does not appear for indexes 13746 // that were created during a CreateTable operation.) 13747 // 13748 // * IndexName - The name of the global secondary index. 13749 // 13750 // * IndexSizeBytes - The total size of the global secondary index, in bytes. 13751 // DynamoDB updates this value approximately every six hours. Recent changes 13752 // might not be reflected in this value. 13753 // 13754 // * IndexStatus - The current status of the global secondary index: CREATING 13755 // - The index is being created. UPDATING - The index is being updated. DELETING 13756 // - The index is being deleted. ACTIVE - The index is ready for use. 13757 // 13758 // * ItemCount - The number of items in the global secondary index. DynamoDB 13759 // updates this value approximately every six hours. Recent changes might 13760 // not be reflected in this value. 13761 // 13762 // * KeySchema - Specifies the complete index key schema. The attribute names 13763 // in the key schema must be between 1 and 255 characters (inclusive). The 13764 // key schema must begin with the same partition key as the table. 13765 // 13766 // * Projection - Specifies attributes that are copied (projected) from the 13767 // table into the index. These are in addition to the primary key attributes 13768 // and index key attributes, which are automatically projected. Each attribute 13769 // specification is composed of: ProjectionType - One of the following: KEYS_ONLY 13770 // - Only the index and primary keys are projected into the index. INCLUDE 13771 // - Only the specified table attributes are projected into the index. The 13772 // list of projected attributes are in NonKeyAttributes. ALL - All of the 13773 // table attributes are projected into the index. NonKeyAttributes - A list 13774 // of one or more non-key attribute names that are projected into the secondary 13775 // index. The total count of attributes provided in NonKeyAttributes, summed 13776 // across all of the secondary indexes, must not exceed 20. If you project 13777 // the same attribute into two different indexes, this counts as two distinct 13778 // attributes when determining the total. 13779 // 13780 // * ProvisionedThroughput - The provisioned throughput settings for the 13781 // global secondary index, consisting of read and write capacity units, along 13782 // with data about increases and decreases. 13783 // 13784 // If the table is in the DELETING state, no information about indexes will 13785 // be returned. 13786 GlobalSecondaryIndexes []*GlobalSecondaryIndexDescription `type:"list"` 13787 13788 // The number of items in the specified table. DynamoDB updates this value approximately 13789 // every six hours. Recent changes might not be reflected in this value. 13790 ItemCount *int64 `type:"long"` 13791 13792 // The primary key structure for the table. Each KeySchemaElement consists of: 13793 // 13794 // * AttributeName - The name of the attribute. 13795 // 13796 // * KeyType - The role of the attribute: HASH - partition key RANGE - sort 13797 // key The partition key of an item is also known as its hash attribute. 13798 // The term "hash attribute" derives from DynamoDB's usage of an internal 13799 // hash function to evenly distribute data items across partitions, based 13800 // on their partition key values. The sort key of an item is also known as 13801 // its range attribute. The term "range attribute" derives from the way DynamoDB 13802 // stores items with the same partition key physically close together, in 13803 // sorted order by the sort key value. 13804 // 13805 // For more information about primary keys, see Primary Key (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModelPrimaryKey) 13806 // in the Amazon DynamoDB Developer Guide. 13807 KeySchema []*KeySchemaElement `min:"1" type:"list"` 13808 13809 // The Amazon Resource Name (ARN) that uniquely identifies the latest stream 13810 // for this table. 13811 LatestStreamArn *string `min:"37" type:"string"` 13812 13813 // A timestamp, in ISO 8601 format, for this stream. 13814 // 13815 // Note that LatestStreamLabel is not a unique identifier for the stream, because 13816 // it is possible that a stream from another table might have the same timestamp. 13817 // However, the combination of the following three elements is guaranteed to 13818 // be unique: 13819 // 13820 // * the AWS customer ID. 13821 // 13822 // * the table name. 13823 // 13824 // * the StreamLabel. 13825 LatestStreamLabel *string `type:"string"` 13826 13827 // Represents one or more local secondary indexes on the table. Each index is 13828 // scoped to a given partition key value. Tables with one or more local secondary 13829 // indexes are subject to an item collection size limit, where the amount of 13830 // data within a given item collection cannot exceed 10 GB. Each element is 13831 // composed of: 13832 // 13833 // * IndexName - The name of the local secondary index. 13834 // 13835 // * KeySchema - Specifies the complete index key schema. The attribute names 13836 // in the key schema must be between 1 and 255 characters (inclusive). The 13837 // key schema must begin with the same partition key as the table. 13838 // 13839 // * Projection - Specifies attributes that are copied (projected) from the 13840 // table into the index. These are in addition to the primary key attributes 13841 // and index key attributes, which are automatically projected. Each attribute 13842 // specification is composed of: ProjectionType - One of the following: KEYS_ONLY 13843 // - Only the index and primary keys are projected into the index. INCLUDE 13844 // - Only the specified table attributes are projected into the index. The 13845 // list of projected attributes are in NonKeyAttributes. ALL - All of the 13846 // table attributes are projected into the index. NonKeyAttributes - A list 13847 // of one or more non-key attribute names that are projected into the secondary 13848 // index. The total count of attributes provided in NonKeyAttributes, summed 13849 // across all of the secondary indexes, must not exceed 20. If you project 13850 // the same attribute into two different indexes, this counts as two distinct 13851 // attributes when determining the total. 13852 // 13853 // * IndexSizeBytes - Represents the total size of the index, in bytes. DynamoDB 13854 // updates this value approximately every six hours. Recent changes might 13855 // not be reflected in this value. 13856 // 13857 // * ItemCount - Represents the number of items in the index. DynamoDB updates 13858 // this value approximately every six hours. Recent changes might not be 13859 // reflected in this value. 13860 // 13861 // If the table is in the DELETING state, no information about indexes will 13862 // be returned. 13863 LocalSecondaryIndexes []*LocalSecondaryIndexDescription `type:"list"` 13864 13865 // The provisioned throughput settings for the table, consisting of read and 13866 // write capacity units, along with data about increases and decreases. 13867 ProvisionedThroughput *ProvisionedThroughputDescription `type:"structure"` 13868 13869 // Contains details for the restore. 13870 RestoreSummary *RestoreSummary `type:"structure"` 13871 13872 // The description of the server-side encryption status on the specified table. 13873 SSEDescription *SSEDescription `type:"structure"` 13874 13875 // The current DynamoDB Streams configuration for the table. 13876 StreamSpecification *StreamSpecification `type:"structure"` 13877 13878 // The Amazon Resource Name (ARN) that uniquely identifies the table. 13879 TableArn *string `type:"string"` 13880 13881 // Unique identifier for the table for which the backup was created. 13882 TableId *string `type:"string"` 13883 13884 // The name of the table. 13885 TableName *string `min:"3" type:"string"` 13886 13887 // The total size of the specified table, in bytes. DynamoDB updates this value 13888 // approximately every six hours. Recent changes might not be reflected in this 13889 // value. 13890 TableSizeBytes *int64 `type:"long"` 13891 13892 // The current state of the table: 13893 // 13894 // * CREATING - The table is being created. 13895 // 13896 // * UPDATING - The table is being updated. 13897 // 13898 // * DELETING - The table is being deleted. 13899 // 13900 // * ACTIVE - The table is ready for use. 13901 TableStatus *string `type:"string" enum:"TableStatus"` 13902} 13903 13904// String returns the string representation 13905func (s TableDescription) String() string { 13906 return awsutil.Prettify(s) 13907} 13908 13909// GoString returns the string representation 13910func (s TableDescription) GoString() string { 13911 return s.String() 13912} 13913 13914// SetAttributeDefinitions sets the AttributeDefinitions field's value. 13915func (s *TableDescription) SetAttributeDefinitions(v []*AttributeDefinition) *TableDescription { 13916 s.AttributeDefinitions = v 13917 return s 13918} 13919 13920// SetBillingModeSummary sets the BillingModeSummary field's value. 13921func (s *TableDescription) SetBillingModeSummary(v *BillingModeSummary) *TableDescription { 13922 s.BillingModeSummary = v 13923 return s 13924} 13925 13926// SetCreationDateTime sets the CreationDateTime field's value. 13927func (s *TableDescription) SetCreationDateTime(v time.Time) *TableDescription { 13928 s.CreationDateTime = &v 13929 return s 13930} 13931 13932// SetGlobalSecondaryIndexes sets the GlobalSecondaryIndexes field's value. 13933func (s *TableDescription) SetGlobalSecondaryIndexes(v []*GlobalSecondaryIndexDescription) *TableDescription { 13934 s.GlobalSecondaryIndexes = v 13935 return s 13936} 13937 13938// SetItemCount sets the ItemCount field's value. 13939func (s *TableDescription) SetItemCount(v int64) *TableDescription { 13940 s.ItemCount = &v 13941 return s 13942} 13943 13944// SetKeySchema sets the KeySchema field's value. 13945func (s *TableDescription) SetKeySchema(v []*KeySchemaElement) *TableDescription { 13946 s.KeySchema = v 13947 return s 13948} 13949 13950// SetLatestStreamArn sets the LatestStreamArn field's value. 13951func (s *TableDescription) SetLatestStreamArn(v string) *TableDescription { 13952 s.LatestStreamArn = &v 13953 return s 13954} 13955 13956// SetLatestStreamLabel sets the LatestStreamLabel field's value. 13957func (s *TableDescription) SetLatestStreamLabel(v string) *TableDescription { 13958 s.LatestStreamLabel = &v 13959 return s 13960} 13961 13962// SetLocalSecondaryIndexes sets the LocalSecondaryIndexes field's value. 13963func (s *TableDescription) SetLocalSecondaryIndexes(v []*LocalSecondaryIndexDescription) *TableDescription { 13964 s.LocalSecondaryIndexes = v 13965 return s 13966} 13967 13968// SetProvisionedThroughput sets the ProvisionedThroughput field's value. 13969func (s *TableDescription) SetProvisionedThroughput(v *ProvisionedThroughputDescription) *TableDescription { 13970 s.ProvisionedThroughput = v 13971 return s 13972} 13973 13974// SetRestoreSummary sets the RestoreSummary field's value. 13975func (s *TableDescription) SetRestoreSummary(v *RestoreSummary) *TableDescription { 13976 s.RestoreSummary = v 13977 return s 13978} 13979 13980// SetSSEDescription sets the SSEDescription field's value. 13981func (s *TableDescription) SetSSEDescription(v *SSEDescription) *TableDescription { 13982 s.SSEDescription = v 13983 return s 13984} 13985 13986// SetStreamSpecification sets the StreamSpecification field's value. 13987func (s *TableDescription) SetStreamSpecification(v *StreamSpecification) *TableDescription { 13988 s.StreamSpecification = v 13989 return s 13990} 13991 13992// SetTableArn sets the TableArn field's value. 13993func (s *TableDescription) SetTableArn(v string) *TableDescription { 13994 s.TableArn = &v 13995 return s 13996} 13997 13998// SetTableId sets the TableId field's value. 13999func (s *TableDescription) SetTableId(v string) *TableDescription { 14000 s.TableId = &v 14001 return s 14002} 14003 14004// SetTableName sets the TableName field's value. 14005func (s *TableDescription) SetTableName(v string) *TableDescription { 14006 s.TableName = &v 14007 return s 14008} 14009 14010// SetTableSizeBytes sets the TableSizeBytes field's value. 14011func (s *TableDescription) SetTableSizeBytes(v int64) *TableDescription { 14012 s.TableSizeBytes = &v 14013 return s 14014} 14015 14016// SetTableStatus sets the TableStatus field's value. 14017func (s *TableDescription) SetTableStatus(v string) *TableDescription { 14018 s.TableStatus = &v 14019 return s 14020} 14021 14022// Describes a tag. A tag is a key-value pair. You can add up to 50 tags to 14023// a single DynamoDB table. 14024// 14025// AWS-assigned tag names and values are automatically assigned the aws: prefix, 14026// which the user cannot assign. AWS-assigned tag names do not count towards 14027// the tag limit of 50. User-assigned tag names have the prefix user: in the 14028// Cost Allocation Report. You cannot backdate the application of a tag. 14029// 14030// For an overview on tagging DynamoDB resources, see Tagging for DynamoDB (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html) 14031// in the Amazon DynamoDB Developer Guide. 14032type Tag struct { 14033 _ struct{} `type:"structure"` 14034 14035 // The key of the tag. Tag keys are case sensitive. Each DynamoDB table can 14036 // only have up to one tag with the same key. If you try to add an existing 14037 // tag (same key), the existing tag value will be updated to the new value. 14038 // 14039 // Key is a required field 14040 Key *string `min:"1" type:"string" required:"true"` 14041 14042 // The value of the tag. Tag values are case-sensitive and can be null. 14043 // 14044 // Value is a required field 14045 Value *string `type:"string" required:"true"` 14046} 14047 14048// String returns the string representation 14049func (s Tag) String() string { 14050 return awsutil.Prettify(s) 14051} 14052 14053// GoString returns the string representation 14054func (s Tag) GoString() string { 14055 return s.String() 14056} 14057 14058// Validate inspects the fields of the type to determine if they are valid. 14059func (s *Tag) Validate() error { 14060 invalidParams := request.ErrInvalidParams{Context: "Tag"} 14061 if s.Key == nil { 14062 invalidParams.Add(request.NewErrParamRequired("Key")) 14063 } 14064 if s.Key != nil && len(*s.Key) < 1 { 14065 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 14066 } 14067 if s.Value == nil { 14068 invalidParams.Add(request.NewErrParamRequired("Value")) 14069 } 14070 14071 if invalidParams.Len() > 0 { 14072 return invalidParams 14073 } 14074 return nil 14075} 14076 14077// SetKey sets the Key field's value. 14078func (s *Tag) SetKey(v string) *Tag { 14079 s.Key = &v 14080 return s 14081} 14082 14083// SetValue sets the Value field's value. 14084func (s *Tag) SetValue(v string) *Tag { 14085 s.Value = &v 14086 return s 14087} 14088 14089type TagResourceInput struct { 14090 _ struct{} `type:"structure"` 14091 14092 // Identifies the Amazon DynamoDB resource to which tags should be added. This 14093 // value is an Amazon Resource Name (ARN). 14094 // 14095 // ResourceArn is a required field 14096 ResourceArn *string `min:"1" type:"string" required:"true"` 14097 14098 // The tags to be assigned to the Amazon DynamoDB resource. 14099 // 14100 // Tags is a required field 14101 Tags []*Tag `type:"list" required:"true"` 14102} 14103 14104// String returns the string representation 14105func (s TagResourceInput) String() string { 14106 return awsutil.Prettify(s) 14107} 14108 14109// GoString returns the string representation 14110func (s TagResourceInput) GoString() string { 14111 return s.String() 14112} 14113 14114// Validate inspects the fields of the type to determine if they are valid. 14115func (s *TagResourceInput) Validate() error { 14116 invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"} 14117 if s.ResourceArn == nil { 14118 invalidParams.Add(request.NewErrParamRequired("ResourceArn")) 14119 } 14120 if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { 14121 invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) 14122 } 14123 if s.Tags == nil { 14124 invalidParams.Add(request.NewErrParamRequired("Tags")) 14125 } 14126 if s.Tags != nil { 14127 for i, v := range s.Tags { 14128 if v == nil { 14129 continue 14130 } 14131 if err := v.Validate(); err != nil { 14132 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) 14133 } 14134 } 14135 } 14136 14137 if invalidParams.Len() > 0 { 14138 return invalidParams 14139 } 14140 return nil 14141} 14142 14143// SetResourceArn sets the ResourceArn field's value. 14144func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput { 14145 s.ResourceArn = &v 14146 return s 14147} 14148 14149// SetTags sets the Tags field's value. 14150func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput { 14151 s.Tags = v 14152 return s 14153} 14154 14155type TagResourceOutput struct { 14156 _ struct{} `type:"structure"` 14157} 14158 14159// String returns the string representation 14160func (s TagResourceOutput) String() string { 14161 return awsutil.Prettify(s) 14162} 14163 14164// GoString returns the string representation 14165func (s TagResourceOutput) GoString() string { 14166 return s.String() 14167} 14168 14169// The description of the Time to Live (TTL) status on the specified table. 14170type TimeToLiveDescription struct { 14171 _ struct{} `type:"structure"` 14172 14173 // The name of the TTL attribute for items in the table. 14174 AttributeName *string `min:"1" type:"string"` 14175 14176 // The TTL status for the table. 14177 TimeToLiveStatus *string `type:"string" enum:"TimeToLiveStatus"` 14178} 14179 14180// String returns the string representation 14181func (s TimeToLiveDescription) String() string { 14182 return awsutil.Prettify(s) 14183} 14184 14185// GoString returns the string representation 14186func (s TimeToLiveDescription) GoString() string { 14187 return s.String() 14188} 14189 14190// SetAttributeName sets the AttributeName field's value. 14191func (s *TimeToLiveDescription) SetAttributeName(v string) *TimeToLiveDescription { 14192 s.AttributeName = &v 14193 return s 14194} 14195 14196// SetTimeToLiveStatus sets the TimeToLiveStatus field's value. 14197func (s *TimeToLiveDescription) SetTimeToLiveStatus(v string) *TimeToLiveDescription { 14198 s.TimeToLiveStatus = &v 14199 return s 14200} 14201 14202// Represents the settings used to enable or disable Time to Live (TTL) for 14203// the specified table. 14204type TimeToLiveSpecification struct { 14205 _ struct{} `type:"structure"` 14206 14207 // The name of the TTL attribute used to store the expiration time for items 14208 // in the table. 14209 // 14210 // AttributeName is a required field 14211 AttributeName *string `min:"1" type:"string" required:"true"` 14212 14213 // Indicates whether TTL is to be enabled (true) or disabled (false) on the 14214 // table. 14215 // 14216 // Enabled is a required field 14217 Enabled *bool `type:"boolean" required:"true"` 14218} 14219 14220// String returns the string representation 14221func (s TimeToLiveSpecification) String() string { 14222 return awsutil.Prettify(s) 14223} 14224 14225// GoString returns the string representation 14226func (s TimeToLiveSpecification) GoString() string { 14227 return s.String() 14228} 14229 14230// Validate inspects the fields of the type to determine if they are valid. 14231func (s *TimeToLiveSpecification) Validate() error { 14232 invalidParams := request.ErrInvalidParams{Context: "TimeToLiveSpecification"} 14233 if s.AttributeName == nil { 14234 invalidParams.Add(request.NewErrParamRequired("AttributeName")) 14235 } 14236 if s.AttributeName != nil && len(*s.AttributeName) < 1 { 14237 invalidParams.Add(request.NewErrParamMinLen("AttributeName", 1)) 14238 } 14239 if s.Enabled == nil { 14240 invalidParams.Add(request.NewErrParamRequired("Enabled")) 14241 } 14242 14243 if invalidParams.Len() > 0 { 14244 return invalidParams 14245 } 14246 return nil 14247} 14248 14249// SetAttributeName sets the AttributeName field's value. 14250func (s *TimeToLiveSpecification) SetAttributeName(v string) *TimeToLiveSpecification { 14251 s.AttributeName = &v 14252 return s 14253} 14254 14255// SetEnabled sets the Enabled field's value. 14256func (s *TimeToLiveSpecification) SetEnabled(v bool) *TimeToLiveSpecification { 14257 s.Enabled = &v 14258 return s 14259} 14260 14261// Specifies an item to be retrieved as part of the transaction. 14262type TransactGetItem struct { 14263 _ struct{} `type:"structure"` 14264 14265 // Contains the primary key that identifies the item to get, together with the 14266 // name of the table that contains the item, and optionally the specific attributes 14267 // of the item to retrieve. 14268 // 14269 // Get is a required field 14270 Get *Get `type:"structure" required:"true"` 14271} 14272 14273// String returns the string representation 14274func (s TransactGetItem) String() string { 14275 return awsutil.Prettify(s) 14276} 14277 14278// GoString returns the string representation 14279func (s TransactGetItem) GoString() string { 14280 return s.String() 14281} 14282 14283// Validate inspects the fields of the type to determine if they are valid. 14284func (s *TransactGetItem) Validate() error { 14285 invalidParams := request.ErrInvalidParams{Context: "TransactGetItem"} 14286 if s.Get == nil { 14287 invalidParams.Add(request.NewErrParamRequired("Get")) 14288 } 14289 if s.Get != nil { 14290 if err := s.Get.Validate(); err != nil { 14291 invalidParams.AddNested("Get", err.(request.ErrInvalidParams)) 14292 } 14293 } 14294 14295 if invalidParams.Len() > 0 { 14296 return invalidParams 14297 } 14298 return nil 14299} 14300 14301// SetGet sets the Get field's value. 14302func (s *TransactGetItem) SetGet(v *Get) *TransactGetItem { 14303 s.Get = v 14304 return s 14305} 14306 14307type TransactGetItemsInput struct { 14308 _ struct{} `type:"structure"` 14309 14310 // A value of TOTAL causes consumed capacity information to be returned, and 14311 // a value of NONE prevents that information from being returned. No other value 14312 // is valid. 14313 ReturnConsumedCapacity *string `type:"string" enum:"ReturnConsumedCapacity"` 14314 14315 // An ordered array of up to 25 TransactGetItem objects, each of which contains 14316 // a Get structure. 14317 // 14318 // TransactItems is a required field 14319 TransactItems []*TransactGetItem `min:"1" type:"list" required:"true"` 14320} 14321 14322// String returns the string representation 14323func (s TransactGetItemsInput) String() string { 14324 return awsutil.Prettify(s) 14325} 14326 14327// GoString returns the string representation 14328func (s TransactGetItemsInput) GoString() string { 14329 return s.String() 14330} 14331 14332// Validate inspects the fields of the type to determine if they are valid. 14333func (s *TransactGetItemsInput) Validate() error { 14334 invalidParams := request.ErrInvalidParams{Context: "TransactGetItemsInput"} 14335 if s.TransactItems == nil { 14336 invalidParams.Add(request.NewErrParamRequired("TransactItems")) 14337 } 14338 if s.TransactItems != nil && len(s.TransactItems) < 1 { 14339 invalidParams.Add(request.NewErrParamMinLen("TransactItems", 1)) 14340 } 14341 if s.TransactItems != nil { 14342 for i, v := range s.TransactItems { 14343 if v == nil { 14344 continue 14345 } 14346 if err := v.Validate(); err != nil { 14347 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TransactItems", i), err.(request.ErrInvalidParams)) 14348 } 14349 } 14350 } 14351 14352 if invalidParams.Len() > 0 { 14353 return invalidParams 14354 } 14355 return nil 14356} 14357 14358// SetReturnConsumedCapacity sets the ReturnConsumedCapacity field's value. 14359func (s *TransactGetItemsInput) SetReturnConsumedCapacity(v string) *TransactGetItemsInput { 14360 s.ReturnConsumedCapacity = &v 14361 return s 14362} 14363 14364// SetTransactItems sets the TransactItems field's value. 14365func (s *TransactGetItemsInput) SetTransactItems(v []*TransactGetItem) *TransactGetItemsInput { 14366 s.TransactItems = v 14367 return s 14368} 14369 14370type TransactGetItemsOutput struct { 14371 _ struct{} `type:"structure"` 14372 14373 // If the ReturnConsumedCapacity value was TOTAL, this is an array of ConsumedCapacity 14374 // objects, one for each table addressed by TransactGetItem objects in the TransactItems 14375 // parameter. These ConsumedCapacity objects report the read-capacity units 14376 // consumed by the TransactGetItems call in that table. 14377 ConsumedCapacity []*ConsumedCapacity `type:"list"` 14378 14379 // An ordered array of up to 25 ItemResponse objects, each of which corresponds 14380 // to the TransactGetItem object in the same position in the TransactItems array. 14381 // Each ItemResponse object contains a Map of the name-value pairs that are 14382 // the projected attributes of the requested item. 14383 // 14384 // If a requested item could not be retrieved, the corresponding ItemResponse 14385 // object is Null, or if the requested item has no projected attributes, the 14386 // corresponding ItemResponse object is an empty Map. 14387 Responses []*ItemResponse `min:"1" type:"list"` 14388} 14389 14390// String returns the string representation 14391func (s TransactGetItemsOutput) String() string { 14392 return awsutil.Prettify(s) 14393} 14394 14395// GoString returns the string representation 14396func (s TransactGetItemsOutput) GoString() string { 14397 return s.String() 14398} 14399 14400// SetConsumedCapacity sets the ConsumedCapacity field's value. 14401func (s *TransactGetItemsOutput) SetConsumedCapacity(v []*ConsumedCapacity) *TransactGetItemsOutput { 14402 s.ConsumedCapacity = v 14403 return s 14404} 14405 14406// SetResponses sets the Responses field's value. 14407func (s *TransactGetItemsOutput) SetResponses(v []*ItemResponse) *TransactGetItemsOutput { 14408 s.Responses = v 14409 return s 14410} 14411 14412// A list of requests that can perform update, put, delete, or check operations 14413// on multiple items in one or more tables atomically. 14414type TransactWriteItem struct { 14415 _ struct{} `type:"structure"` 14416 14417 // A request to perform a check item operation. 14418 ConditionCheck *ConditionCheck `type:"structure"` 14419 14420 // A request to perform a DeleteItem operation. 14421 Delete *Delete `type:"structure"` 14422 14423 // A request to perform a PutItem operation. 14424 Put *Put `type:"structure"` 14425 14426 // A request to perform an UpdateItem operation. 14427 Update *Update `type:"structure"` 14428} 14429 14430// String returns the string representation 14431func (s TransactWriteItem) String() string { 14432 return awsutil.Prettify(s) 14433} 14434 14435// GoString returns the string representation 14436func (s TransactWriteItem) GoString() string { 14437 return s.String() 14438} 14439 14440// Validate inspects the fields of the type to determine if they are valid. 14441func (s *TransactWriteItem) Validate() error { 14442 invalidParams := request.ErrInvalidParams{Context: "TransactWriteItem"} 14443 if s.ConditionCheck != nil { 14444 if err := s.ConditionCheck.Validate(); err != nil { 14445 invalidParams.AddNested("ConditionCheck", err.(request.ErrInvalidParams)) 14446 } 14447 } 14448 if s.Delete != nil { 14449 if err := s.Delete.Validate(); err != nil { 14450 invalidParams.AddNested("Delete", err.(request.ErrInvalidParams)) 14451 } 14452 } 14453 if s.Put != nil { 14454 if err := s.Put.Validate(); err != nil { 14455 invalidParams.AddNested("Put", err.(request.ErrInvalidParams)) 14456 } 14457 } 14458 if s.Update != nil { 14459 if err := s.Update.Validate(); err != nil { 14460 invalidParams.AddNested("Update", err.(request.ErrInvalidParams)) 14461 } 14462 } 14463 14464 if invalidParams.Len() > 0 { 14465 return invalidParams 14466 } 14467 return nil 14468} 14469 14470// SetConditionCheck sets the ConditionCheck field's value. 14471func (s *TransactWriteItem) SetConditionCheck(v *ConditionCheck) *TransactWriteItem { 14472 s.ConditionCheck = v 14473 return s 14474} 14475 14476// SetDelete sets the Delete field's value. 14477func (s *TransactWriteItem) SetDelete(v *Delete) *TransactWriteItem { 14478 s.Delete = v 14479 return s 14480} 14481 14482// SetPut sets the Put field's value. 14483func (s *TransactWriteItem) SetPut(v *Put) *TransactWriteItem { 14484 s.Put = v 14485 return s 14486} 14487 14488// SetUpdate sets the Update field's value. 14489func (s *TransactWriteItem) SetUpdate(v *Update) *TransactWriteItem { 14490 s.Update = v 14491 return s 14492} 14493 14494type TransactWriteItemsInput struct { 14495 _ struct{} `type:"structure"` 14496 14497 // Providing a ClientRequestToken makes the call to TransactWriteItems idempotent, 14498 // meaning that multiple identical calls have the same effect as one single 14499 // call. 14500 // 14501 // Although multiple identical calls using the same client request token produce 14502 // the same result on the server (no side effects), the responses to the calls 14503 // might not be the same. If the ReturnConsumedCapacity> parameter is set, then 14504 // the initial TransactWriteItems call returns the amount of write capacity 14505 // units consumed in making the changes. Subsequent TransactWriteItems calls 14506 // with the same client token return the number of read capacity units consumed 14507 // in reading the item. 14508 // 14509 // A client request token is valid for 10 minutes after the first request that 14510 // uses it is completed. After 10 minutes, any request with the same client 14511 // token is treated as a new request. Do not resubmit the same request with 14512 // the same client token for more than 10 minutes, or the result might not be 14513 // idempotent. 14514 // 14515 // If you submit a request with the same client token but a change in other 14516 // parameters within the 10-minute idempotency window, DynamoDB returns an IdempotentParameterMismatch 14517 // exception. 14518 ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"` 14519 14520 // Determines the level of detail about provisioned throughput consumption that 14521 // is returned in the response: 14522 // 14523 // * INDEXES - The response includes the aggregate ConsumedCapacity for the 14524 // operation, together with ConsumedCapacity for each table and secondary 14525 // index that was accessed. Note that some operations, such as GetItem and 14526 // BatchGetItem, do not access any indexes at all. In these cases, specifying 14527 // INDEXES will only return ConsumedCapacity information for table(s). 14528 // 14529 // * TOTAL - The response includes only the aggregate ConsumedCapacity for 14530 // the operation. 14531 // 14532 // * NONE - No ConsumedCapacity details are included in the response. 14533 ReturnConsumedCapacity *string `type:"string" enum:"ReturnConsumedCapacity"` 14534 14535 // Determines whether item collection metrics are returned. If set to SIZE, 14536 // the response includes statistics about item collections (if any), that were 14537 // modified during the operation and are returned in the response. If set to 14538 // NONE (the default), no statistics are returned. 14539 ReturnItemCollectionMetrics *string `type:"string" enum:"ReturnItemCollectionMetrics"` 14540 14541 // An ordered array of up to 25 TransactWriteItem objects, each of which contains 14542 // a ConditionCheck, Put, Update, or Delete object. These can operate on items 14543 // in different tables, but the tables must reside in the same AWS account and 14544 // Region, and no two of them can operate on the same item. 14545 // 14546 // TransactItems is a required field 14547 TransactItems []*TransactWriteItem `min:"1" type:"list" required:"true"` 14548} 14549 14550// String returns the string representation 14551func (s TransactWriteItemsInput) String() string { 14552 return awsutil.Prettify(s) 14553} 14554 14555// GoString returns the string representation 14556func (s TransactWriteItemsInput) GoString() string { 14557 return s.String() 14558} 14559 14560// Validate inspects the fields of the type to determine if they are valid. 14561func (s *TransactWriteItemsInput) Validate() error { 14562 invalidParams := request.ErrInvalidParams{Context: "TransactWriteItemsInput"} 14563 if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 { 14564 invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1)) 14565 } 14566 if s.TransactItems == nil { 14567 invalidParams.Add(request.NewErrParamRequired("TransactItems")) 14568 } 14569 if s.TransactItems != nil && len(s.TransactItems) < 1 { 14570 invalidParams.Add(request.NewErrParamMinLen("TransactItems", 1)) 14571 } 14572 if s.TransactItems != nil { 14573 for i, v := range s.TransactItems { 14574 if v == nil { 14575 continue 14576 } 14577 if err := v.Validate(); err != nil { 14578 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TransactItems", i), err.(request.ErrInvalidParams)) 14579 } 14580 } 14581 } 14582 14583 if invalidParams.Len() > 0 { 14584 return invalidParams 14585 } 14586 return nil 14587} 14588 14589// SetClientRequestToken sets the ClientRequestToken field's value. 14590func (s *TransactWriteItemsInput) SetClientRequestToken(v string) *TransactWriteItemsInput { 14591 s.ClientRequestToken = &v 14592 return s 14593} 14594 14595// SetReturnConsumedCapacity sets the ReturnConsumedCapacity field's value. 14596func (s *TransactWriteItemsInput) SetReturnConsumedCapacity(v string) *TransactWriteItemsInput { 14597 s.ReturnConsumedCapacity = &v 14598 return s 14599} 14600 14601// SetReturnItemCollectionMetrics sets the ReturnItemCollectionMetrics field's value. 14602func (s *TransactWriteItemsInput) SetReturnItemCollectionMetrics(v string) *TransactWriteItemsInput { 14603 s.ReturnItemCollectionMetrics = &v 14604 return s 14605} 14606 14607// SetTransactItems sets the TransactItems field's value. 14608func (s *TransactWriteItemsInput) SetTransactItems(v []*TransactWriteItem) *TransactWriteItemsInput { 14609 s.TransactItems = v 14610 return s 14611} 14612 14613type TransactWriteItemsOutput struct { 14614 _ struct{} `type:"structure"` 14615 14616 // The capacity units consumed by the entire TransactWriteItems operation. The 14617 // values of the list are ordered according to the ordering of the TransactItems 14618 // request parameter. 14619 ConsumedCapacity []*ConsumedCapacity `type:"list"` 14620 14621 // A list of tables that were processed by TransactWriteItems and, for each 14622 // table, information about any item collections that were affected by individual 14623 // UpdateItem, PutItem, or DeleteItem operations. 14624 ItemCollectionMetrics map[string][]*ItemCollectionMetrics `type:"map"` 14625} 14626 14627// String returns the string representation 14628func (s TransactWriteItemsOutput) String() string { 14629 return awsutil.Prettify(s) 14630} 14631 14632// GoString returns the string representation 14633func (s TransactWriteItemsOutput) GoString() string { 14634 return s.String() 14635} 14636 14637// SetConsumedCapacity sets the ConsumedCapacity field's value. 14638func (s *TransactWriteItemsOutput) SetConsumedCapacity(v []*ConsumedCapacity) *TransactWriteItemsOutput { 14639 s.ConsumedCapacity = v 14640 return s 14641} 14642 14643// SetItemCollectionMetrics sets the ItemCollectionMetrics field's value. 14644func (s *TransactWriteItemsOutput) SetItemCollectionMetrics(v map[string][]*ItemCollectionMetrics) *TransactWriteItemsOutput { 14645 s.ItemCollectionMetrics = v 14646 return s 14647} 14648 14649type UntagResourceInput struct { 14650 _ struct{} `type:"structure"` 14651 14652 // The DynamoDB resource that the tags will be removed from. This value is an 14653 // Amazon Resource Name (ARN). 14654 // 14655 // ResourceArn is a required field 14656 ResourceArn *string `min:"1" type:"string" required:"true"` 14657 14658 // A list of tag keys. Existing tags of the resource whose keys are members 14659 // of this list will be removed from the DynamoDB resource. 14660 // 14661 // TagKeys is a required field 14662 TagKeys []*string `type:"list" required:"true"` 14663} 14664 14665// String returns the string representation 14666func (s UntagResourceInput) String() string { 14667 return awsutil.Prettify(s) 14668} 14669 14670// GoString returns the string representation 14671func (s UntagResourceInput) GoString() string { 14672 return s.String() 14673} 14674 14675// Validate inspects the fields of the type to determine if they are valid. 14676func (s *UntagResourceInput) Validate() error { 14677 invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"} 14678 if s.ResourceArn == nil { 14679 invalidParams.Add(request.NewErrParamRequired("ResourceArn")) 14680 } 14681 if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { 14682 invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) 14683 } 14684 if s.TagKeys == nil { 14685 invalidParams.Add(request.NewErrParamRequired("TagKeys")) 14686 } 14687 14688 if invalidParams.Len() > 0 { 14689 return invalidParams 14690 } 14691 return nil 14692} 14693 14694// SetResourceArn sets the ResourceArn field's value. 14695func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput { 14696 s.ResourceArn = &v 14697 return s 14698} 14699 14700// SetTagKeys sets the TagKeys field's value. 14701func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput { 14702 s.TagKeys = v 14703 return s 14704} 14705 14706type UntagResourceOutput struct { 14707 _ struct{} `type:"structure"` 14708} 14709 14710// String returns the string representation 14711func (s UntagResourceOutput) String() string { 14712 return awsutil.Prettify(s) 14713} 14714 14715// GoString returns the string representation 14716func (s UntagResourceOutput) GoString() string { 14717 return s.String() 14718} 14719 14720// Represents a request to perform an UpdateItem operation. 14721type Update struct { 14722 _ struct{} `type:"structure"` 14723 14724 // A condition that must be satisfied in order for a conditional update to succeed. 14725 ConditionExpression *string `type:"string"` 14726 14727 // One or more substitution tokens for attribute names in an expression. 14728 ExpressionAttributeNames map[string]*string `type:"map"` 14729 14730 // One or more values that can be substituted in an expression. 14731 ExpressionAttributeValues map[string]*AttributeValue `type:"map"` 14732 14733 // The primary key of the item to be updated. Each element consists of an attribute 14734 // name and a value for that attribute. 14735 // 14736 // Key is a required field 14737 Key map[string]*AttributeValue `type:"map" required:"true"` 14738 14739 // Use ReturnValuesOnConditionCheckFailure to get the item attributes if the 14740 // Update condition fails. For ReturnValuesOnConditionCheckFailure, the valid 14741 // values are: NONE, ALL_OLD, UPDATED_OLD, ALL_NEW, UPDATED_NEW. 14742 ReturnValuesOnConditionCheckFailure *string `type:"string" enum:"ReturnValuesOnConditionCheckFailure"` 14743 14744 // Name of the table for the UpdateItem request. 14745 // 14746 // TableName is a required field 14747 TableName *string `min:"3" type:"string" required:"true"` 14748 14749 // An expression that defines one or more attributes to be updated, the action 14750 // to be performed on them, and new value(s) for them. 14751 // 14752 // UpdateExpression is a required field 14753 UpdateExpression *string `type:"string" required:"true"` 14754} 14755 14756// String returns the string representation 14757func (s Update) String() string { 14758 return awsutil.Prettify(s) 14759} 14760 14761// GoString returns the string representation 14762func (s Update) GoString() string { 14763 return s.String() 14764} 14765 14766// Validate inspects the fields of the type to determine if they are valid. 14767func (s *Update) Validate() error { 14768 invalidParams := request.ErrInvalidParams{Context: "Update"} 14769 if s.Key == nil { 14770 invalidParams.Add(request.NewErrParamRequired("Key")) 14771 } 14772 if s.TableName == nil { 14773 invalidParams.Add(request.NewErrParamRequired("TableName")) 14774 } 14775 if s.TableName != nil && len(*s.TableName) < 3 { 14776 invalidParams.Add(request.NewErrParamMinLen("TableName", 3)) 14777 } 14778 if s.UpdateExpression == nil { 14779 invalidParams.Add(request.NewErrParamRequired("UpdateExpression")) 14780 } 14781 14782 if invalidParams.Len() > 0 { 14783 return invalidParams 14784 } 14785 return nil 14786} 14787 14788// SetConditionExpression sets the ConditionExpression field's value. 14789func (s *Update) SetConditionExpression(v string) *Update { 14790 s.ConditionExpression = &v 14791 return s 14792} 14793 14794// SetExpressionAttributeNames sets the ExpressionAttributeNames field's value. 14795func (s *Update) SetExpressionAttributeNames(v map[string]*string) *Update { 14796 s.ExpressionAttributeNames = v 14797 return s 14798} 14799 14800// SetExpressionAttributeValues sets the ExpressionAttributeValues field's value. 14801func (s *Update) SetExpressionAttributeValues(v map[string]*AttributeValue) *Update { 14802 s.ExpressionAttributeValues = v 14803 return s 14804} 14805 14806// SetKey sets the Key field's value. 14807func (s *Update) SetKey(v map[string]*AttributeValue) *Update { 14808 s.Key = v 14809 return s 14810} 14811 14812// SetReturnValuesOnConditionCheckFailure sets the ReturnValuesOnConditionCheckFailure field's value. 14813func (s *Update) SetReturnValuesOnConditionCheckFailure(v string) *Update { 14814 s.ReturnValuesOnConditionCheckFailure = &v 14815 return s 14816} 14817 14818// SetTableName sets the TableName field's value. 14819func (s *Update) SetTableName(v string) *Update { 14820 s.TableName = &v 14821 return s 14822} 14823 14824// SetUpdateExpression sets the UpdateExpression field's value. 14825func (s *Update) SetUpdateExpression(v string) *Update { 14826 s.UpdateExpression = &v 14827 return s 14828} 14829 14830type UpdateContinuousBackupsInput struct { 14831 _ struct{} `type:"structure"` 14832 14833 // Represents the settings used to enable point in time recovery. 14834 // 14835 // PointInTimeRecoverySpecification is a required field 14836 PointInTimeRecoverySpecification *PointInTimeRecoverySpecification `type:"structure" required:"true"` 14837 14838 // The name of the table. 14839 // 14840 // TableName is a required field 14841 TableName *string `min:"3" type:"string" required:"true"` 14842} 14843 14844// String returns the string representation 14845func (s UpdateContinuousBackupsInput) String() string { 14846 return awsutil.Prettify(s) 14847} 14848 14849// GoString returns the string representation 14850func (s UpdateContinuousBackupsInput) GoString() string { 14851 return s.String() 14852} 14853 14854// Validate inspects the fields of the type to determine if they are valid. 14855func (s *UpdateContinuousBackupsInput) Validate() error { 14856 invalidParams := request.ErrInvalidParams{Context: "UpdateContinuousBackupsInput"} 14857 if s.PointInTimeRecoverySpecification == nil { 14858 invalidParams.Add(request.NewErrParamRequired("PointInTimeRecoverySpecification")) 14859 } 14860 if s.TableName == nil { 14861 invalidParams.Add(request.NewErrParamRequired("TableName")) 14862 } 14863 if s.TableName != nil && len(*s.TableName) < 3 { 14864 invalidParams.Add(request.NewErrParamMinLen("TableName", 3)) 14865 } 14866 if s.PointInTimeRecoverySpecification != nil { 14867 if err := s.PointInTimeRecoverySpecification.Validate(); err != nil { 14868 invalidParams.AddNested("PointInTimeRecoverySpecification", err.(request.ErrInvalidParams)) 14869 } 14870 } 14871 14872 if invalidParams.Len() > 0 { 14873 return invalidParams 14874 } 14875 return nil 14876} 14877 14878// SetPointInTimeRecoverySpecification sets the PointInTimeRecoverySpecification field's value. 14879func (s *UpdateContinuousBackupsInput) SetPointInTimeRecoverySpecification(v *PointInTimeRecoverySpecification) *UpdateContinuousBackupsInput { 14880 s.PointInTimeRecoverySpecification = v 14881 return s 14882} 14883 14884// SetTableName sets the TableName field's value. 14885func (s *UpdateContinuousBackupsInput) SetTableName(v string) *UpdateContinuousBackupsInput { 14886 s.TableName = &v 14887 return s 14888} 14889 14890type UpdateContinuousBackupsOutput struct { 14891 _ struct{} `type:"structure"` 14892 14893 // Represents the continuous backups and point in time recovery settings on 14894 // the table. 14895 ContinuousBackupsDescription *ContinuousBackupsDescription `type:"structure"` 14896} 14897 14898// String returns the string representation 14899func (s UpdateContinuousBackupsOutput) String() string { 14900 return awsutil.Prettify(s) 14901} 14902 14903// GoString returns the string representation 14904func (s UpdateContinuousBackupsOutput) GoString() string { 14905 return s.String() 14906} 14907 14908// SetContinuousBackupsDescription sets the ContinuousBackupsDescription field's value. 14909func (s *UpdateContinuousBackupsOutput) SetContinuousBackupsDescription(v *ContinuousBackupsDescription) *UpdateContinuousBackupsOutput { 14910 s.ContinuousBackupsDescription = v 14911 return s 14912} 14913 14914// Represents the new provisioned throughput settings to be applied to a global 14915// secondary index. 14916type UpdateGlobalSecondaryIndexAction struct { 14917 _ struct{} `type:"structure"` 14918 14919 // The name of the global secondary index to be updated. 14920 // 14921 // IndexName is a required field 14922 IndexName *string `min:"3" type:"string" required:"true"` 14923 14924 // Represents the provisioned throughput settings for the specified global secondary 14925 // index. 14926 // 14927 // For current minimum and maximum provisioned throughput values, see Limits 14928 // (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) 14929 // in the Amazon DynamoDB Developer Guide. 14930 // 14931 // ProvisionedThroughput is a required field 14932 ProvisionedThroughput *ProvisionedThroughput `type:"structure" required:"true"` 14933} 14934 14935// String returns the string representation 14936func (s UpdateGlobalSecondaryIndexAction) String() string { 14937 return awsutil.Prettify(s) 14938} 14939 14940// GoString returns the string representation 14941func (s UpdateGlobalSecondaryIndexAction) GoString() string { 14942 return s.String() 14943} 14944 14945// Validate inspects the fields of the type to determine if they are valid. 14946func (s *UpdateGlobalSecondaryIndexAction) Validate() error { 14947 invalidParams := request.ErrInvalidParams{Context: "UpdateGlobalSecondaryIndexAction"} 14948 if s.IndexName == nil { 14949 invalidParams.Add(request.NewErrParamRequired("IndexName")) 14950 } 14951 if s.IndexName != nil && len(*s.IndexName) < 3 { 14952 invalidParams.Add(request.NewErrParamMinLen("IndexName", 3)) 14953 } 14954 if s.ProvisionedThroughput == nil { 14955 invalidParams.Add(request.NewErrParamRequired("ProvisionedThroughput")) 14956 } 14957 if s.ProvisionedThroughput != nil { 14958 if err := s.ProvisionedThroughput.Validate(); err != nil { 14959 invalidParams.AddNested("ProvisionedThroughput", err.(request.ErrInvalidParams)) 14960 } 14961 } 14962 14963 if invalidParams.Len() > 0 { 14964 return invalidParams 14965 } 14966 return nil 14967} 14968 14969// SetIndexName sets the IndexName field's value. 14970func (s *UpdateGlobalSecondaryIndexAction) SetIndexName(v string) *UpdateGlobalSecondaryIndexAction { 14971 s.IndexName = &v 14972 return s 14973} 14974 14975// SetProvisionedThroughput sets the ProvisionedThroughput field's value. 14976func (s *UpdateGlobalSecondaryIndexAction) SetProvisionedThroughput(v *ProvisionedThroughput) *UpdateGlobalSecondaryIndexAction { 14977 s.ProvisionedThroughput = v 14978 return s 14979} 14980 14981type UpdateGlobalTableInput struct { 14982 _ struct{} `type:"structure"` 14983 14984 // The global table name. 14985 // 14986 // GlobalTableName is a required field 14987 GlobalTableName *string `min:"3" type:"string" required:"true"` 14988 14989 // A list of Regions that should be added or removed from the global table. 14990 // 14991 // ReplicaUpdates is a required field 14992 ReplicaUpdates []*ReplicaUpdate `type:"list" required:"true"` 14993} 14994 14995// String returns the string representation 14996func (s UpdateGlobalTableInput) String() string { 14997 return awsutil.Prettify(s) 14998} 14999 15000// GoString returns the string representation 15001func (s UpdateGlobalTableInput) GoString() string { 15002 return s.String() 15003} 15004 15005// Validate inspects the fields of the type to determine if they are valid. 15006func (s *UpdateGlobalTableInput) Validate() error { 15007 invalidParams := request.ErrInvalidParams{Context: "UpdateGlobalTableInput"} 15008 if s.GlobalTableName == nil { 15009 invalidParams.Add(request.NewErrParamRequired("GlobalTableName")) 15010 } 15011 if s.GlobalTableName != nil && len(*s.GlobalTableName) < 3 { 15012 invalidParams.Add(request.NewErrParamMinLen("GlobalTableName", 3)) 15013 } 15014 if s.ReplicaUpdates == nil { 15015 invalidParams.Add(request.NewErrParamRequired("ReplicaUpdates")) 15016 } 15017 if s.ReplicaUpdates != nil { 15018 for i, v := range s.ReplicaUpdates { 15019 if v == nil { 15020 continue 15021 } 15022 if err := v.Validate(); err != nil { 15023 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ReplicaUpdates", i), err.(request.ErrInvalidParams)) 15024 } 15025 } 15026 } 15027 15028 if invalidParams.Len() > 0 { 15029 return invalidParams 15030 } 15031 return nil 15032} 15033 15034// SetGlobalTableName sets the GlobalTableName field's value. 15035func (s *UpdateGlobalTableInput) SetGlobalTableName(v string) *UpdateGlobalTableInput { 15036 s.GlobalTableName = &v 15037 return s 15038} 15039 15040// SetReplicaUpdates sets the ReplicaUpdates field's value. 15041func (s *UpdateGlobalTableInput) SetReplicaUpdates(v []*ReplicaUpdate) *UpdateGlobalTableInput { 15042 s.ReplicaUpdates = v 15043 return s 15044} 15045 15046type UpdateGlobalTableOutput struct { 15047 _ struct{} `type:"structure"` 15048 15049 // Contains the details of the global table. 15050 GlobalTableDescription *GlobalTableDescription `type:"structure"` 15051} 15052 15053// String returns the string representation 15054func (s UpdateGlobalTableOutput) String() string { 15055 return awsutil.Prettify(s) 15056} 15057 15058// GoString returns the string representation 15059func (s UpdateGlobalTableOutput) GoString() string { 15060 return s.String() 15061} 15062 15063// SetGlobalTableDescription sets the GlobalTableDescription field's value. 15064func (s *UpdateGlobalTableOutput) SetGlobalTableDescription(v *GlobalTableDescription) *UpdateGlobalTableOutput { 15065 s.GlobalTableDescription = v 15066 return s 15067} 15068 15069type UpdateGlobalTableSettingsInput struct { 15070 _ struct{} `type:"structure"` 15071 15072 // The billing mode of the global table. If GlobalTableBillingMode is not specified, 15073 // the global table defaults to PROVISIONED capacity billing mode. 15074 GlobalTableBillingMode *string `type:"string" enum:"BillingMode"` 15075 15076 // Represents the settings of a global secondary index for a global table that 15077 // will be modified. 15078 GlobalTableGlobalSecondaryIndexSettingsUpdate []*GlobalTableGlobalSecondaryIndexSettingsUpdate `min:"1" type:"list"` 15079 15080 // The name of the global table 15081 // 15082 // GlobalTableName is a required field 15083 GlobalTableName *string `min:"3" type:"string" required:"true"` 15084 15085 // Auto scaling settings for managing provisioned write capacity for the global 15086 // table. 15087 GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate *AutoScalingSettingsUpdate `type:"structure"` 15088 15089 // The maximum number of writes consumed per second before DynamoDB returns 15090 // a ThrottlingException. 15091 GlobalTableProvisionedWriteCapacityUnits *int64 `min:"1" type:"long"` 15092 15093 // Represents the settings for a global table in a Region that will be modified. 15094 ReplicaSettingsUpdate []*ReplicaSettingsUpdate `min:"1" type:"list"` 15095} 15096 15097// String returns the string representation 15098func (s UpdateGlobalTableSettingsInput) String() string { 15099 return awsutil.Prettify(s) 15100} 15101 15102// GoString returns the string representation 15103func (s UpdateGlobalTableSettingsInput) GoString() string { 15104 return s.String() 15105} 15106 15107// Validate inspects the fields of the type to determine if they are valid. 15108func (s *UpdateGlobalTableSettingsInput) Validate() error { 15109 invalidParams := request.ErrInvalidParams{Context: "UpdateGlobalTableSettingsInput"} 15110 if s.GlobalTableGlobalSecondaryIndexSettingsUpdate != nil && len(s.GlobalTableGlobalSecondaryIndexSettingsUpdate) < 1 { 15111 invalidParams.Add(request.NewErrParamMinLen("GlobalTableGlobalSecondaryIndexSettingsUpdate", 1)) 15112 } 15113 if s.GlobalTableName == nil { 15114 invalidParams.Add(request.NewErrParamRequired("GlobalTableName")) 15115 } 15116 if s.GlobalTableName != nil && len(*s.GlobalTableName) < 3 { 15117 invalidParams.Add(request.NewErrParamMinLen("GlobalTableName", 3)) 15118 } 15119 if s.GlobalTableProvisionedWriteCapacityUnits != nil && *s.GlobalTableProvisionedWriteCapacityUnits < 1 { 15120 invalidParams.Add(request.NewErrParamMinValue("GlobalTableProvisionedWriteCapacityUnits", 1)) 15121 } 15122 if s.ReplicaSettingsUpdate != nil && len(s.ReplicaSettingsUpdate) < 1 { 15123 invalidParams.Add(request.NewErrParamMinLen("ReplicaSettingsUpdate", 1)) 15124 } 15125 if s.GlobalTableGlobalSecondaryIndexSettingsUpdate != nil { 15126 for i, v := range s.GlobalTableGlobalSecondaryIndexSettingsUpdate { 15127 if v == nil { 15128 continue 15129 } 15130 if err := v.Validate(); err != nil { 15131 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "GlobalTableGlobalSecondaryIndexSettingsUpdate", i), err.(request.ErrInvalidParams)) 15132 } 15133 } 15134 } 15135 if s.GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate != nil { 15136 if err := s.GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate.Validate(); err != nil { 15137 invalidParams.AddNested("GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate", err.(request.ErrInvalidParams)) 15138 } 15139 } 15140 if s.ReplicaSettingsUpdate != nil { 15141 for i, v := range s.ReplicaSettingsUpdate { 15142 if v == nil { 15143 continue 15144 } 15145 if err := v.Validate(); err != nil { 15146 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ReplicaSettingsUpdate", i), err.(request.ErrInvalidParams)) 15147 } 15148 } 15149 } 15150 15151 if invalidParams.Len() > 0 { 15152 return invalidParams 15153 } 15154 return nil 15155} 15156 15157// SetGlobalTableBillingMode sets the GlobalTableBillingMode field's value. 15158func (s *UpdateGlobalTableSettingsInput) SetGlobalTableBillingMode(v string) *UpdateGlobalTableSettingsInput { 15159 s.GlobalTableBillingMode = &v 15160 return s 15161} 15162 15163// SetGlobalTableGlobalSecondaryIndexSettingsUpdate sets the GlobalTableGlobalSecondaryIndexSettingsUpdate field's value. 15164func (s *UpdateGlobalTableSettingsInput) SetGlobalTableGlobalSecondaryIndexSettingsUpdate(v []*GlobalTableGlobalSecondaryIndexSettingsUpdate) *UpdateGlobalTableSettingsInput { 15165 s.GlobalTableGlobalSecondaryIndexSettingsUpdate = v 15166 return s 15167} 15168 15169// SetGlobalTableName sets the GlobalTableName field's value. 15170func (s *UpdateGlobalTableSettingsInput) SetGlobalTableName(v string) *UpdateGlobalTableSettingsInput { 15171 s.GlobalTableName = &v 15172 return s 15173} 15174 15175// SetGlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate sets the GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate field's value. 15176func (s *UpdateGlobalTableSettingsInput) SetGlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate(v *AutoScalingSettingsUpdate) *UpdateGlobalTableSettingsInput { 15177 s.GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate = v 15178 return s 15179} 15180 15181// SetGlobalTableProvisionedWriteCapacityUnits sets the GlobalTableProvisionedWriteCapacityUnits field's value. 15182func (s *UpdateGlobalTableSettingsInput) SetGlobalTableProvisionedWriteCapacityUnits(v int64) *UpdateGlobalTableSettingsInput { 15183 s.GlobalTableProvisionedWriteCapacityUnits = &v 15184 return s 15185} 15186 15187// SetReplicaSettingsUpdate sets the ReplicaSettingsUpdate field's value. 15188func (s *UpdateGlobalTableSettingsInput) SetReplicaSettingsUpdate(v []*ReplicaSettingsUpdate) *UpdateGlobalTableSettingsInput { 15189 s.ReplicaSettingsUpdate = v 15190 return s 15191} 15192 15193type UpdateGlobalTableSettingsOutput struct { 15194 _ struct{} `type:"structure"` 15195 15196 // The name of the global table. 15197 GlobalTableName *string `min:"3" type:"string"` 15198 15199 // The Region-specific settings for the global table. 15200 ReplicaSettings []*ReplicaSettingsDescription `type:"list"` 15201} 15202 15203// String returns the string representation 15204func (s UpdateGlobalTableSettingsOutput) String() string { 15205 return awsutil.Prettify(s) 15206} 15207 15208// GoString returns the string representation 15209func (s UpdateGlobalTableSettingsOutput) GoString() string { 15210 return s.String() 15211} 15212 15213// SetGlobalTableName sets the GlobalTableName field's value. 15214func (s *UpdateGlobalTableSettingsOutput) SetGlobalTableName(v string) *UpdateGlobalTableSettingsOutput { 15215 s.GlobalTableName = &v 15216 return s 15217} 15218 15219// SetReplicaSettings sets the ReplicaSettings field's value. 15220func (s *UpdateGlobalTableSettingsOutput) SetReplicaSettings(v []*ReplicaSettingsDescription) *UpdateGlobalTableSettingsOutput { 15221 s.ReplicaSettings = v 15222 return s 15223} 15224 15225// Represents the input of an UpdateItem operation. 15226type UpdateItemInput struct { 15227 _ struct{} `type:"structure"` 15228 15229 // This is a legacy parameter. Use UpdateExpression instead. For more information, 15230 // see AttributeUpdates (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.AttributeUpdates.html) 15231 // in the Amazon DynamoDB Developer Guide. 15232 AttributeUpdates map[string]*AttributeValueUpdate `type:"map"` 15233 15234 // A condition that must be satisfied in order for a conditional update to succeed. 15235 // 15236 // An expression can contain any of the following: 15237 // 15238 // * Functions: attribute_exists | attribute_not_exists | attribute_type 15239 // | contains | begins_with | size These function names are case-sensitive. 15240 // 15241 // * Comparison operators: = | <> | < | > | <= | >= | BETWEEN | IN 15242 // 15243 // * Logical operators: AND | OR | NOT 15244 // 15245 // For more information about condition expressions, see Specifying Conditions 15246 // (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html) 15247 // in the Amazon DynamoDB Developer Guide. 15248 ConditionExpression *string `type:"string"` 15249 15250 // This is a legacy parameter. Use ConditionExpression instead. For more information, 15251 // see ConditionalOperator (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ConditionalOperator.html) 15252 // in the Amazon DynamoDB Developer Guide. 15253 ConditionalOperator *string `type:"string" enum:"ConditionalOperator"` 15254 15255 // This is a legacy parameter. Use ConditionExpression instead. For more information, 15256 // see Expected (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.Expected.html) 15257 // in the Amazon DynamoDB Developer Guide. 15258 Expected map[string]*ExpectedAttributeValue `type:"map"` 15259 15260 // One or more substitution tokens for attribute names in an expression. The 15261 // following are some use cases for using ExpressionAttributeNames: 15262 // 15263 // * To access an attribute whose name conflicts with a DynamoDB reserved 15264 // word. 15265 // 15266 // * To create a placeholder for repeating occurrences of an attribute name 15267 // in an expression. 15268 // 15269 // * To prevent special characters in an attribute name from being misinterpreted 15270 // in an expression. 15271 // 15272 // Use the # character in an expression to dereference an attribute name. For 15273 // example, consider the following attribute name: 15274 // 15275 // * Percentile 15276 // 15277 // The name of this attribute conflicts with a reserved word, so it cannot be 15278 // used directly in an expression. (For the complete list of reserved words, 15279 // see Reserved Words (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html) 15280 // in the Amazon DynamoDB Developer Guide.) To work around this, you could specify 15281 // the following for ExpressionAttributeNames: 15282 // 15283 // * {"#P":"Percentile"} 15284 // 15285 // You could then use this substitution in an expression, as in this example: 15286 // 15287 // * #P = :val 15288 // 15289 // Tokens that begin with the : character are expression attribute values, which 15290 // are placeholders for the actual value at runtime. 15291 // 15292 // For more information about expression attribute names, see Specifying Item 15293 // Attributes (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html) 15294 // in the Amazon DynamoDB Developer Guide. 15295 ExpressionAttributeNames map[string]*string `type:"map"` 15296 15297 // One or more values that can be substituted in an expression. 15298 // 15299 // Use the : (colon) character in an expression to dereference an attribute 15300 // value. For example, suppose that you wanted to check whether the value of 15301 // the ProductStatus attribute was one of the following: 15302 // 15303 // Available | Backordered | Discontinued 15304 // 15305 // You would first need to specify ExpressionAttributeValues as follows: 15306 // 15307 // { ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"} 15308 // } 15309 // 15310 // You could then use these values in an expression, such as this: 15311 // 15312 // ProductStatus IN (:avail, :back, :disc) 15313 // 15314 // For more information on expression attribute values, see Condition Expressions 15315 // (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html) 15316 // in the Amazon DynamoDB Developer Guide. 15317 ExpressionAttributeValues map[string]*AttributeValue `type:"map"` 15318 15319 // The primary key of the item to be updated. Each element consists of an attribute 15320 // name and a value for that attribute. 15321 // 15322 // For the primary key, you must provide all of the attributes. For example, 15323 // with a simple primary key, you only need to provide a value for the partition 15324 // key. For a composite primary key, you must provide values for both the partition 15325 // key and the sort key. 15326 // 15327 // Key is a required field 15328 Key map[string]*AttributeValue `type:"map" required:"true"` 15329 15330 // Determines the level of detail about provisioned throughput consumption that 15331 // is returned in the response: 15332 // 15333 // * INDEXES - The response includes the aggregate ConsumedCapacity for the 15334 // operation, together with ConsumedCapacity for each table and secondary 15335 // index that was accessed. Note that some operations, such as GetItem and 15336 // BatchGetItem, do not access any indexes at all. In these cases, specifying 15337 // INDEXES will only return ConsumedCapacity information for table(s). 15338 // 15339 // * TOTAL - The response includes only the aggregate ConsumedCapacity for 15340 // the operation. 15341 // 15342 // * NONE - No ConsumedCapacity details are included in the response. 15343 ReturnConsumedCapacity *string `type:"string" enum:"ReturnConsumedCapacity"` 15344 15345 // Determines whether item collection metrics are returned. If set to SIZE, 15346 // the response includes statistics about item collections, if any, that were 15347 // modified during the operation are returned in the response. If set to NONE 15348 // (the default), no statistics are returned. 15349 ReturnItemCollectionMetrics *string `type:"string" enum:"ReturnItemCollectionMetrics"` 15350 15351 // Use ReturnValues if you want to get the item attributes as they appear before 15352 // or after they are updated. For UpdateItem, the valid values are: 15353 // 15354 // * NONE - If ReturnValues is not specified, or if its value is NONE, then 15355 // nothing is returned. (This setting is the default for ReturnValues.) 15356 // 15357 // * ALL_OLD - Returns all of the attributes of the item, as they appeared 15358 // before the UpdateItem operation. 15359 // 15360 // * UPDATED_OLD - Returns only the updated attributes, as they appeared 15361 // before the UpdateItem operation. 15362 // 15363 // * ALL_NEW - Returns all of the attributes of the item, as they appear 15364 // after the UpdateItem operation. 15365 // 15366 // * UPDATED_NEW - Returns only the updated attributes, as they appear after 15367 // the UpdateItem operation. 15368 // 15369 // There is no additional cost associated with requesting a return value aside 15370 // from the small network and processing overhead of receiving a larger response. 15371 // No read capacity units are consumed. 15372 // 15373 // The values returned are strongly consistent. 15374 ReturnValues *string `type:"string" enum:"ReturnValue"` 15375 15376 // The name of the table containing the item to update. 15377 // 15378 // TableName is a required field 15379 TableName *string `min:"3" type:"string" required:"true"` 15380 15381 // An expression that defines one or more attributes to be updated, the action 15382 // to be performed on them, and new values for them. 15383 // 15384 // The following action values are available for UpdateExpression. 15385 // 15386 // * SET - Adds one or more attributes and values to an item. If any of these 15387 // attributes already exist, they are replaced by the new values. You can 15388 // also use SET to add or subtract from an attribute that is of type Number. 15389 // For example: SET myNum = myNum + :val SET supports the following functions: 15390 // if_not_exists (path, operand) - if the item does not contain an attribute 15391 // at the specified path, then if_not_exists evaluates to operand; otherwise, 15392 // it evaluates to path. You can use this function to avoid overwriting an 15393 // attribute that may already be present in the item. list_append (operand, 15394 // operand) - evaluates to a list with a new element added to it. You can 15395 // append the new element to the start or the end of the list by reversing 15396 // the order of the operands. These function names are case-sensitive. 15397 // 15398 // * REMOVE - Removes one or more attributes from an item. 15399 // 15400 // * ADD - Adds the specified value to the item, if the attribute does not 15401 // already exist. If the attribute does exist, then the behavior of ADD depends 15402 // on the data type of the attribute: If the existing attribute is a number, 15403 // and if Value is also a number, then Value is mathematically added to the 15404 // existing attribute. If Value is a negative number, then it is subtracted 15405 // from the existing attribute. If you use ADD to increment or decrement 15406 // a number value for an item that doesn't exist before the update, DynamoDB 15407 // uses 0 as the initial value. Similarly, if you use ADD for an existing 15408 // item to increment or decrement an attribute value that doesn't exist before 15409 // the update, DynamoDB uses 0 as the initial value. For example, suppose 15410 // that the item you want to update doesn't have an attribute named itemcount, 15411 // but you decide to ADD the number 3 to this attribute anyway. DynamoDB 15412 // will create the itemcount attribute, set its initial value to 0, and finally 15413 // add 3 to it. The result will be a new itemcount attribute in the item, 15414 // with a value of 3. If the existing data type is a set and if Value is 15415 // also a set, then Value is added to the existing set. For example, if the 15416 // attribute value is the set [1,2], and the ADD action specified [3], then 15417 // the final attribute value is [1,2,3]. An error occurs if an ADD action 15418 // is specified for a set attribute and the attribute type specified does 15419 // not match the existing set type. Both sets must have the same primitive 15420 // data type. For example, if the existing data type is a set of strings, 15421 // the Value must also be a set of strings. The ADD action only supports 15422 // Number and set data types. In addition, ADD can only be used on top-level 15423 // attributes, not nested attributes. 15424 // 15425 // * DELETE - Deletes an element from a set. If a set of values is specified, 15426 // then those values are subtracted from the old set. For example, if the 15427 // attribute value was the set [a,b,c] and the DELETE action specifies [a,c], 15428 // then the final attribute value is [b]. Specifying an empty set is an error. 15429 // The DELETE action only supports set data types. In addition, DELETE can 15430 // only be used on top-level attributes, not nested attributes. 15431 // 15432 // You can have many actions in a single expression, such as the following: 15433 // SET a=:value1, b=:value2 DELETE :value3, :value4, :value5 15434 // 15435 // For more information on update expressions, see Modifying Items and Attributes 15436 // (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.Modifying.html) 15437 // in the Amazon DynamoDB Developer Guide. 15438 UpdateExpression *string `type:"string"` 15439} 15440 15441// String returns the string representation 15442func (s UpdateItemInput) String() string { 15443 return awsutil.Prettify(s) 15444} 15445 15446// GoString returns the string representation 15447func (s UpdateItemInput) GoString() string { 15448 return s.String() 15449} 15450 15451// Validate inspects the fields of the type to determine if they are valid. 15452func (s *UpdateItemInput) Validate() error { 15453 invalidParams := request.ErrInvalidParams{Context: "UpdateItemInput"} 15454 if s.Key == nil { 15455 invalidParams.Add(request.NewErrParamRequired("Key")) 15456 } 15457 if s.TableName == nil { 15458 invalidParams.Add(request.NewErrParamRequired("TableName")) 15459 } 15460 if s.TableName != nil && len(*s.TableName) < 3 { 15461 invalidParams.Add(request.NewErrParamMinLen("TableName", 3)) 15462 } 15463 15464 if invalidParams.Len() > 0 { 15465 return invalidParams 15466 } 15467 return nil 15468} 15469 15470// SetAttributeUpdates sets the AttributeUpdates field's value. 15471func (s *UpdateItemInput) SetAttributeUpdates(v map[string]*AttributeValueUpdate) *UpdateItemInput { 15472 s.AttributeUpdates = v 15473 return s 15474} 15475 15476// SetConditionExpression sets the ConditionExpression field's value. 15477func (s *UpdateItemInput) SetConditionExpression(v string) *UpdateItemInput { 15478 s.ConditionExpression = &v 15479 return s 15480} 15481 15482// SetConditionalOperator sets the ConditionalOperator field's value. 15483func (s *UpdateItemInput) SetConditionalOperator(v string) *UpdateItemInput { 15484 s.ConditionalOperator = &v 15485 return s 15486} 15487 15488// SetExpected sets the Expected field's value. 15489func (s *UpdateItemInput) SetExpected(v map[string]*ExpectedAttributeValue) *UpdateItemInput { 15490 s.Expected = v 15491 return s 15492} 15493 15494// SetExpressionAttributeNames sets the ExpressionAttributeNames field's value. 15495func (s *UpdateItemInput) SetExpressionAttributeNames(v map[string]*string) *UpdateItemInput { 15496 s.ExpressionAttributeNames = v 15497 return s 15498} 15499 15500// SetExpressionAttributeValues sets the ExpressionAttributeValues field's value. 15501func (s *UpdateItemInput) SetExpressionAttributeValues(v map[string]*AttributeValue) *UpdateItemInput { 15502 s.ExpressionAttributeValues = v 15503 return s 15504} 15505 15506// SetKey sets the Key field's value. 15507func (s *UpdateItemInput) SetKey(v map[string]*AttributeValue) *UpdateItemInput { 15508 s.Key = v 15509 return s 15510} 15511 15512// SetReturnConsumedCapacity sets the ReturnConsumedCapacity field's value. 15513func (s *UpdateItemInput) SetReturnConsumedCapacity(v string) *UpdateItemInput { 15514 s.ReturnConsumedCapacity = &v 15515 return s 15516} 15517 15518// SetReturnItemCollectionMetrics sets the ReturnItemCollectionMetrics field's value. 15519func (s *UpdateItemInput) SetReturnItemCollectionMetrics(v string) *UpdateItemInput { 15520 s.ReturnItemCollectionMetrics = &v 15521 return s 15522} 15523 15524// SetReturnValues sets the ReturnValues field's value. 15525func (s *UpdateItemInput) SetReturnValues(v string) *UpdateItemInput { 15526 s.ReturnValues = &v 15527 return s 15528} 15529 15530// SetTableName sets the TableName field's value. 15531func (s *UpdateItemInput) SetTableName(v string) *UpdateItemInput { 15532 s.TableName = &v 15533 return s 15534} 15535 15536// SetUpdateExpression sets the UpdateExpression field's value. 15537func (s *UpdateItemInput) SetUpdateExpression(v string) *UpdateItemInput { 15538 s.UpdateExpression = &v 15539 return s 15540} 15541 15542// Represents the output of an UpdateItem operation. 15543type UpdateItemOutput struct { 15544 _ struct{} `type:"structure"` 15545 15546 // A map of attribute values as they appear before or after the UpdateItem operation, 15547 // as determined by the ReturnValues parameter. 15548 // 15549 // The Attributes map is only present if ReturnValues was specified as something 15550 // other than NONE in the request. Each element represents one attribute. 15551 Attributes map[string]*AttributeValue `type:"map"` 15552 15553 // The capacity units consumed by the UpdateItem operation. The data returned 15554 // includes the total provisioned throughput consumed, along with statistics 15555 // for the table and any indexes involved in the operation. ConsumedCapacity 15556 // is only returned if the ReturnConsumedCapacity parameter was specified. For 15557 // more information, see Provisioned Throughput (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html) 15558 // in the Amazon DynamoDB Developer Guide. 15559 ConsumedCapacity *ConsumedCapacity `type:"structure"` 15560 15561 // Information about item collections, if any, that were affected by the UpdateItem 15562 // operation. ItemCollectionMetrics is only returned if the ReturnItemCollectionMetrics 15563 // parameter was specified. If the table does not have any local secondary indexes, 15564 // this information is not returned in the response. 15565 // 15566 // Each ItemCollectionMetrics element consists of: 15567 // 15568 // * ItemCollectionKey - The partition key value of the item collection. 15569 // This is the same as the partition key value of the item itself. 15570 // 15571 // * SizeEstimateRangeGB - An estimate of item collection size, in gigabytes. 15572 // This value is a two-element array containing a lower bound and an upper 15573 // bound for the estimate. The estimate includes the size of all the items 15574 // in the table, plus the size of all attributes projected into all of the 15575 // local secondary indexes on that table. Use this estimate to measure whether 15576 // a local secondary index is approaching its size limit. The estimate is 15577 // subject to change over time; therefore, do not rely on the precision or 15578 // accuracy of the estimate. 15579 ItemCollectionMetrics *ItemCollectionMetrics `type:"structure"` 15580} 15581 15582// String returns the string representation 15583func (s UpdateItemOutput) String() string { 15584 return awsutil.Prettify(s) 15585} 15586 15587// GoString returns the string representation 15588func (s UpdateItemOutput) GoString() string { 15589 return s.String() 15590} 15591 15592// SetAttributes sets the Attributes field's value. 15593func (s *UpdateItemOutput) SetAttributes(v map[string]*AttributeValue) *UpdateItemOutput { 15594 s.Attributes = v 15595 return s 15596} 15597 15598// SetConsumedCapacity sets the ConsumedCapacity field's value. 15599func (s *UpdateItemOutput) SetConsumedCapacity(v *ConsumedCapacity) *UpdateItemOutput { 15600 s.ConsumedCapacity = v 15601 return s 15602} 15603 15604// SetItemCollectionMetrics sets the ItemCollectionMetrics field's value. 15605func (s *UpdateItemOutput) SetItemCollectionMetrics(v *ItemCollectionMetrics) *UpdateItemOutput { 15606 s.ItemCollectionMetrics = v 15607 return s 15608} 15609 15610// Represents the input of an UpdateTable operation. 15611type UpdateTableInput struct { 15612 _ struct{} `type:"structure"` 15613 15614 // An array of attributes that describe the key schema for the table and indexes. 15615 // If you are adding a new global secondary index to the table, AttributeDefinitions 15616 // must include the key element(s) of the new index. 15617 AttributeDefinitions []*AttributeDefinition `type:"list"` 15618 15619 // Controls how you are charged for read and write throughput and how you manage 15620 // capacity. When switching from pay-per-request to provisioned capacity, initial 15621 // provisioned capacity values must be set. The initial provisioned capacity 15622 // values are estimated based on the consumed read and write capacity of your 15623 // table and global secondary indexes over the past 30 minutes. 15624 // 15625 // * PROVISIONED - Sets the billing mode to PROVISIONED. We recommend using 15626 // PROVISIONED for predictable workloads. 15627 // 15628 // * PAY_PER_REQUEST - Sets the billing mode to PAY_PER_REQUEST. We recommend 15629 // using PAY_PER_REQUEST for unpredictable workloads. 15630 BillingMode *string `type:"string" enum:"BillingMode"` 15631 15632 // An array of one or more global secondary indexes for the table. For each 15633 // index in the array, you can request one action: 15634 // 15635 // * Create - add a new global secondary index to the table. 15636 // 15637 // * Update - modify the provisioned throughput settings of an existing global 15638 // secondary index. 15639 // 15640 // * Delete - remove a global secondary index from the table. 15641 // 15642 // For more information, see Managing Global Secondary Indexes (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.OnlineOps.html) 15643 // in the Amazon DynamoDB Developer Guide. 15644 GlobalSecondaryIndexUpdates []*GlobalSecondaryIndexUpdate `type:"list"` 15645 15646 // The new provisioned throughput settings for the specified table or index. 15647 ProvisionedThroughput *ProvisionedThroughput `type:"structure"` 15648 15649 // The new server-side encryption settings for the specified table. 15650 SSESpecification *SSESpecification `type:"structure"` 15651 15652 // Represents the DynamoDB Streams configuration for the table. 15653 // 15654 // You receive a ResourceInUseException if you try to enable a stream on a table 15655 // that already has a stream, or if you try to disable a stream on a table that 15656 // doesn't have a stream. 15657 StreamSpecification *StreamSpecification `type:"structure"` 15658 15659 // The name of the table to be updated. 15660 // 15661 // TableName is a required field 15662 TableName *string `min:"3" type:"string" required:"true"` 15663} 15664 15665// String returns the string representation 15666func (s UpdateTableInput) String() string { 15667 return awsutil.Prettify(s) 15668} 15669 15670// GoString returns the string representation 15671func (s UpdateTableInput) GoString() string { 15672 return s.String() 15673} 15674 15675// Validate inspects the fields of the type to determine if they are valid. 15676func (s *UpdateTableInput) Validate() error { 15677 invalidParams := request.ErrInvalidParams{Context: "UpdateTableInput"} 15678 if s.TableName == nil { 15679 invalidParams.Add(request.NewErrParamRequired("TableName")) 15680 } 15681 if s.TableName != nil && len(*s.TableName) < 3 { 15682 invalidParams.Add(request.NewErrParamMinLen("TableName", 3)) 15683 } 15684 if s.AttributeDefinitions != nil { 15685 for i, v := range s.AttributeDefinitions { 15686 if v == nil { 15687 continue 15688 } 15689 if err := v.Validate(); err != nil { 15690 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeDefinitions", i), err.(request.ErrInvalidParams)) 15691 } 15692 } 15693 } 15694 if s.GlobalSecondaryIndexUpdates != nil { 15695 for i, v := range s.GlobalSecondaryIndexUpdates { 15696 if v == nil { 15697 continue 15698 } 15699 if err := v.Validate(); err != nil { 15700 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "GlobalSecondaryIndexUpdates", i), err.(request.ErrInvalidParams)) 15701 } 15702 } 15703 } 15704 if s.ProvisionedThroughput != nil { 15705 if err := s.ProvisionedThroughput.Validate(); err != nil { 15706 invalidParams.AddNested("ProvisionedThroughput", err.(request.ErrInvalidParams)) 15707 } 15708 } 15709 15710 if invalidParams.Len() > 0 { 15711 return invalidParams 15712 } 15713 return nil 15714} 15715 15716// SetAttributeDefinitions sets the AttributeDefinitions field's value. 15717func (s *UpdateTableInput) SetAttributeDefinitions(v []*AttributeDefinition) *UpdateTableInput { 15718 s.AttributeDefinitions = v 15719 return s 15720} 15721 15722// SetBillingMode sets the BillingMode field's value. 15723func (s *UpdateTableInput) SetBillingMode(v string) *UpdateTableInput { 15724 s.BillingMode = &v 15725 return s 15726} 15727 15728// SetGlobalSecondaryIndexUpdates sets the GlobalSecondaryIndexUpdates field's value. 15729func (s *UpdateTableInput) SetGlobalSecondaryIndexUpdates(v []*GlobalSecondaryIndexUpdate) *UpdateTableInput { 15730 s.GlobalSecondaryIndexUpdates = v 15731 return s 15732} 15733 15734// SetProvisionedThroughput sets the ProvisionedThroughput field's value. 15735func (s *UpdateTableInput) SetProvisionedThroughput(v *ProvisionedThroughput) *UpdateTableInput { 15736 s.ProvisionedThroughput = v 15737 return s 15738} 15739 15740// SetSSESpecification sets the SSESpecification field's value. 15741func (s *UpdateTableInput) SetSSESpecification(v *SSESpecification) *UpdateTableInput { 15742 s.SSESpecification = v 15743 return s 15744} 15745 15746// SetStreamSpecification sets the StreamSpecification field's value. 15747func (s *UpdateTableInput) SetStreamSpecification(v *StreamSpecification) *UpdateTableInput { 15748 s.StreamSpecification = v 15749 return s 15750} 15751 15752// SetTableName sets the TableName field's value. 15753func (s *UpdateTableInput) SetTableName(v string) *UpdateTableInput { 15754 s.TableName = &v 15755 return s 15756} 15757 15758// Represents the output of an UpdateTable operation. 15759type UpdateTableOutput struct { 15760 _ struct{} `type:"structure"` 15761 15762 // Represents the properties of the table. 15763 TableDescription *TableDescription `type:"structure"` 15764} 15765 15766// String returns the string representation 15767func (s UpdateTableOutput) String() string { 15768 return awsutil.Prettify(s) 15769} 15770 15771// GoString returns the string representation 15772func (s UpdateTableOutput) GoString() string { 15773 return s.String() 15774} 15775 15776// SetTableDescription sets the TableDescription field's value. 15777func (s *UpdateTableOutput) SetTableDescription(v *TableDescription) *UpdateTableOutput { 15778 s.TableDescription = v 15779 return s 15780} 15781 15782// Represents the input of an UpdateTimeToLive operation. 15783type UpdateTimeToLiveInput struct { 15784 _ struct{} `type:"structure"` 15785 15786 // The name of the table to be configured. 15787 // 15788 // TableName is a required field 15789 TableName *string `min:"3" type:"string" required:"true"` 15790 15791 // Represents the settings used to enable or disable Time to Live for the specified 15792 // table. 15793 // 15794 // TimeToLiveSpecification is a required field 15795 TimeToLiveSpecification *TimeToLiveSpecification `type:"structure" required:"true"` 15796} 15797 15798// String returns the string representation 15799func (s UpdateTimeToLiveInput) String() string { 15800 return awsutil.Prettify(s) 15801} 15802 15803// GoString returns the string representation 15804func (s UpdateTimeToLiveInput) GoString() string { 15805 return s.String() 15806} 15807 15808// Validate inspects the fields of the type to determine if they are valid. 15809func (s *UpdateTimeToLiveInput) Validate() error { 15810 invalidParams := request.ErrInvalidParams{Context: "UpdateTimeToLiveInput"} 15811 if s.TableName == nil { 15812 invalidParams.Add(request.NewErrParamRequired("TableName")) 15813 } 15814 if s.TableName != nil && len(*s.TableName) < 3 { 15815 invalidParams.Add(request.NewErrParamMinLen("TableName", 3)) 15816 } 15817 if s.TimeToLiveSpecification == nil { 15818 invalidParams.Add(request.NewErrParamRequired("TimeToLiveSpecification")) 15819 } 15820 if s.TimeToLiveSpecification != nil { 15821 if err := s.TimeToLiveSpecification.Validate(); err != nil { 15822 invalidParams.AddNested("TimeToLiveSpecification", err.(request.ErrInvalidParams)) 15823 } 15824 } 15825 15826 if invalidParams.Len() > 0 { 15827 return invalidParams 15828 } 15829 return nil 15830} 15831 15832// SetTableName sets the TableName field's value. 15833func (s *UpdateTimeToLiveInput) SetTableName(v string) *UpdateTimeToLiveInput { 15834 s.TableName = &v 15835 return s 15836} 15837 15838// SetTimeToLiveSpecification sets the TimeToLiveSpecification field's value. 15839func (s *UpdateTimeToLiveInput) SetTimeToLiveSpecification(v *TimeToLiveSpecification) *UpdateTimeToLiveInput { 15840 s.TimeToLiveSpecification = v 15841 return s 15842} 15843 15844type UpdateTimeToLiveOutput struct { 15845 _ struct{} `type:"structure"` 15846 15847 // Represents the output of an UpdateTimeToLive operation. 15848 TimeToLiveSpecification *TimeToLiveSpecification `type:"structure"` 15849} 15850 15851// String returns the string representation 15852func (s UpdateTimeToLiveOutput) String() string { 15853 return awsutil.Prettify(s) 15854} 15855 15856// GoString returns the string representation 15857func (s UpdateTimeToLiveOutput) GoString() string { 15858 return s.String() 15859} 15860 15861// SetTimeToLiveSpecification sets the TimeToLiveSpecification field's value. 15862func (s *UpdateTimeToLiveOutput) SetTimeToLiveSpecification(v *TimeToLiveSpecification) *UpdateTimeToLiveOutput { 15863 s.TimeToLiveSpecification = v 15864 return s 15865} 15866 15867// Represents an operation to perform - either DeleteItem or PutItem. You can 15868// only request one of these operations, not both, in a single WriteRequest. 15869// If you do need to perform both of these operations, you will need to provide 15870// two separate WriteRequest objects. 15871type WriteRequest struct { 15872 _ struct{} `type:"structure"` 15873 15874 // A request to perform a DeleteItem operation. 15875 DeleteRequest *DeleteRequest `type:"structure"` 15876 15877 // A request to perform a PutItem operation. 15878 PutRequest *PutRequest `type:"structure"` 15879} 15880 15881// String returns the string representation 15882func (s WriteRequest) String() string { 15883 return awsutil.Prettify(s) 15884} 15885 15886// GoString returns the string representation 15887func (s WriteRequest) GoString() string { 15888 return s.String() 15889} 15890 15891// SetDeleteRequest sets the DeleteRequest field's value. 15892func (s *WriteRequest) SetDeleteRequest(v *DeleteRequest) *WriteRequest { 15893 s.DeleteRequest = v 15894 return s 15895} 15896 15897// SetPutRequest sets the PutRequest field's value. 15898func (s *WriteRequest) SetPutRequest(v *PutRequest) *WriteRequest { 15899 s.PutRequest = v 15900 return s 15901} 15902 15903const ( 15904 // AttributeActionAdd is a AttributeAction enum value 15905 AttributeActionAdd = "ADD" 15906 15907 // AttributeActionPut is a AttributeAction enum value 15908 AttributeActionPut = "PUT" 15909 15910 // AttributeActionDelete is a AttributeAction enum value 15911 AttributeActionDelete = "DELETE" 15912) 15913 15914const ( 15915 // BackupStatusCreating is a BackupStatus enum value 15916 BackupStatusCreating = "CREATING" 15917 15918 // BackupStatusDeleted is a BackupStatus enum value 15919 BackupStatusDeleted = "DELETED" 15920 15921 // BackupStatusAvailable is a BackupStatus enum value 15922 BackupStatusAvailable = "AVAILABLE" 15923) 15924 15925const ( 15926 // BackupTypeUser is a BackupType enum value 15927 BackupTypeUser = "USER" 15928 15929 // BackupTypeSystem is a BackupType enum value 15930 BackupTypeSystem = "SYSTEM" 15931 15932 // BackupTypeAwsBackup is a BackupType enum value 15933 BackupTypeAwsBackup = "AWS_BACKUP" 15934) 15935 15936const ( 15937 // BackupTypeFilterUser is a BackupTypeFilter enum value 15938 BackupTypeFilterUser = "USER" 15939 15940 // BackupTypeFilterSystem is a BackupTypeFilter enum value 15941 BackupTypeFilterSystem = "SYSTEM" 15942 15943 // BackupTypeFilterAwsBackup is a BackupTypeFilter enum value 15944 BackupTypeFilterAwsBackup = "AWS_BACKUP" 15945 15946 // BackupTypeFilterAll is a BackupTypeFilter enum value 15947 BackupTypeFilterAll = "ALL" 15948) 15949 15950const ( 15951 // BillingModeProvisioned is a BillingMode enum value 15952 BillingModeProvisioned = "PROVISIONED" 15953 15954 // BillingModePayPerRequest is a BillingMode enum value 15955 BillingModePayPerRequest = "PAY_PER_REQUEST" 15956) 15957 15958const ( 15959 // ComparisonOperatorEq is a ComparisonOperator enum value 15960 ComparisonOperatorEq = "EQ" 15961 15962 // ComparisonOperatorNe is a ComparisonOperator enum value 15963 ComparisonOperatorNe = "NE" 15964 15965 // ComparisonOperatorIn is a ComparisonOperator enum value 15966 ComparisonOperatorIn = "IN" 15967 15968 // ComparisonOperatorLe is a ComparisonOperator enum value 15969 ComparisonOperatorLe = "LE" 15970 15971 // ComparisonOperatorLt is a ComparisonOperator enum value 15972 ComparisonOperatorLt = "LT" 15973 15974 // ComparisonOperatorGe is a ComparisonOperator enum value 15975 ComparisonOperatorGe = "GE" 15976 15977 // ComparisonOperatorGt is a ComparisonOperator enum value 15978 ComparisonOperatorGt = "GT" 15979 15980 // ComparisonOperatorBetween is a ComparisonOperator enum value 15981 ComparisonOperatorBetween = "BETWEEN" 15982 15983 // ComparisonOperatorNotNull is a ComparisonOperator enum value 15984 ComparisonOperatorNotNull = "NOT_NULL" 15985 15986 // ComparisonOperatorNull is a ComparisonOperator enum value 15987 ComparisonOperatorNull = "NULL" 15988 15989 // ComparisonOperatorContains is a ComparisonOperator enum value 15990 ComparisonOperatorContains = "CONTAINS" 15991 15992 // ComparisonOperatorNotContains is a ComparisonOperator enum value 15993 ComparisonOperatorNotContains = "NOT_CONTAINS" 15994 15995 // ComparisonOperatorBeginsWith is a ComparisonOperator enum value 15996 ComparisonOperatorBeginsWith = "BEGINS_WITH" 15997) 15998 15999const ( 16000 // ConditionalOperatorAnd is a ConditionalOperator enum value 16001 ConditionalOperatorAnd = "AND" 16002 16003 // ConditionalOperatorOr is a ConditionalOperator enum value 16004 ConditionalOperatorOr = "OR" 16005) 16006 16007const ( 16008 // ContinuousBackupsStatusEnabled is a ContinuousBackupsStatus enum value 16009 ContinuousBackupsStatusEnabled = "ENABLED" 16010 16011 // ContinuousBackupsStatusDisabled is a ContinuousBackupsStatus enum value 16012 ContinuousBackupsStatusDisabled = "DISABLED" 16013) 16014 16015const ( 16016 // GlobalTableStatusCreating is a GlobalTableStatus enum value 16017 GlobalTableStatusCreating = "CREATING" 16018 16019 // GlobalTableStatusActive is a GlobalTableStatus enum value 16020 GlobalTableStatusActive = "ACTIVE" 16021 16022 // GlobalTableStatusDeleting is a GlobalTableStatus enum value 16023 GlobalTableStatusDeleting = "DELETING" 16024 16025 // GlobalTableStatusUpdating is a GlobalTableStatus enum value 16026 GlobalTableStatusUpdating = "UPDATING" 16027) 16028 16029const ( 16030 // IndexStatusCreating is a IndexStatus enum value 16031 IndexStatusCreating = "CREATING" 16032 16033 // IndexStatusUpdating is a IndexStatus enum value 16034 IndexStatusUpdating = "UPDATING" 16035 16036 // IndexStatusDeleting is a IndexStatus enum value 16037 IndexStatusDeleting = "DELETING" 16038 16039 // IndexStatusActive is a IndexStatus enum value 16040 IndexStatusActive = "ACTIVE" 16041) 16042 16043const ( 16044 // KeyTypeHash is a KeyType enum value 16045 KeyTypeHash = "HASH" 16046 16047 // KeyTypeRange is a KeyType enum value 16048 KeyTypeRange = "RANGE" 16049) 16050 16051const ( 16052 // PointInTimeRecoveryStatusEnabled is a PointInTimeRecoveryStatus enum value 16053 PointInTimeRecoveryStatusEnabled = "ENABLED" 16054 16055 // PointInTimeRecoveryStatusDisabled is a PointInTimeRecoveryStatus enum value 16056 PointInTimeRecoveryStatusDisabled = "DISABLED" 16057) 16058 16059const ( 16060 // ProjectionTypeAll is a ProjectionType enum value 16061 ProjectionTypeAll = "ALL" 16062 16063 // ProjectionTypeKeysOnly is a ProjectionType enum value 16064 ProjectionTypeKeysOnly = "KEYS_ONLY" 16065 16066 // ProjectionTypeInclude is a ProjectionType enum value 16067 ProjectionTypeInclude = "INCLUDE" 16068) 16069 16070const ( 16071 // ReplicaStatusCreating is a ReplicaStatus enum value 16072 ReplicaStatusCreating = "CREATING" 16073 16074 // ReplicaStatusUpdating is a ReplicaStatus enum value 16075 ReplicaStatusUpdating = "UPDATING" 16076 16077 // ReplicaStatusDeleting is a ReplicaStatus enum value 16078 ReplicaStatusDeleting = "DELETING" 16079 16080 // ReplicaStatusActive is a ReplicaStatus enum value 16081 ReplicaStatusActive = "ACTIVE" 16082) 16083 16084// Determines the level of detail about provisioned throughput consumption that 16085// is returned in the response: 16086// 16087// * INDEXES - The response includes the aggregate ConsumedCapacity for the 16088// operation, together with ConsumedCapacity for each table and secondary 16089// index that was accessed. Note that some operations, such as GetItem and 16090// BatchGetItem, do not access any indexes at all. In these cases, specifying 16091// INDEXES will only return ConsumedCapacity information for table(s). 16092// 16093// * TOTAL - The response includes only the aggregate ConsumedCapacity for 16094// the operation. 16095// 16096// * NONE - No ConsumedCapacity details are included in the response. 16097const ( 16098 // ReturnConsumedCapacityIndexes is a ReturnConsumedCapacity enum value 16099 ReturnConsumedCapacityIndexes = "INDEXES" 16100 16101 // ReturnConsumedCapacityTotal is a ReturnConsumedCapacity enum value 16102 ReturnConsumedCapacityTotal = "TOTAL" 16103 16104 // ReturnConsumedCapacityNone is a ReturnConsumedCapacity enum value 16105 ReturnConsumedCapacityNone = "NONE" 16106) 16107 16108const ( 16109 // ReturnItemCollectionMetricsSize is a ReturnItemCollectionMetrics enum value 16110 ReturnItemCollectionMetricsSize = "SIZE" 16111 16112 // ReturnItemCollectionMetricsNone is a ReturnItemCollectionMetrics enum value 16113 ReturnItemCollectionMetricsNone = "NONE" 16114) 16115 16116const ( 16117 // ReturnValueNone is a ReturnValue enum value 16118 ReturnValueNone = "NONE" 16119 16120 // ReturnValueAllOld is a ReturnValue enum value 16121 ReturnValueAllOld = "ALL_OLD" 16122 16123 // ReturnValueUpdatedOld is a ReturnValue enum value 16124 ReturnValueUpdatedOld = "UPDATED_OLD" 16125 16126 // ReturnValueAllNew is a ReturnValue enum value 16127 ReturnValueAllNew = "ALL_NEW" 16128 16129 // ReturnValueUpdatedNew is a ReturnValue enum value 16130 ReturnValueUpdatedNew = "UPDATED_NEW" 16131) 16132 16133const ( 16134 // ReturnValuesOnConditionCheckFailureAllOld is a ReturnValuesOnConditionCheckFailure enum value 16135 ReturnValuesOnConditionCheckFailureAllOld = "ALL_OLD" 16136 16137 // ReturnValuesOnConditionCheckFailureNone is a ReturnValuesOnConditionCheckFailure enum value 16138 ReturnValuesOnConditionCheckFailureNone = "NONE" 16139) 16140 16141const ( 16142 // SSEStatusEnabling is a SSEStatus enum value 16143 SSEStatusEnabling = "ENABLING" 16144 16145 // SSEStatusEnabled is a SSEStatus enum value 16146 SSEStatusEnabled = "ENABLED" 16147 16148 // SSEStatusDisabling is a SSEStatus enum value 16149 SSEStatusDisabling = "DISABLING" 16150 16151 // SSEStatusDisabled is a SSEStatus enum value 16152 SSEStatusDisabled = "DISABLED" 16153 16154 // SSEStatusUpdating is a SSEStatus enum value 16155 SSEStatusUpdating = "UPDATING" 16156) 16157 16158const ( 16159 // SSETypeAes256 is a SSEType enum value 16160 SSETypeAes256 = "AES256" 16161 16162 // SSETypeKms is a SSEType enum value 16163 SSETypeKms = "KMS" 16164) 16165 16166const ( 16167 // ScalarAttributeTypeS is a ScalarAttributeType enum value 16168 ScalarAttributeTypeS = "S" 16169 16170 // ScalarAttributeTypeN is a ScalarAttributeType enum value 16171 ScalarAttributeTypeN = "N" 16172 16173 // ScalarAttributeTypeB is a ScalarAttributeType enum value 16174 ScalarAttributeTypeB = "B" 16175) 16176 16177const ( 16178 // SelectAllAttributes is a Select enum value 16179 SelectAllAttributes = "ALL_ATTRIBUTES" 16180 16181 // SelectAllProjectedAttributes is a Select enum value 16182 SelectAllProjectedAttributes = "ALL_PROJECTED_ATTRIBUTES" 16183 16184 // SelectSpecificAttributes is a Select enum value 16185 SelectSpecificAttributes = "SPECIFIC_ATTRIBUTES" 16186 16187 // SelectCount is a Select enum value 16188 SelectCount = "COUNT" 16189) 16190 16191const ( 16192 // StreamViewTypeNewImage is a StreamViewType enum value 16193 StreamViewTypeNewImage = "NEW_IMAGE" 16194 16195 // StreamViewTypeOldImage is a StreamViewType enum value 16196 StreamViewTypeOldImage = "OLD_IMAGE" 16197 16198 // StreamViewTypeNewAndOldImages is a StreamViewType enum value 16199 StreamViewTypeNewAndOldImages = "NEW_AND_OLD_IMAGES" 16200 16201 // StreamViewTypeKeysOnly is a StreamViewType enum value 16202 StreamViewTypeKeysOnly = "KEYS_ONLY" 16203) 16204 16205const ( 16206 // TableStatusCreating is a TableStatus enum value 16207 TableStatusCreating = "CREATING" 16208 16209 // TableStatusUpdating is a TableStatus enum value 16210 TableStatusUpdating = "UPDATING" 16211 16212 // TableStatusDeleting is a TableStatus enum value 16213 TableStatusDeleting = "DELETING" 16214 16215 // TableStatusActive is a TableStatus enum value 16216 TableStatusActive = "ACTIVE" 16217) 16218 16219const ( 16220 // TimeToLiveStatusEnabling is a TimeToLiveStatus enum value 16221 TimeToLiveStatusEnabling = "ENABLING" 16222 16223 // TimeToLiveStatusDisabling is a TimeToLiveStatus enum value 16224 TimeToLiveStatusDisabling = "DISABLING" 16225 16226 // TimeToLiveStatusEnabled is a TimeToLiveStatus enum value 16227 TimeToLiveStatusEnabled = "ENABLED" 16228 16229 // TimeToLiveStatusDisabled is a TimeToLiveStatus enum value 16230 TimeToLiveStatusDisabled = "DISABLED" 16231) 16232