github.com/aavshr/aws-sdk-go@v1.41.3/service/dynamodb/api.go (about)

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package dynamodb
     4  
     5  import (
     6  	"fmt"
     7  	"net/url"
     8  	"strings"
     9  	"time"
    10  
    11  	"github.com/aavshr/aws-sdk-go/aws"
    12  	"github.com/aavshr/aws-sdk-go/aws/awsutil"
    13  	"github.com/aavshr/aws-sdk-go/aws/crr"
    14  	"github.com/aavshr/aws-sdk-go/aws/request"
    15  	"github.com/aavshr/aws-sdk-go/private/protocol"
    16  	"github.com/aavshr/aws-sdk-go/private/protocol/jsonrpc"
    17  )
    18  
    19  const opBatchExecuteStatement = "BatchExecuteStatement"
    20  
    21  // BatchExecuteStatementRequest generates a "aws/request.Request" representing the
    22  // client's request for the BatchExecuteStatement operation. The "output" return
    23  // value will be populated with the request's response once the request completes
    24  // successfully.
    25  //
    26  // Use "Send" method on the returned Request to send the API call to the service.
    27  // the "output" return value is not valid until after Send returns without error.
    28  //
    29  // See BatchExecuteStatement for more information on using the BatchExecuteStatement
    30  // API call, and error handling.
    31  //
    32  // This method is useful when you want to inject custom logic or configuration
    33  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
    34  //
    35  //
    36  //    // Example sending a request using the BatchExecuteStatementRequest method.
    37  //    req, resp := client.BatchExecuteStatementRequest(params)
    38  //
    39  //    err := req.Send()
    40  //    if err == nil { // resp is now filled
    41  //        fmt.Println(resp)
    42  //    }
    43  //
    44  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/BatchExecuteStatement
    45  func (c *DynamoDB) BatchExecuteStatementRequest(input *BatchExecuteStatementInput) (req *request.Request, output *BatchExecuteStatementOutput) {
    46  	op := &request.Operation{
    47  		Name:       opBatchExecuteStatement,
    48  		HTTPMethod: "POST",
    49  		HTTPPath:   "/",
    50  	}
    51  
    52  	if input == nil {
    53  		input = &BatchExecuteStatementInput{}
    54  	}
    55  
    56  	output = &BatchExecuteStatementOutput{}
    57  	req = c.newRequest(op, input, output)
    58  	return
    59  }
    60  
    61  // BatchExecuteStatement API operation for Amazon DynamoDB.
    62  //
    63  // This operation allows you to perform batch reads and writes on data stored
    64  // in DynamoDB, using PartiQL.
    65  //
    66  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
    67  // with awserr.Error's Code and Message methods to get detailed information about
    68  // the error.
    69  //
    70  // See the AWS API reference guide for Amazon DynamoDB's
    71  // API operation BatchExecuteStatement for usage and error information.
    72  //
    73  // Returned Error Types:
    74  //   * RequestLimitExceeded
    75  //   Throughput exceeds the current throughput quota for your account. Please
    76  //   contact AWS Support at AWS Support (https://aws.amazon.com/support) to request
    77  //   a quota increase.
    78  //
    79  //   * InternalServerError
    80  //   An error occurred on the server side.
    81  //
    82  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/BatchExecuteStatement
    83  func (c *DynamoDB) BatchExecuteStatement(input *BatchExecuteStatementInput) (*BatchExecuteStatementOutput, error) {
    84  	req, out := c.BatchExecuteStatementRequest(input)
    85  	return out, req.Send()
    86  }
    87  
    88  // BatchExecuteStatementWithContext is the same as BatchExecuteStatement with the addition of
    89  // the ability to pass a context and additional request options.
    90  //
    91  // See BatchExecuteStatement for details on how to use this API operation.
    92  //
    93  // The context must be non-nil and will be used for request cancellation. If
    94  // the context is nil a panic will occur. In the future the SDK may create
    95  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
    96  // for more information on using Contexts.
    97  func (c *DynamoDB) BatchExecuteStatementWithContext(ctx aws.Context, input *BatchExecuteStatementInput, opts ...request.Option) (*BatchExecuteStatementOutput, error) {
    98  	req, out := c.BatchExecuteStatementRequest(input)
    99  	req.SetContext(ctx)
   100  	req.ApplyOptions(opts...)
   101  	return out, req.Send()
   102  }
   103  
   104  const opBatchGetItem = "BatchGetItem"
   105  
   106  // BatchGetItemRequest generates a "aws/request.Request" representing the
   107  // client's request for the BatchGetItem operation. The "output" return
   108  // value will be populated with the request's response once the request completes
   109  // successfully.
   110  //
   111  // Use "Send" method on the returned Request to send the API call to the service.
   112  // the "output" return value is not valid until after Send returns without error.
   113  //
   114  // See BatchGetItem for more information on using the BatchGetItem
   115  // API call, and error handling.
   116  //
   117  // This method is useful when you want to inject custom logic or configuration
   118  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   119  //
   120  //
   121  //    // Example sending a request using the BatchGetItemRequest method.
   122  //    req, resp := client.BatchGetItemRequest(params)
   123  //
   124  //    err := req.Send()
   125  //    if err == nil { // resp is now filled
   126  //        fmt.Println(resp)
   127  //    }
   128  //
   129  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/BatchGetItem
   130  func (c *DynamoDB) BatchGetItemRequest(input *BatchGetItemInput) (req *request.Request, output *BatchGetItemOutput) {
   131  	op := &request.Operation{
   132  		Name:       opBatchGetItem,
   133  		HTTPMethod: "POST",
   134  		HTTPPath:   "/",
   135  		Paginator: &request.Paginator{
   136  			InputTokens:     []string{"RequestItems"},
   137  			OutputTokens:    []string{"UnprocessedKeys"},
   138  			LimitToken:      "",
   139  			TruncationToken: "",
   140  		},
   141  	}
   142  
   143  	if input == nil {
   144  		input = &BatchGetItemInput{}
   145  	}
   146  
   147  	output = &BatchGetItemOutput{}
   148  	req = c.newRequest(op, input, output)
   149  	// if custom endpoint for the request is set to a non empty string,
   150  	// we skip the endpoint discovery workflow.
   151  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
   152  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
   153  			de := discovererDescribeEndpoints{
   154  				Required:      false,
   155  				EndpointCache: c.endpointCache,
   156  				Params: map[string]*string{
   157  					"op": aws.String(req.Operation.Name),
   158  				},
   159  				Client: c,
   160  			}
   161  
   162  			for k, v := range de.Params {
   163  				if v == nil {
   164  					delete(de.Params, k)
   165  				}
   166  			}
   167  
   168  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
   169  				Name: "crr.endpointdiscovery",
   170  				Fn:   de.Handler,
   171  			})
   172  		}
   173  	}
   174  	return
   175  }
   176  
   177  // BatchGetItem API operation for Amazon DynamoDB.
   178  //
   179  // The BatchGetItem operation returns the attributes of one or more items from
   180  // one or more tables. You identify requested items by primary key.
   181  //
   182  // A single operation can retrieve up to 16 MB of data, which can contain as
   183  // many as 100 items. BatchGetItem returns a partial result if the response
   184  // size limit is exceeded, the table's provisioned throughput is exceeded, or
   185  // an internal processing failure occurs. If a partial result is returned, the
   186  // operation returns a value for UnprocessedKeys. You can use this value to
   187  // retry the operation starting with the next item to get.
   188  //
   189  // If you request more than 100 items, BatchGetItem returns a ValidationException
   190  // with the message "Too many items requested for the BatchGetItem call."
   191  //
   192  // For example, if you ask to retrieve 100 items, but each individual item is
   193  // 300 KB in size, the system returns 52 items (so as not to exceed the 16 MB
   194  // limit). It also returns an appropriate UnprocessedKeys value so you can get
   195  // the next page of results. If desired, your application can include its own
   196  // logic to assemble the pages of results into one dataset.
   197  //
   198  // If none of the items can be processed due to insufficient provisioned throughput
   199  // on all of the tables in the request, then BatchGetItem returns a ProvisionedThroughputExceededException.
   200  // If at least one of the items is successfully processed, then BatchGetItem
   201  // completes successfully, while returning the keys of the unread items in UnprocessedKeys.
   202  //
   203  // If DynamoDB returns any unprocessed items, you should retry the batch operation
   204  // on those items. However, we strongly recommend that you use an exponential
   205  // backoff algorithm. If you retry the batch operation immediately, the underlying
   206  // read or write requests can still fail due to throttling on the individual
   207  // tables. If you delay the batch operation using exponential backoff, the individual
   208  // requests in the batch are much more likely to succeed.
   209  //
   210  // For more information, see Batch Operations and Error Handling (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ErrorHandling.html#BatchOperations)
   211  // in the Amazon DynamoDB Developer Guide.
   212  //
   213  // By default, BatchGetItem performs eventually consistent reads on every table
   214  // in the request. If you want strongly consistent reads instead, you can set
   215  // ConsistentRead to true for any or all tables.
   216  //
   217  // In order to minimize response latency, BatchGetItem retrieves items in parallel.
   218  //
   219  // When designing your application, keep in mind that DynamoDB does not return
   220  // items in any particular order. To help parse the response by item, include
   221  // the primary key values for the items in your request in the ProjectionExpression
   222  // parameter.
   223  //
   224  // If a requested item does not exist, it is not returned in the result. Requests
   225  // for nonexistent items consume the minimum read capacity units according to
   226  // the type of read. For more information, see Working with Tables (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#CapacityUnitCalculations)
   227  // in the Amazon DynamoDB Developer Guide.
   228  //
   229  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   230  // with awserr.Error's Code and Message methods to get detailed information about
   231  // the error.
   232  //
   233  // See the AWS API reference guide for Amazon DynamoDB's
   234  // API operation BatchGetItem for usage and error information.
   235  //
   236  // Returned Error Types:
   237  //   * ProvisionedThroughputExceededException
   238  //   Your request rate is too high. The AWS SDKs for DynamoDB automatically retry
   239  //   requests that receive this exception. Your request is eventually successful,
   240  //   unless your retry queue is too large to finish. Reduce the frequency of requests
   241  //   and use exponential backoff. For more information, go to Error Retries and
   242  //   Exponential Backoff (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.RetryAndBackoff)
   243  //   in the Amazon DynamoDB Developer Guide.
   244  //
   245  //   * ResourceNotFoundException
   246  //   The operation tried to access a nonexistent table or index. The resource
   247  //   might not be specified correctly, or its status might not be ACTIVE.
   248  //
   249  //   * RequestLimitExceeded
   250  //   Throughput exceeds the current throughput quota for your account. Please
   251  //   contact AWS Support at AWS Support (https://aws.amazon.com/support) to request
   252  //   a quota increase.
   253  //
   254  //   * InternalServerError
   255  //   An error occurred on the server side.
   256  //
   257  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/BatchGetItem
   258  func (c *DynamoDB) BatchGetItem(input *BatchGetItemInput) (*BatchGetItemOutput, error) {
   259  	req, out := c.BatchGetItemRequest(input)
   260  	return out, req.Send()
   261  }
   262  
   263  // BatchGetItemWithContext is the same as BatchGetItem with the addition of
   264  // the ability to pass a context and additional request options.
   265  //
   266  // See BatchGetItem for details on how to use this API operation.
   267  //
   268  // The context must be non-nil and will be used for request cancellation. If
   269  // the context is nil a panic will occur. In the future the SDK may create
   270  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   271  // for more information on using Contexts.
   272  func (c *DynamoDB) BatchGetItemWithContext(ctx aws.Context, input *BatchGetItemInput, opts ...request.Option) (*BatchGetItemOutput, error) {
   273  	req, out := c.BatchGetItemRequest(input)
   274  	req.SetContext(ctx)
   275  	req.ApplyOptions(opts...)
   276  	return out, req.Send()
   277  }
   278  
   279  // BatchGetItemPages iterates over the pages of a BatchGetItem operation,
   280  // calling the "fn" function with the response data for each page. To stop
   281  // iterating, return false from the fn function.
   282  //
   283  // See BatchGetItem method for more information on how to use this operation.
   284  //
   285  // Note: This operation can generate multiple requests to a service.
   286  //
   287  //    // Example iterating over at most 3 pages of a BatchGetItem operation.
   288  //    pageNum := 0
   289  //    err := client.BatchGetItemPages(params,
   290  //        func(page *dynamodb.BatchGetItemOutput, lastPage bool) bool {
   291  //            pageNum++
   292  //            fmt.Println(page)
   293  //            return pageNum <= 3
   294  //        })
   295  //
   296  func (c *DynamoDB) BatchGetItemPages(input *BatchGetItemInput, fn func(*BatchGetItemOutput, bool) bool) error {
   297  	return c.BatchGetItemPagesWithContext(aws.BackgroundContext(), input, fn)
   298  }
   299  
   300  // BatchGetItemPagesWithContext same as BatchGetItemPages except
   301  // it takes a Context and allows setting request options on the pages.
   302  //
   303  // The context must be non-nil and will be used for request cancellation. If
   304  // the context is nil a panic will occur. In the future the SDK may create
   305  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   306  // for more information on using Contexts.
   307  func (c *DynamoDB) BatchGetItemPagesWithContext(ctx aws.Context, input *BatchGetItemInput, fn func(*BatchGetItemOutput, bool) bool, opts ...request.Option) error {
   308  	p := request.Pagination{
   309  		NewRequest: func() (*request.Request, error) {
   310  			var inCpy *BatchGetItemInput
   311  			if input != nil {
   312  				tmp := *input
   313  				inCpy = &tmp
   314  			}
   315  			req, _ := c.BatchGetItemRequest(inCpy)
   316  			req.SetContext(ctx)
   317  			req.ApplyOptions(opts...)
   318  			return req, nil
   319  		},
   320  	}
   321  
   322  	for p.Next() {
   323  		if !fn(p.Page().(*BatchGetItemOutput), !p.HasNextPage()) {
   324  			break
   325  		}
   326  	}
   327  
   328  	return p.Err()
   329  }
   330  
   331  const opBatchWriteItem = "BatchWriteItem"
   332  
   333  // BatchWriteItemRequest generates a "aws/request.Request" representing the
   334  // client's request for the BatchWriteItem operation. The "output" return
   335  // value will be populated with the request's response once the request completes
   336  // successfully.
   337  //
   338  // Use "Send" method on the returned Request to send the API call to the service.
   339  // the "output" return value is not valid until after Send returns without error.
   340  //
   341  // See BatchWriteItem for more information on using the BatchWriteItem
   342  // API call, and error handling.
   343  //
   344  // This method is useful when you want to inject custom logic or configuration
   345  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   346  //
   347  //
   348  //    // Example sending a request using the BatchWriteItemRequest method.
   349  //    req, resp := client.BatchWriteItemRequest(params)
   350  //
   351  //    err := req.Send()
   352  //    if err == nil { // resp is now filled
   353  //        fmt.Println(resp)
   354  //    }
   355  //
   356  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/BatchWriteItem
   357  func (c *DynamoDB) BatchWriteItemRequest(input *BatchWriteItemInput) (req *request.Request, output *BatchWriteItemOutput) {
   358  	op := &request.Operation{
   359  		Name:       opBatchWriteItem,
   360  		HTTPMethod: "POST",
   361  		HTTPPath:   "/",
   362  	}
   363  
   364  	if input == nil {
   365  		input = &BatchWriteItemInput{}
   366  	}
   367  
   368  	output = &BatchWriteItemOutput{}
   369  	req = c.newRequest(op, input, output)
   370  	// if custom endpoint for the request is set to a non empty string,
   371  	// we skip the endpoint discovery workflow.
   372  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
   373  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
   374  			de := discovererDescribeEndpoints{
   375  				Required:      false,
   376  				EndpointCache: c.endpointCache,
   377  				Params: map[string]*string{
   378  					"op": aws.String(req.Operation.Name),
   379  				},
   380  				Client: c,
   381  			}
   382  
   383  			for k, v := range de.Params {
   384  				if v == nil {
   385  					delete(de.Params, k)
   386  				}
   387  			}
   388  
   389  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
   390  				Name: "crr.endpointdiscovery",
   391  				Fn:   de.Handler,
   392  			})
   393  		}
   394  	}
   395  	return
   396  }
   397  
   398  // BatchWriteItem API operation for Amazon DynamoDB.
   399  //
   400  // The BatchWriteItem operation puts or deletes multiple items in one or more
   401  // tables. A single call to BatchWriteItem can write up to 16 MB of data, which
   402  // can comprise as many as 25 put or delete requests. Individual items to be
   403  // written can be as large as 400 KB.
   404  //
   405  // BatchWriteItem cannot update items. To update items, use the UpdateItem action.
   406  //
   407  // The individual PutItem and DeleteItem operations specified in BatchWriteItem
   408  // are atomic; however BatchWriteItem as a whole is not. If any requested operations
   409  // fail because the table's provisioned throughput is exceeded or an internal
   410  // processing failure occurs, the failed operations are returned in the UnprocessedItems
   411  // response parameter. You can investigate and optionally resend the requests.
   412  // Typically, you would call BatchWriteItem in a loop. Each iteration would
   413  // check for unprocessed items and submit a new BatchWriteItem request with
   414  // those unprocessed items until all items have been processed.
   415  //
   416  // If none of the items can be processed due to insufficient provisioned throughput
   417  // on all of the tables in the request, then BatchWriteItem returns a ProvisionedThroughputExceededException.
   418  //
   419  // If DynamoDB returns any unprocessed items, you should retry the batch operation
   420  // on those items. However, we strongly recommend that you use an exponential
   421  // backoff algorithm. If you retry the batch operation immediately, the underlying
   422  // read or write requests can still fail due to throttling on the individual
   423  // tables. If you delay the batch operation using exponential backoff, the individual
   424  // requests in the batch are much more likely to succeed.
   425  //
   426  // For more information, see Batch Operations and Error Handling (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ErrorHandling.html#Programming.Errors.BatchOperations)
   427  // in the Amazon DynamoDB Developer Guide.
   428  //
   429  // With BatchWriteItem, you can efficiently write or delete large amounts of
   430  // data, such as from Amazon EMR, or copy data from another database into DynamoDB.
   431  // In order to improve performance with these large-scale operations, BatchWriteItem
   432  // does not behave in the same way as individual PutItem and DeleteItem calls
   433  // would. For example, you cannot specify conditions on individual put and delete
   434  // requests, and BatchWriteItem does not return deleted items in the response.
   435  //
   436  // If you use a programming language that supports concurrency, you can use
   437  // threads to write items in parallel. Your application must include the necessary
   438  // logic to manage the threads. With languages that don't support threading,
   439  // you must update or delete the specified items one at a time. In both situations,
   440  // BatchWriteItem performs the specified put and delete operations in parallel,
   441  // giving you the power of the thread pool approach without having to introduce
   442  // complexity into your application.
   443  //
   444  // Parallel processing reduces latency, but each specified put and delete request
   445  // consumes the same number of write capacity units whether it is processed
   446  // in parallel or not. Delete operations on nonexistent items consume one write
   447  // capacity unit.
   448  //
   449  // If one or more of the following is true, DynamoDB rejects the entire batch
   450  // write operation:
   451  //
   452  //    * One or more tables specified in the BatchWriteItem request does not
   453  //    exist.
   454  //
   455  //    * Primary key attributes specified on an item in the request do not match
   456  //    those in the corresponding table's primary key schema.
   457  //
   458  //    * You try to perform multiple operations on the same item in the same
   459  //    BatchWriteItem request. For example, you cannot put and delete the same
   460  //    item in the same BatchWriteItem request.
   461  //
   462  //    * Your request contains at least two items with identical hash and range
   463  //    keys (which essentially is two put operations).
   464  //
   465  //    * There are more than 25 requests in the batch.
   466  //
   467  //    * Any individual item in a batch exceeds 400 KB.
   468  //
   469  //    * The total request size exceeds 16 MB.
   470  //
   471  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   472  // with awserr.Error's Code and Message methods to get detailed information about
   473  // the error.
   474  //
   475  // See the AWS API reference guide for Amazon DynamoDB's
   476  // API operation BatchWriteItem for usage and error information.
   477  //
   478  // Returned Error Types:
   479  //   * ProvisionedThroughputExceededException
   480  //   Your request rate is too high. The AWS SDKs for DynamoDB automatically retry
   481  //   requests that receive this exception. Your request is eventually successful,
   482  //   unless your retry queue is too large to finish. Reduce the frequency of requests
   483  //   and use exponential backoff. For more information, go to Error Retries and
   484  //   Exponential Backoff (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.RetryAndBackoff)
   485  //   in the Amazon DynamoDB Developer Guide.
   486  //
   487  //   * ResourceNotFoundException
   488  //   The operation tried to access a nonexistent table or index. The resource
   489  //   might not be specified correctly, or its status might not be ACTIVE.
   490  //
   491  //   * ItemCollectionSizeLimitExceededException
   492  //   An item collection is too large. This exception is only returned for tables
   493  //   that have one or more local secondary indexes.
   494  //
   495  //   * RequestLimitExceeded
   496  //   Throughput exceeds the current throughput quota for your account. Please
   497  //   contact AWS Support at AWS Support (https://aws.amazon.com/support) to request
   498  //   a quota increase.
   499  //
   500  //   * InternalServerError
   501  //   An error occurred on the server side.
   502  //
   503  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/BatchWriteItem
   504  func (c *DynamoDB) BatchWriteItem(input *BatchWriteItemInput) (*BatchWriteItemOutput, error) {
   505  	req, out := c.BatchWriteItemRequest(input)
   506  	return out, req.Send()
   507  }
   508  
   509  // BatchWriteItemWithContext is the same as BatchWriteItem with the addition of
   510  // the ability to pass a context and additional request options.
   511  //
   512  // See BatchWriteItem for details on how to use this API operation.
   513  //
   514  // The context must be non-nil and will be used for request cancellation. If
   515  // the context is nil a panic will occur. In the future the SDK may create
   516  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   517  // for more information on using Contexts.
   518  func (c *DynamoDB) BatchWriteItemWithContext(ctx aws.Context, input *BatchWriteItemInput, opts ...request.Option) (*BatchWriteItemOutput, error) {
   519  	req, out := c.BatchWriteItemRequest(input)
   520  	req.SetContext(ctx)
   521  	req.ApplyOptions(opts...)
   522  	return out, req.Send()
   523  }
   524  
   525  const opCreateBackup = "CreateBackup"
   526  
   527  // CreateBackupRequest generates a "aws/request.Request" representing the
   528  // client's request for the CreateBackup operation. The "output" return
   529  // value will be populated with the request's response once the request completes
   530  // successfully.
   531  //
   532  // Use "Send" method on the returned Request to send the API call to the service.
   533  // the "output" return value is not valid until after Send returns without error.
   534  //
   535  // See CreateBackup for more information on using the CreateBackup
   536  // API call, and error handling.
   537  //
   538  // This method is useful when you want to inject custom logic or configuration
   539  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   540  //
   541  //
   542  //    // Example sending a request using the CreateBackupRequest method.
   543  //    req, resp := client.CreateBackupRequest(params)
   544  //
   545  //    err := req.Send()
   546  //    if err == nil { // resp is now filled
   547  //        fmt.Println(resp)
   548  //    }
   549  //
   550  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/CreateBackup
   551  func (c *DynamoDB) CreateBackupRequest(input *CreateBackupInput) (req *request.Request, output *CreateBackupOutput) {
   552  	op := &request.Operation{
   553  		Name:       opCreateBackup,
   554  		HTTPMethod: "POST",
   555  		HTTPPath:   "/",
   556  	}
   557  
   558  	if input == nil {
   559  		input = &CreateBackupInput{}
   560  	}
   561  
   562  	output = &CreateBackupOutput{}
   563  	req = c.newRequest(op, input, output)
   564  	// if custom endpoint for the request is set to a non empty string,
   565  	// we skip the endpoint discovery workflow.
   566  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
   567  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
   568  			de := discovererDescribeEndpoints{
   569  				Required:      false,
   570  				EndpointCache: c.endpointCache,
   571  				Params: map[string]*string{
   572  					"op": aws.String(req.Operation.Name),
   573  				},
   574  				Client: c,
   575  			}
   576  
   577  			for k, v := range de.Params {
   578  				if v == nil {
   579  					delete(de.Params, k)
   580  				}
   581  			}
   582  
   583  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
   584  				Name: "crr.endpointdiscovery",
   585  				Fn:   de.Handler,
   586  			})
   587  		}
   588  	}
   589  	return
   590  }
   591  
   592  // CreateBackup API operation for Amazon DynamoDB.
   593  //
   594  // Creates a backup for an existing table.
   595  //
   596  // Each time you create an on-demand backup, the entire table data is backed
   597  // up. There is no limit to the number of on-demand backups that can be taken.
   598  //
   599  // When you create an on-demand backup, a time marker of the request is cataloged,
   600  // and the backup is created asynchronously, by applying all changes until the
   601  // time of the request to the last full table snapshot. Backup requests are
   602  // processed instantaneously and become available for restore within minutes.
   603  //
   604  // You can call CreateBackup at a maximum rate of 50 times per second.
   605  //
   606  // All backups in DynamoDB work without consuming any provisioned throughput
   607  // on the table.
   608  //
   609  // If you submit a backup request on 2018-12-14 at 14:25:00, the backup is guaranteed
   610  // to contain all data committed to the table up to 14:24:00, and data committed
   611  // after 14:26:00 will not be. The backup might contain data modifications made
   612  // between 14:24:00 and 14:26:00. On-demand backup does not support causal consistency.
   613  //
   614  // Along with data, the following are also included on the backups:
   615  //
   616  //    * Global secondary indexes (GSIs)
   617  //
   618  //    * Local secondary indexes (LSIs)
   619  //
   620  //    * Streams
   621  //
   622  //    * Provisioned read and write capacity
   623  //
   624  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   625  // with awserr.Error's Code and Message methods to get detailed information about
   626  // the error.
   627  //
   628  // See the AWS API reference guide for Amazon DynamoDB's
   629  // API operation CreateBackup for usage and error information.
   630  //
   631  // Returned Error Types:
   632  //   * TableNotFoundException
   633  //   A source table with the name TableName does not currently exist within the
   634  //   subscriber's account.
   635  //
   636  //   * TableInUseException
   637  //   A target table with the specified name is either being created or deleted.
   638  //
   639  //   * ContinuousBackupsUnavailableException
   640  //   Backups have not yet been enabled for this table.
   641  //
   642  //   * BackupInUseException
   643  //   There is another ongoing conflicting backup control plane operation on the
   644  //   table. The backup is either being created, deleted or restored to a table.
   645  //
   646  //   * LimitExceededException
   647  //   There is no limit to the number of daily on-demand backups that can be taken.
   648  //
   649  //   Up to 50 simultaneous table operations are allowed per account. These operations
   650  //   include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup,
   651  //   and RestoreTableToPointInTime.
   652  //
   653  //   The only exception is when you are creating a table with one or more secondary
   654  //   indexes. You can have up to 25 such requests running at a time; however,
   655  //   if the table or index specifications are complex, DynamoDB might temporarily
   656  //   reduce the number of concurrent operations.
   657  //
   658  //   There is a soft account quota of 256 tables.
   659  //
   660  //   * InternalServerError
   661  //   An error occurred on the server side.
   662  //
   663  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/CreateBackup
   664  func (c *DynamoDB) CreateBackup(input *CreateBackupInput) (*CreateBackupOutput, error) {
   665  	req, out := c.CreateBackupRequest(input)
   666  	return out, req.Send()
   667  }
   668  
   669  // CreateBackupWithContext is the same as CreateBackup with the addition of
   670  // the ability to pass a context and additional request options.
   671  //
   672  // See CreateBackup for details on how to use this API operation.
   673  //
   674  // The context must be non-nil and will be used for request cancellation. If
   675  // the context is nil a panic will occur. In the future the SDK may create
   676  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   677  // for more information on using Contexts.
   678  func (c *DynamoDB) CreateBackupWithContext(ctx aws.Context, input *CreateBackupInput, opts ...request.Option) (*CreateBackupOutput, error) {
   679  	req, out := c.CreateBackupRequest(input)
   680  	req.SetContext(ctx)
   681  	req.ApplyOptions(opts...)
   682  	return out, req.Send()
   683  }
   684  
   685  const opCreateGlobalTable = "CreateGlobalTable"
   686  
   687  // CreateGlobalTableRequest generates a "aws/request.Request" representing the
   688  // client's request for the CreateGlobalTable operation. The "output" return
   689  // value will be populated with the request's response once the request completes
   690  // successfully.
   691  //
   692  // Use "Send" method on the returned Request to send the API call to the service.
   693  // the "output" return value is not valid until after Send returns without error.
   694  //
   695  // See CreateGlobalTable for more information on using the CreateGlobalTable
   696  // API call, and error handling.
   697  //
   698  // This method is useful when you want to inject custom logic or configuration
   699  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   700  //
   701  //
   702  //    // Example sending a request using the CreateGlobalTableRequest method.
   703  //    req, resp := client.CreateGlobalTableRequest(params)
   704  //
   705  //    err := req.Send()
   706  //    if err == nil { // resp is now filled
   707  //        fmt.Println(resp)
   708  //    }
   709  //
   710  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/CreateGlobalTable
   711  func (c *DynamoDB) CreateGlobalTableRequest(input *CreateGlobalTableInput) (req *request.Request, output *CreateGlobalTableOutput) {
   712  	op := &request.Operation{
   713  		Name:       opCreateGlobalTable,
   714  		HTTPMethod: "POST",
   715  		HTTPPath:   "/",
   716  	}
   717  
   718  	if input == nil {
   719  		input = &CreateGlobalTableInput{}
   720  	}
   721  
   722  	output = &CreateGlobalTableOutput{}
   723  	req = c.newRequest(op, input, output)
   724  	// if custom endpoint for the request is set to a non empty string,
   725  	// we skip the endpoint discovery workflow.
   726  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
   727  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
   728  			de := discovererDescribeEndpoints{
   729  				Required:      false,
   730  				EndpointCache: c.endpointCache,
   731  				Params: map[string]*string{
   732  					"op": aws.String(req.Operation.Name),
   733  				},
   734  				Client: c,
   735  			}
   736  
   737  			for k, v := range de.Params {
   738  				if v == nil {
   739  					delete(de.Params, k)
   740  				}
   741  			}
   742  
   743  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
   744  				Name: "crr.endpointdiscovery",
   745  				Fn:   de.Handler,
   746  			})
   747  		}
   748  	}
   749  	return
   750  }
   751  
   752  // CreateGlobalTable API operation for Amazon DynamoDB.
   753  //
   754  // Creates a global table from an existing table. A global table creates a replication
   755  // relationship between two or more DynamoDB tables with the same table name
   756  // in the provided Regions.
   757  //
   758  // This operation only applies to Version 2017.11.29 (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V1.html)
   759  // of global tables.
   760  //
   761  // If you want to add a new replica table to a global table, each of the following
   762  // conditions must be true:
   763  //
   764  //    * The table must have the same primary key as all of the other replicas.
   765  //
   766  //    * The table must have the same name as all of the other replicas.
   767  //
   768  //    * The table must have DynamoDB Streams enabled, with the stream containing
   769  //    both the new and the old images of the item.
   770  //
   771  //    * None of the replica tables in the global table can contain any data.
   772  //
   773  // If global secondary indexes are specified, then the following conditions
   774  // must also be met:
   775  //
   776  //    * The global secondary indexes must have the same name.
   777  //
   778  //    * The global secondary indexes must have the same hash key and sort key
   779  //    (if present).
   780  //
   781  // If local secondary indexes are specified, then the following conditions must
   782  // also be met:
   783  //
   784  //    * The local secondary indexes must have the same name.
   785  //
   786  //    * The local secondary indexes must have the same hash key and sort key
   787  //    (if present).
   788  //
   789  // Write capacity settings should be set consistently across your replica tables
   790  // and secondary indexes. DynamoDB strongly recommends enabling auto scaling
   791  // to manage the write capacity settings for all of your global tables replicas
   792  // and indexes.
   793  //
   794  // If you prefer to manage write capacity settings manually, you should provision
   795  // equal replicated write capacity units to your replica tables. You should
   796  // also provision equal replicated write capacity units to matching secondary
   797  // indexes across your global table.
   798  //
   799  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   800  // with awserr.Error's Code and Message methods to get detailed information about
   801  // the error.
   802  //
   803  // See the AWS API reference guide for Amazon DynamoDB's
   804  // API operation CreateGlobalTable for usage and error information.
   805  //
   806  // Returned Error Types:
   807  //   * LimitExceededException
   808  //   There is no limit to the number of daily on-demand backups that can be taken.
   809  //
   810  //   Up to 50 simultaneous table operations are allowed per account. These operations
   811  //   include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup,
   812  //   and RestoreTableToPointInTime.
   813  //
   814  //   The only exception is when you are creating a table with one or more secondary
   815  //   indexes. You can have up to 25 such requests running at a time; however,
   816  //   if the table or index specifications are complex, DynamoDB might temporarily
   817  //   reduce the number of concurrent operations.
   818  //
   819  //   There is a soft account quota of 256 tables.
   820  //
   821  //   * InternalServerError
   822  //   An error occurred on the server side.
   823  //
   824  //   * GlobalTableAlreadyExistsException
   825  //   The specified global table already exists.
   826  //
   827  //   * TableNotFoundException
   828  //   A source table with the name TableName does not currently exist within the
   829  //   subscriber's account.
   830  //
   831  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/CreateGlobalTable
   832  func (c *DynamoDB) CreateGlobalTable(input *CreateGlobalTableInput) (*CreateGlobalTableOutput, error) {
   833  	req, out := c.CreateGlobalTableRequest(input)
   834  	return out, req.Send()
   835  }
   836  
   837  // CreateGlobalTableWithContext is the same as CreateGlobalTable with the addition of
   838  // the ability to pass a context and additional request options.
   839  //
   840  // See CreateGlobalTable for details on how to use this API operation.
   841  //
   842  // The context must be non-nil and will be used for request cancellation. If
   843  // the context is nil a panic will occur. In the future the SDK may create
   844  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   845  // for more information on using Contexts.
   846  func (c *DynamoDB) CreateGlobalTableWithContext(ctx aws.Context, input *CreateGlobalTableInput, opts ...request.Option) (*CreateGlobalTableOutput, error) {
   847  	req, out := c.CreateGlobalTableRequest(input)
   848  	req.SetContext(ctx)
   849  	req.ApplyOptions(opts...)
   850  	return out, req.Send()
   851  }
   852  
   853  const opCreateTable = "CreateTable"
   854  
   855  // CreateTableRequest generates a "aws/request.Request" representing the
   856  // client's request for the CreateTable operation. The "output" return
   857  // value will be populated with the request's response once the request completes
   858  // successfully.
   859  //
   860  // Use "Send" method on the returned Request to send the API call to the service.
   861  // the "output" return value is not valid until after Send returns without error.
   862  //
   863  // See CreateTable for more information on using the CreateTable
   864  // API call, and error handling.
   865  //
   866  // This method is useful when you want to inject custom logic or configuration
   867  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   868  //
   869  //
   870  //    // Example sending a request using the CreateTableRequest method.
   871  //    req, resp := client.CreateTableRequest(params)
   872  //
   873  //    err := req.Send()
   874  //    if err == nil { // resp is now filled
   875  //        fmt.Println(resp)
   876  //    }
   877  //
   878  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/CreateTable
   879  func (c *DynamoDB) CreateTableRequest(input *CreateTableInput) (req *request.Request, output *CreateTableOutput) {
   880  	op := &request.Operation{
   881  		Name:       opCreateTable,
   882  		HTTPMethod: "POST",
   883  		HTTPPath:   "/",
   884  	}
   885  
   886  	if input == nil {
   887  		input = &CreateTableInput{}
   888  	}
   889  
   890  	output = &CreateTableOutput{}
   891  	req = c.newRequest(op, input, output)
   892  	// if custom endpoint for the request is set to a non empty string,
   893  	// we skip the endpoint discovery workflow.
   894  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
   895  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
   896  			de := discovererDescribeEndpoints{
   897  				Required:      false,
   898  				EndpointCache: c.endpointCache,
   899  				Params: map[string]*string{
   900  					"op": aws.String(req.Operation.Name),
   901  				},
   902  				Client: c,
   903  			}
   904  
   905  			for k, v := range de.Params {
   906  				if v == nil {
   907  					delete(de.Params, k)
   908  				}
   909  			}
   910  
   911  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
   912  				Name: "crr.endpointdiscovery",
   913  				Fn:   de.Handler,
   914  			})
   915  		}
   916  	}
   917  	return
   918  }
   919  
   920  // CreateTable API operation for Amazon DynamoDB.
   921  //
   922  // The CreateTable operation adds a new table to your account. In an AWS account,
   923  // table names must be unique within each Region. That is, you can have two
   924  // tables with same name if you create the tables in different Regions.
   925  //
   926  // CreateTable is an asynchronous operation. Upon receiving a CreateTable request,
   927  // DynamoDB immediately returns a response with a TableStatus of CREATING. After
   928  // the table is created, DynamoDB sets the TableStatus to ACTIVE. You can perform
   929  // read and write operations only on an ACTIVE table.
   930  //
   931  // You can optionally define secondary indexes on the new table, as part of
   932  // the CreateTable operation. If you want to create multiple tables with secondary
   933  // indexes on them, you must create the tables sequentially. Only one table
   934  // with secondary indexes can be in the CREATING state at any given time.
   935  //
   936  // You can use the DescribeTable action to check the table status.
   937  //
   938  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   939  // with awserr.Error's Code and Message methods to get detailed information about
   940  // the error.
   941  //
   942  // See the AWS API reference guide for Amazon DynamoDB's
   943  // API operation CreateTable for usage and error information.
   944  //
   945  // Returned Error Types:
   946  //   * ResourceInUseException
   947  //   The operation conflicts with the resource's availability. For example, you
   948  //   attempted to recreate an existing table, or tried to delete a table currently
   949  //   in the CREATING state.
   950  //
   951  //   * LimitExceededException
   952  //   There is no limit to the number of daily on-demand backups that can be taken.
   953  //
   954  //   Up to 50 simultaneous table operations are allowed per account. These operations
   955  //   include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup,
   956  //   and RestoreTableToPointInTime.
   957  //
   958  //   The only exception is when you are creating a table with one or more secondary
   959  //   indexes. You can have up to 25 such requests running at a time; however,
   960  //   if the table or index specifications are complex, DynamoDB might temporarily
   961  //   reduce the number of concurrent operations.
   962  //
   963  //   There is a soft account quota of 256 tables.
   964  //
   965  //   * InternalServerError
   966  //   An error occurred on the server side.
   967  //
   968  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/CreateTable
   969  func (c *DynamoDB) CreateTable(input *CreateTableInput) (*CreateTableOutput, error) {
   970  	req, out := c.CreateTableRequest(input)
   971  	return out, req.Send()
   972  }
   973  
   974  // CreateTableWithContext is the same as CreateTable with the addition of
   975  // the ability to pass a context and additional request options.
   976  //
   977  // See CreateTable for details on how to use this API operation.
   978  //
   979  // The context must be non-nil and will be used for request cancellation. If
   980  // the context is nil a panic will occur. In the future the SDK may create
   981  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   982  // for more information on using Contexts.
   983  func (c *DynamoDB) CreateTableWithContext(ctx aws.Context, input *CreateTableInput, opts ...request.Option) (*CreateTableOutput, error) {
   984  	req, out := c.CreateTableRequest(input)
   985  	req.SetContext(ctx)
   986  	req.ApplyOptions(opts...)
   987  	return out, req.Send()
   988  }
   989  
   990  const opDeleteBackup = "DeleteBackup"
   991  
   992  // DeleteBackupRequest generates a "aws/request.Request" representing the
   993  // client's request for the DeleteBackup operation. The "output" return
   994  // value will be populated with the request's response once the request completes
   995  // successfully.
   996  //
   997  // Use "Send" method on the returned Request to send the API call to the service.
   998  // the "output" return value is not valid until after Send returns without error.
   999  //
  1000  // See DeleteBackup for more information on using the DeleteBackup
  1001  // API call, and error handling.
  1002  //
  1003  // This method is useful when you want to inject custom logic or configuration
  1004  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1005  //
  1006  //
  1007  //    // Example sending a request using the DeleteBackupRequest method.
  1008  //    req, resp := client.DeleteBackupRequest(params)
  1009  //
  1010  //    err := req.Send()
  1011  //    if err == nil { // resp is now filled
  1012  //        fmt.Println(resp)
  1013  //    }
  1014  //
  1015  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DeleteBackup
  1016  func (c *DynamoDB) DeleteBackupRequest(input *DeleteBackupInput) (req *request.Request, output *DeleteBackupOutput) {
  1017  	op := &request.Operation{
  1018  		Name:       opDeleteBackup,
  1019  		HTTPMethod: "POST",
  1020  		HTTPPath:   "/",
  1021  	}
  1022  
  1023  	if input == nil {
  1024  		input = &DeleteBackupInput{}
  1025  	}
  1026  
  1027  	output = &DeleteBackupOutput{}
  1028  	req = c.newRequest(op, input, output)
  1029  	// if custom endpoint for the request is set to a non empty string,
  1030  	// we skip the endpoint discovery workflow.
  1031  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  1032  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  1033  			de := discovererDescribeEndpoints{
  1034  				Required:      false,
  1035  				EndpointCache: c.endpointCache,
  1036  				Params: map[string]*string{
  1037  					"op": aws.String(req.Operation.Name),
  1038  				},
  1039  				Client: c,
  1040  			}
  1041  
  1042  			for k, v := range de.Params {
  1043  				if v == nil {
  1044  					delete(de.Params, k)
  1045  				}
  1046  			}
  1047  
  1048  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  1049  				Name: "crr.endpointdiscovery",
  1050  				Fn:   de.Handler,
  1051  			})
  1052  		}
  1053  	}
  1054  	return
  1055  }
  1056  
  1057  // DeleteBackup API operation for Amazon DynamoDB.
  1058  //
  1059  // Deletes an existing backup of a table.
  1060  //
  1061  // You can call DeleteBackup at a maximum rate of 10 times per second.
  1062  //
  1063  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1064  // with awserr.Error's Code and Message methods to get detailed information about
  1065  // the error.
  1066  //
  1067  // See the AWS API reference guide for Amazon DynamoDB's
  1068  // API operation DeleteBackup for usage and error information.
  1069  //
  1070  // Returned Error Types:
  1071  //   * BackupNotFoundException
  1072  //   Backup not found for the given BackupARN.
  1073  //
  1074  //   * BackupInUseException
  1075  //   There is another ongoing conflicting backup control plane operation on the
  1076  //   table. The backup is either being created, deleted or restored to a table.
  1077  //
  1078  //   * LimitExceededException
  1079  //   There is no limit to the number of daily on-demand backups that can be taken.
  1080  //
  1081  //   Up to 50 simultaneous table operations are allowed per account. These operations
  1082  //   include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup,
  1083  //   and RestoreTableToPointInTime.
  1084  //
  1085  //   The only exception is when you are creating a table with one or more secondary
  1086  //   indexes. You can have up to 25 such requests running at a time; however,
  1087  //   if the table or index specifications are complex, DynamoDB might temporarily
  1088  //   reduce the number of concurrent operations.
  1089  //
  1090  //   There is a soft account quota of 256 tables.
  1091  //
  1092  //   * InternalServerError
  1093  //   An error occurred on the server side.
  1094  //
  1095  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DeleteBackup
  1096  func (c *DynamoDB) DeleteBackup(input *DeleteBackupInput) (*DeleteBackupOutput, error) {
  1097  	req, out := c.DeleteBackupRequest(input)
  1098  	return out, req.Send()
  1099  }
  1100  
  1101  // DeleteBackupWithContext is the same as DeleteBackup with the addition of
  1102  // the ability to pass a context and additional request options.
  1103  //
  1104  // See DeleteBackup for details on how to use this API operation.
  1105  //
  1106  // The context must be non-nil and will be used for request cancellation. If
  1107  // the context is nil a panic will occur. In the future the SDK may create
  1108  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1109  // for more information on using Contexts.
  1110  func (c *DynamoDB) DeleteBackupWithContext(ctx aws.Context, input *DeleteBackupInput, opts ...request.Option) (*DeleteBackupOutput, error) {
  1111  	req, out := c.DeleteBackupRequest(input)
  1112  	req.SetContext(ctx)
  1113  	req.ApplyOptions(opts...)
  1114  	return out, req.Send()
  1115  }
  1116  
  1117  const opDeleteItem = "DeleteItem"
  1118  
  1119  // DeleteItemRequest generates a "aws/request.Request" representing the
  1120  // client's request for the DeleteItem operation. The "output" return
  1121  // value will be populated with the request's response once the request completes
  1122  // successfully.
  1123  //
  1124  // Use "Send" method on the returned Request to send the API call to the service.
  1125  // the "output" return value is not valid until after Send returns without error.
  1126  //
  1127  // See DeleteItem for more information on using the DeleteItem
  1128  // API call, and error handling.
  1129  //
  1130  // This method is useful when you want to inject custom logic or configuration
  1131  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1132  //
  1133  //
  1134  //    // Example sending a request using the DeleteItemRequest method.
  1135  //    req, resp := client.DeleteItemRequest(params)
  1136  //
  1137  //    err := req.Send()
  1138  //    if err == nil { // resp is now filled
  1139  //        fmt.Println(resp)
  1140  //    }
  1141  //
  1142  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DeleteItem
  1143  func (c *DynamoDB) DeleteItemRequest(input *DeleteItemInput) (req *request.Request, output *DeleteItemOutput) {
  1144  	op := &request.Operation{
  1145  		Name:       opDeleteItem,
  1146  		HTTPMethod: "POST",
  1147  		HTTPPath:   "/",
  1148  	}
  1149  
  1150  	if input == nil {
  1151  		input = &DeleteItemInput{}
  1152  	}
  1153  
  1154  	output = &DeleteItemOutput{}
  1155  	req = c.newRequest(op, input, output)
  1156  	// if custom endpoint for the request is set to a non empty string,
  1157  	// we skip the endpoint discovery workflow.
  1158  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  1159  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  1160  			de := discovererDescribeEndpoints{
  1161  				Required:      false,
  1162  				EndpointCache: c.endpointCache,
  1163  				Params: map[string]*string{
  1164  					"op": aws.String(req.Operation.Name),
  1165  				},
  1166  				Client: c,
  1167  			}
  1168  
  1169  			for k, v := range de.Params {
  1170  				if v == nil {
  1171  					delete(de.Params, k)
  1172  				}
  1173  			}
  1174  
  1175  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  1176  				Name: "crr.endpointdiscovery",
  1177  				Fn:   de.Handler,
  1178  			})
  1179  		}
  1180  	}
  1181  	return
  1182  }
  1183  
  1184  // DeleteItem API operation for Amazon DynamoDB.
  1185  //
  1186  // Deletes a single item in a table by primary key. You can perform a conditional
  1187  // delete operation that deletes the item if it exists, or if it has an expected
  1188  // attribute value.
  1189  //
  1190  // In addition to deleting an item, you can also return the item's attribute
  1191  // values in the same operation, using the ReturnValues parameter.
  1192  //
  1193  // Unless you specify conditions, the DeleteItem is an idempotent operation;
  1194  // running it multiple times on the same item or attribute does not result in
  1195  // an error response.
  1196  //
  1197  // Conditional deletes are useful for deleting items only if specific conditions
  1198  // are met. If those conditions are met, DynamoDB performs the delete. Otherwise,
  1199  // the item is not deleted.
  1200  //
  1201  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1202  // with awserr.Error's Code and Message methods to get detailed information about
  1203  // the error.
  1204  //
  1205  // See the AWS API reference guide for Amazon DynamoDB's
  1206  // API operation DeleteItem for usage and error information.
  1207  //
  1208  // Returned Error Types:
  1209  //   * ConditionalCheckFailedException
  1210  //   A condition specified in the operation could not be evaluated.
  1211  //
  1212  //   * ProvisionedThroughputExceededException
  1213  //   Your request rate is too high. The AWS SDKs for DynamoDB automatically retry
  1214  //   requests that receive this exception. Your request is eventually successful,
  1215  //   unless your retry queue is too large to finish. Reduce the frequency of requests
  1216  //   and use exponential backoff. For more information, go to Error Retries and
  1217  //   Exponential Backoff (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.RetryAndBackoff)
  1218  //   in the Amazon DynamoDB Developer Guide.
  1219  //
  1220  //   * ResourceNotFoundException
  1221  //   The operation tried to access a nonexistent table or index. The resource
  1222  //   might not be specified correctly, or its status might not be ACTIVE.
  1223  //
  1224  //   * ItemCollectionSizeLimitExceededException
  1225  //   An item collection is too large. This exception is only returned for tables
  1226  //   that have one or more local secondary indexes.
  1227  //
  1228  //   * TransactionConflictException
  1229  //   Operation was rejected because there is an ongoing transaction for the item.
  1230  //
  1231  //   * RequestLimitExceeded
  1232  //   Throughput exceeds the current throughput quota for your account. Please
  1233  //   contact AWS Support at AWS Support (https://aws.amazon.com/support) to request
  1234  //   a quota increase.
  1235  //
  1236  //   * InternalServerError
  1237  //   An error occurred on the server side.
  1238  //
  1239  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DeleteItem
  1240  func (c *DynamoDB) DeleteItem(input *DeleteItemInput) (*DeleteItemOutput, error) {
  1241  	req, out := c.DeleteItemRequest(input)
  1242  	return out, req.Send()
  1243  }
  1244  
  1245  // DeleteItemWithContext is the same as DeleteItem with the addition of
  1246  // the ability to pass a context and additional request options.
  1247  //
  1248  // See DeleteItem for details on how to use this API operation.
  1249  //
  1250  // The context must be non-nil and will be used for request cancellation. If
  1251  // the context is nil a panic will occur. In the future the SDK may create
  1252  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1253  // for more information on using Contexts.
  1254  func (c *DynamoDB) DeleteItemWithContext(ctx aws.Context, input *DeleteItemInput, opts ...request.Option) (*DeleteItemOutput, error) {
  1255  	req, out := c.DeleteItemRequest(input)
  1256  	req.SetContext(ctx)
  1257  	req.ApplyOptions(opts...)
  1258  	return out, req.Send()
  1259  }
  1260  
  1261  const opDeleteTable = "DeleteTable"
  1262  
  1263  // DeleteTableRequest generates a "aws/request.Request" representing the
  1264  // client's request for the DeleteTable operation. The "output" return
  1265  // value will be populated with the request's response once the request completes
  1266  // successfully.
  1267  //
  1268  // Use "Send" method on the returned Request to send the API call to the service.
  1269  // the "output" return value is not valid until after Send returns without error.
  1270  //
  1271  // See DeleteTable for more information on using the DeleteTable
  1272  // API call, and error handling.
  1273  //
  1274  // This method is useful when you want to inject custom logic or configuration
  1275  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1276  //
  1277  //
  1278  //    // Example sending a request using the DeleteTableRequest method.
  1279  //    req, resp := client.DeleteTableRequest(params)
  1280  //
  1281  //    err := req.Send()
  1282  //    if err == nil { // resp is now filled
  1283  //        fmt.Println(resp)
  1284  //    }
  1285  //
  1286  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DeleteTable
  1287  func (c *DynamoDB) DeleteTableRequest(input *DeleteTableInput) (req *request.Request, output *DeleteTableOutput) {
  1288  	op := &request.Operation{
  1289  		Name:       opDeleteTable,
  1290  		HTTPMethod: "POST",
  1291  		HTTPPath:   "/",
  1292  	}
  1293  
  1294  	if input == nil {
  1295  		input = &DeleteTableInput{}
  1296  	}
  1297  
  1298  	output = &DeleteTableOutput{}
  1299  	req = c.newRequest(op, input, output)
  1300  	// if custom endpoint for the request is set to a non empty string,
  1301  	// we skip the endpoint discovery workflow.
  1302  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  1303  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  1304  			de := discovererDescribeEndpoints{
  1305  				Required:      false,
  1306  				EndpointCache: c.endpointCache,
  1307  				Params: map[string]*string{
  1308  					"op": aws.String(req.Operation.Name),
  1309  				},
  1310  				Client: c,
  1311  			}
  1312  
  1313  			for k, v := range de.Params {
  1314  				if v == nil {
  1315  					delete(de.Params, k)
  1316  				}
  1317  			}
  1318  
  1319  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  1320  				Name: "crr.endpointdiscovery",
  1321  				Fn:   de.Handler,
  1322  			})
  1323  		}
  1324  	}
  1325  	return
  1326  }
  1327  
  1328  // DeleteTable API operation for Amazon DynamoDB.
  1329  //
  1330  // The DeleteTable operation deletes a table and all of its items. After a DeleteTable
  1331  // request, the specified table is in the DELETING state until DynamoDB completes
  1332  // the deletion. If the table is in the ACTIVE state, you can delete it. If
  1333  // a table is in CREATING or UPDATING states, then DynamoDB returns a ResourceInUseException.
  1334  // If the specified table does not exist, DynamoDB returns a ResourceNotFoundException.
  1335  // If table is already in the DELETING state, no error is returned.
  1336  //
  1337  // DynamoDB might continue to accept data read and write operations, such as
  1338  // GetItem and PutItem, on a table in the DELETING state until the table deletion
  1339  // is complete.
  1340  //
  1341  // When you delete a table, any indexes on that table are also deleted.
  1342  //
  1343  // If you have DynamoDB Streams enabled on the table, then the corresponding
  1344  // stream on that table goes into the DISABLED state, and the stream is automatically
  1345  // deleted after 24 hours.
  1346  //
  1347  // Use the DescribeTable action to check the status of the table.
  1348  //
  1349  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1350  // with awserr.Error's Code and Message methods to get detailed information about
  1351  // the error.
  1352  //
  1353  // See the AWS API reference guide for Amazon DynamoDB's
  1354  // API operation DeleteTable for usage and error information.
  1355  //
  1356  // Returned Error Types:
  1357  //   * ResourceInUseException
  1358  //   The operation conflicts with the resource's availability. For example, you
  1359  //   attempted to recreate an existing table, or tried to delete a table currently
  1360  //   in the CREATING state.
  1361  //
  1362  //   * ResourceNotFoundException
  1363  //   The operation tried to access a nonexistent table or index. The resource
  1364  //   might not be specified correctly, or its status might not be ACTIVE.
  1365  //
  1366  //   * LimitExceededException
  1367  //   There is no limit to the number of daily on-demand backups that can be taken.
  1368  //
  1369  //   Up to 50 simultaneous table operations are allowed per account. These operations
  1370  //   include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup,
  1371  //   and RestoreTableToPointInTime.
  1372  //
  1373  //   The only exception is when you are creating a table with one or more secondary
  1374  //   indexes. You can have up to 25 such requests running at a time; however,
  1375  //   if the table or index specifications are complex, DynamoDB might temporarily
  1376  //   reduce the number of concurrent operations.
  1377  //
  1378  //   There is a soft account quota of 256 tables.
  1379  //
  1380  //   * InternalServerError
  1381  //   An error occurred on the server side.
  1382  //
  1383  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DeleteTable
  1384  func (c *DynamoDB) DeleteTable(input *DeleteTableInput) (*DeleteTableOutput, error) {
  1385  	req, out := c.DeleteTableRequest(input)
  1386  	return out, req.Send()
  1387  }
  1388  
  1389  // DeleteTableWithContext is the same as DeleteTable with the addition of
  1390  // the ability to pass a context and additional request options.
  1391  //
  1392  // See DeleteTable for details on how to use this API operation.
  1393  //
  1394  // The context must be non-nil and will be used for request cancellation. If
  1395  // the context is nil a panic will occur. In the future the SDK may create
  1396  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1397  // for more information on using Contexts.
  1398  func (c *DynamoDB) DeleteTableWithContext(ctx aws.Context, input *DeleteTableInput, opts ...request.Option) (*DeleteTableOutput, error) {
  1399  	req, out := c.DeleteTableRequest(input)
  1400  	req.SetContext(ctx)
  1401  	req.ApplyOptions(opts...)
  1402  	return out, req.Send()
  1403  }
  1404  
  1405  const opDescribeBackup = "DescribeBackup"
  1406  
  1407  // DescribeBackupRequest generates a "aws/request.Request" representing the
  1408  // client's request for the DescribeBackup operation. The "output" return
  1409  // value will be populated with the request's response once the request completes
  1410  // successfully.
  1411  //
  1412  // Use "Send" method on the returned Request to send the API call to the service.
  1413  // the "output" return value is not valid until after Send returns without error.
  1414  //
  1415  // See DescribeBackup for more information on using the DescribeBackup
  1416  // API call, and error handling.
  1417  //
  1418  // This method is useful when you want to inject custom logic or configuration
  1419  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1420  //
  1421  //
  1422  //    // Example sending a request using the DescribeBackupRequest method.
  1423  //    req, resp := client.DescribeBackupRequest(params)
  1424  //
  1425  //    err := req.Send()
  1426  //    if err == nil { // resp is now filled
  1427  //        fmt.Println(resp)
  1428  //    }
  1429  //
  1430  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeBackup
  1431  func (c *DynamoDB) DescribeBackupRequest(input *DescribeBackupInput) (req *request.Request, output *DescribeBackupOutput) {
  1432  	op := &request.Operation{
  1433  		Name:       opDescribeBackup,
  1434  		HTTPMethod: "POST",
  1435  		HTTPPath:   "/",
  1436  	}
  1437  
  1438  	if input == nil {
  1439  		input = &DescribeBackupInput{}
  1440  	}
  1441  
  1442  	output = &DescribeBackupOutput{}
  1443  	req = c.newRequest(op, input, output)
  1444  	// if custom endpoint for the request is set to a non empty string,
  1445  	// we skip the endpoint discovery workflow.
  1446  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  1447  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  1448  			de := discovererDescribeEndpoints{
  1449  				Required:      false,
  1450  				EndpointCache: c.endpointCache,
  1451  				Params: map[string]*string{
  1452  					"op": aws.String(req.Operation.Name),
  1453  				},
  1454  				Client: c,
  1455  			}
  1456  
  1457  			for k, v := range de.Params {
  1458  				if v == nil {
  1459  					delete(de.Params, k)
  1460  				}
  1461  			}
  1462  
  1463  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  1464  				Name: "crr.endpointdiscovery",
  1465  				Fn:   de.Handler,
  1466  			})
  1467  		}
  1468  	}
  1469  	return
  1470  }
  1471  
  1472  // DescribeBackup API operation for Amazon DynamoDB.
  1473  //
  1474  // Describes an existing backup of a table.
  1475  //
  1476  // You can call DescribeBackup at a maximum rate of 10 times per second.
  1477  //
  1478  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1479  // with awserr.Error's Code and Message methods to get detailed information about
  1480  // the error.
  1481  //
  1482  // See the AWS API reference guide for Amazon DynamoDB's
  1483  // API operation DescribeBackup for usage and error information.
  1484  //
  1485  // Returned Error Types:
  1486  //   * BackupNotFoundException
  1487  //   Backup not found for the given BackupARN.
  1488  //
  1489  //   * InternalServerError
  1490  //   An error occurred on the server side.
  1491  //
  1492  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeBackup
  1493  func (c *DynamoDB) DescribeBackup(input *DescribeBackupInput) (*DescribeBackupOutput, error) {
  1494  	req, out := c.DescribeBackupRequest(input)
  1495  	return out, req.Send()
  1496  }
  1497  
  1498  // DescribeBackupWithContext is the same as DescribeBackup with the addition of
  1499  // the ability to pass a context and additional request options.
  1500  //
  1501  // See DescribeBackup for details on how to use this API operation.
  1502  //
  1503  // The context must be non-nil and will be used for request cancellation. If
  1504  // the context is nil a panic will occur. In the future the SDK may create
  1505  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1506  // for more information on using Contexts.
  1507  func (c *DynamoDB) DescribeBackupWithContext(ctx aws.Context, input *DescribeBackupInput, opts ...request.Option) (*DescribeBackupOutput, error) {
  1508  	req, out := c.DescribeBackupRequest(input)
  1509  	req.SetContext(ctx)
  1510  	req.ApplyOptions(opts...)
  1511  	return out, req.Send()
  1512  }
  1513  
  1514  const opDescribeContinuousBackups = "DescribeContinuousBackups"
  1515  
  1516  // DescribeContinuousBackupsRequest generates a "aws/request.Request" representing the
  1517  // client's request for the DescribeContinuousBackups operation. The "output" return
  1518  // value will be populated with the request's response once the request completes
  1519  // successfully.
  1520  //
  1521  // Use "Send" method on the returned Request to send the API call to the service.
  1522  // the "output" return value is not valid until after Send returns without error.
  1523  //
  1524  // See DescribeContinuousBackups for more information on using the DescribeContinuousBackups
  1525  // API call, and error handling.
  1526  //
  1527  // This method is useful when you want to inject custom logic or configuration
  1528  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1529  //
  1530  //
  1531  //    // Example sending a request using the DescribeContinuousBackupsRequest method.
  1532  //    req, resp := client.DescribeContinuousBackupsRequest(params)
  1533  //
  1534  //    err := req.Send()
  1535  //    if err == nil { // resp is now filled
  1536  //        fmt.Println(resp)
  1537  //    }
  1538  //
  1539  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeContinuousBackups
  1540  func (c *DynamoDB) DescribeContinuousBackupsRequest(input *DescribeContinuousBackupsInput) (req *request.Request, output *DescribeContinuousBackupsOutput) {
  1541  	op := &request.Operation{
  1542  		Name:       opDescribeContinuousBackups,
  1543  		HTTPMethod: "POST",
  1544  		HTTPPath:   "/",
  1545  	}
  1546  
  1547  	if input == nil {
  1548  		input = &DescribeContinuousBackupsInput{}
  1549  	}
  1550  
  1551  	output = &DescribeContinuousBackupsOutput{}
  1552  	req = c.newRequest(op, input, output)
  1553  	// if custom endpoint for the request is set to a non empty string,
  1554  	// we skip the endpoint discovery workflow.
  1555  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  1556  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  1557  			de := discovererDescribeEndpoints{
  1558  				Required:      false,
  1559  				EndpointCache: c.endpointCache,
  1560  				Params: map[string]*string{
  1561  					"op": aws.String(req.Operation.Name),
  1562  				},
  1563  				Client: c,
  1564  			}
  1565  
  1566  			for k, v := range de.Params {
  1567  				if v == nil {
  1568  					delete(de.Params, k)
  1569  				}
  1570  			}
  1571  
  1572  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  1573  				Name: "crr.endpointdiscovery",
  1574  				Fn:   de.Handler,
  1575  			})
  1576  		}
  1577  	}
  1578  	return
  1579  }
  1580  
  1581  // DescribeContinuousBackups API operation for Amazon DynamoDB.
  1582  //
  1583  // Checks the status of continuous backups and point in time recovery on the
  1584  // specified table. Continuous backups are ENABLED on all tables at table creation.
  1585  // If point in time recovery is enabled, PointInTimeRecoveryStatus will be set
  1586  // to ENABLED.
  1587  //
  1588  // After continuous backups and point in time recovery are enabled, you can
  1589  // restore to any point in time within EarliestRestorableDateTime and LatestRestorableDateTime.
  1590  //
  1591  // LatestRestorableDateTime is typically 5 minutes before the current time.
  1592  // You can restore your table to any point in time during the last 35 days.
  1593  //
  1594  // You can call DescribeContinuousBackups at a maximum rate of 10 times per
  1595  // second.
  1596  //
  1597  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1598  // with awserr.Error's Code and Message methods to get detailed information about
  1599  // the error.
  1600  //
  1601  // See the AWS API reference guide for Amazon DynamoDB's
  1602  // API operation DescribeContinuousBackups for usage and error information.
  1603  //
  1604  // Returned Error Types:
  1605  //   * TableNotFoundException
  1606  //   A source table with the name TableName does not currently exist within the
  1607  //   subscriber's account.
  1608  //
  1609  //   * InternalServerError
  1610  //   An error occurred on the server side.
  1611  //
  1612  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeContinuousBackups
  1613  func (c *DynamoDB) DescribeContinuousBackups(input *DescribeContinuousBackupsInput) (*DescribeContinuousBackupsOutput, error) {
  1614  	req, out := c.DescribeContinuousBackupsRequest(input)
  1615  	return out, req.Send()
  1616  }
  1617  
  1618  // DescribeContinuousBackupsWithContext is the same as DescribeContinuousBackups with the addition of
  1619  // the ability to pass a context and additional request options.
  1620  //
  1621  // See DescribeContinuousBackups for details on how to use this API operation.
  1622  //
  1623  // The context must be non-nil and will be used for request cancellation. If
  1624  // the context is nil a panic will occur. In the future the SDK may create
  1625  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1626  // for more information on using Contexts.
  1627  func (c *DynamoDB) DescribeContinuousBackupsWithContext(ctx aws.Context, input *DescribeContinuousBackupsInput, opts ...request.Option) (*DescribeContinuousBackupsOutput, error) {
  1628  	req, out := c.DescribeContinuousBackupsRequest(input)
  1629  	req.SetContext(ctx)
  1630  	req.ApplyOptions(opts...)
  1631  	return out, req.Send()
  1632  }
  1633  
  1634  const opDescribeContributorInsights = "DescribeContributorInsights"
  1635  
  1636  // DescribeContributorInsightsRequest generates a "aws/request.Request" representing the
  1637  // client's request for the DescribeContributorInsights operation. The "output" return
  1638  // value will be populated with the request's response once the request completes
  1639  // successfully.
  1640  //
  1641  // Use "Send" method on the returned Request to send the API call to the service.
  1642  // the "output" return value is not valid until after Send returns without error.
  1643  //
  1644  // See DescribeContributorInsights for more information on using the DescribeContributorInsights
  1645  // API call, and error handling.
  1646  //
  1647  // This method is useful when you want to inject custom logic or configuration
  1648  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1649  //
  1650  //
  1651  //    // Example sending a request using the DescribeContributorInsightsRequest method.
  1652  //    req, resp := client.DescribeContributorInsightsRequest(params)
  1653  //
  1654  //    err := req.Send()
  1655  //    if err == nil { // resp is now filled
  1656  //        fmt.Println(resp)
  1657  //    }
  1658  //
  1659  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeContributorInsights
  1660  func (c *DynamoDB) DescribeContributorInsightsRequest(input *DescribeContributorInsightsInput) (req *request.Request, output *DescribeContributorInsightsOutput) {
  1661  	op := &request.Operation{
  1662  		Name:       opDescribeContributorInsights,
  1663  		HTTPMethod: "POST",
  1664  		HTTPPath:   "/",
  1665  	}
  1666  
  1667  	if input == nil {
  1668  		input = &DescribeContributorInsightsInput{}
  1669  	}
  1670  
  1671  	output = &DescribeContributorInsightsOutput{}
  1672  	req = c.newRequest(op, input, output)
  1673  	return
  1674  }
  1675  
  1676  // DescribeContributorInsights API operation for Amazon DynamoDB.
  1677  //
  1678  // Returns information about contributor insights, for a given table or global
  1679  // secondary index.
  1680  //
  1681  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1682  // with awserr.Error's Code and Message methods to get detailed information about
  1683  // the error.
  1684  //
  1685  // See the AWS API reference guide for Amazon DynamoDB's
  1686  // API operation DescribeContributorInsights for usage and error information.
  1687  //
  1688  // Returned Error Types:
  1689  //   * ResourceNotFoundException
  1690  //   The operation tried to access a nonexistent table or index. The resource
  1691  //   might not be specified correctly, or its status might not be ACTIVE.
  1692  //
  1693  //   * InternalServerError
  1694  //   An error occurred on the server side.
  1695  //
  1696  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeContributorInsights
  1697  func (c *DynamoDB) DescribeContributorInsights(input *DescribeContributorInsightsInput) (*DescribeContributorInsightsOutput, error) {
  1698  	req, out := c.DescribeContributorInsightsRequest(input)
  1699  	return out, req.Send()
  1700  }
  1701  
  1702  // DescribeContributorInsightsWithContext is the same as DescribeContributorInsights with the addition of
  1703  // the ability to pass a context and additional request options.
  1704  //
  1705  // See DescribeContributorInsights for details on how to use this API operation.
  1706  //
  1707  // The context must be non-nil and will be used for request cancellation. If
  1708  // the context is nil a panic will occur. In the future the SDK may create
  1709  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1710  // for more information on using Contexts.
  1711  func (c *DynamoDB) DescribeContributorInsightsWithContext(ctx aws.Context, input *DescribeContributorInsightsInput, opts ...request.Option) (*DescribeContributorInsightsOutput, error) {
  1712  	req, out := c.DescribeContributorInsightsRequest(input)
  1713  	req.SetContext(ctx)
  1714  	req.ApplyOptions(opts...)
  1715  	return out, req.Send()
  1716  }
  1717  
  1718  const opDescribeEndpoints = "DescribeEndpoints"
  1719  
  1720  // DescribeEndpointsRequest generates a "aws/request.Request" representing the
  1721  // client's request for the DescribeEndpoints operation. The "output" return
  1722  // value will be populated with the request's response once the request completes
  1723  // successfully.
  1724  //
  1725  // Use "Send" method on the returned Request to send the API call to the service.
  1726  // the "output" return value is not valid until after Send returns without error.
  1727  //
  1728  // See DescribeEndpoints for more information on using the DescribeEndpoints
  1729  // API call, and error handling.
  1730  //
  1731  // This method is useful when you want to inject custom logic or configuration
  1732  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1733  //
  1734  //
  1735  //    // Example sending a request using the DescribeEndpointsRequest method.
  1736  //    req, resp := client.DescribeEndpointsRequest(params)
  1737  //
  1738  //    err := req.Send()
  1739  //    if err == nil { // resp is now filled
  1740  //        fmt.Println(resp)
  1741  //    }
  1742  //
  1743  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeEndpoints
  1744  func (c *DynamoDB) DescribeEndpointsRequest(input *DescribeEndpointsInput) (req *request.Request, output *DescribeEndpointsOutput) {
  1745  	op := &request.Operation{
  1746  		Name:       opDescribeEndpoints,
  1747  		HTTPMethod: "POST",
  1748  		HTTPPath:   "/",
  1749  	}
  1750  
  1751  	if input == nil {
  1752  		input = &DescribeEndpointsInput{}
  1753  	}
  1754  
  1755  	output = &DescribeEndpointsOutput{}
  1756  	req = c.newRequest(op, input, output)
  1757  	return
  1758  }
  1759  
  1760  // DescribeEndpoints API operation for Amazon DynamoDB.
  1761  //
  1762  // Returns the regional endpoint information.
  1763  //
  1764  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1765  // with awserr.Error's Code and Message methods to get detailed information about
  1766  // the error.
  1767  //
  1768  // See the AWS API reference guide for Amazon DynamoDB's
  1769  // API operation DescribeEndpoints for usage and error information.
  1770  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeEndpoints
  1771  func (c *DynamoDB) DescribeEndpoints(input *DescribeEndpointsInput) (*DescribeEndpointsOutput, error) {
  1772  	req, out := c.DescribeEndpointsRequest(input)
  1773  	return out, req.Send()
  1774  }
  1775  
  1776  // DescribeEndpointsWithContext is the same as DescribeEndpoints with the addition of
  1777  // the ability to pass a context and additional request options.
  1778  //
  1779  // See DescribeEndpoints for details on how to use this API operation.
  1780  //
  1781  // The context must be non-nil and will be used for request cancellation. If
  1782  // the context is nil a panic will occur. In the future the SDK may create
  1783  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1784  // for more information on using Contexts.
  1785  func (c *DynamoDB) DescribeEndpointsWithContext(ctx aws.Context, input *DescribeEndpointsInput, opts ...request.Option) (*DescribeEndpointsOutput, error) {
  1786  	req, out := c.DescribeEndpointsRequest(input)
  1787  	req.SetContext(ctx)
  1788  	req.ApplyOptions(opts...)
  1789  	return out, req.Send()
  1790  }
  1791  
  1792  type discovererDescribeEndpoints struct {
  1793  	Client        *DynamoDB
  1794  	Required      bool
  1795  	EndpointCache *crr.EndpointCache
  1796  	Params        map[string]*string
  1797  	Key           string
  1798  	req           *request.Request
  1799  }
  1800  
  1801  func (d *discovererDescribeEndpoints) Discover() (crr.Endpoint, error) {
  1802  	input := &DescribeEndpointsInput{}
  1803  
  1804  	resp, err := d.Client.DescribeEndpoints(input)
  1805  	if err != nil {
  1806  		return crr.Endpoint{}, err
  1807  	}
  1808  
  1809  	endpoint := crr.Endpoint{
  1810  		Key: d.Key,
  1811  	}
  1812  
  1813  	for _, e := range resp.Endpoints {
  1814  		if e.Address == nil {
  1815  			continue
  1816  		}
  1817  
  1818  		address := *e.Address
  1819  
  1820  		var scheme string
  1821  		if idx := strings.Index(address, "://"); idx != -1 {
  1822  			scheme = address[:idx]
  1823  		}
  1824  
  1825  		if len(scheme) == 0 {
  1826  			address = fmt.Sprintf("%s://%s", d.req.HTTPRequest.URL.Scheme, address)
  1827  		}
  1828  
  1829  		cachedInMinutes := aws.Int64Value(e.CachePeriodInMinutes)
  1830  		u, err := url.Parse(address)
  1831  		if err != nil {
  1832  			continue
  1833  		}
  1834  
  1835  		addr := crr.WeightedAddress{
  1836  			URL:     u,
  1837  			Expired: time.Now().Add(time.Duration(cachedInMinutes) * time.Minute),
  1838  		}
  1839  
  1840  		endpoint.Add(addr)
  1841  	}
  1842  
  1843  	d.EndpointCache.Add(endpoint)
  1844  
  1845  	return endpoint, nil
  1846  }
  1847  
  1848  func (d *discovererDescribeEndpoints) Handler(r *request.Request) {
  1849  	endpointKey := crr.BuildEndpointKey(d.Params)
  1850  	d.Key = endpointKey
  1851  	d.req = r
  1852  
  1853  	endpoint, err := d.EndpointCache.Get(d, endpointKey, d.Required)
  1854  	if err != nil {
  1855  		r.Error = err
  1856  		return
  1857  	}
  1858  
  1859  	if endpoint.URL != nil && len(endpoint.URL.String()) > 0 {
  1860  		r.HTTPRequest.URL = endpoint.URL
  1861  	}
  1862  }
  1863  
  1864  const opDescribeExport = "DescribeExport"
  1865  
  1866  // DescribeExportRequest generates a "aws/request.Request" representing the
  1867  // client's request for the DescribeExport operation. The "output" return
  1868  // value will be populated with the request's response once the request completes
  1869  // successfully.
  1870  //
  1871  // Use "Send" method on the returned Request to send the API call to the service.
  1872  // the "output" return value is not valid until after Send returns without error.
  1873  //
  1874  // See DescribeExport for more information on using the DescribeExport
  1875  // API call, and error handling.
  1876  //
  1877  // This method is useful when you want to inject custom logic or configuration
  1878  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1879  //
  1880  //
  1881  //    // Example sending a request using the DescribeExportRequest method.
  1882  //    req, resp := client.DescribeExportRequest(params)
  1883  //
  1884  //    err := req.Send()
  1885  //    if err == nil { // resp is now filled
  1886  //        fmt.Println(resp)
  1887  //    }
  1888  //
  1889  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeExport
  1890  func (c *DynamoDB) DescribeExportRequest(input *DescribeExportInput) (req *request.Request, output *DescribeExportOutput) {
  1891  	op := &request.Operation{
  1892  		Name:       opDescribeExport,
  1893  		HTTPMethod: "POST",
  1894  		HTTPPath:   "/",
  1895  	}
  1896  
  1897  	if input == nil {
  1898  		input = &DescribeExportInput{}
  1899  	}
  1900  
  1901  	output = &DescribeExportOutput{}
  1902  	req = c.newRequest(op, input, output)
  1903  	return
  1904  }
  1905  
  1906  // DescribeExport API operation for Amazon DynamoDB.
  1907  //
  1908  // Describes an existing table export.
  1909  //
  1910  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1911  // with awserr.Error's Code and Message methods to get detailed information about
  1912  // the error.
  1913  //
  1914  // See the AWS API reference guide for Amazon DynamoDB's
  1915  // API operation DescribeExport for usage and error information.
  1916  //
  1917  // Returned Error Types:
  1918  //   * ExportNotFoundException
  1919  //   The specified export was not found.
  1920  //
  1921  //   * LimitExceededException
  1922  //   There is no limit to the number of daily on-demand backups that can be taken.
  1923  //
  1924  //   Up to 50 simultaneous table operations are allowed per account. These operations
  1925  //   include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup,
  1926  //   and RestoreTableToPointInTime.
  1927  //
  1928  //   The only exception is when you are creating a table with one or more secondary
  1929  //   indexes. You can have up to 25 such requests running at a time; however,
  1930  //   if the table or index specifications are complex, DynamoDB might temporarily
  1931  //   reduce the number of concurrent operations.
  1932  //
  1933  //   There is a soft account quota of 256 tables.
  1934  //
  1935  //   * InternalServerError
  1936  //   An error occurred on the server side.
  1937  //
  1938  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeExport
  1939  func (c *DynamoDB) DescribeExport(input *DescribeExportInput) (*DescribeExportOutput, error) {
  1940  	req, out := c.DescribeExportRequest(input)
  1941  	return out, req.Send()
  1942  }
  1943  
  1944  // DescribeExportWithContext is the same as DescribeExport with the addition of
  1945  // the ability to pass a context and additional request options.
  1946  //
  1947  // See DescribeExport for details on how to use this API operation.
  1948  //
  1949  // The context must be non-nil and will be used for request cancellation. If
  1950  // the context is nil a panic will occur. In the future the SDK may create
  1951  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1952  // for more information on using Contexts.
  1953  func (c *DynamoDB) DescribeExportWithContext(ctx aws.Context, input *DescribeExportInput, opts ...request.Option) (*DescribeExportOutput, error) {
  1954  	req, out := c.DescribeExportRequest(input)
  1955  	req.SetContext(ctx)
  1956  	req.ApplyOptions(opts...)
  1957  	return out, req.Send()
  1958  }
  1959  
  1960  const opDescribeGlobalTable = "DescribeGlobalTable"
  1961  
  1962  // DescribeGlobalTableRequest generates a "aws/request.Request" representing the
  1963  // client's request for the DescribeGlobalTable operation. The "output" return
  1964  // value will be populated with the request's response once the request completes
  1965  // successfully.
  1966  //
  1967  // Use "Send" method on the returned Request to send the API call to the service.
  1968  // the "output" return value is not valid until after Send returns without error.
  1969  //
  1970  // See DescribeGlobalTable for more information on using the DescribeGlobalTable
  1971  // API call, and error handling.
  1972  //
  1973  // This method is useful when you want to inject custom logic or configuration
  1974  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1975  //
  1976  //
  1977  //    // Example sending a request using the DescribeGlobalTableRequest method.
  1978  //    req, resp := client.DescribeGlobalTableRequest(params)
  1979  //
  1980  //    err := req.Send()
  1981  //    if err == nil { // resp is now filled
  1982  //        fmt.Println(resp)
  1983  //    }
  1984  //
  1985  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeGlobalTable
  1986  func (c *DynamoDB) DescribeGlobalTableRequest(input *DescribeGlobalTableInput) (req *request.Request, output *DescribeGlobalTableOutput) {
  1987  	op := &request.Operation{
  1988  		Name:       opDescribeGlobalTable,
  1989  		HTTPMethod: "POST",
  1990  		HTTPPath:   "/",
  1991  	}
  1992  
  1993  	if input == nil {
  1994  		input = &DescribeGlobalTableInput{}
  1995  	}
  1996  
  1997  	output = &DescribeGlobalTableOutput{}
  1998  	req = c.newRequest(op, input, output)
  1999  	// if custom endpoint for the request is set to a non empty string,
  2000  	// we skip the endpoint discovery workflow.
  2001  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  2002  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  2003  			de := discovererDescribeEndpoints{
  2004  				Required:      false,
  2005  				EndpointCache: c.endpointCache,
  2006  				Params: map[string]*string{
  2007  					"op": aws.String(req.Operation.Name),
  2008  				},
  2009  				Client: c,
  2010  			}
  2011  
  2012  			for k, v := range de.Params {
  2013  				if v == nil {
  2014  					delete(de.Params, k)
  2015  				}
  2016  			}
  2017  
  2018  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  2019  				Name: "crr.endpointdiscovery",
  2020  				Fn:   de.Handler,
  2021  			})
  2022  		}
  2023  	}
  2024  	return
  2025  }
  2026  
  2027  // DescribeGlobalTable API operation for Amazon DynamoDB.
  2028  //
  2029  // Returns information about the specified global table.
  2030  //
  2031  // This operation only applies to Version 2017.11.29 (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V1.html)
  2032  // of global tables. If you are using global tables Version 2019.11.21 (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V2.html)
  2033  // you can use DescribeTable (https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeTable.html)
  2034  // instead.
  2035  //
  2036  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2037  // with awserr.Error's Code and Message methods to get detailed information about
  2038  // the error.
  2039  //
  2040  // See the AWS API reference guide for Amazon DynamoDB's
  2041  // API operation DescribeGlobalTable for usage and error information.
  2042  //
  2043  // Returned Error Types:
  2044  //   * InternalServerError
  2045  //   An error occurred on the server side.
  2046  //
  2047  //   * GlobalTableNotFoundException
  2048  //   The specified global table does not exist.
  2049  //
  2050  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeGlobalTable
  2051  func (c *DynamoDB) DescribeGlobalTable(input *DescribeGlobalTableInput) (*DescribeGlobalTableOutput, error) {
  2052  	req, out := c.DescribeGlobalTableRequest(input)
  2053  	return out, req.Send()
  2054  }
  2055  
  2056  // DescribeGlobalTableWithContext is the same as DescribeGlobalTable with the addition of
  2057  // the ability to pass a context and additional request options.
  2058  //
  2059  // See DescribeGlobalTable for details on how to use this API operation.
  2060  //
  2061  // The context must be non-nil and will be used for request cancellation. If
  2062  // the context is nil a panic will occur. In the future the SDK may create
  2063  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2064  // for more information on using Contexts.
  2065  func (c *DynamoDB) DescribeGlobalTableWithContext(ctx aws.Context, input *DescribeGlobalTableInput, opts ...request.Option) (*DescribeGlobalTableOutput, error) {
  2066  	req, out := c.DescribeGlobalTableRequest(input)
  2067  	req.SetContext(ctx)
  2068  	req.ApplyOptions(opts...)
  2069  	return out, req.Send()
  2070  }
  2071  
  2072  const opDescribeGlobalTableSettings = "DescribeGlobalTableSettings"
  2073  
  2074  // DescribeGlobalTableSettingsRequest generates a "aws/request.Request" representing the
  2075  // client's request for the DescribeGlobalTableSettings operation. The "output" return
  2076  // value will be populated with the request's response once the request completes
  2077  // successfully.
  2078  //
  2079  // Use "Send" method on the returned Request to send the API call to the service.
  2080  // the "output" return value is not valid until after Send returns without error.
  2081  //
  2082  // See DescribeGlobalTableSettings for more information on using the DescribeGlobalTableSettings
  2083  // API call, and error handling.
  2084  //
  2085  // This method is useful when you want to inject custom logic or configuration
  2086  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2087  //
  2088  //
  2089  //    // Example sending a request using the DescribeGlobalTableSettingsRequest method.
  2090  //    req, resp := client.DescribeGlobalTableSettingsRequest(params)
  2091  //
  2092  //    err := req.Send()
  2093  //    if err == nil { // resp is now filled
  2094  //        fmt.Println(resp)
  2095  //    }
  2096  //
  2097  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeGlobalTableSettings
  2098  func (c *DynamoDB) DescribeGlobalTableSettingsRequest(input *DescribeGlobalTableSettingsInput) (req *request.Request, output *DescribeGlobalTableSettingsOutput) {
  2099  	op := &request.Operation{
  2100  		Name:       opDescribeGlobalTableSettings,
  2101  		HTTPMethod: "POST",
  2102  		HTTPPath:   "/",
  2103  	}
  2104  
  2105  	if input == nil {
  2106  		input = &DescribeGlobalTableSettingsInput{}
  2107  	}
  2108  
  2109  	output = &DescribeGlobalTableSettingsOutput{}
  2110  	req = c.newRequest(op, input, output)
  2111  	// if custom endpoint for the request is set to a non empty string,
  2112  	// we skip the endpoint discovery workflow.
  2113  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  2114  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  2115  			de := discovererDescribeEndpoints{
  2116  				Required:      false,
  2117  				EndpointCache: c.endpointCache,
  2118  				Params: map[string]*string{
  2119  					"op": aws.String(req.Operation.Name),
  2120  				},
  2121  				Client: c,
  2122  			}
  2123  
  2124  			for k, v := range de.Params {
  2125  				if v == nil {
  2126  					delete(de.Params, k)
  2127  				}
  2128  			}
  2129  
  2130  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  2131  				Name: "crr.endpointdiscovery",
  2132  				Fn:   de.Handler,
  2133  			})
  2134  		}
  2135  	}
  2136  	return
  2137  }
  2138  
  2139  // DescribeGlobalTableSettings API operation for Amazon DynamoDB.
  2140  //
  2141  // Describes Region-specific settings for a global table.
  2142  //
  2143  // This operation only applies to Version 2017.11.29 (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V1.html)
  2144  // of global tables.
  2145  //
  2146  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2147  // with awserr.Error's Code and Message methods to get detailed information about
  2148  // the error.
  2149  //
  2150  // See the AWS API reference guide for Amazon DynamoDB's
  2151  // API operation DescribeGlobalTableSettings for usage and error information.
  2152  //
  2153  // Returned Error Types:
  2154  //   * GlobalTableNotFoundException
  2155  //   The specified global table does not exist.
  2156  //
  2157  //   * InternalServerError
  2158  //   An error occurred on the server side.
  2159  //
  2160  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeGlobalTableSettings
  2161  func (c *DynamoDB) DescribeGlobalTableSettings(input *DescribeGlobalTableSettingsInput) (*DescribeGlobalTableSettingsOutput, error) {
  2162  	req, out := c.DescribeGlobalTableSettingsRequest(input)
  2163  	return out, req.Send()
  2164  }
  2165  
  2166  // DescribeGlobalTableSettingsWithContext is the same as DescribeGlobalTableSettings with the addition of
  2167  // the ability to pass a context and additional request options.
  2168  //
  2169  // See DescribeGlobalTableSettings for details on how to use this API operation.
  2170  //
  2171  // The context must be non-nil and will be used for request cancellation. If
  2172  // the context is nil a panic will occur. In the future the SDK may create
  2173  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2174  // for more information on using Contexts.
  2175  func (c *DynamoDB) DescribeGlobalTableSettingsWithContext(ctx aws.Context, input *DescribeGlobalTableSettingsInput, opts ...request.Option) (*DescribeGlobalTableSettingsOutput, error) {
  2176  	req, out := c.DescribeGlobalTableSettingsRequest(input)
  2177  	req.SetContext(ctx)
  2178  	req.ApplyOptions(opts...)
  2179  	return out, req.Send()
  2180  }
  2181  
  2182  const opDescribeKinesisStreamingDestination = "DescribeKinesisStreamingDestination"
  2183  
  2184  // DescribeKinesisStreamingDestinationRequest generates a "aws/request.Request" representing the
  2185  // client's request for the DescribeKinesisStreamingDestination operation. The "output" return
  2186  // value will be populated with the request's response once the request completes
  2187  // successfully.
  2188  //
  2189  // Use "Send" method on the returned Request to send the API call to the service.
  2190  // the "output" return value is not valid until after Send returns without error.
  2191  //
  2192  // See DescribeKinesisStreamingDestination for more information on using the DescribeKinesisStreamingDestination
  2193  // API call, and error handling.
  2194  //
  2195  // This method is useful when you want to inject custom logic or configuration
  2196  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2197  //
  2198  //
  2199  //    // Example sending a request using the DescribeKinesisStreamingDestinationRequest method.
  2200  //    req, resp := client.DescribeKinesisStreamingDestinationRequest(params)
  2201  //
  2202  //    err := req.Send()
  2203  //    if err == nil { // resp is now filled
  2204  //        fmt.Println(resp)
  2205  //    }
  2206  //
  2207  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeKinesisStreamingDestination
  2208  func (c *DynamoDB) DescribeKinesisStreamingDestinationRequest(input *DescribeKinesisStreamingDestinationInput) (req *request.Request, output *DescribeKinesisStreamingDestinationOutput) {
  2209  	op := &request.Operation{
  2210  		Name:       opDescribeKinesisStreamingDestination,
  2211  		HTTPMethod: "POST",
  2212  		HTTPPath:   "/",
  2213  	}
  2214  
  2215  	if input == nil {
  2216  		input = &DescribeKinesisStreamingDestinationInput{}
  2217  	}
  2218  
  2219  	output = &DescribeKinesisStreamingDestinationOutput{}
  2220  	req = c.newRequest(op, input, output)
  2221  	// if custom endpoint for the request is set to a non empty string,
  2222  	// we skip the endpoint discovery workflow.
  2223  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  2224  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  2225  			de := discovererDescribeEndpoints{
  2226  				Required:      false,
  2227  				EndpointCache: c.endpointCache,
  2228  				Params: map[string]*string{
  2229  					"op": aws.String(req.Operation.Name),
  2230  				},
  2231  				Client: c,
  2232  			}
  2233  
  2234  			for k, v := range de.Params {
  2235  				if v == nil {
  2236  					delete(de.Params, k)
  2237  				}
  2238  			}
  2239  
  2240  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  2241  				Name: "crr.endpointdiscovery",
  2242  				Fn:   de.Handler,
  2243  			})
  2244  		}
  2245  	}
  2246  	return
  2247  }
  2248  
  2249  // DescribeKinesisStreamingDestination API operation for Amazon DynamoDB.
  2250  //
  2251  // Returns information about the status of Kinesis streaming.
  2252  //
  2253  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2254  // with awserr.Error's Code and Message methods to get detailed information about
  2255  // the error.
  2256  //
  2257  // See the AWS API reference guide for Amazon DynamoDB's
  2258  // API operation DescribeKinesisStreamingDestination for usage and error information.
  2259  //
  2260  // Returned Error Types:
  2261  //   * ResourceNotFoundException
  2262  //   The operation tried to access a nonexistent table or index. The resource
  2263  //   might not be specified correctly, or its status might not be ACTIVE.
  2264  //
  2265  //   * InternalServerError
  2266  //   An error occurred on the server side.
  2267  //
  2268  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeKinesisStreamingDestination
  2269  func (c *DynamoDB) DescribeKinesisStreamingDestination(input *DescribeKinesisStreamingDestinationInput) (*DescribeKinesisStreamingDestinationOutput, error) {
  2270  	req, out := c.DescribeKinesisStreamingDestinationRequest(input)
  2271  	return out, req.Send()
  2272  }
  2273  
  2274  // DescribeKinesisStreamingDestinationWithContext is the same as DescribeKinesisStreamingDestination with the addition of
  2275  // the ability to pass a context and additional request options.
  2276  //
  2277  // See DescribeKinesisStreamingDestination for details on how to use this API operation.
  2278  //
  2279  // The context must be non-nil and will be used for request cancellation. If
  2280  // the context is nil a panic will occur. In the future the SDK may create
  2281  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2282  // for more information on using Contexts.
  2283  func (c *DynamoDB) DescribeKinesisStreamingDestinationWithContext(ctx aws.Context, input *DescribeKinesisStreamingDestinationInput, opts ...request.Option) (*DescribeKinesisStreamingDestinationOutput, error) {
  2284  	req, out := c.DescribeKinesisStreamingDestinationRequest(input)
  2285  	req.SetContext(ctx)
  2286  	req.ApplyOptions(opts...)
  2287  	return out, req.Send()
  2288  }
  2289  
  2290  const opDescribeLimits = "DescribeLimits"
  2291  
  2292  // DescribeLimitsRequest generates a "aws/request.Request" representing the
  2293  // client's request for the DescribeLimits operation. The "output" return
  2294  // value will be populated with the request's response once the request completes
  2295  // successfully.
  2296  //
  2297  // Use "Send" method on the returned Request to send the API call to the service.
  2298  // the "output" return value is not valid until after Send returns without error.
  2299  //
  2300  // See DescribeLimits for more information on using the DescribeLimits
  2301  // API call, and error handling.
  2302  //
  2303  // This method is useful when you want to inject custom logic or configuration
  2304  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2305  //
  2306  //
  2307  //    // Example sending a request using the DescribeLimitsRequest method.
  2308  //    req, resp := client.DescribeLimitsRequest(params)
  2309  //
  2310  //    err := req.Send()
  2311  //    if err == nil { // resp is now filled
  2312  //        fmt.Println(resp)
  2313  //    }
  2314  //
  2315  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeLimits
  2316  func (c *DynamoDB) DescribeLimitsRequest(input *DescribeLimitsInput) (req *request.Request, output *DescribeLimitsOutput) {
  2317  	op := &request.Operation{
  2318  		Name:       opDescribeLimits,
  2319  		HTTPMethod: "POST",
  2320  		HTTPPath:   "/",
  2321  	}
  2322  
  2323  	if input == nil {
  2324  		input = &DescribeLimitsInput{}
  2325  	}
  2326  
  2327  	output = &DescribeLimitsOutput{}
  2328  	req = c.newRequest(op, input, output)
  2329  	// if custom endpoint for the request is set to a non empty string,
  2330  	// we skip the endpoint discovery workflow.
  2331  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  2332  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  2333  			de := discovererDescribeEndpoints{
  2334  				Required:      false,
  2335  				EndpointCache: c.endpointCache,
  2336  				Params: map[string]*string{
  2337  					"op": aws.String(req.Operation.Name),
  2338  				},
  2339  				Client: c,
  2340  			}
  2341  
  2342  			for k, v := range de.Params {
  2343  				if v == nil {
  2344  					delete(de.Params, k)
  2345  				}
  2346  			}
  2347  
  2348  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  2349  				Name: "crr.endpointdiscovery",
  2350  				Fn:   de.Handler,
  2351  			})
  2352  		}
  2353  	}
  2354  	return
  2355  }
  2356  
  2357  // DescribeLimits API operation for Amazon DynamoDB.
  2358  //
  2359  // Returns the current provisioned-capacity quotas for your AWS account in a
  2360  // Region, both for the Region as a whole and for any one DynamoDB table that
  2361  // you create there.
  2362  //
  2363  // When you establish an AWS account, the account has initial quotas on the
  2364  // maximum read capacity units and write capacity units that you can provision
  2365  // across all of your DynamoDB tables in a given Region. Also, there are per-table
  2366  // quotas that apply when you create a table there. For more information, see
  2367  // Service, Account, and Table Quotas (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html)
  2368  // page in the Amazon DynamoDB Developer Guide.
  2369  //
  2370  // Although you can increase these quotas by filing a case at AWS Support Center
  2371  // (https://console.aws.amazon.com/support/home#/), obtaining the increase is
  2372  // not instantaneous. The DescribeLimits action lets you write code to compare
  2373  // the capacity you are currently using to those quotas imposed by your account
  2374  // so that you have enough time to apply for an increase before you hit a quota.
  2375  //
  2376  // For example, you could use one of the AWS SDKs to do the following:
  2377  //
  2378  // Call DescribeLimits for a particular Region to obtain your current account
  2379  // quotas on provisioned capacity there.
  2380  //
  2381  // Create a variable to hold the aggregate read capacity units provisioned for
  2382  // all your tables in that Region, and one to hold the aggregate write capacity
  2383  // units. Zero them both.
  2384  //
  2385  // Call ListTables to obtain a list of all your DynamoDB tables.
  2386  //
  2387  // For each table name listed by ListTables, do the following:
  2388  //
  2389  //    * Call DescribeTable with the table name.
  2390  //
  2391  //    * Use the data returned by DescribeTable to add the read capacity units
  2392  //    and write capacity units provisioned for the table itself to your variables.
  2393  //
  2394  //    * If the table has one or more global secondary indexes (GSIs), loop over
  2395  //    these GSIs and add their provisioned capacity values to your variables
  2396  //    as well.
  2397  //
  2398  // Report the account quotas for that Region returned by DescribeLimits, along
  2399  // with the total current provisioned capacity levels you have calculated.
  2400  //
  2401  // This will let you see whether you are getting close to your account-level
  2402  // quotas.
  2403  //
  2404  // The per-table quotas apply only when you are creating a new table. They restrict
  2405  // the sum of the provisioned capacity of the new table itself and all its global
  2406  // secondary indexes.
  2407  //
  2408  // For existing tables and their GSIs, DynamoDB doesn't let you increase provisioned
  2409  // capacity extremely rapidly, but the only quota that applies is that the aggregate
  2410  // provisioned capacity over all your tables and GSIs cannot exceed either of
  2411  // the per-account quotas.
  2412  //
  2413  // DescribeLimits should only be called periodically. You can expect throttling
  2414  // errors if you call it more than once in a minute.
  2415  //
  2416  // The DescribeLimits Request element has no content.
  2417  //
  2418  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2419  // with awserr.Error's Code and Message methods to get detailed information about
  2420  // the error.
  2421  //
  2422  // See the AWS API reference guide for Amazon DynamoDB's
  2423  // API operation DescribeLimits for usage and error information.
  2424  //
  2425  // Returned Error Types:
  2426  //   * InternalServerError
  2427  //   An error occurred on the server side.
  2428  //
  2429  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeLimits
  2430  func (c *DynamoDB) DescribeLimits(input *DescribeLimitsInput) (*DescribeLimitsOutput, error) {
  2431  	req, out := c.DescribeLimitsRequest(input)
  2432  	return out, req.Send()
  2433  }
  2434  
  2435  // DescribeLimitsWithContext is the same as DescribeLimits with the addition of
  2436  // the ability to pass a context and additional request options.
  2437  //
  2438  // See DescribeLimits for details on how to use this API operation.
  2439  //
  2440  // The context must be non-nil and will be used for request cancellation. If
  2441  // the context is nil a panic will occur. In the future the SDK may create
  2442  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2443  // for more information on using Contexts.
  2444  func (c *DynamoDB) DescribeLimitsWithContext(ctx aws.Context, input *DescribeLimitsInput, opts ...request.Option) (*DescribeLimitsOutput, error) {
  2445  	req, out := c.DescribeLimitsRequest(input)
  2446  	req.SetContext(ctx)
  2447  	req.ApplyOptions(opts...)
  2448  	return out, req.Send()
  2449  }
  2450  
  2451  const opDescribeTable = "DescribeTable"
  2452  
  2453  // DescribeTableRequest generates a "aws/request.Request" representing the
  2454  // client's request for the DescribeTable operation. The "output" return
  2455  // value will be populated with the request's response once the request completes
  2456  // successfully.
  2457  //
  2458  // Use "Send" method on the returned Request to send the API call to the service.
  2459  // the "output" return value is not valid until after Send returns without error.
  2460  //
  2461  // See DescribeTable for more information on using the DescribeTable
  2462  // API call, and error handling.
  2463  //
  2464  // This method is useful when you want to inject custom logic or configuration
  2465  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2466  //
  2467  //
  2468  //    // Example sending a request using the DescribeTableRequest method.
  2469  //    req, resp := client.DescribeTableRequest(params)
  2470  //
  2471  //    err := req.Send()
  2472  //    if err == nil { // resp is now filled
  2473  //        fmt.Println(resp)
  2474  //    }
  2475  //
  2476  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeTable
  2477  func (c *DynamoDB) DescribeTableRequest(input *DescribeTableInput) (req *request.Request, output *DescribeTableOutput) {
  2478  	op := &request.Operation{
  2479  		Name:       opDescribeTable,
  2480  		HTTPMethod: "POST",
  2481  		HTTPPath:   "/",
  2482  	}
  2483  
  2484  	if input == nil {
  2485  		input = &DescribeTableInput{}
  2486  	}
  2487  
  2488  	output = &DescribeTableOutput{}
  2489  	req = c.newRequest(op, input, output)
  2490  	// if custom endpoint for the request is set to a non empty string,
  2491  	// we skip the endpoint discovery workflow.
  2492  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  2493  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  2494  			de := discovererDescribeEndpoints{
  2495  				Required:      false,
  2496  				EndpointCache: c.endpointCache,
  2497  				Params: map[string]*string{
  2498  					"op": aws.String(req.Operation.Name),
  2499  				},
  2500  				Client: c,
  2501  			}
  2502  
  2503  			for k, v := range de.Params {
  2504  				if v == nil {
  2505  					delete(de.Params, k)
  2506  				}
  2507  			}
  2508  
  2509  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  2510  				Name: "crr.endpointdiscovery",
  2511  				Fn:   de.Handler,
  2512  			})
  2513  		}
  2514  	}
  2515  	return
  2516  }
  2517  
  2518  // DescribeTable API operation for Amazon DynamoDB.
  2519  //
  2520  // Returns information about the table, including the current status of the
  2521  // table, when it was created, the primary key schema, and any indexes on the
  2522  // table.
  2523  //
  2524  // If you issue a DescribeTable request immediately after a CreateTable request,
  2525  // DynamoDB might return a ResourceNotFoundException. This is because DescribeTable
  2526  // uses an eventually consistent query, and the metadata for your table might
  2527  // not be available at that moment. Wait for a few seconds, and then try the
  2528  // DescribeTable request again.
  2529  //
  2530  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2531  // with awserr.Error's Code and Message methods to get detailed information about
  2532  // the error.
  2533  //
  2534  // See the AWS API reference guide for Amazon DynamoDB's
  2535  // API operation DescribeTable for usage and error information.
  2536  //
  2537  // Returned Error Types:
  2538  //   * ResourceNotFoundException
  2539  //   The operation tried to access a nonexistent table or index. The resource
  2540  //   might not be specified correctly, or its status might not be ACTIVE.
  2541  //
  2542  //   * InternalServerError
  2543  //   An error occurred on the server side.
  2544  //
  2545  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeTable
  2546  func (c *DynamoDB) DescribeTable(input *DescribeTableInput) (*DescribeTableOutput, error) {
  2547  	req, out := c.DescribeTableRequest(input)
  2548  	return out, req.Send()
  2549  }
  2550  
  2551  // DescribeTableWithContext is the same as DescribeTable with the addition of
  2552  // the ability to pass a context and additional request options.
  2553  //
  2554  // See DescribeTable for details on how to use this API operation.
  2555  //
  2556  // The context must be non-nil and will be used for request cancellation. If
  2557  // the context is nil a panic will occur. In the future the SDK may create
  2558  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2559  // for more information on using Contexts.
  2560  func (c *DynamoDB) DescribeTableWithContext(ctx aws.Context, input *DescribeTableInput, opts ...request.Option) (*DescribeTableOutput, error) {
  2561  	req, out := c.DescribeTableRequest(input)
  2562  	req.SetContext(ctx)
  2563  	req.ApplyOptions(opts...)
  2564  	return out, req.Send()
  2565  }
  2566  
  2567  const opDescribeTableReplicaAutoScaling = "DescribeTableReplicaAutoScaling"
  2568  
  2569  // DescribeTableReplicaAutoScalingRequest generates a "aws/request.Request" representing the
  2570  // client's request for the DescribeTableReplicaAutoScaling operation. The "output" return
  2571  // value will be populated with the request's response once the request completes
  2572  // successfully.
  2573  //
  2574  // Use "Send" method on the returned Request to send the API call to the service.
  2575  // the "output" return value is not valid until after Send returns without error.
  2576  //
  2577  // See DescribeTableReplicaAutoScaling for more information on using the DescribeTableReplicaAutoScaling
  2578  // API call, and error handling.
  2579  //
  2580  // This method is useful when you want to inject custom logic or configuration
  2581  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2582  //
  2583  //
  2584  //    // Example sending a request using the DescribeTableReplicaAutoScalingRequest method.
  2585  //    req, resp := client.DescribeTableReplicaAutoScalingRequest(params)
  2586  //
  2587  //    err := req.Send()
  2588  //    if err == nil { // resp is now filled
  2589  //        fmt.Println(resp)
  2590  //    }
  2591  //
  2592  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeTableReplicaAutoScaling
  2593  func (c *DynamoDB) DescribeTableReplicaAutoScalingRequest(input *DescribeTableReplicaAutoScalingInput) (req *request.Request, output *DescribeTableReplicaAutoScalingOutput) {
  2594  	op := &request.Operation{
  2595  		Name:       opDescribeTableReplicaAutoScaling,
  2596  		HTTPMethod: "POST",
  2597  		HTTPPath:   "/",
  2598  	}
  2599  
  2600  	if input == nil {
  2601  		input = &DescribeTableReplicaAutoScalingInput{}
  2602  	}
  2603  
  2604  	output = &DescribeTableReplicaAutoScalingOutput{}
  2605  	req = c.newRequest(op, input, output)
  2606  	return
  2607  }
  2608  
  2609  // DescribeTableReplicaAutoScaling API operation for Amazon DynamoDB.
  2610  //
  2611  // Describes auto scaling settings across replicas of the global table at once.
  2612  //
  2613  // This operation only applies to Version 2019.11.21 (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V2.html)
  2614  // of global tables.
  2615  //
  2616  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2617  // with awserr.Error's Code and Message methods to get detailed information about
  2618  // the error.
  2619  //
  2620  // See the AWS API reference guide for Amazon DynamoDB's
  2621  // API operation DescribeTableReplicaAutoScaling for usage and error information.
  2622  //
  2623  // Returned Error Types:
  2624  //   * ResourceNotFoundException
  2625  //   The operation tried to access a nonexistent table or index. The resource
  2626  //   might not be specified correctly, or its status might not be ACTIVE.
  2627  //
  2628  //   * InternalServerError
  2629  //   An error occurred on the server side.
  2630  //
  2631  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeTableReplicaAutoScaling
  2632  func (c *DynamoDB) DescribeTableReplicaAutoScaling(input *DescribeTableReplicaAutoScalingInput) (*DescribeTableReplicaAutoScalingOutput, error) {
  2633  	req, out := c.DescribeTableReplicaAutoScalingRequest(input)
  2634  	return out, req.Send()
  2635  }
  2636  
  2637  // DescribeTableReplicaAutoScalingWithContext is the same as DescribeTableReplicaAutoScaling with the addition of
  2638  // the ability to pass a context and additional request options.
  2639  //
  2640  // See DescribeTableReplicaAutoScaling for details on how to use this API operation.
  2641  //
  2642  // The context must be non-nil and will be used for request cancellation. If
  2643  // the context is nil a panic will occur. In the future the SDK may create
  2644  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2645  // for more information on using Contexts.
  2646  func (c *DynamoDB) DescribeTableReplicaAutoScalingWithContext(ctx aws.Context, input *DescribeTableReplicaAutoScalingInput, opts ...request.Option) (*DescribeTableReplicaAutoScalingOutput, error) {
  2647  	req, out := c.DescribeTableReplicaAutoScalingRequest(input)
  2648  	req.SetContext(ctx)
  2649  	req.ApplyOptions(opts...)
  2650  	return out, req.Send()
  2651  }
  2652  
  2653  const opDescribeTimeToLive = "DescribeTimeToLive"
  2654  
  2655  // DescribeTimeToLiveRequest generates a "aws/request.Request" representing the
  2656  // client's request for the DescribeTimeToLive operation. The "output" return
  2657  // value will be populated with the request's response once the request completes
  2658  // successfully.
  2659  //
  2660  // Use "Send" method on the returned Request to send the API call to the service.
  2661  // the "output" return value is not valid until after Send returns without error.
  2662  //
  2663  // See DescribeTimeToLive for more information on using the DescribeTimeToLive
  2664  // API call, and error handling.
  2665  //
  2666  // This method is useful when you want to inject custom logic or configuration
  2667  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2668  //
  2669  //
  2670  //    // Example sending a request using the DescribeTimeToLiveRequest method.
  2671  //    req, resp := client.DescribeTimeToLiveRequest(params)
  2672  //
  2673  //    err := req.Send()
  2674  //    if err == nil { // resp is now filled
  2675  //        fmt.Println(resp)
  2676  //    }
  2677  //
  2678  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeTimeToLive
  2679  func (c *DynamoDB) DescribeTimeToLiveRequest(input *DescribeTimeToLiveInput) (req *request.Request, output *DescribeTimeToLiveOutput) {
  2680  	op := &request.Operation{
  2681  		Name:       opDescribeTimeToLive,
  2682  		HTTPMethod: "POST",
  2683  		HTTPPath:   "/",
  2684  	}
  2685  
  2686  	if input == nil {
  2687  		input = &DescribeTimeToLiveInput{}
  2688  	}
  2689  
  2690  	output = &DescribeTimeToLiveOutput{}
  2691  	req = c.newRequest(op, input, output)
  2692  	// if custom endpoint for the request is set to a non empty string,
  2693  	// we skip the endpoint discovery workflow.
  2694  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  2695  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  2696  			de := discovererDescribeEndpoints{
  2697  				Required:      false,
  2698  				EndpointCache: c.endpointCache,
  2699  				Params: map[string]*string{
  2700  					"op": aws.String(req.Operation.Name),
  2701  				},
  2702  				Client: c,
  2703  			}
  2704  
  2705  			for k, v := range de.Params {
  2706  				if v == nil {
  2707  					delete(de.Params, k)
  2708  				}
  2709  			}
  2710  
  2711  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  2712  				Name: "crr.endpointdiscovery",
  2713  				Fn:   de.Handler,
  2714  			})
  2715  		}
  2716  	}
  2717  	return
  2718  }
  2719  
  2720  // DescribeTimeToLive API operation for Amazon DynamoDB.
  2721  //
  2722  // Gives a description of the Time to Live (TTL) status on the specified table.
  2723  //
  2724  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2725  // with awserr.Error's Code and Message methods to get detailed information about
  2726  // the error.
  2727  //
  2728  // See the AWS API reference guide for Amazon DynamoDB's
  2729  // API operation DescribeTimeToLive for usage and error information.
  2730  //
  2731  // Returned Error Types:
  2732  //   * ResourceNotFoundException
  2733  //   The operation tried to access a nonexistent table or index. The resource
  2734  //   might not be specified correctly, or its status might not be ACTIVE.
  2735  //
  2736  //   * InternalServerError
  2737  //   An error occurred on the server side.
  2738  //
  2739  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeTimeToLive
  2740  func (c *DynamoDB) DescribeTimeToLive(input *DescribeTimeToLiveInput) (*DescribeTimeToLiveOutput, error) {
  2741  	req, out := c.DescribeTimeToLiveRequest(input)
  2742  	return out, req.Send()
  2743  }
  2744  
  2745  // DescribeTimeToLiveWithContext is the same as DescribeTimeToLive with the addition of
  2746  // the ability to pass a context and additional request options.
  2747  //
  2748  // See DescribeTimeToLive for details on how to use this API operation.
  2749  //
  2750  // The context must be non-nil and will be used for request cancellation. If
  2751  // the context is nil a panic will occur. In the future the SDK may create
  2752  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2753  // for more information on using Contexts.
  2754  func (c *DynamoDB) DescribeTimeToLiveWithContext(ctx aws.Context, input *DescribeTimeToLiveInput, opts ...request.Option) (*DescribeTimeToLiveOutput, error) {
  2755  	req, out := c.DescribeTimeToLiveRequest(input)
  2756  	req.SetContext(ctx)
  2757  	req.ApplyOptions(opts...)
  2758  	return out, req.Send()
  2759  }
  2760  
  2761  const opDisableKinesisStreamingDestination = "DisableKinesisStreamingDestination"
  2762  
  2763  // DisableKinesisStreamingDestinationRequest generates a "aws/request.Request" representing the
  2764  // client's request for the DisableKinesisStreamingDestination operation. The "output" return
  2765  // value will be populated with the request's response once the request completes
  2766  // successfully.
  2767  //
  2768  // Use "Send" method on the returned Request to send the API call to the service.
  2769  // the "output" return value is not valid until after Send returns without error.
  2770  //
  2771  // See DisableKinesisStreamingDestination for more information on using the DisableKinesisStreamingDestination
  2772  // API call, and error handling.
  2773  //
  2774  // This method is useful when you want to inject custom logic or configuration
  2775  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2776  //
  2777  //
  2778  //    // Example sending a request using the DisableKinesisStreamingDestinationRequest method.
  2779  //    req, resp := client.DisableKinesisStreamingDestinationRequest(params)
  2780  //
  2781  //    err := req.Send()
  2782  //    if err == nil { // resp is now filled
  2783  //        fmt.Println(resp)
  2784  //    }
  2785  //
  2786  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DisableKinesisStreamingDestination
  2787  func (c *DynamoDB) DisableKinesisStreamingDestinationRequest(input *DisableKinesisStreamingDestinationInput) (req *request.Request, output *DisableKinesisStreamingDestinationOutput) {
  2788  	op := &request.Operation{
  2789  		Name:       opDisableKinesisStreamingDestination,
  2790  		HTTPMethod: "POST",
  2791  		HTTPPath:   "/",
  2792  	}
  2793  
  2794  	if input == nil {
  2795  		input = &DisableKinesisStreamingDestinationInput{}
  2796  	}
  2797  
  2798  	output = &DisableKinesisStreamingDestinationOutput{}
  2799  	req = c.newRequest(op, input, output)
  2800  	// if custom endpoint for the request is set to a non empty string,
  2801  	// we skip the endpoint discovery workflow.
  2802  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  2803  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  2804  			de := discovererDescribeEndpoints{
  2805  				Required:      false,
  2806  				EndpointCache: c.endpointCache,
  2807  				Params: map[string]*string{
  2808  					"op": aws.String(req.Operation.Name),
  2809  				},
  2810  				Client: c,
  2811  			}
  2812  
  2813  			for k, v := range de.Params {
  2814  				if v == nil {
  2815  					delete(de.Params, k)
  2816  				}
  2817  			}
  2818  
  2819  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  2820  				Name: "crr.endpointdiscovery",
  2821  				Fn:   de.Handler,
  2822  			})
  2823  		}
  2824  	}
  2825  	return
  2826  }
  2827  
  2828  // DisableKinesisStreamingDestination API operation for Amazon DynamoDB.
  2829  //
  2830  // Stops replication from the DynamoDB table to the Kinesis data stream. This
  2831  // is done without deleting either of the resources.
  2832  //
  2833  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2834  // with awserr.Error's Code and Message methods to get detailed information about
  2835  // the error.
  2836  //
  2837  // See the AWS API reference guide for Amazon DynamoDB's
  2838  // API operation DisableKinesisStreamingDestination for usage and error information.
  2839  //
  2840  // Returned Error Types:
  2841  //   * InternalServerError
  2842  //   An error occurred on the server side.
  2843  //
  2844  //   * LimitExceededException
  2845  //   There is no limit to the number of daily on-demand backups that can be taken.
  2846  //
  2847  //   Up to 50 simultaneous table operations are allowed per account. These operations
  2848  //   include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup,
  2849  //   and RestoreTableToPointInTime.
  2850  //
  2851  //   The only exception is when you are creating a table with one or more secondary
  2852  //   indexes. You can have up to 25 such requests running at a time; however,
  2853  //   if the table or index specifications are complex, DynamoDB might temporarily
  2854  //   reduce the number of concurrent operations.
  2855  //
  2856  //   There is a soft account quota of 256 tables.
  2857  //
  2858  //   * ResourceInUseException
  2859  //   The operation conflicts with the resource's availability. For example, you
  2860  //   attempted to recreate an existing table, or tried to delete a table currently
  2861  //   in the CREATING state.
  2862  //
  2863  //   * ResourceNotFoundException
  2864  //   The operation tried to access a nonexistent table or index. The resource
  2865  //   might not be specified correctly, or its status might not be ACTIVE.
  2866  //
  2867  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DisableKinesisStreamingDestination
  2868  func (c *DynamoDB) DisableKinesisStreamingDestination(input *DisableKinesisStreamingDestinationInput) (*DisableKinesisStreamingDestinationOutput, error) {
  2869  	req, out := c.DisableKinesisStreamingDestinationRequest(input)
  2870  	return out, req.Send()
  2871  }
  2872  
  2873  // DisableKinesisStreamingDestinationWithContext is the same as DisableKinesisStreamingDestination with the addition of
  2874  // the ability to pass a context and additional request options.
  2875  //
  2876  // See DisableKinesisStreamingDestination for details on how to use this API operation.
  2877  //
  2878  // The context must be non-nil and will be used for request cancellation. If
  2879  // the context is nil a panic will occur. In the future the SDK may create
  2880  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2881  // for more information on using Contexts.
  2882  func (c *DynamoDB) DisableKinesisStreamingDestinationWithContext(ctx aws.Context, input *DisableKinesisStreamingDestinationInput, opts ...request.Option) (*DisableKinesisStreamingDestinationOutput, error) {
  2883  	req, out := c.DisableKinesisStreamingDestinationRequest(input)
  2884  	req.SetContext(ctx)
  2885  	req.ApplyOptions(opts...)
  2886  	return out, req.Send()
  2887  }
  2888  
  2889  const opEnableKinesisStreamingDestination = "EnableKinesisStreamingDestination"
  2890  
  2891  // EnableKinesisStreamingDestinationRequest generates a "aws/request.Request" representing the
  2892  // client's request for the EnableKinesisStreamingDestination operation. The "output" return
  2893  // value will be populated with the request's response once the request completes
  2894  // successfully.
  2895  //
  2896  // Use "Send" method on the returned Request to send the API call to the service.
  2897  // the "output" return value is not valid until after Send returns without error.
  2898  //
  2899  // See EnableKinesisStreamingDestination for more information on using the EnableKinesisStreamingDestination
  2900  // API call, and error handling.
  2901  //
  2902  // This method is useful when you want to inject custom logic or configuration
  2903  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2904  //
  2905  //
  2906  //    // Example sending a request using the EnableKinesisStreamingDestinationRequest method.
  2907  //    req, resp := client.EnableKinesisStreamingDestinationRequest(params)
  2908  //
  2909  //    err := req.Send()
  2910  //    if err == nil { // resp is now filled
  2911  //        fmt.Println(resp)
  2912  //    }
  2913  //
  2914  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/EnableKinesisStreamingDestination
  2915  func (c *DynamoDB) EnableKinesisStreamingDestinationRequest(input *EnableKinesisStreamingDestinationInput) (req *request.Request, output *EnableKinesisStreamingDestinationOutput) {
  2916  	op := &request.Operation{
  2917  		Name:       opEnableKinesisStreamingDestination,
  2918  		HTTPMethod: "POST",
  2919  		HTTPPath:   "/",
  2920  	}
  2921  
  2922  	if input == nil {
  2923  		input = &EnableKinesisStreamingDestinationInput{}
  2924  	}
  2925  
  2926  	output = &EnableKinesisStreamingDestinationOutput{}
  2927  	req = c.newRequest(op, input, output)
  2928  	// if custom endpoint for the request is set to a non empty string,
  2929  	// we skip the endpoint discovery workflow.
  2930  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  2931  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  2932  			de := discovererDescribeEndpoints{
  2933  				Required:      false,
  2934  				EndpointCache: c.endpointCache,
  2935  				Params: map[string]*string{
  2936  					"op": aws.String(req.Operation.Name),
  2937  				},
  2938  				Client: c,
  2939  			}
  2940  
  2941  			for k, v := range de.Params {
  2942  				if v == nil {
  2943  					delete(de.Params, k)
  2944  				}
  2945  			}
  2946  
  2947  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  2948  				Name: "crr.endpointdiscovery",
  2949  				Fn:   de.Handler,
  2950  			})
  2951  		}
  2952  	}
  2953  	return
  2954  }
  2955  
  2956  // EnableKinesisStreamingDestination API operation for Amazon DynamoDB.
  2957  //
  2958  // Starts table data replication to the specified Kinesis data stream at a timestamp
  2959  // chosen during the enable workflow. If this operation doesn't return results
  2960  // immediately, use DescribeKinesisStreamingDestination to check if streaming
  2961  // to the Kinesis data stream is ACTIVE.
  2962  //
  2963  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2964  // with awserr.Error's Code and Message methods to get detailed information about
  2965  // the error.
  2966  //
  2967  // See the AWS API reference guide for Amazon DynamoDB's
  2968  // API operation EnableKinesisStreamingDestination for usage and error information.
  2969  //
  2970  // Returned Error Types:
  2971  //   * InternalServerError
  2972  //   An error occurred on the server side.
  2973  //
  2974  //   * LimitExceededException
  2975  //   There is no limit to the number of daily on-demand backups that can be taken.
  2976  //
  2977  //   Up to 50 simultaneous table operations are allowed per account. These operations
  2978  //   include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup,
  2979  //   and RestoreTableToPointInTime.
  2980  //
  2981  //   The only exception is when you are creating a table with one or more secondary
  2982  //   indexes. You can have up to 25 such requests running at a time; however,
  2983  //   if the table or index specifications are complex, DynamoDB might temporarily
  2984  //   reduce the number of concurrent operations.
  2985  //
  2986  //   There is a soft account quota of 256 tables.
  2987  //
  2988  //   * ResourceInUseException
  2989  //   The operation conflicts with the resource's availability. For example, you
  2990  //   attempted to recreate an existing table, or tried to delete a table currently
  2991  //   in the CREATING state.
  2992  //
  2993  //   * ResourceNotFoundException
  2994  //   The operation tried to access a nonexistent table or index. The resource
  2995  //   might not be specified correctly, or its status might not be ACTIVE.
  2996  //
  2997  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/EnableKinesisStreamingDestination
  2998  func (c *DynamoDB) EnableKinesisStreamingDestination(input *EnableKinesisStreamingDestinationInput) (*EnableKinesisStreamingDestinationOutput, error) {
  2999  	req, out := c.EnableKinesisStreamingDestinationRequest(input)
  3000  	return out, req.Send()
  3001  }
  3002  
  3003  // EnableKinesisStreamingDestinationWithContext is the same as EnableKinesisStreamingDestination with the addition of
  3004  // the ability to pass a context and additional request options.
  3005  //
  3006  // See EnableKinesisStreamingDestination for details on how to use this API operation.
  3007  //
  3008  // The context must be non-nil and will be used for request cancellation. If
  3009  // the context is nil a panic will occur. In the future the SDK may create
  3010  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3011  // for more information on using Contexts.
  3012  func (c *DynamoDB) EnableKinesisStreamingDestinationWithContext(ctx aws.Context, input *EnableKinesisStreamingDestinationInput, opts ...request.Option) (*EnableKinesisStreamingDestinationOutput, error) {
  3013  	req, out := c.EnableKinesisStreamingDestinationRequest(input)
  3014  	req.SetContext(ctx)
  3015  	req.ApplyOptions(opts...)
  3016  	return out, req.Send()
  3017  }
  3018  
  3019  const opExecuteStatement = "ExecuteStatement"
  3020  
  3021  // ExecuteStatementRequest generates a "aws/request.Request" representing the
  3022  // client's request for the ExecuteStatement operation. The "output" return
  3023  // value will be populated with the request's response once the request completes
  3024  // successfully.
  3025  //
  3026  // Use "Send" method on the returned Request to send the API call to the service.
  3027  // the "output" return value is not valid until after Send returns without error.
  3028  //
  3029  // See ExecuteStatement for more information on using the ExecuteStatement
  3030  // API call, and error handling.
  3031  //
  3032  // This method is useful when you want to inject custom logic or configuration
  3033  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3034  //
  3035  //
  3036  //    // Example sending a request using the ExecuteStatementRequest method.
  3037  //    req, resp := client.ExecuteStatementRequest(params)
  3038  //
  3039  //    err := req.Send()
  3040  //    if err == nil { // resp is now filled
  3041  //        fmt.Println(resp)
  3042  //    }
  3043  //
  3044  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ExecuteStatement
  3045  func (c *DynamoDB) ExecuteStatementRequest(input *ExecuteStatementInput) (req *request.Request, output *ExecuteStatementOutput) {
  3046  	op := &request.Operation{
  3047  		Name:       opExecuteStatement,
  3048  		HTTPMethod: "POST",
  3049  		HTTPPath:   "/",
  3050  	}
  3051  
  3052  	if input == nil {
  3053  		input = &ExecuteStatementInput{}
  3054  	}
  3055  
  3056  	output = &ExecuteStatementOutput{}
  3057  	req = c.newRequest(op, input, output)
  3058  	return
  3059  }
  3060  
  3061  // ExecuteStatement API operation for Amazon DynamoDB.
  3062  //
  3063  // This operation allows you to perform reads and singleton writes on data stored
  3064  // in DynamoDB, using PartiQL.
  3065  //
  3066  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3067  // with awserr.Error's Code and Message methods to get detailed information about
  3068  // the error.
  3069  //
  3070  // See the AWS API reference guide for Amazon DynamoDB's
  3071  // API operation ExecuteStatement for usage and error information.
  3072  //
  3073  // Returned Error Types:
  3074  //   * ConditionalCheckFailedException
  3075  //   A condition specified in the operation could not be evaluated.
  3076  //
  3077  //   * ProvisionedThroughputExceededException
  3078  //   Your request rate is too high. The AWS SDKs for DynamoDB automatically retry
  3079  //   requests that receive this exception. Your request is eventually successful,
  3080  //   unless your retry queue is too large to finish. Reduce the frequency of requests
  3081  //   and use exponential backoff. For more information, go to Error Retries and
  3082  //   Exponential Backoff (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.RetryAndBackoff)
  3083  //   in the Amazon DynamoDB Developer Guide.
  3084  //
  3085  //   * ResourceNotFoundException
  3086  //   The operation tried to access a nonexistent table or index. The resource
  3087  //   might not be specified correctly, or its status might not be ACTIVE.
  3088  //
  3089  //   * ItemCollectionSizeLimitExceededException
  3090  //   An item collection is too large. This exception is only returned for tables
  3091  //   that have one or more local secondary indexes.
  3092  //
  3093  //   * TransactionConflictException
  3094  //   Operation was rejected because there is an ongoing transaction for the item.
  3095  //
  3096  //   * RequestLimitExceeded
  3097  //   Throughput exceeds the current throughput quota for your account. Please
  3098  //   contact AWS Support at AWS Support (https://aws.amazon.com/support) to request
  3099  //   a quota increase.
  3100  //
  3101  //   * InternalServerError
  3102  //   An error occurred on the server side.
  3103  //
  3104  //   * DuplicateItemException
  3105  //   There was an attempt to insert an item with the same primary key as an item
  3106  //   that already exists in the DynamoDB table.
  3107  //
  3108  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ExecuteStatement
  3109  func (c *DynamoDB) ExecuteStatement(input *ExecuteStatementInput) (*ExecuteStatementOutput, error) {
  3110  	req, out := c.ExecuteStatementRequest(input)
  3111  	return out, req.Send()
  3112  }
  3113  
  3114  // ExecuteStatementWithContext is the same as ExecuteStatement with the addition of
  3115  // the ability to pass a context and additional request options.
  3116  //
  3117  // See ExecuteStatement for details on how to use this API operation.
  3118  //
  3119  // The context must be non-nil and will be used for request cancellation. If
  3120  // the context is nil a panic will occur. In the future the SDK may create
  3121  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3122  // for more information on using Contexts.
  3123  func (c *DynamoDB) ExecuteStatementWithContext(ctx aws.Context, input *ExecuteStatementInput, opts ...request.Option) (*ExecuteStatementOutput, error) {
  3124  	req, out := c.ExecuteStatementRequest(input)
  3125  	req.SetContext(ctx)
  3126  	req.ApplyOptions(opts...)
  3127  	return out, req.Send()
  3128  }
  3129  
  3130  const opExecuteTransaction = "ExecuteTransaction"
  3131  
  3132  // ExecuteTransactionRequest generates a "aws/request.Request" representing the
  3133  // client's request for the ExecuteTransaction operation. The "output" return
  3134  // value will be populated with the request's response once the request completes
  3135  // successfully.
  3136  //
  3137  // Use "Send" method on the returned Request to send the API call to the service.
  3138  // the "output" return value is not valid until after Send returns without error.
  3139  //
  3140  // See ExecuteTransaction for more information on using the ExecuteTransaction
  3141  // API call, and error handling.
  3142  //
  3143  // This method is useful when you want to inject custom logic or configuration
  3144  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3145  //
  3146  //
  3147  //    // Example sending a request using the ExecuteTransactionRequest method.
  3148  //    req, resp := client.ExecuteTransactionRequest(params)
  3149  //
  3150  //    err := req.Send()
  3151  //    if err == nil { // resp is now filled
  3152  //        fmt.Println(resp)
  3153  //    }
  3154  //
  3155  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ExecuteTransaction
  3156  func (c *DynamoDB) ExecuteTransactionRequest(input *ExecuteTransactionInput) (req *request.Request, output *ExecuteTransactionOutput) {
  3157  	op := &request.Operation{
  3158  		Name:       opExecuteTransaction,
  3159  		HTTPMethod: "POST",
  3160  		HTTPPath:   "/",
  3161  	}
  3162  
  3163  	if input == nil {
  3164  		input = &ExecuteTransactionInput{}
  3165  	}
  3166  
  3167  	output = &ExecuteTransactionOutput{}
  3168  	req = c.newRequest(op, input, output)
  3169  	return
  3170  }
  3171  
  3172  // ExecuteTransaction API operation for Amazon DynamoDB.
  3173  //
  3174  // This operation allows you to perform transactional reads or writes on data
  3175  // stored in DynamoDB, using PartiQL.
  3176  //
  3177  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3178  // with awserr.Error's Code and Message methods to get detailed information about
  3179  // the error.
  3180  //
  3181  // See the AWS API reference guide for Amazon DynamoDB's
  3182  // API operation ExecuteTransaction for usage and error information.
  3183  //
  3184  // Returned Error Types:
  3185  //   * ResourceNotFoundException
  3186  //   The operation tried to access a nonexistent table or index. The resource
  3187  //   might not be specified correctly, or its status might not be ACTIVE.
  3188  //
  3189  //   * TransactionCanceledException
  3190  //   The entire transaction request was canceled.
  3191  //
  3192  //   DynamoDB cancels a TransactWriteItems request under the following circumstances:
  3193  //
  3194  //      * A condition in one of the condition expressions is not met.
  3195  //
  3196  //      * A table in the TransactWriteItems request is in a different account
  3197  //      or region.
  3198  //
  3199  //      * More than one action in the TransactWriteItems operation targets the
  3200  //      same item.
  3201  //
  3202  //      * There is insufficient provisioned capacity for the transaction to be
  3203  //      completed.
  3204  //
  3205  //      * An item size becomes too large (larger than 400 KB), or a local secondary
  3206  //      index (LSI) becomes too large, or a similar validation error occurs because
  3207  //      of changes made by the transaction.
  3208  //
  3209  //      * There is a user error, such as an invalid data format.
  3210  //
  3211  //   DynamoDB cancels a TransactGetItems request under the following circumstances:
  3212  //
  3213  //      * There is an ongoing TransactGetItems operation that conflicts with a
  3214  //      concurrent PutItem, UpdateItem, DeleteItem or TransactWriteItems request.
  3215  //      In this case the TransactGetItems operation fails with a TransactionCanceledException.
  3216  //
  3217  //      * A table in the TransactGetItems request is in a different account or
  3218  //      region.
  3219  //
  3220  //      * There is insufficient provisioned capacity for the transaction to be
  3221  //      completed.
  3222  //
  3223  //      * There is a user error, such as an invalid data format.
  3224  //
  3225  //   If using Java, DynamoDB lists the cancellation reasons on the CancellationReasons
  3226  //   property. This property is not set for other languages. Transaction cancellation
  3227  //   reasons are ordered in the order of requested items, if an item has no error
  3228  //   it will have NONE code and Null message.
  3229  //
  3230  //   Cancellation reason codes and possible error messages:
  3231  //
  3232  //      * No Errors: Code: NONE Message: null
  3233  //
  3234  //      * Conditional Check Failed: Code: ConditionalCheckFailed Message: The
  3235  //      conditional request failed.
  3236  //
  3237  //      * Item Collection Size Limit Exceeded: Code: ItemCollectionSizeLimitExceeded
  3238  //      Message: Collection size exceeded.
  3239  //
  3240  //      * Transaction Conflict: Code: TransactionConflict Message: Transaction
  3241  //      is ongoing for the item.
  3242  //
  3243  //      * Provisioned Throughput Exceeded: Code: ProvisionedThroughputExceeded
  3244  //      Messages: The level of configured provisioned throughput for the table
  3245  //      was exceeded. Consider increasing your provisioning level with the UpdateTable
  3246  //      API. This Message is received when provisioned throughput is exceeded
  3247  //      is on a provisioned DynamoDB table. The level of configured provisioned
  3248  //      throughput for one or more global secondary indexes of the table was exceeded.
  3249  //      Consider increasing your provisioning level for the under-provisioned
  3250  //      global secondary indexes with the UpdateTable API. This message is returned
  3251  //      when provisioned throughput is exceeded is on a provisioned GSI.
  3252  //
  3253  //      * Throttling Error: Code: ThrottlingError Messages: Throughput exceeds
  3254  //      the current capacity of your table or index. DynamoDB is automatically
  3255  //      scaling your table or index so please try again shortly. If exceptions
  3256  //      persist, check if you have a hot key: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-partition-key-design.html.
  3257  //      This message is returned when writes get throttled on an On-Demand table
  3258  //      as DynamoDB is automatically scaling the table. Throughput exceeds the
  3259  //      current capacity for one or more global secondary indexes. DynamoDB is
  3260  //      automatically scaling your index so please try again shortly. This message
  3261  //      is returned when when writes get throttled on an On-Demand GSI as DynamoDB
  3262  //      is automatically scaling the GSI.
  3263  //
  3264  //      * Validation Error: Code: ValidationError Messages: One or more parameter
  3265  //      values were invalid. The update expression attempted to update the secondary
  3266  //      index key beyond allowed size limits. The update expression attempted
  3267  //      to update the secondary index key to unsupported type. An operand in the
  3268  //      update expression has an incorrect data type. Item size to update has
  3269  //      exceeded the maximum allowed size. Number overflow. Attempting to store
  3270  //      a number with magnitude larger than supported range. Type mismatch for
  3271  //      attribute to update. Nesting Levels have exceeded supported limits. The
  3272  //      document path provided in the update expression is invalid for update.
  3273  //      The provided expression refers to an attribute that does not exist in
  3274  //      the item.
  3275  //
  3276  //   * TransactionInProgressException
  3277  //   The transaction with the given request token is already in progress.
  3278  //
  3279  //   * IdempotentParameterMismatchException
  3280  //   DynamoDB rejected the request because you retried a request with a different
  3281  //   payload but with an idempotent token that was already used.
  3282  //
  3283  //   * ProvisionedThroughputExceededException
  3284  //   Your request rate is too high. The AWS SDKs for DynamoDB automatically retry
  3285  //   requests that receive this exception. Your request is eventually successful,
  3286  //   unless your retry queue is too large to finish. Reduce the frequency of requests
  3287  //   and use exponential backoff. For more information, go to Error Retries and
  3288  //   Exponential Backoff (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.RetryAndBackoff)
  3289  //   in the Amazon DynamoDB Developer Guide.
  3290  //
  3291  //   * RequestLimitExceeded
  3292  //   Throughput exceeds the current throughput quota for your account. Please
  3293  //   contact AWS Support at AWS Support (https://aws.amazon.com/support) to request
  3294  //   a quota increase.
  3295  //
  3296  //   * InternalServerError
  3297  //   An error occurred on the server side.
  3298  //
  3299  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ExecuteTransaction
  3300  func (c *DynamoDB) ExecuteTransaction(input *ExecuteTransactionInput) (*ExecuteTransactionOutput, error) {
  3301  	req, out := c.ExecuteTransactionRequest(input)
  3302  	return out, req.Send()
  3303  }
  3304  
  3305  // ExecuteTransactionWithContext is the same as ExecuteTransaction with the addition of
  3306  // the ability to pass a context and additional request options.
  3307  //
  3308  // See ExecuteTransaction for details on how to use this API operation.
  3309  //
  3310  // The context must be non-nil and will be used for request cancellation. If
  3311  // the context is nil a panic will occur. In the future the SDK may create
  3312  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3313  // for more information on using Contexts.
  3314  func (c *DynamoDB) ExecuteTransactionWithContext(ctx aws.Context, input *ExecuteTransactionInput, opts ...request.Option) (*ExecuteTransactionOutput, error) {
  3315  	req, out := c.ExecuteTransactionRequest(input)
  3316  	req.SetContext(ctx)
  3317  	req.ApplyOptions(opts...)
  3318  	return out, req.Send()
  3319  }
  3320  
  3321  const opExportTableToPointInTime = "ExportTableToPointInTime"
  3322  
  3323  // ExportTableToPointInTimeRequest generates a "aws/request.Request" representing the
  3324  // client's request for the ExportTableToPointInTime operation. The "output" return
  3325  // value will be populated with the request's response once the request completes
  3326  // successfully.
  3327  //
  3328  // Use "Send" method on the returned Request to send the API call to the service.
  3329  // the "output" return value is not valid until after Send returns without error.
  3330  //
  3331  // See ExportTableToPointInTime for more information on using the ExportTableToPointInTime
  3332  // API call, and error handling.
  3333  //
  3334  // This method is useful when you want to inject custom logic or configuration
  3335  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3336  //
  3337  //
  3338  //    // Example sending a request using the ExportTableToPointInTimeRequest method.
  3339  //    req, resp := client.ExportTableToPointInTimeRequest(params)
  3340  //
  3341  //    err := req.Send()
  3342  //    if err == nil { // resp is now filled
  3343  //        fmt.Println(resp)
  3344  //    }
  3345  //
  3346  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ExportTableToPointInTime
  3347  func (c *DynamoDB) ExportTableToPointInTimeRequest(input *ExportTableToPointInTimeInput) (req *request.Request, output *ExportTableToPointInTimeOutput) {
  3348  	op := &request.Operation{
  3349  		Name:       opExportTableToPointInTime,
  3350  		HTTPMethod: "POST",
  3351  		HTTPPath:   "/",
  3352  	}
  3353  
  3354  	if input == nil {
  3355  		input = &ExportTableToPointInTimeInput{}
  3356  	}
  3357  
  3358  	output = &ExportTableToPointInTimeOutput{}
  3359  	req = c.newRequest(op, input, output)
  3360  	return
  3361  }
  3362  
  3363  // ExportTableToPointInTime API operation for Amazon DynamoDB.
  3364  //
  3365  // Exports table data to an S3 bucket. The table must have point in time recovery
  3366  // enabled, and you can export data from any time within the point in time recovery
  3367  // window.
  3368  //
  3369  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3370  // with awserr.Error's Code and Message methods to get detailed information about
  3371  // the error.
  3372  //
  3373  // See the AWS API reference guide for Amazon DynamoDB's
  3374  // API operation ExportTableToPointInTime for usage and error information.
  3375  //
  3376  // Returned Error Types:
  3377  //   * TableNotFoundException
  3378  //   A source table with the name TableName does not currently exist within the
  3379  //   subscriber's account.
  3380  //
  3381  //   * PointInTimeRecoveryUnavailableException
  3382  //   Point in time recovery has not yet been enabled for this source table.
  3383  //
  3384  //   * LimitExceededException
  3385  //   There is no limit to the number of daily on-demand backups that can be taken.
  3386  //
  3387  //   Up to 50 simultaneous table operations are allowed per account. These operations
  3388  //   include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup,
  3389  //   and RestoreTableToPointInTime.
  3390  //
  3391  //   The only exception is when you are creating a table with one or more secondary
  3392  //   indexes. You can have up to 25 such requests running at a time; however,
  3393  //   if the table or index specifications are complex, DynamoDB might temporarily
  3394  //   reduce the number of concurrent operations.
  3395  //
  3396  //   There is a soft account quota of 256 tables.
  3397  //
  3398  //   * InvalidExportTimeException
  3399  //   The specified ExportTime is outside of the point in time recovery window.
  3400  //
  3401  //   * ExportConflictException
  3402  //   There was a conflict when writing to the specified S3 bucket.
  3403  //
  3404  //   * InternalServerError
  3405  //   An error occurred on the server side.
  3406  //
  3407  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ExportTableToPointInTime
  3408  func (c *DynamoDB) ExportTableToPointInTime(input *ExportTableToPointInTimeInput) (*ExportTableToPointInTimeOutput, error) {
  3409  	req, out := c.ExportTableToPointInTimeRequest(input)
  3410  	return out, req.Send()
  3411  }
  3412  
  3413  // ExportTableToPointInTimeWithContext is the same as ExportTableToPointInTime with the addition of
  3414  // the ability to pass a context and additional request options.
  3415  //
  3416  // See ExportTableToPointInTime for details on how to use this API operation.
  3417  //
  3418  // The context must be non-nil and will be used for request cancellation. If
  3419  // the context is nil a panic will occur. In the future the SDK may create
  3420  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3421  // for more information on using Contexts.
  3422  func (c *DynamoDB) ExportTableToPointInTimeWithContext(ctx aws.Context, input *ExportTableToPointInTimeInput, opts ...request.Option) (*ExportTableToPointInTimeOutput, error) {
  3423  	req, out := c.ExportTableToPointInTimeRequest(input)
  3424  	req.SetContext(ctx)
  3425  	req.ApplyOptions(opts...)
  3426  	return out, req.Send()
  3427  }
  3428  
  3429  const opGetItem = "GetItem"
  3430  
  3431  // GetItemRequest generates a "aws/request.Request" representing the
  3432  // client's request for the GetItem operation. The "output" return
  3433  // value will be populated with the request's response once the request completes
  3434  // successfully.
  3435  //
  3436  // Use "Send" method on the returned Request to send the API call to the service.
  3437  // the "output" return value is not valid until after Send returns without error.
  3438  //
  3439  // See GetItem for more information on using the GetItem
  3440  // API call, and error handling.
  3441  //
  3442  // This method is useful when you want to inject custom logic or configuration
  3443  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3444  //
  3445  //
  3446  //    // Example sending a request using the GetItemRequest method.
  3447  //    req, resp := client.GetItemRequest(params)
  3448  //
  3449  //    err := req.Send()
  3450  //    if err == nil { // resp is now filled
  3451  //        fmt.Println(resp)
  3452  //    }
  3453  //
  3454  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/GetItem
  3455  func (c *DynamoDB) GetItemRequest(input *GetItemInput) (req *request.Request, output *GetItemOutput) {
  3456  	op := &request.Operation{
  3457  		Name:       opGetItem,
  3458  		HTTPMethod: "POST",
  3459  		HTTPPath:   "/",
  3460  	}
  3461  
  3462  	if input == nil {
  3463  		input = &GetItemInput{}
  3464  	}
  3465  
  3466  	output = &GetItemOutput{}
  3467  	req = c.newRequest(op, input, output)
  3468  	// if custom endpoint for the request is set to a non empty string,
  3469  	// we skip the endpoint discovery workflow.
  3470  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  3471  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  3472  			de := discovererDescribeEndpoints{
  3473  				Required:      false,
  3474  				EndpointCache: c.endpointCache,
  3475  				Params: map[string]*string{
  3476  					"op": aws.String(req.Operation.Name),
  3477  				},
  3478  				Client: c,
  3479  			}
  3480  
  3481  			for k, v := range de.Params {
  3482  				if v == nil {
  3483  					delete(de.Params, k)
  3484  				}
  3485  			}
  3486  
  3487  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  3488  				Name: "crr.endpointdiscovery",
  3489  				Fn:   de.Handler,
  3490  			})
  3491  		}
  3492  	}
  3493  	return
  3494  }
  3495  
  3496  // GetItem API operation for Amazon DynamoDB.
  3497  //
  3498  // The GetItem operation returns a set of attributes for the item with the given
  3499  // primary key. If there is no matching item, GetItem does not return any data
  3500  // and there will be no Item element in the response.
  3501  //
  3502  // GetItem provides an eventually consistent read by default. If your application
  3503  // requires a strongly consistent read, set ConsistentRead to true. Although
  3504  // a strongly consistent read might take more time than an eventually consistent
  3505  // read, it always returns the last updated value.
  3506  //
  3507  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3508  // with awserr.Error's Code and Message methods to get detailed information about
  3509  // the error.
  3510  //
  3511  // See the AWS API reference guide for Amazon DynamoDB's
  3512  // API operation GetItem for usage and error information.
  3513  //
  3514  // Returned Error Types:
  3515  //   * ProvisionedThroughputExceededException
  3516  //   Your request rate is too high. The AWS SDKs for DynamoDB automatically retry
  3517  //   requests that receive this exception. Your request is eventually successful,
  3518  //   unless your retry queue is too large to finish. Reduce the frequency of requests
  3519  //   and use exponential backoff. For more information, go to Error Retries and
  3520  //   Exponential Backoff (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.RetryAndBackoff)
  3521  //   in the Amazon DynamoDB Developer Guide.
  3522  //
  3523  //   * ResourceNotFoundException
  3524  //   The operation tried to access a nonexistent table or index. The resource
  3525  //   might not be specified correctly, or its status might not be ACTIVE.
  3526  //
  3527  //   * RequestLimitExceeded
  3528  //   Throughput exceeds the current throughput quota for your account. Please
  3529  //   contact AWS Support at AWS Support (https://aws.amazon.com/support) to request
  3530  //   a quota increase.
  3531  //
  3532  //   * InternalServerError
  3533  //   An error occurred on the server side.
  3534  //
  3535  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/GetItem
  3536  func (c *DynamoDB) GetItem(input *GetItemInput) (*GetItemOutput, error) {
  3537  	req, out := c.GetItemRequest(input)
  3538  	return out, req.Send()
  3539  }
  3540  
  3541  // GetItemWithContext is the same as GetItem with the addition of
  3542  // the ability to pass a context and additional request options.
  3543  //
  3544  // See GetItem for details on how to use this API operation.
  3545  //
  3546  // The context must be non-nil and will be used for request cancellation. If
  3547  // the context is nil a panic will occur. In the future the SDK may create
  3548  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3549  // for more information on using Contexts.
  3550  func (c *DynamoDB) GetItemWithContext(ctx aws.Context, input *GetItemInput, opts ...request.Option) (*GetItemOutput, error) {
  3551  	req, out := c.GetItemRequest(input)
  3552  	req.SetContext(ctx)
  3553  	req.ApplyOptions(opts...)
  3554  	return out, req.Send()
  3555  }
  3556  
  3557  const opListBackups = "ListBackups"
  3558  
  3559  // ListBackupsRequest generates a "aws/request.Request" representing the
  3560  // client's request for the ListBackups operation. The "output" return
  3561  // value will be populated with the request's response once the request completes
  3562  // successfully.
  3563  //
  3564  // Use "Send" method on the returned Request to send the API call to the service.
  3565  // the "output" return value is not valid until after Send returns without error.
  3566  //
  3567  // See ListBackups for more information on using the ListBackups
  3568  // API call, and error handling.
  3569  //
  3570  // This method is useful when you want to inject custom logic or configuration
  3571  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3572  //
  3573  //
  3574  //    // Example sending a request using the ListBackupsRequest method.
  3575  //    req, resp := client.ListBackupsRequest(params)
  3576  //
  3577  //    err := req.Send()
  3578  //    if err == nil { // resp is now filled
  3579  //        fmt.Println(resp)
  3580  //    }
  3581  //
  3582  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ListBackups
  3583  func (c *DynamoDB) ListBackupsRequest(input *ListBackupsInput) (req *request.Request, output *ListBackupsOutput) {
  3584  	op := &request.Operation{
  3585  		Name:       opListBackups,
  3586  		HTTPMethod: "POST",
  3587  		HTTPPath:   "/",
  3588  	}
  3589  
  3590  	if input == nil {
  3591  		input = &ListBackupsInput{}
  3592  	}
  3593  
  3594  	output = &ListBackupsOutput{}
  3595  	req = c.newRequest(op, input, output)
  3596  	// if custom endpoint for the request is set to a non empty string,
  3597  	// we skip the endpoint discovery workflow.
  3598  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  3599  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  3600  			de := discovererDescribeEndpoints{
  3601  				Required:      false,
  3602  				EndpointCache: c.endpointCache,
  3603  				Params: map[string]*string{
  3604  					"op": aws.String(req.Operation.Name),
  3605  				},
  3606  				Client: c,
  3607  			}
  3608  
  3609  			for k, v := range de.Params {
  3610  				if v == nil {
  3611  					delete(de.Params, k)
  3612  				}
  3613  			}
  3614  
  3615  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  3616  				Name: "crr.endpointdiscovery",
  3617  				Fn:   de.Handler,
  3618  			})
  3619  		}
  3620  	}
  3621  	return
  3622  }
  3623  
  3624  // ListBackups API operation for Amazon DynamoDB.
  3625  //
  3626  // List backups associated with an AWS account. To list backups for a given
  3627  // table, specify TableName. ListBackups returns a paginated list of results
  3628  // with at most 1 MB worth of items in a page. You can also specify a maximum
  3629  // number of entries to be returned in a page.
  3630  //
  3631  // In the request, start time is inclusive, but end time is exclusive. Note
  3632  // that these boundaries are for the time at which the original backup was requested.
  3633  //
  3634  // You can call ListBackups a maximum of five times per second.
  3635  //
  3636  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3637  // with awserr.Error's Code and Message methods to get detailed information about
  3638  // the error.
  3639  //
  3640  // See the AWS API reference guide for Amazon DynamoDB's
  3641  // API operation ListBackups for usage and error information.
  3642  //
  3643  // Returned Error Types:
  3644  //   * InternalServerError
  3645  //   An error occurred on the server side.
  3646  //
  3647  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ListBackups
  3648  func (c *DynamoDB) ListBackups(input *ListBackupsInput) (*ListBackupsOutput, error) {
  3649  	req, out := c.ListBackupsRequest(input)
  3650  	return out, req.Send()
  3651  }
  3652  
  3653  // ListBackupsWithContext is the same as ListBackups with the addition of
  3654  // the ability to pass a context and additional request options.
  3655  //
  3656  // See ListBackups for details on how to use this API operation.
  3657  //
  3658  // The context must be non-nil and will be used for request cancellation. If
  3659  // the context is nil a panic will occur. In the future the SDK may create
  3660  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3661  // for more information on using Contexts.
  3662  func (c *DynamoDB) ListBackupsWithContext(ctx aws.Context, input *ListBackupsInput, opts ...request.Option) (*ListBackupsOutput, error) {
  3663  	req, out := c.ListBackupsRequest(input)
  3664  	req.SetContext(ctx)
  3665  	req.ApplyOptions(opts...)
  3666  	return out, req.Send()
  3667  }
  3668  
  3669  const opListContributorInsights = "ListContributorInsights"
  3670  
  3671  // ListContributorInsightsRequest generates a "aws/request.Request" representing the
  3672  // client's request for the ListContributorInsights operation. The "output" return
  3673  // value will be populated with the request's response once the request completes
  3674  // successfully.
  3675  //
  3676  // Use "Send" method on the returned Request to send the API call to the service.
  3677  // the "output" return value is not valid until after Send returns without error.
  3678  //
  3679  // See ListContributorInsights for more information on using the ListContributorInsights
  3680  // API call, and error handling.
  3681  //
  3682  // This method is useful when you want to inject custom logic or configuration
  3683  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3684  //
  3685  //
  3686  //    // Example sending a request using the ListContributorInsightsRequest method.
  3687  //    req, resp := client.ListContributorInsightsRequest(params)
  3688  //
  3689  //    err := req.Send()
  3690  //    if err == nil { // resp is now filled
  3691  //        fmt.Println(resp)
  3692  //    }
  3693  //
  3694  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ListContributorInsights
  3695  func (c *DynamoDB) ListContributorInsightsRequest(input *ListContributorInsightsInput) (req *request.Request, output *ListContributorInsightsOutput) {
  3696  	op := &request.Operation{
  3697  		Name:       opListContributorInsights,
  3698  		HTTPMethod: "POST",
  3699  		HTTPPath:   "/",
  3700  		Paginator: &request.Paginator{
  3701  			InputTokens:     []string{"NextToken"},
  3702  			OutputTokens:    []string{"NextToken"},
  3703  			LimitToken:      "MaxResults",
  3704  			TruncationToken: "",
  3705  		},
  3706  	}
  3707  
  3708  	if input == nil {
  3709  		input = &ListContributorInsightsInput{}
  3710  	}
  3711  
  3712  	output = &ListContributorInsightsOutput{}
  3713  	req = c.newRequest(op, input, output)
  3714  	return
  3715  }
  3716  
  3717  // ListContributorInsights API operation for Amazon DynamoDB.
  3718  //
  3719  // Returns a list of ContributorInsightsSummary for a table and all its global
  3720  // secondary indexes.
  3721  //
  3722  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3723  // with awserr.Error's Code and Message methods to get detailed information about
  3724  // the error.
  3725  //
  3726  // See the AWS API reference guide for Amazon DynamoDB's
  3727  // API operation ListContributorInsights for usage and error information.
  3728  //
  3729  // Returned Error Types:
  3730  //   * ResourceNotFoundException
  3731  //   The operation tried to access a nonexistent table or index. The resource
  3732  //   might not be specified correctly, or its status might not be ACTIVE.
  3733  //
  3734  //   * InternalServerError
  3735  //   An error occurred on the server side.
  3736  //
  3737  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ListContributorInsights
  3738  func (c *DynamoDB) ListContributorInsights(input *ListContributorInsightsInput) (*ListContributorInsightsOutput, error) {
  3739  	req, out := c.ListContributorInsightsRequest(input)
  3740  	return out, req.Send()
  3741  }
  3742  
  3743  // ListContributorInsightsWithContext is the same as ListContributorInsights with the addition of
  3744  // the ability to pass a context and additional request options.
  3745  //
  3746  // See ListContributorInsights for details on how to use this API operation.
  3747  //
  3748  // The context must be non-nil and will be used for request cancellation. If
  3749  // the context is nil a panic will occur. In the future the SDK may create
  3750  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3751  // for more information on using Contexts.
  3752  func (c *DynamoDB) ListContributorInsightsWithContext(ctx aws.Context, input *ListContributorInsightsInput, opts ...request.Option) (*ListContributorInsightsOutput, error) {
  3753  	req, out := c.ListContributorInsightsRequest(input)
  3754  	req.SetContext(ctx)
  3755  	req.ApplyOptions(opts...)
  3756  	return out, req.Send()
  3757  }
  3758  
  3759  // ListContributorInsightsPages iterates over the pages of a ListContributorInsights operation,
  3760  // calling the "fn" function with the response data for each page. To stop
  3761  // iterating, return false from the fn function.
  3762  //
  3763  // See ListContributorInsights method for more information on how to use this operation.
  3764  //
  3765  // Note: This operation can generate multiple requests to a service.
  3766  //
  3767  //    // Example iterating over at most 3 pages of a ListContributorInsights operation.
  3768  //    pageNum := 0
  3769  //    err := client.ListContributorInsightsPages(params,
  3770  //        func(page *dynamodb.ListContributorInsightsOutput, lastPage bool) bool {
  3771  //            pageNum++
  3772  //            fmt.Println(page)
  3773  //            return pageNum <= 3
  3774  //        })
  3775  //
  3776  func (c *DynamoDB) ListContributorInsightsPages(input *ListContributorInsightsInput, fn func(*ListContributorInsightsOutput, bool) bool) error {
  3777  	return c.ListContributorInsightsPagesWithContext(aws.BackgroundContext(), input, fn)
  3778  }
  3779  
  3780  // ListContributorInsightsPagesWithContext same as ListContributorInsightsPages except
  3781  // it takes a Context and allows setting request options on the pages.
  3782  //
  3783  // The context must be non-nil and will be used for request cancellation. If
  3784  // the context is nil a panic will occur. In the future the SDK may create
  3785  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3786  // for more information on using Contexts.
  3787  func (c *DynamoDB) ListContributorInsightsPagesWithContext(ctx aws.Context, input *ListContributorInsightsInput, fn func(*ListContributorInsightsOutput, bool) bool, opts ...request.Option) error {
  3788  	p := request.Pagination{
  3789  		NewRequest: func() (*request.Request, error) {
  3790  			var inCpy *ListContributorInsightsInput
  3791  			if input != nil {
  3792  				tmp := *input
  3793  				inCpy = &tmp
  3794  			}
  3795  			req, _ := c.ListContributorInsightsRequest(inCpy)
  3796  			req.SetContext(ctx)
  3797  			req.ApplyOptions(opts...)
  3798  			return req, nil
  3799  		},
  3800  	}
  3801  
  3802  	for p.Next() {
  3803  		if !fn(p.Page().(*ListContributorInsightsOutput), !p.HasNextPage()) {
  3804  			break
  3805  		}
  3806  	}
  3807  
  3808  	return p.Err()
  3809  }
  3810  
  3811  const opListExports = "ListExports"
  3812  
  3813  // ListExportsRequest generates a "aws/request.Request" representing the
  3814  // client's request for the ListExports operation. The "output" return
  3815  // value will be populated with the request's response once the request completes
  3816  // successfully.
  3817  //
  3818  // Use "Send" method on the returned Request to send the API call to the service.
  3819  // the "output" return value is not valid until after Send returns without error.
  3820  //
  3821  // See ListExports for more information on using the ListExports
  3822  // API call, and error handling.
  3823  //
  3824  // This method is useful when you want to inject custom logic or configuration
  3825  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3826  //
  3827  //
  3828  //    // Example sending a request using the ListExportsRequest method.
  3829  //    req, resp := client.ListExportsRequest(params)
  3830  //
  3831  //    err := req.Send()
  3832  //    if err == nil { // resp is now filled
  3833  //        fmt.Println(resp)
  3834  //    }
  3835  //
  3836  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ListExports
  3837  func (c *DynamoDB) ListExportsRequest(input *ListExportsInput) (req *request.Request, output *ListExportsOutput) {
  3838  	op := &request.Operation{
  3839  		Name:       opListExports,
  3840  		HTTPMethod: "POST",
  3841  		HTTPPath:   "/",
  3842  		Paginator: &request.Paginator{
  3843  			InputTokens:     []string{"NextToken"},
  3844  			OutputTokens:    []string{"NextToken"},
  3845  			LimitToken:      "MaxResults",
  3846  			TruncationToken: "",
  3847  		},
  3848  	}
  3849  
  3850  	if input == nil {
  3851  		input = &ListExportsInput{}
  3852  	}
  3853  
  3854  	output = &ListExportsOutput{}
  3855  	req = c.newRequest(op, input, output)
  3856  	return
  3857  }
  3858  
  3859  // ListExports API operation for Amazon DynamoDB.
  3860  //
  3861  // Lists completed exports within the past 90 days.
  3862  //
  3863  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3864  // with awserr.Error's Code and Message methods to get detailed information about
  3865  // the error.
  3866  //
  3867  // See the AWS API reference guide for Amazon DynamoDB's
  3868  // API operation ListExports for usage and error information.
  3869  //
  3870  // Returned Error Types:
  3871  //   * LimitExceededException
  3872  //   There is no limit to the number of daily on-demand backups that can be taken.
  3873  //
  3874  //   Up to 50 simultaneous table operations are allowed per account. These operations
  3875  //   include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup,
  3876  //   and RestoreTableToPointInTime.
  3877  //
  3878  //   The only exception is when you are creating a table with one or more secondary
  3879  //   indexes. You can have up to 25 such requests running at a time; however,
  3880  //   if the table or index specifications are complex, DynamoDB might temporarily
  3881  //   reduce the number of concurrent operations.
  3882  //
  3883  //   There is a soft account quota of 256 tables.
  3884  //
  3885  //   * InternalServerError
  3886  //   An error occurred on the server side.
  3887  //
  3888  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ListExports
  3889  func (c *DynamoDB) ListExports(input *ListExportsInput) (*ListExportsOutput, error) {
  3890  	req, out := c.ListExportsRequest(input)
  3891  	return out, req.Send()
  3892  }
  3893  
  3894  // ListExportsWithContext is the same as ListExports with the addition of
  3895  // the ability to pass a context and additional request options.
  3896  //
  3897  // See ListExports for details on how to use this API operation.
  3898  //
  3899  // The context must be non-nil and will be used for request cancellation. If
  3900  // the context is nil a panic will occur. In the future the SDK may create
  3901  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3902  // for more information on using Contexts.
  3903  func (c *DynamoDB) ListExportsWithContext(ctx aws.Context, input *ListExportsInput, opts ...request.Option) (*ListExportsOutput, error) {
  3904  	req, out := c.ListExportsRequest(input)
  3905  	req.SetContext(ctx)
  3906  	req.ApplyOptions(opts...)
  3907  	return out, req.Send()
  3908  }
  3909  
  3910  // ListExportsPages iterates over the pages of a ListExports operation,
  3911  // calling the "fn" function with the response data for each page. To stop
  3912  // iterating, return false from the fn function.
  3913  //
  3914  // See ListExports method for more information on how to use this operation.
  3915  //
  3916  // Note: This operation can generate multiple requests to a service.
  3917  //
  3918  //    // Example iterating over at most 3 pages of a ListExports operation.
  3919  //    pageNum := 0
  3920  //    err := client.ListExportsPages(params,
  3921  //        func(page *dynamodb.ListExportsOutput, lastPage bool) bool {
  3922  //            pageNum++
  3923  //            fmt.Println(page)
  3924  //            return pageNum <= 3
  3925  //        })
  3926  //
  3927  func (c *DynamoDB) ListExportsPages(input *ListExportsInput, fn func(*ListExportsOutput, bool) bool) error {
  3928  	return c.ListExportsPagesWithContext(aws.BackgroundContext(), input, fn)
  3929  }
  3930  
  3931  // ListExportsPagesWithContext same as ListExportsPages except
  3932  // it takes a Context and allows setting request options on the pages.
  3933  //
  3934  // The context must be non-nil and will be used for request cancellation. If
  3935  // the context is nil a panic will occur. In the future the SDK may create
  3936  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3937  // for more information on using Contexts.
  3938  func (c *DynamoDB) ListExportsPagesWithContext(ctx aws.Context, input *ListExportsInput, fn func(*ListExportsOutput, bool) bool, opts ...request.Option) error {
  3939  	p := request.Pagination{
  3940  		NewRequest: func() (*request.Request, error) {
  3941  			var inCpy *ListExportsInput
  3942  			if input != nil {
  3943  				tmp := *input
  3944  				inCpy = &tmp
  3945  			}
  3946  			req, _ := c.ListExportsRequest(inCpy)
  3947  			req.SetContext(ctx)
  3948  			req.ApplyOptions(opts...)
  3949  			return req, nil
  3950  		},
  3951  	}
  3952  
  3953  	for p.Next() {
  3954  		if !fn(p.Page().(*ListExportsOutput), !p.HasNextPage()) {
  3955  			break
  3956  		}
  3957  	}
  3958  
  3959  	return p.Err()
  3960  }
  3961  
  3962  const opListGlobalTables = "ListGlobalTables"
  3963  
  3964  // ListGlobalTablesRequest generates a "aws/request.Request" representing the
  3965  // client's request for the ListGlobalTables operation. The "output" return
  3966  // value will be populated with the request's response once the request completes
  3967  // successfully.
  3968  //
  3969  // Use "Send" method on the returned Request to send the API call to the service.
  3970  // the "output" return value is not valid until after Send returns without error.
  3971  //
  3972  // See ListGlobalTables for more information on using the ListGlobalTables
  3973  // API call, and error handling.
  3974  //
  3975  // This method is useful when you want to inject custom logic or configuration
  3976  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3977  //
  3978  //
  3979  //    // Example sending a request using the ListGlobalTablesRequest method.
  3980  //    req, resp := client.ListGlobalTablesRequest(params)
  3981  //
  3982  //    err := req.Send()
  3983  //    if err == nil { // resp is now filled
  3984  //        fmt.Println(resp)
  3985  //    }
  3986  //
  3987  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ListGlobalTables
  3988  func (c *DynamoDB) ListGlobalTablesRequest(input *ListGlobalTablesInput) (req *request.Request, output *ListGlobalTablesOutput) {
  3989  	op := &request.Operation{
  3990  		Name:       opListGlobalTables,
  3991  		HTTPMethod: "POST",
  3992  		HTTPPath:   "/",
  3993  	}
  3994  
  3995  	if input == nil {
  3996  		input = &ListGlobalTablesInput{}
  3997  	}
  3998  
  3999  	output = &ListGlobalTablesOutput{}
  4000  	req = c.newRequest(op, input, output)
  4001  	// if custom endpoint for the request is set to a non empty string,
  4002  	// we skip the endpoint discovery workflow.
  4003  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  4004  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  4005  			de := discovererDescribeEndpoints{
  4006  				Required:      false,
  4007  				EndpointCache: c.endpointCache,
  4008  				Params: map[string]*string{
  4009  					"op": aws.String(req.Operation.Name),
  4010  				},
  4011  				Client: c,
  4012  			}
  4013  
  4014  			for k, v := range de.Params {
  4015  				if v == nil {
  4016  					delete(de.Params, k)
  4017  				}
  4018  			}
  4019  
  4020  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  4021  				Name: "crr.endpointdiscovery",
  4022  				Fn:   de.Handler,
  4023  			})
  4024  		}
  4025  	}
  4026  	return
  4027  }
  4028  
  4029  // ListGlobalTables API operation for Amazon DynamoDB.
  4030  //
  4031  // Lists all global tables that have a replica in the specified Region.
  4032  //
  4033  // This operation only applies to Version 2017.11.29 (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V1.html)
  4034  // of global tables.
  4035  //
  4036  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4037  // with awserr.Error's Code and Message methods to get detailed information about
  4038  // the error.
  4039  //
  4040  // See the AWS API reference guide for Amazon DynamoDB's
  4041  // API operation ListGlobalTables for usage and error information.
  4042  //
  4043  // Returned Error Types:
  4044  //   * InternalServerError
  4045  //   An error occurred on the server side.
  4046  //
  4047  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ListGlobalTables
  4048  func (c *DynamoDB) ListGlobalTables(input *ListGlobalTablesInput) (*ListGlobalTablesOutput, error) {
  4049  	req, out := c.ListGlobalTablesRequest(input)
  4050  	return out, req.Send()
  4051  }
  4052  
  4053  // ListGlobalTablesWithContext is the same as ListGlobalTables with the addition of
  4054  // the ability to pass a context and additional request options.
  4055  //
  4056  // See ListGlobalTables for details on how to use this API operation.
  4057  //
  4058  // The context must be non-nil and will be used for request cancellation. If
  4059  // the context is nil a panic will occur. In the future the SDK may create
  4060  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4061  // for more information on using Contexts.
  4062  func (c *DynamoDB) ListGlobalTablesWithContext(ctx aws.Context, input *ListGlobalTablesInput, opts ...request.Option) (*ListGlobalTablesOutput, error) {
  4063  	req, out := c.ListGlobalTablesRequest(input)
  4064  	req.SetContext(ctx)
  4065  	req.ApplyOptions(opts...)
  4066  	return out, req.Send()
  4067  }
  4068  
  4069  const opListTables = "ListTables"
  4070  
  4071  // ListTablesRequest generates a "aws/request.Request" representing the
  4072  // client's request for the ListTables operation. The "output" return
  4073  // value will be populated with the request's response once the request completes
  4074  // successfully.
  4075  //
  4076  // Use "Send" method on the returned Request to send the API call to the service.
  4077  // the "output" return value is not valid until after Send returns without error.
  4078  //
  4079  // See ListTables for more information on using the ListTables
  4080  // API call, and error handling.
  4081  //
  4082  // This method is useful when you want to inject custom logic or configuration
  4083  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4084  //
  4085  //
  4086  //    // Example sending a request using the ListTablesRequest method.
  4087  //    req, resp := client.ListTablesRequest(params)
  4088  //
  4089  //    err := req.Send()
  4090  //    if err == nil { // resp is now filled
  4091  //        fmt.Println(resp)
  4092  //    }
  4093  //
  4094  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ListTables
  4095  func (c *DynamoDB) ListTablesRequest(input *ListTablesInput) (req *request.Request, output *ListTablesOutput) {
  4096  	op := &request.Operation{
  4097  		Name:       opListTables,
  4098  		HTTPMethod: "POST",
  4099  		HTTPPath:   "/",
  4100  		Paginator: &request.Paginator{
  4101  			InputTokens:     []string{"ExclusiveStartTableName"},
  4102  			OutputTokens:    []string{"LastEvaluatedTableName"},
  4103  			LimitToken:      "Limit",
  4104  			TruncationToken: "",
  4105  		},
  4106  	}
  4107  
  4108  	if input == nil {
  4109  		input = &ListTablesInput{}
  4110  	}
  4111  
  4112  	output = &ListTablesOutput{}
  4113  	req = c.newRequest(op, input, output)
  4114  	// if custom endpoint for the request is set to a non empty string,
  4115  	// we skip the endpoint discovery workflow.
  4116  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  4117  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  4118  			de := discovererDescribeEndpoints{
  4119  				Required:      false,
  4120  				EndpointCache: c.endpointCache,
  4121  				Params: map[string]*string{
  4122  					"op": aws.String(req.Operation.Name),
  4123  				},
  4124  				Client: c,
  4125  			}
  4126  
  4127  			for k, v := range de.Params {
  4128  				if v == nil {
  4129  					delete(de.Params, k)
  4130  				}
  4131  			}
  4132  
  4133  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  4134  				Name: "crr.endpointdiscovery",
  4135  				Fn:   de.Handler,
  4136  			})
  4137  		}
  4138  	}
  4139  	return
  4140  }
  4141  
  4142  // ListTables API operation for Amazon DynamoDB.
  4143  //
  4144  // Returns an array of table names associated with the current account and endpoint.
  4145  // The output from ListTables is paginated, with each page returning a maximum
  4146  // of 100 table names.
  4147  //
  4148  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4149  // with awserr.Error's Code and Message methods to get detailed information about
  4150  // the error.
  4151  //
  4152  // See the AWS API reference guide for Amazon DynamoDB's
  4153  // API operation ListTables for usage and error information.
  4154  //
  4155  // Returned Error Types:
  4156  //   * InternalServerError
  4157  //   An error occurred on the server side.
  4158  //
  4159  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ListTables
  4160  func (c *DynamoDB) ListTables(input *ListTablesInput) (*ListTablesOutput, error) {
  4161  	req, out := c.ListTablesRequest(input)
  4162  	return out, req.Send()
  4163  }
  4164  
  4165  // ListTablesWithContext is the same as ListTables with the addition of
  4166  // the ability to pass a context and additional request options.
  4167  //
  4168  // See ListTables for details on how to use this API operation.
  4169  //
  4170  // The context must be non-nil and will be used for request cancellation. If
  4171  // the context is nil a panic will occur. In the future the SDK may create
  4172  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4173  // for more information on using Contexts.
  4174  func (c *DynamoDB) ListTablesWithContext(ctx aws.Context, input *ListTablesInput, opts ...request.Option) (*ListTablesOutput, error) {
  4175  	req, out := c.ListTablesRequest(input)
  4176  	req.SetContext(ctx)
  4177  	req.ApplyOptions(opts...)
  4178  	return out, req.Send()
  4179  }
  4180  
  4181  // ListTablesPages iterates over the pages of a ListTables operation,
  4182  // calling the "fn" function with the response data for each page. To stop
  4183  // iterating, return false from the fn function.
  4184  //
  4185  // See ListTables method for more information on how to use this operation.
  4186  //
  4187  // Note: This operation can generate multiple requests to a service.
  4188  //
  4189  //    // Example iterating over at most 3 pages of a ListTables operation.
  4190  //    pageNum := 0
  4191  //    err := client.ListTablesPages(params,
  4192  //        func(page *dynamodb.ListTablesOutput, lastPage bool) bool {
  4193  //            pageNum++
  4194  //            fmt.Println(page)
  4195  //            return pageNum <= 3
  4196  //        })
  4197  //
  4198  func (c *DynamoDB) ListTablesPages(input *ListTablesInput, fn func(*ListTablesOutput, bool) bool) error {
  4199  	return c.ListTablesPagesWithContext(aws.BackgroundContext(), input, fn)
  4200  }
  4201  
  4202  // ListTablesPagesWithContext same as ListTablesPages except
  4203  // it takes a Context and allows setting request options on the pages.
  4204  //
  4205  // The context must be non-nil and will be used for request cancellation. If
  4206  // the context is nil a panic will occur. In the future the SDK may create
  4207  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4208  // for more information on using Contexts.
  4209  func (c *DynamoDB) ListTablesPagesWithContext(ctx aws.Context, input *ListTablesInput, fn func(*ListTablesOutput, bool) bool, opts ...request.Option) error {
  4210  	p := request.Pagination{
  4211  		NewRequest: func() (*request.Request, error) {
  4212  			var inCpy *ListTablesInput
  4213  			if input != nil {
  4214  				tmp := *input
  4215  				inCpy = &tmp
  4216  			}
  4217  			req, _ := c.ListTablesRequest(inCpy)
  4218  			req.SetContext(ctx)
  4219  			req.ApplyOptions(opts...)
  4220  			return req, nil
  4221  		},
  4222  	}
  4223  
  4224  	for p.Next() {
  4225  		if !fn(p.Page().(*ListTablesOutput), !p.HasNextPage()) {
  4226  			break
  4227  		}
  4228  	}
  4229  
  4230  	return p.Err()
  4231  }
  4232  
  4233  const opListTagsOfResource = "ListTagsOfResource"
  4234  
  4235  // ListTagsOfResourceRequest generates a "aws/request.Request" representing the
  4236  // client's request for the ListTagsOfResource operation. The "output" return
  4237  // value will be populated with the request's response once the request completes
  4238  // successfully.
  4239  //
  4240  // Use "Send" method on the returned Request to send the API call to the service.
  4241  // the "output" return value is not valid until after Send returns without error.
  4242  //
  4243  // See ListTagsOfResource for more information on using the ListTagsOfResource
  4244  // API call, and error handling.
  4245  //
  4246  // This method is useful when you want to inject custom logic or configuration
  4247  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4248  //
  4249  //
  4250  //    // Example sending a request using the ListTagsOfResourceRequest method.
  4251  //    req, resp := client.ListTagsOfResourceRequest(params)
  4252  //
  4253  //    err := req.Send()
  4254  //    if err == nil { // resp is now filled
  4255  //        fmt.Println(resp)
  4256  //    }
  4257  //
  4258  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ListTagsOfResource
  4259  func (c *DynamoDB) ListTagsOfResourceRequest(input *ListTagsOfResourceInput) (req *request.Request, output *ListTagsOfResourceOutput) {
  4260  	op := &request.Operation{
  4261  		Name:       opListTagsOfResource,
  4262  		HTTPMethod: "POST",
  4263  		HTTPPath:   "/",
  4264  	}
  4265  
  4266  	if input == nil {
  4267  		input = &ListTagsOfResourceInput{}
  4268  	}
  4269  
  4270  	output = &ListTagsOfResourceOutput{}
  4271  	req = c.newRequest(op, input, output)
  4272  	// if custom endpoint for the request is set to a non empty string,
  4273  	// we skip the endpoint discovery workflow.
  4274  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  4275  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  4276  			de := discovererDescribeEndpoints{
  4277  				Required:      false,
  4278  				EndpointCache: c.endpointCache,
  4279  				Params: map[string]*string{
  4280  					"op": aws.String(req.Operation.Name),
  4281  				},
  4282  				Client: c,
  4283  			}
  4284  
  4285  			for k, v := range de.Params {
  4286  				if v == nil {
  4287  					delete(de.Params, k)
  4288  				}
  4289  			}
  4290  
  4291  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  4292  				Name: "crr.endpointdiscovery",
  4293  				Fn:   de.Handler,
  4294  			})
  4295  		}
  4296  	}
  4297  	return
  4298  }
  4299  
  4300  // ListTagsOfResource API operation for Amazon DynamoDB.
  4301  //
  4302  // List all tags on an Amazon DynamoDB resource. You can call ListTagsOfResource
  4303  // up to 10 times per second, per account.
  4304  //
  4305  // For an overview on tagging DynamoDB resources, see Tagging for DynamoDB (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html)
  4306  // in the Amazon DynamoDB Developer Guide.
  4307  //
  4308  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4309  // with awserr.Error's Code and Message methods to get detailed information about
  4310  // the error.
  4311  //
  4312  // See the AWS API reference guide for Amazon DynamoDB's
  4313  // API operation ListTagsOfResource for usage and error information.
  4314  //
  4315  // Returned Error Types:
  4316  //   * ResourceNotFoundException
  4317  //   The operation tried to access a nonexistent table or index. The resource
  4318  //   might not be specified correctly, or its status might not be ACTIVE.
  4319  //
  4320  //   * InternalServerError
  4321  //   An error occurred on the server side.
  4322  //
  4323  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ListTagsOfResource
  4324  func (c *DynamoDB) ListTagsOfResource(input *ListTagsOfResourceInput) (*ListTagsOfResourceOutput, error) {
  4325  	req, out := c.ListTagsOfResourceRequest(input)
  4326  	return out, req.Send()
  4327  }
  4328  
  4329  // ListTagsOfResourceWithContext is the same as ListTagsOfResource with the addition of
  4330  // the ability to pass a context and additional request options.
  4331  //
  4332  // See ListTagsOfResource for details on how to use this API operation.
  4333  //
  4334  // The context must be non-nil and will be used for request cancellation. If
  4335  // the context is nil a panic will occur. In the future the SDK may create
  4336  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4337  // for more information on using Contexts.
  4338  func (c *DynamoDB) ListTagsOfResourceWithContext(ctx aws.Context, input *ListTagsOfResourceInput, opts ...request.Option) (*ListTagsOfResourceOutput, error) {
  4339  	req, out := c.ListTagsOfResourceRequest(input)
  4340  	req.SetContext(ctx)
  4341  	req.ApplyOptions(opts...)
  4342  	return out, req.Send()
  4343  }
  4344  
  4345  const opPutItem = "PutItem"
  4346  
  4347  // PutItemRequest generates a "aws/request.Request" representing the
  4348  // client's request for the PutItem operation. The "output" return
  4349  // value will be populated with the request's response once the request completes
  4350  // successfully.
  4351  //
  4352  // Use "Send" method on the returned Request to send the API call to the service.
  4353  // the "output" return value is not valid until after Send returns without error.
  4354  //
  4355  // See PutItem for more information on using the PutItem
  4356  // API call, and error handling.
  4357  //
  4358  // This method is useful when you want to inject custom logic or configuration
  4359  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4360  //
  4361  //
  4362  //    // Example sending a request using the PutItemRequest method.
  4363  //    req, resp := client.PutItemRequest(params)
  4364  //
  4365  //    err := req.Send()
  4366  //    if err == nil { // resp is now filled
  4367  //        fmt.Println(resp)
  4368  //    }
  4369  //
  4370  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/PutItem
  4371  func (c *DynamoDB) PutItemRequest(input *PutItemInput) (req *request.Request, output *PutItemOutput) {
  4372  	op := &request.Operation{
  4373  		Name:       opPutItem,
  4374  		HTTPMethod: "POST",
  4375  		HTTPPath:   "/",
  4376  	}
  4377  
  4378  	if input == nil {
  4379  		input = &PutItemInput{}
  4380  	}
  4381  
  4382  	output = &PutItemOutput{}
  4383  	req = c.newRequest(op, input, output)
  4384  	// if custom endpoint for the request is set to a non empty string,
  4385  	// we skip the endpoint discovery workflow.
  4386  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  4387  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  4388  			de := discovererDescribeEndpoints{
  4389  				Required:      false,
  4390  				EndpointCache: c.endpointCache,
  4391  				Params: map[string]*string{
  4392  					"op": aws.String(req.Operation.Name),
  4393  				},
  4394  				Client: c,
  4395  			}
  4396  
  4397  			for k, v := range de.Params {
  4398  				if v == nil {
  4399  					delete(de.Params, k)
  4400  				}
  4401  			}
  4402  
  4403  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  4404  				Name: "crr.endpointdiscovery",
  4405  				Fn:   de.Handler,
  4406  			})
  4407  		}
  4408  	}
  4409  	return
  4410  }
  4411  
  4412  // PutItem API operation for Amazon DynamoDB.
  4413  //
  4414  // Creates a new item, or replaces an old item with a new item. If an item that
  4415  // has the same primary key as the new item already exists in the specified
  4416  // table, the new item completely replaces the existing item. You can perform
  4417  // a conditional put operation (add a new item if one with the specified primary
  4418  // key doesn't exist), or replace an existing item if it has certain attribute
  4419  // values. You can return the item's attribute values in the same operation,
  4420  // using the ReturnValues parameter.
  4421  //
  4422  // This topic provides general information about the PutItem API.
  4423  //
  4424  // For information on how to call the PutItem API using the AWS SDK in specific
  4425  // languages, see the following:
  4426  //
  4427  //    * PutItem in the AWS Command Line Interface (http://docs.aws.amazon.com/goto/aws-cli/dynamodb-2012-08-10/PutItem)
  4428  //
  4429  //    * PutItem in the AWS SDK for .NET (http://docs.aws.amazon.com/goto/DotNetSDKV3/dynamodb-2012-08-10/PutItem)
  4430  //
  4431  //    * PutItem in the AWS SDK for C++ (http://docs.aws.amazon.com/goto/SdkForCpp/dynamodb-2012-08-10/PutItem)
  4432  //
  4433  //    * PutItem in the AWS SDK for Go (http://docs.aws.amazon.com/goto/SdkForGoV1/dynamodb-2012-08-10/PutItem)
  4434  //
  4435  //    * PutItem in the AWS SDK for Java (http://docs.aws.amazon.com/goto/SdkForJava/dynamodb-2012-08-10/PutItem)
  4436  //
  4437  //    * PutItem in the AWS SDK for JavaScript (http://docs.aws.amazon.com/goto/AWSJavaScriptSDK/dynamodb-2012-08-10/PutItem)
  4438  //
  4439  //    * PutItem in the AWS SDK for PHP V3 (http://docs.aws.amazon.com/goto/SdkForPHPV3/dynamodb-2012-08-10/PutItem)
  4440  //
  4441  //    * PutItem in the AWS SDK for Python (http://docs.aws.amazon.com/goto/boto3/dynamodb-2012-08-10/PutItem)
  4442  //
  4443  //    * PutItem in the AWS SDK for Ruby V2 (http://docs.aws.amazon.com/goto/SdkForRubyV2/dynamodb-2012-08-10/PutItem)
  4444  //
  4445  // When you add an item, the primary key attributes are the only required attributes.
  4446  // Attribute values cannot be null.
  4447  //
  4448  // Empty String and Binary attribute values are allowed. Attribute values of
  4449  // type String and Binary must have a length greater than zero if the attribute
  4450  // is used as a key attribute for a table or index. Set type attributes cannot
  4451  // be empty.
  4452  //
  4453  // Invalid Requests with empty values will be rejected with a ValidationException
  4454  // exception.
  4455  //
  4456  // To prevent a new item from replacing an existing item, use a conditional
  4457  // expression that contains the attribute_not_exists function with the name
  4458  // of the attribute being used as the partition key for the table. Since every
  4459  // record must contain that attribute, the attribute_not_exists function will
  4460  // only succeed if no matching item exists.
  4461  //
  4462  // For more information about PutItem, see Working with Items (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithItems.html)
  4463  // in the Amazon DynamoDB Developer Guide.
  4464  //
  4465  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4466  // with awserr.Error's Code and Message methods to get detailed information about
  4467  // the error.
  4468  //
  4469  // See the AWS API reference guide for Amazon DynamoDB's
  4470  // API operation PutItem for usage and error information.
  4471  //
  4472  // Returned Error Types:
  4473  //   * ConditionalCheckFailedException
  4474  //   A condition specified in the operation could not be evaluated.
  4475  //
  4476  //   * ProvisionedThroughputExceededException
  4477  //   Your request rate is too high. The AWS SDKs for DynamoDB automatically retry
  4478  //   requests that receive this exception. Your request is eventually successful,
  4479  //   unless your retry queue is too large to finish. Reduce the frequency of requests
  4480  //   and use exponential backoff. For more information, go to Error Retries and
  4481  //   Exponential Backoff (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.RetryAndBackoff)
  4482  //   in the Amazon DynamoDB Developer Guide.
  4483  //
  4484  //   * ResourceNotFoundException
  4485  //   The operation tried to access a nonexistent table or index. The resource
  4486  //   might not be specified correctly, or its status might not be ACTIVE.
  4487  //
  4488  //   * ItemCollectionSizeLimitExceededException
  4489  //   An item collection is too large. This exception is only returned for tables
  4490  //   that have one or more local secondary indexes.
  4491  //
  4492  //   * TransactionConflictException
  4493  //   Operation was rejected because there is an ongoing transaction for the item.
  4494  //
  4495  //   * RequestLimitExceeded
  4496  //   Throughput exceeds the current throughput quota for your account. Please
  4497  //   contact AWS Support at AWS Support (https://aws.amazon.com/support) to request
  4498  //   a quota increase.
  4499  //
  4500  //   * InternalServerError
  4501  //   An error occurred on the server side.
  4502  //
  4503  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/PutItem
  4504  func (c *DynamoDB) PutItem(input *PutItemInput) (*PutItemOutput, error) {
  4505  	req, out := c.PutItemRequest(input)
  4506  	return out, req.Send()
  4507  }
  4508  
  4509  // PutItemWithContext is the same as PutItem with the addition of
  4510  // the ability to pass a context and additional request options.
  4511  //
  4512  // See PutItem for details on how to use this API operation.
  4513  //
  4514  // The context must be non-nil and will be used for request cancellation. If
  4515  // the context is nil a panic will occur. In the future the SDK may create
  4516  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4517  // for more information on using Contexts.
  4518  func (c *DynamoDB) PutItemWithContext(ctx aws.Context, input *PutItemInput, opts ...request.Option) (*PutItemOutput, error) {
  4519  	req, out := c.PutItemRequest(input)
  4520  	req.SetContext(ctx)
  4521  	req.ApplyOptions(opts...)
  4522  	return out, req.Send()
  4523  }
  4524  
  4525  const opQuery = "Query"
  4526  
  4527  // QueryRequest generates a "aws/request.Request" representing the
  4528  // client's request for the Query operation. The "output" return
  4529  // value will be populated with the request's response once the request completes
  4530  // successfully.
  4531  //
  4532  // Use "Send" method on the returned Request to send the API call to the service.
  4533  // the "output" return value is not valid until after Send returns without error.
  4534  //
  4535  // See Query for more information on using the Query
  4536  // API call, and error handling.
  4537  //
  4538  // This method is useful when you want to inject custom logic or configuration
  4539  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4540  //
  4541  //
  4542  //    // Example sending a request using the QueryRequest method.
  4543  //    req, resp := client.QueryRequest(params)
  4544  //
  4545  //    err := req.Send()
  4546  //    if err == nil { // resp is now filled
  4547  //        fmt.Println(resp)
  4548  //    }
  4549  //
  4550  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/Query
  4551  func (c *DynamoDB) QueryRequest(input *QueryInput) (req *request.Request, output *QueryOutput) {
  4552  	op := &request.Operation{
  4553  		Name:       opQuery,
  4554  		HTTPMethod: "POST",
  4555  		HTTPPath:   "/",
  4556  		Paginator: &request.Paginator{
  4557  			InputTokens:     []string{"ExclusiveStartKey"},
  4558  			OutputTokens:    []string{"LastEvaluatedKey"},
  4559  			LimitToken:      "Limit",
  4560  			TruncationToken: "",
  4561  		},
  4562  	}
  4563  
  4564  	if input == nil {
  4565  		input = &QueryInput{}
  4566  	}
  4567  
  4568  	output = &QueryOutput{}
  4569  	req = c.newRequest(op, input, output)
  4570  	// if custom endpoint for the request is set to a non empty string,
  4571  	// we skip the endpoint discovery workflow.
  4572  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  4573  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  4574  			de := discovererDescribeEndpoints{
  4575  				Required:      false,
  4576  				EndpointCache: c.endpointCache,
  4577  				Params: map[string]*string{
  4578  					"op": aws.String(req.Operation.Name),
  4579  				},
  4580  				Client: c,
  4581  			}
  4582  
  4583  			for k, v := range de.Params {
  4584  				if v == nil {
  4585  					delete(de.Params, k)
  4586  				}
  4587  			}
  4588  
  4589  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  4590  				Name: "crr.endpointdiscovery",
  4591  				Fn:   de.Handler,
  4592  			})
  4593  		}
  4594  	}
  4595  	return
  4596  }
  4597  
  4598  // Query API operation for Amazon DynamoDB.
  4599  //
  4600  // The Query operation finds items based on primary key values. You can query
  4601  // any table or secondary index that has a composite primary key (a partition
  4602  // key and a sort key).
  4603  //
  4604  // Use the KeyConditionExpression parameter to provide a specific value for
  4605  // the partition key. The Query operation will return all of the items from
  4606  // the table or index with that partition key value. You can optionally narrow
  4607  // the scope of the Query operation by specifying a sort key value and a comparison
  4608  // operator in KeyConditionExpression. To further refine the Query results,
  4609  // you can optionally provide a FilterExpression. A FilterExpression determines
  4610  // which items within the results should be returned to you. All of the other
  4611  // results are discarded.
  4612  //
  4613  // A Query operation always returns a result set. If no matching items are found,
  4614  // the result set will be empty. Queries that do not return results consume
  4615  // the minimum number of read capacity units for that type of read operation.
  4616  //
  4617  // DynamoDB calculates the number of read capacity units consumed based on item
  4618  // size, not on the amount of data that is returned to an application. The number
  4619  // of capacity units consumed will be the same whether you request all of the
  4620  // attributes (the default behavior) or just some of them (using a projection
  4621  // expression). The number will also be the same whether or not you use a FilterExpression.
  4622  //
  4623  // Query results are always sorted by the sort key value. If the data type of
  4624  // the sort key is Number, the results are returned in numeric order; otherwise,
  4625  // the results are returned in order of UTF-8 bytes. By default, the sort order
  4626  // is ascending. To reverse the order, set the ScanIndexForward parameter to
  4627  // false.
  4628  //
  4629  // A single Query operation will read up to the maximum number of items set
  4630  // (if using the Limit parameter) or a maximum of 1 MB of data and then apply
  4631  // any filtering to the results using FilterExpression. If LastEvaluatedKey
  4632  // is present in the response, you will need to paginate the result set. For
  4633  // more information, see Paginating the Results (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Query.html#Query.Pagination)
  4634  // in the Amazon DynamoDB Developer Guide.
  4635  //
  4636  // FilterExpression is applied after a Query finishes, but before the results
  4637  // are returned. A FilterExpression cannot contain partition key or sort key
  4638  // attributes. You need to specify those attributes in the KeyConditionExpression.
  4639  //
  4640  // A Query operation can return an empty result set and a LastEvaluatedKey if
  4641  // all the items read for the page of results are filtered out.
  4642  //
  4643  // You can query a table, a local secondary index, or a global secondary index.
  4644  // For a query on a table or on a local secondary index, you can set the ConsistentRead
  4645  // parameter to true and obtain a strongly consistent result. Global secondary
  4646  // indexes support eventually consistent reads only, so do not specify ConsistentRead
  4647  // when querying a global secondary index.
  4648  //
  4649  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4650  // with awserr.Error's Code and Message methods to get detailed information about
  4651  // the error.
  4652  //
  4653  // See the AWS API reference guide for Amazon DynamoDB's
  4654  // API operation Query for usage and error information.
  4655  //
  4656  // Returned Error Types:
  4657  //   * ProvisionedThroughputExceededException
  4658  //   Your request rate is too high. The AWS SDKs for DynamoDB automatically retry
  4659  //   requests that receive this exception. Your request is eventually successful,
  4660  //   unless your retry queue is too large to finish. Reduce the frequency of requests
  4661  //   and use exponential backoff. For more information, go to Error Retries and
  4662  //   Exponential Backoff (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.RetryAndBackoff)
  4663  //   in the Amazon DynamoDB Developer Guide.
  4664  //
  4665  //   * ResourceNotFoundException
  4666  //   The operation tried to access a nonexistent table or index. The resource
  4667  //   might not be specified correctly, or its status might not be ACTIVE.
  4668  //
  4669  //   * RequestLimitExceeded
  4670  //   Throughput exceeds the current throughput quota for your account. Please
  4671  //   contact AWS Support at AWS Support (https://aws.amazon.com/support) to request
  4672  //   a quota increase.
  4673  //
  4674  //   * InternalServerError
  4675  //   An error occurred on the server side.
  4676  //
  4677  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/Query
  4678  func (c *DynamoDB) Query(input *QueryInput) (*QueryOutput, error) {
  4679  	req, out := c.QueryRequest(input)
  4680  	return out, req.Send()
  4681  }
  4682  
  4683  // QueryWithContext is the same as Query with the addition of
  4684  // the ability to pass a context and additional request options.
  4685  //
  4686  // See Query for details on how to use this API operation.
  4687  //
  4688  // The context must be non-nil and will be used for request cancellation. If
  4689  // the context is nil a panic will occur. In the future the SDK may create
  4690  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4691  // for more information on using Contexts.
  4692  func (c *DynamoDB) QueryWithContext(ctx aws.Context, input *QueryInput, opts ...request.Option) (*QueryOutput, error) {
  4693  	req, out := c.QueryRequest(input)
  4694  	req.SetContext(ctx)
  4695  	req.ApplyOptions(opts...)
  4696  	return out, req.Send()
  4697  }
  4698  
  4699  // QueryPages iterates over the pages of a Query operation,
  4700  // calling the "fn" function with the response data for each page. To stop
  4701  // iterating, return false from the fn function.
  4702  //
  4703  // See Query method for more information on how to use this operation.
  4704  //
  4705  // Note: This operation can generate multiple requests to a service.
  4706  //
  4707  //    // Example iterating over at most 3 pages of a Query operation.
  4708  //    pageNum := 0
  4709  //    err := client.QueryPages(params,
  4710  //        func(page *dynamodb.QueryOutput, lastPage bool) bool {
  4711  //            pageNum++
  4712  //            fmt.Println(page)
  4713  //            return pageNum <= 3
  4714  //        })
  4715  //
  4716  func (c *DynamoDB) QueryPages(input *QueryInput, fn func(*QueryOutput, bool) bool) error {
  4717  	return c.QueryPagesWithContext(aws.BackgroundContext(), input, fn)
  4718  }
  4719  
  4720  // QueryPagesWithContext same as QueryPages except
  4721  // it takes a Context and allows setting request options on the pages.
  4722  //
  4723  // The context must be non-nil and will be used for request cancellation. If
  4724  // the context is nil a panic will occur. In the future the SDK may create
  4725  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4726  // for more information on using Contexts.
  4727  func (c *DynamoDB) QueryPagesWithContext(ctx aws.Context, input *QueryInput, fn func(*QueryOutput, bool) bool, opts ...request.Option) error {
  4728  	p := request.Pagination{
  4729  		NewRequest: func() (*request.Request, error) {
  4730  			var inCpy *QueryInput
  4731  			if input != nil {
  4732  				tmp := *input
  4733  				inCpy = &tmp
  4734  			}
  4735  			req, _ := c.QueryRequest(inCpy)
  4736  			req.SetContext(ctx)
  4737  			req.ApplyOptions(opts...)
  4738  			return req, nil
  4739  		},
  4740  	}
  4741  
  4742  	for p.Next() {
  4743  		if !fn(p.Page().(*QueryOutput), !p.HasNextPage()) {
  4744  			break
  4745  		}
  4746  	}
  4747  
  4748  	return p.Err()
  4749  }
  4750  
  4751  const opRestoreTableFromBackup = "RestoreTableFromBackup"
  4752  
  4753  // RestoreTableFromBackupRequest generates a "aws/request.Request" representing the
  4754  // client's request for the RestoreTableFromBackup operation. The "output" return
  4755  // value will be populated with the request's response once the request completes
  4756  // successfully.
  4757  //
  4758  // Use "Send" method on the returned Request to send the API call to the service.
  4759  // the "output" return value is not valid until after Send returns without error.
  4760  //
  4761  // See RestoreTableFromBackup for more information on using the RestoreTableFromBackup
  4762  // API call, and error handling.
  4763  //
  4764  // This method is useful when you want to inject custom logic or configuration
  4765  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4766  //
  4767  //
  4768  //    // Example sending a request using the RestoreTableFromBackupRequest method.
  4769  //    req, resp := client.RestoreTableFromBackupRequest(params)
  4770  //
  4771  //    err := req.Send()
  4772  //    if err == nil { // resp is now filled
  4773  //        fmt.Println(resp)
  4774  //    }
  4775  //
  4776  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/RestoreTableFromBackup
  4777  func (c *DynamoDB) RestoreTableFromBackupRequest(input *RestoreTableFromBackupInput) (req *request.Request, output *RestoreTableFromBackupOutput) {
  4778  	op := &request.Operation{
  4779  		Name:       opRestoreTableFromBackup,
  4780  		HTTPMethod: "POST",
  4781  		HTTPPath:   "/",
  4782  	}
  4783  
  4784  	if input == nil {
  4785  		input = &RestoreTableFromBackupInput{}
  4786  	}
  4787  
  4788  	output = &RestoreTableFromBackupOutput{}
  4789  	req = c.newRequest(op, input, output)
  4790  	// if custom endpoint for the request is set to a non empty string,
  4791  	// we skip the endpoint discovery workflow.
  4792  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  4793  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  4794  			de := discovererDescribeEndpoints{
  4795  				Required:      false,
  4796  				EndpointCache: c.endpointCache,
  4797  				Params: map[string]*string{
  4798  					"op": aws.String(req.Operation.Name),
  4799  				},
  4800  				Client: c,
  4801  			}
  4802  
  4803  			for k, v := range de.Params {
  4804  				if v == nil {
  4805  					delete(de.Params, k)
  4806  				}
  4807  			}
  4808  
  4809  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  4810  				Name: "crr.endpointdiscovery",
  4811  				Fn:   de.Handler,
  4812  			})
  4813  		}
  4814  	}
  4815  	return
  4816  }
  4817  
  4818  // RestoreTableFromBackup API operation for Amazon DynamoDB.
  4819  //
  4820  // Creates a new table from an existing backup. Any number of users can execute
  4821  // up to 4 concurrent restores (any type of restore) in a given account.
  4822  //
  4823  // You can call RestoreTableFromBackup at a maximum rate of 10 times per second.
  4824  //
  4825  // You must manually set up the following on the restored table:
  4826  //
  4827  //    * Auto scaling policies
  4828  //
  4829  //    * IAM policies
  4830  //
  4831  //    * Amazon CloudWatch metrics and alarms
  4832  //
  4833  //    * Tags
  4834  //
  4835  //    * Stream settings
  4836  //
  4837  //    * Time to Live (TTL) settings
  4838  //
  4839  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4840  // with awserr.Error's Code and Message methods to get detailed information about
  4841  // the error.
  4842  //
  4843  // See the AWS API reference guide for Amazon DynamoDB's
  4844  // API operation RestoreTableFromBackup for usage and error information.
  4845  //
  4846  // Returned Error Types:
  4847  //   * TableAlreadyExistsException
  4848  //   A target table with the specified name already exists.
  4849  //
  4850  //   * TableInUseException
  4851  //   A target table with the specified name is either being created or deleted.
  4852  //
  4853  //   * BackupNotFoundException
  4854  //   Backup not found for the given BackupARN.
  4855  //
  4856  //   * BackupInUseException
  4857  //   There is another ongoing conflicting backup control plane operation on the
  4858  //   table. The backup is either being created, deleted or restored to a table.
  4859  //
  4860  //   * LimitExceededException
  4861  //   There is no limit to the number of daily on-demand backups that can be taken.
  4862  //
  4863  //   Up to 50 simultaneous table operations are allowed per account. These operations
  4864  //   include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup,
  4865  //   and RestoreTableToPointInTime.
  4866  //
  4867  //   The only exception is when you are creating a table with one or more secondary
  4868  //   indexes. You can have up to 25 such requests running at a time; however,
  4869  //   if the table or index specifications are complex, DynamoDB might temporarily
  4870  //   reduce the number of concurrent operations.
  4871  //
  4872  //   There is a soft account quota of 256 tables.
  4873  //
  4874  //   * InternalServerError
  4875  //   An error occurred on the server side.
  4876  //
  4877  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/RestoreTableFromBackup
  4878  func (c *DynamoDB) RestoreTableFromBackup(input *RestoreTableFromBackupInput) (*RestoreTableFromBackupOutput, error) {
  4879  	req, out := c.RestoreTableFromBackupRequest(input)
  4880  	return out, req.Send()
  4881  }
  4882  
  4883  // RestoreTableFromBackupWithContext is the same as RestoreTableFromBackup with the addition of
  4884  // the ability to pass a context and additional request options.
  4885  //
  4886  // See RestoreTableFromBackup for details on how to use this API operation.
  4887  //
  4888  // The context must be non-nil and will be used for request cancellation. If
  4889  // the context is nil a panic will occur. In the future the SDK may create
  4890  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4891  // for more information on using Contexts.
  4892  func (c *DynamoDB) RestoreTableFromBackupWithContext(ctx aws.Context, input *RestoreTableFromBackupInput, opts ...request.Option) (*RestoreTableFromBackupOutput, error) {
  4893  	req, out := c.RestoreTableFromBackupRequest(input)
  4894  	req.SetContext(ctx)
  4895  	req.ApplyOptions(opts...)
  4896  	return out, req.Send()
  4897  }
  4898  
  4899  const opRestoreTableToPointInTime = "RestoreTableToPointInTime"
  4900  
  4901  // RestoreTableToPointInTimeRequest generates a "aws/request.Request" representing the
  4902  // client's request for the RestoreTableToPointInTime operation. The "output" return
  4903  // value will be populated with the request's response once the request completes
  4904  // successfully.
  4905  //
  4906  // Use "Send" method on the returned Request to send the API call to the service.
  4907  // the "output" return value is not valid until after Send returns without error.
  4908  //
  4909  // See RestoreTableToPointInTime for more information on using the RestoreTableToPointInTime
  4910  // API call, and error handling.
  4911  //
  4912  // This method is useful when you want to inject custom logic or configuration
  4913  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4914  //
  4915  //
  4916  //    // Example sending a request using the RestoreTableToPointInTimeRequest method.
  4917  //    req, resp := client.RestoreTableToPointInTimeRequest(params)
  4918  //
  4919  //    err := req.Send()
  4920  //    if err == nil { // resp is now filled
  4921  //        fmt.Println(resp)
  4922  //    }
  4923  //
  4924  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/RestoreTableToPointInTime
  4925  func (c *DynamoDB) RestoreTableToPointInTimeRequest(input *RestoreTableToPointInTimeInput) (req *request.Request, output *RestoreTableToPointInTimeOutput) {
  4926  	op := &request.Operation{
  4927  		Name:       opRestoreTableToPointInTime,
  4928  		HTTPMethod: "POST",
  4929  		HTTPPath:   "/",
  4930  	}
  4931  
  4932  	if input == nil {
  4933  		input = &RestoreTableToPointInTimeInput{}
  4934  	}
  4935  
  4936  	output = &RestoreTableToPointInTimeOutput{}
  4937  	req = c.newRequest(op, input, output)
  4938  	// if custom endpoint for the request is set to a non empty string,
  4939  	// we skip the endpoint discovery workflow.
  4940  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  4941  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  4942  			de := discovererDescribeEndpoints{
  4943  				Required:      false,
  4944  				EndpointCache: c.endpointCache,
  4945  				Params: map[string]*string{
  4946  					"op": aws.String(req.Operation.Name),
  4947  				},
  4948  				Client: c,
  4949  			}
  4950  
  4951  			for k, v := range de.Params {
  4952  				if v == nil {
  4953  					delete(de.Params, k)
  4954  				}
  4955  			}
  4956  
  4957  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  4958  				Name: "crr.endpointdiscovery",
  4959  				Fn:   de.Handler,
  4960  			})
  4961  		}
  4962  	}
  4963  	return
  4964  }
  4965  
  4966  // RestoreTableToPointInTime API operation for Amazon DynamoDB.
  4967  //
  4968  // Restores the specified table to the specified point in time within EarliestRestorableDateTime
  4969  // and LatestRestorableDateTime. You can restore your table to any point in
  4970  // time during the last 35 days. Any number of users can execute up to 4 concurrent
  4971  // restores (any type of restore) in a given account.
  4972  //
  4973  // When you restore using point in time recovery, DynamoDB restores your table
  4974  // data to the state based on the selected date and time (day:hour:minute:second)
  4975  // to a new table.
  4976  //
  4977  // Along with data, the following are also included on the new restored table
  4978  // using point in time recovery:
  4979  //
  4980  //    * Global secondary indexes (GSIs)
  4981  //
  4982  //    * Local secondary indexes (LSIs)
  4983  //
  4984  //    * Provisioned read and write capacity
  4985  //
  4986  //    * Encryption settings All these settings come from the current settings
  4987  //    of the source table at the time of restore.
  4988  //
  4989  // You must manually set up the following on the restored table:
  4990  //
  4991  //    * Auto scaling policies
  4992  //
  4993  //    * IAM policies
  4994  //
  4995  //    * Amazon CloudWatch metrics and alarms
  4996  //
  4997  //    * Tags
  4998  //
  4999  //    * Stream settings
  5000  //
  5001  //    * Time to Live (TTL) settings
  5002  //
  5003  //    * Point in time recovery settings
  5004  //
  5005  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5006  // with awserr.Error's Code and Message methods to get detailed information about
  5007  // the error.
  5008  //
  5009  // See the AWS API reference guide for Amazon DynamoDB's
  5010  // API operation RestoreTableToPointInTime for usage and error information.
  5011  //
  5012  // Returned Error Types:
  5013  //   * TableAlreadyExistsException
  5014  //   A target table with the specified name already exists.
  5015  //
  5016  //   * TableNotFoundException
  5017  //   A source table with the name TableName does not currently exist within the
  5018  //   subscriber's account.
  5019  //
  5020  //   * TableInUseException
  5021  //   A target table with the specified name is either being created or deleted.
  5022  //
  5023  //   * LimitExceededException
  5024  //   There is no limit to the number of daily on-demand backups that can be taken.
  5025  //
  5026  //   Up to 50 simultaneous table operations are allowed per account. These operations
  5027  //   include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup,
  5028  //   and RestoreTableToPointInTime.
  5029  //
  5030  //   The only exception is when you are creating a table with one or more secondary
  5031  //   indexes. You can have up to 25 such requests running at a time; however,
  5032  //   if the table or index specifications are complex, DynamoDB might temporarily
  5033  //   reduce the number of concurrent operations.
  5034  //
  5035  //   There is a soft account quota of 256 tables.
  5036  //
  5037  //   * InvalidRestoreTimeException
  5038  //   An invalid restore time was specified. RestoreDateTime must be between EarliestRestorableDateTime
  5039  //   and LatestRestorableDateTime.
  5040  //
  5041  //   * PointInTimeRecoveryUnavailableException
  5042  //   Point in time recovery has not yet been enabled for this source table.
  5043  //
  5044  //   * InternalServerError
  5045  //   An error occurred on the server side.
  5046  //
  5047  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/RestoreTableToPointInTime
  5048  func (c *DynamoDB) RestoreTableToPointInTime(input *RestoreTableToPointInTimeInput) (*RestoreTableToPointInTimeOutput, error) {
  5049  	req, out := c.RestoreTableToPointInTimeRequest(input)
  5050  	return out, req.Send()
  5051  }
  5052  
  5053  // RestoreTableToPointInTimeWithContext is the same as RestoreTableToPointInTime with the addition of
  5054  // the ability to pass a context and additional request options.
  5055  //
  5056  // See RestoreTableToPointInTime for details on how to use this API operation.
  5057  //
  5058  // The context must be non-nil and will be used for request cancellation. If
  5059  // the context is nil a panic will occur. In the future the SDK may create
  5060  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5061  // for more information on using Contexts.
  5062  func (c *DynamoDB) RestoreTableToPointInTimeWithContext(ctx aws.Context, input *RestoreTableToPointInTimeInput, opts ...request.Option) (*RestoreTableToPointInTimeOutput, error) {
  5063  	req, out := c.RestoreTableToPointInTimeRequest(input)
  5064  	req.SetContext(ctx)
  5065  	req.ApplyOptions(opts...)
  5066  	return out, req.Send()
  5067  }
  5068  
  5069  const opScan = "Scan"
  5070  
  5071  // ScanRequest generates a "aws/request.Request" representing the
  5072  // client's request for the Scan operation. The "output" return
  5073  // value will be populated with the request's response once the request completes
  5074  // successfully.
  5075  //
  5076  // Use "Send" method on the returned Request to send the API call to the service.
  5077  // the "output" return value is not valid until after Send returns without error.
  5078  //
  5079  // See Scan for more information on using the Scan
  5080  // API call, and error handling.
  5081  //
  5082  // This method is useful when you want to inject custom logic or configuration
  5083  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5084  //
  5085  //
  5086  //    // Example sending a request using the ScanRequest method.
  5087  //    req, resp := client.ScanRequest(params)
  5088  //
  5089  //    err := req.Send()
  5090  //    if err == nil { // resp is now filled
  5091  //        fmt.Println(resp)
  5092  //    }
  5093  //
  5094  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/Scan
  5095  func (c *DynamoDB) ScanRequest(input *ScanInput) (req *request.Request, output *ScanOutput) {
  5096  	op := &request.Operation{
  5097  		Name:       opScan,
  5098  		HTTPMethod: "POST",
  5099  		HTTPPath:   "/",
  5100  		Paginator: &request.Paginator{
  5101  			InputTokens:     []string{"ExclusiveStartKey"},
  5102  			OutputTokens:    []string{"LastEvaluatedKey"},
  5103  			LimitToken:      "Limit",
  5104  			TruncationToken: "",
  5105  		},
  5106  	}
  5107  
  5108  	if input == nil {
  5109  		input = &ScanInput{}
  5110  	}
  5111  
  5112  	output = &ScanOutput{}
  5113  	req = c.newRequest(op, input, output)
  5114  	// if custom endpoint for the request is set to a non empty string,
  5115  	// we skip the endpoint discovery workflow.
  5116  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  5117  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  5118  			de := discovererDescribeEndpoints{
  5119  				Required:      false,
  5120  				EndpointCache: c.endpointCache,
  5121  				Params: map[string]*string{
  5122  					"op": aws.String(req.Operation.Name),
  5123  				},
  5124  				Client: c,
  5125  			}
  5126  
  5127  			for k, v := range de.Params {
  5128  				if v == nil {
  5129  					delete(de.Params, k)
  5130  				}
  5131  			}
  5132  
  5133  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  5134  				Name: "crr.endpointdiscovery",
  5135  				Fn:   de.Handler,
  5136  			})
  5137  		}
  5138  	}
  5139  	return
  5140  }
  5141  
  5142  // Scan API operation for Amazon DynamoDB.
  5143  //
  5144  // The Scan operation returns one or more items and item attributes by accessing
  5145  // every item in a table or a secondary index. To have DynamoDB return fewer
  5146  // items, you can provide a FilterExpression operation.
  5147  //
  5148  // If the total number of scanned items exceeds the maximum dataset size limit
  5149  // of 1 MB, the scan stops and results are returned to the user as a LastEvaluatedKey
  5150  // value to continue the scan in a subsequent operation. The results also include
  5151  // the number of items exceeding the limit. A scan can result in no table data
  5152  // meeting the filter criteria.
  5153  //
  5154  // A single Scan operation reads up to the maximum number of items set (if using
  5155  // the Limit parameter) or a maximum of 1 MB of data and then apply any filtering
  5156  // to the results using FilterExpression. If LastEvaluatedKey is present in
  5157  // the response, you need to paginate the result set. For more information,
  5158  // see Paginating the Results (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Scan.html#Scan.Pagination)
  5159  // in the Amazon DynamoDB Developer Guide.
  5160  //
  5161  // Scan operations proceed sequentially; however, for faster performance on
  5162  // a large table or secondary index, applications can request a parallel Scan
  5163  // operation by providing the Segment and TotalSegments parameters. For more
  5164  // information, see Parallel Scan (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Scan.html#Scan.ParallelScan)
  5165  // in the Amazon DynamoDB Developer Guide.
  5166  //
  5167  // Scan uses eventually consistent reads when accessing the data in a table;
  5168  // therefore, the result set might not include the changes to data in the table
  5169  // immediately before the operation began. If you need a consistent copy of
  5170  // the data, as of the time that the Scan begins, you can set the ConsistentRead
  5171  // parameter to true.
  5172  //
  5173  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5174  // with awserr.Error's Code and Message methods to get detailed information about
  5175  // the error.
  5176  //
  5177  // See the AWS API reference guide for Amazon DynamoDB's
  5178  // API operation Scan for usage and error information.
  5179  //
  5180  // Returned Error Types:
  5181  //   * ProvisionedThroughputExceededException
  5182  //   Your request rate is too high. The AWS SDKs for DynamoDB automatically retry
  5183  //   requests that receive this exception. Your request is eventually successful,
  5184  //   unless your retry queue is too large to finish. Reduce the frequency of requests
  5185  //   and use exponential backoff. For more information, go to Error Retries and
  5186  //   Exponential Backoff (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.RetryAndBackoff)
  5187  //   in the Amazon DynamoDB Developer Guide.
  5188  //
  5189  //   * ResourceNotFoundException
  5190  //   The operation tried to access a nonexistent table or index. The resource
  5191  //   might not be specified correctly, or its status might not be ACTIVE.
  5192  //
  5193  //   * RequestLimitExceeded
  5194  //   Throughput exceeds the current throughput quota for your account. Please
  5195  //   contact AWS Support at AWS Support (https://aws.amazon.com/support) to request
  5196  //   a quota increase.
  5197  //
  5198  //   * InternalServerError
  5199  //   An error occurred on the server side.
  5200  //
  5201  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/Scan
  5202  func (c *DynamoDB) Scan(input *ScanInput) (*ScanOutput, error) {
  5203  	req, out := c.ScanRequest(input)
  5204  	return out, req.Send()
  5205  }
  5206  
  5207  // ScanWithContext is the same as Scan with the addition of
  5208  // the ability to pass a context and additional request options.
  5209  //
  5210  // See Scan for details on how to use this API operation.
  5211  //
  5212  // The context must be non-nil and will be used for request cancellation. If
  5213  // the context is nil a panic will occur. In the future the SDK may create
  5214  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5215  // for more information on using Contexts.
  5216  func (c *DynamoDB) ScanWithContext(ctx aws.Context, input *ScanInput, opts ...request.Option) (*ScanOutput, error) {
  5217  	req, out := c.ScanRequest(input)
  5218  	req.SetContext(ctx)
  5219  	req.ApplyOptions(opts...)
  5220  	return out, req.Send()
  5221  }
  5222  
  5223  // ScanPages iterates over the pages of a Scan operation,
  5224  // calling the "fn" function with the response data for each page. To stop
  5225  // iterating, return false from the fn function.
  5226  //
  5227  // See Scan method for more information on how to use this operation.
  5228  //
  5229  // Note: This operation can generate multiple requests to a service.
  5230  //
  5231  //    // Example iterating over at most 3 pages of a Scan operation.
  5232  //    pageNum := 0
  5233  //    err := client.ScanPages(params,
  5234  //        func(page *dynamodb.ScanOutput, lastPage bool) bool {
  5235  //            pageNum++
  5236  //            fmt.Println(page)
  5237  //            return pageNum <= 3
  5238  //        })
  5239  //
  5240  func (c *DynamoDB) ScanPages(input *ScanInput, fn func(*ScanOutput, bool) bool) error {
  5241  	return c.ScanPagesWithContext(aws.BackgroundContext(), input, fn)
  5242  }
  5243  
  5244  // ScanPagesWithContext same as ScanPages except
  5245  // it takes a Context and allows setting request options on the pages.
  5246  //
  5247  // The context must be non-nil and will be used for request cancellation. If
  5248  // the context is nil a panic will occur. In the future the SDK may create
  5249  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5250  // for more information on using Contexts.
  5251  func (c *DynamoDB) ScanPagesWithContext(ctx aws.Context, input *ScanInput, fn func(*ScanOutput, bool) bool, opts ...request.Option) error {
  5252  	p := request.Pagination{
  5253  		NewRequest: func() (*request.Request, error) {
  5254  			var inCpy *ScanInput
  5255  			if input != nil {
  5256  				tmp := *input
  5257  				inCpy = &tmp
  5258  			}
  5259  			req, _ := c.ScanRequest(inCpy)
  5260  			req.SetContext(ctx)
  5261  			req.ApplyOptions(opts...)
  5262  			return req, nil
  5263  		},
  5264  	}
  5265  
  5266  	for p.Next() {
  5267  		if !fn(p.Page().(*ScanOutput), !p.HasNextPage()) {
  5268  			break
  5269  		}
  5270  	}
  5271  
  5272  	return p.Err()
  5273  }
  5274  
  5275  const opTagResource = "TagResource"
  5276  
  5277  // TagResourceRequest generates a "aws/request.Request" representing the
  5278  // client's request for the TagResource operation. The "output" return
  5279  // value will be populated with the request's response once the request completes
  5280  // successfully.
  5281  //
  5282  // Use "Send" method on the returned Request to send the API call to the service.
  5283  // the "output" return value is not valid until after Send returns without error.
  5284  //
  5285  // See TagResource for more information on using the TagResource
  5286  // API call, and error handling.
  5287  //
  5288  // This method is useful when you want to inject custom logic or configuration
  5289  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5290  //
  5291  //
  5292  //    // Example sending a request using the TagResourceRequest method.
  5293  //    req, resp := client.TagResourceRequest(params)
  5294  //
  5295  //    err := req.Send()
  5296  //    if err == nil { // resp is now filled
  5297  //        fmt.Println(resp)
  5298  //    }
  5299  //
  5300  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/TagResource
  5301  func (c *DynamoDB) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
  5302  	op := &request.Operation{
  5303  		Name:       opTagResource,
  5304  		HTTPMethod: "POST",
  5305  		HTTPPath:   "/",
  5306  	}
  5307  
  5308  	if input == nil {
  5309  		input = &TagResourceInput{}
  5310  	}
  5311  
  5312  	output = &TagResourceOutput{}
  5313  	req = c.newRequest(op, input, output)
  5314  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5315  	// if custom endpoint for the request is set to a non empty string,
  5316  	// we skip the endpoint discovery workflow.
  5317  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  5318  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  5319  			de := discovererDescribeEndpoints{
  5320  				Required:      false,
  5321  				EndpointCache: c.endpointCache,
  5322  				Params: map[string]*string{
  5323  					"op": aws.String(req.Operation.Name),
  5324  				},
  5325  				Client: c,
  5326  			}
  5327  
  5328  			for k, v := range de.Params {
  5329  				if v == nil {
  5330  					delete(de.Params, k)
  5331  				}
  5332  			}
  5333  
  5334  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  5335  				Name: "crr.endpointdiscovery",
  5336  				Fn:   de.Handler,
  5337  			})
  5338  		}
  5339  	}
  5340  	return
  5341  }
  5342  
  5343  // TagResource API operation for Amazon DynamoDB.
  5344  //
  5345  // Associate a set of tags with an Amazon DynamoDB resource. You can then activate
  5346  // these user-defined tags so that they appear on the Billing and Cost Management
  5347  // console for cost allocation tracking. You can call TagResource up to five
  5348  // times per second, per account.
  5349  //
  5350  // For an overview on tagging DynamoDB resources, see Tagging for DynamoDB (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html)
  5351  // in the Amazon DynamoDB Developer Guide.
  5352  //
  5353  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5354  // with awserr.Error's Code and Message methods to get detailed information about
  5355  // the error.
  5356  //
  5357  // See the AWS API reference guide for Amazon DynamoDB's
  5358  // API operation TagResource for usage and error information.
  5359  //
  5360  // Returned Error Types:
  5361  //   * LimitExceededException
  5362  //   There is no limit to the number of daily on-demand backups that can be taken.
  5363  //
  5364  //   Up to 50 simultaneous table operations are allowed per account. These operations
  5365  //   include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup,
  5366  //   and RestoreTableToPointInTime.
  5367  //
  5368  //   The only exception is when you are creating a table with one or more secondary
  5369  //   indexes. You can have up to 25 such requests running at a time; however,
  5370  //   if the table or index specifications are complex, DynamoDB might temporarily
  5371  //   reduce the number of concurrent operations.
  5372  //
  5373  //   There is a soft account quota of 256 tables.
  5374  //
  5375  //   * ResourceNotFoundException
  5376  //   The operation tried to access a nonexistent table or index. The resource
  5377  //   might not be specified correctly, or its status might not be ACTIVE.
  5378  //
  5379  //   * InternalServerError
  5380  //   An error occurred on the server side.
  5381  //
  5382  //   * ResourceInUseException
  5383  //   The operation conflicts with the resource's availability. For example, you
  5384  //   attempted to recreate an existing table, or tried to delete a table currently
  5385  //   in the CREATING state.
  5386  //
  5387  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/TagResource
  5388  func (c *DynamoDB) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
  5389  	req, out := c.TagResourceRequest(input)
  5390  	return out, req.Send()
  5391  }
  5392  
  5393  // TagResourceWithContext is the same as TagResource with the addition of
  5394  // the ability to pass a context and additional request options.
  5395  //
  5396  // See TagResource for details on how to use this API operation.
  5397  //
  5398  // The context must be non-nil and will be used for request cancellation. If
  5399  // the context is nil a panic will occur. In the future the SDK may create
  5400  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5401  // for more information on using Contexts.
  5402  func (c *DynamoDB) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
  5403  	req, out := c.TagResourceRequest(input)
  5404  	req.SetContext(ctx)
  5405  	req.ApplyOptions(opts...)
  5406  	return out, req.Send()
  5407  }
  5408  
  5409  const opTransactGetItems = "TransactGetItems"
  5410  
  5411  // TransactGetItemsRequest generates a "aws/request.Request" representing the
  5412  // client's request for the TransactGetItems operation. The "output" return
  5413  // value will be populated with the request's response once the request completes
  5414  // successfully.
  5415  //
  5416  // Use "Send" method on the returned Request to send the API call to the service.
  5417  // the "output" return value is not valid until after Send returns without error.
  5418  //
  5419  // See TransactGetItems for more information on using the TransactGetItems
  5420  // API call, and error handling.
  5421  //
  5422  // This method is useful when you want to inject custom logic or configuration
  5423  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5424  //
  5425  //
  5426  //    // Example sending a request using the TransactGetItemsRequest method.
  5427  //    req, resp := client.TransactGetItemsRequest(params)
  5428  //
  5429  //    err := req.Send()
  5430  //    if err == nil { // resp is now filled
  5431  //        fmt.Println(resp)
  5432  //    }
  5433  //
  5434  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/TransactGetItems
  5435  func (c *DynamoDB) TransactGetItemsRequest(input *TransactGetItemsInput) (req *request.Request, output *TransactGetItemsOutput) {
  5436  	op := &request.Operation{
  5437  		Name:       opTransactGetItems,
  5438  		HTTPMethod: "POST",
  5439  		HTTPPath:   "/",
  5440  	}
  5441  
  5442  	if input == nil {
  5443  		input = &TransactGetItemsInput{}
  5444  	}
  5445  
  5446  	output = &TransactGetItemsOutput{}
  5447  	req = c.newRequest(op, input, output)
  5448  	// if custom endpoint for the request is set to a non empty string,
  5449  	// we skip the endpoint discovery workflow.
  5450  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  5451  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  5452  			de := discovererDescribeEndpoints{
  5453  				Required:      false,
  5454  				EndpointCache: c.endpointCache,
  5455  				Params: map[string]*string{
  5456  					"op": aws.String(req.Operation.Name),
  5457  				},
  5458  				Client: c,
  5459  			}
  5460  
  5461  			for k, v := range de.Params {
  5462  				if v == nil {
  5463  					delete(de.Params, k)
  5464  				}
  5465  			}
  5466  
  5467  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  5468  				Name: "crr.endpointdiscovery",
  5469  				Fn:   de.Handler,
  5470  			})
  5471  		}
  5472  	}
  5473  	return
  5474  }
  5475  
  5476  // TransactGetItems API operation for Amazon DynamoDB.
  5477  //
  5478  // TransactGetItems is a synchronous operation that atomically retrieves multiple
  5479  // items from one or more tables (but not from indexes) in a single account
  5480  // and Region. A TransactGetItems call can contain up to 25 TransactGetItem
  5481  // objects, each of which contains a Get structure that specifies an item to
  5482  // retrieve from a table in the account and Region. A call to TransactGetItems
  5483  // cannot retrieve items from tables in more than one AWS account or Region.
  5484  // The aggregate size of the items in the transaction cannot exceed 4 MB.
  5485  //
  5486  // DynamoDB rejects the entire TransactGetItems request if any of the following
  5487  // is true:
  5488  //
  5489  //    * A conflicting operation is in the process of updating an item to be
  5490  //    read.
  5491  //
  5492  //    * There is insufficient provisioned capacity for the transaction to be
  5493  //    completed.
  5494  //
  5495  //    * There is a user error, such as an invalid data format.
  5496  //
  5497  //    * The aggregate size of the items in the transaction cannot exceed 4 MB.
  5498  //
  5499  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5500  // with awserr.Error's Code and Message methods to get detailed information about
  5501  // the error.
  5502  //
  5503  // See the AWS API reference guide for Amazon DynamoDB's
  5504  // API operation TransactGetItems for usage and error information.
  5505  //
  5506  // Returned Error Types:
  5507  //   * ResourceNotFoundException
  5508  //   The operation tried to access a nonexistent table or index. The resource
  5509  //   might not be specified correctly, or its status might not be ACTIVE.
  5510  //
  5511  //   * TransactionCanceledException
  5512  //   The entire transaction request was canceled.
  5513  //
  5514  //   DynamoDB cancels a TransactWriteItems request under the following circumstances:
  5515  //
  5516  //      * A condition in one of the condition expressions is not met.
  5517  //
  5518  //      * A table in the TransactWriteItems request is in a different account
  5519  //      or region.
  5520  //
  5521  //      * More than one action in the TransactWriteItems operation targets the
  5522  //      same item.
  5523  //
  5524  //      * There is insufficient provisioned capacity for the transaction to be
  5525  //      completed.
  5526  //
  5527  //      * An item size becomes too large (larger than 400 KB), or a local secondary
  5528  //      index (LSI) becomes too large, or a similar validation error occurs because
  5529  //      of changes made by the transaction.
  5530  //
  5531  //      * There is a user error, such as an invalid data format.
  5532  //
  5533  //   DynamoDB cancels a TransactGetItems request under the following circumstances:
  5534  //
  5535  //      * There is an ongoing TransactGetItems operation that conflicts with a
  5536  //      concurrent PutItem, UpdateItem, DeleteItem or TransactWriteItems request.
  5537  //      In this case the TransactGetItems operation fails with a TransactionCanceledException.
  5538  //
  5539  //      * A table in the TransactGetItems request is in a different account or
  5540  //      region.
  5541  //
  5542  //      * There is insufficient provisioned capacity for the transaction to be
  5543  //      completed.
  5544  //
  5545  //      * There is a user error, such as an invalid data format.
  5546  //
  5547  //   If using Java, DynamoDB lists the cancellation reasons on the CancellationReasons
  5548  //   property. This property is not set for other languages. Transaction cancellation
  5549  //   reasons are ordered in the order of requested items, if an item has no error
  5550  //   it will have NONE code and Null message.
  5551  //
  5552  //   Cancellation reason codes and possible error messages:
  5553  //
  5554  //      * No Errors: Code: NONE Message: null
  5555  //
  5556  //      * Conditional Check Failed: Code: ConditionalCheckFailed Message: The
  5557  //      conditional request failed.
  5558  //
  5559  //      * Item Collection Size Limit Exceeded: Code: ItemCollectionSizeLimitExceeded
  5560  //      Message: Collection size exceeded.
  5561  //
  5562  //      * Transaction Conflict: Code: TransactionConflict Message: Transaction
  5563  //      is ongoing for the item.
  5564  //
  5565  //      * Provisioned Throughput Exceeded: Code: ProvisionedThroughputExceeded
  5566  //      Messages: The level of configured provisioned throughput for the table
  5567  //      was exceeded. Consider increasing your provisioning level with the UpdateTable
  5568  //      API. This Message is received when provisioned throughput is exceeded
  5569  //      is on a provisioned DynamoDB table. The level of configured provisioned
  5570  //      throughput for one or more global secondary indexes of the table was exceeded.
  5571  //      Consider increasing your provisioning level for the under-provisioned
  5572  //      global secondary indexes with the UpdateTable API. This message is returned
  5573  //      when provisioned throughput is exceeded is on a provisioned GSI.
  5574  //
  5575  //      * Throttling Error: Code: ThrottlingError Messages: Throughput exceeds
  5576  //      the current capacity of your table or index. DynamoDB is automatically
  5577  //      scaling your table or index so please try again shortly. If exceptions
  5578  //      persist, check if you have a hot key: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-partition-key-design.html.
  5579  //      This message is returned when writes get throttled on an On-Demand table
  5580  //      as DynamoDB is automatically scaling the table. Throughput exceeds the
  5581  //      current capacity for one or more global secondary indexes. DynamoDB is
  5582  //      automatically scaling your index so please try again shortly. This message
  5583  //      is returned when when writes get throttled on an On-Demand GSI as DynamoDB
  5584  //      is automatically scaling the GSI.
  5585  //
  5586  //      * Validation Error: Code: ValidationError Messages: One or more parameter
  5587  //      values were invalid. The update expression attempted to update the secondary
  5588  //      index key beyond allowed size limits. The update expression attempted
  5589  //      to update the secondary index key to unsupported type. An operand in the
  5590  //      update expression has an incorrect data type. Item size to update has
  5591  //      exceeded the maximum allowed size. Number overflow. Attempting to store
  5592  //      a number with magnitude larger than supported range. Type mismatch for
  5593  //      attribute to update. Nesting Levels have exceeded supported limits. The
  5594  //      document path provided in the update expression is invalid for update.
  5595  //      The provided expression refers to an attribute that does not exist in
  5596  //      the item.
  5597  //
  5598  //   * ProvisionedThroughputExceededException
  5599  //   Your request rate is too high. The AWS SDKs for DynamoDB automatically retry
  5600  //   requests that receive this exception. Your request is eventually successful,
  5601  //   unless your retry queue is too large to finish. Reduce the frequency of requests
  5602  //   and use exponential backoff. For more information, go to Error Retries and
  5603  //   Exponential Backoff (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.RetryAndBackoff)
  5604  //   in the Amazon DynamoDB Developer Guide.
  5605  //
  5606  //   * RequestLimitExceeded
  5607  //   Throughput exceeds the current throughput quota for your account. Please
  5608  //   contact AWS Support at AWS Support (https://aws.amazon.com/support) to request
  5609  //   a quota increase.
  5610  //
  5611  //   * InternalServerError
  5612  //   An error occurred on the server side.
  5613  //
  5614  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/TransactGetItems
  5615  func (c *DynamoDB) TransactGetItems(input *TransactGetItemsInput) (*TransactGetItemsOutput, error) {
  5616  	req, out := c.TransactGetItemsRequest(input)
  5617  	return out, req.Send()
  5618  }
  5619  
  5620  // TransactGetItemsWithContext is the same as TransactGetItems with the addition of
  5621  // the ability to pass a context and additional request options.
  5622  //
  5623  // See TransactGetItems for details on how to use this API operation.
  5624  //
  5625  // The context must be non-nil and will be used for request cancellation. If
  5626  // the context is nil a panic will occur. In the future the SDK may create
  5627  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5628  // for more information on using Contexts.
  5629  func (c *DynamoDB) TransactGetItemsWithContext(ctx aws.Context, input *TransactGetItemsInput, opts ...request.Option) (*TransactGetItemsOutput, error) {
  5630  	req, out := c.TransactGetItemsRequest(input)
  5631  	req.SetContext(ctx)
  5632  	req.ApplyOptions(opts...)
  5633  	return out, req.Send()
  5634  }
  5635  
  5636  const opTransactWriteItems = "TransactWriteItems"
  5637  
  5638  // TransactWriteItemsRequest generates a "aws/request.Request" representing the
  5639  // client's request for the TransactWriteItems operation. The "output" return
  5640  // value will be populated with the request's response once the request completes
  5641  // successfully.
  5642  //
  5643  // Use "Send" method on the returned Request to send the API call to the service.
  5644  // the "output" return value is not valid until after Send returns without error.
  5645  //
  5646  // See TransactWriteItems for more information on using the TransactWriteItems
  5647  // API call, and error handling.
  5648  //
  5649  // This method is useful when you want to inject custom logic or configuration
  5650  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5651  //
  5652  //
  5653  //    // Example sending a request using the TransactWriteItemsRequest method.
  5654  //    req, resp := client.TransactWriteItemsRequest(params)
  5655  //
  5656  //    err := req.Send()
  5657  //    if err == nil { // resp is now filled
  5658  //        fmt.Println(resp)
  5659  //    }
  5660  //
  5661  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/TransactWriteItems
  5662  func (c *DynamoDB) TransactWriteItemsRequest(input *TransactWriteItemsInput) (req *request.Request, output *TransactWriteItemsOutput) {
  5663  	op := &request.Operation{
  5664  		Name:       opTransactWriteItems,
  5665  		HTTPMethod: "POST",
  5666  		HTTPPath:   "/",
  5667  	}
  5668  
  5669  	if input == nil {
  5670  		input = &TransactWriteItemsInput{}
  5671  	}
  5672  
  5673  	output = &TransactWriteItemsOutput{}
  5674  	req = c.newRequest(op, input, output)
  5675  	// if custom endpoint for the request is set to a non empty string,
  5676  	// we skip the endpoint discovery workflow.
  5677  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  5678  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  5679  			de := discovererDescribeEndpoints{
  5680  				Required:      false,
  5681  				EndpointCache: c.endpointCache,
  5682  				Params: map[string]*string{
  5683  					"op": aws.String(req.Operation.Name),
  5684  				},
  5685  				Client: c,
  5686  			}
  5687  
  5688  			for k, v := range de.Params {
  5689  				if v == nil {
  5690  					delete(de.Params, k)
  5691  				}
  5692  			}
  5693  
  5694  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  5695  				Name: "crr.endpointdiscovery",
  5696  				Fn:   de.Handler,
  5697  			})
  5698  		}
  5699  	}
  5700  	return
  5701  }
  5702  
  5703  // TransactWriteItems API operation for Amazon DynamoDB.
  5704  //
  5705  // TransactWriteItems is a synchronous write operation that groups up to 25
  5706  // action requests. These actions can target items in different tables, but
  5707  // not in different AWS accounts or Regions, and no two actions can target the
  5708  // same item. For example, you cannot both ConditionCheck and Update the same
  5709  // item. The aggregate size of the items in the transaction cannot exceed 4
  5710  // MB.
  5711  //
  5712  // The actions are completed atomically so that either all of them succeed,
  5713  // or all of them fail. They are defined by the following objects:
  5714  //
  5715  //    * Put — Initiates a PutItem operation to write a new item. This structure
  5716  //    specifies the primary key of the item to be written, the name of the table
  5717  //    to write it in, an optional condition expression that must be satisfied
  5718  //    for the write to succeed, a list of the item's attributes, and a field
  5719  //    indicating whether to retrieve the item's attributes if the condition
  5720  //    is not met.
  5721  //
  5722  //    * Update — Initiates an UpdateItem operation to update an existing item.
  5723  //    This structure specifies the primary key of the item to be updated, the
  5724  //    name of the table where it resides, an optional condition expression that
  5725  //    must be satisfied for the update to succeed, an expression that defines
  5726  //    one or more attributes to be updated, and a field indicating whether to
  5727  //    retrieve the item's attributes if the condition is not met.
  5728  //
  5729  //    * Delete — Initiates a DeleteItem operation to delete an existing item.
  5730  //    This structure specifies the primary key of the item to be deleted, the
  5731  //    name of the table where it resides, an optional condition expression that
  5732  //    must be satisfied for the deletion to succeed, and a field indicating
  5733  //    whether to retrieve the item's attributes if the condition is not met.
  5734  //
  5735  //    * ConditionCheck — Applies a condition to an item that is not being
  5736  //    modified by the transaction. This structure specifies the primary key
  5737  //    of the item to be checked, the name of the table where it resides, a condition
  5738  //    expression that must be satisfied for the transaction to succeed, and
  5739  //    a field indicating whether to retrieve the item's attributes if the condition
  5740  //    is not met.
  5741  //
  5742  // DynamoDB rejects the entire TransactWriteItems request if any of the following
  5743  // is true:
  5744  //
  5745  //    * A condition in one of the condition expressions is not met.
  5746  //
  5747  //    * An ongoing operation is in the process of updating the same item.
  5748  //
  5749  //    * There is insufficient provisioned capacity for the transaction to be
  5750  //    completed.
  5751  //
  5752  //    * An item size becomes too large (bigger than 400 KB), a local secondary
  5753  //    index (LSI) becomes too large, or a similar validation error occurs because
  5754  //    of changes made by the transaction.
  5755  //
  5756  //    * The aggregate size of the items in the transaction exceeds 4 MB.
  5757  //
  5758  //    * There is a user error, such as an invalid data format.
  5759  //
  5760  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5761  // with awserr.Error's Code and Message methods to get detailed information about
  5762  // the error.
  5763  //
  5764  // See the AWS API reference guide for Amazon DynamoDB's
  5765  // API operation TransactWriteItems for usage and error information.
  5766  //
  5767  // Returned Error Types:
  5768  //   * ResourceNotFoundException
  5769  //   The operation tried to access a nonexistent table or index. The resource
  5770  //   might not be specified correctly, or its status might not be ACTIVE.
  5771  //
  5772  //   * TransactionCanceledException
  5773  //   The entire transaction request was canceled.
  5774  //
  5775  //   DynamoDB cancels a TransactWriteItems request under the following circumstances:
  5776  //
  5777  //      * A condition in one of the condition expressions is not met.
  5778  //
  5779  //      * A table in the TransactWriteItems request is in a different account
  5780  //      or region.
  5781  //
  5782  //      * More than one action in the TransactWriteItems operation targets the
  5783  //      same item.
  5784  //
  5785  //      * There is insufficient provisioned capacity for the transaction to be
  5786  //      completed.
  5787  //
  5788  //      * An item size becomes too large (larger than 400 KB), or a local secondary
  5789  //      index (LSI) becomes too large, or a similar validation error occurs because
  5790  //      of changes made by the transaction.
  5791  //
  5792  //      * There is a user error, such as an invalid data format.
  5793  //
  5794  //   DynamoDB cancels a TransactGetItems request under the following circumstances:
  5795  //
  5796  //      * There is an ongoing TransactGetItems operation that conflicts with a
  5797  //      concurrent PutItem, UpdateItem, DeleteItem or TransactWriteItems request.
  5798  //      In this case the TransactGetItems operation fails with a TransactionCanceledException.
  5799  //
  5800  //      * A table in the TransactGetItems request is in a different account or
  5801  //      region.
  5802  //
  5803  //      * There is insufficient provisioned capacity for the transaction to be
  5804  //      completed.
  5805  //
  5806  //      * There is a user error, such as an invalid data format.
  5807  //
  5808  //   If using Java, DynamoDB lists the cancellation reasons on the CancellationReasons
  5809  //   property. This property is not set for other languages. Transaction cancellation
  5810  //   reasons are ordered in the order of requested items, if an item has no error
  5811  //   it will have NONE code and Null message.
  5812  //
  5813  //   Cancellation reason codes and possible error messages:
  5814  //
  5815  //      * No Errors: Code: NONE Message: null
  5816  //
  5817  //      * Conditional Check Failed: Code: ConditionalCheckFailed Message: The
  5818  //      conditional request failed.
  5819  //
  5820  //      * Item Collection Size Limit Exceeded: Code: ItemCollectionSizeLimitExceeded
  5821  //      Message: Collection size exceeded.
  5822  //
  5823  //      * Transaction Conflict: Code: TransactionConflict Message: Transaction
  5824  //      is ongoing for the item.
  5825  //
  5826  //      * Provisioned Throughput Exceeded: Code: ProvisionedThroughputExceeded
  5827  //      Messages: The level of configured provisioned throughput for the table
  5828  //      was exceeded. Consider increasing your provisioning level with the UpdateTable
  5829  //      API. This Message is received when provisioned throughput is exceeded
  5830  //      is on a provisioned DynamoDB table. The level of configured provisioned
  5831  //      throughput for one or more global secondary indexes of the table was exceeded.
  5832  //      Consider increasing your provisioning level for the under-provisioned
  5833  //      global secondary indexes with the UpdateTable API. This message is returned
  5834  //      when provisioned throughput is exceeded is on a provisioned GSI.
  5835  //
  5836  //      * Throttling Error: Code: ThrottlingError Messages: Throughput exceeds
  5837  //      the current capacity of your table or index. DynamoDB is automatically
  5838  //      scaling your table or index so please try again shortly. If exceptions
  5839  //      persist, check if you have a hot key: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-partition-key-design.html.
  5840  //      This message is returned when writes get throttled on an On-Demand table
  5841  //      as DynamoDB is automatically scaling the table. Throughput exceeds the
  5842  //      current capacity for one or more global secondary indexes. DynamoDB is
  5843  //      automatically scaling your index so please try again shortly. This message
  5844  //      is returned when when writes get throttled on an On-Demand GSI as DynamoDB
  5845  //      is automatically scaling the GSI.
  5846  //
  5847  //      * Validation Error: Code: ValidationError Messages: One or more parameter
  5848  //      values were invalid. The update expression attempted to update the secondary
  5849  //      index key beyond allowed size limits. The update expression attempted
  5850  //      to update the secondary index key to unsupported type. An operand in the
  5851  //      update expression has an incorrect data type. Item size to update has
  5852  //      exceeded the maximum allowed size. Number overflow. Attempting to store
  5853  //      a number with magnitude larger than supported range. Type mismatch for
  5854  //      attribute to update. Nesting Levels have exceeded supported limits. The
  5855  //      document path provided in the update expression is invalid for update.
  5856  //      The provided expression refers to an attribute that does not exist in
  5857  //      the item.
  5858  //
  5859  //   * TransactionInProgressException
  5860  //   The transaction with the given request token is already in progress.
  5861  //
  5862  //   * IdempotentParameterMismatchException
  5863  //   DynamoDB rejected the request because you retried a request with a different
  5864  //   payload but with an idempotent token that was already used.
  5865  //
  5866  //   * ProvisionedThroughputExceededException
  5867  //   Your request rate is too high. The AWS SDKs for DynamoDB automatically retry
  5868  //   requests that receive this exception. Your request is eventually successful,
  5869  //   unless your retry queue is too large to finish. Reduce the frequency of requests
  5870  //   and use exponential backoff. For more information, go to Error Retries and
  5871  //   Exponential Backoff (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.RetryAndBackoff)
  5872  //   in the Amazon DynamoDB Developer Guide.
  5873  //
  5874  //   * RequestLimitExceeded
  5875  //   Throughput exceeds the current throughput quota for your account. Please
  5876  //   contact AWS Support at AWS Support (https://aws.amazon.com/support) to request
  5877  //   a quota increase.
  5878  //
  5879  //   * InternalServerError
  5880  //   An error occurred on the server side.
  5881  //
  5882  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/TransactWriteItems
  5883  func (c *DynamoDB) TransactWriteItems(input *TransactWriteItemsInput) (*TransactWriteItemsOutput, error) {
  5884  	req, out := c.TransactWriteItemsRequest(input)
  5885  	return out, req.Send()
  5886  }
  5887  
  5888  // TransactWriteItemsWithContext is the same as TransactWriteItems with the addition of
  5889  // the ability to pass a context and additional request options.
  5890  //
  5891  // See TransactWriteItems for details on how to use this API operation.
  5892  //
  5893  // The context must be non-nil and will be used for request cancellation. If
  5894  // the context is nil a panic will occur. In the future the SDK may create
  5895  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5896  // for more information on using Contexts.
  5897  func (c *DynamoDB) TransactWriteItemsWithContext(ctx aws.Context, input *TransactWriteItemsInput, opts ...request.Option) (*TransactWriteItemsOutput, error) {
  5898  	req, out := c.TransactWriteItemsRequest(input)
  5899  	req.SetContext(ctx)
  5900  	req.ApplyOptions(opts...)
  5901  	return out, req.Send()
  5902  }
  5903  
  5904  const opUntagResource = "UntagResource"
  5905  
  5906  // UntagResourceRequest generates a "aws/request.Request" representing the
  5907  // client's request for the UntagResource operation. The "output" return
  5908  // value will be populated with the request's response once the request completes
  5909  // successfully.
  5910  //
  5911  // Use "Send" method on the returned Request to send the API call to the service.
  5912  // the "output" return value is not valid until after Send returns without error.
  5913  //
  5914  // See UntagResource for more information on using the UntagResource
  5915  // API call, and error handling.
  5916  //
  5917  // This method is useful when you want to inject custom logic or configuration
  5918  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5919  //
  5920  //
  5921  //    // Example sending a request using the UntagResourceRequest method.
  5922  //    req, resp := client.UntagResourceRequest(params)
  5923  //
  5924  //    err := req.Send()
  5925  //    if err == nil { // resp is now filled
  5926  //        fmt.Println(resp)
  5927  //    }
  5928  //
  5929  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UntagResource
  5930  func (c *DynamoDB) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
  5931  	op := &request.Operation{
  5932  		Name:       opUntagResource,
  5933  		HTTPMethod: "POST",
  5934  		HTTPPath:   "/",
  5935  	}
  5936  
  5937  	if input == nil {
  5938  		input = &UntagResourceInput{}
  5939  	}
  5940  
  5941  	output = &UntagResourceOutput{}
  5942  	req = c.newRequest(op, input, output)
  5943  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5944  	// if custom endpoint for the request is set to a non empty string,
  5945  	// we skip the endpoint discovery workflow.
  5946  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  5947  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  5948  			de := discovererDescribeEndpoints{
  5949  				Required:      false,
  5950  				EndpointCache: c.endpointCache,
  5951  				Params: map[string]*string{
  5952  					"op": aws.String(req.Operation.Name),
  5953  				},
  5954  				Client: c,
  5955  			}
  5956  
  5957  			for k, v := range de.Params {
  5958  				if v == nil {
  5959  					delete(de.Params, k)
  5960  				}
  5961  			}
  5962  
  5963  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  5964  				Name: "crr.endpointdiscovery",
  5965  				Fn:   de.Handler,
  5966  			})
  5967  		}
  5968  	}
  5969  	return
  5970  }
  5971  
  5972  // UntagResource API operation for Amazon DynamoDB.
  5973  //
  5974  // Removes the association of tags from an Amazon DynamoDB resource. You can
  5975  // call UntagResource up to five times per second, per account.
  5976  //
  5977  // For an overview on tagging DynamoDB resources, see Tagging for DynamoDB (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html)
  5978  // in the Amazon DynamoDB Developer Guide.
  5979  //
  5980  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5981  // with awserr.Error's Code and Message methods to get detailed information about
  5982  // the error.
  5983  //
  5984  // See the AWS API reference guide for Amazon DynamoDB's
  5985  // API operation UntagResource for usage and error information.
  5986  //
  5987  // Returned Error Types:
  5988  //   * LimitExceededException
  5989  //   There is no limit to the number of daily on-demand backups that can be taken.
  5990  //
  5991  //   Up to 50 simultaneous table operations are allowed per account. These operations
  5992  //   include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup,
  5993  //   and RestoreTableToPointInTime.
  5994  //
  5995  //   The only exception is when you are creating a table with one or more secondary
  5996  //   indexes. You can have up to 25 such requests running at a time; however,
  5997  //   if the table or index specifications are complex, DynamoDB might temporarily
  5998  //   reduce the number of concurrent operations.
  5999  //
  6000  //   There is a soft account quota of 256 tables.
  6001  //
  6002  //   * ResourceNotFoundException
  6003  //   The operation tried to access a nonexistent table or index. The resource
  6004  //   might not be specified correctly, or its status might not be ACTIVE.
  6005  //
  6006  //   * InternalServerError
  6007  //   An error occurred on the server side.
  6008  //
  6009  //   * ResourceInUseException
  6010  //   The operation conflicts with the resource's availability. For example, you
  6011  //   attempted to recreate an existing table, or tried to delete a table currently
  6012  //   in the CREATING state.
  6013  //
  6014  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UntagResource
  6015  func (c *DynamoDB) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
  6016  	req, out := c.UntagResourceRequest(input)
  6017  	return out, req.Send()
  6018  }
  6019  
  6020  // UntagResourceWithContext is the same as UntagResource with the addition of
  6021  // the ability to pass a context and additional request options.
  6022  //
  6023  // See UntagResource for details on how to use this API operation.
  6024  //
  6025  // The context must be non-nil and will be used for request cancellation. If
  6026  // the context is nil a panic will occur. In the future the SDK may create
  6027  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6028  // for more information on using Contexts.
  6029  func (c *DynamoDB) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
  6030  	req, out := c.UntagResourceRequest(input)
  6031  	req.SetContext(ctx)
  6032  	req.ApplyOptions(opts...)
  6033  	return out, req.Send()
  6034  }
  6035  
  6036  const opUpdateContinuousBackups = "UpdateContinuousBackups"
  6037  
  6038  // UpdateContinuousBackupsRequest generates a "aws/request.Request" representing the
  6039  // client's request for the UpdateContinuousBackups operation. The "output" return
  6040  // value will be populated with the request's response once the request completes
  6041  // successfully.
  6042  //
  6043  // Use "Send" method on the returned Request to send the API call to the service.
  6044  // the "output" return value is not valid until after Send returns without error.
  6045  //
  6046  // See UpdateContinuousBackups for more information on using the UpdateContinuousBackups
  6047  // API call, and error handling.
  6048  //
  6049  // This method is useful when you want to inject custom logic or configuration
  6050  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6051  //
  6052  //
  6053  //    // Example sending a request using the UpdateContinuousBackupsRequest method.
  6054  //    req, resp := client.UpdateContinuousBackupsRequest(params)
  6055  //
  6056  //    err := req.Send()
  6057  //    if err == nil { // resp is now filled
  6058  //        fmt.Println(resp)
  6059  //    }
  6060  //
  6061  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateContinuousBackups
  6062  func (c *DynamoDB) UpdateContinuousBackupsRequest(input *UpdateContinuousBackupsInput) (req *request.Request, output *UpdateContinuousBackupsOutput) {
  6063  	op := &request.Operation{
  6064  		Name:       opUpdateContinuousBackups,
  6065  		HTTPMethod: "POST",
  6066  		HTTPPath:   "/",
  6067  	}
  6068  
  6069  	if input == nil {
  6070  		input = &UpdateContinuousBackupsInput{}
  6071  	}
  6072  
  6073  	output = &UpdateContinuousBackupsOutput{}
  6074  	req = c.newRequest(op, input, output)
  6075  	// if custom endpoint for the request is set to a non empty string,
  6076  	// we skip the endpoint discovery workflow.
  6077  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  6078  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  6079  			de := discovererDescribeEndpoints{
  6080  				Required:      false,
  6081  				EndpointCache: c.endpointCache,
  6082  				Params: map[string]*string{
  6083  					"op": aws.String(req.Operation.Name),
  6084  				},
  6085  				Client: c,
  6086  			}
  6087  
  6088  			for k, v := range de.Params {
  6089  				if v == nil {
  6090  					delete(de.Params, k)
  6091  				}
  6092  			}
  6093  
  6094  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  6095  				Name: "crr.endpointdiscovery",
  6096  				Fn:   de.Handler,
  6097  			})
  6098  		}
  6099  	}
  6100  	return
  6101  }
  6102  
  6103  // UpdateContinuousBackups API operation for Amazon DynamoDB.
  6104  //
  6105  // UpdateContinuousBackups enables or disables point in time recovery for the
  6106  // specified table. A successful UpdateContinuousBackups call returns the current
  6107  // ContinuousBackupsDescription. Continuous backups are ENABLED on all tables
  6108  // at table creation. If point in time recovery is enabled, PointInTimeRecoveryStatus
  6109  // will be set to ENABLED.
  6110  //
  6111  // Once continuous backups and point in time recovery are enabled, you can restore
  6112  // to any point in time within EarliestRestorableDateTime and LatestRestorableDateTime.
  6113  //
  6114  // LatestRestorableDateTime is typically 5 minutes before the current time.
  6115  // You can restore your table to any point in time during the last 35 days.
  6116  //
  6117  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6118  // with awserr.Error's Code and Message methods to get detailed information about
  6119  // the error.
  6120  //
  6121  // See the AWS API reference guide for Amazon DynamoDB's
  6122  // API operation UpdateContinuousBackups for usage and error information.
  6123  //
  6124  // Returned Error Types:
  6125  //   * TableNotFoundException
  6126  //   A source table with the name TableName does not currently exist within the
  6127  //   subscriber's account.
  6128  //
  6129  //   * ContinuousBackupsUnavailableException
  6130  //   Backups have not yet been enabled for this table.
  6131  //
  6132  //   * InternalServerError
  6133  //   An error occurred on the server side.
  6134  //
  6135  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateContinuousBackups
  6136  func (c *DynamoDB) UpdateContinuousBackups(input *UpdateContinuousBackupsInput) (*UpdateContinuousBackupsOutput, error) {
  6137  	req, out := c.UpdateContinuousBackupsRequest(input)
  6138  	return out, req.Send()
  6139  }
  6140  
  6141  // UpdateContinuousBackupsWithContext is the same as UpdateContinuousBackups with the addition of
  6142  // the ability to pass a context and additional request options.
  6143  //
  6144  // See UpdateContinuousBackups for details on how to use this API operation.
  6145  //
  6146  // The context must be non-nil and will be used for request cancellation. If
  6147  // the context is nil a panic will occur. In the future the SDK may create
  6148  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6149  // for more information on using Contexts.
  6150  func (c *DynamoDB) UpdateContinuousBackupsWithContext(ctx aws.Context, input *UpdateContinuousBackupsInput, opts ...request.Option) (*UpdateContinuousBackupsOutput, error) {
  6151  	req, out := c.UpdateContinuousBackupsRequest(input)
  6152  	req.SetContext(ctx)
  6153  	req.ApplyOptions(opts...)
  6154  	return out, req.Send()
  6155  }
  6156  
  6157  const opUpdateContributorInsights = "UpdateContributorInsights"
  6158  
  6159  // UpdateContributorInsightsRequest generates a "aws/request.Request" representing the
  6160  // client's request for the UpdateContributorInsights operation. The "output" return
  6161  // value will be populated with the request's response once the request completes
  6162  // successfully.
  6163  //
  6164  // Use "Send" method on the returned Request to send the API call to the service.
  6165  // the "output" return value is not valid until after Send returns without error.
  6166  //
  6167  // See UpdateContributorInsights for more information on using the UpdateContributorInsights
  6168  // API call, and error handling.
  6169  //
  6170  // This method is useful when you want to inject custom logic or configuration
  6171  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6172  //
  6173  //
  6174  //    // Example sending a request using the UpdateContributorInsightsRequest method.
  6175  //    req, resp := client.UpdateContributorInsightsRequest(params)
  6176  //
  6177  //    err := req.Send()
  6178  //    if err == nil { // resp is now filled
  6179  //        fmt.Println(resp)
  6180  //    }
  6181  //
  6182  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateContributorInsights
  6183  func (c *DynamoDB) UpdateContributorInsightsRequest(input *UpdateContributorInsightsInput) (req *request.Request, output *UpdateContributorInsightsOutput) {
  6184  	op := &request.Operation{
  6185  		Name:       opUpdateContributorInsights,
  6186  		HTTPMethod: "POST",
  6187  		HTTPPath:   "/",
  6188  	}
  6189  
  6190  	if input == nil {
  6191  		input = &UpdateContributorInsightsInput{}
  6192  	}
  6193  
  6194  	output = &UpdateContributorInsightsOutput{}
  6195  	req = c.newRequest(op, input, output)
  6196  	return
  6197  }
  6198  
  6199  // UpdateContributorInsights API operation for Amazon DynamoDB.
  6200  //
  6201  // Updates the status for contributor insights for a specific table or index.
  6202  //
  6203  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6204  // with awserr.Error's Code and Message methods to get detailed information about
  6205  // the error.
  6206  //
  6207  // See the AWS API reference guide for Amazon DynamoDB's
  6208  // API operation UpdateContributorInsights for usage and error information.
  6209  //
  6210  // Returned Error Types:
  6211  //   * ResourceNotFoundException
  6212  //   The operation tried to access a nonexistent table or index. The resource
  6213  //   might not be specified correctly, or its status might not be ACTIVE.
  6214  //
  6215  //   * InternalServerError
  6216  //   An error occurred on the server side.
  6217  //
  6218  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateContributorInsights
  6219  func (c *DynamoDB) UpdateContributorInsights(input *UpdateContributorInsightsInput) (*UpdateContributorInsightsOutput, error) {
  6220  	req, out := c.UpdateContributorInsightsRequest(input)
  6221  	return out, req.Send()
  6222  }
  6223  
  6224  // UpdateContributorInsightsWithContext is the same as UpdateContributorInsights with the addition of
  6225  // the ability to pass a context and additional request options.
  6226  //
  6227  // See UpdateContributorInsights for details on how to use this API operation.
  6228  //
  6229  // The context must be non-nil and will be used for request cancellation. If
  6230  // the context is nil a panic will occur. In the future the SDK may create
  6231  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6232  // for more information on using Contexts.
  6233  func (c *DynamoDB) UpdateContributorInsightsWithContext(ctx aws.Context, input *UpdateContributorInsightsInput, opts ...request.Option) (*UpdateContributorInsightsOutput, error) {
  6234  	req, out := c.UpdateContributorInsightsRequest(input)
  6235  	req.SetContext(ctx)
  6236  	req.ApplyOptions(opts...)
  6237  	return out, req.Send()
  6238  }
  6239  
  6240  const opUpdateGlobalTable = "UpdateGlobalTable"
  6241  
  6242  // UpdateGlobalTableRequest generates a "aws/request.Request" representing the
  6243  // client's request for the UpdateGlobalTable operation. The "output" return
  6244  // value will be populated with the request's response once the request completes
  6245  // successfully.
  6246  //
  6247  // Use "Send" method on the returned Request to send the API call to the service.
  6248  // the "output" return value is not valid until after Send returns without error.
  6249  //
  6250  // See UpdateGlobalTable for more information on using the UpdateGlobalTable
  6251  // API call, and error handling.
  6252  //
  6253  // This method is useful when you want to inject custom logic or configuration
  6254  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6255  //
  6256  //
  6257  //    // Example sending a request using the UpdateGlobalTableRequest method.
  6258  //    req, resp := client.UpdateGlobalTableRequest(params)
  6259  //
  6260  //    err := req.Send()
  6261  //    if err == nil { // resp is now filled
  6262  //        fmt.Println(resp)
  6263  //    }
  6264  //
  6265  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateGlobalTable
  6266  func (c *DynamoDB) UpdateGlobalTableRequest(input *UpdateGlobalTableInput) (req *request.Request, output *UpdateGlobalTableOutput) {
  6267  	op := &request.Operation{
  6268  		Name:       opUpdateGlobalTable,
  6269  		HTTPMethod: "POST",
  6270  		HTTPPath:   "/",
  6271  	}
  6272  
  6273  	if input == nil {
  6274  		input = &UpdateGlobalTableInput{}
  6275  	}
  6276  
  6277  	output = &UpdateGlobalTableOutput{}
  6278  	req = c.newRequest(op, input, output)
  6279  	// if custom endpoint for the request is set to a non empty string,
  6280  	// we skip the endpoint discovery workflow.
  6281  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  6282  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  6283  			de := discovererDescribeEndpoints{
  6284  				Required:      false,
  6285  				EndpointCache: c.endpointCache,
  6286  				Params: map[string]*string{
  6287  					"op": aws.String(req.Operation.Name),
  6288  				},
  6289  				Client: c,
  6290  			}
  6291  
  6292  			for k, v := range de.Params {
  6293  				if v == nil {
  6294  					delete(de.Params, k)
  6295  				}
  6296  			}
  6297  
  6298  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  6299  				Name: "crr.endpointdiscovery",
  6300  				Fn:   de.Handler,
  6301  			})
  6302  		}
  6303  	}
  6304  	return
  6305  }
  6306  
  6307  // UpdateGlobalTable API operation for Amazon DynamoDB.
  6308  //
  6309  // Adds or removes replicas in the specified global table. The global table
  6310  // must already exist to be able to use this operation. Any replica to be added
  6311  // must be empty, have the same name as the global table, have the same key
  6312  // schema, have DynamoDB Streams enabled, and have the same provisioned and
  6313  // maximum write capacity units.
  6314  //
  6315  // Although you can use UpdateGlobalTable to add replicas and remove replicas
  6316  // in a single request, for simplicity we recommend that you issue separate
  6317  // requests for adding or removing replicas.
  6318  //
  6319  // If global secondary indexes are specified, then the following conditions
  6320  // must also be met:
  6321  //
  6322  //    * The global secondary indexes must have the same name.
  6323  //
  6324  //    * The global secondary indexes must have the same hash key and sort key
  6325  //    (if present).
  6326  //
  6327  //    * The global secondary indexes must have the same provisioned and maximum
  6328  //    write capacity units.
  6329  //
  6330  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6331  // with awserr.Error's Code and Message methods to get detailed information about
  6332  // the error.
  6333  //
  6334  // See the AWS API reference guide for Amazon DynamoDB's
  6335  // API operation UpdateGlobalTable for usage and error information.
  6336  //
  6337  // Returned Error Types:
  6338  //   * InternalServerError
  6339  //   An error occurred on the server side.
  6340  //
  6341  //   * GlobalTableNotFoundException
  6342  //   The specified global table does not exist.
  6343  //
  6344  //   * ReplicaAlreadyExistsException
  6345  //   The specified replica is already part of the global table.
  6346  //
  6347  //   * ReplicaNotFoundException
  6348  //   The specified replica is no longer part of the global table.
  6349  //
  6350  //   * TableNotFoundException
  6351  //   A source table with the name TableName does not currently exist within the
  6352  //   subscriber's account.
  6353  //
  6354  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateGlobalTable
  6355  func (c *DynamoDB) UpdateGlobalTable(input *UpdateGlobalTableInput) (*UpdateGlobalTableOutput, error) {
  6356  	req, out := c.UpdateGlobalTableRequest(input)
  6357  	return out, req.Send()
  6358  }
  6359  
  6360  // UpdateGlobalTableWithContext is the same as UpdateGlobalTable with the addition of
  6361  // the ability to pass a context and additional request options.
  6362  //
  6363  // See UpdateGlobalTable for details on how to use this API operation.
  6364  //
  6365  // The context must be non-nil and will be used for request cancellation. If
  6366  // the context is nil a panic will occur. In the future the SDK may create
  6367  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6368  // for more information on using Contexts.
  6369  func (c *DynamoDB) UpdateGlobalTableWithContext(ctx aws.Context, input *UpdateGlobalTableInput, opts ...request.Option) (*UpdateGlobalTableOutput, error) {
  6370  	req, out := c.UpdateGlobalTableRequest(input)
  6371  	req.SetContext(ctx)
  6372  	req.ApplyOptions(opts...)
  6373  	return out, req.Send()
  6374  }
  6375  
  6376  const opUpdateGlobalTableSettings = "UpdateGlobalTableSettings"
  6377  
  6378  // UpdateGlobalTableSettingsRequest generates a "aws/request.Request" representing the
  6379  // client's request for the UpdateGlobalTableSettings operation. The "output" return
  6380  // value will be populated with the request's response once the request completes
  6381  // successfully.
  6382  //
  6383  // Use "Send" method on the returned Request to send the API call to the service.
  6384  // the "output" return value is not valid until after Send returns without error.
  6385  //
  6386  // See UpdateGlobalTableSettings for more information on using the UpdateGlobalTableSettings
  6387  // API call, and error handling.
  6388  //
  6389  // This method is useful when you want to inject custom logic or configuration
  6390  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6391  //
  6392  //
  6393  //    // Example sending a request using the UpdateGlobalTableSettingsRequest method.
  6394  //    req, resp := client.UpdateGlobalTableSettingsRequest(params)
  6395  //
  6396  //    err := req.Send()
  6397  //    if err == nil { // resp is now filled
  6398  //        fmt.Println(resp)
  6399  //    }
  6400  //
  6401  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateGlobalTableSettings
  6402  func (c *DynamoDB) UpdateGlobalTableSettingsRequest(input *UpdateGlobalTableSettingsInput) (req *request.Request, output *UpdateGlobalTableSettingsOutput) {
  6403  	op := &request.Operation{
  6404  		Name:       opUpdateGlobalTableSettings,
  6405  		HTTPMethod: "POST",
  6406  		HTTPPath:   "/",
  6407  	}
  6408  
  6409  	if input == nil {
  6410  		input = &UpdateGlobalTableSettingsInput{}
  6411  	}
  6412  
  6413  	output = &UpdateGlobalTableSettingsOutput{}
  6414  	req = c.newRequest(op, input, output)
  6415  	// if custom endpoint for the request is set to a non empty string,
  6416  	// we skip the endpoint discovery workflow.
  6417  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  6418  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  6419  			de := discovererDescribeEndpoints{
  6420  				Required:      false,
  6421  				EndpointCache: c.endpointCache,
  6422  				Params: map[string]*string{
  6423  					"op": aws.String(req.Operation.Name),
  6424  				},
  6425  				Client: c,
  6426  			}
  6427  
  6428  			for k, v := range de.Params {
  6429  				if v == nil {
  6430  					delete(de.Params, k)
  6431  				}
  6432  			}
  6433  
  6434  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  6435  				Name: "crr.endpointdiscovery",
  6436  				Fn:   de.Handler,
  6437  			})
  6438  		}
  6439  	}
  6440  	return
  6441  }
  6442  
  6443  // UpdateGlobalTableSettings API operation for Amazon DynamoDB.
  6444  //
  6445  // Updates settings for a global table.
  6446  //
  6447  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6448  // with awserr.Error's Code and Message methods to get detailed information about
  6449  // the error.
  6450  //
  6451  // See the AWS API reference guide for Amazon DynamoDB's
  6452  // API operation UpdateGlobalTableSettings for usage and error information.
  6453  //
  6454  // Returned Error Types:
  6455  //   * GlobalTableNotFoundException
  6456  //   The specified global table does not exist.
  6457  //
  6458  //   * ReplicaNotFoundException
  6459  //   The specified replica is no longer part of the global table.
  6460  //
  6461  //   * IndexNotFoundException
  6462  //   The operation tried to access a nonexistent index.
  6463  //
  6464  //   * LimitExceededException
  6465  //   There is no limit to the number of daily on-demand backups that can be taken.
  6466  //
  6467  //   Up to 50 simultaneous table operations are allowed per account. These operations
  6468  //   include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup,
  6469  //   and RestoreTableToPointInTime.
  6470  //
  6471  //   The only exception is when you are creating a table with one or more secondary
  6472  //   indexes. You can have up to 25 such requests running at a time; however,
  6473  //   if the table or index specifications are complex, DynamoDB might temporarily
  6474  //   reduce the number of concurrent operations.
  6475  //
  6476  //   There is a soft account quota of 256 tables.
  6477  //
  6478  //   * ResourceInUseException
  6479  //   The operation conflicts with the resource's availability. For example, you
  6480  //   attempted to recreate an existing table, or tried to delete a table currently
  6481  //   in the CREATING state.
  6482  //
  6483  //   * InternalServerError
  6484  //   An error occurred on the server side.
  6485  //
  6486  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateGlobalTableSettings
  6487  func (c *DynamoDB) UpdateGlobalTableSettings(input *UpdateGlobalTableSettingsInput) (*UpdateGlobalTableSettingsOutput, error) {
  6488  	req, out := c.UpdateGlobalTableSettingsRequest(input)
  6489  	return out, req.Send()
  6490  }
  6491  
  6492  // UpdateGlobalTableSettingsWithContext is the same as UpdateGlobalTableSettings with the addition of
  6493  // the ability to pass a context and additional request options.
  6494  //
  6495  // See UpdateGlobalTableSettings for details on how to use this API operation.
  6496  //
  6497  // The context must be non-nil and will be used for request cancellation. If
  6498  // the context is nil a panic will occur. In the future the SDK may create
  6499  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6500  // for more information on using Contexts.
  6501  func (c *DynamoDB) UpdateGlobalTableSettingsWithContext(ctx aws.Context, input *UpdateGlobalTableSettingsInput, opts ...request.Option) (*UpdateGlobalTableSettingsOutput, error) {
  6502  	req, out := c.UpdateGlobalTableSettingsRequest(input)
  6503  	req.SetContext(ctx)
  6504  	req.ApplyOptions(opts...)
  6505  	return out, req.Send()
  6506  }
  6507  
  6508  const opUpdateItem = "UpdateItem"
  6509  
  6510  // UpdateItemRequest generates a "aws/request.Request" representing the
  6511  // client's request for the UpdateItem operation. The "output" return
  6512  // value will be populated with the request's response once the request completes
  6513  // successfully.
  6514  //
  6515  // Use "Send" method on the returned Request to send the API call to the service.
  6516  // the "output" return value is not valid until after Send returns without error.
  6517  //
  6518  // See UpdateItem for more information on using the UpdateItem
  6519  // API call, and error handling.
  6520  //
  6521  // This method is useful when you want to inject custom logic or configuration
  6522  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6523  //
  6524  //
  6525  //    // Example sending a request using the UpdateItemRequest method.
  6526  //    req, resp := client.UpdateItemRequest(params)
  6527  //
  6528  //    err := req.Send()
  6529  //    if err == nil { // resp is now filled
  6530  //        fmt.Println(resp)
  6531  //    }
  6532  //
  6533  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateItem
  6534  func (c *DynamoDB) UpdateItemRequest(input *UpdateItemInput) (req *request.Request, output *UpdateItemOutput) {
  6535  	op := &request.Operation{
  6536  		Name:       opUpdateItem,
  6537  		HTTPMethod: "POST",
  6538  		HTTPPath:   "/",
  6539  	}
  6540  
  6541  	if input == nil {
  6542  		input = &UpdateItemInput{}
  6543  	}
  6544  
  6545  	output = &UpdateItemOutput{}
  6546  	req = c.newRequest(op, input, output)
  6547  	// if custom endpoint for the request is set to a non empty string,
  6548  	// we skip the endpoint discovery workflow.
  6549  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  6550  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  6551  			de := discovererDescribeEndpoints{
  6552  				Required:      false,
  6553  				EndpointCache: c.endpointCache,
  6554  				Params: map[string]*string{
  6555  					"op": aws.String(req.Operation.Name),
  6556  				},
  6557  				Client: c,
  6558  			}
  6559  
  6560  			for k, v := range de.Params {
  6561  				if v == nil {
  6562  					delete(de.Params, k)
  6563  				}
  6564  			}
  6565  
  6566  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  6567  				Name: "crr.endpointdiscovery",
  6568  				Fn:   de.Handler,
  6569  			})
  6570  		}
  6571  	}
  6572  	return
  6573  }
  6574  
  6575  // UpdateItem API operation for Amazon DynamoDB.
  6576  //
  6577  // Edits an existing item's attributes, or adds a new item to the table if it
  6578  // does not already exist. You can put, delete, or add attribute values. You
  6579  // can also perform a conditional update on an existing item (insert a new attribute
  6580  // name-value pair if it doesn't exist, or replace an existing name-value pair
  6581  // if it has certain expected attribute values).
  6582  //
  6583  // You can also return the item's attribute values in the same UpdateItem operation
  6584  // using the ReturnValues parameter.
  6585  //
  6586  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6587  // with awserr.Error's Code and Message methods to get detailed information about
  6588  // the error.
  6589  //
  6590  // See the AWS API reference guide for Amazon DynamoDB's
  6591  // API operation UpdateItem for usage and error information.
  6592  //
  6593  // Returned Error Types:
  6594  //   * ConditionalCheckFailedException
  6595  //   A condition specified in the operation could not be evaluated.
  6596  //
  6597  //   * ProvisionedThroughputExceededException
  6598  //   Your request rate is too high. The AWS SDKs for DynamoDB automatically retry
  6599  //   requests that receive this exception. Your request is eventually successful,
  6600  //   unless your retry queue is too large to finish. Reduce the frequency of requests
  6601  //   and use exponential backoff. For more information, go to Error Retries and
  6602  //   Exponential Backoff (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.RetryAndBackoff)
  6603  //   in the Amazon DynamoDB Developer Guide.
  6604  //
  6605  //   * ResourceNotFoundException
  6606  //   The operation tried to access a nonexistent table or index. The resource
  6607  //   might not be specified correctly, or its status might not be ACTIVE.
  6608  //
  6609  //   * ItemCollectionSizeLimitExceededException
  6610  //   An item collection is too large. This exception is only returned for tables
  6611  //   that have one or more local secondary indexes.
  6612  //
  6613  //   * TransactionConflictException
  6614  //   Operation was rejected because there is an ongoing transaction for the item.
  6615  //
  6616  //   * RequestLimitExceeded
  6617  //   Throughput exceeds the current throughput quota for your account. Please
  6618  //   contact AWS Support at AWS Support (https://aws.amazon.com/support) to request
  6619  //   a quota increase.
  6620  //
  6621  //   * InternalServerError
  6622  //   An error occurred on the server side.
  6623  //
  6624  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateItem
  6625  func (c *DynamoDB) UpdateItem(input *UpdateItemInput) (*UpdateItemOutput, error) {
  6626  	req, out := c.UpdateItemRequest(input)
  6627  	return out, req.Send()
  6628  }
  6629  
  6630  // UpdateItemWithContext is the same as UpdateItem with the addition of
  6631  // the ability to pass a context and additional request options.
  6632  //
  6633  // See UpdateItem for details on how to use this API operation.
  6634  //
  6635  // The context must be non-nil and will be used for request cancellation. If
  6636  // the context is nil a panic will occur. In the future the SDK may create
  6637  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6638  // for more information on using Contexts.
  6639  func (c *DynamoDB) UpdateItemWithContext(ctx aws.Context, input *UpdateItemInput, opts ...request.Option) (*UpdateItemOutput, error) {
  6640  	req, out := c.UpdateItemRequest(input)
  6641  	req.SetContext(ctx)
  6642  	req.ApplyOptions(opts...)
  6643  	return out, req.Send()
  6644  }
  6645  
  6646  const opUpdateTable = "UpdateTable"
  6647  
  6648  // UpdateTableRequest generates a "aws/request.Request" representing the
  6649  // client's request for the UpdateTable operation. The "output" return
  6650  // value will be populated with the request's response once the request completes
  6651  // successfully.
  6652  //
  6653  // Use "Send" method on the returned Request to send the API call to the service.
  6654  // the "output" return value is not valid until after Send returns without error.
  6655  //
  6656  // See UpdateTable for more information on using the UpdateTable
  6657  // API call, and error handling.
  6658  //
  6659  // This method is useful when you want to inject custom logic or configuration
  6660  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6661  //
  6662  //
  6663  //    // Example sending a request using the UpdateTableRequest method.
  6664  //    req, resp := client.UpdateTableRequest(params)
  6665  //
  6666  //    err := req.Send()
  6667  //    if err == nil { // resp is now filled
  6668  //        fmt.Println(resp)
  6669  //    }
  6670  //
  6671  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateTable
  6672  func (c *DynamoDB) UpdateTableRequest(input *UpdateTableInput) (req *request.Request, output *UpdateTableOutput) {
  6673  	op := &request.Operation{
  6674  		Name:       opUpdateTable,
  6675  		HTTPMethod: "POST",
  6676  		HTTPPath:   "/",
  6677  	}
  6678  
  6679  	if input == nil {
  6680  		input = &UpdateTableInput{}
  6681  	}
  6682  
  6683  	output = &UpdateTableOutput{}
  6684  	req = c.newRequest(op, input, output)
  6685  	// if custom endpoint for the request is set to a non empty string,
  6686  	// we skip the endpoint discovery workflow.
  6687  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  6688  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  6689  			de := discovererDescribeEndpoints{
  6690  				Required:      false,
  6691  				EndpointCache: c.endpointCache,
  6692  				Params: map[string]*string{
  6693  					"op": aws.String(req.Operation.Name),
  6694  				},
  6695  				Client: c,
  6696  			}
  6697  
  6698  			for k, v := range de.Params {
  6699  				if v == nil {
  6700  					delete(de.Params, k)
  6701  				}
  6702  			}
  6703  
  6704  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  6705  				Name: "crr.endpointdiscovery",
  6706  				Fn:   de.Handler,
  6707  			})
  6708  		}
  6709  	}
  6710  	return
  6711  }
  6712  
  6713  // UpdateTable API operation for Amazon DynamoDB.
  6714  //
  6715  // Modifies the provisioned throughput settings, global secondary indexes, or
  6716  // DynamoDB Streams settings for a given table.
  6717  //
  6718  // You can only perform one of the following operations at once:
  6719  //
  6720  //    * Modify the provisioned throughput settings of the table.
  6721  //
  6722  //    * Enable or disable DynamoDB Streams on the table.
  6723  //
  6724  //    * Remove a global secondary index from the table.
  6725  //
  6726  //    * Create a new global secondary index on the table. After the index begins
  6727  //    backfilling, you can use UpdateTable to perform other operations.
  6728  //
  6729  // UpdateTable is an asynchronous operation; while it is executing, the table
  6730  // status changes from ACTIVE to UPDATING. While it is UPDATING, you cannot
  6731  // issue another UpdateTable request. When the table returns to the ACTIVE state,
  6732  // the UpdateTable operation is complete.
  6733  //
  6734  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6735  // with awserr.Error's Code and Message methods to get detailed information about
  6736  // the error.
  6737  //
  6738  // See the AWS API reference guide for Amazon DynamoDB's
  6739  // API operation UpdateTable for usage and error information.
  6740  //
  6741  // Returned Error Types:
  6742  //   * ResourceInUseException
  6743  //   The operation conflicts with the resource's availability. For example, you
  6744  //   attempted to recreate an existing table, or tried to delete a table currently
  6745  //   in the CREATING state.
  6746  //
  6747  //   * ResourceNotFoundException
  6748  //   The operation tried to access a nonexistent table or index. The resource
  6749  //   might not be specified correctly, or its status might not be ACTIVE.
  6750  //
  6751  //   * LimitExceededException
  6752  //   There is no limit to the number of daily on-demand backups that can be taken.
  6753  //
  6754  //   Up to 50 simultaneous table operations are allowed per account. These operations
  6755  //   include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup,
  6756  //   and RestoreTableToPointInTime.
  6757  //
  6758  //   The only exception is when you are creating a table with one or more secondary
  6759  //   indexes. You can have up to 25 such requests running at a time; however,
  6760  //   if the table or index specifications are complex, DynamoDB might temporarily
  6761  //   reduce the number of concurrent operations.
  6762  //
  6763  //   There is a soft account quota of 256 tables.
  6764  //
  6765  //   * InternalServerError
  6766  //   An error occurred on the server side.
  6767  //
  6768  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateTable
  6769  func (c *DynamoDB) UpdateTable(input *UpdateTableInput) (*UpdateTableOutput, error) {
  6770  	req, out := c.UpdateTableRequest(input)
  6771  	return out, req.Send()
  6772  }
  6773  
  6774  // UpdateTableWithContext is the same as UpdateTable with the addition of
  6775  // the ability to pass a context and additional request options.
  6776  //
  6777  // See UpdateTable for details on how to use this API operation.
  6778  //
  6779  // The context must be non-nil and will be used for request cancellation. If
  6780  // the context is nil a panic will occur. In the future the SDK may create
  6781  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6782  // for more information on using Contexts.
  6783  func (c *DynamoDB) UpdateTableWithContext(ctx aws.Context, input *UpdateTableInput, opts ...request.Option) (*UpdateTableOutput, error) {
  6784  	req, out := c.UpdateTableRequest(input)
  6785  	req.SetContext(ctx)
  6786  	req.ApplyOptions(opts...)
  6787  	return out, req.Send()
  6788  }
  6789  
  6790  const opUpdateTableReplicaAutoScaling = "UpdateTableReplicaAutoScaling"
  6791  
  6792  // UpdateTableReplicaAutoScalingRequest generates a "aws/request.Request" representing the
  6793  // client's request for the UpdateTableReplicaAutoScaling operation. The "output" return
  6794  // value will be populated with the request's response once the request completes
  6795  // successfully.
  6796  //
  6797  // Use "Send" method on the returned Request to send the API call to the service.
  6798  // the "output" return value is not valid until after Send returns without error.
  6799  //
  6800  // See UpdateTableReplicaAutoScaling for more information on using the UpdateTableReplicaAutoScaling
  6801  // API call, and error handling.
  6802  //
  6803  // This method is useful when you want to inject custom logic or configuration
  6804  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6805  //
  6806  //
  6807  //    // Example sending a request using the UpdateTableReplicaAutoScalingRequest method.
  6808  //    req, resp := client.UpdateTableReplicaAutoScalingRequest(params)
  6809  //
  6810  //    err := req.Send()
  6811  //    if err == nil { // resp is now filled
  6812  //        fmt.Println(resp)
  6813  //    }
  6814  //
  6815  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateTableReplicaAutoScaling
  6816  func (c *DynamoDB) UpdateTableReplicaAutoScalingRequest(input *UpdateTableReplicaAutoScalingInput) (req *request.Request, output *UpdateTableReplicaAutoScalingOutput) {
  6817  	op := &request.Operation{
  6818  		Name:       opUpdateTableReplicaAutoScaling,
  6819  		HTTPMethod: "POST",
  6820  		HTTPPath:   "/",
  6821  	}
  6822  
  6823  	if input == nil {
  6824  		input = &UpdateTableReplicaAutoScalingInput{}
  6825  	}
  6826  
  6827  	output = &UpdateTableReplicaAutoScalingOutput{}
  6828  	req = c.newRequest(op, input, output)
  6829  	return
  6830  }
  6831  
  6832  // UpdateTableReplicaAutoScaling API operation for Amazon DynamoDB.
  6833  //
  6834  // Updates auto scaling settings on your global tables at once.
  6835  //
  6836  // This operation only applies to Version 2019.11.21 (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V2.html)
  6837  // of global tables.
  6838  //
  6839  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6840  // with awserr.Error's Code and Message methods to get detailed information about
  6841  // the error.
  6842  //
  6843  // See the AWS API reference guide for Amazon DynamoDB's
  6844  // API operation UpdateTableReplicaAutoScaling for usage and error information.
  6845  //
  6846  // Returned Error Types:
  6847  //   * ResourceNotFoundException
  6848  //   The operation tried to access a nonexistent table or index. The resource
  6849  //   might not be specified correctly, or its status might not be ACTIVE.
  6850  //
  6851  //   * ResourceInUseException
  6852  //   The operation conflicts with the resource's availability. For example, you
  6853  //   attempted to recreate an existing table, or tried to delete a table currently
  6854  //   in the CREATING state.
  6855  //
  6856  //   * LimitExceededException
  6857  //   There is no limit to the number of daily on-demand backups that can be taken.
  6858  //
  6859  //   Up to 50 simultaneous table operations are allowed per account. These operations
  6860  //   include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup,
  6861  //   and RestoreTableToPointInTime.
  6862  //
  6863  //   The only exception is when you are creating a table with one or more secondary
  6864  //   indexes. You can have up to 25 such requests running at a time; however,
  6865  //   if the table or index specifications are complex, DynamoDB might temporarily
  6866  //   reduce the number of concurrent operations.
  6867  //
  6868  //   There is a soft account quota of 256 tables.
  6869  //
  6870  //   * InternalServerError
  6871  //   An error occurred on the server side.
  6872  //
  6873  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateTableReplicaAutoScaling
  6874  func (c *DynamoDB) UpdateTableReplicaAutoScaling(input *UpdateTableReplicaAutoScalingInput) (*UpdateTableReplicaAutoScalingOutput, error) {
  6875  	req, out := c.UpdateTableReplicaAutoScalingRequest(input)
  6876  	return out, req.Send()
  6877  }
  6878  
  6879  // UpdateTableReplicaAutoScalingWithContext is the same as UpdateTableReplicaAutoScaling with the addition of
  6880  // the ability to pass a context and additional request options.
  6881  //
  6882  // See UpdateTableReplicaAutoScaling for details on how to use this API operation.
  6883  //
  6884  // The context must be non-nil and will be used for request cancellation. If
  6885  // the context is nil a panic will occur. In the future the SDK may create
  6886  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6887  // for more information on using Contexts.
  6888  func (c *DynamoDB) UpdateTableReplicaAutoScalingWithContext(ctx aws.Context, input *UpdateTableReplicaAutoScalingInput, opts ...request.Option) (*UpdateTableReplicaAutoScalingOutput, error) {
  6889  	req, out := c.UpdateTableReplicaAutoScalingRequest(input)
  6890  	req.SetContext(ctx)
  6891  	req.ApplyOptions(opts...)
  6892  	return out, req.Send()
  6893  }
  6894  
  6895  const opUpdateTimeToLive = "UpdateTimeToLive"
  6896  
  6897  // UpdateTimeToLiveRequest generates a "aws/request.Request" representing the
  6898  // client's request for the UpdateTimeToLive operation. The "output" return
  6899  // value will be populated with the request's response once the request completes
  6900  // successfully.
  6901  //
  6902  // Use "Send" method on the returned Request to send the API call to the service.
  6903  // the "output" return value is not valid until after Send returns without error.
  6904  //
  6905  // See UpdateTimeToLive for more information on using the UpdateTimeToLive
  6906  // API call, and error handling.
  6907  //
  6908  // This method is useful when you want to inject custom logic or configuration
  6909  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6910  //
  6911  //
  6912  //    // Example sending a request using the UpdateTimeToLiveRequest method.
  6913  //    req, resp := client.UpdateTimeToLiveRequest(params)
  6914  //
  6915  //    err := req.Send()
  6916  //    if err == nil { // resp is now filled
  6917  //        fmt.Println(resp)
  6918  //    }
  6919  //
  6920  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateTimeToLive
  6921  func (c *DynamoDB) UpdateTimeToLiveRequest(input *UpdateTimeToLiveInput) (req *request.Request, output *UpdateTimeToLiveOutput) {
  6922  	op := &request.Operation{
  6923  		Name:       opUpdateTimeToLive,
  6924  		HTTPMethod: "POST",
  6925  		HTTPPath:   "/",
  6926  	}
  6927  
  6928  	if input == nil {
  6929  		input = &UpdateTimeToLiveInput{}
  6930  	}
  6931  
  6932  	output = &UpdateTimeToLiveOutput{}
  6933  	req = c.newRequest(op, input, output)
  6934  	// if custom endpoint for the request is set to a non empty string,
  6935  	// we skip the endpoint discovery workflow.
  6936  	if req.Config.Endpoint == nil || *req.Config.Endpoint == "" {
  6937  		if aws.BoolValue(req.Config.EnableEndpointDiscovery) {
  6938  			de := discovererDescribeEndpoints{
  6939  				Required:      false,
  6940  				EndpointCache: c.endpointCache,
  6941  				Params: map[string]*string{
  6942  					"op": aws.String(req.Operation.Name),
  6943  				},
  6944  				Client: c,
  6945  			}
  6946  
  6947  			for k, v := range de.Params {
  6948  				if v == nil {
  6949  					delete(de.Params, k)
  6950  				}
  6951  			}
  6952  
  6953  			req.Handlers.Build.PushFrontNamed(request.NamedHandler{
  6954  				Name: "crr.endpointdiscovery",
  6955  				Fn:   de.Handler,
  6956  			})
  6957  		}
  6958  	}
  6959  	return
  6960  }
  6961  
  6962  // UpdateTimeToLive API operation for Amazon DynamoDB.
  6963  //
  6964  // The UpdateTimeToLive method enables or disables Time to Live (TTL) for the
  6965  // specified table. A successful UpdateTimeToLive call returns the current TimeToLiveSpecification.
  6966  // It can take up to one hour for the change to fully process. Any additional
  6967  // UpdateTimeToLive calls for the same table during this one hour duration result
  6968  // in a ValidationException.
  6969  //
  6970  // TTL compares the current time in epoch time format to the time stored in
  6971  // the TTL attribute of an item. If the epoch time value stored in the attribute
  6972  // is less than the current time, the item is marked as expired and subsequently
  6973  // deleted.
  6974  //
  6975  // The epoch time format is the number of seconds elapsed since 12:00:00 AM
  6976  // January 1, 1970 UTC.
  6977  //
  6978  // DynamoDB deletes expired items on a best-effort basis to ensure availability
  6979  // of throughput for other data operations.
  6980  //
  6981  // DynamoDB typically deletes expired items within two days of expiration. The
  6982  // exact duration within which an item gets deleted after expiration is specific
  6983  // to the nature of the workload. Items that have expired and not been deleted
  6984  // will still show up in reads, queries, and scans.
  6985  //
  6986  // As items are deleted, they are removed from any local secondary index and
  6987  // global secondary index immediately in the same eventually consistent way
  6988  // as a standard delete operation.
  6989  //
  6990  // For more information, see Time To Live (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/TTL.html)
  6991  // in the Amazon DynamoDB Developer Guide.
  6992  //
  6993  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6994  // with awserr.Error's Code and Message methods to get detailed information about
  6995  // the error.
  6996  //
  6997  // See the AWS API reference guide for Amazon DynamoDB's
  6998  // API operation UpdateTimeToLive for usage and error information.
  6999  //
  7000  // Returned Error Types:
  7001  //   * ResourceInUseException
  7002  //   The operation conflicts with the resource's availability. For example, you
  7003  //   attempted to recreate an existing table, or tried to delete a table currently
  7004  //   in the CREATING state.
  7005  //
  7006  //   * ResourceNotFoundException
  7007  //   The operation tried to access a nonexistent table or index. The resource
  7008  //   might not be specified correctly, or its status might not be ACTIVE.
  7009  //
  7010  //   * LimitExceededException
  7011  //   There is no limit to the number of daily on-demand backups that can be taken.
  7012  //
  7013  //   Up to 50 simultaneous table operations are allowed per account. These operations
  7014  //   include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup,
  7015  //   and RestoreTableToPointInTime.
  7016  //
  7017  //   The only exception is when you are creating a table with one or more secondary
  7018  //   indexes. You can have up to 25 such requests running at a time; however,
  7019  //   if the table or index specifications are complex, DynamoDB might temporarily
  7020  //   reduce the number of concurrent operations.
  7021  //
  7022  //   There is a soft account quota of 256 tables.
  7023  //
  7024  //   * InternalServerError
  7025  //   An error occurred on the server side.
  7026  //
  7027  // See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateTimeToLive
  7028  func (c *DynamoDB) UpdateTimeToLive(input *UpdateTimeToLiveInput) (*UpdateTimeToLiveOutput, error) {
  7029  	req, out := c.UpdateTimeToLiveRequest(input)
  7030  	return out, req.Send()
  7031  }
  7032  
  7033  // UpdateTimeToLiveWithContext is the same as UpdateTimeToLive with the addition of
  7034  // the ability to pass a context and additional request options.
  7035  //
  7036  // See UpdateTimeToLive for details on how to use this API operation.
  7037  //
  7038  // The context must be non-nil and will be used for request cancellation. If
  7039  // the context is nil a panic will occur. In the future the SDK may create
  7040  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7041  // for more information on using Contexts.
  7042  func (c *DynamoDB) UpdateTimeToLiveWithContext(ctx aws.Context, input *UpdateTimeToLiveInput, opts ...request.Option) (*UpdateTimeToLiveOutput, error) {
  7043  	req, out := c.UpdateTimeToLiveRequest(input)
  7044  	req.SetContext(ctx)
  7045  	req.ApplyOptions(opts...)
  7046  	return out, req.Send()
  7047  }
  7048  
  7049  // Contains details of a table archival operation.
  7050  type ArchivalSummary struct {
  7051  	_ struct{} `type:"structure"`
  7052  
  7053  	// The Amazon Resource Name (ARN) of the backup the table was archived to, when
  7054  	// applicable in the archival reason. If you wish to restore this backup to
  7055  	// the same table name, you will need to delete the original table.
  7056  	ArchivalBackupArn *string `min:"37" type:"string"`
  7057  
  7058  	// The date and time when table archival was initiated by DynamoDB, in UNIX
  7059  	// epoch time format.
  7060  	ArchivalDateTime *time.Time `type:"timestamp"`
  7061  
  7062  	// The reason DynamoDB archived the table. Currently, the only possible value
  7063  	// is:
  7064  	//
  7065  	//    * INACCESSIBLE_ENCRYPTION_CREDENTIALS - The table was archived due to
  7066  	//    the table's AWS KMS key being inaccessible for more than seven days. An
  7067  	//    On-Demand backup was created at the archival time.
  7068  	ArchivalReason *string `type:"string"`
  7069  }
  7070  
  7071  // String returns the string representation.
  7072  //
  7073  // API parameter values that are decorated as "sensitive" in the API will not
  7074  // be included in the string output. The member name will be present, but the
  7075  // value will be replaced with "sensitive".
  7076  func (s ArchivalSummary) String() string {
  7077  	return awsutil.Prettify(s)
  7078  }
  7079  
  7080  // GoString returns the string representation.
  7081  //
  7082  // API parameter values that are decorated as "sensitive" in the API will not
  7083  // be included in the string output. The member name will be present, but the
  7084  // value will be replaced with "sensitive".
  7085  func (s ArchivalSummary) GoString() string {
  7086  	return s.String()
  7087  }
  7088  
  7089  // SetArchivalBackupArn sets the ArchivalBackupArn field's value.
  7090  func (s *ArchivalSummary) SetArchivalBackupArn(v string) *ArchivalSummary {
  7091  	s.ArchivalBackupArn = &v
  7092  	return s
  7093  }
  7094  
  7095  // SetArchivalDateTime sets the ArchivalDateTime field's value.
  7096  func (s *ArchivalSummary) SetArchivalDateTime(v time.Time) *ArchivalSummary {
  7097  	s.ArchivalDateTime = &v
  7098  	return s
  7099  }
  7100  
  7101  // SetArchivalReason sets the ArchivalReason field's value.
  7102  func (s *ArchivalSummary) SetArchivalReason(v string) *ArchivalSummary {
  7103  	s.ArchivalReason = &v
  7104  	return s
  7105  }
  7106  
  7107  // Represents an attribute for describing the key schema for the table and indexes.
  7108  type AttributeDefinition struct {
  7109  	_ struct{} `type:"structure"`
  7110  
  7111  	// A name for the attribute.
  7112  	//
  7113  	// AttributeName is a required field
  7114  	AttributeName *string `min:"1" type:"string" required:"true"`
  7115  
  7116  	// The data type for the attribute, where:
  7117  	//
  7118  	//    * S - the attribute is of type String
  7119  	//
  7120  	//    * N - the attribute is of type Number
  7121  	//
  7122  	//    * B - the attribute is of type Binary
  7123  	//
  7124  	// AttributeType is a required field
  7125  	AttributeType *string `type:"string" required:"true" enum:"ScalarAttributeType"`
  7126  }
  7127  
  7128  // String returns the string representation.
  7129  //
  7130  // API parameter values that are decorated as "sensitive" in the API will not
  7131  // be included in the string output. The member name will be present, but the
  7132  // value will be replaced with "sensitive".
  7133  func (s AttributeDefinition) String() string {
  7134  	return awsutil.Prettify(s)
  7135  }
  7136  
  7137  // GoString returns the string representation.
  7138  //
  7139  // API parameter values that are decorated as "sensitive" in the API will not
  7140  // be included in the string output. The member name will be present, but the
  7141  // value will be replaced with "sensitive".
  7142  func (s AttributeDefinition) GoString() string {
  7143  	return s.String()
  7144  }
  7145  
  7146  // Validate inspects the fields of the type to determine if they are valid.
  7147  func (s *AttributeDefinition) Validate() error {
  7148  	invalidParams := request.ErrInvalidParams{Context: "AttributeDefinition"}
  7149  	if s.AttributeName == nil {
  7150  		invalidParams.Add(request.NewErrParamRequired("AttributeName"))
  7151  	}
  7152  	if s.AttributeName != nil && len(*s.AttributeName) < 1 {
  7153  		invalidParams.Add(request.NewErrParamMinLen("AttributeName", 1))
  7154  	}
  7155  	if s.AttributeType == nil {
  7156  		invalidParams.Add(request.NewErrParamRequired("AttributeType"))
  7157  	}
  7158  
  7159  	if invalidParams.Len() > 0 {
  7160  		return invalidParams
  7161  	}
  7162  	return nil
  7163  }
  7164  
  7165  // SetAttributeName sets the AttributeName field's value.
  7166  func (s *AttributeDefinition) SetAttributeName(v string) *AttributeDefinition {
  7167  	s.AttributeName = &v
  7168  	return s
  7169  }
  7170  
  7171  // SetAttributeType sets the AttributeType field's value.
  7172  func (s *AttributeDefinition) SetAttributeType(v string) *AttributeDefinition {
  7173  	s.AttributeType = &v
  7174  	return s
  7175  }
  7176  
  7177  // Represents the data for an attribute.
  7178  //
  7179  // Each attribute value is described as a name-value pair. The name is the data
  7180  // type, and the value is the data itself.
  7181  //
  7182  // For more information, see Data Types (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes)
  7183  // in the Amazon DynamoDB Developer Guide.
  7184  type AttributeValue struct {
  7185  	_ struct{} `type:"structure"`
  7186  
  7187  	// An attribute of type Binary. For example:
  7188  	//
  7189  	// "B": "dGhpcyB0ZXh0IGlzIGJhc2U2NC1lbmNvZGVk"
  7190  	// B is automatically base64 encoded/decoded by the SDK.
  7191  	B []byte `type:"blob"`
  7192  
  7193  	// An attribute of type Boolean. For example:
  7194  	//
  7195  	// "BOOL": true
  7196  	BOOL *bool `type:"boolean"`
  7197  
  7198  	// An attribute of type Binary Set. For example:
  7199  	//
  7200  	// "BS": ["U3Vubnk=", "UmFpbnk=", "U25vd3k="]
  7201  	BS [][]byte `type:"list"`
  7202  
  7203  	// An attribute of type List. For example:
  7204  	//
  7205  	// "L": [ {"S": "Cookies"} , {"S": "Coffee"}, {"N", "3.14159"}]
  7206  	L []*AttributeValue `type:"list"`
  7207  
  7208  	// An attribute of type Map. For example:
  7209  	//
  7210  	// "M": {"Name": {"S": "Joe"}, "Age": {"N": "35"}}
  7211  	M map[string]*AttributeValue `type:"map"`
  7212  
  7213  	// An attribute of type Number. For example:
  7214  	//
  7215  	// "N": "123.45"
  7216  	//
  7217  	// Numbers are sent across the network to DynamoDB as strings, to maximize compatibility
  7218  	// across languages and libraries. However, DynamoDB treats them as number type
  7219  	// attributes for mathematical operations.
  7220  	N *string `type:"string"`
  7221  
  7222  	// An attribute of type Number Set. For example:
  7223  	//
  7224  	// "NS": ["42.2", "-19", "7.5", "3.14"]
  7225  	//
  7226  	// Numbers are sent across the network to DynamoDB as strings, to maximize compatibility
  7227  	// across languages and libraries. However, DynamoDB treats them as number type
  7228  	// attributes for mathematical operations.
  7229  	NS []*string `type:"list"`
  7230  
  7231  	// An attribute of type Null. For example:
  7232  	//
  7233  	// "NULL": true
  7234  	NULL *bool `type:"boolean"`
  7235  
  7236  	// An attribute of type String. For example:
  7237  	//
  7238  	// "S": "Hello"
  7239  	S *string `type:"string"`
  7240  
  7241  	// An attribute of type String Set. For example:
  7242  	//
  7243  	// "SS": ["Giraffe", "Hippo" ,"Zebra"]
  7244  	SS []*string `type:"list"`
  7245  }
  7246  
  7247  // String returns the string representation.
  7248  //
  7249  // API parameter values that are decorated as "sensitive" in the API will not
  7250  // be included in the string output. The member name will be present, but the
  7251  // value will be replaced with "sensitive".
  7252  func (s AttributeValue) String() string {
  7253  	return awsutil.Prettify(s)
  7254  }
  7255  
  7256  // GoString returns the string representation.
  7257  //
  7258  // API parameter values that are decorated as "sensitive" in the API will not
  7259  // be included in the string output. The member name will be present, but the
  7260  // value will be replaced with "sensitive".
  7261  func (s AttributeValue) GoString() string {
  7262  	return s.String()
  7263  }
  7264  
  7265  // SetB sets the B field's value.
  7266  func (s *AttributeValue) SetB(v []byte) *AttributeValue {
  7267  	s.B = v
  7268  	return s
  7269  }
  7270  
  7271  // SetBOOL sets the BOOL field's value.
  7272  func (s *AttributeValue) SetBOOL(v bool) *AttributeValue {
  7273  	s.BOOL = &v
  7274  	return s
  7275  }
  7276  
  7277  // SetBS sets the BS field's value.
  7278  func (s *AttributeValue) SetBS(v [][]byte) *AttributeValue {
  7279  	s.BS = v
  7280  	return s
  7281  }
  7282  
  7283  // SetL sets the L field's value.
  7284  func (s *AttributeValue) SetL(v []*AttributeValue) *AttributeValue {
  7285  	s.L = v
  7286  	return s
  7287  }
  7288  
  7289  // SetM sets the M field's value.
  7290  func (s *AttributeValue) SetM(v map[string]*AttributeValue) *AttributeValue {
  7291  	s.M = v
  7292  	return s
  7293  }
  7294  
  7295  // SetN sets the N field's value.
  7296  func (s *AttributeValue) SetN(v string) *AttributeValue {
  7297  	s.N = &v
  7298  	return s
  7299  }
  7300  
  7301  // SetNS sets the NS field's value.
  7302  func (s *AttributeValue) SetNS(v []*string) *AttributeValue {
  7303  	s.NS = v
  7304  	return s
  7305  }
  7306  
  7307  // SetNULL sets the NULL field's value.
  7308  func (s *AttributeValue) SetNULL(v bool) *AttributeValue {
  7309  	s.NULL = &v
  7310  	return s
  7311  }
  7312  
  7313  // SetS sets the S field's value.
  7314  func (s *AttributeValue) SetS(v string) *AttributeValue {
  7315  	s.S = &v
  7316  	return s
  7317  }
  7318  
  7319  // SetSS sets the SS field's value.
  7320  func (s *AttributeValue) SetSS(v []*string) *AttributeValue {
  7321  	s.SS = v
  7322  	return s
  7323  }
  7324  
  7325  // For the UpdateItem operation, represents the attributes to be modified, the
  7326  // action to perform on each, and the new value for each.
  7327  //
  7328  // You cannot use UpdateItem to update any primary key attributes. Instead,
  7329  // you will need to delete the item, and then use PutItem to create a new item
  7330  // with new attributes.
  7331  //
  7332  // Attribute values cannot be null; string and binary type attributes must have
  7333  // lengths greater than zero; and set type attributes must not be empty. Requests
  7334  // with empty values will be rejected with a ValidationException exception.
  7335  type AttributeValueUpdate struct {
  7336  	_ struct{} `type:"structure"`
  7337  
  7338  	// Specifies how to perform the update. Valid values are PUT (default), DELETE,
  7339  	// and ADD. The behavior depends on whether the specified primary key already
  7340  	// exists in the table.
  7341  	//
  7342  	// If an item with the specified Key is found in the table:
  7343  	//
  7344  	//    * PUT - Adds the specified attribute to the item. If the attribute already
  7345  	//    exists, it is replaced by the new value.
  7346  	//
  7347  	//    * DELETE - If no value is specified, the attribute and its value are removed
  7348  	//    from the item. The data type of the specified value must match the existing
  7349  	//    value's data type. If a set of values is specified, then those values
  7350  	//    are subtracted from the old set. For example, if the attribute value was
  7351  	//    the set [a,b,c] and the DELETE action specified [a,c], then the final
  7352  	//    attribute value would be [b]. Specifying an empty set is an error.
  7353  	//
  7354  	//    * ADD - If the attribute does not already exist, then the attribute and
  7355  	//    its values are added to the item. If the attribute does exist, then the
  7356  	//    behavior of ADD depends on the data type of the attribute: If the existing
  7357  	//    attribute is a number, and if Value is also a number, then the Value is
  7358  	//    mathematically added to the existing attribute. If Value is a negative
  7359  	//    number, then it is subtracted from the existing attribute. If you use
  7360  	//    ADD to increment or decrement a number value for an item that doesn't
  7361  	//    exist before the update, DynamoDB uses 0 as the initial value. In addition,
  7362  	//    if you use ADD to update an existing item, and intend to increment or
  7363  	//    decrement an attribute value which does not yet exist, DynamoDB uses 0
  7364  	//    as the initial value. For example, suppose that the item you want to update
  7365  	//    does not yet have an attribute named itemcount, but you decide to ADD
  7366  	//    the number 3 to this attribute anyway, even though it currently does not
  7367  	//    exist. DynamoDB will create the itemcount attribute, set its initial value
  7368  	//    to 0, and finally add 3 to it. The result will be a new itemcount attribute
  7369  	//    in the item, with a value of 3. If the existing data type is a set, and
  7370  	//    if the Value is also a set, then the Value is added to the existing set.
  7371  	//    (This is a set operation, not mathematical addition.) For example, if
  7372  	//    the attribute value was the set [1,2], and the ADD action specified [3],
  7373  	//    then the final attribute value would be [1,2,3]. An error occurs if an
  7374  	//    Add action is specified for a set attribute and the attribute type specified
  7375  	//    does not match the existing set type. Both sets must have the same primitive
  7376  	//    data type. For example, if the existing data type is a set of strings,
  7377  	//    the Value must also be a set of strings. The same holds true for number
  7378  	//    sets and binary sets. This action is only valid for an existing attribute
  7379  	//    whose data type is number or is a set. Do not use ADD for any other data
  7380  	//    types.
  7381  	//
  7382  	// If no item with the specified Key is found:
  7383  	//
  7384  	//    * PUT - DynamoDB creates a new item with the specified primary key, and
  7385  	//    then adds the attribute.
  7386  	//
  7387  	//    * DELETE - Nothing happens; there is no attribute to delete.
  7388  	//
  7389  	//    * ADD - DynamoDB creates an item with the supplied primary key and number
  7390  	//    (or set of numbers) for the attribute value. The only data types allowed
  7391  	//    are number and number set; no other data types can be specified.
  7392  	Action *string `type:"string" enum:"AttributeAction"`
  7393  
  7394  	// Represents the data for an attribute.
  7395  	//
  7396  	// Each attribute value is described as a name-value pair. The name is the data
  7397  	// type, and the value is the data itself.
  7398  	//
  7399  	// For more information, see Data Types (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes)
  7400  	// in the Amazon DynamoDB Developer Guide.
  7401  	Value *AttributeValue `type:"structure"`
  7402  }
  7403  
  7404  // String returns the string representation.
  7405  //
  7406  // API parameter values that are decorated as "sensitive" in the API will not
  7407  // be included in the string output. The member name will be present, but the
  7408  // value will be replaced with "sensitive".
  7409  func (s AttributeValueUpdate) String() string {
  7410  	return awsutil.Prettify(s)
  7411  }
  7412  
  7413  // GoString returns the string representation.
  7414  //
  7415  // API parameter values that are decorated as "sensitive" in the API will not
  7416  // be included in the string output. The member name will be present, but the
  7417  // value will be replaced with "sensitive".
  7418  func (s AttributeValueUpdate) GoString() string {
  7419  	return s.String()
  7420  }
  7421  
  7422  // SetAction sets the Action field's value.
  7423  func (s *AttributeValueUpdate) SetAction(v string) *AttributeValueUpdate {
  7424  	s.Action = &v
  7425  	return s
  7426  }
  7427  
  7428  // SetValue sets the Value field's value.
  7429  func (s *AttributeValueUpdate) SetValue(v *AttributeValue) *AttributeValueUpdate {
  7430  	s.Value = v
  7431  	return s
  7432  }
  7433  
  7434  // Represents the properties of the scaling policy.
  7435  type AutoScalingPolicyDescription struct {
  7436  	_ struct{} `type:"structure"`
  7437  
  7438  	// The name of the scaling policy.
  7439  	PolicyName *string `min:"1" type:"string"`
  7440  
  7441  	// Represents a target tracking scaling policy configuration.
  7442  	TargetTrackingScalingPolicyConfiguration *AutoScalingTargetTrackingScalingPolicyConfigurationDescription `type:"structure"`
  7443  }
  7444  
  7445  // String returns the string representation.
  7446  //
  7447  // API parameter values that are decorated as "sensitive" in the API will not
  7448  // be included in the string output. The member name will be present, but the
  7449  // value will be replaced with "sensitive".
  7450  func (s AutoScalingPolicyDescription) String() string {
  7451  	return awsutil.Prettify(s)
  7452  }
  7453  
  7454  // GoString returns the string representation.
  7455  //
  7456  // API parameter values that are decorated as "sensitive" in the API will not
  7457  // be included in the string output. The member name will be present, but the
  7458  // value will be replaced with "sensitive".
  7459  func (s AutoScalingPolicyDescription) GoString() string {
  7460  	return s.String()
  7461  }
  7462  
  7463  // SetPolicyName sets the PolicyName field's value.
  7464  func (s *AutoScalingPolicyDescription) SetPolicyName(v string) *AutoScalingPolicyDescription {
  7465  	s.PolicyName = &v
  7466  	return s
  7467  }
  7468  
  7469  // SetTargetTrackingScalingPolicyConfiguration sets the TargetTrackingScalingPolicyConfiguration field's value.
  7470  func (s *AutoScalingPolicyDescription) SetTargetTrackingScalingPolicyConfiguration(v *AutoScalingTargetTrackingScalingPolicyConfigurationDescription) *AutoScalingPolicyDescription {
  7471  	s.TargetTrackingScalingPolicyConfiguration = v
  7472  	return s
  7473  }
  7474  
  7475  // Represents the auto scaling policy to be modified.
  7476  type AutoScalingPolicyUpdate struct {
  7477  	_ struct{} `type:"structure"`
  7478  
  7479  	// The name of the scaling policy.
  7480  	PolicyName *string `min:"1" type:"string"`
  7481  
  7482  	// Represents a target tracking scaling policy configuration.
  7483  	//
  7484  	// TargetTrackingScalingPolicyConfiguration is a required field
  7485  	TargetTrackingScalingPolicyConfiguration *AutoScalingTargetTrackingScalingPolicyConfigurationUpdate `type:"structure" required:"true"`
  7486  }
  7487  
  7488  // String returns the string representation.
  7489  //
  7490  // API parameter values that are decorated as "sensitive" in the API will not
  7491  // be included in the string output. The member name will be present, but the
  7492  // value will be replaced with "sensitive".
  7493  func (s AutoScalingPolicyUpdate) String() string {
  7494  	return awsutil.Prettify(s)
  7495  }
  7496  
  7497  // GoString returns the string representation.
  7498  //
  7499  // API parameter values that are decorated as "sensitive" in the API will not
  7500  // be included in the string output. The member name will be present, but the
  7501  // value will be replaced with "sensitive".
  7502  func (s AutoScalingPolicyUpdate) GoString() string {
  7503  	return s.String()
  7504  }
  7505  
  7506  // Validate inspects the fields of the type to determine if they are valid.
  7507  func (s *AutoScalingPolicyUpdate) Validate() error {
  7508  	invalidParams := request.ErrInvalidParams{Context: "AutoScalingPolicyUpdate"}
  7509  	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
  7510  		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
  7511  	}
  7512  	if s.TargetTrackingScalingPolicyConfiguration == nil {
  7513  		invalidParams.Add(request.NewErrParamRequired("TargetTrackingScalingPolicyConfiguration"))
  7514  	}
  7515  	if s.TargetTrackingScalingPolicyConfiguration != nil {
  7516  		if err := s.TargetTrackingScalingPolicyConfiguration.Validate(); err != nil {
  7517  			invalidParams.AddNested("TargetTrackingScalingPolicyConfiguration", err.(request.ErrInvalidParams))
  7518  		}
  7519  	}
  7520  
  7521  	if invalidParams.Len() > 0 {
  7522  		return invalidParams
  7523  	}
  7524  	return nil
  7525  }
  7526  
  7527  // SetPolicyName sets the PolicyName field's value.
  7528  func (s *AutoScalingPolicyUpdate) SetPolicyName(v string) *AutoScalingPolicyUpdate {
  7529  	s.PolicyName = &v
  7530  	return s
  7531  }
  7532  
  7533  // SetTargetTrackingScalingPolicyConfiguration sets the TargetTrackingScalingPolicyConfiguration field's value.
  7534  func (s *AutoScalingPolicyUpdate) SetTargetTrackingScalingPolicyConfiguration(v *AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) *AutoScalingPolicyUpdate {
  7535  	s.TargetTrackingScalingPolicyConfiguration = v
  7536  	return s
  7537  }
  7538  
  7539  // Represents the auto scaling settings for a global table or global secondary
  7540  // index.
  7541  type AutoScalingSettingsDescription struct {
  7542  	_ struct{} `type:"structure"`
  7543  
  7544  	// Disabled auto scaling for this global table or global secondary index.
  7545  	AutoScalingDisabled *bool `type:"boolean"`
  7546  
  7547  	// Role ARN used for configuring the auto scaling policy.
  7548  	AutoScalingRoleArn *string `type:"string"`
  7549  
  7550  	// The maximum capacity units that a global table or global secondary index
  7551  	// should be scaled up to.
  7552  	MaximumUnits *int64 `min:"1" type:"long"`
  7553  
  7554  	// The minimum capacity units that a global table or global secondary index
  7555  	// should be scaled down to.
  7556  	MinimumUnits *int64 `min:"1" type:"long"`
  7557  
  7558  	// Information about the scaling policies.
  7559  	ScalingPolicies []*AutoScalingPolicyDescription `type:"list"`
  7560  }
  7561  
  7562  // String returns the string representation.
  7563  //
  7564  // API parameter values that are decorated as "sensitive" in the API will not
  7565  // be included in the string output. The member name will be present, but the
  7566  // value will be replaced with "sensitive".
  7567  func (s AutoScalingSettingsDescription) String() string {
  7568  	return awsutil.Prettify(s)
  7569  }
  7570  
  7571  // GoString returns the string representation.
  7572  //
  7573  // API parameter values that are decorated as "sensitive" in the API will not
  7574  // be included in the string output. The member name will be present, but the
  7575  // value will be replaced with "sensitive".
  7576  func (s AutoScalingSettingsDescription) GoString() string {
  7577  	return s.String()
  7578  }
  7579  
  7580  // SetAutoScalingDisabled sets the AutoScalingDisabled field's value.
  7581  func (s *AutoScalingSettingsDescription) SetAutoScalingDisabled(v bool) *AutoScalingSettingsDescription {
  7582  	s.AutoScalingDisabled = &v
  7583  	return s
  7584  }
  7585  
  7586  // SetAutoScalingRoleArn sets the AutoScalingRoleArn field's value.
  7587  func (s *AutoScalingSettingsDescription) SetAutoScalingRoleArn(v string) *AutoScalingSettingsDescription {
  7588  	s.AutoScalingRoleArn = &v
  7589  	return s
  7590  }
  7591  
  7592  // SetMaximumUnits sets the MaximumUnits field's value.
  7593  func (s *AutoScalingSettingsDescription) SetMaximumUnits(v int64) *AutoScalingSettingsDescription {
  7594  	s.MaximumUnits = &v
  7595  	return s
  7596  }
  7597  
  7598  // SetMinimumUnits sets the MinimumUnits field's value.
  7599  func (s *AutoScalingSettingsDescription) SetMinimumUnits(v int64) *AutoScalingSettingsDescription {
  7600  	s.MinimumUnits = &v
  7601  	return s
  7602  }
  7603  
  7604  // SetScalingPolicies sets the ScalingPolicies field's value.
  7605  func (s *AutoScalingSettingsDescription) SetScalingPolicies(v []*AutoScalingPolicyDescription) *AutoScalingSettingsDescription {
  7606  	s.ScalingPolicies = v
  7607  	return s
  7608  }
  7609  
  7610  // Represents the auto scaling settings to be modified for a global table or
  7611  // global secondary index.
  7612  type AutoScalingSettingsUpdate struct {
  7613  	_ struct{} `type:"structure"`
  7614  
  7615  	// Disabled auto scaling for this global table or global secondary index.
  7616  	AutoScalingDisabled *bool `type:"boolean"`
  7617  
  7618  	// Role ARN used for configuring auto scaling policy.
  7619  	AutoScalingRoleArn *string `min:"1" type:"string"`
  7620  
  7621  	// The maximum capacity units that a global table or global secondary index
  7622  	// should be scaled up to.
  7623  	MaximumUnits *int64 `min:"1" type:"long"`
  7624  
  7625  	// The minimum capacity units that a global table or global secondary index
  7626  	// should be scaled down to.
  7627  	MinimumUnits *int64 `min:"1" type:"long"`
  7628  
  7629  	// The scaling policy to apply for scaling target global table or global secondary
  7630  	// index capacity units.
  7631  	ScalingPolicyUpdate *AutoScalingPolicyUpdate `type:"structure"`
  7632  }
  7633  
  7634  // String returns the string representation.
  7635  //
  7636  // API parameter values that are decorated as "sensitive" in the API will not
  7637  // be included in the string output. The member name will be present, but the
  7638  // value will be replaced with "sensitive".
  7639  func (s AutoScalingSettingsUpdate) String() string {
  7640  	return awsutil.Prettify(s)
  7641  }
  7642  
  7643  // GoString returns the string representation.
  7644  //
  7645  // API parameter values that are decorated as "sensitive" in the API will not
  7646  // be included in the string output. The member name will be present, but the
  7647  // value will be replaced with "sensitive".
  7648  func (s AutoScalingSettingsUpdate) GoString() string {
  7649  	return s.String()
  7650  }
  7651  
  7652  // Validate inspects the fields of the type to determine if they are valid.
  7653  func (s *AutoScalingSettingsUpdate) Validate() error {
  7654  	invalidParams := request.ErrInvalidParams{Context: "AutoScalingSettingsUpdate"}
  7655  	if s.AutoScalingRoleArn != nil && len(*s.AutoScalingRoleArn) < 1 {
  7656  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingRoleArn", 1))
  7657  	}
  7658  	if s.MaximumUnits != nil && *s.MaximumUnits < 1 {
  7659  		invalidParams.Add(request.NewErrParamMinValue("MaximumUnits", 1))
  7660  	}
  7661  	if s.MinimumUnits != nil && *s.MinimumUnits < 1 {
  7662  		invalidParams.Add(request.NewErrParamMinValue("MinimumUnits", 1))
  7663  	}
  7664  	if s.ScalingPolicyUpdate != nil {
  7665  		if err := s.ScalingPolicyUpdate.Validate(); err != nil {
  7666  			invalidParams.AddNested("ScalingPolicyUpdate", err.(request.ErrInvalidParams))
  7667  		}
  7668  	}
  7669  
  7670  	if invalidParams.Len() > 0 {
  7671  		return invalidParams
  7672  	}
  7673  	return nil
  7674  }
  7675  
  7676  // SetAutoScalingDisabled sets the AutoScalingDisabled field's value.
  7677  func (s *AutoScalingSettingsUpdate) SetAutoScalingDisabled(v bool) *AutoScalingSettingsUpdate {
  7678  	s.AutoScalingDisabled = &v
  7679  	return s
  7680  }
  7681  
  7682  // SetAutoScalingRoleArn sets the AutoScalingRoleArn field's value.
  7683  func (s *AutoScalingSettingsUpdate) SetAutoScalingRoleArn(v string) *AutoScalingSettingsUpdate {
  7684  	s.AutoScalingRoleArn = &v
  7685  	return s
  7686  }
  7687  
  7688  // SetMaximumUnits sets the MaximumUnits field's value.
  7689  func (s *AutoScalingSettingsUpdate) SetMaximumUnits(v int64) *AutoScalingSettingsUpdate {
  7690  	s.MaximumUnits = &v
  7691  	return s
  7692  }
  7693  
  7694  // SetMinimumUnits sets the MinimumUnits field's value.
  7695  func (s *AutoScalingSettingsUpdate) SetMinimumUnits(v int64) *AutoScalingSettingsUpdate {
  7696  	s.MinimumUnits = &v
  7697  	return s
  7698  }
  7699  
  7700  // SetScalingPolicyUpdate sets the ScalingPolicyUpdate field's value.
  7701  func (s *AutoScalingSettingsUpdate) SetScalingPolicyUpdate(v *AutoScalingPolicyUpdate) *AutoScalingSettingsUpdate {
  7702  	s.ScalingPolicyUpdate = v
  7703  	return s
  7704  }
  7705  
  7706  // Represents the properties of a target tracking scaling policy.
  7707  type AutoScalingTargetTrackingScalingPolicyConfigurationDescription struct {
  7708  	_ struct{} `type:"structure"`
  7709  
  7710  	// Indicates whether scale in by the target tracking policy is disabled. If
  7711  	// the value is true, scale in is disabled and the target tracking policy won't
  7712  	// remove capacity from the scalable resource. Otherwise, scale in is enabled
  7713  	// and the target tracking policy can remove capacity from the scalable resource.
  7714  	// The default value is false.
  7715  	DisableScaleIn *bool `type:"boolean"`
  7716  
  7717  	// The amount of time, in seconds, after a scale in activity completes before
  7718  	// another scale in activity can start. The cooldown period is used to block
  7719  	// subsequent scale in requests until it has expired. You should scale in conservatively
  7720  	// to protect your application's availability. However, if another alarm triggers
  7721  	// a scale out policy during the cooldown period after a scale-in, application
  7722  	// auto scaling scales out your scalable target immediately.
  7723  	ScaleInCooldown *int64 `type:"integer"`
  7724  
  7725  	// The amount of time, in seconds, after a scale out activity completes before
  7726  	// another scale out activity can start. While the cooldown period is in effect,
  7727  	// the capacity that has been added by the previous scale out event that initiated
  7728  	// the cooldown is calculated as part of the desired capacity for the next scale
  7729  	// out. You should continuously (but not excessively) scale out.
  7730  	ScaleOutCooldown *int64 `type:"integer"`
  7731  
  7732  	// The target value for the metric. The range is 8.515920e-109 to 1.174271e+108
  7733  	// (Base 10) or 2e-360 to 2e360 (Base 2).
  7734  	//
  7735  	// TargetValue is a required field
  7736  	TargetValue *float64 `type:"double" required:"true"`
  7737  }
  7738  
  7739  // String returns the string representation.
  7740  //
  7741  // API parameter values that are decorated as "sensitive" in the API will not
  7742  // be included in the string output. The member name will be present, but the
  7743  // value will be replaced with "sensitive".
  7744  func (s AutoScalingTargetTrackingScalingPolicyConfigurationDescription) String() string {
  7745  	return awsutil.Prettify(s)
  7746  }
  7747  
  7748  // GoString returns the string representation.
  7749  //
  7750  // API parameter values that are decorated as "sensitive" in the API will not
  7751  // be included in the string output. The member name will be present, but the
  7752  // value will be replaced with "sensitive".
  7753  func (s AutoScalingTargetTrackingScalingPolicyConfigurationDescription) GoString() string {
  7754  	return s.String()
  7755  }
  7756  
  7757  // SetDisableScaleIn sets the DisableScaleIn field's value.
  7758  func (s *AutoScalingTargetTrackingScalingPolicyConfigurationDescription) SetDisableScaleIn(v bool) *AutoScalingTargetTrackingScalingPolicyConfigurationDescription {
  7759  	s.DisableScaleIn = &v
  7760  	return s
  7761  }
  7762  
  7763  // SetScaleInCooldown sets the ScaleInCooldown field's value.
  7764  func (s *AutoScalingTargetTrackingScalingPolicyConfigurationDescription) SetScaleInCooldown(v int64) *AutoScalingTargetTrackingScalingPolicyConfigurationDescription {
  7765  	s.ScaleInCooldown = &v
  7766  	return s
  7767  }
  7768  
  7769  // SetScaleOutCooldown sets the ScaleOutCooldown field's value.
  7770  func (s *AutoScalingTargetTrackingScalingPolicyConfigurationDescription) SetScaleOutCooldown(v int64) *AutoScalingTargetTrackingScalingPolicyConfigurationDescription {
  7771  	s.ScaleOutCooldown = &v
  7772  	return s
  7773  }
  7774  
  7775  // SetTargetValue sets the TargetValue field's value.
  7776  func (s *AutoScalingTargetTrackingScalingPolicyConfigurationDescription) SetTargetValue(v float64) *AutoScalingTargetTrackingScalingPolicyConfigurationDescription {
  7777  	s.TargetValue = &v
  7778  	return s
  7779  }
  7780  
  7781  // Represents the settings of a target tracking scaling policy that will be
  7782  // modified.
  7783  type AutoScalingTargetTrackingScalingPolicyConfigurationUpdate struct {
  7784  	_ struct{} `type:"structure"`
  7785  
  7786  	// Indicates whether scale in by the target tracking policy is disabled. If
  7787  	// the value is true, scale in is disabled and the target tracking policy won't
  7788  	// remove capacity from the scalable resource. Otherwise, scale in is enabled
  7789  	// and the target tracking policy can remove capacity from the scalable resource.
  7790  	// The default value is false.
  7791  	DisableScaleIn *bool `type:"boolean"`
  7792  
  7793  	// The amount of time, in seconds, after a scale in activity completes before
  7794  	// another scale in activity can start. The cooldown period is used to block
  7795  	// subsequent scale in requests until it has expired. You should scale in conservatively
  7796  	// to protect your application's availability. However, if another alarm triggers
  7797  	// a scale out policy during the cooldown period after a scale-in, application
  7798  	// auto scaling scales out your scalable target immediately.
  7799  	ScaleInCooldown *int64 `type:"integer"`
  7800  
  7801  	// The amount of time, in seconds, after a scale out activity completes before
  7802  	// another scale out activity can start. While the cooldown period is in effect,
  7803  	// the capacity that has been added by the previous scale out event that initiated
  7804  	// the cooldown is calculated as part of the desired capacity for the next scale
  7805  	// out. You should continuously (but not excessively) scale out.
  7806  	ScaleOutCooldown *int64 `type:"integer"`
  7807  
  7808  	// The target value for the metric. The range is 8.515920e-109 to 1.174271e+108
  7809  	// (Base 10) or 2e-360 to 2e360 (Base 2).
  7810  	//
  7811  	// TargetValue is a required field
  7812  	TargetValue *float64 `type:"double" required:"true"`
  7813  }
  7814  
  7815  // String returns the string representation.
  7816  //
  7817  // API parameter values that are decorated as "sensitive" in the API will not
  7818  // be included in the string output. The member name will be present, but the
  7819  // value will be replaced with "sensitive".
  7820  func (s AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) String() string {
  7821  	return awsutil.Prettify(s)
  7822  }
  7823  
  7824  // GoString returns the string representation.
  7825  //
  7826  // API parameter values that are decorated as "sensitive" in the API will not
  7827  // be included in the string output. The member name will be present, but the
  7828  // value will be replaced with "sensitive".
  7829  func (s AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) GoString() string {
  7830  	return s.String()
  7831  }
  7832  
  7833  // Validate inspects the fields of the type to determine if they are valid.
  7834  func (s *AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) Validate() error {
  7835  	invalidParams := request.ErrInvalidParams{Context: "AutoScalingTargetTrackingScalingPolicyConfigurationUpdate"}
  7836  	if s.TargetValue == nil {
  7837  		invalidParams.Add(request.NewErrParamRequired("TargetValue"))
  7838  	}
  7839  
  7840  	if invalidParams.Len() > 0 {
  7841  		return invalidParams
  7842  	}
  7843  	return nil
  7844  }
  7845  
  7846  // SetDisableScaleIn sets the DisableScaleIn field's value.
  7847  func (s *AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) SetDisableScaleIn(v bool) *AutoScalingTargetTrackingScalingPolicyConfigurationUpdate {
  7848  	s.DisableScaleIn = &v
  7849  	return s
  7850  }
  7851  
  7852  // SetScaleInCooldown sets the ScaleInCooldown field's value.
  7853  func (s *AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) SetScaleInCooldown(v int64) *AutoScalingTargetTrackingScalingPolicyConfigurationUpdate {
  7854  	s.ScaleInCooldown = &v
  7855  	return s
  7856  }
  7857  
  7858  // SetScaleOutCooldown sets the ScaleOutCooldown field's value.
  7859  func (s *AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) SetScaleOutCooldown(v int64) *AutoScalingTargetTrackingScalingPolicyConfigurationUpdate {
  7860  	s.ScaleOutCooldown = &v
  7861  	return s
  7862  }
  7863  
  7864  // SetTargetValue sets the TargetValue field's value.
  7865  func (s *AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) SetTargetValue(v float64) *AutoScalingTargetTrackingScalingPolicyConfigurationUpdate {
  7866  	s.TargetValue = &v
  7867  	return s
  7868  }
  7869  
  7870  // Contains the description of the backup created for the table.
  7871  type BackupDescription struct {
  7872  	_ struct{} `type:"structure"`
  7873  
  7874  	// Contains the details of the backup created for the table.
  7875  	BackupDetails *BackupDetails `type:"structure"`
  7876  
  7877  	// Contains the details of the table when the backup was created.
  7878  	SourceTableDetails *SourceTableDetails `type:"structure"`
  7879  
  7880  	// Contains the details of the features enabled on the table when the backup
  7881  	// was created. For example, LSIs, GSIs, streams, TTL.
  7882  	SourceTableFeatureDetails *SourceTableFeatureDetails `type:"structure"`
  7883  }
  7884  
  7885  // String returns the string representation.
  7886  //
  7887  // API parameter values that are decorated as "sensitive" in the API will not
  7888  // be included in the string output. The member name will be present, but the
  7889  // value will be replaced with "sensitive".
  7890  func (s BackupDescription) String() string {
  7891  	return awsutil.Prettify(s)
  7892  }
  7893  
  7894  // GoString returns the string representation.
  7895  //
  7896  // API parameter values that are decorated as "sensitive" in the API will not
  7897  // be included in the string output. The member name will be present, but the
  7898  // value will be replaced with "sensitive".
  7899  func (s BackupDescription) GoString() string {
  7900  	return s.String()
  7901  }
  7902  
  7903  // SetBackupDetails sets the BackupDetails field's value.
  7904  func (s *BackupDescription) SetBackupDetails(v *BackupDetails) *BackupDescription {
  7905  	s.BackupDetails = v
  7906  	return s
  7907  }
  7908  
  7909  // SetSourceTableDetails sets the SourceTableDetails field's value.
  7910  func (s *BackupDescription) SetSourceTableDetails(v *SourceTableDetails) *BackupDescription {
  7911  	s.SourceTableDetails = v
  7912  	return s
  7913  }
  7914  
  7915  // SetSourceTableFeatureDetails sets the SourceTableFeatureDetails field's value.
  7916  func (s *BackupDescription) SetSourceTableFeatureDetails(v *SourceTableFeatureDetails) *BackupDescription {
  7917  	s.SourceTableFeatureDetails = v
  7918  	return s
  7919  }
  7920  
  7921  // Contains the details of the backup created for the table.
  7922  type BackupDetails struct {
  7923  	_ struct{} `type:"structure"`
  7924  
  7925  	// ARN associated with the backup.
  7926  	//
  7927  	// BackupArn is a required field
  7928  	BackupArn *string `min:"37" type:"string" required:"true"`
  7929  
  7930  	// Time at which the backup was created. This is the request time of the backup.
  7931  	//
  7932  	// BackupCreationDateTime is a required field
  7933  	BackupCreationDateTime *time.Time `type:"timestamp" required:"true"`
  7934  
  7935  	// Time at which the automatic on-demand backup created by DynamoDB will expire.
  7936  	// This SYSTEM on-demand backup expires automatically 35 days after its creation.
  7937  	BackupExpiryDateTime *time.Time `type:"timestamp"`
  7938  
  7939  	// Name of the requested backup.
  7940  	//
  7941  	// BackupName is a required field
  7942  	BackupName *string `min:"3" type:"string" required:"true"`
  7943  
  7944  	// Size of the backup in bytes.
  7945  	BackupSizeBytes *int64 `type:"long"`
  7946  
  7947  	// Backup can be in one of the following states: CREATING, ACTIVE, DELETED.
  7948  	//
  7949  	// BackupStatus is a required field
  7950  	BackupStatus *string `type:"string" required:"true" enum:"BackupStatus"`
  7951  
  7952  	// BackupType:
  7953  	//
  7954  	//    * USER - You create and manage these using the on-demand backup feature.
  7955  	//
  7956  	//    * SYSTEM - If you delete a table with point-in-time recovery enabled,
  7957  	//    a SYSTEM backup is automatically created and is retained for 35 days (at
  7958  	//    no additional cost). System backups allow you to restore the deleted table
  7959  	//    to the state it was in just before the point of deletion.
  7960  	//
  7961  	//    * AWS_BACKUP - On-demand backup created by you from AWS Backup service.
  7962  	//
  7963  	// BackupType is a required field
  7964  	BackupType *string `type:"string" required:"true" enum:"BackupType"`
  7965  }
  7966  
  7967  // String returns the string representation.
  7968  //
  7969  // API parameter values that are decorated as "sensitive" in the API will not
  7970  // be included in the string output. The member name will be present, but the
  7971  // value will be replaced with "sensitive".
  7972  func (s BackupDetails) String() string {
  7973  	return awsutil.Prettify(s)
  7974  }
  7975  
  7976  // GoString returns the string representation.
  7977  //
  7978  // API parameter values that are decorated as "sensitive" in the API will not
  7979  // be included in the string output. The member name will be present, but the
  7980  // value will be replaced with "sensitive".
  7981  func (s BackupDetails) GoString() string {
  7982  	return s.String()
  7983  }
  7984  
  7985  // SetBackupArn sets the BackupArn field's value.
  7986  func (s *BackupDetails) SetBackupArn(v string) *BackupDetails {
  7987  	s.BackupArn = &v
  7988  	return s
  7989  }
  7990  
  7991  // SetBackupCreationDateTime sets the BackupCreationDateTime field's value.
  7992  func (s *BackupDetails) SetBackupCreationDateTime(v time.Time) *BackupDetails {
  7993  	s.BackupCreationDateTime = &v
  7994  	return s
  7995  }
  7996  
  7997  // SetBackupExpiryDateTime sets the BackupExpiryDateTime field's value.
  7998  func (s *BackupDetails) SetBackupExpiryDateTime(v time.Time) *BackupDetails {
  7999  	s.BackupExpiryDateTime = &v
  8000  	return s
  8001  }
  8002  
  8003  // SetBackupName sets the BackupName field's value.
  8004  func (s *BackupDetails) SetBackupName(v string) *BackupDetails {
  8005  	s.BackupName = &v
  8006  	return s
  8007  }
  8008  
  8009  // SetBackupSizeBytes sets the BackupSizeBytes field's value.
  8010  func (s *BackupDetails) SetBackupSizeBytes(v int64) *BackupDetails {
  8011  	s.BackupSizeBytes = &v
  8012  	return s
  8013  }
  8014  
  8015  // SetBackupStatus sets the BackupStatus field's value.
  8016  func (s *BackupDetails) SetBackupStatus(v string) *BackupDetails {
  8017  	s.BackupStatus = &v
  8018  	return s
  8019  }
  8020  
  8021  // SetBackupType sets the BackupType field's value.
  8022  func (s *BackupDetails) SetBackupType(v string) *BackupDetails {
  8023  	s.BackupType = &v
  8024  	return s
  8025  }
  8026  
  8027  // There is another ongoing conflicting backup control plane operation on the
  8028  // table. The backup is either being created, deleted or restored to a table.
  8029  type BackupInUseException struct {
  8030  	_            struct{}                  `type:"structure"`
  8031  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  8032  
  8033  	Message_ *string `locationName:"message" type:"string"`
  8034  }
  8035  
  8036  // String returns the string representation.
  8037  //
  8038  // API parameter values that are decorated as "sensitive" in the API will not
  8039  // be included in the string output. The member name will be present, but the
  8040  // value will be replaced with "sensitive".
  8041  func (s BackupInUseException) String() string {
  8042  	return awsutil.Prettify(s)
  8043  }
  8044  
  8045  // GoString returns the string representation.
  8046  //
  8047  // API parameter values that are decorated as "sensitive" in the API will not
  8048  // be included in the string output. The member name will be present, but the
  8049  // value will be replaced with "sensitive".
  8050  func (s BackupInUseException) GoString() string {
  8051  	return s.String()
  8052  }
  8053  
  8054  func newErrorBackupInUseException(v protocol.ResponseMetadata) error {
  8055  	return &BackupInUseException{
  8056  		RespMetadata: v,
  8057  	}
  8058  }
  8059  
  8060  // Code returns the exception type name.
  8061  func (s *BackupInUseException) Code() string {
  8062  	return "BackupInUseException"
  8063  }
  8064  
  8065  // Message returns the exception's message.
  8066  func (s *BackupInUseException) Message() string {
  8067  	if s.Message_ != nil {
  8068  		return *s.Message_
  8069  	}
  8070  	return ""
  8071  }
  8072  
  8073  // OrigErr always returns nil, satisfies awserr.Error interface.
  8074  func (s *BackupInUseException) OrigErr() error {
  8075  	return nil
  8076  }
  8077  
  8078  func (s *BackupInUseException) Error() string {
  8079  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  8080  }
  8081  
  8082  // Status code returns the HTTP status code for the request's response error.
  8083  func (s *BackupInUseException) StatusCode() int {
  8084  	return s.RespMetadata.StatusCode
  8085  }
  8086  
  8087  // RequestID returns the service's response RequestID for request.
  8088  func (s *BackupInUseException) RequestID() string {
  8089  	return s.RespMetadata.RequestID
  8090  }
  8091  
  8092  // Backup not found for the given BackupARN.
  8093  type BackupNotFoundException struct {
  8094  	_            struct{}                  `type:"structure"`
  8095  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  8096  
  8097  	Message_ *string `locationName:"message" type:"string"`
  8098  }
  8099  
  8100  // String returns the string representation.
  8101  //
  8102  // API parameter values that are decorated as "sensitive" in the API will not
  8103  // be included in the string output. The member name will be present, but the
  8104  // value will be replaced with "sensitive".
  8105  func (s BackupNotFoundException) String() string {
  8106  	return awsutil.Prettify(s)
  8107  }
  8108  
  8109  // GoString returns the string representation.
  8110  //
  8111  // API parameter values that are decorated as "sensitive" in the API will not
  8112  // be included in the string output. The member name will be present, but the
  8113  // value will be replaced with "sensitive".
  8114  func (s BackupNotFoundException) GoString() string {
  8115  	return s.String()
  8116  }
  8117  
  8118  func newErrorBackupNotFoundException(v protocol.ResponseMetadata) error {
  8119  	return &BackupNotFoundException{
  8120  		RespMetadata: v,
  8121  	}
  8122  }
  8123  
  8124  // Code returns the exception type name.
  8125  func (s *BackupNotFoundException) Code() string {
  8126  	return "BackupNotFoundException"
  8127  }
  8128  
  8129  // Message returns the exception's message.
  8130  func (s *BackupNotFoundException) Message() string {
  8131  	if s.Message_ != nil {
  8132  		return *s.Message_
  8133  	}
  8134  	return ""
  8135  }
  8136  
  8137  // OrigErr always returns nil, satisfies awserr.Error interface.
  8138  func (s *BackupNotFoundException) OrigErr() error {
  8139  	return nil
  8140  }
  8141  
  8142  func (s *BackupNotFoundException) Error() string {
  8143  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  8144  }
  8145  
  8146  // Status code returns the HTTP status code for the request's response error.
  8147  func (s *BackupNotFoundException) StatusCode() int {
  8148  	return s.RespMetadata.StatusCode
  8149  }
  8150  
  8151  // RequestID returns the service's response RequestID for request.
  8152  func (s *BackupNotFoundException) RequestID() string {
  8153  	return s.RespMetadata.RequestID
  8154  }
  8155  
  8156  // Contains details for the backup.
  8157  type BackupSummary struct {
  8158  	_ struct{} `type:"structure"`
  8159  
  8160  	// ARN associated with the backup.
  8161  	BackupArn *string `min:"37" type:"string"`
  8162  
  8163  	// Time at which the backup was created.
  8164  	BackupCreationDateTime *time.Time `type:"timestamp"`
  8165  
  8166  	// Time at which the automatic on-demand backup created by DynamoDB will expire.
  8167  	// This SYSTEM on-demand backup expires automatically 35 days after its creation.
  8168  	BackupExpiryDateTime *time.Time `type:"timestamp"`
  8169  
  8170  	// Name of the specified backup.
  8171  	BackupName *string `min:"3" type:"string"`
  8172  
  8173  	// Size of the backup in bytes.
  8174  	BackupSizeBytes *int64 `type:"long"`
  8175  
  8176  	// Backup can be in one of the following states: CREATING, ACTIVE, DELETED.
  8177  	BackupStatus *string `type:"string" enum:"BackupStatus"`
  8178  
  8179  	// BackupType:
  8180  	//
  8181  	//    * USER - You create and manage these using the on-demand backup feature.
  8182  	//
  8183  	//    * SYSTEM - If you delete a table with point-in-time recovery enabled,
  8184  	//    a SYSTEM backup is automatically created and is retained for 35 days (at
  8185  	//    no additional cost). System backups allow you to restore the deleted table
  8186  	//    to the state it was in just before the point of deletion.
  8187  	//
  8188  	//    * AWS_BACKUP - On-demand backup created by you from AWS Backup service.
  8189  	BackupType *string `type:"string" enum:"BackupType"`
  8190  
  8191  	// ARN associated with the table.
  8192  	TableArn *string `type:"string"`
  8193  
  8194  	// Unique identifier for the table.
  8195  	TableId *string `type:"string"`
  8196  
  8197  	// Name of the table.
  8198  	TableName *string `min:"3" type:"string"`
  8199  }
  8200  
  8201  // String returns the string representation.
  8202  //
  8203  // API parameter values that are decorated as "sensitive" in the API will not
  8204  // be included in the string output. The member name will be present, but the
  8205  // value will be replaced with "sensitive".
  8206  func (s BackupSummary) String() string {
  8207  	return awsutil.Prettify(s)
  8208  }
  8209  
  8210  // GoString returns the string representation.
  8211  //
  8212  // API parameter values that are decorated as "sensitive" in the API will not
  8213  // be included in the string output. The member name will be present, but the
  8214  // value will be replaced with "sensitive".
  8215  func (s BackupSummary) GoString() string {
  8216  	return s.String()
  8217  }
  8218  
  8219  // SetBackupArn sets the BackupArn field's value.
  8220  func (s *BackupSummary) SetBackupArn(v string) *BackupSummary {
  8221  	s.BackupArn = &v
  8222  	return s
  8223  }
  8224  
  8225  // SetBackupCreationDateTime sets the BackupCreationDateTime field's value.
  8226  func (s *BackupSummary) SetBackupCreationDateTime(v time.Time) *BackupSummary {
  8227  	s.BackupCreationDateTime = &v
  8228  	return s
  8229  }
  8230  
  8231  // SetBackupExpiryDateTime sets the BackupExpiryDateTime field's value.
  8232  func (s *BackupSummary) SetBackupExpiryDateTime(v time.Time) *BackupSummary {
  8233  	s.BackupExpiryDateTime = &v
  8234  	return s
  8235  }
  8236  
  8237  // SetBackupName sets the BackupName field's value.
  8238  func (s *BackupSummary) SetBackupName(v string) *BackupSummary {
  8239  	s.BackupName = &v
  8240  	return s
  8241  }
  8242  
  8243  // SetBackupSizeBytes sets the BackupSizeBytes field's value.
  8244  func (s *BackupSummary) SetBackupSizeBytes(v int64) *BackupSummary {
  8245  	s.BackupSizeBytes = &v
  8246  	return s
  8247  }
  8248  
  8249  // SetBackupStatus sets the BackupStatus field's value.
  8250  func (s *BackupSummary) SetBackupStatus(v string) *BackupSummary {
  8251  	s.BackupStatus = &v
  8252  	return s
  8253  }
  8254  
  8255  // SetBackupType sets the BackupType field's value.
  8256  func (s *BackupSummary) SetBackupType(v string) *BackupSummary {
  8257  	s.BackupType = &v
  8258  	return s
  8259  }
  8260  
  8261  // SetTableArn sets the TableArn field's value.
  8262  func (s *BackupSummary) SetTableArn(v string) *BackupSummary {
  8263  	s.TableArn = &v
  8264  	return s
  8265  }
  8266  
  8267  // SetTableId sets the TableId field's value.
  8268  func (s *BackupSummary) SetTableId(v string) *BackupSummary {
  8269  	s.TableId = &v
  8270  	return s
  8271  }
  8272  
  8273  // SetTableName sets the TableName field's value.
  8274  func (s *BackupSummary) SetTableName(v string) *BackupSummary {
  8275  	s.TableName = &v
  8276  	return s
  8277  }
  8278  
  8279  type BatchExecuteStatementInput struct {
  8280  	_ struct{} `type:"structure"`
  8281  
  8282  	// The list of PartiQL statements representing the batch to run.
  8283  	//
  8284  	// Statements is a required field
  8285  	Statements []*BatchStatementRequest `min:"1" type:"list" required:"true"`
  8286  }
  8287  
  8288  // String returns the string representation.
  8289  //
  8290  // API parameter values that are decorated as "sensitive" in the API will not
  8291  // be included in the string output. The member name will be present, but the
  8292  // value will be replaced with "sensitive".
  8293  func (s BatchExecuteStatementInput) String() string {
  8294  	return awsutil.Prettify(s)
  8295  }
  8296  
  8297  // GoString returns the string representation.
  8298  //
  8299  // API parameter values that are decorated as "sensitive" in the API will not
  8300  // be included in the string output. The member name will be present, but the
  8301  // value will be replaced with "sensitive".
  8302  func (s BatchExecuteStatementInput) GoString() string {
  8303  	return s.String()
  8304  }
  8305  
  8306  // Validate inspects the fields of the type to determine if they are valid.
  8307  func (s *BatchExecuteStatementInput) Validate() error {
  8308  	invalidParams := request.ErrInvalidParams{Context: "BatchExecuteStatementInput"}
  8309  	if s.Statements == nil {
  8310  		invalidParams.Add(request.NewErrParamRequired("Statements"))
  8311  	}
  8312  	if s.Statements != nil && len(s.Statements) < 1 {
  8313  		invalidParams.Add(request.NewErrParamMinLen("Statements", 1))
  8314  	}
  8315  	if s.Statements != nil {
  8316  		for i, v := range s.Statements {
  8317  			if v == nil {
  8318  				continue
  8319  			}
  8320  			if err := v.Validate(); err != nil {
  8321  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Statements", i), err.(request.ErrInvalidParams))
  8322  			}
  8323  		}
  8324  	}
  8325  
  8326  	if invalidParams.Len() > 0 {
  8327  		return invalidParams
  8328  	}
  8329  	return nil
  8330  }
  8331  
  8332  // SetStatements sets the Statements field's value.
  8333  func (s *BatchExecuteStatementInput) SetStatements(v []*BatchStatementRequest) *BatchExecuteStatementInput {
  8334  	s.Statements = v
  8335  	return s
  8336  }
  8337  
  8338  type BatchExecuteStatementOutput struct {
  8339  	_ struct{} `type:"structure"`
  8340  
  8341  	// The response to each PartiQL statement in the batch.
  8342  	Responses []*BatchStatementResponse `type:"list"`
  8343  }
  8344  
  8345  // String returns the string representation.
  8346  //
  8347  // API parameter values that are decorated as "sensitive" in the API will not
  8348  // be included in the string output. The member name will be present, but the
  8349  // value will be replaced with "sensitive".
  8350  func (s BatchExecuteStatementOutput) String() string {
  8351  	return awsutil.Prettify(s)
  8352  }
  8353  
  8354  // GoString returns the string representation.
  8355  //
  8356  // API parameter values that are decorated as "sensitive" in the API will not
  8357  // be included in the string output. The member name will be present, but the
  8358  // value will be replaced with "sensitive".
  8359  func (s BatchExecuteStatementOutput) GoString() string {
  8360  	return s.String()
  8361  }
  8362  
  8363  // SetResponses sets the Responses field's value.
  8364  func (s *BatchExecuteStatementOutput) SetResponses(v []*BatchStatementResponse) *BatchExecuteStatementOutput {
  8365  	s.Responses = v
  8366  	return s
  8367  }
  8368  
  8369  // Represents the input of a BatchGetItem operation.
  8370  type BatchGetItemInput struct {
  8371  	_ struct{} `type:"structure"`
  8372  
  8373  	// A map of one or more table names and, for each table, a map that describes
  8374  	// one or more items to retrieve from that table. Each table name can be used
  8375  	// only once per BatchGetItem request.
  8376  	//
  8377  	// Each element in the map of items to retrieve consists of the following:
  8378  	//
  8379  	//    * ConsistentRead - If true, a strongly consistent read is used; if false
  8380  	//    (the default), an eventually consistent read is used.
  8381  	//
  8382  	//    * ExpressionAttributeNames - One or more substitution tokens for attribute
  8383  	//    names in the ProjectionExpression parameter. The following are some use
  8384  	//    cases for using ExpressionAttributeNames: To access an attribute whose
  8385  	//    name conflicts with a DynamoDB reserved word. To create a placeholder
  8386  	//    for repeating occurrences of an attribute name in an expression. To prevent
  8387  	//    special characters in an attribute name from being misinterpreted in an
  8388  	//    expression. Use the # character in an expression to dereference an attribute
  8389  	//    name. For example, consider the following attribute name: Percentile The
  8390  	//    name of this attribute conflicts with a reserved word, so it cannot be
  8391  	//    used directly in an expression. (For the complete list of reserved words,
  8392  	//    see Reserved Words (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html)
  8393  	//    in the Amazon DynamoDB Developer Guide). To work around this, you could
  8394  	//    specify the following for ExpressionAttributeNames: {"#P":"Percentile"}
  8395  	//    You could then use this substitution in an expression, as in this example:
  8396  	//    #P = :val Tokens that begin with the : character are expression attribute
  8397  	//    values, which are placeholders for the actual value at runtime. For more
  8398  	//    information about expression attribute names, see Accessing Item Attributes
  8399  	//    (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html)
  8400  	//    in the Amazon DynamoDB Developer Guide.
  8401  	//
  8402  	//    * Keys - An array of primary key attribute values that define specific
  8403  	//    items in the table. For each primary key, you must provide all of the
  8404  	//    key attributes. For example, with a simple primary key, you only need
  8405  	//    to provide the partition key value. For a composite key, you must provide
  8406  	//    both the partition key value and the sort key value.
  8407  	//
  8408  	//    * ProjectionExpression - A string that identifies one or more attributes
  8409  	//    to retrieve from the table. These attributes can include scalars, sets,
  8410  	//    or elements of a JSON document. The attributes in the expression must
  8411  	//    be separated by commas. If no attribute names are specified, then all
  8412  	//    attributes are returned. If any of the requested attributes are not found,
  8413  	//    they do not appear in the result. For more information, see Accessing
  8414  	//    Item Attributes (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html)
  8415  	//    in the Amazon DynamoDB Developer Guide.
  8416  	//
  8417  	//    * AttributesToGet - This is a legacy parameter. Use ProjectionExpression
  8418  	//    instead. For more information, see AttributesToGet (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.AttributesToGet.html)
  8419  	//    in the Amazon DynamoDB Developer Guide.
  8420  	//
  8421  	// RequestItems is a required field
  8422  	RequestItems map[string]*KeysAndAttributes `min:"1" type:"map" required:"true"`
  8423  
  8424  	// Determines the level of detail about provisioned throughput consumption that
  8425  	// is returned in the response:
  8426  	//
  8427  	//    * INDEXES - The response includes the aggregate ConsumedCapacity for the
  8428  	//    operation, together with ConsumedCapacity for each table and secondary
  8429  	//    index that was accessed. Note that some operations, such as GetItem and
  8430  	//    BatchGetItem, do not access any indexes at all. In these cases, specifying
  8431  	//    INDEXES will only return ConsumedCapacity information for table(s).
  8432  	//
  8433  	//    * TOTAL - The response includes only the aggregate ConsumedCapacity for
  8434  	//    the operation.
  8435  	//
  8436  	//    * NONE - No ConsumedCapacity details are included in the response.
  8437  	ReturnConsumedCapacity *string `type:"string" enum:"ReturnConsumedCapacity"`
  8438  }
  8439  
  8440  // String returns the string representation.
  8441  //
  8442  // API parameter values that are decorated as "sensitive" in the API will not
  8443  // be included in the string output. The member name will be present, but the
  8444  // value will be replaced with "sensitive".
  8445  func (s BatchGetItemInput) String() string {
  8446  	return awsutil.Prettify(s)
  8447  }
  8448  
  8449  // GoString returns the string representation.
  8450  //
  8451  // API parameter values that are decorated as "sensitive" in the API will not
  8452  // be included in the string output. The member name will be present, but the
  8453  // value will be replaced with "sensitive".
  8454  func (s BatchGetItemInput) GoString() string {
  8455  	return s.String()
  8456  }
  8457  
  8458  // Validate inspects the fields of the type to determine if they are valid.
  8459  func (s *BatchGetItemInput) Validate() error {
  8460  	invalidParams := request.ErrInvalidParams{Context: "BatchGetItemInput"}
  8461  	if s.RequestItems == nil {
  8462  		invalidParams.Add(request.NewErrParamRequired("RequestItems"))
  8463  	}
  8464  	if s.RequestItems != nil && len(s.RequestItems) < 1 {
  8465  		invalidParams.Add(request.NewErrParamMinLen("RequestItems", 1))
  8466  	}
  8467  	if s.RequestItems != nil {
  8468  		for i, v := range s.RequestItems {
  8469  			if v == nil {
  8470  				continue
  8471  			}
  8472  			if err := v.Validate(); err != nil {
  8473  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RequestItems", i), err.(request.ErrInvalidParams))
  8474  			}
  8475  		}
  8476  	}
  8477  
  8478  	if invalidParams.Len() > 0 {
  8479  		return invalidParams
  8480  	}
  8481  	return nil
  8482  }
  8483  
  8484  // SetRequestItems sets the RequestItems field's value.
  8485  func (s *BatchGetItemInput) SetRequestItems(v map[string]*KeysAndAttributes) *BatchGetItemInput {
  8486  	s.RequestItems = v
  8487  	return s
  8488  }
  8489  
  8490  // SetReturnConsumedCapacity sets the ReturnConsumedCapacity field's value.
  8491  func (s *BatchGetItemInput) SetReturnConsumedCapacity(v string) *BatchGetItemInput {
  8492  	s.ReturnConsumedCapacity = &v
  8493  	return s
  8494  }
  8495  
  8496  // Represents the output of a BatchGetItem operation.
  8497  type BatchGetItemOutput struct {
  8498  	_ struct{} `type:"structure"`
  8499  
  8500  	// The read capacity units consumed by the entire BatchGetItem operation.
  8501  	//
  8502  	// Each element consists of:
  8503  	//
  8504  	//    * TableName - The table that consumed the provisioned throughput.
  8505  	//
  8506  	//    * CapacityUnits - The total number of capacity units consumed.
  8507  	ConsumedCapacity []*ConsumedCapacity `type:"list"`
  8508  
  8509  	// A map of table name to a list of items. Each object in Responses consists
  8510  	// of a table name, along with a map of attribute data consisting of the data
  8511  	// type and attribute value.
  8512  	Responses map[string][]map[string]*AttributeValue `type:"map"`
  8513  
  8514  	// A map of tables and their respective keys that were not processed with the
  8515  	// current response. The UnprocessedKeys value is in the same form as RequestItems,
  8516  	// so the value can be provided directly to a subsequent BatchGetItem operation.
  8517  	// For more information, see RequestItems in the Request Parameters section.
  8518  	//
  8519  	// Each element consists of:
  8520  	//
  8521  	//    * Keys - An array of primary key attribute values that define specific
  8522  	//    items in the table.
  8523  	//
  8524  	//    * ProjectionExpression - One or more attributes to be retrieved from the
  8525  	//    table or index. By default, all attributes are returned. If a requested
  8526  	//    attribute is not found, it does not appear in the result.
  8527  	//
  8528  	//    * ConsistentRead - The consistency of a read operation. If set to true,
  8529  	//    then a strongly consistent read is used; otherwise, an eventually consistent
  8530  	//    read is used.
  8531  	//
  8532  	// If there are no unprocessed keys remaining, the response contains an empty
  8533  	// UnprocessedKeys map.
  8534  	UnprocessedKeys map[string]*KeysAndAttributes `min:"1" type:"map"`
  8535  }
  8536  
  8537  // String returns the string representation.
  8538  //
  8539  // API parameter values that are decorated as "sensitive" in the API will not
  8540  // be included in the string output. The member name will be present, but the
  8541  // value will be replaced with "sensitive".
  8542  func (s BatchGetItemOutput) String() string {
  8543  	return awsutil.Prettify(s)
  8544  }
  8545  
  8546  // GoString returns the string representation.
  8547  //
  8548  // API parameter values that are decorated as "sensitive" in the API will not
  8549  // be included in the string output. The member name will be present, but the
  8550  // value will be replaced with "sensitive".
  8551  func (s BatchGetItemOutput) GoString() string {
  8552  	return s.String()
  8553  }
  8554  
  8555  // SetConsumedCapacity sets the ConsumedCapacity field's value.
  8556  func (s *BatchGetItemOutput) SetConsumedCapacity(v []*ConsumedCapacity) *BatchGetItemOutput {
  8557  	s.ConsumedCapacity = v
  8558  	return s
  8559  }
  8560  
  8561  // SetResponses sets the Responses field's value.
  8562  func (s *BatchGetItemOutput) SetResponses(v map[string][]map[string]*AttributeValue) *BatchGetItemOutput {
  8563  	s.Responses = v
  8564  	return s
  8565  }
  8566  
  8567  // SetUnprocessedKeys sets the UnprocessedKeys field's value.
  8568  func (s *BatchGetItemOutput) SetUnprocessedKeys(v map[string]*KeysAndAttributes) *BatchGetItemOutput {
  8569  	s.UnprocessedKeys = v
  8570  	return s
  8571  }
  8572  
  8573  // An error associated with a statement in a PartiQL batch that was run.
  8574  type BatchStatementError struct {
  8575  	_ struct{} `type:"structure"`
  8576  
  8577  	// The error code associated with the failed PartiQL batch statement.
  8578  	Code *string `type:"string" enum:"BatchStatementErrorCodeEnum"`
  8579  
  8580  	// The error message associated with the PartiQL batch resposne.
  8581  	Message *string `type:"string"`
  8582  }
  8583  
  8584  // String returns the string representation.
  8585  //
  8586  // API parameter values that are decorated as "sensitive" in the API will not
  8587  // be included in the string output. The member name will be present, but the
  8588  // value will be replaced with "sensitive".
  8589  func (s BatchStatementError) String() string {
  8590  	return awsutil.Prettify(s)
  8591  }
  8592  
  8593  // GoString returns the string representation.
  8594  //
  8595  // API parameter values that are decorated as "sensitive" in the API will not
  8596  // be included in the string output. The member name will be present, but the
  8597  // value will be replaced with "sensitive".
  8598  func (s BatchStatementError) GoString() string {
  8599  	return s.String()
  8600  }
  8601  
  8602  // SetCode sets the Code field's value.
  8603  func (s *BatchStatementError) SetCode(v string) *BatchStatementError {
  8604  	s.Code = &v
  8605  	return s
  8606  }
  8607  
  8608  // SetMessage sets the Message field's value.
  8609  func (s *BatchStatementError) SetMessage(v string) *BatchStatementError {
  8610  	s.Message = &v
  8611  	return s
  8612  }
  8613  
  8614  // A PartiQL batch statement request.
  8615  type BatchStatementRequest struct {
  8616  	_ struct{} `type:"structure"`
  8617  
  8618  	// The read consistency of the PartiQL batch request.
  8619  	ConsistentRead *bool `type:"boolean"`
  8620  
  8621  	// The parameters associated with a PartiQL statement in the batch request.
  8622  	Parameters []*AttributeValue `min:"1" type:"list"`
  8623  
  8624  	// A valid PartiQL statement.
  8625  	//
  8626  	// Statement is a required field
  8627  	Statement *string `min:"1" type:"string" required:"true"`
  8628  }
  8629  
  8630  // String returns the string representation.
  8631  //
  8632  // API parameter values that are decorated as "sensitive" in the API will not
  8633  // be included in the string output. The member name will be present, but the
  8634  // value will be replaced with "sensitive".
  8635  func (s BatchStatementRequest) String() string {
  8636  	return awsutil.Prettify(s)
  8637  }
  8638  
  8639  // GoString returns the string representation.
  8640  //
  8641  // API parameter values that are decorated as "sensitive" in the API will not
  8642  // be included in the string output. The member name will be present, but the
  8643  // value will be replaced with "sensitive".
  8644  func (s BatchStatementRequest) GoString() string {
  8645  	return s.String()
  8646  }
  8647  
  8648  // Validate inspects the fields of the type to determine if they are valid.
  8649  func (s *BatchStatementRequest) Validate() error {
  8650  	invalidParams := request.ErrInvalidParams{Context: "BatchStatementRequest"}
  8651  	if s.Parameters != nil && len(s.Parameters) < 1 {
  8652  		invalidParams.Add(request.NewErrParamMinLen("Parameters", 1))
  8653  	}
  8654  	if s.Statement == nil {
  8655  		invalidParams.Add(request.NewErrParamRequired("Statement"))
  8656  	}
  8657  	if s.Statement != nil && len(*s.Statement) < 1 {
  8658  		invalidParams.Add(request.NewErrParamMinLen("Statement", 1))
  8659  	}
  8660  
  8661  	if invalidParams.Len() > 0 {
  8662  		return invalidParams
  8663  	}
  8664  	return nil
  8665  }
  8666  
  8667  // SetConsistentRead sets the ConsistentRead field's value.
  8668  func (s *BatchStatementRequest) SetConsistentRead(v bool) *BatchStatementRequest {
  8669  	s.ConsistentRead = &v
  8670  	return s
  8671  }
  8672  
  8673  // SetParameters sets the Parameters field's value.
  8674  func (s *BatchStatementRequest) SetParameters(v []*AttributeValue) *BatchStatementRequest {
  8675  	s.Parameters = v
  8676  	return s
  8677  }
  8678  
  8679  // SetStatement sets the Statement field's value.
  8680  func (s *BatchStatementRequest) SetStatement(v string) *BatchStatementRequest {
  8681  	s.Statement = &v
  8682  	return s
  8683  }
  8684  
  8685  // A PartiQL batch statement response..
  8686  type BatchStatementResponse struct {
  8687  	_ struct{} `type:"structure"`
  8688  
  8689  	// The error associated with a failed PartiQL batch statement.
  8690  	Error *BatchStatementError `type:"structure"`
  8691  
  8692  	// A DynamoDB item associated with a BatchStatementResponse
  8693  	Item map[string]*AttributeValue `type:"map"`
  8694  
  8695  	// The table name associated with a failed PartiQL batch statement.
  8696  	TableName *string `min:"3" type:"string"`
  8697  }
  8698  
  8699  // String returns the string representation.
  8700  //
  8701  // API parameter values that are decorated as "sensitive" in the API will not
  8702  // be included in the string output. The member name will be present, but the
  8703  // value will be replaced with "sensitive".
  8704  func (s BatchStatementResponse) String() string {
  8705  	return awsutil.Prettify(s)
  8706  }
  8707  
  8708  // GoString returns the string representation.
  8709  //
  8710  // API parameter values that are decorated as "sensitive" in the API will not
  8711  // be included in the string output. The member name will be present, but the
  8712  // value will be replaced with "sensitive".
  8713  func (s BatchStatementResponse) GoString() string {
  8714  	return s.String()
  8715  }
  8716  
  8717  // SetError sets the Error field's value.
  8718  func (s *BatchStatementResponse) SetError(v *BatchStatementError) *BatchStatementResponse {
  8719  	s.Error = v
  8720  	return s
  8721  }
  8722  
  8723  // SetItem sets the Item field's value.
  8724  func (s *BatchStatementResponse) SetItem(v map[string]*AttributeValue) *BatchStatementResponse {
  8725  	s.Item = v
  8726  	return s
  8727  }
  8728  
  8729  // SetTableName sets the TableName field's value.
  8730  func (s *BatchStatementResponse) SetTableName(v string) *BatchStatementResponse {
  8731  	s.TableName = &v
  8732  	return s
  8733  }
  8734  
  8735  // Represents the input of a BatchWriteItem operation.
  8736  type BatchWriteItemInput struct {
  8737  	_ struct{} `type:"structure"`
  8738  
  8739  	// A map of one or more table names and, for each table, a list of operations
  8740  	// to be performed (DeleteRequest or PutRequest). Each element in the map consists
  8741  	// of the following:
  8742  	//
  8743  	//    * DeleteRequest - Perform a DeleteItem operation on the specified item.
  8744  	//    The item to be deleted is identified by a Key subelement: Key - A map
  8745  	//    of primary key attribute values that uniquely identify the item. Each
  8746  	//    entry in this map consists of an attribute name and an attribute value.
  8747  	//    For each primary key, you must provide all of the key attributes. For
  8748  	//    example, with a simple primary key, you only need to provide a value for
  8749  	//    the partition key. For a composite primary key, you must provide values
  8750  	//    for both the partition key and the sort key.
  8751  	//
  8752  	//    * PutRequest - Perform a PutItem operation on the specified item. The
  8753  	//    item to be put is identified by an Item subelement: Item - A map of attributes
  8754  	//    and their values. Each entry in this map consists of an attribute name
  8755  	//    and an attribute value. Attribute values must not be null; string and
  8756  	//    binary type attributes must have lengths greater than zero; and set type
  8757  	//    attributes must not be empty. Requests that contain empty values are rejected
  8758  	//    with a ValidationException exception. If you specify any attributes that
  8759  	//    are part of an index key, then the data types for those attributes must
  8760  	//    match those of the schema in the table's attribute definition.
  8761  	//
  8762  	// RequestItems is a required field
  8763  	RequestItems map[string][]*WriteRequest `min:"1" type:"map" required:"true"`
  8764  
  8765  	// Determines the level of detail about provisioned throughput consumption that
  8766  	// is returned in the response:
  8767  	//
  8768  	//    * INDEXES - The response includes the aggregate ConsumedCapacity for the
  8769  	//    operation, together with ConsumedCapacity for each table and secondary
  8770  	//    index that was accessed. Note that some operations, such as GetItem and
  8771  	//    BatchGetItem, do not access any indexes at all. In these cases, specifying
  8772  	//    INDEXES will only return ConsumedCapacity information for table(s).
  8773  	//
  8774  	//    * TOTAL - The response includes only the aggregate ConsumedCapacity for
  8775  	//    the operation.
  8776  	//
  8777  	//    * NONE - No ConsumedCapacity details are included in the response.
  8778  	ReturnConsumedCapacity *string `type:"string" enum:"ReturnConsumedCapacity"`
  8779  
  8780  	// Determines whether item collection metrics are returned. If set to SIZE,
  8781  	// the response includes statistics about item collections, if any, that were
  8782  	// modified during the operation are returned in the response. If set to NONE
  8783  	// (the default), no statistics are returned.
  8784  	ReturnItemCollectionMetrics *string `type:"string" enum:"ReturnItemCollectionMetrics"`
  8785  }
  8786  
  8787  // String returns the string representation.
  8788  //
  8789  // API parameter values that are decorated as "sensitive" in the API will not
  8790  // be included in the string output. The member name will be present, but the
  8791  // value will be replaced with "sensitive".
  8792  func (s BatchWriteItemInput) String() string {
  8793  	return awsutil.Prettify(s)
  8794  }
  8795  
  8796  // GoString returns the string representation.
  8797  //
  8798  // API parameter values that are decorated as "sensitive" in the API will not
  8799  // be included in the string output. The member name will be present, but the
  8800  // value will be replaced with "sensitive".
  8801  func (s BatchWriteItemInput) GoString() string {
  8802  	return s.String()
  8803  }
  8804  
  8805  // Validate inspects the fields of the type to determine if they are valid.
  8806  func (s *BatchWriteItemInput) Validate() error {
  8807  	invalidParams := request.ErrInvalidParams{Context: "BatchWriteItemInput"}
  8808  	if s.RequestItems == nil {
  8809  		invalidParams.Add(request.NewErrParamRequired("RequestItems"))
  8810  	}
  8811  	if s.RequestItems != nil && len(s.RequestItems) < 1 {
  8812  		invalidParams.Add(request.NewErrParamMinLen("RequestItems", 1))
  8813  	}
  8814  
  8815  	if invalidParams.Len() > 0 {
  8816  		return invalidParams
  8817  	}
  8818  	return nil
  8819  }
  8820  
  8821  // SetRequestItems sets the RequestItems field's value.
  8822  func (s *BatchWriteItemInput) SetRequestItems(v map[string][]*WriteRequest) *BatchWriteItemInput {
  8823  	s.RequestItems = v
  8824  	return s
  8825  }
  8826  
  8827  // SetReturnConsumedCapacity sets the ReturnConsumedCapacity field's value.
  8828  func (s *BatchWriteItemInput) SetReturnConsumedCapacity(v string) *BatchWriteItemInput {
  8829  	s.ReturnConsumedCapacity = &v
  8830  	return s
  8831  }
  8832  
  8833  // SetReturnItemCollectionMetrics sets the ReturnItemCollectionMetrics field's value.
  8834  func (s *BatchWriteItemInput) SetReturnItemCollectionMetrics(v string) *BatchWriteItemInput {
  8835  	s.ReturnItemCollectionMetrics = &v
  8836  	return s
  8837  }
  8838  
  8839  // Represents the output of a BatchWriteItem operation.
  8840  type BatchWriteItemOutput struct {
  8841  	_ struct{} `type:"structure"`
  8842  
  8843  	// The capacity units consumed by the entire BatchWriteItem operation.
  8844  	//
  8845  	// Each element consists of:
  8846  	//
  8847  	//    * TableName - The table that consumed the provisioned throughput.
  8848  	//
  8849  	//    * CapacityUnits - The total number of capacity units consumed.
  8850  	ConsumedCapacity []*ConsumedCapacity `type:"list"`
  8851  
  8852  	// A list of tables that were processed by BatchWriteItem and, for each table,
  8853  	// information about any item collections that were affected by individual DeleteItem
  8854  	// or PutItem operations.
  8855  	//
  8856  	// Each entry consists of the following subelements:
  8857  	//
  8858  	//    * ItemCollectionKey - The partition key value of the item collection.
  8859  	//    This is the same as the partition key value of the item.
  8860  	//
  8861  	//    * SizeEstimateRangeGB - An estimate of item collection size, expressed
  8862  	//    in GB. This is a two-element array containing a lower bound and an upper
  8863  	//    bound for the estimate. The estimate includes the size of all the items
  8864  	//    in the table, plus the size of all attributes projected into all of the
  8865  	//    local secondary indexes on the table. Use this estimate to measure whether
  8866  	//    a local secondary index is approaching its size limit. The estimate is
  8867  	//    subject to change over time; therefore, do not rely on the precision or
  8868  	//    accuracy of the estimate.
  8869  	ItemCollectionMetrics map[string][]*ItemCollectionMetrics `type:"map"`
  8870  
  8871  	// A map of tables and requests against those tables that were not processed.
  8872  	// The UnprocessedItems value is in the same form as RequestItems, so you can
  8873  	// provide this value directly to a subsequent BatchGetItem operation. For more
  8874  	// information, see RequestItems in the Request Parameters section.
  8875  	//
  8876  	// Each UnprocessedItems entry consists of a table name and, for that table,
  8877  	// a list of operations to perform (DeleteRequest or PutRequest).
  8878  	//
  8879  	//    * DeleteRequest - Perform a DeleteItem operation on the specified item.
  8880  	//    The item to be deleted is identified by a Key subelement: Key - A map
  8881  	//    of primary key attribute values that uniquely identify the item. Each
  8882  	//    entry in this map consists of an attribute name and an attribute value.
  8883  	//
  8884  	//    * PutRequest - Perform a PutItem operation on the specified item. The
  8885  	//    item to be put is identified by an Item subelement: Item - A map of attributes
  8886  	//    and their values. Each entry in this map consists of an attribute name
  8887  	//    and an attribute value. Attribute values must not be null; string and
  8888  	//    binary type attributes must have lengths greater than zero; and set type
  8889  	//    attributes must not be empty. Requests that contain empty values will
  8890  	//    be rejected with a ValidationException exception. If you specify any attributes
  8891  	//    that are part of an index key, then the data types for those attributes
  8892  	//    must match those of the schema in the table's attribute definition.
  8893  	//
  8894  	// If there are no unprocessed items remaining, the response contains an empty
  8895  	// UnprocessedItems map.
  8896  	UnprocessedItems map[string][]*WriteRequest `min:"1" type:"map"`
  8897  }
  8898  
  8899  // String returns the string representation.
  8900  //
  8901  // API parameter values that are decorated as "sensitive" in the API will not
  8902  // be included in the string output. The member name will be present, but the
  8903  // value will be replaced with "sensitive".
  8904  func (s BatchWriteItemOutput) String() string {
  8905  	return awsutil.Prettify(s)
  8906  }
  8907  
  8908  // GoString returns the string representation.
  8909  //
  8910  // API parameter values that are decorated as "sensitive" in the API will not
  8911  // be included in the string output. The member name will be present, but the
  8912  // value will be replaced with "sensitive".
  8913  func (s BatchWriteItemOutput) GoString() string {
  8914  	return s.String()
  8915  }
  8916  
  8917  // SetConsumedCapacity sets the ConsumedCapacity field's value.
  8918  func (s *BatchWriteItemOutput) SetConsumedCapacity(v []*ConsumedCapacity) *BatchWriteItemOutput {
  8919  	s.ConsumedCapacity = v
  8920  	return s
  8921  }
  8922  
  8923  // SetItemCollectionMetrics sets the ItemCollectionMetrics field's value.
  8924  func (s *BatchWriteItemOutput) SetItemCollectionMetrics(v map[string][]*ItemCollectionMetrics) *BatchWriteItemOutput {
  8925  	s.ItemCollectionMetrics = v
  8926  	return s
  8927  }
  8928  
  8929  // SetUnprocessedItems sets the UnprocessedItems field's value.
  8930  func (s *BatchWriteItemOutput) SetUnprocessedItems(v map[string][]*WriteRequest) *BatchWriteItemOutput {
  8931  	s.UnprocessedItems = v
  8932  	return s
  8933  }
  8934  
  8935  // Contains the details for the read/write capacity mode.
  8936  type BillingModeSummary struct {
  8937  	_ struct{} `type:"structure"`
  8938  
  8939  	// Controls how you are charged for read and write throughput and how you manage
  8940  	// capacity. This setting can be changed later.
  8941  	//
  8942  	//    * PROVISIONED - Sets the read/write capacity mode to PROVISIONED. We recommend
  8943  	//    using PROVISIONED for predictable workloads.
  8944  	//
  8945  	//    * PAY_PER_REQUEST - Sets the read/write capacity mode to PAY_PER_REQUEST.
  8946  	//    We recommend using PAY_PER_REQUEST for unpredictable workloads.
  8947  	BillingMode *string `type:"string" enum:"BillingMode"`
  8948  
  8949  	// Represents the time when PAY_PER_REQUEST was last set as the read/write capacity
  8950  	// mode.
  8951  	LastUpdateToPayPerRequestDateTime *time.Time `type:"timestamp"`
  8952  }
  8953  
  8954  // String returns the string representation.
  8955  //
  8956  // API parameter values that are decorated as "sensitive" in the API will not
  8957  // be included in the string output. The member name will be present, but the
  8958  // value will be replaced with "sensitive".
  8959  func (s BillingModeSummary) String() string {
  8960  	return awsutil.Prettify(s)
  8961  }
  8962  
  8963  // GoString returns the string representation.
  8964  //
  8965  // API parameter values that are decorated as "sensitive" in the API will not
  8966  // be included in the string output. The member name will be present, but the
  8967  // value will be replaced with "sensitive".
  8968  func (s BillingModeSummary) GoString() string {
  8969  	return s.String()
  8970  }
  8971  
  8972  // SetBillingMode sets the BillingMode field's value.
  8973  func (s *BillingModeSummary) SetBillingMode(v string) *BillingModeSummary {
  8974  	s.BillingMode = &v
  8975  	return s
  8976  }
  8977  
  8978  // SetLastUpdateToPayPerRequestDateTime sets the LastUpdateToPayPerRequestDateTime field's value.
  8979  func (s *BillingModeSummary) SetLastUpdateToPayPerRequestDateTime(v time.Time) *BillingModeSummary {
  8980  	s.LastUpdateToPayPerRequestDateTime = &v
  8981  	return s
  8982  }
  8983  
  8984  // An ordered list of errors for each item in the request which caused the transaction
  8985  // to get cancelled. The values of the list are ordered according to the ordering
  8986  // of the TransactWriteItems request parameter. If no error occurred for the
  8987  // associated item an error with a Null code and Null message will be present.
  8988  type CancellationReason struct {
  8989  	_ struct{} `type:"structure"`
  8990  
  8991  	// Status code for the result of the cancelled transaction.
  8992  	Code *string `type:"string"`
  8993  
  8994  	// Item in the request which caused the transaction to get cancelled.
  8995  	Item map[string]*AttributeValue `type:"map"`
  8996  
  8997  	// Cancellation reason message description.
  8998  	Message *string `type:"string"`
  8999  }
  9000  
  9001  // String returns the string representation.
  9002  //
  9003  // API parameter values that are decorated as "sensitive" in the API will not
  9004  // be included in the string output. The member name will be present, but the
  9005  // value will be replaced with "sensitive".
  9006  func (s CancellationReason) String() string {
  9007  	return awsutil.Prettify(s)
  9008  }
  9009  
  9010  // GoString returns the string representation.
  9011  //
  9012  // API parameter values that are decorated as "sensitive" in the API will not
  9013  // be included in the string output. The member name will be present, but the
  9014  // value will be replaced with "sensitive".
  9015  func (s CancellationReason) GoString() string {
  9016  	return s.String()
  9017  }
  9018  
  9019  // SetCode sets the Code field's value.
  9020  func (s *CancellationReason) SetCode(v string) *CancellationReason {
  9021  	s.Code = &v
  9022  	return s
  9023  }
  9024  
  9025  // SetItem sets the Item field's value.
  9026  func (s *CancellationReason) SetItem(v map[string]*AttributeValue) *CancellationReason {
  9027  	s.Item = v
  9028  	return s
  9029  }
  9030  
  9031  // SetMessage sets the Message field's value.
  9032  func (s *CancellationReason) SetMessage(v string) *CancellationReason {
  9033  	s.Message = &v
  9034  	return s
  9035  }
  9036  
  9037  // Represents the amount of provisioned throughput capacity consumed on a table
  9038  // or an index.
  9039  type Capacity struct {
  9040  	_ struct{} `type:"structure"`
  9041  
  9042  	// The total number of capacity units consumed on a table or an index.
  9043  	CapacityUnits *float64 `type:"double"`
  9044  
  9045  	// The total number of read capacity units consumed on a table or an index.
  9046  	ReadCapacityUnits *float64 `type:"double"`
  9047  
  9048  	// The total number of write capacity units consumed on a table or an index.
  9049  	WriteCapacityUnits *float64 `type:"double"`
  9050  }
  9051  
  9052  // String returns the string representation.
  9053  //
  9054  // API parameter values that are decorated as "sensitive" in the API will not
  9055  // be included in the string output. The member name will be present, but the
  9056  // value will be replaced with "sensitive".
  9057  func (s Capacity) String() string {
  9058  	return awsutil.Prettify(s)
  9059  }
  9060  
  9061  // GoString returns the string representation.
  9062  //
  9063  // API parameter values that are decorated as "sensitive" in the API will not
  9064  // be included in the string output. The member name will be present, but the
  9065  // value will be replaced with "sensitive".
  9066  func (s Capacity) GoString() string {
  9067  	return s.String()
  9068  }
  9069  
  9070  // SetCapacityUnits sets the CapacityUnits field's value.
  9071  func (s *Capacity) SetCapacityUnits(v float64) *Capacity {
  9072  	s.CapacityUnits = &v
  9073  	return s
  9074  }
  9075  
  9076  // SetReadCapacityUnits sets the ReadCapacityUnits field's value.
  9077  func (s *Capacity) SetReadCapacityUnits(v float64) *Capacity {
  9078  	s.ReadCapacityUnits = &v
  9079  	return s
  9080  }
  9081  
  9082  // SetWriteCapacityUnits sets the WriteCapacityUnits field's value.
  9083  func (s *Capacity) SetWriteCapacityUnits(v float64) *Capacity {
  9084  	s.WriteCapacityUnits = &v
  9085  	return s
  9086  }
  9087  
  9088  // Represents the selection criteria for a Query or Scan operation:
  9089  //
  9090  //    * For a Query operation, Condition is used for specifying the KeyConditions
  9091  //    to use when querying a table or an index. For KeyConditions, only the
  9092  //    following comparison operators are supported: EQ | LE | LT | GE | GT |
  9093  //    BEGINS_WITH | BETWEEN Condition is also used in a QueryFilter, which evaluates
  9094  //    the query results and returns only the desired values.
  9095  //
  9096  //    * For a Scan operation, Condition is used in a ScanFilter, which evaluates
  9097  //    the scan results and returns only the desired values.
  9098  type Condition struct {
  9099  	_ struct{} `type:"structure"`
  9100  
  9101  	// One or more values to evaluate against the supplied attribute. The number
  9102  	// of values in the list depends on the ComparisonOperator being used.
  9103  	//
  9104  	// For type Number, value comparisons are numeric.
  9105  	//
  9106  	// String value comparisons for greater than, equals, or less than are based
  9107  	// on ASCII character code values. For example, a is greater than A, and a is
  9108  	// greater than B. For a list of code values, see http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters
  9109  	// (http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters).
  9110  	//
  9111  	// For Binary, DynamoDB treats each byte of the binary data as unsigned when
  9112  	// it compares binary values.
  9113  	AttributeValueList []*AttributeValue `type:"list"`
  9114  
  9115  	// A comparator for evaluating attributes. For example, equals, greater than,
  9116  	// less than, etc.
  9117  	//
  9118  	// The following comparison operators are available:
  9119  	//
  9120  	// EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS |
  9121  	// BEGINS_WITH | IN | BETWEEN
  9122  	//
  9123  	// The following are descriptions of each comparison operator.
  9124  	//
  9125  	//    * EQ : Equal. EQ is supported for all data types, including lists and
  9126  	//    maps. AttributeValueList can contain only one AttributeValue element of
  9127  	//    type String, Number, Binary, String Set, Number Set, or Binary Set. If
  9128  	//    an item contains an AttributeValue element of a different type than the
  9129  	//    one provided in the request, the value does not match. For example, {"S":"6"}
  9130  	//    does not equal {"N":"6"}. Also, {"N":"6"} does not equal {"NS":["6", "2",
  9131  	//    "1"]}.
  9132  	//
  9133  	//    * NE : Not equal. NE is supported for all data types, including lists
  9134  	//    and maps. AttributeValueList can contain only one AttributeValue of type
  9135  	//    String, Number, Binary, String Set, Number Set, or Binary Set. If an item
  9136  	//    contains an AttributeValue of a different type than the one provided in
  9137  	//    the request, the value does not match. For example, {"S":"6"} does not
  9138  	//    equal {"N":"6"}. Also, {"N":"6"} does not equal {"NS":["6", "2", "1"]}.
  9139  	//
  9140  	//    * LE : Less than or equal. AttributeValueList can contain only one AttributeValue
  9141  	//    element of type String, Number, or Binary (not a set type). If an item
  9142  	//    contains an AttributeValue element of a different type than the one provided
  9143  	//    in the request, the value does not match. For example, {"S":"6"} does
  9144  	//    not equal {"N":"6"}. Also, {"N":"6"} does not compare to {"NS":["6", "2",
  9145  	//    "1"]}.
  9146  	//
  9147  	//    * LT : Less than. AttributeValueList can contain only one AttributeValue
  9148  	//    of type String, Number, or Binary (not a set type). If an item contains
  9149  	//    an AttributeValue element of a different type than the one provided in
  9150  	//    the request, the value does not match. For example, {"S":"6"} does not
  9151  	//    equal {"N":"6"}. Also, {"N":"6"} does not compare to {"NS":["6", "2",
  9152  	//    "1"]}.
  9153  	//
  9154  	//    * GE : Greater than or equal. AttributeValueList can contain only one
  9155  	//    AttributeValue element of type String, Number, or Binary (not a set type).
  9156  	//    If an item contains an AttributeValue element of a different type than
  9157  	//    the one provided in the request, the value does not match. For example,
  9158  	//    {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"} does not compare to
  9159  	//    {"NS":["6", "2", "1"]}.
  9160  	//
  9161  	//    * GT : Greater than. AttributeValueList can contain only one AttributeValue
  9162  	//    element of type String, Number, or Binary (not a set type). If an item
  9163  	//    contains an AttributeValue element of a different type than the one provided
  9164  	//    in the request, the value does not match. For example, {"S":"6"} does
  9165  	//    not equal {"N":"6"}. Also, {"N":"6"} does not compare to {"NS":["6", "2",
  9166  	//    "1"]}.
  9167  	//
  9168  	//    * NOT_NULL : The attribute exists. NOT_NULL is supported for all data
  9169  	//    types, including lists and maps. This operator tests for the existence
  9170  	//    of an attribute, not its data type. If the data type of attribute "a"
  9171  	//    is null, and you evaluate it using NOT_NULL, the result is a Boolean true.
  9172  	//    This result is because the attribute "a" exists; its data type is not
  9173  	//    relevant to the NOT_NULL comparison operator.
  9174  	//
  9175  	//    * NULL : The attribute does not exist. NULL is supported for all data
  9176  	//    types, including lists and maps. This operator tests for the nonexistence
  9177  	//    of an attribute, not its data type. If the data type of attribute "a"
  9178  	//    is null, and you evaluate it using NULL, the result is a Boolean false.
  9179  	//    This is because the attribute "a" exists; its data type is not relevant
  9180  	//    to the NULL comparison operator.
  9181  	//
  9182  	//    * CONTAINS : Checks for a subsequence, or value in a set. AttributeValueList
  9183  	//    can contain only one AttributeValue element of type String, Number, or
  9184  	//    Binary (not a set type). If the target attribute of the comparison is
  9185  	//    of type String, then the operator checks for a substring match. If the
  9186  	//    target attribute of the comparison is of type Binary, then the operator
  9187  	//    looks for a subsequence of the target that matches the input. If the target
  9188  	//    attribute of the comparison is a set ("SS", "NS", or "BS"), then the operator
  9189  	//    evaluates to true if it finds an exact match with any member of the set.
  9190  	//    CONTAINS is supported for lists: When evaluating "a CONTAINS b", "a" can
  9191  	//    be a list; however, "b" cannot be a set, a map, or a list.
  9192  	//
  9193  	//    * NOT_CONTAINS : Checks for absence of a subsequence, or absence of a
  9194  	//    value in a set. AttributeValueList can contain only one AttributeValue
  9195  	//    element of type String, Number, or Binary (not a set type). If the target
  9196  	//    attribute of the comparison is a String, then the operator checks for
  9197  	//    the absence of a substring match. If the target attribute of the comparison
  9198  	//    is Binary, then the operator checks for the absence of a subsequence of
  9199  	//    the target that matches the input. If the target attribute of the comparison
  9200  	//    is a set ("SS", "NS", or "BS"), then the operator evaluates to true if
  9201  	//    it does not find an exact match with any member of the set. NOT_CONTAINS
  9202  	//    is supported for lists: When evaluating "a NOT CONTAINS b", "a" can be
  9203  	//    a list; however, "b" cannot be a set, a map, or a list.
  9204  	//
  9205  	//    * BEGINS_WITH : Checks for a prefix. AttributeValueList can contain only
  9206  	//    one AttributeValue of type String or Binary (not a Number or a set type).
  9207  	//    The target attribute of the comparison must be of type String or Binary
  9208  	//    (not a Number or a set type).
  9209  	//
  9210  	//    * IN : Checks for matching elements in a list. AttributeValueList can
  9211  	//    contain one or more AttributeValue elements of type String, Number, or
  9212  	//    Binary. These attributes are compared against an existing attribute of
  9213  	//    an item. If any elements of the input are equal to the item attribute,
  9214  	//    the expression evaluates to true.
  9215  	//
  9216  	//    * BETWEEN : Greater than or equal to the first value, and less than or
  9217  	//    equal to the second value. AttributeValueList must contain two AttributeValue
  9218  	//    elements of the same type, either String, Number, or Binary (not a set
  9219  	//    type). A target attribute matches if the target value is greater than,
  9220  	//    or equal to, the first element and less than, or equal to, the second
  9221  	//    element. If an item contains an AttributeValue element of a different
  9222  	//    type than the one provided in the request, the value does not match. For
  9223  	//    example, {"S":"6"} does not compare to {"N":"6"}. Also, {"N":"6"} does
  9224  	//    not compare to {"NS":["6", "2", "1"]}
  9225  	//
  9226  	// For usage examples of AttributeValueList and ComparisonOperator, see Legacy
  9227  	// Conditional Parameters (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.html)
  9228  	// in the Amazon DynamoDB Developer Guide.
  9229  	//
  9230  	// ComparisonOperator is a required field
  9231  	ComparisonOperator *string `type:"string" required:"true" enum:"ComparisonOperator"`
  9232  }
  9233  
  9234  // String returns the string representation.
  9235  //
  9236  // API parameter values that are decorated as "sensitive" in the API will not
  9237  // be included in the string output. The member name will be present, but the
  9238  // value will be replaced with "sensitive".
  9239  func (s Condition) String() string {
  9240  	return awsutil.Prettify(s)
  9241  }
  9242  
  9243  // GoString returns the string representation.
  9244  //
  9245  // API parameter values that are decorated as "sensitive" in the API will not
  9246  // be included in the string output. The member name will be present, but the
  9247  // value will be replaced with "sensitive".
  9248  func (s Condition) GoString() string {
  9249  	return s.String()
  9250  }
  9251  
  9252  // Validate inspects the fields of the type to determine if they are valid.
  9253  func (s *Condition) Validate() error {
  9254  	invalidParams := request.ErrInvalidParams{Context: "Condition"}
  9255  	if s.ComparisonOperator == nil {
  9256  		invalidParams.Add(request.NewErrParamRequired("ComparisonOperator"))
  9257  	}
  9258  
  9259  	if invalidParams.Len() > 0 {
  9260  		return invalidParams
  9261  	}
  9262  	return nil
  9263  }
  9264  
  9265  // SetAttributeValueList sets the AttributeValueList field's value.
  9266  func (s *Condition) SetAttributeValueList(v []*AttributeValue) *Condition {
  9267  	s.AttributeValueList = v
  9268  	return s
  9269  }
  9270  
  9271  // SetComparisonOperator sets the ComparisonOperator field's value.
  9272  func (s *Condition) SetComparisonOperator(v string) *Condition {
  9273  	s.ComparisonOperator = &v
  9274  	return s
  9275  }
  9276  
  9277  // Represents a request to perform a check that an item exists or to check the
  9278  // condition of specific attributes of the item.
  9279  type ConditionCheck struct {
  9280  	_ struct{} `type:"structure"`
  9281  
  9282  	// A condition that must be satisfied in order for a conditional update to succeed.
  9283  	//
  9284  	// ConditionExpression is a required field
  9285  	ConditionExpression *string `type:"string" required:"true"`
  9286  
  9287  	// One or more substitution tokens for attribute names in an expression.
  9288  	ExpressionAttributeNames map[string]*string `type:"map"`
  9289  
  9290  	// One or more values that can be substituted in an expression.
  9291  	ExpressionAttributeValues map[string]*AttributeValue `type:"map"`
  9292  
  9293  	// The primary key of the item to be checked. Each element consists of an attribute
  9294  	// name and a value for that attribute.
  9295  	//
  9296  	// Key is a required field
  9297  	Key map[string]*AttributeValue `type:"map" required:"true"`
  9298  
  9299  	// Use ReturnValuesOnConditionCheckFailure to get the item attributes if the
  9300  	// ConditionCheck condition fails. For ReturnValuesOnConditionCheckFailure,
  9301  	// the valid values are: NONE and ALL_OLD.
  9302  	ReturnValuesOnConditionCheckFailure *string `type:"string" enum:"ReturnValuesOnConditionCheckFailure"`
  9303  
  9304  	// Name of the table for the check item request.
  9305  	//
  9306  	// TableName is a required field
  9307  	TableName *string `min:"3" type:"string" required:"true"`
  9308  }
  9309  
  9310  // String returns the string representation.
  9311  //
  9312  // API parameter values that are decorated as "sensitive" in the API will not
  9313  // be included in the string output. The member name will be present, but the
  9314  // value will be replaced with "sensitive".
  9315  func (s ConditionCheck) String() string {
  9316  	return awsutil.Prettify(s)
  9317  }
  9318  
  9319  // GoString returns the string representation.
  9320  //
  9321  // API parameter values that are decorated as "sensitive" in the API will not
  9322  // be included in the string output. The member name will be present, but the
  9323  // value will be replaced with "sensitive".
  9324  func (s ConditionCheck) GoString() string {
  9325  	return s.String()
  9326  }
  9327  
  9328  // Validate inspects the fields of the type to determine if they are valid.
  9329  func (s *ConditionCheck) Validate() error {
  9330  	invalidParams := request.ErrInvalidParams{Context: "ConditionCheck"}
  9331  	if s.ConditionExpression == nil {
  9332  		invalidParams.Add(request.NewErrParamRequired("ConditionExpression"))
  9333  	}
  9334  	if s.Key == nil {
  9335  		invalidParams.Add(request.NewErrParamRequired("Key"))
  9336  	}
  9337  	if s.TableName == nil {
  9338  		invalidParams.Add(request.NewErrParamRequired("TableName"))
  9339  	}
  9340  	if s.TableName != nil && len(*s.TableName) < 3 {
  9341  		invalidParams.Add(request.NewErrParamMinLen("TableName", 3))
  9342  	}
  9343  
  9344  	if invalidParams.Len() > 0 {
  9345  		return invalidParams
  9346  	}
  9347  	return nil
  9348  }
  9349  
  9350  // SetConditionExpression sets the ConditionExpression field's value.
  9351  func (s *ConditionCheck) SetConditionExpression(v string) *ConditionCheck {
  9352  	s.ConditionExpression = &v
  9353  	return s
  9354  }
  9355  
  9356  // SetExpressionAttributeNames sets the ExpressionAttributeNames field's value.
  9357  func (s *ConditionCheck) SetExpressionAttributeNames(v map[string]*string) *ConditionCheck {
  9358  	s.ExpressionAttributeNames = v
  9359  	return s
  9360  }
  9361  
  9362  // SetExpressionAttributeValues sets the ExpressionAttributeValues field's value.
  9363  func (s *ConditionCheck) SetExpressionAttributeValues(v map[string]*AttributeValue) *ConditionCheck {
  9364  	s.ExpressionAttributeValues = v
  9365  	return s
  9366  }
  9367  
  9368  // SetKey sets the Key field's value.
  9369  func (s *ConditionCheck) SetKey(v map[string]*AttributeValue) *ConditionCheck {
  9370  	s.Key = v
  9371  	return s
  9372  }
  9373  
  9374  // SetReturnValuesOnConditionCheckFailure sets the ReturnValuesOnConditionCheckFailure field's value.
  9375  func (s *ConditionCheck) SetReturnValuesOnConditionCheckFailure(v string) *ConditionCheck {
  9376  	s.ReturnValuesOnConditionCheckFailure = &v
  9377  	return s
  9378  }
  9379  
  9380  // SetTableName sets the TableName field's value.
  9381  func (s *ConditionCheck) SetTableName(v string) *ConditionCheck {
  9382  	s.TableName = &v
  9383  	return s
  9384  }
  9385  
  9386  // A condition specified in the operation could not be evaluated.
  9387  type ConditionalCheckFailedException struct {
  9388  	_            struct{}                  `type:"structure"`
  9389  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  9390  
  9391  	// The conditional request failed.
  9392  	Message_ *string `locationName:"message" type:"string"`
  9393  }
  9394  
  9395  // String returns the string representation.
  9396  //
  9397  // API parameter values that are decorated as "sensitive" in the API will not
  9398  // be included in the string output. The member name will be present, but the
  9399  // value will be replaced with "sensitive".
  9400  func (s ConditionalCheckFailedException) String() string {
  9401  	return awsutil.Prettify(s)
  9402  }
  9403  
  9404  // GoString returns the string representation.
  9405  //
  9406  // API parameter values that are decorated as "sensitive" in the API will not
  9407  // be included in the string output. The member name will be present, but the
  9408  // value will be replaced with "sensitive".
  9409  func (s ConditionalCheckFailedException) GoString() string {
  9410  	return s.String()
  9411  }
  9412  
  9413  func newErrorConditionalCheckFailedException(v protocol.ResponseMetadata) error {
  9414  	return &ConditionalCheckFailedException{
  9415  		RespMetadata: v,
  9416  	}
  9417  }
  9418  
  9419  // Code returns the exception type name.
  9420  func (s *ConditionalCheckFailedException) Code() string {
  9421  	return "ConditionalCheckFailedException"
  9422  }
  9423  
  9424  // Message returns the exception's message.
  9425  func (s *ConditionalCheckFailedException) Message() string {
  9426  	if s.Message_ != nil {
  9427  		return *s.Message_
  9428  	}
  9429  	return ""
  9430  }
  9431  
  9432  // OrigErr always returns nil, satisfies awserr.Error interface.
  9433  func (s *ConditionalCheckFailedException) OrigErr() error {
  9434  	return nil
  9435  }
  9436  
  9437  func (s *ConditionalCheckFailedException) Error() string {
  9438  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  9439  }
  9440  
  9441  // Status code returns the HTTP status code for the request's response error.
  9442  func (s *ConditionalCheckFailedException) StatusCode() int {
  9443  	return s.RespMetadata.StatusCode
  9444  }
  9445  
  9446  // RequestID returns the service's response RequestID for request.
  9447  func (s *ConditionalCheckFailedException) RequestID() string {
  9448  	return s.RespMetadata.RequestID
  9449  }
  9450  
  9451  // The capacity units consumed by an operation. The data returned includes the
  9452  // total provisioned throughput consumed, along with statistics for the table
  9453  // and any indexes involved in the operation. ConsumedCapacity is only returned
  9454  // if the request asked for it. For more information, see Provisioned Throughput
  9455  // (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html)
  9456  // in the Amazon DynamoDB Developer Guide.
  9457  type ConsumedCapacity struct {
  9458  	_ struct{} `type:"structure"`
  9459  
  9460  	// The total number of capacity units consumed by the operation.
  9461  	CapacityUnits *float64 `type:"double"`
  9462  
  9463  	// The amount of throughput consumed on each global index affected by the operation.
  9464  	GlobalSecondaryIndexes map[string]*Capacity `type:"map"`
  9465  
  9466  	// The amount of throughput consumed on each local index affected by the operation.
  9467  	LocalSecondaryIndexes map[string]*Capacity `type:"map"`
  9468  
  9469  	// The total number of read capacity units consumed by the operation.
  9470  	ReadCapacityUnits *float64 `type:"double"`
  9471  
  9472  	// The amount of throughput consumed on the table affected by the operation.
  9473  	Table *Capacity `type:"structure"`
  9474  
  9475  	// The name of the table that was affected by the operation.
  9476  	TableName *string `min:"3" type:"string"`
  9477  
  9478  	// The total number of write capacity units consumed by the operation.
  9479  	WriteCapacityUnits *float64 `type:"double"`
  9480  }
  9481  
  9482  // String returns the string representation.
  9483  //
  9484  // API parameter values that are decorated as "sensitive" in the API will not
  9485  // be included in the string output. The member name will be present, but the
  9486  // value will be replaced with "sensitive".
  9487  func (s ConsumedCapacity) String() string {
  9488  	return awsutil.Prettify(s)
  9489  }
  9490  
  9491  // GoString returns the string representation.
  9492  //
  9493  // API parameter values that are decorated as "sensitive" in the API will not
  9494  // be included in the string output. The member name will be present, but the
  9495  // value will be replaced with "sensitive".
  9496  func (s ConsumedCapacity) GoString() string {
  9497  	return s.String()
  9498  }
  9499  
  9500  // SetCapacityUnits sets the CapacityUnits field's value.
  9501  func (s *ConsumedCapacity) SetCapacityUnits(v float64) *ConsumedCapacity {
  9502  	s.CapacityUnits = &v
  9503  	return s
  9504  }
  9505  
  9506  // SetGlobalSecondaryIndexes sets the GlobalSecondaryIndexes field's value.
  9507  func (s *ConsumedCapacity) SetGlobalSecondaryIndexes(v map[string]*Capacity) *ConsumedCapacity {
  9508  	s.GlobalSecondaryIndexes = v
  9509  	return s
  9510  }
  9511  
  9512  // SetLocalSecondaryIndexes sets the LocalSecondaryIndexes field's value.
  9513  func (s *ConsumedCapacity) SetLocalSecondaryIndexes(v map[string]*Capacity) *ConsumedCapacity {
  9514  	s.LocalSecondaryIndexes = v
  9515  	return s
  9516  }
  9517  
  9518  // SetReadCapacityUnits sets the ReadCapacityUnits field's value.
  9519  func (s *ConsumedCapacity) SetReadCapacityUnits(v float64) *ConsumedCapacity {
  9520  	s.ReadCapacityUnits = &v
  9521  	return s
  9522  }
  9523  
  9524  // SetTable sets the Table field's value.
  9525  func (s *ConsumedCapacity) SetTable(v *Capacity) *ConsumedCapacity {
  9526  	s.Table = v
  9527  	return s
  9528  }
  9529  
  9530  // SetTableName sets the TableName field's value.
  9531  func (s *ConsumedCapacity) SetTableName(v string) *ConsumedCapacity {
  9532  	s.TableName = &v
  9533  	return s
  9534  }
  9535  
  9536  // SetWriteCapacityUnits sets the WriteCapacityUnits field's value.
  9537  func (s *ConsumedCapacity) SetWriteCapacityUnits(v float64) *ConsumedCapacity {
  9538  	s.WriteCapacityUnits = &v
  9539  	return s
  9540  }
  9541  
  9542  // Represents the continuous backups and point in time recovery settings on
  9543  // the table.
  9544  type ContinuousBackupsDescription struct {
  9545  	_ struct{} `type:"structure"`
  9546  
  9547  	// ContinuousBackupsStatus can be one of the following states: ENABLED, DISABLED
  9548  	//
  9549  	// ContinuousBackupsStatus is a required field
  9550  	ContinuousBackupsStatus *string `type:"string" required:"true" enum:"ContinuousBackupsStatus"`
  9551  
  9552  	// The description of the point in time recovery settings applied to the table.
  9553  	PointInTimeRecoveryDescription *PointInTimeRecoveryDescription `type:"structure"`
  9554  }
  9555  
  9556  // String returns the string representation.
  9557  //
  9558  // API parameter values that are decorated as "sensitive" in the API will not
  9559  // be included in the string output. The member name will be present, but the
  9560  // value will be replaced with "sensitive".
  9561  func (s ContinuousBackupsDescription) String() string {
  9562  	return awsutil.Prettify(s)
  9563  }
  9564  
  9565  // GoString returns the string representation.
  9566  //
  9567  // API parameter values that are decorated as "sensitive" in the API will not
  9568  // be included in the string output. The member name will be present, but the
  9569  // value will be replaced with "sensitive".
  9570  func (s ContinuousBackupsDescription) GoString() string {
  9571  	return s.String()
  9572  }
  9573  
  9574  // SetContinuousBackupsStatus sets the ContinuousBackupsStatus field's value.
  9575  func (s *ContinuousBackupsDescription) SetContinuousBackupsStatus(v string) *ContinuousBackupsDescription {
  9576  	s.ContinuousBackupsStatus = &v
  9577  	return s
  9578  }
  9579  
  9580  // SetPointInTimeRecoveryDescription sets the PointInTimeRecoveryDescription field's value.
  9581  func (s *ContinuousBackupsDescription) SetPointInTimeRecoveryDescription(v *PointInTimeRecoveryDescription) *ContinuousBackupsDescription {
  9582  	s.PointInTimeRecoveryDescription = v
  9583  	return s
  9584  }
  9585  
  9586  // Backups have not yet been enabled for this table.
  9587  type ContinuousBackupsUnavailableException struct {
  9588  	_            struct{}                  `type:"structure"`
  9589  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  9590  
  9591  	Message_ *string `locationName:"message" type:"string"`
  9592  }
  9593  
  9594  // String returns the string representation.
  9595  //
  9596  // API parameter values that are decorated as "sensitive" in the API will not
  9597  // be included in the string output. The member name will be present, but the
  9598  // value will be replaced with "sensitive".
  9599  func (s ContinuousBackupsUnavailableException) String() string {
  9600  	return awsutil.Prettify(s)
  9601  }
  9602  
  9603  // GoString returns the string representation.
  9604  //
  9605  // API parameter values that are decorated as "sensitive" in the API will not
  9606  // be included in the string output. The member name will be present, but the
  9607  // value will be replaced with "sensitive".
  9608  func (s ContinuousBackupsUnavailableException) GoString() string {
  9609  	return s.String()
  9610  }
  9611  
  9612  func newErrorContinuousBackupsUnavailableException(v protocol.ResponseMetadata) error {
  9613  	return &ContinuousBackupsUnavailableException{
  9614  		RespMetadata: v,
  9615  	}
  9616  }
  9617  
  9618  // Code returns the exception type name.
  9619  func (s *ContinuousBackupsUnavailableException) Code() string {
  9620  	return "ContinuousBackupsUnavailableException"
  9621  }
  9622  
  9623  // Message returns the exception's message.
  9624  func (s *ContinuousBackupsUnavailableException) Message() string {
  9625  	if s.Message_ != nil {
  9626  		return *s.Message_
  9627  	}
  9628  	return ""
  9629  }
  9630  
  9631  // OrigErr always returns nil, satisfies awserr.Error interface.
  9632  func (s *ContinuousBackupsUnavailableException) OrigErr() error {
  9633  	return nil
  9634  }
  9635  
  9636  func (s *ContinuousBackupsUnavailableException) Error() string {
  9637  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  9638  }
  9639  
  9640  // Status code returns the HTTP status code for the request's response error.
  9641  func (s *ContinuousBackupsUnavailableException) StatusCode() int {
  9642  	return s.RespMetadata.StatusCode
  9643  }
  9644  
  9645  // RequestID returns the service's response RequestID for request.
  9646  func (s *ContinuousBackupsUnavailableException) RequestID() string {
  9647  	return s.RespMetadata.RequestID
  9648  }
  9649  
  9650  // Represents a Contributor Insights summary entry.
  9651  type ContributorInsightsSummary struct {
  9652  	_ struct{} `type:"structure"`
  9653  
  9654  	// Describes the current status for contributor insights for the given table
  9655  	// and index, if applicable.
  9656  	ContributorInsightsStatus *string `type:"string" enum:"ContributorInsightsStatus"`
  9657  
  9658  	// Name of the index associated with the summary, if any.
  9659  	IndexName *string `min:"3" type:"string"`
  9660  
  9661  	// Name of the table associated with the summary.
  9662  	TableName *string `min:"3" type:"string"`
  9663  }
  9664  
  9665  // String returns the string representation.
  9666  //
  9667  // API parameter values that are decorated as "sensitive" in the API will not
  9668  // be included in the string output. The member name will be present, but the
  9669  // value will be replaced with "sensitive".
  9670  func (s ContributorInsightsSummary) String() string {
  9671  	return awsutil.Prettify(s)
  9672  }
  9673  
  9674  // GoString returns the string representation.
  9675  //
  9676  // API parameter values that are decorated as "sensitive" in the API will not
  9677  // be included in the string output. The member name will be present, but the
  9678  // value will be replaced with "sensitive".
  9679  func (s ContributorInsightsSummary) GoString() string {
  9680  	return s.String()
  9681  }
  9682  
  9683  // SetContributorInsightsStatus sets the ContributorInsightsStatus field's value.
  9684  func (s *ContributorInsightsSummary) SetContributorInsightsStatus(v string) *ContributorInsightsSummary {
  9685  	s.ContributorInsightsStatus = &v
  9686  	return s
  9687  }
  9688  
  9689  // SetIndexName sets the IndexName field's value.
  9690  func (s *ContributorInsightsSummary) SetIndexName(v string) *ContributorInsightsSummary {
  9691  	s.IndexName = &v
  9692  	return s
  9693  }
  9694  
  9695  // SetTableName sets the TableName field's value.
  9696  func (s *ContributorInsightsSummary) SetTableName(v string) *ContributorInsightsSummary {
  9697  	s.TableName = &v
  9698  	return s
  9699  }
  9700  
  9701  type CreateBackupInput struct {
  9702  	_ struct{} `type:"structure"`
  9703  
  9704  	// Specified name for the backup.
  9705  	//
  9706  	// BackupName is a required field
  9707  	BackupName *string `min:"3" type:"string" required:"true"`
  9708  
  9709  	// The name of the table.
  9710  	//
  9711  	// TableName is a required field
  9712  	TableName *string `min:"3" type:"string" required:"true"`
  9713  }
  9714  
  9715  // String returns the string representation.
  9716  //
  9717  // API parameter values that are decorated as "sensitive" in the API will not
  9718  // be included in the string output. The member name will be present, but the
  9719  // value will be replaced with "sensitive".
  9720  func (s CreateBackupInput) String() string {
  9721  	return awsutil.Prettify(s)
  9722  }
  9723  
  9724  // GoString returns the string representation.
  9725  //
  9726  // API parameter values that are decorated as "sensitive" in the API will not
  9727  // be included in the string output. The member name will be present, but the
  9728  // value will be replaced with "sensitive".
  9729  func (s CreateBackupInput) GoString() string {
  9730  	return s.String()
  9731  }
  9732  
  9733  // Validate inspects the fields of the type to determine if they are valid.
  9734  func (s *CreateBackupInput) Validate() error {
  9735  	invalidParams := request.ErrInvalidParams{Context: "CreateBackupInput"}
  9736  	if s.BackupName == nil {
  9737  		invalidParams.Add(request.NewErrParamRequired("BackupName"))
  9738  	}
  9739  	if s.BackupName != nil && len(*s.BackupName) < 3 {
  9740  		invalidParams.Add(request.NewErrParamMinLen("BackupName", 3))
  9741  	}
  9742  	if s.TableName == nil {
  9743  		invalidParams.Add(request.NewErrParamRequired("TableName"))
  9744  	}
  9745  	if s.TableName != nil && len(*s.TableName) < 3 {
  9746  		invalidParams.Add(request.NewErrParamMinLen("TableName", 3))
  9747  	}
  9748  
  9749  	if invalidParams.Len() > 0 {
  9750  		return invalidParams
  9751  	}
  9752  	return nil
  9753  }
  9754  
  9755  // SetBackupName sets the BackupName field's value.
  9756  func (s *CreateBackupInput) SetBackupName(v string) *CreateBackupInput {
  9757  	s.BackupName = &v
  9758  	return s
  9759  }
  9760  
  9761  // SetTableName sets the TableName field's value.
  9762  func (s *CreateBackupInput) SetTableName(v string) *CreateBackupInput {
  9763  	s.TableName = &v
  9764  	return s
  9765  }
  9766  
  9767  type CreateBackupOutput struct {
  9768  	_ struct{} `type:"structure"`
  9769  
  9770  	// Contains the details of the backup created for the table.
  9771  	BackupDetails *BackupDetails `type:"structure"`
  9772  }
  9773  
  9774  // String returns the string representation.
  9775  //
  9776  // API parameter values that are decorated as "sensitive" in the API will not
  9777  // be included in the string output. The member name will be present, but the
  9778  // value will be replaced with "sensitive".
  9779  func (s CreateBackupOutput) String() string {
  9780  	return awsutil.Prettify(s)
  9781  }
  9782  
  9783  // GoString returns the string representation.
  9784  //
  9785  // API parameter values that are decorated as "sensitive" in the API will not
  9786  // be included in the string output. The member name will be present, but the
  9787  // value will be replaced with "sensitive".
  9788  func (s CreateBackupOutput) GoString() string {
  9789  	return s.String()
  9790  }
  9791  
  9792  // SetBackupDetails sets the BackupDetails field's value.
  9793  func (s *CreateBackupOutput) SetBackupDetails(v *BackupDetails) *CreateBackupOutput {
  9794  	s.BackupDetails = v
  9795  	return s
  9796  }
  9797  
  9798  // Represents a new global secondary index to be added to an existing table.
  9799  type CreateGlobalSecondaryIndexAction struct {
  9800  	_ struct{} `type:"structure"`
  9801  
  9802  	// The name of the global secondary index to be created.
  9803  	//
  9804  	// IndexName is a required field
  9805  	IndexName *string `min:"3" type:"string" required:"true"`
  9806  
  9807  	// The key schema for the global secondary index.
  9808  	//
  9809  	// KeySchema is a required field
  9810  	KeySchema []*KeySchemaElement `min:"1" type:"list" required:"true"`
  9811  
  9812  	// Represents attributes that are copied (projected) from the table into an
  9813  	// index. These are in addition to the primary key attributes and index key
  9814  	// attributes, which are automatically projected.
  9815  	//
  9816  	// Projection is a required field
  9817  	Projection *Projection `type:"structure" required:"true"`
  9818  
  9819  	// Represents the provisioned throughput settings for the specified global secondary
  9820  	// index.
  9821  	//
  9822  	// For current minimum and maximum provisioned throughput values, see Service,
  9823  	// Account, and Table Quotas (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html)
  9824  	// in the Amazon DynamoDB Developer Guide.
  9825  	ProvisionedThroughput *ProvisionedThroughput `type:"structure"`
  9826  }
  9827  
  9828  // String returns the string representation.
  9829  //
  9830  // API parameter values that are decorated as "sensitive" in the API will not
  9831  // be included in the string output. The member name will be present, but the
  9832  // value will be replaced with "sensitive".
  9833  func (s CreateGlobalSecondaryIndexAction) String() string {
  9834  	return awsutil.Prettify(s)
  9835  }
  9836  
  9837  // GoString returns the string representation.
  9838  //
  9839  // API parameter values that are decorated as "sensitive" in the API will not
  9840  // be included in the string output. The member name will be present, but the
  9841  // value will be replaced with "sensitive".
  9842  func (s CreateGlobalSecondaryIndexAction) GoString() string {
  9843  	return s.String()
  9844  }
  9845  
  9846  // Validate inspects the fields of the type to determine if they are valid.
  9847  func (s *CreateGlobalSecondaryIndexAction) Validate() error {
  9848  	invalidParams := request.ErrInvalidParams{Context: "CreateGlobalSecondaryIndexAction"}
  9849  	if s.IndexName == nil {
  9850  		invalidParams.Add(request.NewErrParamRequired("IndexName"))
  9851  	}
  9852  	if s.IndexName != nil && len(*s.IndexName) < 3 {
  9853  		invalidParams.Add(request.NewErrParamMinLen("IndexName", 3))
  9854  	}
  9855  	if s.KeySchema == nil {
  9856  		invalidParams.Add(request.NewErrParamRequired("KeySchema"))
  9857  	}
  9858  	if s.KeySchema != nil && len(s.KeySchema) < 1 {
  9859  		invalidParams.Add(request.NewErrParamMinLen("KeySchema", 1))
  9860  	}
  9861  	if s.Projection == nil {
  9862  		invalidParams.Add(request.NewErrParamRequired("Projection"))
  9863  	}
  9864  	if s.KeySchema != nil {
  9865  		for i, v := range s.KeySchema {
  9866  			if v == nil {
  9867  				continue
  9868  			}
  9869  			if err := v.Validate(); err != nil {
  9870  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "KeySchema", i), err.(request.ErrInvalidParams))
  9871  			}
  9872  		}
  9873  	}
  9874  	if s.Projection != nil {
  9875  		if err := s.Projection.Validate(); err != nil {
  9876  			invalidParams.AddNested("Projection", err.(request.ErrInvalidParams))
  9877  		}
  9878  	}
  9879  	if s.ProvisionedThroughput != nil {
  9880  		if err := s.ProvisionedThroughput.Validate(); err != nil {
  9881  			invalidParams.AddNested("ProvisionedThroughput", err.(request.ErrInvalidParams))
  9882  		}
  9883  	}
  9884  
  9885  	if invalidParams.Len() > 0 {
  9886  		return invalidParams
  9887  	}
  9888  	return nil
  9889  }
  9890  
  9891  // SetIndexName sets the IndexName field's value.
  9892  func (s *CreateGlobalSecondaryIndexAction) SetIndexName(v string) *CreateGlobalSecondaryIndexAction {
  9893  	s.IndexName = &v
  9894  	return s
  9895  }
  9896  
  9897  // SetKeySchema sets the KeySchema field's value.
  9898  func (s *CreateGlobalSecondaryIndexAction) SetKeySchema(v []*KeySchemaElement) *CreateGlobalSecondaryIndexAction {
  9899  	s.KeySchema = v
  9900  	return s
  9901  }
  9902  
  9903  // SetProjection sets the Projection field's value.
  9904  func (s *CreateGlobalSecondaryIndexAction) SetProjection(v *Projection) *CreateGlobalSecondaryIndexAction {
  9905  	s.Projection = v
  9906  	return s
  9907  }
  9908  
  9909  // SetProvisionedThroughput sets the ProvisionedThroughput field's value.
  9910  func (s *CreateGlobalSecondaryIndexAction) SetProvisionedThroughput(v *ProvisionedThroughput) *CreateGlobalSecondaryIndexAction {
  9911  	s.ProvisionedThroughput = v
  9912  	return s
  9913  }
  9914  
  9915  type CreateGlobalTableInput struct {
  9916  	_ struct{} `type:"structure"`
  9917  
  9918  	// The global table name.
  9919  	//
  9920  	// GlobalTableName is a required field
  9921  	GlobalTableName *string `min:"3" type:"string" required:"true"`
  9922  
  9923  	// The Regions where the global table needs to be created.
  9924  	//
  9925  	// ReplicationGroup is a required field
  9926  	ReplicationGroup []*Replica `type:"list" required:"true"`
  9927  }
  9928  
  9929  // String returns the string representation.
  9930  //
  9931  // API parameter values that are decorated as "sensitive" in the API will not
  9932  // be included in the string output. The member name will be present, but the
  9933  // value will be replaced with "sensitive".
  9934  func (s CreateGlobalTableInput) String() string {
  9935  	return awsutil.Prettify(s)
  9936  }
  9937  
  9938  // GoString returns the string representation.
  9939  //
  9940  // API parameter values that are decorated as "sensitive" in the API will not
  9941  // be included in the string output. The member name will be present, but the
  9942  // value will be replaced with "sensitive".
  9943  func (s CreateGlobalTableInput) GoString() string {
  9944  	return s.String()
  9945  }
  9946  
  9947  // Validate inspects the fields of the type to determine if they are valid.
  9948  func (s *CreateGlobalTableInput) Validate() error {
  9949  	invalidParams := request.ErrInvalidParams{Context: "CreateGlobalTableInput"}
  9950  	if s.GlobalTableName == nil {
  9951  		invalidParams.Add(request.NewErrParamRequired("GlobalTableName"))
  9952  	}
  9953  	if s.GlobalTableName != nil && len(*s.GlobalTableName) < 3 {
  9954  		invalidParams.Add(request.NewErrParamMinLen("GlobalTableName", 3))
  9955  	}
  9956  	if s.ReplicationGroup == nil {
  9957  		invalidParams.Add(request.NewErrParamRequired("ReplicationGroup"))
  9958  	}
  9959  
  9960  	if invalidParams.Len() > 0 {
  9961  		return invalidParams
  9962  	}
  9963  	return nil
  9964  }
  9965  
  9966  // SetGlobalTableName sets the GlobalTableName field's value.
  9967  func (s *CreateGlobalTableInput) SetGlobalTableName(v string) *CreateGlobalTableInput {
  9968  	s.GlobalTableName = &v
  9969  	return s
  9970  }
  9971  
  9972  // SetReplicationGroup sets the ReplicationGroup field's value.
  9973  func (s *CreateGlobalTableInput) SetReplicationGroup(v []*Replica) *CreateGlobalTableInput {
  9974  	s.ReplicationGroup = v
  9975  	return s
  9976  }
  9977  
  9978  type CreateGlobalTableOutput struct {
  9979  	_ struct{} `type:"structure"`
  9980  
  9981  	// Contains the details of the global table.
  9982  	GlobalTableDescription *GlobalTableDescription `type:"structure"`
  9983  }
  9984  
  9985  // String returns the string representation.
  9986  //
  9987  // API parameter values that are decorated as "sensitive" in the API will not
  9988  // be included in the string output. The member name will be present, but the
  9989  // value will be replaced with "sensitive".
  9990  func (s CreateGlobalTableOutput) String() string {
  9991  	return awsutil.Prettify(s)
  9992  }
  9993  
  9994  // GoString returns the string representation.
  9995  //
  9996  // API parameter values that are decorated as "sensitive" in the API will not
  9997  // be included in the string output. The member name will be present, but the
  9998  // value will be replaced with "sensitive".
  9999  func (s CreateGlobalTableOutput) GoString() string {
 10000  	return s.String()
 10001  }
 10002  
 10003  // SetGlobalTableDescription sets the GlobalTableDescription field's value.
 10004  func (s *CreateGlobalTableOutput) SetGlobalTableDescription(v *GlobalTableDescription) *CreateGlobalTableOutput {
 10005  	s.GlobalTableDescription = v
 10006  	return s
 10007  }
 10008  
 10009  // Represents a replica to be added.
 10010  type CreateReplicaAction struct {
 10011  	_ struct{} `type:"structure"`
 10012  
 10013  	// The Region of the replica to be added.
 10014  	//
 10015  	// RegionName is a required field
 10016  	RegionName *string `type:"string" required:"true"`
 10017  }
 10018  
 10019  // String returns the string representation.
 10020  //
 10021  // API parameter values that are decorated as "sensitive" in the API will not
 10022  // be included in the string output. The member name will be present, but the
 10023  // value will be replaced with "sensitive".
 10024  func (s CreateReplicaAction) String() string {
 10025  	return awsutil.Prettify(s)
 10026  }
 10027  
 10028  // GoString returns the string representation.
 10029  //
 10030  // API parameter values that are decorated as "sensitive" in the API will not
 10031  // be included in the string output. The member name will be present, but the
 10032  // value will be replaced with "sensitive".
 10033  func (s CreateReplicaAction) GoString() string {
 10034  	return s.String()
 10035  }
 10036  
 10037  // Validate inspects the fields of the type to determine if they are valid.
 10038  func (s *CreateReplicaAction) Validate() error {
 10039  	invalidParams := request.ErrInvalidParams{Context: "CreateReplicaAction"}
 10040  	if s.RegionName == nil {
 10041  		invalidParams.Add(request.NewErrParamRequired("RegionName"))
 10042  	}
 10043  
 10044  	if invalidParams.Len() > 0 {
 10045  		return invalidParams
 10046  	}
 10047  	return nil
 10048  }
 10049  
 10050  // SetRegionName sets the RegionName field's value.
 10051  func (s *CreateReplicaAction) SetRegionName(v string) *CreateReplicaAction {
 10052  	s.RegionName = &v
 10053  	return s
 10054  }
 10055  
 10056  // Represents a replica to be created.
 10057  type CreateReplicationGroupMemberAction struct {
 10058  	_ struct{} `type:"structure"`
 10059  
 10060  	// Replica-specific global secondary index settings.
 10061  	GlobalSecondaryIndexes []*ReplicaGlobalSecondaryIndex `min:"1" type:"list"`
 10062  
 10063  	// The AWS KMS customer master key (CMK) that should be used for AWS KMS encryption
 10064  	// in the new replica. To specify a CMK, use its key ID, Amazon Resource Name
 10065  	// (ARN), alias name, or alias ARN. Note that you should only provide this parameter
 10066  	// if the key is different from the default DynamoDB KMS master key alias/aws/dynamodb.
 10067  	KMSMasterKeyId *string `type:"string"`
 10068  
 10069  	// Replica-specific provisioned throughput. If not specified, uses the source
 10070  	// table's provisioned throughput settings.
 10071  	ProvisionedThroughputOverride *ProvisionedThroughputOverride `type:"structure"`
 10072  
 10073  	// The Region where the new replica will be created.
 10074  	//
 10075  	// RegionName is a required field
 10076  	RegionName *string `type:"string" required:"true"`
 10077  }
 10078  
 10079  // String returns the string representation.
 10080  //
 10081  // API parameter values that are decorated as "sensitive" in the API will not
 10082  // be included in the string output. The member name will be present, but the
 10083  // value will be replaced with "sensitive".
 10084  func (s CreateReplicationGroupMemberAction) String() string {
 10085  	return awsutil.Prettify(s)
 10086  }
 10087  
 10088  // GoString returns the string representation.
 10089  //
 10090  // API parameter values that are decorated as "sensitive" in the API will not
 10091  // be included in the string output. The member name will be present, but the
 10092  // value will be replaced with "sensitive".
 10093  func (s CreateReplicationGroupMemberAction) GoString() string {
 10094  	return s.String()
 10095  }
 10096  
 10097  // Validate inspects the fields of the type to determine if they are valid.
 10098  func (s *CreateReplicationGroupMemberAction) Validate() error {
 10099  	invalidParams := request.ErrInvalidParams{Context: "CreateReplicationGroupMemberAction"}
 10100  	if s.GlobalSecondaryIndexes != nil && len(s.GlobalSecondaryIndexes) < 1 {
 10101  		invalidParams.Add(request.NewErrParamMinLen("GlobalSecondaryIndexes", 1))
 10102  	}
 10103  	if s.RegionName == nil {
 10104  		invalidParams.Add(request.NewErrParamRequired("RegionName"))
 10105  	}
 10106  	if s.GlobalSecondaryIndexes != nil {
 10107  		for i, v := range s.GlobalSecondaryIndexes {
 10108  			if v == nil {
 10109  				continue
 10110  			}
 10111  			if err := v.Validate(); err != nil {
 10112  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "GlobalSecondaryIndexes", i), err.(request.ErrInvalidParams))
 10113  			}
 10114  		}
 10115  	}
 10116  	if s.ProvisionedThroughputOverride != nil {
 10117  		if err := s.ProvisionedThroughputOverride.Validate(); err != nil {
 10118  			invalidParams.AddNested("ProvisionedThroughputOverride", err.(request.ErrInvalidParams))
 10119  		}
 10120  	}
 10121  
 10122  	if invalidParams.Len() > 0 {
 10123  		return invalidParams
 10124  	}
 10125  	return nil
 10126  }
 10127  
 10128  // SetGlobalSecondaryIndexes sets the GlobalSecondaryIndexes field's value.
 10129  func (s *CreateReplicationGroupMemberAction) SetGlobalSecondaryIndexes(v []*ReplicaGlobalSecondaryIndex) *CreateReplicationGroupMemberAction {
 10130  	s.GlobalSecondaryIndexes = v
 10131  	return s
 10132  }
 10133  
 10134  // SetKMSMasterKeyId sets the KMSMasterKeyId field's value.
 10135  func (s *CreateReplicationGroupMemberAction) SetKMSMasterKeyId(v string) *CreateReplicationGroupMemberAction {
 10136  	s.KMSMasterKeyId = &v
 10137  	return s
 10138  }
 10139  
 10140  // SetProvisionedThroughputOverride sets the ProvisionedThroughputOverride field's value.
 10141  func (s *CreateReplicationGroupMemberAction) SetProvisionedThroughputOverride(v *ProvisionedThroughputOverride) *CreateReplicationGroupMemberAction {
 10142  	s.ProvisionedThroughputOverride = v
 10143  	return s
 10144  }
 10145  
 10146  // SetRegionName sets the RegionName field's value.
 10147  func (s *CreateReplicationGroupMemberAction) SetRegionName(v string) *CreateReplicationGroupMemberAction {
 10148  	s.RegionName = &v
 10149  	return s
 10150  }
 10151  
 10152  // Represents the input of a CreateTable operation.
 10153  type CreateTableInput struct {
 10154  	_ struct{} `type:"structure"`
 10155  
 10156  	// An array of attributes that describe the key schema for the table and indexes.
 10157  	//
 10158  	// AttributeDefinitions is a required field
 10159  	AttributeDefinitions []*AttributeDefinition `type:"list" required:"true"`
 10160  
 10161  	// Controls how you are charged for read and write throughput and how you manage
 10162  	// capacity. This setting can be changed later.
 10163  	//
 10164  	//    * PROVISIONED - We recommend using PROVISIONED for predictable workloads.
 10165  	//    PROVISIONED sets the billing mode to Provisioned Mode (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual).
 10166  	//
 10167  	//    * PAY_PER_REQUEST - We recommend using PAY_PER_REQUEST for unpredictable
 10168  	//    workloads. PAY_PER_REQUEST sets the billing mode to On-Demand Mode (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand).
 10169  	BillingMode *string `type:"string" enum:"BillingMode"`
 10170  
 10171  	// One or more global secondary indexes (the maximum is 20) to be created on
 10172  	// the table. Each global secondary index in the array includes the following:
 10173  	//
 10174  	//    * IndexName - The name of the global secondary index. Must be unique only
 10175  	//    for this table.
 10176  	//
 10177  	//    * KeySchema - Specifies the key schema for the global secondary index.
 10178  	//
 10179  	//    * Projection - Specifies attributes that are copied (projected) from the
 10180  	//    table into the index. These are in addition to the primary key attributes
 10181  	//    and index key attributes, which are automatically projected. Each attribute
 10182  	//    specification is composed of: ProjectionType - One of the following: KEYS_ONLY
 10183  	//    - Only the index and primary keys are projected into the index. INCLUDE
 10184  	//    - Only the specified table attributes are projected into the index. The
 10185  	//    list of projected attributes is in NonKeyAttributes. ALL - All of the
 10186  	//    table attributes are projected into the index. NonKeyAttributes - A list
 10187  	//    of one or more non-key attribute names that are projected into the secondary
 10188  	//    index. The total count of attributes provided in NonKeyAttributes, summed
 10189  	//    across all of the secondary indexes, must not exceed 100. If you project
 10190  	//    the same attribute into two different indexes, this counts as two distinct
 10191  	//    attributes when determining the total.
 10192  	//
 10193  	//    * ProvisionedThroughput - The provisioned throughput settings for the
 10194  	//    global secondary index, consisting of read and write capacity units.
 10195  	GlobalSecondaryIndexes []*GlobalSecondaryIndex `type:"list"`
 10196  
 10197  	// Specifies the attributes that make up the primary key for a table or an index.
 10198  	// The attributes in KeySchema must also be defined in the AttributeDefinitions
 10199  	// array. For more information, see Data Model (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html)
 10200  	// in the Amazon DynamoDB Developer Guide.
 10201  	//
 10202  	// Each KeySchemaElement in the array is composed of:
 10203  	//
 10204  	//    * AttributeName - The name of this key attribute.
 10205  	//
 10206  	//    * KeyType - The role that the key attribute will assume: HASH - partition
 10207  	//    key RANGE - sort key
 10208  	//
 10209  	// The partition key of an item is also known as its hash attribute. The term
 10210  	// "hash attribute" derives from the DynamoDB usage of an internal hash function
 10211  	// to evenly distribute data items across partitions, based on their partition
 10212  	// key values.
 10213  	//
 10214  	// The sort key of an item is also known as its range attribute. The term "range
 10215  	// attribute" derives from the way DynamoDB stores items with the same partition
 10216  	// key physically close together, in sorted order by the sort key value.
 10217  	//
 10218  	// For a simple primary key (partition key), you must provide exactly one element
 10219  	// with a KeyType of HASH.
 10220  	//
 10221  	// For a composite primary key (partition key and sort key), you must provide
 10222  	// exactly two elements, in this order: The first element must have a KeyType
 10223  	// of HASH, and the second element must have a KeyType of RANGE.
 10224  	//
 10225  	// For more information, see Working with Tables (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#WorkingWithTables.primary.key)
 10226  	// in the Amazon DynamoDB Developer Guide.
 10227  	//
 10228  	// KeySchema is a required field
 10229  	KeySchema []*KeySchemaElement `min:"1" type:"list" required:"true"`
 10230  
 10231  	// One or more local secondary indexes (the maximum is 5) to be created on the
 10232  	// table. Each index is scoped to a given partition key value. There is a 10
 10233  	// GB size limit per partition key value; otherwise, the size of a local secondary
 10234  	// index is unconstrained.
 10235  	//
 10236  	// Each local secondary index in the array includes the following:
 10237  	//
 10238  	//    * IndexName - The name of the local secondary index. Must be unique only
 10239  	//    for this table.
 10240  	//
 10241  	//    * KeySchema - Specifies the key schema for the local secondary index.
 10242  	//    The key schema must begin with the same partition key as the table.
 10243  	//
 10244  	//    * Projection - Specifies attributes that are copied (projected) from the
 10245  	//    table into the index. These are in addition to the primary key attributes
 10246  	//    and index key attributes, which are automatically projected. Each attribute
 10247  	//    specification is composed of: ProjectionType - One of the following: KEYS_ONLY
 10248  	//    - Only the index and primary keys are projected into the index. INCLUDE
 10249  	//    - Only the specified table attributes are projected into the index. The
 10250  	//    list of projected attributes is in NonKeyAttributes. ALL - All of the
 10251  	//    table attributes are projected into the index. NonKeyAttributes - A list
 10252  	//    of one or more non-key attribute names that are projected into the secondary
 10253  	//    index. The total count of attributes provided in NonKeyAttributes, summed
 10254  	//    across all of the secondary indexes, must not exceed 100. If you project
 10255  	//    the same attribute into two different indexes, this counts as two distinct
 10256  	//    attributes when determining the total.
 10257  	LocalSecondaryIndexes []*LocalSecondaryIndex `type:"list"`
 10258  
 10259  	// Represents the provisioned throughput settings for a specified table or index.
 10260  	// The settings can be modified using the UpdateTable operation.
 10261  	//
 10262  	// If you set BillingMode as PROVISIONED, you must specify this property. If
 10263  	// you set BillingMode as PAY_PER_REQUEST, you cannot specify this property.
 10264  	//
 10265  	// For current minimum and maximum provisioned throughput values, see Service,
 10266  	// Account, and Table Quotas (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html)
 10267  	// in the Amazon DynamoDB Developer Guide.
 10268  	ProvisionedThroughput *ProvisionedThroughput `type:"structure"`
 10269  
 10270  	// Represents the settings used to enable server-side encryption.
 10271  	SSESpecification *SSESpecification `type:"structure"`
 10272  
 10273  	// The settings for DynamoDB Streams on the table. These settings consist of:
 10274  	//
 10275  	//    * StreamEnabled - Indicates whether DynamoDB Streams is to be enabled
 10276  	//    (true) or disabled (false).
 10277  	//
 10278  	//    * StreamViewType - When an item in the table is modified, StreamViewType
 10279  	//    determines what information is written to the table's stream. Valid values
 10280  	//    for StreamViewType are: KEYS_ONLY - Only the key attributes of the modified
 10281  	//    item are written to the stream. NEW_IMAGE - The entire item, as it appears
 10282  	//    after it was modified, is written to the stream. OLD_IMAGE - The entire
 10283  	//    item, as it appeared before it was modified, is written to the stream.
 10284  	//    NEW_AND_OLD_IMAGES - Both the new and the old item images of the item
 10285  	//    are written to the stream.
 10286  	StreamSpecification *StreamSpecification `type:"structure"`
 10287  
 10288  	// The name of the table to create.
 10289  	//
 10290  	// TableName is a required field
 10291  	TableName *string `min:"3" type:"string" required:"true"`
 10292  
 10293  	// A list of key-value pairs to label the table. For more information, see Tagging
 10294  	// for DynamoDB (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html).
 10295  	Tags []*Tag `type:"list"`
 10296  }
 10297  
 10298  // String returns the string representation.
 10299  //
 10300  // API parameter values that are decorated as "sensitive" in the API will not
 10301  // be included in the string output. The member name will be present, but the
 10302  // value will be replaced with "sensitive".
 10303  func (s CreateTableInput) String() string {
 10304  	return awsutil.Prettify(s)
 10305  }
 10306  
 10307  // GoString returns the string representation.
 10308  //
 10309  // API parameter values that are decorated as "sensitive" in the API will not
 10310  // be included in the string output. The member name will be present, but the
 10311  // value will be replaced with "sensitive".
 10312  func (s CreateTableInput) GoString() string {
 10313  	return s.String()
 10314  }
 10315  
 10316  // Validate inspects the fields of the type to determine if they are valid.
 10317  func (s *CreateTableInput) Validate() error {
 10318  	invalidParams := request.ErrInvalidParams{Context: "CreateTableInput"}
 10319  	if s.AttributeDefinitions == nil {
 10320  		invalidParams.Add(request.NewErrParamRequired("AttributeDefinitions"))
 10321  	}
 10322  	if s.KeySchema == nil {
 10323  		invalidParams.Add(request.NewErrParamRequired("KeySchema"))
 10324  	}
 10325  	if s.KeySchema != nil && len(s.KeySchema) < 1 {
 10326  		invalidParams.Add(request.NewErrParamMinLen("KeySchema", 1))
 10327  	}
 10328  	if s.TableName == nil {
 10329  		invalidParams.Add(request.NewErrParamRequired("TableName"))
 10330  	}
 10331  	if s.TableName != nil && len(*s.TableName) < 3 {
 10332  		invalidParams.Add(request.NewErrParamMinLen("TableName", 3))
 10333  	}
 10334  	if s.AttributeDefinitions != nil {
 10335  		for i, v := range s.AttributeDefinitions {
 10336  			if v == nil {
 10337  				continue
 10338  			}
 10339  			if err := v.Validate(); err != nil {
 10340  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeDefinitions", i), err.(request.ErrInvalidParams))
 10341  			}
 10342  		}
 10343  	}
 10344  	if s.GlobalSecondaryIndexes != nil {
 10345  		for i, v := range s.GlobalSecondaryIndexes {
 10346  			if v == nil {
 10347  				continue
 10348  			}
 10349  			if err := v.Validate(); err != nil {
 10350  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "GlobalSecondaryIndexes", i), err.(request.ErrInvalidParams))
 10351  			}
 10352  		}
 10353  	}
 10354  	if s.KeySchema != nil {
 10355  		for i, v := range s.KeySchema {
 10356  			if v == nil {
 10357  				continue
 10358  			}
 10359  			if err := v.Validate(); err != nil {
 10360  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "KeySchema", i), err.(request.ErrInvalidParams))
 10361  			}
 10362  		}
 10363  	}
 10364  	if s.LocalSecondaryIndexes != nil {
 10365  		for i, v := range s.LocalSecondaryIndexes {
 10366  			if v == nil {
 10367  				continue
 10368  			}
 10369  			if err := v.Validate(); err != nil {
 10370  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "LocalSecondaryIndexes", i), err.(request.ErrInvalidParams))
 10371  			}
 10372  		}
 10373  	}
 10374  	if s.ProvisionedThroughput != nil {
 10375  		if err := s.ProvisionedThroughput.Validate(); err != nil {
 10376  			invalidParams.AddNested("ProvisionedThroughput", err.(request.ErrInvalidParams))
 10377  		}
 10378  	}
 10379  	if s.StreamSpecification != nil {
 10380  		if err := s.StreamSpecification.Validate(); err != nil {
 10381  			invalidParams.AddNested("StreamSpecification", err.(request.ErrInvalidParams))
 10382  		}
 10383  	}
 10384  	if s.Tags != nil {
 10385  		for i, v := range s.Tags {
 10386  			if v == nil {
 10387  				continue
 10388  			}
 10389  			if err := v.Validate(); err != nil {
 10390  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 10391  			}
 10392  		}
 10393  	}
 10394  
 10395  	if invalidParams.Len() > 0 {
 10396  		return invalidParams
 10397  	}
 10398  	return nil
 10399  }
 10400  
 10401  // SetAttributeDefinitions sets the AttributeDefinitions field's value.
 10402  func (s *CreateTableInput) SetAttributeDefinitions(v []*AttributeDefinition) *CreateTableInput {
 10403  	s.AttributeDefinitions = v
 10404  	return s
 10405  }
 10406  
 10407  // SetBillingMode sets the BillingMode field's value.
 10408  func (s *CreateTableInput) SetBillingMode(v string) *CreateTableInput {
 10409  	s.BillingMode = &v
 10410  	return s
 10411  }
 10412  
 10413  // SetGlobalSecondaryIndexes sets the GlobalSecondaryIndexes field's value.
 10414  func (s *CreateTableInput) SetGlobalSecondaryIndexes(v []*GlobalSecondaryIndex) *CreateTableInput {
 10415  	s.GlobalSecondaryIndexes = v
 10416  	return s
 10417  }
 10418  
 10419  // SetKeySchema sets the KeySchema field's value.
 10420  func (s *CreateTableInput) SetKeySchema(v []*KeySchemaElement) *CreateTableInput {
 10421  	s.KeySchema = v
 10422  	return s
 10423  }
 10424  
 10425  // SetLocalSecondaryIndexes sets the LocalSecondaryIndexes field's value.
 10426  func (s *CreateTableInput) SetLocalSecondaryIndexes(v []*LocalSecondaryIndex) *CreateTableInput {
 10427  	s.LocalSecondaryIndexes = v
 10428  	return s
 10429  }
 10430  
 10431  // SetProvisionedThroughput sets the ProvisionedThroughput field's value.
 10432  func (s *CreateTableInput) SetProvisionedThroughput(v *ProvisionedThroughput) *CreateTableInput {
 10433  	s.ProvisionedThroughput = v
 10434  	return s
 10435  }
 10436  
 10437  // SetSSESpecification sets the SSESpecification field's value.
 10438  func (s *CreateTableInput) SetSSESpecification(v *SSESpecification) *CreateTableInput {
 10439  	s.SSESpecification = v
 10440  	return s
 10441  }
 10442  
 10443  // SetStreamSpecification sets the StreamSpecification field's value.
 10444  func (s *CreateTableInput) SetStreamSpecification(v *StreamSpecification) *CreateTableInput {
 10445  	s.StreamSpecification = v
 10446  	return s
 10447  }
 10448  
 10449  // SetTableName sets the TableName field's value.
 10450  func (s *CreateTableInput) SetTableName(v string) *CreateTableInput {
 10451  	s.TableName = &v
 10452  	return s
 10453  }
 10454  
 10455  // SetTags sets the Tags field's value.
 10456  func (s *CreateTableInput) SetTags(v []*Tag) *CreateTableInput {
 10457  	s.Tags = v
 10458  	return s
 10459  }
 10460  
 10461  // Represents the output of a CreateTable operation.
 10462  type CreateTableOutput struct {
 10463  	_ struct{} `type:"structure"`
 10464  
 10465  	// Represents the properties of the table.
 10466  	TableDescription *TableDescription `type:"structure"`
 10467  }
 10468  
 10469  // String returns the string representation.
 10470  //
 10471  // API parameter values that are decorated as "sensitive" in the API will not
 10472  // be included in the string output. The member name will be present, but the
 10473  // value will be replaced with "sensitive".
 10474  func (s CreateTableOutput) String() string {
 10475  	return awsutil.Prettify(s)
 10476  }
 10477  
 10478  // GoString returns the string representation.
 10479  //
 10480  // API parameter values that are decorated as "sensitive" in the API will not
 10481  // be included in the string output. The member name will be present, but the
 10482  // value will be replaced with "sensitive".
 10483  func (s CreateTableOutput) GoString() string {
 10484  	return s.String()
 10485  }
 10486  
 10487  // SetTableDescription sets the TableDescription field's value.
 10488  func (s *CreateTableOutput) SetTableDescription(v *TableDescription) *CreateTableOutput {
 10489  	s.TableDescription = v
 10490  	return s
 10491  }
 10492  
 10493  // Represents a request to perform a DeleteItem operation.
 10494  type Delete struct {
 10495  	_ struct{} `type:"structure"`
 10496  
 10497  	// A condition that must be satisfied in order for a conditional delete to succeed.
 10498  	ConditionExpression *string `type:"string"`
 10499  
 10500  	// One or more substitution tokens for attribute names in an expression.
 10501  	ExpressionAttributeNames map[string]*string `type:"map"`
 10502  
 10503  	// One or more values that can be substituted in an expression.
 10504  	ExpressionAttributeValues map[string]*AttributeValue `type:"map"`
 10505  
 10506  	// The primary key of the item to be deleted. Each element consists of an attribute
 10507  	// name and a value for that attribute.
 10508  	//
 10509  	// Key is a required field
 10510  	Key map[string]*AttributeValue `type:"map" required:"true"`
 10511  
 10512  	// Use ReturnValuesOnConditionCheckFailure to get the item attributes if the
 10513  	// Delete condition fails. For ReturnValuesOnConditionCheckFailure, the valid
 10514  	// values are: NONE and ALL_OLD.
 10515  	ReturnValuesOnConditionCheckFailure *string `type:"string" enum:"ReturnValuesOnConditionCheckFailure"`
 10516  
 10517  	// Name of the table in which the item to be deleted resides.
 10518  	//
 10519  	// TableName is a required field
 10520  	TableName *string `min:"3" type:"string" required:"true"`
 10521  }
 10522  
 10523  // String returns the string representation.
 10524  //
 10525  // API parameter values that are decorated as "sensitive" in the API will not
 10526  // be included in the string output. The member name will be present, but the
 10527  // value will be replaced with "sensitive".
 10528  func (s Delete) String() string {
 10529  	return awsutil.Prettify(s)
 10530  }
 10531  
 10532  // GoString returns the string representation.
 10533  //
 10534  // API parameter values that are decorated as "sensitive" in the API will not
 10535  // be included in the string output. The member name will be present, but the
 10536  // value will be replaced with "sensitive".
 10537  func (s Delete) GoString() string {
 10538  	return s.String()
 10539  }
 10540  
 10541  // Validate inspects the fields of the type to determine if they are valid.
 10542  func (s *Delete) Validate() error {
 10543  	invalidParams := request.ErrInvalidParams{Context: "Delete"}
 10544  	if s.Key == nil {
 10545  		invalidParams.Add(request.NewErrParamRequired("Key"))
 10546  	}
 10547  	if s.TableName == nil {
 10548  		invalidParams.Add(request.NewErrParamRequired("TableName"))
 10549  	}
 10550  	if s.TableName != nil && len(*s.TableName) < 3 {
 10551  		invalidParams.Add(request.NewErrParamMinLen("TableName", 3))
 10552  	}
 10553  
 10554  	if invalidParams.Len() > 0 {
 10555  		return invalidParams
 10556  	}
 10557  	return nil
 10558  }
 10559  
 10560  // SetConditionExpression sets the ConditionExpression field's value.
 10561  func (s *Delete) SetConditionExpression(v string) *Delete {
 10562  	s.ConditionExpression = &v
 10563  	return s
 10564  }
 10565  
 10566  // SetExpressionAttributeNames sets the ExpressionAttributeNames field's value.
 10567  func (s *Delete) SetExpressionAttributeNames(v map[string]*string) *Delete {
 10568  	s.ExpressionAttributeNames = v
 10569  	return s
 10570  }
 10571  
 10572  // SetExpressionAttributeValues sets the ExpressionAttributeValues field's value.
 10573  func (s *Delete) SetExpressionAttributeValues(v map[string]*AttributeValue) *Delete {
 10574  	s.ExpressionAttributeValues = v
 10575  	return s
 10576  }
 10577  
 10578  // SetKey sets the Key field's value.
 10579  func (s *Delete) SetKey(v map[string]*AttributeValue) *Delete {
 10580  	s.Key = v
 10581  	return s
 10582  }
 10583  
 10584  // SetReturnValuesOnConditionCheckFailure sets the ReturnValuesOnConditionCheckFailure field's value.
 10585  func (s *Delete) SetReturnValuesOnConditionCheckFailure(v string) *Delete {
 10586  	s.ReturnValuesOnConditionCheckFailure = &v
 10587  	return s
 10588  }
 10589  
 10590  // SetTableName sets the TableName field's value.
 10591  func (s *Delete) SetTableName(v string) *Delete {
 10592  	s.TableName = &v
 10593  	return s
 10594  }
 10595  
 10596  type DeleteBackupInput struct {
 10597  	_ struct{} `type:"structure"`
 10598  
 10599  	// The ARN associated with the backup.
 10600  	//
 10601  	// BackupArn is a required field
 10602  	BackupArn *string `min:"37" type:"string" required:"true"`
 10603  }
 10604  
 10605  // String returns the string representation.
 10606  //
 10607  // API parameter values that are decorated as "sensitive" in the API will not
 10608  // be included in the string output. The member name will be present, but the
 10609  // value will be replaced with "sensitive".
 10610  func (s DeleteBackupInput) String() string {
 10611  	return awsutil.Prettify(s)
 10612  }
 10613  
 10614  // GoString returns the string representation.
 10615  //
 10616  // API parameter values that are decorated as "sensitive" in the API will not
 10617  // be included in the string output. The member name will be present, but the
 10618  // value will be replaced with "sensitive".
 10619  func (s DeleteBackupInput) GoString() string {
 10620  	return s.String()
 10621  }
 10622  
 10623  // Validate inspects the fields of the type to determine if they are valid.
 10624  func (s *DeleteBackupInput) Validate() error {
 10625  	invalidParams := request.ErrInvalidParams{Context: "DeleteBackupInput"}
 10626  	if s.BackupArn == nil {
 10627  		invalidParams.Add(request.NewErrParamRequired("BackupArn"))
 10628  	}
 10629  	if s.BackupArn != nil && len(*s.BackupArn) < 37 {
 10630  		invalidParams.Add(request.NewErrParamMinLen("BackupArn", 37))
 10631  	}
 10632  
 10633  	if invalidParams.Len() > 0 {
 10634  		return invalidParams
 10635  	}
 10636  	return nil
 10637  }
 10638  
 10639  // SetBackupArn sets the BackupArn field's value.
 10640  func (s *DeleteBackupInput) SetBackupArn(v string) *DeleteBackupInput {
 10641  	s.BackupArn = &v
 10642  	return s
 10643  }
 10644  
 10645  type DeleteBackupOutput struct {
 10646  	_ struct{} `type:"structure"`
 10647  
 10648  	// Contains the description of the backup created for the table.
 10649  	BackupDescription *BackupDescription `type:"structure"`
 10650  }
 10651  
 10652  // String returns the string representation.
 10653  //
 10654  // API parameter values that are decorated as "sensitive" in the API will not
 10655  // be included in the string output. The member name will be present, but the
 10656  // value will be replaced with "sensitive".
 10657  func (s DeleteBackupOutput) String() string {
 10658  	return awsutil.Prettify(s)
 10659  }
 10660  
 10661  // GoString returns the string representation.
 10662  //
 10663  // API parameter values that are decorated as "sensitive" in the API will not
 10664  // be included in the string output. The member name will be present, but the
 10665  // value will be replaced with "sensitive".
 10666  func (s DeleteBackupOutput) GoString() string {
 10667  	return s.String()
 10668  }
 10669  
 10670  // SetBackupDescription sets the BackupDescription field's value.
 10671  func (s *DeleteBackupOutput) SetBackupDescription(v *BackupDescription) *DeleteBackupOutput {
 10672  	s.BackupDescription = v
 10673  	return s
 10674  }
 10675  
 10676  // Represents a global secondary index to be deleted from an existing table.
 10677  type DeleteGlobalSecondaryIndexAction struct {
 10678  	_ struct{} `type:"structure"`
 10679  
 10680  	// The name of the global secondary index to be deleted.
 10681  	//
 10682  	// IndexName is a required field
 10683  	IndexName *string `min:"3" type:"string" required:"true"`
 10684  }
 10685  
 10686  // String returns the string representation.
 10687  //
 10688  // API parameter values that are decorated as "sensitive" in the API will not
 10689  // be included in the string output. The member name will be present, but the
 10690  // value will be replaced with "sensitive".
 10691  func (s DeleteGlobalSecondaryIndexAction) String() string {
 10692  	return awsutil.Prettify(s)
 10693  }
 10694  
 10695  // GoString returns the string representation.
 10696  //
 10697  // API parameter values that are decorated as "sensitive" in the API will not
 10698  // be included in the string output. The member name will be present, but the
 10699  // value will be replaced with "sensitive".
 10700  func (s DeleteGlobalSecondaryIndexAction) GoString() string {
 10701  	return s.String()
 10702  }
 10703  
 10704  // Validate inspects the fields of the type to determine if they are valid.
 10705  func (s *DeleteGlobalSecondaryIndexAction) Validate() error {
 10706  	invalidParams := request.ErrInvalidParams{Context: "DeleteGlobalSecondaryIndexAction"}
 10707  	if s.IndexName == nil {
 10708  		invalidParams.Add(request.NewErrParamRequired("IndexName"))
 10709  	}
 10710  	if s.IndexName != nil && len(*s.IndexName) < 3 {
 10711  		invalidParams.Add(request.NewErrParamMinLen("IndexName", 3))
 10712  	}
 10713  
 10714  	if invalidParams.Len() > 0 {
 10715  		return invalidParams
 10716  	}
 10717  	return nil
 10718  }
 10719  
 10720  // SetIndexName sets the IndexName field's value.
 10721  func (s *DeleteGlobalSecondaryIndexAction) SetIndexName(v string) *DeleteGlobalSecondaryIndexAction {
 10722  	s.IndexName = &v
 10723  	return s
 10724  }
 10725  
 10726  // Represents the input of a DeleteItem operation.
 10727  type DeleteItemInput struct {
 10728  	_ struct{} `type:"structure"`
 10729  
 10730  	// A condition that must be satisfied in order for a conditional DeleteItem
 10731  	// to succeed.
 10732  	//
 10733  	// An expression can contain any of the following:
 10734  	//
 10735  	//    * Functions: attribute_exists | attribute_not_exists | attribute_type
 10736  	//    | contains | begins_with | size These function names are case-sensitive.
 10737  	//
 10738  	//    * Comparison operators: = | <> | < | > | <= | >= | BETWEEN | IN
 10739  	//
 10740  	//    * Logical operators: AND | OR | NOT
 10741  	//
 10742  	// For more information about condition expressions, see Condition Expressions
 10743  	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html)
 10744  	// in the Amazon DynamoDB Developer Guide.
 10745  	ConditionExpression *string `type:"string"`
 10746  
 10747  	// This is a legacy parameter. Use ConditionExpression instead. For more information,
 10748  	// see ConditionalOperator (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ConditionalOperator.html)
 10749  	// in the Amazon DynamoDB Developer Guide.
 10750  	ConditionalOperator *string `type:"string" enum:"ConditionalOperator"`
 10751  
 10752  	// This is a legacy parameter. Use ConditionExpression instead. For more information,
 10753  	// see Expected (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.Expected.html)
 10754  	// in the Amazon DynamoDB Developer Guide.
 10755  	Expected map[string]*ExpectedAttributeValue `type:"map"`
 10756  
 10757  	// One or more substitution tokens for attribute names in an expression. The
 10758  	// following are some use cases for using ExpressionAttributeNames:
 10759  	//
 10760  	//    * To access an attribute whose name conflicts with a DynamoDB reserved
 10761  	//    word.
 10762  	//
 10763  	//    * To create a placeholder for repeating occurrences of an attribute name
 10764  	//    in an expression.
 10765  	//
 10766  	//    * To prevent special characters in an attribute name from being misinterpreted
 10767  	//    in an expression.
 10768  	//
 10769  	// Use the # character in an expression to dereference an attribute name. For
 10770  	// example, consider the following attribute name:
 10771  	//
 10772  	//    * Percentile
 10773  	//
 10774  	// The name of this attribute conflicts with a reserved word, so it cannot be
 10775  	// used directly in an expression. (For the complete list of reserved words,
 10776  	// see Reserved Words (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html)
 10777  	// in the Amazon DynamoDB Developer Guide). To work around this, you could specify
 10778  	// the following for ExpressionAttributeNames:
 10779  	//
 10780  	//    * {"#P":"Percentile"}
 10781  	//
 10782  	// You could then use this substitution in an expression, as in this example:
 10783  	//
 10784  	//    * #P = :val
 10785  	//
 10786  	// Tokens that begin with the : character are expression attribute values, which
 10787  	// are placeholders for the actual value at runtime.
 10788  	//
 10789  	// For more information on expression attribute names, see Specifying Item Attributes
 10790  	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html)
 10791  	// in the Amazon DynamoDB Developer Guide.
 10792  	ExpressionAttributeNames map[string]*string `type:"map"`
 10793  
 10794  	// One or more values that can be substituted in an expression.
 10795  	//
 10796  	// Use the : (colon) character in an expression to dereference an attribute
 10797  	// value. For example, suppose that you wanted to check whether the value of
 10798  	// the ProductStatus attribute was one of the following:
 10799  	//
 10800  	// Available | Backordered | Discontinued
 10801  	//
 10802  	// You would first need to specify ExpressionAttributeValues as follows:
 10803  	//
 10804  	// { ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"}
 10805  	// }
 10806  	//
 10807  	// You could then use these values in an expression, such as this:
 10808  	//
 10809  	// ProductStatus IN (:avail, :back, :disc)
 10810  	//
 10811  	// For more information on expression attribute values, see Condition Expressions
 10812  	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html)
 10813  	// in the Amazon DynamoDB Developer Guide.
 10814  	ExpressionAttributeValues map[string]*AttributeValue `type:"map"`
 10815  
 10816  	// A map of attribute names to AttributeValue objects, representing the primary
 10817  	// key of the item to delete.
 10818  	//
 10819  	// For the primary key, you must provide all of the attributes. For example,
 10820  	// with a simple primary key, you only need to provide a value for the partition
 10821  	// key. For a composite primary key, you must provide values for both the partition
 10822  	// key and the sort key.
 10823  	//
 10824  	// Key is a required field
 10825  	Key map[string]*AttributeValue `type:"map" required:"true"`
 10826  
 10827  	// Determines the level of detail about provisioned throughput consumption that
 10828  	// is returned in the response:
 10829  	//
 10830  	//    * INDEXES - The response includes the aggregate ConsumedCapacity for the
 10831  	//    operation, together with ConsumedCapacity for each table and secondary
 10832  	//    index that was accessed. Note that some operations, such as GetItem and
 10833  	//    BatchGetItem, do not access any indexes at all. In these cases, specifying
 10834  	//    INDEXES will only return ConsumedCapacity information for table(s).
 10835  	//
 10836  	//    * TOTAL - The response includes only the aggregate ConsumedCapacity for
 10837  	//    the operation.
 10838  	//
 10839  	//    * NONE - No ConsumedCapacity details are included in the response.
 10840  	ReturnConsumedCapacity *string `type:"string" enum:"ReturnConsumedCapacity"`
 10841  
 10842  	// Determines whether item collection metrics are returned. If set to SIZE,
 10843  	// the response includes statistics about item collections, if any, that were
 10844  	// modified during the operation are returned in the response. If set to NONE
 10845  	// (the default), no statistics are returned.
 10846  	ReturnItemCollectionMetrics *string `type:"string" enum:"ReturnItemCollectionMetrics"`
 10847  
 10848  	// Use ReturnValues if you want to get the item attributes as they appeared
 10849  	// before they were deleted. For DeleteItem, the valid values are:
 10850  	//
 10851  	//    * NONE - If ReturnValues is not specified, or if its value is NONE, then
 10852  	//    nothing is returned. (This setting is the default for ReturnValues.)
 10853  	//
 10854  	//    * ALL_OLD - The content of the old item is returned.
 10855  	//
 10856  	// The ReturnValues parameter is used by several DynamoDB operations; however,
 10857  	// DeleteItem does not recognize any values other than NONE or ALL_OLD.
 10858  	ReturnValues *string `type:"string" enum:"ReturnValue"`
 10859  
 10860  	// The name of the table from which to delete the item.
 10861  	//
 10862  	// TableName is a required field
 10863  	TableName *string `min:"3" type:"string" required:"true"`
 10864  }
 10865  
 10866  // String returns the string representation.
 10867  //
 10868  // API parameter values that are decorated as "sensitive" in the API will not
 10869  // be included in the string output. The member name will be present, but the
 10870  // value will be replaced with "sensitive".
 10871  func (s DeleteItemInput) String() string {
 10872  	return awsutil.Prettify(s)
 10873  }
 10874  
 10875  // GoString returns the string representation.
 10876  //
 10877  // API parameter values that are decorated as "sensitive" in the API will not
 10878  // be included in the string output. The member name will be present, but the
 10879  // value will be replaced with "sensitive".
 10880  func (s DeleteItemInput) GoString() string {
 10881  	return s.String()
 10882  }
 10883  
 10884  // Validate inspects the fields of the type to determine if they are valid.
 10885  func (s *DeleteItemInput) Validate() error {
 10886  	invalidParams := request.ErrInvalidParams{Context: "DeleteItemInput"}
 10887  	if s.Key == nil {
 10888  		invalidParams.Add(request.NewErrParamRequired("Key"))
 10889  	}
 10890  	if s.TableName == nil {
 10891  		invalidParams.Add(request.NewErrParamRequired("TableName"))
 10892  	}
 10893  	if s.TableName != nil && len(*s.TableName) < 3 {
 10894  		invalidParams.Add(request.NewErrParamMinLen("TableName", 3))
 10895  	}
 10896  
 10897  	if invalidParams.Len() > 0 {
 10898  		return invalidParams
 10899  	}
 10900  	return nil
 10901  }
 10902  
 10903  // SetConditionExpression sets the ConditionExpression field's value.
 10904  func (s *DeleteItemInput) SetConditionExpression(v string) *DeleteItemInput {
 10905  	s.ConditionExpression = &v
 10906  	return s
 10907  }
 10908  
 10909  // SetConditionalOperator sets the ConditionalOperator field's value.
 10910  func (s *DeleteItemInput) SetConditionalOperator(v string) *DeleteItemInput {
 10911  	s.ConditionalOperator = &v
 10912  	return s
 10913  }
 10914  
 10915  // SetExpected sets the Expected field's value.
 10916  func (s *DeleteItemInput) SetExpected(v map[string]*ExpectedAttributeValue) *DeleteItemInput {
 10917  	s.Expected = v
 10918  	return s
 10919  }
 10920  
 10921  // SetExpressionAttributeNames sets the ExpressionAttributeNames field's value.
 10922  func (s *DeleteItemInput) SetExpressionAttributeNames(v map[string]*string) *DeleteItemInput {
 10923  	s.ExpressionAttributeNames = v
 10924  	return s
 10925  }
 10926  
 10927  // SetExpressionAttributeValues sets the ExpressionAttributeValues field's value.
 10928  func (s *DeleteItemInput) SetExpressionAttributeValues(v map[string]*AttributeValue) *DeleteItemInput {
 10929  	s.ExpressionAttributeValues = v
 10930  	return s
 10931  }
 10932  
 10933  // SetKey sets the Key field's value.
 10934  func (s *DeleteItemInput) SetKey(v map[string]*AttributeValue) *DeleteItemInput {
 10935  	s.Key = v
 10936  	return s
 10937  }
 10938  
 10939  // SetReturnConsumedCapacity sets the ReturnConsumedCapacity field's value.
 10940  func (s *DeleteItemInput) SetReturnConsumedCapacity(v string) *DeleteItemInput {
 10941  	s.ReturnConsumedCapacity = &v
 10942  	return s
 10943  }
 10944  
 10945  // SetReturnItemCollectionMetrics sets the ReturnItemCollectionMetrics field's value.
 10946  func (s *DeleteItemInput) SetReturnItemCollectionMetrics(v string) *DeleteItemInput {
 10947  	s.ReturnItemCollectionMetrics = &v
 10948  	return s
 10949  }
 10950  
 10951  // SetReturnValues sets the ReturnValues field's value.
 10952  func (s *DeleteItemInput) SetReturnValues(v string) *DeleteItemInput {
 10953  	s.ReturnValues = &v
 10954  	return s
 10955  }
 10956  
 10957  // SetTableName sets the TableName field's value.
 10958  func (s *DeleteItemInput) SetTableName(v string) *DeleteItemInput {
 10959  	s.TableName = &v
 10960  	return s
 10961  }
 10962  
 10963  // Represents the output of a DeleteItem operation.
 10964  type DeleteItemOutput struct {
 10965  	_ struct{} `type:"structure"`
 10966  
 10967  	// A map of attribute names to AttributeValue objects, representing the item
 10968  	// as it appeared before the DeleteItem operation. This map appears in the response
 10969  	// only if ReturnValues was specified as ALL_OLD in the request.
 10970  	Attributes map[string]*AttributeValue `type:"map"`
 10971  
 10972  	// The capacity units consumed by the DeleteItem operation. The data returned
 10973  	// includes the total provisioned throughput consumed, along with statistics
 10974  	// for the table and any indexes involved in the operation. ConsumedCapacity
 10975  	// is only returned if the ReturnConsumedCapacity parameter was specified. For
 10976  	// more information, see Provisioned Mode (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html)
 10977  	// in the Amazon DynamoDB Developer Guide.
 10978  	ConsumedCapacity *ConsumedCapacity `type:"structure"`
 10979  
 10980  	// Information about item collections, if any, that were affected by the DeleteItem
 10981  	// operation. ItemCollectionMetrics is only returned if the ReturnItemCollectionMetrics
 10982  	// parameter was specified. If the table does not have any local secondary indexes,
 10983  	// this information is not returned in the response.
 10984  	//
 10985  	// Each ItemCollectionMetrics element consists of:
 10986  	//
 10987  	//    * ItemCollectionKey - The partition key value of the item collection.
 10988  	//    This is the same as the partition key value of the item itself.
 10989  	//
 10990  	//    * SizeEstimateRangeGB - An estimate of item collection size, in gigabytes.
 10991  	//    This value is a two-element array containing a lower bound and an upper
 10992  	//    bound for the estimate. The estimate includes the size of all the items
 10993  	//    in the table, plus the size of all attributes projected into all of the
 10994  	//    local secondary indexes on that table. Use this estimate to measure whether
 10995  	//    a local secondary index is approaching its size limit. The estimate is
 10996  	//    subject to change over time; therefore, do not rely on the precision or
 10997  	//    accuracy of the estimate.
 10998  	ItemCollectionMetrics *ItemCollectionMetrics `type:"structure"`
 10999  }
 11000  
 11001  // String returns the string representation.
 11002  //
 11003  // API parameter values that are decorated as "sensitive" in the API will not
 11004  // be included in the string output. The member name will be present, but the
 11005  // value will be replaced with "sensitive".
 11006  func (s DeleteItemOutput) String() string {
 11007  	return awsutil.Prettify(s)
 11008  }
 11009  
 11010  // GoString returns the string representation.
 11011  //
 11012  // API parameter values that are decorated as "sensitive" in the API will not
 11013  // be included in the string output. The member name will be present, but the
 11014  // value will be replaced with "sensitive".
 11015  func (s DeleteItemOutput) GoString() string {
 11016  	return s.String()
 11017  }
 11018  
 11019  // SetAttributes sets the Attributes field's value.
 11020  func (s *DeleteItemOutput) SetAttributes(v map[string]*AttributeValue) *DeleteItemOutput {
 11021  	s.Attributes = v
 11022  	return s
 11023  }
 11024  
 11025  // SetConsumedCapacity sets the ConsumedCapacity field's value.
 11026  func (s *DeleteItemOutput) SetConsumedCapacity(v *ConsumedCapacity) *DeleteItemOutput {
 11027  	s.ConsumedCapacity = v
 11028  	return s
 11029  }
 11030  
 11031  // SetItemCollectionMetrics sets the ItemCollectionMetrics field's value.
 11032  func (s *DeleteItemOutput) SetItemCollectionMetrics(v *ItemCollectionMetrics) *DeleteItemOutput {
 11033  	s.ItemCollectionMetrics = v
 11034  	return s
 11035  }
 11036  
 11037  // Represents a replica to be removed.
 11038  type DeleteReplicaAction struct {
 11039  	_ struct{} `type:"structure"`
 11040  
 11041  	// The Region of the replica to be removed.
 11042  	//
 11043  	// RegionName is a required field
 11044  	RegionName *string `type:"string" required:"true"`
 11045  }
 11046  
 11047  // String returns the string representation.
 11048  //
 11049  // API parameter values that are decorated as "sensitive" in the API will not
 11050  // be included in the string output. The member name will be present, but the
 11051  // value will be replaced with "sensitive".
 11052  func (s DeleteReplicaAction) String() string {
 11053  	return awsutil.Prettify(s)
 11054  }
 11055  
 11056  // GoString returns the string representation.
 11057  //
 11058  // API parameter values that are decorated as "sensitive" in the API will not
 11059  // be included in the string output. The member name will be present, but the
 11060  // value will be replaced with "sensitive".
 11061  func (s DeleteReplicaAction) GoString() string {
 11062  	return s.String()
 11063  }
 11064  
 11065  // Validate inspects the fields of the type to determine if they are valid.
 11066  func (s *DeleteReplicaAction) Validate() error {
 11067  	invalidParams := request.ErrInvalidParams{Context: "DeleteReplicaAction"}
 11068  	if s.RegionName == nil {
 11069  		invalidParams.Add(request.NewErrParamRequired("RegionName"))
 11070  	}
 11071  
 11072  	if invalidParams.Len() > 0 {
 11073  		return invalidParams
 11074  	}
 11075  	return nil
 11076  }
 11077  
 11078  // SetRegionName sets the RegionName field's value.
 11079  func (s *DeleteReplicaAction) SetRegionName(v string) *DeleteReplicaAction {
 11080  	s.RegionName = &v
 11081  	return s
 11082  }
 11083  
 11084  // Represents a replica to be deleted.
 11085  type DeleteReplicationGroupMemberAction struct {
 11086  	_ struct{} `type:"structure"`
 11087  
 11088  	// The Region where the replica exists.
 11089  	//
 11090  	// RegionName is a required field
 11091  	RegionName *string `type:"string" required:"true"`
 11092  }
 11093  
 11094  // String returns the string representation.
 11095  //
 11096  // API parameter values that are decorated as "sensitive" in the API will not
 11097  // be included in the string output. The member name will be present, but the
 11098  // value will be replaced with "sensitive".
 11099  func (s DeleteReplicationGroupMemberAction) String() string {
 11100  	return awsutil.Prettify(s)
 11101  }
 11102  
 11103  // GoString returns the string representation.
 11104  //
 11105  // API parameter values that are decorated as "sensitive" in the API will not
 11106  // be included in the string output. The member name will be present, but the
 11107  // value will be replaced with "sensitive".
 11108  func (s DeleteReplicationGroupMemberAction) GoString() string {
 11109  	return s.String()
 11110  }
 11111  
 11112  // Validate inspects the fields of the type to determine if they are valid.
 11113  func (s *DeleteReplicationGroupMemberAction) Validate() error {
 11114  	invalidParams := request.ErrInvalidParams{Context: "DeleteReplicationGroupMemberAction"}
 11115  	if s.RegionName == nil {
 11116  		invalidParams.Add(request.NewErrParamRequired("RegionName"))
 11117  	}
 11118  
 11119  	if invalidParams.Len() > 0 {
 11120  		return invalidParams
 11121  	}
 11122  	return nil
 11123  }
 11124  
 11125  // SetRegionName sets the RegionName field's value.
 11126  func (s *DeleteReplicationGroupMemberAction) SetRegionName(v string) *DeleteReplicationGroupMemberAction {
 11127  	s.RegionName = &v
 11128  	return s
 11129  }
 11130  
 11131  // Represents a request to perform a DeleteItem operation on an item.
 11132  type DeleteRequest struct {
 11133  	_ struct{} `type:"structure"`
 11134  
 11135  	// A map of attribute name to attribute values, representing the primary key
 11136  	// of the item to delete. All of the table's primary key attributes must be
 11137  	// specified, and their data types must match those of the table's key schema.
 11138  	//
 11139  	// Key is a required field
 11140  	Key map[string]*AttributeValue `type:"map" required:"true"`
 11141  }
 11142  
 11143  // String returns the string representation.
 11144  //
 11145  // API parameter values that are decorated as "sensitive" in the API will not
 11146  // be included in the string output. The member name will be present, but the
 11147  // value will be replaced with "sensitive".
 11148  func (s DeleteRequest) String() string {
 11149  	return awsutil.Prettify(s)
 11150  }
 11151  
 11152  // GoString returns the string representation.
 11153  //
 11154  // API parameter values that are decorated as "sensitive" in the API will not
 11155  // be included in the string output. The member name will be present, but the
 11156  // value will be replaced with "sensitive".
 11157  func (s DeleteRequest) GoString() string {
 11158  	return s.String()
 11159  }
 11160  
 11161  // SetKey sets the Key field's value.
 11162  func (s *DeleteRequest) SetKey(v map[string]*AttributeValue) *DeleteRequest {
 11163  	s.Key = v
 11164  	return s
 11165  }
 11166  
 11167  // Represents the input of a DeleteTable operation.
 11168  type DeleteTableInput struct {
 11169  	_ struct{} `type:"structure"`
 11170  
 11171  	// The name of the table to delete.
 11172  	//
 11173  	// TableName is a required field
 11174  	TableName *string `min:"3" type:"string" required:"true"`
 11175  }
 11176  
 11177  // String returns the string representation.
 11178  //
 11179  // API parameter values that are decorated as "sensitive" in the API will not
 11180  // be included in the string output. The member name will be present, but the
 11181  // value will be replaced with "sensitive".
 11182  func (s DeleteTableInput) String() string {
 11183  	return awsutil.Prettify(s)
 11184  }
 11185  
 11186  // GoString returns the string representation.
 11187  //
 11188  // API parameter values that are decorated as "sensitive" in the API will not
 11189  // be included in the string output. The member name will be present, but the
 11190  // value will be replaced with "sensitive".
 11191  func (s DeleteTableInput) GoString() string {
 11192  	return s.String()
 11193  }
 11194  
 11195  // Validate inspects the fields of the type to determine if they are valid.
 11196  func (s *DeleteTableInput) Validate() error {
 11197  	invalidParams := request.ErrInvalidParams{Context: "DeleteTableInput"}
 11198  	if s.TableName == nil {
 11199  		invalidParams.Add(request.NewErrParamRequired("TableName"))
 11200  	}
 11201  	if s.TableName != nil && len(*s.TableName) < 3 {
 11202  		invalidParams.Add(request.NewErrParamMinLen("TableName", 3))
 11203  	}
 11204  
 11205  	if invalidParams.Len() > 0 {
 11206  		return invalidParams
 11207  	}
 11208  	return nil
 11209  }
 11210  
 11211  // SetTableName sets the TableName field's value.
 11212  func (s *DeleteTableInput) SetTableName(v string) *DeleteTableInput {
 11213  	s.TableName = &v
 11214  	return s
 11215  }
 11216  
 11217  // Represents the output of a DeleteTable operation.
 11218  type DeleteTableOutput struct {
 11219  	_ struct{} `type:"structure"`
 11220  
 11221  	// Represents the properties of a table.
 11222  	TableDescription *TableDescription `type:"structure"`
 11223  }
 11224  
 11225  // String returns the string representation.
 11226  //
 11227  // API parameter values that are decorated as "sensitive" in the API will not
 11228  // be included in the string output. The member name will be present, but the
 11229  // value will be replaced with "sensitive".
 11230  func (s DeleteTableOutput) String() string {
 11231  	return awsutil.Prettify(s)
 11232  }
 11233  
 11234  // GoString returns the string representation.
 11235  //
 11236  // API parameter values that are decorated as "sensitive" in the API will not
 11237  // be included in the string output. The member name will be present, but the
 11238  // value will be replaced with "sensitive".
 11239  func (s DeleteTableOutput) GoString() string {
 11240  	return s.String()
 11241  }
 11242  
 11243  // SetTableDescription sets the TableDescription field's value.
 11244  func (s *DeleteTableOutput) SetTableDescription(v *TableDescription) *DeleteTableOutput {
 11245  	s.TableDescription = v
 11246  	return s
 11247  }
 11248  
 11249  type DescribeBackupInput struct {
 11250  	_ struct{} `type:"structure"`
 11251  
 11252  	// The Amazon Resource Name (ARN) associated with the backup.
 11253  	//
 11254  	// BackupArn is a required field
 11255  	BackupArn *string `min:"37" type:"string" required:"true"`
 11256  }
 11257  
 11258  // String returns the string representation.
 11259  //
 11260  // API parameter values that are decorated as "sensitive" in the API will not
 11261  // be included in the string output. The member name will be present, but the
 11262  // value will be replaced with "sensitive".
 11263  func (s DescribeBackupInput) String() string {
 11264  	return awsutil.Prettify(s)
 11265  }
 11266  
 11267  // GoString returns the string representation.
 11268  //
 11269  // API parameter values that are decorated as "sensitive" in the API will not
 11270  // be included in the string output. The member name will be present, but the
 11271  // value will be replaced with "sensitive".
 11272  func (s DescribeBackupInput) GoString() string {
 11273  	return s.String()
 11274  }
 11275  
 11276  // Validate inspects the fields of the type to determine if they are valid.
 11277  func (s *DescribeBackupInput) Validate() error {
 11278  	invalidParams := request.ErrInvalidParams{Context: "DescribeBackupInput"}
 11279  	if s.BackupArn == nil {
 11280  		invalidParams.Add(request.NewErrParamRequired("BackupArn"))
 11281  	}
 11282  	if s.BackupArn != nil && len(*s.BackupArn) < 37 {
 11283  		invalidParams.Add(request.NewErrParamMinLen("BackupArn", 37))
 11284  	}
 11285  
 11286  	if invalidParams.Len() > 0 {
 11287  		return invalidParams
 11288  	}
 11289  	return nil
 11290  }
 11291  
 11292  // SetBackupArn sets the BackupArn field's value.
 11293  func (s *DescribeBackupInput) SetBackupArn(v string) *DescribeBackupInput {
 11294  	s.BackupArn = &v
 11295  	return s
 11296  }
 11297  
 11298  type DescribeBackupOutput struct {
 11299  	_ struct{} `type:"structure"`
 11300  
 11301  	// Contains the description of the backup created for the table.
 11302  	BackupDescription *BackupDescription `type:"structure"`
 11303  }
 11304  
 11305  // String returns the string representation.
 11306  //
 11307  // API parameter values that are decorated as "sensitive" in the API will not
 11308  // be included in the string output. The member name will be present, but the
 11309  // value will be replaced with "sensitive".
 11310  func (s DescribeBackupOutput) String() string {
 11311  	return awsutil.Prettify(s)
 11312  }
 11313  
 11314  // GoString returns the string representation.
 11315  //
 11316  // API parameter values that are decorated as "sensitive" in the API will not
 11317  // be included in the string output. The member name will be present, but the
 11318  // value will be replaced with "sensitive".
 11319  func (s DescribeBackupOutput) GoString() string {
 11320  	return s.String()
 11321  }
 11322  
 11323  // SetBackupDescription sets the BackupDescription field's value.
 11324  func (s *DescribeBackupOutput) SetBackupDescription(v *BackupDescription) *DescribeBackupOutput {
 11325  	s.BackupDescription = v
 11326  	return s
 11327  }
 11328  
 11329  type DescribeContinuousBackupsInput struct {
 11330  	_ struct{} `type:"structure"`
 11331  
 11332  	// Name of the table for which the customer wants to check the continuous backups
 11333  	// and point in time recovery settings.
 11334  	//
 11335  	// TableName is a required field
 11336  	TableName *string `min:"3" type:"string" required:"true"`
 11337  }
 11338  
 11339  // String returns the string representation.
 11340  //
 11341  // API parameter values that are decorated as "sensitive" in the API will not
 11342  // be included in the string output. The member name will be present, but the
 11343  // value will be replaced with "sensitive".
 11344  func (s DescribeContinuousBackupsInput) String() string {
 11345  	return awsutil.Prettify(s)
 11346  }
 11347  
 11348  // GoString returns the string representation.
 11349  //
 11350  // API parameter values that are decorated as "sensitive" in the API will not
 11351  // be included in the string output. The member name will be present, but the
 11352  // value will be replaced with "sensitive".
 11353  func (s DescribeContinuousBackupsInput) GoString() string {
 11354  	return s.String()
 11355  }
 11356  
 11357  // Validate inspects the fields of the type to determine if they are valid.
 11358  func (s *DescribeContinuousBackupsInput) Validate() error {
 11359  	invalidParams := request.ErrInvalidParams{Context: "DescribeContinuousBackupsInput"}
 11360  	if s.TableName == nil {
 11361  		invalidParams.Add(request.NewErrParamRequired("TableName"))
 11362  	}
 11363  	if s.TableName != nil && len(*s.TableName) < 3 {
 11364  		invalidParams.Add(request.NewErrParamMinLen("TableName", 3))
 11365  	}
 11366  
 11367  	if invalidParams.Len() > 0 {
 11368  		return invalidParams
 11369  	}
 11370  	return nil
 11371  }
 11372  
 11373  // SetTableName sets the TableName field's value.
 11374  func (s *DescribeContinuousBackupsInput) SetTableName(v string) *DescribeContinuousBackupsInput {
 11375  	s.TableName = &v
 11376  	return s
 11377  }
 11378  
 11379  type DescribeContinuousBackupsOutput struct {
 11380  	_ struct{} `type:"structure"`
 11381  
 11382  	// Represents the continuous backups and point in time recovery settings on
 11383  	// the table.
 11384  	ContinuousBackupsDescription *ContinuousBackupsDescription `type:"structure"`
 11385  }
 11386  
 11387  // String returns the string representation.
 11388  //
 11389  // API parameter values that are decorated as "sensitive" in the API will not
 11390  // be included in the string output. The member name will be present, but the
 11391  // value will be replaced with "sensitive".
 11392  func (s DescribeContinuousBackupsOutput) String() string {
 11393  	return awsutil.Prettify(s)
 11394  }
 11395  
 11396  // GoString returns the string representation.
 11397  //
 11398  // API parameter values that are decorated as "sensitive" in the API will not
 11399  // be included in the string output. The member name will be present, but the
 11400  // value will be replaced with "sensitive".
 11401  func (s DescribeContinuousBackupsOutput) GoString() string {
 11402  	return s.String()
 11403  }
 11404  
 11405  // SetContinuousBackupsDescription sets the ContinuousBackupsDescription field's value.
 11406  func (s *DescribeContinuousBackupsOutput) SetContinuousBackupsDescription(v *ContinuousBackupsDescription) *DescribeContinuousBackupsOutput {
 11407  	s.ContinuousBackupsDescription = v
 11408  	return s
 11409  }
 11410  
 11411  type DescribeContributorInsightsInput struct {
 11412  	_ struct{} `type:"structure"`
 11413  
 11414  	// The name of the global secondary index to describe, if applicable.
 11415  	IndexName *string `min:"3" type:"string"`
 11416  
 11417  	// The name of the table to describe.
 11418  	//
 11419  	// TableName is a required field
 11420  	TableName *string `min:"3" type:"string" required:"true"`
 11421  }
 11422  
 11423  // String returns the string representation.
 11424  //
 11425  // API parameter values that are decorated as "sensitive" in the API will not
 11426  // be included in the string output. The member name will be present, but the
 11427  // value will be replaced with "sensitive".
 11428  func (s DescribeContributorInsightsInput) String() string {
 11429  	return awsutil.Prettify(s)
 11430  }
 11431  
 11432  // GoString returns the string representation.
 11433  //
 11434  // API parameter values that are decorated as "sensitive" in the API will not
 11435  // be included in the string output. The member name will be present, but the
 11436  // value will be replaced with "sensitive".
 11437  func (s DescribeContributorInsightsInput) GoString() string {
 11438  	return s.String()
 11439  }
 11440  
 11441  // Validate inspects the fields of the type to determine if they are valid.
 11442  func (s *DescribeContributorInsightsInput) Validate() error {
 11443  	invalidParams := request.ErrInvalidParams{Context: "DescribeContributorInsightsInput"}
 11444  	if s.IndexName != nil && len(*s.IndexName) < 3 {
 11445  		invalidParams.Add(request.NewErrParamMinLen("IndexName", 3))
 11446  	}
 11447  	if s.TableName == nil {
 11448  		invalidParams.Add(request.NewErrParamRequired("TableName"))
 11449  	}
 11450  	if s.TableName != nil && len(*s.TableName) < 3 {
 11451  		invalidParams.Add(request.NewErrParamMinLen("TableName", 3))
 11452  	}
 11453  
 11454  	if invalidParams.Len() > 0 {
 11455  		return invalidParams
 11456  	}
 11457  	return nil
 11458  }
 11459  
 11460  // SetIndexName sets the IndexName field's value.
 11461  func (s *DescribeContributorInsightsInput) SetIndexName(v string) *DescribeContributorInsightsInput {
 11462  	s.IndexName = &v
 11463  	return s
 11464  }
 11465  
 11466  // SetTableName sets the TableName field's value.
 11467  func (s *DescribeContributorInsightsInput) SetTableName(v string) *DescribeContributorInsightsInput {
 11468  	s.TableName = &v
 11469  	return s
 11470  }
 11471  
 11472  type DescribeContributorInsightsOutput struct {
 11473  	_ struct{} `type:"structure"`
 11474  
 11475  	// List of names of the associated Alpine rules.
 11476  	ContributorInsightsRuleList []*string `type:"list"`
 11477  
 11478  	// Current Status contributor insights.
 11479  	ContributorInsightsStatus *string `type:"string" enum:"ContributorInsightsStatus"`
 11480  
 11481  	// Returns information about the last failure that encountered.
 11482  	//
 11483  	// The most common exceptions for a FAILED status are:
 11484  	//
 11485  	//    * LimitExceededException - Per-account Amazon CloudWatch Contributor Insights
 11486  	//    rule limit reached. Please disable Contributor Insights for other tables/indexes
 11487  	//    OR disable Contributor Insights rules before retrying.
 11488  	//
 11489  	//    * AccessDeniedException - Amazon CloudWatch Contributor Insights rules
 11490  	//    cannot be modified due to insufficient permissions.
 11491  	//
 11492  	//    * AccessDeniedException - Failed to create service-linked role for Contributor
 11493  	//    Insights due to insufficient permissions.
 11494  	//
 11495  	//    * InternalServerError - Failed to create Amazon CloudWatch Contributor
 11496  	//    Insights rules. Please retry request.
 11497  	FailureException *FailureException `type:"structure"`
 11498  
 11499  	// The name of the global secondary index being described.
 11500  	IndexName *string `min:"3" type:"string"`
 11501  
 11502  	// Timestamp of the last time the status was changed.
 11503  	LastUpdateDateTime *time.Time `type:"timestamp"`
 11504  
 11505  	// The name of the table being described.
 11506  	TableName *string `min:"3" type:"string"`
 11507  }
 11508  
 11509  // String returns the string representation.
 11510  //
 11511  // API parameter values that are decorated as "sensitive" in the API will not
 11512  // be included in the string output. The member name will be present, but the
 11513  // value will be replaced with "sensitive".
 11514  func (s DescribeContributorInsightsOutput) String() string {
 11515  	return awsutil.Prettify(s)
 11516  }
 11517  
 11518  // GoString returns the string representation.
 11519  //
 11520  // API parameter values that are decorated as "sensitive" in the API will not
 11521  // be included in the string output. The member name will be present, but the
 11522  // value will be replaced with "sensitive".
 11523  func (s DescribeContributorInsightsOutput) GoString() string {
 11524  	return s.String()
 11525  }
 11526  
 11527  // SetContributorInsightsRuleList sets the ContributorInsightsRuleList field's value.
 11528  func (s *DescribeContributorInsightsOutput) SetContributorInsightsRuleList(v []*string) *DescribeContributorInsightsOutput {
 11529  	s.ContributorInsightsRuleList = v
 11530  	return s
 11531  }
 11532  
 11533  // SetContributorInsightsStatus sets the ContributorInsightsStatus field's value.
 11534  func (s *DescribeContributorInsightsOutput) SetContributorInsightsStatus(v string) *DescribeContributorInsightsOutput {
 11535  	s.ContributorInsightsStatus = &v
 11536  	return s
 11537  }
 11538  
 11539  // SetFailureException sets the FailureException field's value.
 11540  func (s *DescribeContributorInsightsOutput) SetFailureException(v *FailureException) *DescribeContributorInsightsOutput {
 11541  	s.FailureException = v
 11542  	return s
 11543  }
 11544  
 11545  // SetIndexName sets the IndexName field's value.
 11546  func (s *DescribeContributorInsightsOutput) SetIndexName(v string) *DescribeContributorInsightsOutput {
 11547  	s.IndexName = &v
 11548  	return s
 11549  }
 11550  
 11551  // SetLastUpdateDateTime sets the LastUpdateDateTime field's value.
 11552  func (s *DescribeContributorInsightsOutput) SetLastUpdateDateTime(v time.Time) *DescribeContributorInsightsOutput {
 11553  	s.LastUpdateDateTime = &v
 11554  	return s
 11555  }
 11556  
 11557  // SetTableName sets the TableName field's value.
 11558  func (s *DescribeContributorInsightsOutput) SetTableName(v string) *DescribeContributorInsightsOutput {
 11559  	s.TableName = &v
 11560  	return s
 11561  }
 11562  
 11563  type DescribeEndpointsInput struct {
 11564  	_ struct{} `type:"structure"`
 11565  }
 11566  
 11567  // String returns the string representation.
 11568  //
 11569  // API parameter values that are decorated as "sensitive" in the API will not
 11570  // be included in the string output. The member name will be present, but the
 11571  // value will be replaced with "sensitive".
 11572  func (s DescribeEndpointsInput) String() string {
 11573  	return awsutil.Prettify(s)
 11574  }
 11575  
 11576  // GoString returns the string representation.
 11577  //
 11578  // API parameter values that are decorated as "sensitive" in the API will not
 11579  // be included in the string output. The member name will be present, but the
 11580  // value will be replaced with "sensitive".
 11581  func (s DescribeEndpointsInput) GoString() string {
 11582  	return s.String()
 11583  }
 11584  
 11585  type DescribeEndpointsOutput struct {
 11586  	_ struct{} `type:"structure"`
 11587  
 11588  	// List of endpoints.
 11589  	//
 11590  	// Endpoints is a required field
 11591  	Endpoints []*Endpoint `type:"list" required:"true"`
 11592  }
 11593  
 11594  // String returns the string representation.
 11595  //
 11596  // API parameter values that are decorated as "sensitive" in the API will not
 11597  // be included in the string output. The member name will be present, but the
 11598  // value will be replaced with "sensitive".
 11599  func (s DescribeEndpointsOutput) String() string {
 11600  	return awsutil.Prettify(s)
 11601  }
 11602  
 11603  // GoString returns the string representation.
 11604  //
 11605  // API parameter values that are decorated as "sensitive" in the API will not
 11606  // be included in the string output. The member name will be present, but the
 11607  // value will be replaced with "sensitive".
 11608  func (s DescribeEndpointsOutput) GoString() string {
 11609  	return s.String()
 11610  }
 11611  
 11612  // SetEndpoints sets the Endpoints field's value.
 11613  func (s *DescribeEndpointsOutput) SetEndpoints(v []*Endpoint) *DescribeEndpointsOutput {
 11614  	s.Endpoints = v
 11615  	return s
 11616  }
 11617  
 11618  type DescribeExportInput struct {
 11619  	_ struct{} `type:"structure"`
 11620  
 11621  	// The Amazon Resource Name (ARN) associated with the export.
 11622  	//
 11623  	// ExportArn is a required field
 11624  	ExportArn *string `min:"37" type:"string" required:"true"`
 11625  }
 11626  
 11627  // String returns the string representation.
 11628  //
 11629  // API parameter values that are decorated as "sensitive" in the API will not
 11630  // be included in the string output. The member name will be present, but the
 11631  // value will be replaced with "sensitive".
 11632  func (s DescribeExportInput) String() string {
 11633  	return awsutil.Prettify(s)
 11634  }
 11635  
 11636  // GoString returns the string representation.
 11637  //
 11638  // API parameter values that are decorated as "sensitive" in the API will not
 11639  // be included in the string output. The member name will be present, but the
 11640  // value will be replaced with "sensitive".
 11641  func (s DescribeExportInput) GoString() string {
 11642  	return s.String()
 11643  }
 11644  
 11645  // Validate inspects the fields of the type to determine if they are valid.
 11646  func (s *DescribeExportInput) Validate() error {
 11647  	invalidParams := request.ErrInvalidParams{Context: "DescribeExportInput"}
 11648  	if s.ExportArn == nil {
 11649  		invalidParams.Add(request.NewErrParamRequired("ExportArn"))
 11650  	}
 11651  	if s.ExportArn != nil && len(*s.ExportArn) < 37 {
 11652  		invalidParams.Add(request.NewErrParamMinLen("ExportArn", 37))
 11653  	}
 11654  
 11655  	if invalidParams.Len() > 0 {
 11656  		return invalidParams
 11657  	}
 11658  	return nil
 11659  }
 11660  
 11661  // SetExportArn sets the ExportArn field's value.
 11662  func (s *DescribeExportInput) SetExportArn(v string) *DescribeExportInput {
 11663  	s.ExportArn = &v
 11664  	return s
 11665  }
 11666  
 11667  type DescribeExportOutput struct {
 11668  	_ struct{} `type:"structure"`
 11669  
 11670  	// Represents the properties of the export.
 11671  	ExportDescription *ExportDescription `type:"structure"`
 11672  }
 11673  
 11674  // String returns the string representation.
 11675  //
 11676  // API parameter values that are decorated as "sensitive" in the API will not
 11677  // be included in the string output. The member name will be present, but the
 11678  // value will be replaced with "sensitive".
 11679  func (s DescribeExportOutput) String() string {
 11680  	return awsutil.Prettify(s)
 11681  }
 11682  
 11683  // GoString returns the string representation.
 11684  //
 11685  // API parameter values that are decorated as "sensitive" in the API will not
 11686  // be included in the string output. The member name will be present, but the
 11687  // value will be replaced with "sensitive".
 11688  func (s DescribeExportOutput) GoString() string {
 11689  	return s.String()
 11690  }
 11691  
 11692  // SetExportDescription sets the ExportDescription field's value.
 11693  func (s *DescribeExportOutput) SetExportDescription(v *ExportDescription) *DescribeExportOutput {
 11694  	s.ExportDescription = v
 11695  	return s
 11696  }
 11697  
 11698  type DescribeGlobalTableInput struct {
 11699  	_ struct{} `type:"structure"`
 11700  
 11701  	// The name of the global table.
 11702  	//
 11703  	// GlobalTableName is a required field
 11704  	GlobalTableName *string `min:"3" type:"string" required:"true"`
 11705  }
 11706  
 11707  // String returns the string representation.
 11708  //
 11709  // API parameter values that are decorated as "sensitive" in the API will not
 11710  // be included in the string output. The member name will be present, but the
 11711  // value will be replaced with "sensitive".
 11712  func (s DescribeGlobalTableInput) String() string {
 11713  	return awsutil.Prettify(s)
 11714  }
 11715  
 11716  // GoString returns the string representation.
 11717  //
 11718  // API parameter values that are decorated as "sensitive" in the API will not
 11719  // be included in the string output. The member name will be present, but the
 11720  // value will be replaced with "sensitive".
 11721  func (s DescribeGlobalTableInput) GoString() string {
 11722  	return s.String()
 11723  }
 11724  
 11725  // Validate inspects the fields of the type to determine if they are valid.
 11726  func (s *DescribeGlobalTableInput) Validate() error {
 11727  	invalidParams := request.ErrInvalidParams{Context: "DescribeGlobalTableInput"}
 11728  	if s.GlobalTableName == nil {
 11729  		invalidParams.Add(request.NewErrParamRequired("GlobalTableName"))
 11730  	}
 11731  	if s.GlobalTableName != nil && len(*s.GlobalTableName) < 3 {
 11732  		invalidParams.Add(request.NewErrParamMinLen("GlobalTableName", 3))
 11733  	}
 11734  
 11735  	if invalidParams.Len() > 0 {
 11736  		return invalidParams
 11737  	}
 11738  	return nil
 11739  }
 11740  
 11741  // SetGlobalTableName sets the GlobalTableName field's value.
 11742  func (s *DescribeGlobalTableInput) SetGlobalTableName(v string) *DescribeGlobalTableInput {
 11743  	s.GlobalTableName = &v
 11744  	return s
 11745  }
 11746  
 11747  type DescribeGlobalTableOutput struct {
 11748  	_ struct{} `type:"structure"`
 11749  
 11750  	// Contains the details of the global table.
 11751  	GlobalTableDescription *GlobalTableDescription `type:"structure"`
 11752  }
 11753  
 11754  // String returns the string representation.
 11755  //
 11756  // API parameter values that are decorated as "sensitive" in the API will not
 11757  // be included in the string output. The member name will be present, but the
 11758  // value will be replaced with "sensitive".
 11759  func (s DescribeGlobalTableOutput) String() string {
 11760  	return awsutil.Prettify(s)
 11761  }
 11762  
 11763  // GoString returns the string representation.
 11764  //
 11765  // API parameter values that are decorated as "sensitive" in the API will not
 11766  // be included in the string output. The member name will be present, but the
 11767  // value will be replaced with "sensitive".
 11768  func (s DescribeGlobalTableOutput) GoString() string {
 11769  	return s.String()
 11770  }
 11771  
 11772  // SetGlobalTableDescription sets the GlobalTableDescription field's value.
 11773  func (s *DescribeGlobalTableOutput) SetGlobalTableDescription(v *GlobalTableDescription) *DescribeGlobalTableOutput {
 11774  	s.GlobalTableDescription = v
 11775  	return s
 11776  }
 11777  
 11778  type DescribeGlobalTableSettingsInput struct {
 11779  	_ struct{} `type:"structure"`
 11780  
 11781  	// The name of the global table to describe.
 11782  	//
 11783  	// GlobalTableName is a required field
 11784  	GlobalTableName *string `min:"3" type:"string" required:"true"`
 11785  }
 11786  
 11787  // String returns the string representation.
 11788  //
 11789  // API parameter values that are decorated as "sensitive" in the API will not
 11790  // be included in the string output. The member name will be present, but the
 11791  // value will be replaced with "sensitive".
 11792  func (s DescribeGlobalTableSettingsInput) String() string {
 11793  	return awsutil.Prettify(s)
 11794  }
 11795  
 11796  // GoString returns the string representation.
 11797  //
 11798  // API parameter values that are decorated as "sensitive" in the API will not
 11799  // be included in the string output. The member name will be present, but the
 11800  // value will be replaced with "sensitive".
 11801  func (s DescribeGlobalTableSettingsInput) GoString() string {
 11802  	return s.String()
 11803  }
 11804  
 11805  // Validate inspects the fields of the type to determine if they are valid.
 11806  func (s *DescribeGlobalTableSettingsInput) Validate() error {
 11807  	invalidParams := request.ErrInvalidParams{Context: "DescribeGlobalTableSettingsInput"}
 11808  	if s.GlobalTableName == nil {
 11809  		invalidParams.Add(request.NewErrParamRequired("GlobalTableName"))
 11810  	}
 11811  	if s.GlobalTableName != nil && len(*s.GlobalTableName) < 3 {
 11812  		invalidParams.Add(request.NewErrParamMinLen("GlobalTableName", 3))
 11813  	}
 11814  
 11815  	if invalidParams.Len() > 0 {
 11816  		return invalidParams
 11817  	}
 11818  	return nil
 11819  }
 11820  
 11821  // SetGlobalTableName sets the GlobalTableName field's value.
 11822  func (s *DescribeGlobalTableSettingsInput) SetGlobalTableName(v string) *DescribeGlobalTableSettingsInput {
 11823  	s.GlobalTableName = &v
 11824  	return s
 11825  }
 11826  
 11827  type DescribeGlobalTableSettingsOutput struct {
 11828  	_ struct{} `type:"structure"`
 11829  
 11830  	// The name of the global table.
 11831  	GlobalTableName *string `min:"3" type:"string"`
 11832  
 11833  	// The Region-specific settings for the global table.
 11834  	ReplicaSettings []*ReplicaSettingsDescription `type:"list"`
 11835  }
 11836  
 11837  // String returns the string representation.
 11838  //
 11839  // API parameter values that are decorated as "sensitive" in the API will not
 11840  // be included in the string output. The member name will be present, but the
 11841  // value will be replaced with "sensitive".
 11842  func (s DescribeGlobalTableSettingsOutput) String() string {
 11843  	return awsutil.Prettify(s)
 11844  }
 11845  
 11846  // GoString returns the string representation.
 11847  //
 11848  // API parameter values that are decorated as "sensitive" in the API will not
 11849  // be included in the string output. The member name will be present, but the
 11850  // value will be replaced with "sensitive".
 11851  func (s DescribeGlobalTableSettingsOutput) GoString() string {
 11852  	return s.String()
 11853  }
 11854  
 11855  // SetGlobalTableName sets the GlobalTableName field's value.
 11856  func (s *DescribeGlobalTableSettingsOutput) SetGlobalTableName(v string) *DescribeGlobalTableSettingsOutput {
 11857  	s.GlobalTableName = &v
 11858  	return s
 11859  }
 11860  
 11861  // SetReplicaSettings sets the ReplicaSettings field's value.
 11862  func (s *DescribeGlobalTableSettingsOutput) SetReplicaSettings(v []*ReplicaSettingsDescription) *DescribeGlobalTableSettingsOutput {
 11863  	s.ReplicaSettings = v
 11864  	return s
 11865  }
 11866  
 11867  type DescribeKinesisStreamingDestinationInput struct {
 11868  	_ struct{} `type:"structure"`
 11869  
 11870  	// The name of the table being described.
 11871  	//
 11872  	// TableName is a required field
 11873  	TableName *string `min:"3" type:"string" required:"true"`
 11874  }
 11875  
 11876  // String returns the string representation.
 11877  //
 11878  // API parameter values that are decorated as "sensitive" in the API will not
 11879  // be included in the string output. The member name will be present, but the
 11880  // value will be replaced with "sensitive".
 11881  func (s DescribeKinesisStreamingDestinationInput) String() string {
 11882  	return awsutil.Prettify(s)
 11883  }
 11884  
 11885  // GoString returns the string representation.
 11886  //
 11887  // API parameter values that are decorated as "sensitive" in the API will not
 11888  // be included in the string output. The member name will be present, but the
 11889  // value will be replaced with "sensitive".
 11890  func (s DescribeKinesisStreamingDestinationInput) GoString() string {
 11891  	return s.String()
 11892  }
 11893  
 11894  // Validate inspects the fields of the type to determine if they are valid.
 11895  func (s *DescribeKinesisStreamingDestinationInput) Validate() error {
 11896  	invalidParams := request.ErrInvalidParams{Context: "DescribeKinesisStreamingDestinationInput"}
 11897  	if s.TableName == nil {
 11898  		invalidParams.Add(request.NewErrParamRequired("TableName"))
 11899  	}
 11900  	if s.TableName != nil && len(*s.TableName) < 3 {
 11901  		invalidParams.Add(request.NewErrParamMinLen("TableName", 3))
 11902  	}
 11903  
 11904  	if invalidParams.Len() > 0 {
 11905  		return invalidParams
 11906  	}
 11907  	return nil
 11908  }
 11909  
 11910  // SetTableName sets the TableName field's value.
 11911  func (s *DescribeKinesisStreamingDestinationInput) SetTableName(v string) *DescribeKinesisStreamingDestinationInput {
 11912  	s.TableName = &v
 11913  	return s
 11914  }
 11915  
 11916  type DescribeKinesisStreamingDestinationOutput struct {
 11917  	_ struct{} `type:"structure"`
 11918  
 11919  	// The list of replica structures for the table being described.
 11920  	KinesisDataStreamDestinations []*KinesisDataStreamDestination `type:"list"`
 11921  
 11922  	// The name of the table being described.
 11923  	TableName *string `min:"3" type:"string"`
 11924  }
 11925  
 11926  // String returns the string representation.
 11927  //
 11928  // API parameter values that are decorated as "sensitive" in the API will not
 11929  // be included in the string output. The member name will be present, but the
 11930  // value will be replaced with "sensitive".
 11931  func (s DescribeKinesisStreamingDestinationOutput) String() string {
 11932  	return awsutil.Prettify(s)
 11933  }
 11934  
 11935  // GoString returns the string representation.
 11936  //
 11937  // API parameter values that are decorated as "sensitive" in the API will not
 11938  // be included in the string output. The member name will be present, but the
 11939  // value will be replaced with "sensitive".
 11940  func (s DescribeKinesisStreamingDestinationOutput) GoString() string {
 11941  	return s.String()
 11942  }
 11943  
 11944  // SetKinesisDataStreamDestinations sets the KinesisDataStreamDestinations field's value.
 11945  func (s *DescribeKinesisStreamingDestinationOutput) SetKinesisDataStreamDestinations(v []*KinesisDataStreamDestination) *DescribeKinesisStreamingDestinationOutput {
 11946  	s.KinesisDataStreamDestinations = v
 11947  	return s
 11948  }
 11949  
 11950  // SetTableName sets the TableName field's value.
 11951  func (s *DescribeKinesisStreamingDestinationOutput) SetTableName(v string) *DescribeKinesisStreamingDestinationOutput {
 11952  	s.TableName = &v
 11953  	return s
 11954  }
 11955  
 11956  // Represents the input of a DescribeLimits operation. Has no content.
 11957  type DescribeLimitsInput struct {
 11958  	_ struct{} `type:"structure"`
 11959  }
 11960  
 11961  // String returns the string representation.
 11962  //
 11963  // API parameter values that are decorated as "sensitive" in the API will not
 11964  // be included in the string output. The member name will be present, but the
 11965  // value will be replaced with "sensitive".
 11966  func (s DescribeLimitsInput) String() string {
 11967  	return awsutil.Prettify(s)
 11968  }
 11969  
 11970  // GoString returns the string representation.
 11971  //
 11972  // API parameter values that are decorated as "sensitive" in the API will not
 11973  // be included in the string output. The member name will be present, but the
 11974  // value will be replaced with "sensitive".
 11975  func (s DescribeLimitsInput) GoString() string {
 11976  	return s.String()
 11977  }
 11978  
 11979  // Represents the output of a DescribeLimits operation.
 11980  type DescribeLimitsOutput struct {
 11981  	_ struct{} `type:"structure"`
 11982  
 11983  	// The maximum total read capacity units that your account allows you to provision
 11984  	// across all of your tables in this Region.
 11985  	AccountMaxReadCapacityUnits *int64 `min:"1" type:"long"`
 11986  
 11987  	// The maximum total write capacity units that your account allows you to provision
 11988  	// across all of your tables in this Region.
 11989  	AccountMaxWriteCapacityUnits *int64 `min:"1" type:"long"`
 11990  
 11991  	// The maximum read capacity units that your account allows you to provision
 11992  	// for a new table that you are creating in this Region, including the read
 11993  	// capacity units provisioned for its global secondary indexes (GSIs).
 11994  	TableMaxReadCapacityUnits *int64 `min:"1" type:"long"`
 11995  
 11996  	// The maximum write capacity units that your account allows you to provision
 11997  	// for a new table that you are creating in this Region, including the write
 11998  	// capacity units provisioned for its global secondary indexes (GSIs).
 11999  	TableMaxWriteCapacityUnits *int64 `min:"1" type:"long"`
 12000  }
 12001  
 12002  // String returns the string representation.
 12003  //
 12004  // API parameter values that are decorated as "sensitive" in the API will not
 12005  // be included in the string output. The member name will be present, but the
 12006  // value will be replaced with "sensitive".
 12007  func (s DescribeLimitsOutput) String() string {
 12008  	return awsutil.Prettify(s)
 12009  }
 12010  
 12011  // GoString returns the string representation.
 12012  //
 12013  // API parameter values that are decorated as "sensitive" in the API will not
 12014  // be included in the string output. The member name will be present, but the
 12015  // value will be replaced with "sensitive".
 12016  func (s DescribeLimitsOutput) GoString() string {
 12017  	return s.String()
 12018  }
 12019  
 12020  // SetAccountMaxReadCapacityUnits sets the AccountMaxReadCapacityUnits field's value.
 12021  func (s *DescribeLimitsOutput) SetAccountMaxReadCapacityUnits(v int64) *DescribeLimitsOutput {
 12022  	s.AccountMaxReadCapacityUnits = &v
 12023  	return s
 12024  }
 12025  
 12026  // SetAccountMaxWriteCapacityUnits sets the AccountMaxWriteCapacityUnits field's value.
 12027  func (s *DescribeLimitsOutput) SetAccountMaxWriteCapacityUnits(v int64) *DescribeLimitsOutput {
 12028  	s.AccountMaxWriteCapacityUnits = &v
 12029  	return s
 12030  }
 12031  
 12032  // SetTableMaxReadCapacityUnits sets the TableMaxReadCapacityUnits field's value.
 12033  func (s *DescribeLimitsOutput) SetTableMaxReadCapacityUnits(v int64) *DescribeLimitsOutput {
 12034  	s.TableMaxReadCapacityUnits = &v
 12035  	return s
 12036  }
 12037  
 12038  // SetTableMaxWriteCapacityUnits sets the TableMaxWriteCapacityUnits field's value.
 12039  func (s *DescribeLimitsOutput) SetTableMaxWriteCapacityUnits(v int64) *DescribeLimitsOutput {
 12040  	s.TableMaxWriteCapacityUnits = &v
 12041  	return s
 12042  }
 12043  
 12044  // Represents the input of a DescribeTable operation.
 12045  type DescribeTableInput struct {
 12046  	_ struct{} `type:"structure"`
 12047  
 12048  	// The name of the table to describe.
 12049  	//
 12050  	// TableName is a required field
 12051  	TableName *string `min:"3" type:"string" required:"true"`
 12052  }
 12053  
 12054  // String returns the string representation.
 12055  //
 12056  // API parameter values that are decorated as "sensitive" in the API will not
 12057  // be included in the string output. The member name will be present, but the
 12058  // value will be replaced with "sensitive".
 12059  func (s DescribeTableInput) String() string {
 12060  	return awsutil.Prettify(s)
 12061  }
 12062  
 12063  // GoString returns the string representation.
 12064  //
 12065  // API parameter values that are decorated as "sensitive" in the API will not
 12066  // be included in the string output. The member name will be present, but the
 12067  // value will be replaced with "sensitive".
 12068  func (s DescribeTableInput) GoString() string {
 12069  	return s.String()
 12070  }
 12071  
 12072  // Validate inspects the fields of the type to determine if they are valid.
 12073  func (s *DescribeTableInput) Validate() error {
 12074  	invalidParams := request.ErrInvalidParams{Context: "DescribeTableInput"}
 12075  	if s.TableName == nil {
 12076  		invalidParams.Add(request.NewErrParamRequired("TableName"))
 12077  	}
 12078  	if s.TableName != nil && len(*s.TableName) < 3 {
 12079  		invalidParams.Add(request.NewErrParamMinLen("TableName", 3))
 12080  	}
 12081  
 12082  	if invalidParams.Len() > 0 {
 12083  		return invalidParams
 12084  	}
 12085  	return nil
 12086  }
 12087  
 12088  // SetTableName sets the TableName field's value.
 12089  func (s *DescribeTableInput) SetTableName(v string) *DescribeTableInput {
 12090  	s.TableName = &v
 12091  	return s
 12092  }
 12093  
 12094  // Represents the output of a DescribeTable operation.
 12095  type DescribeTableOutput struct {
 12096  	_ struct{} `type:"structure"`
 12097  
 12098  	// The properties of the table.
 12099  	Table *TableDescription `type:"structure"`
 12100  }
 12101  
 12102  // String returns the string representation.
 12103  //
 12104  // API parameter values that are decorated as "sensitive" in the API will not
 12105  // be included in the string output. The member name will be present, but the
 12106  // value will be replaced with "sensitive".
 12107  func (s DescribeTableOutput) String() string {
 12108  	return awsutil.Prettify(s)
 12109  }
 12110  
 12111  // GoString returns the string representation.
 12112  //
 12113  // API parameter values that are decorated as "sensitive" in the API will not
 12114  // be included in the string output. The member name will be present, but the
 12115  // value will be replaced with "sensitive".
 12116  func (s DescribeTableOutput) GoString() string {
 12117  	return s.String()
 12118  }
 12119  
 12120  // SetTable sets the Table field's value.
 12121  func (s *DescribeTableOutput) SetTable(v *TableDescription) *DescribeTableOutput {
 12122  	s.Table = v
 12123  	return s
 12124  }
 12125  
 12126  type DescribeTableReplicaAutoScalingInput struct {
 12127  	_ struct{} `type:"structure"`
 12128  
 12129  	// The name of the table.
 12130  	//
 12131  	// TableName is a required field
 12132  	TableName *string `min:"3" type:"string" required:"true"`
 12133  }
 12134  
 12135  // String returns the string representation.
 12136  //
 12137  // API parameter values that are decorated as "sensitive" in the API will not
 12138  // be included in the string output. The member name will be present, but the
 12139  // value will be replaced with "sensitive".
 12140  func (s DescribeTableReplicaAutoScalingInput) String() string {
 12141  	return awsutil.Prettify(s)
 12142  }
 12143  
 12144  // GoString returns the string representation.
 12145  //
 12146  // API parameter values that are decorated as "sensitive" in the API will not
 12147  // be included in the string output. The member name will be present, but the
 12148  // value will be replaced with "sensitive".
 12149  func (s DescribeTableReplicaAutoScalingInput) GoString() string {
 12150  	return s.String()
 12151  }
 12152  
 12153  // Validate inspects the fields of the type to determine if they are valid.
 12154  func (s *DescribeTableReplicaAutoScalingInput) Validate() error {
 12155  	invalidParams := request.ErrInvalidParams{Context: "DescribeTableReplicaAutoScalingInput"}
 12156  	if s.TableName == nil {
 12157  		invalidParams.Add(request.NewErrParamRequired("TableName"))
 12158  	}
 12159  	if s.TableName != nil && len(*s.TableName) < 3 {
 12160  		invalidParams.Add(request.NewErrParamMinLen("TableName", 3))
 12161  	}
 12162  
 12163  	if invalidParams.Len() > 0 {
 12164  		return invalidParams
 12165  	}
 12166  	return nil
 12167  }
 12168  
 12169  // SetTableName sets the TableName field's value.
 12170  func (s *DescribeTableReplicaAutoScalingInput) SetTableName(v string) *DescribeTableReplicaAutoScalingInput {
 12171  	s.TableName = &v
 12172  	return s
 12173  }
 12174  
 12175  type DescribeTableReplicaAutoScalingOutput struct {
 12176  	_ struct{} `type:"structure"`
 12177  
 12178  	// Represents the auto scaling properties of the table.
 12179  	TableAutoScalingDescription *TableAutoScalingDescription `type:"structure"`
 12180  }
 12181  
 12182  // String returns the string representation.
 12183  //
 12184  // API parameter values that are decorated as "sensitive" in the API will not
 12185  // be included in the string output. The member name will be present, but the
 12186  // value will be replaced with "sensitive".
 12187  func (s DescribeTableReplicaAutoScalingOutput) String() string {
 12188  	return awsutil.Prettify(s)
 12189  }
 12190  
 12191  // GoString returns the string representation.
 12192  //
 12193  // API parameter values that are decorated as "sensitive" in the API will not
 12194  // be included in the string output. The member name will be present, but the
 12195  // value will be replaced with "sensitive".
 12196  func (s DescribeTableReplicaAutoScalingOutput) GoString() string {
 12197  	return s.String()
 12198  }
 12199  
 12200  // SetTableAutoScalingDescription sets the TableAutoScalingDescription field's value.
 12201  func (s *DescribeTableReplicaAutoScalingOutput) SetTableAutoScalingDescription(v *TableAutoScalingDescription) *DescribeTableReplicaAutoScalingOutput {
 12202  	s.TableAutoScalingDescription = v
 12203  	return s
 12204  }
 12205  
 12206  type DescribeTimeToLiveInput struct {
 12207  	_ struct{} `type:"structure"`
 12208  
 12209  	// The name of the table to be described.
 12210  	//
 12211  	// TableName is a required field
 12212  	TableName *string `min:"3" type:"string" required:"true"`
 12213  }
 12214  
 12215  // String returns the string representation.
 12216  //
 12217  // API parameter values that are decorated as "sensitive" in the API will not
 12218  // be included in the string output. The member name will be present, but the
 12219  // value will be replaced with "sensitive".
 12220  func (s DescribeTimeToLiveInput) String() string {
 12221  	return awsutil.Prettify(s)
 12222  }
 12223  
 12224  // GoString returns the string representation.
 12225  //
 12226  // API parameter values that are decorated as "sensitive" in the API will not
 12227  // be included in the string output. The member name will be present, but the
 12228  // value will be replaced with "sensitive".
 12229  func (s DescribeTimeToLiveInput) GoString() string {
 12230  	return s.String()
 12231  }
 12232  
 12233  // Validate inspects the fields of the type to determine if they are valid.
 12234  func (s *DescribeTimeToLiveInput) Validate() error {
 12235  	invalidParams := request.ErrInvalidParams{Context: "DescribeTimeToLiveInput"}
 12236  	if s.TableName == nil {
 12237  		invalidParams.Add(request.NewErrParamRequired("TableName"))
 12238  	}
 12239  	if s.TableName != nil && len(*s.TableName) < 3 {
 12240  		invalidParams.Add(request.NewErrParamMinLen("TableName", 3))
 12241  	}
 12242  
 12243  	if invalidParams.Len() > 0 {
 12244  		return invalidParams
 12245  	}
 12246  	return nil
 12247  }
 12248  
 12249  // SetTableName sets the TableName field's value.
 12250  func (s *DescribeTimeToLiveInput) SetTableName(v string) *DescribeTimeToLiveInput {
 12251  	s.TableName = &v
 12252  	return s
 12253  }
 12254  
 12255  type DescribeTimeToLiveOutput struct {
 12256  	_ struct{} `type:"structure"`
 12257  
 12258  	// The description of the Time to Live (TTL) status on the specified table.
 12259  	TimeToLiveDescription *TimeToLiveDescription `type:"structure"`
 12260  }
 12261  
 12262  // String returns the string representation.
 12263  //
 12264  // API parameter values that are decorated as "sensitive" in the API will not
 12265  // be included in the string output. The member name will be present, but the
 12266  // value will be replaced with "sensitive".
 12267  func (s DescribeTimeToLiveOutput) String() string {
 12268  	return awsutil.Prettify(s)
 12269  }
 12270  
 12271  // GoString returns the string representation.
 12272  //
 12273  // API parameter values that are decorated as "sensitive" in the API will not
 12274  // be included in the string output. The member name will be present, but the
 12275  // value will be replaced with "sensitive".
 12276  func (s DescribeTimeToLiveOutput) GoString() string {
 12277  	return s.String()
 12278  }
 12279  
 12280  // SetTimeToLiveDescription sets the TimeToLiveDescription field's value.
 12281  func (s *DescribeTimeToLiveOutput) SetTimeToLiveDescription(v *TimeToLiveDescription) *DescribeTimeToLiveOutput {
 12282  	s.TimeToLiveDescription = v
 12283  	return s
 12284  }
 12285  
 12286  type DisableKinesisStreamingDestinationInput struct {
 12287  	_ struct{} `type:"structure"`
 12288  
 12289  	// The ARN for a Kinesis data stream.
 12290  	//
 12291  	// StreamArn is a required field
 12292  	StreamArn *string `min:"37" type:"string" required:"true"`
 12293  
 12294  	// The name of the DynamoDB table.
 12295  	//
 12296  	// TableName is a required field
 12297  	TableName *string `min:"3" type:"string" required:"true"`
 12298  }
 12299  
 12300  // String returns the string representation.
 12301  //
 12302  // API parameter values that are decorated as "sensitive" in the API will not
 12303  // be included in the string output. The member name will be present, but the
 12304  // value will be replaced with "sensitive".
 12305  func (s DisableKinesisStreamingDestinationInput) String() string {
 12306  	return awsutil.Prettify(s)
 12307  }
 12308  
 12309  // GoString returns the string representation.
 12310  //
 12311  // API parameter values that are decorated as "sensitive" in the API will not
 12312  // be included in the string output. The member name will be present, but the
 12313  // value will be replaced with "sensitive".
 12314  func (s DisableKinesisStreamingDestinationInput) GoString() string {
 12315  	return s.String()
 12316  }
 12317  
 12318  // Validate inspects the fields of the type to determine if they are valid.
 12319  func (s *DisableKinesisStreamingDestinationInput) Validate() error {
 12320  	invalidParams := request.ErrInvalidParams{Context: "DisableKinesisStreamingDestinationInput"}
 12321  	if s.StreamArn == nil {
 12322  		invalidParams.Add(request.NewErrParamRequired("StreamArn"))
 12323  	}
 12324  	if s.StreamArn != nil && len(*s.StreamArn) < 37 {
 12325  		invalidParams.Add(request.NewErrParamMinLen("StreamArn", 37))
 12326  	}
 12327  	if s.TableName == nil {
 12328  		invalidParams.Add(request.NewErrParamRequired("TableName"))
 12329  	}
 12330  	if s.TableName != nil && len(*s.TableName) < 3 {
 12331  		invalidParams.Add(request.NewErrParamMinLen("TableName", 3))
 12332  	}
 12333  
 12334  	if invalidParams.Len() > 0 {
 12335  		return invalidParams
 12336  	}
 12337  	return nil
 12338  }
 12339  
 12340  // SetStreamArn sets the StreamArn field's value.
 12341  func (s *DisableKinesisStreamingDestinationInput) SetStreamArn(v string) *DisableKinesisStreamingDestinationInput {
 12342  	s.StreamArn = &v
 12343  	return s
 12344  }
 12345  
 12346  // SetTableName sets the TableName field's value.
 12347  func (s *DisableKinesisStreamingDestinationInput) SetTableName(v string) *DisableKinesisStreamingDestinationInput {
 12348  	s.TableName = &v
 12349  	return s
 12350  }
 12351  
 12352  type DisableKinesisStreamingDestinationOutput struct {
 12353  	_ struct{} `type:"structure"`
 12354  
 12355  	// The current status of the replication.
 12356  	DestinationStatus *string `type:"string" enum:"DestinationStatus"`
 12357  
 12358  	// The ARN for the specific Kinesis data stream.
 12359  	StreamArn *string `min:"37" type:"string"`
 12360  
 12361  	// The name of the table being modified.
 12362  	TableName *string `min:"3" type:"string"`
 12363  }
 12364  
 12365  // String returns the string representation.
 12366  //
 12367  // API parameter values that are decorated as "sensitive" in the API will not
 12368  // be included in the string output. The member name will be present, but the
 12369  // value will be replaced with "sensitive".
 12370  func (s DisableKinesisStreamingDestinationOutput) String() string {
 12371  	return awsutil.Prettify(s)
 12372  }
 12373  
 12374  // GoString returns the string representation.
 12375  //
 12376  // API parameter values that are decorated as "sensitive" in the API will not
 12377  // be included in the string output. The member name will be present, but the
 12378  // value will be replaced with "sensitive".
 12379  func (s DisableKinesisStreamingDestinationOutput) GoString() string {
 12380  	return s.String()
 12381  }
 12382  
 12383  // SetDestinationStatus sets the DestinationStatus field's value.
 12384  func (s *DisableKinesisStreamingDestinationOutput) SetDestinationStatus(v string) *DisableKinesisStreamingDestinationOutput {
 12385  	s.DestinationStatus = &v
 12386  	return s
 12387  }
 12388  
 12389  // SetStreamArn sets the StreamArn field's value.
 12390  func (s *DisableKinesisStreamingDestinationOutput) SetStreamArn(v string) *DisableKinesisStreamingDestinationOutput {
 12391  	s.StreamArn = &v
 12392  	return s
 12393  }
 12394  
 12395  // SetTableName sets the TableName field's value.
 12396  func (s *DisableKinesisStreamingDestinationOutput) SetTableName(v string) *DisableKinesisStreamingDestinationOutput {
 12397  	s.TableName = &v
 12398  	return s
 12399  }
 12400  
 12401  // There was an attempt to insert an item with the same primary key as an item
 12402  // that already exists in the DynamoDB table.
 12403  type DuplicateItemException struct {
 12404  	_            struct{}                  `type:"structure"`
 12405  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 12406  
 12407  	Message_ *string `locationName:"message" type:"string"`
 12408  }
 12409  
 12410  // String returns the string representation.
 12411  //
 12412  // API parameter values that are decorated as "sensitive" in the API will not
 12413  // be included in the string output. The member name will be present, but the
 12414  // value will be replaced with "sensitive".
 12415  func (s DuplicateItemException) String() string {
 12416  	return awsutil.Prettify(s)
 12417  }
 12418  
 12419  // GoString returns the string representation.
 12420  //
 12421  // API parameter values that are decorated as "sensitive" in the API will not
 12422  // be included in the string output. The member name will be present, but the
 12423  // value will be replaced with "sensitive".
 12424  func (s DuplicateItemException) GoString() string {
 12425  	return s.String()
 12426  }
 12427  
 12428  func newErrorDuplicateItemException(v protocol.ResponseMetadata) error {
 12429  	return &DuplicateItemException{
 12430  		RespMetadata: v,
 12431  	}
 12432  }
 12433  
 12434  // Code returns the exception type name.
 12435  func (s *DuplicateItemException) Code() string {
 12436  	return "DuplicateItemException"
 12437  }
 12438  
 12439  // Message returns the exception's message.
 12440  func (s *DuplicateItemException) Message() string {
 12441  	if s.Message_ != nil {
 12442  		return *s.Message_
 12443  	}
 12444  	return ""
 12445  }
 12446  
 12447  // OrigErr always returns nil, satisfies awserr.Error interface.
 12448  func (s *DuplicateItemException) OrigErr() error {
 12449  	return nil
 12450  }
 12451  
 12452  func (s *DuplicateItemException) Error() string {
 12453  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 12454  }
 12455  
 12456  // Status code returns the HTTP status code for the request's response error.
 12457  func (s *DuplicateItemException) StatusCode() int {
 12458  	return s.RespMetadata.StatusCode
 12459  }
 12460  
 12461  // RequestID returns the service's response RequestID for request.
 12462  func (s *DuplicateItemException) RequestID() string {
 12463  	return s.RespMetadata.RequestID
 12464  }
 12465  
 12466  type EnableKinesisStreamingDestinationInput struct {
 12467  	_ struct{} `type:"structure"`
 12468  
 12469  	// The ARN for a Kinesis data stream.
 12470  	//
 12471  	// StreamArn is a required field
 12472  	StreamArn *string `min:"37" type:"string" required:"true"`
 12473  
 12474  	// The name of the DynamoDB table.
 12475  	//
 12476  	// TableName is a required field
 12477  	TableName *string `min:"3" type:"string" required:"true"`
 12478  }
 12479  
 12480  // String returns the string representation.
 12481  //
 12482  // API parameter values that are decorated as "sensitive" in the API will not
 12483  // be included in the string output. The member name will be present, but the
 12484  // value will be replaced with "sensitive".
 12485  func (s EnableKinesisStreamingDestinationInput) String() string {
 12486  	return awsutil.Prettify(s)
 12487  }
 12488  
 12489  // GoString returns the string representation.
 12490  //
 12491  // API parameter values that are decorated as "sensitive" in the API will not
 12492  // be included in the string output. The member name will be present, but the
 12493  // value will be replaced with "sensitive".
 12494  func (s EnableKinesisStreamingDestinationInput) GoString() string {
 12495  	return s.String()
 12496  }
 12497  
 12498  // Validate inspects the fields of the type to determine if they are valid.
 12499  func (s *EnableKinesisStreamingDestinationInput) Validate() error {
 12500  	invalidParams := request.ErrInvalidParams{Context: "EnableKinesisStreamingDestinationInput"}
 12501  	if s.StreamArn == nil {
 12502  		invalidParams.Add(request.NewErrParamRequired("StreamArn"))
 12503  	}
 12504  	if s.StreamArn != nil && len(*s.StreamArn) < 37 {
 12505  		invalidParams.Add(request.NewErrParamMinLen("StreamArn", 37))
 12506  	}
 12507  	if s.TableName == nil {
 12508  		invalidParams.Add(request.NewErrParamRequired("TableName"))
 12509  	}
 12510  	if s.TableName != nil && len(*s.TableName) < 3 {
 12511  		invalidParams.Add(request.NewErrParamMinLen("TableName", 3))
 12512  	}
 12513  
 12514  	if invalidParams.Len() > 0 {
 12515  		return invalidParams
 12516  	}
 12517  	return nil
 12518  }
 12519  
 12520  // SetStreamArn sets the StreamArn field's value.
 12521  func (s *EnableKinesisStreamingDestinationInput) SetStreamArn(v string) *EnableKinesisStreamingDestinationInput {
 12522  	s.StreamArn = &v
 12523  	return s
 12524  }
 12525  
 12526  // SetTableName sets the TableName field's value.
 12527  func (s *EnableKinesisStreamingDestinationInput) SetTableName(v string) *EnableKinesisStreamingDestinationInput {
 12528  	s.TableName = &v
 12529  	return s
 12530  }
 12531  
 12532  type EnableKinesisStreamingDestinationOutput struct {
 12533  	_ struct{} `type:"structure"`
 12534  
 12535  	// The current status of the replication.
 12536  	DestinationStatus *string `type:"string" enum:"DestinationStatus"`
 12537  
 12538  	// The ARN for the specific Kinesis data stream.
 12539  	StreamArn *string `min:"37" type:"string"`
 12540  
 12541  	// The name of the table being modified.
 12542  	TableName *string `min:"3" type:"string"`
 12543  }
 12544  
 12545  // String returns the string representation.
 12546  //
 12547  // API parameter values that are decorated as "sensitive" in the API will not
 12548  // be included in the string output. The member name will be present, but the
 12549  // value will be replaced with "sensitive".
 12550  func (s EnableKinesisStreamingDestinationOutput) String() string {
 12551  	return awsutil.Prettify(s)
 12552  }
 12553  
 12554  // GoString returns the string representation.
 12555  //
 12556  // API parameter values that are decorated as "sensitive" in the API will not
 12557  // be included in the string output. The member name will be present, but the
 12558  // value will be replaced with "sensitive".
 12559  func (s EnableKinesisStreamingDestinationOutput) GoString() string {
 12560  	return s.String()
 12561  }
 12562  
 12563  // SetDestinationStatus sets the DestinationStatus field's value.
 12564  func (s *EnableKinesisStreamingDestinationOutput) SetDestinationStatus(v string) *EnableKinesisStreamingDestinationOutput {
 12565  	s.DestinationStatus = &v
 12566  	return s
 12567  }
 12568  
 12569  // SetStreamArn sets the StreamArn field's value.
 12570  func (s *EnableKinesisStreamingDestinationOutput) SetStreamArn(v string) *EnableKinesisStreamingDestinationOutput {
 12571  	s.StreamArn = &v
 12572  	return s
 12573  }
 12574  
 12575  // SetTableName sets the TableName field's value.
 12576  func (s *EnableKinesisStreamingDestinationOutput) SetTableName(v string) *EnableKinesisStreamingDestinationOutput {
 12577  	s.TableName = &v
 12578  	return s
 12579  }
 12580  
 12581  // An endpoint information details.
 12582  type Endpoint struct {
 12583  	_ struct{} `type:"structure"`
 12584  
 12585  	// IP address of the endpoint.
 12586  	//
 12587  	// Address is a required field
 12588  	Address *string `type:"string" required:"true"`
 12589  
 12590  	// Endpoint cache time to live (TTL) value.
 12591  	//
 12592  	// CachePeriodInMinutes is a required field
 12593  	CachePeriodInMinutes *int64 `type:"long" required:"true"`
 12594  }
 12595  
 12596  // String returns the string representation.
 12597  //
 12598  // API parameter values that are decorated as "sensitive" in the API will not
 12599  // be included in the string output. The member name will be present, but the
 12600  // value will be replaced with "sensitive".
 12601  func (s Endpoint) String() string {
 12602  	return awsutil.Prettify(s)
 12603  }
 12604  
 12605  // GoString returns the string representation.
 12606  //
 12607  // API parameter values that are decorated as "sensitive" in the API will not
 12608  // be included in the string output. The member name will be present, but the
 12609  // value will be replaced with "sensitive".
 12610  func (s Endpoint) GoString() string {
 12611  	return s.String()
 12612  }
 12613  
 12614  // SetAddress sets the Address field's value.
 12615  func (s *Endpoint) SetAddress(v string) *Endpoint {
 12616  	s.Address = &v
 12617  	return s
 12618  }
 12619  
 12620  // SetCachePeriodInMinutes sets the CachePeriodInMinutes field's value.
 12621  func (s *Endpoint) SetCachePeriodInMinutes(v int64) *Endpoint {
 12622  	s.CachePeriodInMinutes = &v
 12623  	return s
 12624  }
 12625  
 12626  type ExecuteStatementInput struct {
 12627  	_ struct{} `type:"structure"`
 12628  
 12629  	// The consistency of a read operation. If set to true, then a strongly consistent
 12630  	// read is used; otherwise, an eventually consistent read is used.
 12631  	ConsistentRead *bool `type:"boolean"`
 12632  
 12633  	// Set this value to get remaining results, if NextToken was returned in the
 12634  	// statement response.
 12635  	NextToken *string `min:"1" type:"string"`
 12636  
 12637  	// The parameters for the PartiQL statement, if any.
 12638  	Parameters []*AttributeValue `min:"1" type:"list"`
 12639  
 12640  	// The PartiQL statement representing the operation to run.
 12641  	//
 12642  	// Statement is a required field
 12643  	Statement *string `min:"1" type:"string" required:"true"`
 12644  }
 12645  
 12646  // String returns the string representation.
 12647  //
 12648  // API parameter values that are decorated as "sensitive" in the API will not
 12649  // be included in the string output. The member name will be present, but the
 12650  // value will be replaced with "sensitive".
 12651  func (s ExecuteStatementInput) String() string {
 12652  	return awsutil.Prettify(s)
 12653  }
 12654  
 12655  // GoString returns the string representation.
 12656  //
 12657  // API parameter values that are decorated as "sensitive" in the API will not
 12658  // be included in the string output. The member name will be present, but the
 12659  // value will be replaced with "sensitive".
 12660  func (s ExecuteStatementInput) GoString() string {
 12661  	return s.String()
 12662  }
 12663  
 12664  // Validate inspects the fields of the type to determine if they are valid.
 12665  func (s *ExecuteStatementInput) Validate() error {
 12666  	invalidParams := request.ErrInvalidParams{Context: "ExecuteStatementInput"}
 12667  	if s.NextToken != nil && len(*s.NextToken) < 1 {
 12668  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
 12669  	}
 12670  	if s.Parameters != nil && len(s.Parameters) < 1 {
 12671  		invalidParams.Add(request.NewErrParamMinLen("Parameters", 1))
 12672  	}
 12673  	if s.Statement == nil {
 12674  		invalidParams.Add(request.NewErrParamRequired("Statement"))
 12675  	}
 12676  	if s.Statement != nil && len(*s.Statement) < 1 {
 12677  		invalidParams.Add(request.NewErrParamMinLen("Statement", 1))
 12678  	}
 12679  
 12680  	if invalidParams.Len() > 0 {
 12681  		return invalidParams
 12682  	}
 12683  	return nil
 12684  }
 12685  
 12686  // SetConsistentRead sets the ConsistentRead field's value.
 12687  func (s *ExecuteStatementInput) SetConsistentRead(v bool) *ExecuteStatementInput {
 12688  	s.ConsistentRead = &v
 12689  	return s
 12690  }
 12691  
 12692  // SetNextToken sets the NextToken field's value.
 12693  func (s *ExecuteStatementInput) SetNextToken(v string) *ExecuteStatementInput {
 12694  	s.NextToken = &v
 12695  	return s
 12696  }
 12697  
 12698  // SetParameters sets the Parameters field's value.
 12699  func (s *ExecuteStatementInput) SetParameters(v []*AttributeValue) *ExecuteStatementInput {
 12700  	s.Parameters = v
 12701  	return s
 12702  }
 12703  
 12704  // SetStatement sets the Statement field's value.
 12705  func (s *ExecuteStatementInput) SetStatement(v string) *ExecuteStatementInput {
 12706  	s.Statement = &v
 12707  	return s
 12708  }
 12709  
 12710  type ExecuteStatementOutput struct {
 12711  	_ struct{} `type:"structure"`
 12712  
 12713  	// If a read operation was used, this property will contain the result of the
 12714  	// reade operation; a map of attribute names and their values. For the write
 12715  	// operations this value will be empty.
 12716  	Items []map[string]*AttributeValue `type:"list"`
 12717  
 12718  	// If the response of a read request exceeds the response payload limit DynamoDB
 12719  	// will set this value in the response. If set, you can use that this value
 12720  	// in the subsequent request to get the remaining results.
 12721  	NextToken *string `min:"1" type:"string"`
 12722  }
 12723  
 12724  // String returns the string representation.
 12725  //
 12726  // API parameter values that are decorated as "sensitive" in the API will not
 12727  // be included in the string output. The member name will be present, but the
 12728  // value will be replaced with "sensitive".
 12729  func (s ExecuteStatementOutput) String() string {
 12730  	return awsutil.Prettify(s)
 12731  }
 12732  
 12733  // GoString returns the string representation.
 12734  //
 12735  // API parameter values that are decorated as "sensitive" in the API will not
 12736  // be included in the string output. The member name will be present, but the
 12737  // value will be replaced with "sensitive".
 12738  func (s ExecuteStatementOutput) GoString() string {
 12739  	return s.String()
 12740  }
 12741  
 12742  // SetItems sets the Items field's value.
 12743  func (s *ExecuteStatementOutput) SetItems(v []map[string]*AttributeValue) *ExecuteStatementOutput {
 12744  	s.Items = v
 12745  	return s
 12746  }
 12747  
 12748  // SetNextToken sets the NextToken field's value.
 12749  func (s *ExecuteStatementOutput) SetNextToken(v string) *ExecuteStatementOutput {
 12750  	s.NextToken = &v
 12751  	return s
 12752  }
 12753  
 12754  type ExecuteTransactionInput struct {
 12755  	_ struct{} `type:"structure"`
 12756  
 12757  	// Set this value to get remaining results, if NextToken was returned in the
 12758  	// statement response.
 12759  	ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"`
 12760  
 12761  	// The list of PartiQL statements representing the transaction to run.
 12762  	//
 12763  	// TransactStatements is a required field
 12764  	TransactStatements []*ParameterizedStatement `min:"1" type:"list" required:"true"`
 12765  }
 12766  
 12767  // String returns the string representation.
 12768  //
 12769  // API parameter values that are decorated as "sensitive" in the API will not
 12770  // be included in the string output. The member name will be present, but the
 12771  // value will be replaced with "sensitive".
 12772  func (s ExecuteTransactionInput) String() string {
 12773  	return awsutil.Prettify(s)
 12774  }
 12775  
 12776  // GoString returns the string representation.
 12777  //
 12778  // API parameter values that are decorated as "sensitive" in the API will not
 12779  // be included in the string output. The member name will be present, but the
 12780  // value will be replaced with "sensitive".
 12781  func (s ExecuteTransactionInput) GoString() string {
 12782  	return s.String()
 12783  }
 12784  
 12785  // Validate inspects the fields of the type to determine if they are valid.
 12786  func (s *ExecuteTransactionInput) Validate() error {
 12787  	invalidParams := request.ErrInvalidParams{Context: "ExecuteTransactionInput"}
 12788  	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
 12789  		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
 12790  	}
 12791  	if s.TransactStatements == nil {
 12792  		invalidParams.Add(request.NewErrParamRequired("TransactStatements"))
 12793  	}
 12794  	if s.TransactStatements != nil && len(s.TransactStatements) < 1 {
 12795  		invalidParams.Add(request.NewErrParamMinLen("TransactStatements", 1))
 12796  	}
 12797  	if s.TransactStatements != nil {
 12798  		for i, v := range s.TransactStatements {
 12799  			if v == nil {
 12800  				continue
 12801  			}
 12802  			if err := v.Validate(); err != nil {
 12803  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TransactStatements", i), err.(request.ErrInvalidParams))
 12804  			}
 12805  		}
 12806  	}
 12807  
 12808  	if invalidParams.Len() > 0 {
 12809  		return invalidParams
 12810  	}
 12811  	return nil
 12812  }
 12813  
 12814  // SetClientRequestToken sets the ClientRequestToken field's value.
 12815  func (s *ExecuteTransactionInput) SetClientRequestToken(v string) *ExecuteTransactionInput {
 12816  	s.ClientRequestToken = &v
 12817  	return s
 12818  }
 12819  
 12820  // SetTransactStatements sets the TransactStatements field's value.
 12821  func (s *ExecuteTransactionInput) SetTransactStatements(v []*ParameterizedStatement) *ExecuteTransactionInput {
 12822  	s.TransactStatements = v
 12823  	return s
 12824  }
 12825  
 12826  type ExecuteTransactionOutput struct {
 12827  	_ struct{} `type:"structure"`
 12828  
 12829  	// The response to a PartiQL transaction.
 12830  	Responses []*ItemResponse `min:"1" type:"list"`
 12831  }
 12832  
 12833  // String returns the string representation.
 12834  //
 12835  // API parameter values that are decorated as "sensitive" in the API will not
 12836  // be included in the string output. The member name will be present, but the
 12837  // value will be replaced with "sensitive".
 12838  func (s ExecuteTransactionOutput) String() string {
 12839  	return awsutil.Prettify(s)
 12840  }
 12841  
 12842  // GoString returns the string representation.
 12843  //
 12844  // API parameter values that are decorated as "sensitive" in the API will not
 12845  // be included in the string output. The member name will be present, but the
 12846  // value will be replaced with "sensitive".
 12847  func (s ExecuteTransactionOutput) GoString() string {
 12848  	return s.String()
 12849  }
 12850  
 12851  // SetResponses sets the Responses field's value.
 12852  func (s *ExecuteTransactionOutput) SetResponses(v []*ItemResponse) *ExecuteTransactionOutput {
 12853  	s.Responses = v
 12854  	return s
 12855  }
 12856  
 12857  // Represents a condition to be compared with an attribute value. This condition
 12858  // can be used with DeleteItem, PutItem, or UpdateItem operations; if the comparison
 12859  // evaluates to true, the operation succeeds; if not, the operation fails. You
 12860  // can use ExpectedAttributeValue in one of two different ways:
 12861  //
 12862  //    * Use AttributeValueList to specify one or more values to compare against
 12863  //    an attribute. Use ComparisonOperator to specify how you want to perform
 12864  //    the comparison. If the comparison evaluates to true, then the conditional
 12865  //    operation succeeds.
 12866  //
 12867  //    * Use Value to specify a value that DynamoDB will compare against an attribute.
 12868  //    If the values match, then ExpectedAttributeValue evaluates to true and
 12869  //    the conditional operation succeeds. Optionally, you can also set Exists
 12870  //    to false, indicating that you do not expect to find the attribute value
 12871  //    in the table. In this case, the conditional operation succeeds only if
 12872  //    the comparison evaluates to false.
 12873  //
 12874  // Value and Exists are incompatible with AttributeValueList and ComparisonOperator.
 12875  // Note that if you use both sets of parameters at once, DynamoDB will return
 12876  // a ValidationException exception.
 12877  type ExpectedAttributeValue struct {
 12878  	_ struct{} `type:"structure"`
 12879  
 12880  	// One or more values to evaluate against the supplied attribute. The number
 12881  	// of values in the list depends on the ComparisonOperator being used.
 12882  	//
 12883  	// For type Number, value comparisons are numeric.
 12884  	//
 12885  	// String value comparisons for greater than, equals, or less than are based
 12886  	// on ASCII character code values. For example, a is greater than A, and a is
 12887  	// greater than B. For a list of code values, see http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters
 12888  	// (http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters).
 12889  	//
 12890  	// For Binary, DynamoDB treats each byte of the binary data as unsigned when
 12891  	// it compares binary values.
 12892  	//
 12893  	// For information on specifying data types in JSON, see JSON Data Format (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataFormat.html)
 12894  	// in the Amazon DynamoDB Developer Guide.
 12895  	AttributeValueList []*AttributeValue `type:"list"`
 12896  
 12897  	// A comparator for evaluating attributes in the AttributeValueList. For example,
 12898  	// equals, greater than, less than, etc.
 12899  	//
 12900  	// The following comparison operators are available:
 12901  	//
 12902  	// EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS |
 12903  	// BEGINS_WITH | IN | BETWEEN
 12904  	//
 12905  	// The following are descriptions of each comparison operator.
 12906  	//
 12907  	//    * EQ : Equal. EQ is supported for all data types, including lists and
 12908  	//    maps. AttributeValueList can contain only one AttributeValue element of
 12909  	//    type String, Number, Binary, String Set, Number Set, or Binary Set. If
 12910  	//    an item contains an AttributeValue element of a different type than the
 12911  	//    one provided in the request, the value does not match. For example, {"S":"6"}
 12912  	//    does not equal {"N":"6"}. Also, {"N":"6"} does not equal {"NS":["6", "2",
 12913  	//    "1"]}.
 12914  	//
 12915  	//    * NE : Not equal. NE is supported for all data types, including lists
 12916  	//    and maps. AttributeValueList can contain only one AttributeValue of type
 12917  	//    String, Number, Binary, String Set, Number Set, or Binary Set. If an item
 12918  	//    contains an AttributeValue of a different type than the one provided in
 12919  	//    the request, the value does not match. For example, {"S":"6"} does not
 12920  	//    equal {"N":"6"}. Also, {"N":"6"} does not equal {"NS":["6", "2", "1"]}.
 12921  	//
 12922  	//    * LE : Less than or equal. AttributeValueList can contain only one AttributeValue
 12923  	//    element of type String, Number, or Binary (not a set type). If an item
 12924  	//    contains an AttributeValue element of a different type than the one provided
 12925  	//    in the request, the value does not match. For example, {"S":"6"} does
 12926  	//    not equal {"N":"6"}. Also, {"N":"6"} does not compare to {"NS":["6", "2",
 12927  	//    "1"]}.
 12928  	//
 12929  	//    * LT : Less than. AttributeValueList can contain only one AttributeValue
 12930  	//    of type String, Number, or Binary (not a set type). If an item contains
 12931  	//    an AttributeValue element of a different type than the one provided in
 12932  	//    the request, the value does not match. For example, {"S":"6"} does not
 12933  	//    equal {"N":"6"}. Also, {"N":"6"} does not compare to {"NS":["6", "2",
 12934  	//    "1"]}.
 12935  	//
 12936  	//    * GE : Greater than or equal. AttributeValueList can contain only one
 12937  	//    AttributeValue element of type String, Number, or Binary (not a set type).
 12938  	//    If an item contains an AttributeValue element of a different type than
 12939  	//    the one provided in the request, the value does not match. For example,
 12940  	//    {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"} does not compare to
 12941  	//    {"NS":["6", "2", "1"]}.
 12942  	//
 12943  	//    * GT : Greater than. AttributeValueList can contain only one AttributeValue
 12944  	//    element of type String, Number, or Binary (not a set type). If an item
 12945  	//    contains an AttributeValue element of a different type than the one provided
 12946  	//    in the request, the value does not match. For example, {"S":"6"} does
 12947  	//    not equal {"N":"6"}. Also, {"N":"6"} does not compare to {"NS":["6", "2",
 12948  	//    "1"]}.
 12949  	//
 12950  	//    * NOT_NULL : The attribute exists. NOT_NULL is supported for all data
 12951  	//    types, including lists and maps. This operator tests for the existence
 12952  	//    of an attribute, not its data type. If the data type of attribute "a"
 12953  	//    is null, and you evaluate it using NOT_NULL, the result is a Boolean true.
 12954  	//    This result is because the attribute "a" exists; its data type is not
 12955  	//    relevant to the NOT_NULL comparison operator.
 12956  	//
 12957  	//    * NULL : The attribute does not exist. NULL is supported for all data
 12958  	//    types, including lists and maps. This operator tests for the nonexistence
 12959  	//    of an attribute, not its data type. If the data type of attribute "a"
 12960  	//    is null, and you evaluate it using NULL, the result is a Boolean false.
 12961  	//    This is because the attribute "a" exists; its data type is not relevant
 12962  	//    to the NULL comparison operator.
 12963  	//
 12964  	//    * CONTAINS : Checks for a subsequence, or value in a set. AttributeValueList
 12965  	//    can contain only one AttributeValue element of type String, Number, or
 12966  	//    Binary (not a set type). If the target attribute of the comparison is
 12967  	//    of type String, then the operator checks for a substring match. If the
 12968  	//    target attribute of the comparison is of type Binary, then the operator
 12969  	//    looks for a subsequence of the target that matches the input. If the target
 12970  	//    attribute of the comparison is a set ("SS", "NS", or "BS"), then the operator
 12971  	//    evaluates to true if it finds an exact match with any member of the set.
 12972  	//    CONTAINS is supported for lists: When evaluating "a CONTAINS b", "a" can
 12973  	//    be a list; however, "b" cannot be a set, a map, or a list.
 12974  	//
 12975  	//    * NOT_CONTAINS : Checks for absence of a subsequence, or absence of a
 12976  	//    value in a set. AttributeValueList can contain only one AttributeValue
 12977  	//    element of type String, Number, or Binary (not a set type). If the target
 12978  	//    attribute of the comparison is a String, then the operator checks for
 12979  	//    the absence of a substring match. If the target attribute of the comparison
 12980  	//    is Binary, then the operator checks for the absence of a subsequence of
 12981  	//    the target that matches the input. If the target attribute of the comparison
 12982  	//    is a set ("SS", "NS", or "BS"), then the operator evaluates to true if
 12983  	//    it does not find an exact match with any member of the set. NOT_CONTAINS
 12984  	//    is supported for lists: When evaluating "a NOT CONTAINS b", "a" can be
 12985  	//    a list; however, "b" cannot be a set, a map, or a list.
 12986  	//
 12987  	//    * BEGINS_WITH : Checks for a prefix. AttributeValueList can contain only
 12988  	//    one AttributeValue of type String or Binary (not a Number or a set type).
 12989  	//    The target attribute of the comparison must be of type String or Binary
 12990  	//    (not a Number or a set type).
 12991  	//
 12992  	//    * IN : Checks for matching elements in a list. AttributeValueList can
 12993  	//    contain one or more AttributeValue elements of type String, Number, or
 12994  	//    Binary. These attributes are compared against an existing attribute of
 12995  	//    an item. If any elements of the input are equal to the item attribute,
 12996  	//    the expression evaluates to true.
 12997  	//
 12998  	//    * BETWEEN : Greater than or equal to the first value, and less than or
 12999  	//    equal to the second value. AttributeValueList must contain two AttributeValue
 13000  	//    elements of the same type, either String, Number, or Binary (not a set
 13001  	//    type). A target attribute matches if the target value is greater than,
 13002  	//    or equal to, the first element and less than, or equal to, the second
 13003  	//    element. If an item contains an AttributeValue element of a different
 13004  	//    type than the one provided in the request, the value does not match. For
 13005  	//    example, {"S":"6"} does not compare to {"N":"6"}. Also, {"N":"6"} does
 13006  	//    not compare to {"NS":["6", "2", "1"]}
 13007  	ComparisonOperator *string `type:"string" enum:"ComparisonOperator"`
 13008  
 13009  	// Causes DynamoDB to evaluate the value before attempting a conditional operation:
 13010  	//
 13011  	//    * If Exists is true, DynamoDB will check to see if that attribute value
 13012  	//    already exists in the table. If it is found, then the operation succeeds.
 13013  	//    If it is not found, the operation fails with a ConditionCheckFailedException.
 13014  	//
 13015  	//    * If Exists is false, DynamoDB assumes that the attribute value does not
 13016  	//    exist in the table. If in fact the value does not exist, then the assumption
 13017  	//    is valid and the operation succeeds. If the value is found, despite the
 13018  	//    assumption that it does not exist, the operation fails with a ConditionCheckFailedException.
 13019  	//
 13020  	// The default setting for Exists is true. If you supply a Value all by itself,
 13021  	// DynamoDB assumes the attribute exists: You don't have to set Exists to true,
 13022  	// because it is implied.
 13023  	//
 13024  	// DynamoDB returns a ValidationException if:
 13025  	//
 13026  	//    * Exists is true but there is no Value to check. (You expect a value to
 13027  	//    exist, but don't specify what that value is.)
 13028  	//
 13029  	//    * Exists is false but you also provide a Value. (You cannot expect an
 13030  	//    attribute to have a value, while also expecting it not to exist.)
 13031  	Exists *bool `type:"boolean"`
 13032  
 13033  	// Represents the data for the expected attribute.
 13034  	//
 13035  	// Each attribute value is described as a name-value pair. The name is the data
 13036  	// type, and the value is the data itself.
 13037  	//
 13038  	// For more information, see Data Types (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes)
 13039  	// in the Amazon DynamoDB Developer Guide.
 13040  	Value *AttributeValue `type:"structure"`
 13041  }
 13042  
 13043  // String returns the string representation.
 13044  //
 13045  // API parameter values that are decorated as "sensitive" in the API will not
 13046  // be included in the string output. The member name will be present, but the
 13047  // value will be replaced with "sensitive".
 13048  func (s ExpectedAttributeValue) String() string {
 13049  	return awsutil.Prettify(s)
 13050  }
 13051  
 13052  // GoString returns the string representation.
 13053  //
 13054  // API parameter values that are decorated as "sensitive" in the API will not
 13055  // be included in the string output. The member name will be present, but the
 13056  // value will be replaced with "sensitive".
 13057  func (s ExpectedAttributeValue) GoString() string {
 13058  	return s.String()
 13059  }
 13060  
 13061  // SetAttributeValueList sets the AttributeValueList field's value.
 13062  func (s *ExpectedAttributeValue) SetAttributeValueList(v []*AttributeValue) *ExpectedAttributeValue {
 13063  	s.AttributeValueList = v
 13064  	return s
 13065  }
 13066  
 13067  // SetComparisonOperator sets the ComparisonOperator field's value.
 13068  func (s *ExpectedAttributeValue) SetComparisonOperator(v string) *ExpectedAttributeValue {
 13069  	s.ComparisonOperator = &v
 13070  	return s
 13071  }
 13072  
 13073  // SetExists sets the Exists field's value.
 13074  func (s *ExpectedAttributeValue) SetExists(v bool) *ExpectedAttributeValue {
 13075  	s.Exists = &v
 13076  	return s
 13077  }
 13078  
 13079  // SetValue sets the Value field's value.
 13080  func (s *ExpectedAttributeValue) SetValue(v *AttributeValue) *ExpectedAttributeValue {
 13081  	s.Value = v
 13082  	return s
 13083  }
 13084  
 13085  // There was a conflict when writing to the specified S3 bucket.
 13086  type ExportConflictException struct {
 13087  	_            struct{}                  `type:"structure"`
 13088  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 13089  
 13090  	Message_ *string `locationName:"message" type:"string"`
 13091  }
 13092  
 13093  // String returns the string representation.
 13094  //
 13095  // API parameter values that are decorated as "sensitive" in the API will not
 13096  // be included in the string output. The member name will be present, but the
 13097  // value will be replaced with "sensitive".
 13098  func (s ExportConflictException) String() string {
 13099  	return awsutil.Prettify(s)
 13100  }
 13101  
 13102  // GoString returns the string representation.
 13103  //
 13104  // API parameter values that are decorated as "sensitive" in the API will not
 13105  // be included in the string output. The member name will be present, but the
 13106  // value will be replaced with "sensitive".
 13107  func (s ExportConflictException) GoString() string {
 13108  	return s.String()
 13109  }
 13110  
 13111  func newErrorExportConflictException(v protocol.ResponseMetadata) error {
 13112  	return &ExportConflictException{
 13113  		RespMetadata: v,
 13114  	}
 13115  }
 13116  
 13117  // Code returns the exception type name.
 13118  func (s *ExportConflictException) Code() string {
 13119  	return "ExportConflictException"
 13120  }
 13121  
 13122  // Message returns the exception's message.
 13123  func (s *ExportConflictException) Message() string {
 13124  	if s.Message_ != nil {
 13125  		return *s.Message_
 13126  	}
 13127  	return ""
 13128  }
 13129  
 13130  // OrigErr always returns nil, satisfies awserr.Error interface.
 13131  func (s *ExportConflictException) OrigErr() error {
 13132  	return nil
 13133  }
 13134  
 13135  func (s *ExportConflictException) Error() string {
 13136  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 13137  }
 13138  
 13139  // Status code returns the HTTP status code for the request's response error.
 13140  func (s *ExportConflictException) StatusCode() int {
 13141  	return s.RespMetadata.StatusCode
 13142  }
 13143  
 13144  // RequestID returns the service's response RequestID for request.
 13145  func (s *ExportConflictException) RequestID() string {
 13146  	return s.RespMetadata.RequestID
 13147  }
 13148  
 13149  // Represents the properties of the exported table.
 13150  type ExportDescription struct {
 13151  	_ struct{} `type:"structure"`
 13152  
 13153  	// The billable size of the table export.
 13154  	BilledSizeBytes *int64 `type:"long"`
 13155  
 13156  	// The client token that was provided for the export task. A client token makes
 13157  	// calls to ExportTableToPointInTimeInput idempotent, meaning that multiple
 13158  	// identical calls have the same effect as one single call.
 13159  	ClientToken *string `type:"string"`
 13160  
 13161  	// The time at which the export task completed.
 13162  	EndTime *time.Time `type:"timestamp"`
 13163  
 13164  	// The Amazon Resource Name (ARN) of the table export.
 13165  	ExportArn *string `min:"37" type:"string"`
 13166  
 13167  	// The format of the exported data. Valid values for ExportFormat are DYNAMODB_JSON
 13168  	// or ION.
 13169  	ExportFormat *string `type:"string" enum:"ExportFormat"`
 13170  
 13171  	// The name of the manifest file for the export task.
 13172  	ExportManifest *string `type:"string"`
 13173  
 13174  	// Export can be in one of the following states: IN_PROGRESS, COMPLETED, or
 13175  	// FAILED.
 13176  	ExportStatus *string `type:"string" enum:"ExportStatus"`
 13177  
 13178  	// Point in time from which table data was exported.
 13179  	ExportTime *time.Time `type:"timestamp"`
 13180  
 13181  	// Status code for the result of the failed export.
 13182  	FailureCode *string `type:"string"`
 13183  
 13184  	// Export failure reason description.
 13185  	FailureMessage *string `type:"string"`
 13186  
 13187  	// The number of items exported.
 13188  	ItemCount *int64 `type:"long"`
 13189  
 13190  	// The name of the Amazon S3 bucket containing the export.
 13191  	S3Bucket *string `type:"string"`
 13192  
 13193  	// The ID of the AWS account that owns the bucket containing the export.
 13194  	S3BucketOwner *string `type:"string"`
 13195  
 13196  	// The Amazon S3 bucket prefix used as the file name and path of the exported
 13197  	// snapshot.
 13198  	S3Prefix *string `type:"string"`
 13199  
 13200  	// Type of encryption used on the bucket where export data is stored. Valid
 13201  	// values for S3SseAlgorithm are:
 13202  	//
 13203  	//    * AES256 - server-side encryption with Amazon S3 managed keys
 13204  	//
 13205  	//    * KMS - server-side encryption with AWS KMS managed keys
 13206  	S3SseAlgorithm *string `type:"string" enum:"S3SseAlgorithm"`
 13207  
 13208  	// The ID of the AWS KMS managed key used to encrypt the S3 bucket where export
 13209  	// data is stored (if applicable).
 13210  	S3SseKmsKeyId *string `min:"1" type:"string"`
 13211  
 13212  	// The time at which the export task began.
 13213  	StartTime *time.Time `type:"timestamp"`
 13214  
 13215  	// The Amazon Resource Name (ARN) of the table that was exported.
 13216  	TableArn *string `type:"string"`
 13217  
 13218  	// Unique ID of the table that was exported.
 13219  	TableId *string `type:"string"`
 13220  }
 13221  
 13222  // String returns the string representation.
 13223  //
 13224  // API parameter values that are decorated as "sensitive" in the API will not
 13225  // be included in the string output. The member name will be present, but the
 13226  // value will be replaced with "sensitive".
 13227  func (s ExportDescription) String() string {
 13228  	return awsutil.Prettify(s)
 13229  }
 13230  
 13231  // GoString returns the string representation.
 13232  //
 13233  // API parameter values that are decorated as "sensitive" in the API will not
 13234  // be included in the string output. The member name will be present, but the
 13235  // value will be replaced with "sensitive".
 13236  func (s ExportDescription) GoString() string {
 13237  	return s.String()
 13238  }
 13239  
 13240  // SetBilledSizeBytes sets the BilledSizeBytes field's value.
 13241  func (s *ExportDescription) SetBilledSizeBytes(v int64) *ExportDescription {
 13242  	s.BilledSizeBytes = &v
 13243  	return s
 13244  }
 13245  
 13246  // SetClientToken sets the ClientToken field's value.
 13247  func (s *ExportDescription) SetClientToken(v string) *ExportDescription {
 13248  	s.ClientToken = &v
 13249  	return s
 13250  }
 13251  
 13252  // SetEndTime sets the EndTime field's value.
 13253  func (s *ExportDescription) SetEndTime(v time.Time) *ExportDescription {
 13254  	s.EndTime = &v
 13255  	return s
 13256  }
 13257  
 13258  // SetExportArn sets the ExportArn field's value.
 13259  func (s *ExportDescription) SetExportArn(v string) *ExportDescription {
 13260  	s.ExportArn = &v
 13261  	return s
 13262  }
 13263  
 13264  // SetExportFormat sets the ExportFormat field's value.
 13265  func (s *ExportDescription) SetExportFormat(v string) *ExportDescription {
 13266  	s.ExportFormat = &v
 13267  	return s
 13268  }
 13269  
 13270  // SetExportManifest sets the ExportManifest field's value.
 13271  func (s *ExportDescription) SetExportManifest(v string) *ExportDescription {
 13272  	s.ExportManifest = &v
 13273  	return s
 13274  }
 13275  
 13276  // SetExportStatus sets the ExportStatus field's value.
 13277  func (s *ExportDescription) SetExportStatus(v string) *ExportDescription {
 13278  	s.ExportStatus = &v
 13279  	return s
 13280  }
 13281  
 13282  // SetExportTime sets the ExportTime field's value.
 13283  func (s *ExportDescription) SetExportTime(v time.Time) *ExportDescription {
 13284  	s.ExportTime = &v
 13285  	return s
 13286  }
 13287  
 13288  // SetFailureCode sets the FailureCode field's value.
 13289  func (s *ExportDescription) SetFailureCode(v string) *ExportDescription {
 13290  	s.FailureCode = &v
 13291  	return s
 13292  }
 13293  
 13294  // SetFailureMessage sets the FailureMessage field's value.
 13295  func (s *ExportDescription) SetFailureMessage(v string) *ExportDescription {
 13296  	s.FailureMessage = &v
 13297  	return s
 13298  }
 13299  
 13300  // SetItemCount sets the ItemCount field's value.
 13301  func (s *ExportDescription) SetItemCount(v int64) *ExportDescription {
 13302  	s.ItemCount = &v
 13303  	return s
 13304  }
 13305  
 13306  // SetS3Bucket sets the S3Bucket field's value.
 13307  func (s *ExportDescription) SetS3Bucket(v string) *ExportDescription {
 13308  	s.S3Bucket = &v
 13309  	return s
 13310  }
 13311  
 13312  // SetS3BucketOwner sets the S3BucketOwner field's value.
 13313  func (s *ExportDescription) SetS3BucketOwner(v string) *ExportDescription {
 13314  	s.S3BucketOwner = &v
 13315  	return s
 13316  }
 13317  
 13318  // SetS3Prefix sets the S3Prefix field's value.
 13319  func (s *ExportDescription) SetS3Prefix(v string) *ExportDescription {
 13320  	s.S3Prefix = &v
 13321  	return s
 13322  }
 13323  
 13324  // SetS3SseAlgorithm sets the S3SseAlgorithm field's value.
 13325  func (s *ExportDescription) SetS3SseAlgorithm(v string) *ExportDescription {
 13326  	s.S3SseAlgorithm = &v
 13327  	return s
 13328  }
 13329  
 13330  // SetS3SseKmsKeyId sets the S3SseKmsKeyId field's value.
 13331  func (s *ExportDescription) SetS3SseKmsKeyId(v string) *ExportDescription {
 13332  	s.S3SseKmsKeyId = &v
 13333  	return s
 13334  }
 13335  
 13336  // SetStartTime sets the StartTime field's value.
 13337  func (s *ExportDescription) SetStartTime(v time.Time) *ExportDescription {
 13338  	s.StartTime = &v
 13339  	return s
 13340  }
 13341  
 13342  // SetTableArn sets the TableArn field's value.
 13343  func (s *ExportDescription) SetTableArn(v string) *ExportDescription {
 13344  	s.TableArn = &v
 13345  	return s
 13346  }
 13347  
 13348  // SetTableId sets the TableId field's value.
 13349  func (s *ExportDescription) SetTableId(v string) *ExportDescription {
 13350  	s.TableId = &v
 13351  	return s
 13352  }
 13353  
 13354  // The specified export was not found.
 13355  type ExportNotFoundException struct {
 13356  	_            struct{}                  `type:"structure"`
 13357  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 13358  
 13359  	Message_ *string `locationName:"message" type:"string"`
 13360  }
 13361  
 13362  // String returns the string representation.
 13363  //
 13364  // API parameter values that are decorated as "sensitive" in the API will not
 13365  // be included in the string output. The member name will be present, but the
 13366  // value will be replaced with "sensitive".
 13367  func (s ExportNotFoundException) String() string {
 13368  	return awsutil.Prettify(s)
 13369  }
 13370  
 13371  // GoString returns the string representation.
 13372  //
 13373  // API parameter values that are decorated as "sensitive" in the API will not
 13374  // be included in the string output. The member name will be present, but the
 13375  // value will be replaced with "sensitive".
 13376  func (s ExportNotFoundException) GoString() string {
 13377  	return s.String()
 13378  }
 13379  
 13380  func newErrorExportNotFoundException(v protocol.ResponseMetadata) error {
 13381  	return &ExportNotFoundException{
 13382  		RespMetadata: v,
 13383  	}
 13384  }
 13385  
 13386  // Code returns the exception type name.
 13387  func (s *ExportNotFoundException) Code() string {
 13388  	return "ExportNotFoundException"
 13389  }
 13390  
 13391  // Message returns the exception's message.
 13392  func (s *ExportNotFoundException) Message() string {
 13393  	if s.Message_ != nil {
 13394  		return *s.Message_
 13395  	}
 13396  	return ""
 13397  }
 13398  
 13399  // OrigErr always returns nil, satisfies awserr.Error interface.
 13400  func (s *ExportNotFoundException) OrigErr() error {
 13401  	return nil
 13402  }
 13403  
 13404  func (s *ExportNotFoundException) Error() string {
 13405  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 13406  }
 13407  
 13408  // Status code returns the HTTP status code for the request's response error.
 13409  func (s *ExportNotFoundException) StatusCode() int {
 13410  	return s.RespMetadata.StatusCode
 13411  }
 13412  
 13413  // RequestID returns the service's response RequestID for request.
 13414  func (s *ExportNotFoundException) RequestID() string {
 13415  	return s.RespMetadata.RequestID
 13416  }
 13417  
 13418  // Summary information about an export task.
 13419  type ExportSummary struct {
 13420  	_ struct{} `type:"structure"`
 13421  
 13422  	// The Amazon Resource Name (ARN) of the export.
 13423  	ExportArn *string `min:"37" type:"string"`
 13424  
 13425  	// Export can be in one of the following states: IN_PROGRESS, COMPLETED, or
 13426  	// FAILED.
 13427  	ExportStatus *string `type:"string" enum:"ExportStatus"`
 13428  }
 13429  
 13430  // String returns the string representation.
 13431  //
 13432  // API parameter values that are decorated as "sensitive" in the API will not
 13433  // be included in the string output. The member name will be present, but the
 13434  // value will be replaced with "sensitive".
 13435  func (s ExportSummary) String() string {
 13436  	return awsutil.Prettify(s)
 13437  }
 13438  
 13439  // GoString returns the string representation.
 13440  //
 13441  // API parameter values that are decorated as "sensitive" in the API will not
 13442  // be included in the string output. The member name will be present, but the
 13443  // value will be replaced with "sensitive".
 13444  func (s ExportSummary) GoString() string {
 13445  	return s.String()
 13446  }
 13447  
 13448  // SetExportArn sets the ExportArn field's value.
 13449  func (s *ExportSummary) SetExportArn(v string) *ExportSummary {
 13450  	s.ExportArn = &v
 13451  	return s
 13452  }
 13453  
 13454  // SetExportStatus sets the ExportStatus field's value.
 13455  func (s *ExportSummary) SetExportStatus(v string) *ExportSummary {
 13456  	s.ExportStatus = &v
 13457  	return s
 13458  }
 13459  
 13460  type ExportTableToPointInTimeInput struct {
 13461  	_ struct{} `type:"structure"`
 13462  
 13463  	// Providing a ClientToken makes the call to ExportTableToPointInTimeInput idempotent,
 13464  	// meaning that multiple identical calls have the same effect as one single
 13465  	// call.
 13466  	//
 13467  	// A client token is valid for 8 hours after the first request that uses it
 13468  	// is completed. After 8 hours, any request with the same client token is treated
 13469  	// as a new request. Do not resubmit the same request with the same client token
 13470  	// for more than 8 hours, or the result might not be idempotent.
 13471  	//
 13472  	// If you submit a request with the same client token but a change in other
 13473  	// parameters within the 8-hour idempotency window, DynamoDB returns an IdempotentParameterMismatch
 13474  	// exception.
 13475  	ClientToken *string `type:"string" idempotencyToken:"true"`
 13476  
 13477  	// The format for the exported data. Valid values for ExportFormat are DYNAMODB_JSON
 13478  	// or ION.
 13479  	ExportFormat *string `type:"string" enum:"ExportFormat"`
 13480  
 13481  	// Time in the past from which to export table data. The table export will be
 13482  	// a snapshot of the table's state at this point in time.
 13483  	ExportTime *time.Time `type:"timestamp"`
 13484  
 13485  	// The name of the Amazon S3 bucket to export the snapshot to.
 13486  	//
 13487  	// S3Bucket is a required field
 13488  	S3Bucket *string `type:"string" required:"true"`
 13489  
 13490  	// The ID of the AWS account that owns the bucket the export will be stored
 13491  	// in.
 13492  	S3BucketOwner *string `type:"string"`
 13493  
 13494  	// The Amazon S3 bucket prefix to use as the file name and path of the exported
 13495  	// snapshot.
 13496  	S3Prefix *string `type:"string"`
 13497  
 13498  	// Type of encryption used on the bucket where export data will be stored. Valid
 13499  	// values for S3SseAlgorithm are:
 13500  	//
 13501  	//    * AES256 - server-side encryption with Amazon S3 managed keys
 13502  	//
 13503  	//    * KMS - server-side encryption with AWS KMS managed keys
 13504  	S3SseAlgorithm *string `type:"string" enum:"S3SseAlgorithm"`
 13505  
 13506  	// The ID of the AWS KMS managed key used to encrypt the S3 bucket where export
 13507  	// data will be stored (if applicable).
 13508  	S3SseKmsKeyId *string `min:"1" type:"string"`
 13509  
 13510  	// The Amazon Resource Name (ARN) associated with the table to export.
 13511  	//
 13512  	// TableArn is a required field
 13513  	TableArn *string `type:"string" required:"true"`
 13514  }
 13515  
 13516  // String returns the string representation.
 13517  //
 13518  // API parameter values that are decorated as "sensitive" in the API will not
 13519  // be included in the string output. The member name will be present, but the
 13520  // value will be replaced with "sensitive".
 13521  func (s ExportTableToPointInTimeInput) String() string {
 13522  	return awsutil.Prettify(s)
 13523  }
 13524  
 13525  // GoString returns the string representation.
 13526  //
 13527  // API parameter values that are decorated as "sensitive" in the API will not
 13528  // be included in the string output. The member name will be present, but the
 13529  // value will be replaced with "sensitive".
 13530  func (s ExportTableToPointInTimeInput) GoString() string {
 13531  	return s.String()
 13532  }
 13533  
 13534  // Validate inspects the fields of the type to determine if they are valid.
 13535  func (s *ExportTableToPointInTimeInput) Validate() error {
 13536  	invalidParams := request.ErrInvalidParams{Context: "ExportTableToPointInTimeInput"}
 13537  	if s.S3Bucket == nil {
 13538  		invalidParams.Add(request.NewErrParamRequired("S3Bucket"))
 13539  	}
 13540  	if s.S3SseKmsKeyId != nil && len(*s.S3SseKmsKeyId) < 1 {
 13541  		invalidParams.Add(request.NewErrParamMinLen("S3SseKmsKeyId", 1))
 13542  	}
 13543  	if s.TableArn == nil {
 13544  		invalidParams.Add(request.NewErrParamRequired("TableArn"))
 13545  	}
 13546  
 13547  	if invalidParams.Len() > 0 {
 13548  		return invalidParams
 13549  	}
 13550  	return nil
 13551  }
 13552  
 13553  // SetClientToken sets the ClientToken field's value.
 13554  func (s *ExportTableToPointInTimeInput) SetClientToken(v string) *ExportTableToPointInTimeInput {
 13555  	s.ClientToken = &v
 13556  	return s
 13557  }
 13558  
 13559  // SetExportFormat sets the ExportFormat field's value.
 13560  func (s *ExportTableToPointInTimeInput) SetExportFormat(v string) *ExportTableToPointInTimeInput {
 13561  	s.ExportFormat = &v
 13562  	return s
 13563  }
 13564  
 13565  // SetExportTime sets the ExportTime field's value.
 13566  func (s *ExportTableToPointInTimeInput) SetExportTime(v time.Time) *ExportTableToPointInTimeInput {
 13567  	s.ExportTime = &v
 13568  	return s
 13569  }
 13570  
 13571  // SetS3Bucket sets the S3Bucket field's value.
 13572  func (s *ExportTableToPointInTimeInput) SetS3Bucket(v string) *ExportTableToPointInTimeInput {
 13573  	s.S3Bucket = &v
 13574  	return s
 13575  }
 13576  
 13577  // SetS3BucketOwner sets the S3BucketOwner field's value.
 13578  func (s *ExportTableToPointInTimeInput) SetS3BucketOwner(v string) *ExportTableToPointInTimeInput {
 13579  	s.S3BucketOwner = &v
 13580  	return s
 13581  }
 13582  
 13583  // SetS3Prefix sets the S3Prefix field's value.
 13584  func (s *ExportTableToPointInTimeInput) SetS3Prefix(v string) *ExportTableToPointInTimeInput {
 13585  	s.S3Prefix = &v
 13586  	return s
 13587  }
 13588  
 13589  // SetS3SseAlgorithm sets the S3SseAlgorithm field's value.
 13590  func (s *ExportTableToPointInTimeInput) SetS3SseAlgorithm(v string) *ExportTableToPointInTimeInput {
 13591  	s.S3SseAlgorithm = &v
 13592  	return s
 13593  }
 13594  
 13595  // SetS3SseKmsKeyId sets the S3SseKmsKeyId field's value.
 13596  func (s *ExportTableToPointInTimeInput) SetS3SseKmsKeyId(v string) *ExportTableToPointInTimeInput {
 13597  	s.S3SseKmsKeyId = &v
 13598  	return s
 13599  }
 13600  
 13601  // SetTableArn sets the TableArn field's value.
 13602  func (s *ExportTableToPointInTimeInput) SetTableArn(v string) *ExportTableToPointInTimeInput {
 13603  	s.TableArn = &v
 13604  	return s
 13605  }
 13606  
 13607  type ExportTableToPointInTimeOutput struct {
 13608  	_ struct{} `type:"structure"`
 13609  
 13610  	// Contains a description of the table export.
 13611  	ExportDescription *ExportDescription `type:"structure"`
 13612  }
 13613  
 13614  // String returns the string representation.
 13615  //
 13616  // API parameter values that are decorated as "sensitive" in the API will not
 13617  // be included in the string output. The member name will be present, but the
 13618  // value will be replaced with "sensitive".
 13619  func (s ExportTableToPointInTimeOutput) String() string {
 13620  	return awsutil.Prettify(s)
 13621  }
 13622  
 13623  // GoString returns the string representation.
 13624  //
 13625  // API parameter values that are decorated as "sensitive" in the API will not
 13626  // be included in the string output. The member name will be present, but the
 13627  // value will be replaced with "sensitive".
 13628  func (s ExportTableToPointInTimeOutput) GoString() string {
 13629  	return s.String()
 13630  }
 13631  
 13632  // SetExportDescription sets the ExportDescription field's value.
 13633  func (s *ExportTableToPointInTimeOutput) SetExportDescription(v *ExportDescription) *ExportTableToPointInTimeOutput {
 13634  	s.ExportDescription = v
 13635  	return s
 13636  }
 13637  
 13638  // Represents a failure a contributor insights operation.
 13639  type FailureException struct {
 13640  	_ struct{} `type:"structure"`
 13641  
 13642  	// Description of the failure.
 13643  	ExceptionDescription *string `type:"string"`
 13644  
 13645  	// Exception name.
 13646  	ExceptionName *string `type:"string"`
 13647  }
 13648  
 13649  // String returns the string representation.
 13650  //
 13651  // API parameter values that are decorated as "sensitive" in the API will not
 13652  // be included in the string output. The member name will be present, but the
 13653  // value will be replaced with "sensitive".
 13654  func (s FailureException) String() string {
 13655  	return awsutil.Prettify(s)
 13656  }
 13657  
 13658  // GoString returns the string representation.
 13659  //
 13660  // API parameter values that are decorated as "sensitive" in the API will not
 13661  // be included in the string output. The member name will be present, but the
 13662  // value will be replaced with "sensitive".
 13663  func (s FailureException) GoString() string {
 13664  	return s.String()
 13665  }
 13666  
 13667  // SetExceptionDescription sets the ExceptionDescription field's value.
 13668  func (s *FailureException) SetExceptionDescription(v string) *FailureException {
 13669  	s.ExceptionDescription = &v
 13670  	return s
 13671  }
 13672  
 13673  // SetExceptionName sets the ExceptionName field's value.
 13674  func (s *FailureException) SetExceptionName(v string) *FailureException {
 13675  	s.ExceptionName = &v
 13676  	return s
 13677  }
 13678  
 13679  // Specifies an item and related attribute values to retrieve in a TransactGetItem
 13680  // object.
 13681  type Get struct {
 13682  	_ struct{} `type:"structure"`
 13683  
 13684  	// One or more substitution tokens for attribute names in the ProjectionExpression
 13685  	// parameter.
 13686  	ExpressionAttributeNames map[string]*string `type:"map"`
 13687  
 13688  	// A map of attribute names to AttributeValue objects that specifies the primary
 13689  	// key of the item to retrieve.
 13690  	//
 13691  	// Key is a required field
 13692  	Key map[string]*AttributeValue `type:"map" required:"true"`
 13693  
 13694  	// A string that identifies one or more attributes of the specified item to
 13695  	// retrieve from the table. The attributes in the expression must be separated
 13696  	// by commas. If no attribute names are specified, then all attributes of the
 13697  	// specified item are returned. If any of the requested attributes are not found,
 13698  	// they do not appear in the result.
 13699  	ProjectionExpression *string `type:"string"`
 13700  
 13701  	// The name of the table from which to retrieve the specified item.
 13702  	//
 13703  	// TableName is a required field
 13704  	TableName *string `min:"3" type:"string" required:"true"`
 13705  }
 13706  
 13707  // String returns the string representation.
 13708  //
 13709  // API parameter values that are decorated as "sensitive" in the API will not
 13710  // be included in the string output. The member name will be present, but the
 13711  // value will be replaced with "sensitive".
 13712  func (s Get) String() string {
 13713  	return awsutil.Prettify(s)
 13714  }
 13715  
 13716  // GoString returns the string representation.
 13717  //
 13718  // API parameter values that are decorated as "sensitive" in the API will not
 13719  // be included in the string output. The member name will be present, but the
 13720  // value will be replaced with "sensitive".
 13721  func (s Get) GoString() string {
 13722  	return s.String()
 13723  }
 13724  
 13725  // Validate inspects the fields of the type to determine if they are valid.
 13726  func (s *Get) Validate() error {
 13727  	invalidParams := request.ErrInvalidParams{Context: "Get"}
 13728  	if s.Key == nil {
 13729  		invalidParams.Add(request.NewErrParamRequired("Key"))
 13730  	}
 13731  	if s.TableName == nil {
 13732  		invalidParams.Add(request.NewErrParamRequired("TableName"))
 13733  	}
 13734  	if s.TableName != nil && len(*s.TableName) < 3 {
 13735  		invalidParams.Add(request.NewErrParamMinLen("TableName", 3))
 13736  	}
 13737  
 13738  	if invalidParams.Len() > 0 {
 13739  		return invalidParams
 13740  	}
 13741  	return nil
 13742  }
 13743  
 13744  // SetExpressionAttributeNames sets the ExpressionAttributeNames field's value.
 13745  func (s *Get) SetExpressionAttributeNames(v map[string]*string) *Get {
 13746  	s.ExpressionAttributeNames = v
 13747  	return s
 13748  }
 13749  
 13750  // SetKey sets the Key field's value.
 13751  func (s *Get) SetKey(v map[string]*AttributeValue) *Get {
 13752  	s.Key = v
 13753  	return s
 13754  }
 13755  
 13756  // SetProjectionExpression sets the ProjectionExpression field's value.
 13757  func (s *Get) SetProjectionExpression(v string) *Get {
 13758  	s.ProjectionExpression = &v
 13759  	return s
 13760  }
 13761  
 13762  // SetTableName sets the TableName field's value.
 13763  func (s *Get) SetTableName(v string) *Get {
 13764  	s.TableName = &v
 13765  	return s
 13766  }
 13767  
 13768  // Represents the input of a GetItem operation.
 13769  type GetItemInput struct {
 13770  	_ struct{} `type:"structure"`
 13771  
 13772  	// This is a legacy parameter. Use ProjectionExpression instead. For more information,
 13773  	// see AttributesToGet (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.AttributesToGet.html)
 13774  	// in the Amazon DynamoDB Developer Guide.
 13775  	AttributesToGet []*string `min:"1" type:"list"`
 13776  
 13777  	// Determines the read consistency model: If set to true, then the operation
 13778  	// uses strongly consistent reads; otherwise, the operation uses eventually
 13779  	// consistent reads.
 13780  	ConsistentRead *bool `type:"boolean"`
 13781  
 13782  	// One or more substitution tokens for attribute names in an expression. The
 13783  	// following are some use cases for using ExpressionAttributeNames:
 13784  	//
 13785  	//    * To access an attribute whose name conflicts with a DynamoDB reserved
 13786  	//    word.
 13787  	//
 13788  	//    * To create a placeholder for repeating occurrences of an attribute name
 13789  	//    in an expression.
 13790  	//
 13791  	//    * To prevent special characters in an attribute name from being misinterpreted
 13792  	//    in an expression.
 13793  	//
 13794  	// Use the # character in an expression to dereference an attribute name. For
 13795  	// example, consider the following attribute name:
 13796  	//
 13797  	//    * Percentile
 13798  	//
 13799  	// The name of this attribute conflicts with a reserved word, so it cannot be
 13800  	// used directly in an expression. (For the complete list of reserved words,
 13801  	// see Reserved Words (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html)
 13802  	// in the Amazon DynamoDB Developer Guide). To work around this, you could specify
 13803  	// the following for ExpressionAttributeNames:
 13804  	//
 13805  	//    * {"#P":"Percentile"}
 13806  	//
 13807  	// You could then use this substitution in an expression, as in this example:
 13808  	//
 13809  	//    * #P = :val
 13810  	//
 13811  	// Tokens that begin with the : character are expression attribute values, which
 13812  	// are placeholders for the actual value at runtime.
 13813  	//
 13814  	// For more information on expression attribute names, see Specifying Item Attributes
 13815  	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html)
 13816  	// in the Amazon DynamoDB Developer Guide.
 13817  	ExpressionAttributeNames map[string]*string `type:"map"`
 13818  
 13819  	// A map of attribute names to AttributeValue objects, representing the primary
 13820  	// key of the item to retrieve.
 13821  	//
 13822  	// For the primary key, you must provide all of the attributes. For example,
 13823  	// with a simple primary key, you only need to provide a value for the partition
 13824  	// key. For a composite primary key, you must provide values for both the partition
 13825  	// key and the sort key.
 13826  	//
 13827  	// Key is a required field
 13828  	Key map[string]*AttributeValue `type:"map" required:"true"`
 13829  
 13830  	// A string that identifies one or more attributes to retrieve from the table.
 13831  	// These attributes can include scalars, sets, or elements of a JSON document.
 13832  	// The attributes in the expression must be separated by commas.
 13833  	//
 13834  	// If no attribute names are specified, then all attributes are returned. If
 13835  	// any of the requested attributes are not found, they do not appear in the
 13836  	// result.
 13837  	//
 13838  	// For more information, see Specifying Item Attributes (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html)
 13839  	// in the Amazon DynamoDB Developer Guide.
 13840  	ProjectionExpression *string `type:"string"`
 13841  
 13842  	// Determines the level of detail about provisioned throughput consumption that
 13843  	// is returned in the response:
 13844  	//
 13845  	//    * INDEXES - The response includes the aggregate ConsumedCapacity for the
 13846  	//    operation, together with ConsumedCapacity for each table and secondary
 13847  	//    index that was accessed. Note that some operations, such as GetItem and
 13848  	//    BatchGetItem, do not access any indexes at all. In these cases, specifying
 13849  	//    INDEXES will only return ConsumedCapacity information for table(s).
 13850  	//
 13851  	//    * TOTAL - The response includes only the aggregate ConsumedCapacity for
 13852  	//    the operation.
 13853  	//
 13854  	//    * NONE - No ConsumedCapacity details are included in the response.
 13855  	ReturnConsumedCapacity *string `type:"string" enum:"ReturnConsumedCapacity"`
 13856  
 13857  	// The name of the table containing the requested item.
 13858  	//
 13859  	// TableName is a required field
 13860  	TableName *string `min:"3" type:"string" required:"true"`
 13861  }
 13862  
 13863  // String returns the string representation.
 13864  //
 13865  // API parameter values that are decorated as "sensitive" in the API will not
 13866  // be included in the string output. The member name will be present, but the
 13867  // value will be replaced with "sensitive".
 13868  func (s GetItemInput) String() string {
 13869  	return awsutil.Prettify(s)
 13870  }
 13871  
 13872  // GoString returns the string representation.
 13873  //
 13874  // API parameter values that are decorated as "sensitive" in the API will not
 13875  // be included in the string output. The member name will be present, but the
 13876  // value will be replaced with "sensitive".
 13877  func (s GetItemInput) GoString() string {
 13878  	return s.String()
 13879  }
 13880  
 13881  // Validate inspects the fields of the type to determine if they are valid.
 13882  func (s *GetItemInput) Validate() error {
 13883  	invalidParams := request.ErrInvalidParams{Context: "GetItemInput"}
 13884  	if s.AttributesToGet != nil && len(s.AttributesToGet) < 1 {
 13885  		invalidParams.Add(request.NewErrParamMinLen("AttributesToGet", 1))
 13886  	}
 13887  	if s.Key == nil {
 13888  		invalidParams.Add(request.NewErrParamRequired("Key"))
 13889  	}
 13890  	if s.TableName == nil {
 13891  		invalidParams.Add(request.NewErrParamRequired("TableName"))
 13892  	}
 13893  	if s.TableName != nil && len(*s.TableName) < 3 {
 13894  		invalidParams.Add(request.NewErrParamMinLen("TableName", 3))
 13895  	}
 13896  
 13897  	if invalidParams.Len() > 0 {
 13898  		return invalidParams
 13899  	}
 13900  	return nil
 13901  }
 13902  
 13903  // SetAttributesToGet sets the AttributesToGet field's value.
 13904  func (s *GetItemInput) SetAttributesToGet(v []*string) *GetItemInput {
 13905  	s.AttributesToGet = v
 13906  	return s
 13907  }
 13908  
 13909  // SetConsistentRead sets the ConsistentRead field's value.
 13910  func (s *GetItemInput) SetConsistentRead(v bool) *GetItemInput {
 13911  	s.ConsistentRead = &v
 13912  	return s
 13913  }
 13914  
 13915  // SetExpressionAttributeNames sets the ExpressionAttributeNames field's value.
 13916  func (s *GetItemInput) SetExpressionAttributeNames(v map[string]*string) *GetItemInput {
 13917  	s.ExpressionAttributeNames = v
 13918  	return s
 13919  }
 13920  
 13921  // SetKey sets the Key field's value.
 13922  func (s *GetItemInput) SetKey(v map[string]*AttributeValue) *GetItemInput {
 13923  	s.Key = v
 13924  	return s
 13925  }
 13926  
 13927  // SetProjectionExpression sets the ProjectionExpression field's value.
 13928  func (s *GetItemInput) SetProjectionExpression(v string) *GetItemInput {
 13929  	s.ProjectionExpression = &v
 13930  	return s
 13931  }
 13932  
 13933  // SetReturnConsumedCapacity sets the ReturnConsumedCapacity field's value.
 13934  func (s *GetItemInput) SetReturnConsumedCapacity(v string) *GetItemInput {
 13935  	s.ReturnConsumedCapacity = &v
 13936  	return s
 13937  }
 13938  
 13939  // SetTableName sets the TableName field's value.
 13940  func (s *GetItemInput) SetTableName(v string) *GetItemInput {
 13941  	s.TableName = &v
 13942  	return s
 13943  }
 13944  
 13945  // Represents the output of a GetItem operation.
 13946  type GetItemOutput struct {
 13947  	_ struct{} `type:"structure"`
 13948  
 13949  	// The capacity units consumed by the GetItem operation. The data returned includes
 13950  	// the total provisioned throughput consumed, along with statistics for the
 13951  	// table and any indexes involved in the operation. ConsumedCapacity is only
 13952  	// returned if the ReturnConsumedCapacity parameter was specified. For more
 13953  	// information, see Read/Write Capacity Mode (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html)
 13954  	// in the Amazon DynamoDB Developer Guide.
 13955  	ConsumedCapacity *ConsumedCapacity `type:"structure"`
 13956  
 13957  	// A map of attribute names to AttributeValue objects, as specified by ProjectionExpression.
 13958  	Item map[string]*AttributeValue `type:"map"`
 13959  }
 13960  
 13961  // String returns the string representation.
 13962  //
 13963  // API parameter values that are decorated as "sensitive" in the API will not
 13964  // be included in the string output. The member name will be present, but the
 13965  // value will be replaced with "sensitive".
 13966  func (s GetItemOutput) String() string {
 13967  	return awsutil.Prettify(s)
 13968  }
 13969  
 13970  // GoString returns the string representation.
 13971  //
 13972  // API parameter values that are decorated as "sensitive" in the API will not
 13973  // be included in the string output. The member name will be present, but the
 13974  // value will be replaced with "sensitive".
 13975  func (s GetItemOutput) GoString() string {
 13976  	return s.String()
 13977  }
 13978  
 13979  // SetConsumedCapacity sets the ConsumedCapacity field's value.
 13980  func (s *GetItemOutput) SetConsumedCapacity(v *ConsumedCapacity) *GetItemOutput {
 13981  	s.ConsumedCapacity = v
 13982  	return s
 13983  }
 13984  
 13985  // SetItem sets the Item field's value.
 13986  func (s *GetItemOutput) SetItem(v map[string]*AttributeValue) *GetItemOutput {
 13987  	s.Item = v
 13988  	return s
 13989  }
 13990  
 13991  // Represents the properties of a global secondary index.
 13992  type GlobalSecondaryIndex struct {
 13993  	_ struct{} `type:"structure"`
 13994  
 13995  	// The name of the global secondary index. The name must be unique among all
 13996  	// other indexes on this table.
 13997  	//
 13998  	// IndexName is a required field
 13999  	IndexName *string `min:"3" type:"string" required:"true"`
 14000  
 14001  	// The complete key schema for a global secondary index, which consists of one
 14002  	// or more pairs of attribute names and key types:
 14003  	//
 14004  	//    * HASH - partition key
 14005  	//
 14006  	//    * RANGE - sort key
 14007  	//
 14008  	// The partition key of an item is also known as its hash attribute. The term
 14009  	// "hash attribute" derives from DynamoDB's usage of an internal hash function
 14010  	// to evenly distribute data items across partitions, based on their partition
 14011  	// key values.
 14012  	//
 14013  	// The sort key of an item is also known as its range attribute. The term "range
 14014  	// attribute" derives from the way DynamoDB stores items with the same partition
 14015  	// key physically close together, in sorted order by the sort key value.
 14016  	//
 14017  	// KeySchema is a required field
 14018  	KeySchema []*KeySchemaElement `min:"1" type:"list" required:"true"`
 14019  
 14020  	// Represents attributes that are copied (projected) from the table into the
 14021  	// global secondary index. These are in addition to the primary key attributes
 14022  	// and index key attributes, which are automatically projected.
 14023  	//
 14024  	// Projection is a required field
 14025  	Projection *Projection `type:"structure" required:"true"`
 14026  
 14027  	// Represents the provisioned throughput settings for the specified global secondary
 14028  	// index.
 14029  	//
 14030  	// For current minimum and maximum provisioned throughput values, see Service,
 14031  	// Account, and Table Quotas (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html)
 14032  	// in the Amazon DynamoDB Developer Guide.
 14033  	ProvisionedThroughput *ProvisionedThroughput `type:"structure"`
 14034  }
 14035  
 14036  // String returns the string representation.
 14037  //
 14038  // API parameter values that are decorated as "sensitive" in the API will not
 14039  // be included in the string output. The member name will be present, but the
 14040  // value will be replaced with "sensitive".
 14041  func (s GlobalSecondaryIndex) String() string {
 14042  	return awsutil.Prettify(s)
 14043  }
 14044  
 14045  // GoString returns the string representation.
 14046  //
 14047  // API parameter values that are decorated as "sensitive" in the API will not
 14048  // be included in the string output. The member name will be present, but the
 14049  // value will be replaced with "sensitive".
 14050  func (s GlobalSecondaryIndex) GoString() string {
 14051  	return s.String()
 14052  }
 14053  
 14054  // Validate inspects the fields of the type to determine if they are valid.
 14055  func (s *GlobalSecondaryIndex) Validate() error {
 14056  	invalidParams := request.ErrInvalidParams{Context: "GlobalSecondaryIndex"}
 14057  	if s.IndexName == nil {
 14058  		invalidParams.Add(request.NewErrParamRequired("IndexName"))
 14059  	}
 14060  	if s.IndexName != nil && len(*s.IndexName) < 3 {
 14061  		invalidParams.Add(request.NewErrParamMinLen("IndexName", 3))
 14062  	}
 14063  	if s.KeySchema == nil {
 14064  		invalidParams.Add(request.NewErrParamRequired("KeySchema"))
 14065  	}
 14066  	if s.KeySchema != nil && len(s.KeySchema) < 1 {
 14067  		invalidParams.Add(request.NewErrParamMinLen("KeySchema", 1))
 14068  	}
 14069  	if s.Projection == nil {
 14070  		invalidParams.Add(request.NewErrParamRequired("Projection"))
 14071  	}
 14072  	if s.KeySchema != nil {
 14073  		for i, v := range s.KeySchema {
 14074  			if v == nil {
 14075  				continue
 14076  			}
 14077  			if err := v.Validate(); err != nil {
 14078  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "KeySchema", i), err.(request.ErrInvalidParams))
 14079  			}
 14080  		}
 14081  	}
 14082  	if s.Projection != nil {
 14083  		if err := s.Projection.Validate(); err != nil {
 14084  			invalidParams.AddNested("Projection", err.(request.ErrInvalidParams))
 14085  		}
 14086  	}
 14087  	if s.ProvisionedThroughput != nil {
 14088  		if err := s.ProvisionedThroughput.Validate(); err != nil {
 14089  			invalidParams.AddNested("ProvisionedThroughput", err.(request.ErrInvalidParams))
 14090  		}
 14091  	}
 14092  
 14093  	if invalidParams.Len() > 0 {
 14094  		return invalidParams
 14095  	}
 14096  	return nil
 14097  }
 14098  
 14099  // SetIndexName sets the IndexName field's value.
 14100  func (s *GlobalSecondaryIndex) SetIndexName(v string) *GlobalSecondaryIndex {
 14101  	s.IndexName = &v
 14102  	return s
 14103  }
 14104  
 14105  // SetKeySchema sets the KeySchema field's value.
 14106  func (s *GlobalSecondaryIndex) SetKeySchema(v []*KeySchemaElement) *GlobalSecondaryIndex {
 14107  	s.KeySchema = v
 14108  	return s
 14109  }
 14110  
 14111  // SetProjection sets the Projection field's value.
 14112  func (s *GlobalSecondaryIndex) SetProjection(v *Projection) *GlobalSecondaryIndex {
 14113  	s.Projection = v
 14114  	return s
 14115  }
 14116  
 14117  // SetProvisionedThroughput sets the ProvisionedThroughput field's value.
 14118  func (s *GlobalSecondaryIndex) SetProvisionedThroughput(v *ProvisionedThroughput) *GlobalSecondaryIndex {
 14119  	s.ProvisionedThroughput = v
 14120  	return s
 14121  }
 14122  
 14123  // Represents the auto scaling settings of a global secondary index for a global
 14124  // table that will be modified.
 14125  type GlobalSecondaryIndexAutoScalingUpdate struct {
 14126  	_ struct{} `type:"structure"`
 14127  
 14128  	// The name of the global secondary index.
 14129  	IndexName *string `min:"3" type:"string"`
 14130  
 14131  	// Represents the auto scaling settings to be modified for a global table or
 14132  	// global secondary index.
 14133  	ProvisionedWriteCapacityAutoScalingUpdate *AutoScalingSettingsUpdate `type:"structure"`
 14134  }
 14135  
 14136  // String returns the string representation.
 14137  //
 14138  // API parameter values that are decorated as "sensitive" in the API will not
 14139  // be included in the string output. The member name will be present, but the
 14140  // value will be replaced with "sensitive".
 14141  func (s GlobalSecondaryIndexAutoScalingUpdate) String() string {
 14142  	return awsutil.Prettify(s)
 14143  }
 14144  
 14145  // GoString returns the string representation.
 14146  //
 14147  // API parameter values that are decorated as "sensitive" in the API will not
 14148  // be included in the string output. The member name will be present, but the
 14149  // value will be replaced with "sensitive".
 14150  func (s GlobalSecondaryIndexAutoScalingUpdate) GoString() string {
 14151  	return s.String()
 14152  }
 14153  
 14154  // Validate inspects the fields of the type to determine if they are valid.
 14155  func (s *GlobalSecondaryIndexAutoScalingUpdate) Validate() error {
 14156  	invalidParams := request.ErrInvalidParams{Context: "GlobalSecondaryIndexAutoScalingUpdate"}
 14157  	if s.IndexName != nil && len(*s.IndexName) < 3 {
 14158  		invalidParams.Add(request.NewErrParamMinLen("IndexName", 3))
 14159  	}
 14160  	if s.ProvisionedWriteCapacityAutoScalingUpdate != nil {
 14161  		if err := s.ProvisionedWriteCapacityAutoScalingUpdate.Validate(); err != nil {
 14162  			invalidParams.AddNested("ProvisionedWriteCapacityAutoScalingUpdate", err.(request.ErrInvalidParams))
 14163  		}
 14164  	}
 14165  
 14166  	if invalidParams.Len() > 0 {
 14167  		return invalidParams
 14168  	}
 14169  	return nil
 14170  }
 14171  
 14172  // SetIndexName sets the IndexName field's value.
 14173  func (s *GlobalSecondaryIndexAutoScalingUpdate) SetIndexName(v string) *GlobalSecondaryIndexAutoScalingUpdate {
 14174  	s.IndexName = &v
 14175  	return s
 14176  }
 14177  
 14178  // SetProvisionedWriteCapacityAutoScalingUpdate sets the ProvisionedWriteCapacityAutoScalingUpdate field's value.
 14179  func (s *GlobalSecondaryIndexAutoScalingUpdate) SetProvisionedWriteCapacityAutoScalingUpdate(v *AutoScalingSettingsUpdate) *GlobalSecondaryIndexAutoScalingUpdate {
 14180  	s.ProvisionedWriteCapacityAutoScalingUpdate = v
 14181  	return s
 14182  }
 14183  
 14184  // Represents the properties of a global secondary index.
 14185  type GlobalSecondaryIndexDescription struct {
 14186  	_ struct{} `type:"structure"`
 14187  
 14188  	// Indicates whether the index is currently backfilling. Backfilling is the
 14189  	// process of reading items from the table and determining whether they can
 14190  	// be added to the index. (Not all items will qualify: For example, a partition
 14191  	// key cannot have any duplicate values.) If an item can be added to the index,
 14192  	// DynamoDB will do so. After all items have been processed, the backfilling
 14193  	// operation is complete and Backfilling is false.
 14194  	//
 14195  	// You can delete an index that is being created during the Backfilling phase
 14196  	// when IndexStatus is set to CREATING and Backfilling is true. You can't delete
 14197  	// the index that is being created when IndexStatus is set to CREATING and Backfilling
 14198  	// is false.
 14199  	//
 14200  	// For indexes that were created during a CreateTable operation, the Backfilling
 14201  	// attribute does not appear in the DescribeTable output.
 14202  	Backfilling *bool `type:"boolean"`
 14203  
 14204  	// The Amazon Resource Name (ARN) that uniquely identifies the index.
 14205  	IndexArn *string `type:"string"`
 14206  
 14207  	// The name of the global secondary index.
 14208  	IndexName *string `min:"3" type:"string"`
 14209  
 14210  	// The total size of the specified index, in bytes. DynamoDB updates this value
 14211  	// approximately every six hours. Recent changes might not be reflected in this
 14212  	// value.
 14213  	IndexSizeBytes *int64 `type:"long"`
 14214  
 14215  	// The current state of the global secondary index:
 14216  	//
 14217  	//    * CREATING - The index is being created.
 14218  	//
 14219  	//    * UPDATING - The index is being updated.
 14220  	//
 14221  	//    * DELETING - The index is being deleted.
 14222  	//
 14223  	//    * ACTIVE - The index is ready for use.
 14224  	IndexStatus *string `type:"string" enum:"IndexStatus"`
 14225  
 14226  	// The number of items in the specified index. DynamoDB updates this value approximately
 14227  	// every six hours. Recent changes might not be reflected in this value.
 14228  	ItemCount *int64 `type:"long"`
 14229  
 14230  	// The complete key schema for a global secondary index, which consists of one
 14231  	// or more pairs of attribute names and key types:
 14232  	//
 14233  	//    * HASH - partition key
 14234  	//
 14235  	//    * RANGE - sort key
 14236  	//
 14237  	// The partition key of an item is also known as its hash attribute. The term
 14238  	// "hash attribute" derives from DynamoDB's usage of an internal hash function
 14239  	// to evenly distribute data items across partitions, based on their partition
 14240  	// key values.
 14241  	//
 14242  	// The sort key of an item is also known as its range attribute. The term "range
 14243  	// attribute" derives from the way DynamoDB stores items with the same partition
 14244  	// key physically close together, in sorted order by the sort key value.
 14245  	KeySchema []*KeySchemaElement `min:"1" type:"list"`
 14246  
 14247  	// Represents attributes that are copied (projected) from the table into the
 14248  	// global secondary index. These are in addition to the primary key attributes
 14249  	// and index key attributes, which are automatically projected.
 14250  	Projection *Projection `type:"structure"`
 14251  
 14252  	// Represents the provisioned throughput settings for the specified global secondary
 14253  	// index.
 14254  	//
 14255  	// For current minimum and maximum provisioned throughput values, see Service,
 14256  	// Account, and Table Quotas (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html)
 14257  	// in the Amazon DynamoDB Developer Guide.
 14258  	ProvisionedThroughput *ProvisionedThroughputDescription `type:"structure"`
 14259  }
 14260  
 14261  // String returns the string representation.
 14262  //
 14263  // API parameter values that are decorated as "sensitive" in the API will not
 14264  // be included in the string output. The member name will be present, but the
 14265  // value will be replaced with "sensitive".
 14266  func (s GlobalSecondaryIndexDescription) String() string {
 14267  	return awsutil.Prettify(s)
 14268  }
 14269  
 14270  // GoString returns the string representation.
 14271  //
 14272  // API parameter values that are decorated as "sensitive" in the API will not
 14273  // be included in the string output. The member name will be present, but the
 14274  // value will be replaced with "sensitive".
 14275  func (s GlobalSecondaryIndexDescription) GoString() string {
 14276  	return s.String()
 14277  }
 14278  
 14279  // SetBackfilling sets the Backfilling field's value.
 14280  func (s *GlobalSecondaryIndexDescription) SetBackfilling(v bool) *GlobalSecondaryIndexDescription {
 14281  	s.Backfilling = &v
 14282  	return s
 14283  }
 14284  
 14285  // SetIndexArn sets the IndexArn field's value.
 14286  func (s *GlobalSecondaryIndexDescription) SetIndexArn(v string) *GlobalSecondaryIndexDescription {
 14287  	s.IndexArn = &v
 14288  	return s
 14289  }
 14290  
 14291  // SetIndexName sets the IndexName field's value.
 14292  func (s *GlobalSecondaryIndexDescription) SetIndexName(v string) *GlobalSecondaryIndexDescription {
 14293  	s.IndexName = &v
 14294  	return s
 14295  }
 14296  
 14297  // SetIndexSizeBytes sets the IndexSizeBytes field's value.
 14298  func (s *GlobalSecondaryIndexDescription) SetIndexSizeBytes(v int64) *GlobalSecondaryIndexDescription {
 14299  	s.IndexSizeBytes = &v
 14300  	return s
 14301  }
 14302  
 14303  // SetIndexStatus sets the IndexStatus field's value.
 14304  func (s *GlobalSecondaryIndexDescription) SetIndexStatus(v string) *GlobalSecondaryIndexDescription {
 14305  	s.IndexStatus = &v
 14306  	return s
 14307  }
 14308  
 14309  // SetItemCount sets the ItemCount field's value.
 14310  func (s *GlobalSecondaryIndexDescription) SetItemCount(v int64) *GlobalSecondaryIndexDescription {
 14311  	s.ItemCount = &v
 14312  	return s
 14313  }
 14314  
 14315  // SetKeySchema sets the KeySchema field's value.
 14316  func (s *GlobalSecondaryIndexDescription) SetKeySchema(v []*KeySchemaElement) *GlobalSecondaryIndexDescription {
 14317  	s.KeySchema = v
 14318  	return s
 14319  }
 14320  
 14321  // SetProjection sets the Projection field's value.
 14322  func (s *GlobalSecondaryIndexDescription) SetProjection(v *Projection) *GlobalSecondaryIndexDescription {
 14323  	s.Projection = v
 14324  	return s
 14325  }
 14326  
 14327  // SetProvisionedThroughput sets the ProvisionedThroughput field's value.
 14328  func (s *GlobalSecondaryIndexDescription) SetProvisionedThroughput(v *ProvisionedThroughputDescription) *GlobalSecondaryIndexDescription {
 14329  	s.ProvisionedThroughput = v
 14330  	return s
 14331  }
 14332  
 14333  // Represents the properties of a global secondary index for the table when
 14334  // the backup was created.
 14335  type GlobalSecondaryIndexInfo struct {
 14336  	_ struct{} `type:"structure"`
 14337  
 14338  	// The name of the global secondary index.
 14339  	IndexName *string `min:"3" type:"string"`
 14340  
 14341  	// The complete key schema for a global secondary index, which consists of one
 14342  	// or more pairs of attribute names and key types:
 14343  	//
 14344  	//    * HASH - partition key
 14345  	//
 14346  	//    * RANGE - sort key
 14347  	//
 14348  	// The partition key of an item is also known as its hash attribute. The term
 14349  	// "hash attribute" derives from DynamoDB's usage of an internal hash function
 14350  	// to evenly distribute data items across partitions, based on their partition
 14351  	// key values.
 14352  	//
 14353  	// The sort key of an item is also known as its range attribute. The term "range
 14354  	// attribute" derives from the way DynamoDB stores items with the same partition
 14355  	// key physically close together, in sorted order by the sort key value.
 14356  	KeySchema []*KeySchemaElement `min:"1" type:"list"`
 14357  
 14358  	// Represents attributes that are copied (projected) from the table into the
 14359  	// global secondary index. These are in addition to the primary key attributes
 14360  	// and index key attributes, which are automatically projected.
 14361  	Projection *Projection `type:"structure"`
 14362  
 14363  	// Represents the provisioned throughput settings for the specified global secondary
 14364  	// index.
 14365  	ProvisionedThroughput *ProvisionedThroughput `type:"structure"`
 14366  }
 14367  
 14368  // String returns the string representation.
 14369  //
 14370  // API parameter values that are decorated as "sensitive" in the API will not
 14371  // be included in the string output. The member name will be present, but the
 14372  // value will be replaced with "sensitive".
 14373  func (s GlobalSecondaryIndexInfo) String() string {
 14374  	return awsutil.Prettify(s)
 14375  }
 14376  
 14377  // GoString returns the string representation.
 14378  //
 14379  // API parameter values that are decorated as "sensitive" in the API will not
 14380  // be included in the string output. The member name will be present, but the
 14381  // value will be replaced with "sensitive".
 14382  func (s GlobalSecondaryIndexInfo) GoString() string {
 14383  	return s.String()
 14384  }
 14385  
 14386  // SetIndexName sets the IndexName field's value.
 14387  func (s *GlobalSecondaryIndexInfo) SetIndexName(v string) *GlobalSecondaryIndexInfo {
 14388  	s.IndexName = &v
 14389  	return s
 14390  }
 14391  
 14392  // SetKeySchema sets the KeySchema field's value.
 14393  func (s *GlobalSecondaryIndexInfo) SetKeySchema(v []*KeySchemaElement) *GlobalSecondaryIndexInfo {
 14394  	s.KeySchema = v
 14395  	return s
 14396  }
 14397  
 14398  // SetProjection sets the Projection field's value.
 14399  func (s *GlobalSecondaryIndexInfo) SetProjection(v *Projection) *GlobalSecondaryIndexInfo {
 14400  	s.Projection = v
 14401  	return s
 14402  }
 14403  
 14404  // SetProvisionedThroughput sets the ProvisionedThroughput field's value.
 14405  func (s *GlobalSecondaryIndexInfo) SetProvisionedThroughput(v *ProvisionedThroughput) *GlobalSecondaryIndexInfo {
 14406  	s.ProvisionedThroughput = v
 14407  	return s
 14408  }
 14409  
 14410  // Represents one of the following:
 14411  //
 14412  //    * A new global secondary index to be added to an existing table.
 14413  //
 14414  //    * New provisioned throughput parameters for an existing global secondary
 14415  //    index.
 14416  //
 14417  //    * An existing global secondary index to be removed from an existing table.
 14418  type GlobalSecondaryIndexUpdate struct {
 14419  	_ struct{} `type:"structure"`
 14420  
 14421  	// The parameters required for creating a global secondary index on an existing
 14422  	// table:
 14423  	//
 14424  	//    * IndexName
 14425  	//
 14426  	//    * KeySchema
 14427  	//
 14428  	//    * AttributeDefinitions
 14429  	//
 14430  	//    * Projection
 14431  	//
 14432  	//    * ProvisionedThroughput
 14433  	Create *CreateGlobalSecondaryIndexAction `type:"structure"`
 14434  
 14435  	// The name of an existing global secondary index to be removed.
 14436  	Delete *DeleteGlobalSecondaryIndexAction `type:"structure"`
 14437  
 14438  	// The name of an existing global secondary index, along with new provisioned
 14439  	// throughput settings to be applied to that index.
 14440  	Update *UpdateGlobalSecondaryIndexAction `type:"structure"`
 14441  }
 14442  
 14443  // String returns the string representation.
 14444  //
 14445  // API parameter values that are decorated as "sensitive" in the API will not
 14446  // be included in the string output. The member name will be present, but the
 14447  // value will be replaced with "sensitive".
 14448  func (s GlobalSecondaryIndexUpdate) String() string {
 14449  	return awsutil.Prettify(s)
 14450  }
 14451  
 14452  // GoString returns the string representation.
 14453  //
 14454  // API parameter values that are decorated as "sensitive" in the API will not
 14455  // be included in the string output. The member name will be present, but the
 14456  // value will be replaced with "sensitive".
 14457  func (s GlobalSecondaryIndexUpdate) GoString() string {
 14458  	return s.String()
 14459  }
 14460  
 14461  // Validate inspects the fields of the type to determine if they are valid.
 14462  func (s *GlobalSecondaryIndexUpdate) Validate() error {
 14463  	invalidParams := request.ErrInvalidParams{Context: "GlobalSecondaryIndexUpdate"}
 14464  	if s.Create != nil {
 14465  		if err := s.Create.Validate(); err != nil {
 14466  			invalidParams.AddNested("Create", err.(request.ErrInvalidParams))
 14467  		}
 14468  	}
 14469  	if s.Delete != nil {
 14470  		if err := s.Delete.Validate(); err != nil {
 14471  			invalidParams.AddNested("Delete", err.(request.ErrInvalidParams))
 14472  		}
 14473  	}
 14474  	if s.Update != nil {
 14475  		if err := s.Update.Validate(); err != nil {
 14476  			invalidParams.AddNested("Update", err.(request.ErrInvalidParams))
 14477  		}
 14478  	}
 14479  
 14480  	if invalidParams.Len() > 0 {
 14481  		return invalidParams
 14482  	}
 14483  	return nil
 14484  }
 14485  
 14486  // SetCreate sets the Create field's value.
 14487  func (s *GlobalSecondaryIndexUpdate) SetCreate(v *CreateGlobalSecondaryIndexAction) *GlobalSecondaryIndexUpdate {
 14488  	s.Create = v
 14489  	return s
 14490  }
 14491  
 14492  // SetDelete sets the Delete field's value.
 14493  func (s *GlobalSecondaryIndexUpdate) SetDelete(v *DeleteGlobalSecondaryIndexAction) *GlobalSecondaryIndexUpdate {
 14494  	s.Delete = v
 14495  	return s
 14496  }
 14497  
 14498  // SetUpdate sets the Update field's value.
 14499  func (s *GlobalSecondaryIndexUpdate) SetUpdate(v *UpdateGlobalSecondaryIndexAction) *GlobalSecondaryIndexUpdate {
 14500  	s.Update = v
 14501  	return s
 14502  }
 14503  
 14504  // Represents the properties of a global table.
 14505  type GlobalTable struct {
 14506  	_ struct{} `type:"structure"`
 14507  
 14508  	// The global table name.
 14509  	GlobalTableName *string `min:"3" type:"string"`
 14510  
 14511  	// The Regions where the global table has replicas.
 14512  	ReplicationGroup []*Replica `type:"list"`
 14513  }
 14514  
 14515  // String returns the string representation.
 14516  //
 14517  // API parameter values that are decorated as "sensitive" in the API will not
 14518  // be included in the string output. The member name will be present, but the
 14519  // value will be replaced with "sensitive".
 14520  func (s GlobalTable) String() string {
 14521  	return awsutil.Prettify(s)
 14522  }
 14523  
 14524  // GoString returns the string representation.
 14525  //
 14526  // API parameter values that are decorated as "sensitive" in the API will not
 14527  // be included in the string output. The member name will be present, but the
 14528  // value will be replaced with "sensitive".
 14529  func (s GlobalTable) GoString() string {
 14530  	return s.String()
 14531  }
 14532  
 14533  // SetGlobalTableName sets the GlobalTableName field's value.
 14534  func (s *GlobalTable) SetGlobalTableName(v string) *GlobalTable {
 14535  	s.GlobalTableName = &v
 14536  	return s
 14537  }
 14538  
 14539  // SetReplicationGroup sets the ReplicationGroup field's value.
 14540  func (s *GlobalTable) SetReplicationGroup(v []*Replica) *GlobalTable {
 14541  	s.ReplicationGroup = v
 14542  	return s
 14543  }
 14544  
 14545  // The specified global table already exists.
 14546  type GlobalTableAlreadyExistsException struct {
 14547  	_            struct{}                  `type:"structure"`
 14548  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 14549  
 14550  	Message_ *string `locationName:"message" type:"string"`
 14551  }
 14552  
 14553  // String returns the string representation.
 14554  //
 14555  // API parameter values that are decorated as "sensitive" in the API will not
 14556  // be included in the string output. The member name will be present, but the
 14557  // value will be replaced with "sensitive".
 14558  func (s GlobalTableAlreadyExistsException) String() string {
 14559  	return awsutil.Prettify(s)
 14560  }
 14561  
 14562  // GoString returns the string representation.
 14563  //
 14564  // API parameter values that are decorated as "sensitive" in the API will not
 14565  // be included in the string output. The member name will be present, but the
 14566  // value will be replaced with "sensitive".
 14567  func (s GlobalTableAlreadyExistsException) GoString() string {
 14568  	return s.String()
 14569  }
 14570  
 14571  func newErrorGlobalTableAlreadyExistsException(v protocol.ResponseMetadata) error {
 14572  	return &GlobalTableAlreadyExistsException{
 14573  		RespMetadata: v,
 14574  	}
 14575  }
 14576  
 14577  // Code returns the exception type name.
 14578  func (s *GlobalTableAlreadyExistsException) Code() string {
 14579  	return "GlobalTableAlreadyExistsException"
 14580  }
 14581  
 14582  // Message returns the exception's message.
 14583  func (s *GlobalTableAlreadyExistsException) Message() string {
 14584  	if s.Message_ != nil {
 14585  		return *s.Message_
 14586  	}
 14587  	return ""
 14588  }
 14589  
 14590  // OrigErr always returns nil, satisfies awserr.Error interface.
 14591  func (s *GlobalTableAlreadyExistsException) OrigErr() error {
 14592  	return nil
 14593  }
 14594  
 14595  func (s *GlobalTableAlreadyExistsException) Error() string {
 14596  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 14597  }
 14598  
 14599  // Status code returns the HTTP status code for the request's response error.
 14600  func (s *GlobalTableAlreadyExistsException) StatusCode() int {
 14601  	return s.RespMetadata.StatusCode
 14602  }
 14603  
 14604  // RequestID returns the service's response RequestID for request.
 14605  func (s *GlobalTableAlreadyExistsException) RequestID() string {
 14606  	return s.RespMetadata.RequestID
 14607  }
 14608  
 14609  // Contains details about the global table.
 14610  type GlobalTableDescription struct {
 14611  	_ struct{} `type:"structure"`
 14612  
 14613  	// The creation time of the global table.
 14614  	CreationDateTime *time.Time `type:"timestamp"`
 14615  
 14616  	// The unique identifier of the global table.
 14617  	GlobalTableArn *string `type:"string"`
 14618  
 14619  	// The global table name.
 14620  	GlobalTableName *string `min:"3" type:"string"`
 14621  
 14622  	// The current state of the global table:
 14623  	//
 14624  	//    * CREATING - The global table is being created.
 14625  	//
 14626  	//    * UPDATING - The global table is being updated.
 14627  	//
 14628  	//    * DELETING - The global table is being deleted.
 14629  	//
 14630  	//    * ACTIVE - The global table is ready for use.
 14631  	GlobalTableStatus *string `type:"string" enum:"GlobalTableStatus"`
 14632  
 14633  	// The Regions where the global table has replicas.
 14634  	ReplicationGroup []*ReplicaDescription `type:"list"`
 14635  }
 14636  
 14637  // String returns the string representation.
 14638  //
 14639  // API parameter values that are decorated as "sensitive" in the API will not
 14640  // be included in the string output. The member name will be present, but the
 14641  // value will be replaced with "sensitive".
 14642  func (s GlobalTableDescription) String() string {
 14643  	return awsutil.Prettify(s)
 14644  }
 14645  
 14646  // GoString returns the string representation.
 14647  //
 14648  // API parameter values that are decorated as "sensitive" in the API will not
 14649  // be included in the string output. The member name will be present, but the
 14650  // value will be replaced with "sensitive".
 14651  func (s GlobalTableDescription) GoString() string {
 14652  	return s.String()
 14653  }
 14654  
 14655  // SetCreationDateTime sets the CreationDateTime field's value.
 14656  func (s *GlobalTableDescription) SetCreationDateTime(v time.Time) *GlobalTableDescription {
 14657  	s.CreationDateTime = &v
 14658  	return s
 14659  }
 14660  
 14661  // SetGlobalTableArn sets the GlobalTableArn field's value.
 14662  func (s *GlobalTableDescription) SetGlobalTableArn(v string) *GlobalTableDescription {
 14663  	s.GlobalTableArn = &v
 14664  	return s
 14665  }
 14666  
 14667  // SetGlobalTableName sets the GlobalTableName field's value.
 14668  func (s *GlobalTableDescription) SetGlobalTableName(v string) *GlobalTableDescription {
 14669  	s.GlobalTableName = &v
 14670  	return s
 14671  }
 14672  
 14673  // SetGlobalTableStatus sets the GlobalTableStatus field's value.
 14674  func (s *GlobalTableDescription) SetGlobalTableStatus(v string) *GlobalTableDescription {
 14675  	s.GlobalTableStatus = &v
 14676  	return s
 14677  }
 14678  
 14679  // SetReplicationGroup sets the ReplicationGroup field's value.
 14680  func (s *GlobalTableDescription) SetReplicationGroup(v []*ReplicaDescription) *GlobalTableDescription {
 14681  	s.ReplicationGroup = v
 14682  	return s
 14683  }
 14684  
 14685  // Represents the settings of a global secondary index for a global table that
 14686  // will be modified.
 14687  type GlobalTableGlobalSecondaryIndexSettingsUpdate struct {
 14688  	_ struct{} `type:"structure"`
 14689  
 14690  	// The name of the global secondary index. The name must be unique among all
 14691  	// other indexes on this table.
 14692  	//
 14693  	// IndexName is a required field
 14694  	IndexName *string `min:"3" type:"string" required:"true"`
 14695  
 14696  	// Auto scaling settings for managing a global secondary index's write capacity
 14697  	// units.
 14698  	ProvisionedWriteCapacityAutoScalingSettingsUpdate *AutoScalingSettingsUpdate `type:"structure"`
 14699  
 14700  	// The maximum number of writes consumed per second before DynamoDB returns
 14701  	// a ThrottlingException.
 14702  	ProvisionedWriteCapacityUnits *int64 `min:"1" type:"long"`
 14703  }
 14704  
 14705  // String returns the string representation.
 14706  //
 14707  // API parameter values that are decorated as "sensitive" in the API will not
 14708  // be included in the string output. The member name will be present, but the
 14709  // value will be replaced with "sensitive".
 14710  func (s GlobalTableGlobalSecondaryIndexSettingsUpdate) String() string {
 14711  	return awsutil.Prettify(s)
 14712  }
 14713  
 14714  // GoString returns the string representation.
 14715  //
 14716  // API parameter values that are decorated as "sensitive" in the API will not
 14717  // be included in the string output. The member name will be present, but the
 14718  // value will be replaced with "sensitive".
 14719  func (s GlobalTableGlobalSecondaryIndexSettingsUpdate) GoString() string {
 14720  	return s.String()
 14721  }
 14722  
 14723  // Validate inspects the fields of the type to determine if they are valid.
 14724  func (s *GlobalTableGlobalSecondaryIndexSettingsUpdate) Validate() error {
 14725  	invalidParams := request.ErrInvalidParams{Context: "GlobalTableGlobalSecondaryIndexSettingsUpdate"}
 14726  	if s.IndexName == nil {
 14727  		invalidParams.Add(request.NewErrParamRequired("IndexName"))
 14728  	}
 14729  	if s.IndexName != nil && len(*s.IndexName) < 3 {
 14730  		invalidParams.Add(request.NewErrParamMinLen("IndexName", 3))
 14731  	}
 14732  	if s.ProvisionedWriteCapacityUnits != nil && *s.ProvisionedWriteCapacityUnits < 1 {
 14733  		invalidParams.Add(request.NewErrParamMinValue("ProvisionedWriteCapacityUnits", 1))
 14734  	}
 14735  	if s.ProvisionedWriteCapacityAutoScalingSettingsUpdate != nil {
 14736  		if err := s.ProvisionedWriteCapacityAutoScalingSettingsUpdate.Validate(); err != nil {
 14737  			invalidParams.AddNested("ProvisionedWriteCapacityAutoScalingSettingsUpdate", err.(request.ErrInvalidParams))
 14738  		}
 14739  	}
 14740  
 14741  	if invalidParams.Len() > 0 {
 14742  		return invalidParams
 14743  	}
 14744  	return nil
 14745  }
 14746  
 14747  // SetIndexName sets the IndexName field's value.
 14748  func (s *GlobalTableGlobalSecondaryIndexSettingsUpdate) SetIndexName(v string) *GlobalTableGlobalSecondaryIndexSettingsUpdate {
 14749  	s.IndexName = &v
 14750  	return s
 14751  }
 14752  
 14753  // SetProvisionedWriteCapacityAutoScalingSettingsUpdate sets the ProvisionedWriteCapacityAutoScalingSettingsUpdate field's value.
 14754  func (s *GlobalTableGlobalSecondaryIndexSettingsUpdate) SetProvisionedWriteCapacityAutoScalingSettingsUpdate(v *AutoScalingSettingsUpdate) *GlobalTableGlobalSecondaryIndexSettingsUpdate {
 14755  	s.ProvisionedWriteCapacityAutoScalingSettingsUpdate = v
 14756  	return s
 14757  }
 14758  
 14759  // SetProvisionedWriteCapacityUnits sets the ProvisionedWriteCapacityUnits field's value.
 14760  func (s *GlobalTableGlobalSecondaryIndexSettingsUpdate) SetProvisionedWriteCapacityUnits(v int64) *GlobalTableGlobalSecondaryIndexSettingsUpdate {
 14761  	s.ProvisionedWriteCapacityUnits = &v
 14762  	return s
 14763  }
 14764  
 14765  // The specified global table does not exist.
 14766  type GlobalTableNotFoundException struct {
 14767  	_            struct{}                  `type:"structure"`
 14768  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 14769  
 14770  	Message_ *string `locationName:"message" type:"string"`
 14771  }
 14772  
 14773  // String returns the string representation.
 14774  //
 14775  // API parameter values that are decorated as "sensitive" in the API will not
 14776  // be included in the string output. The member name will be present, but the
 14777  // value will be replaced with "sensitive".
 14778  func (s GlobalTableNotFoundException) String() string {
 14779  	return awsutil.Prettify(s)
 14780  }
 14781  
 14782  // GoString returns the string representation.
 14783  //
 14784  // API parameter values that are decorated as "sensitive" in the API will not
 14785  // be included in the string output. The member name will be present, but the
 14786  // value will be replaced with "sensitive".
 14787  func (s GlobalTableNotFoundException) GoString() string {
 14788  	return s.String()
 14789  }
 14790  
 14791  func newErrorGlobalTableNotFoundException(v protocol.ResponseMetadata) error {
 14792  	return &GlobalTableNotFoundException{
 14793  		RespMetadata: v,
 14794  	}
 14795  }
 14796  
 14797  // Code returns the exception type name.
 14798  func (s *GlobalTableNotFoundException) Code() string {
 14799  	return "GlobalTableNotFoundException"
 14800  }
 14801  
 14802  // Message returns the exception's message.
 14803  func (s *GlobalTableNotFoundException) Message() string {
 14804  	if s.Message_ != nil {
 14805  		return *s.Message_
 14806  	}
 14807  	return ""
 14808  }
 14809  
 14810  // OrigErr always returns nil, satisfies awserr.Error interface.
 14811  func (s *GlobalTableNotFoundException) OrigErr() error {
 14812  	return nil
 14813  }
 14814  
 14815  func (s *GlobalTableNotFoundException) Error() string {
 14816  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 14817  }
 14818  
 14819  // Status code returns the HTTP status code for the request's response error.
 14820  func (s *GlobalTableNotFoundException) StatusCode() int {
 14821  	return s.RespMetadata.StatusCode
 14822  }
 14823  
 14824  // RequestID returns the service's response RequestID for request.
 14825  func (s *GlobalTableNotFoundException) RequestID() string {
 14826  	return s.RespMetadata.RequestID
 14827  }
 14828  
 14829  // DynamoDB rejected the request because you retried a request with a different
 14830  // payload but with an idempotent token that was already used.
 14831  type IdempotentParameterMismatchException struct {
 14832  	_            struct{}                  `type:"structure"`
 14833  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 14834  
 14835  	Message_ *string `locationName:"Message" type:"string"`
 14836  }
 14837  
 14838  // String returns the string representation.
 14839  //
 14840  // API parameter values that are decorated as "sensitive" in the API will not
 14841  // be included in the string output. The member name will be present, but the
 14842  // value will be replaced with "sensitive".
 14843  func (s IdempotentParameterMismatchException) String() string {
 14844  	return awsutil.Prettify(s)
 14845  }
 14846  
 14847  // GoString returns the string representation.
 14848  //
 14849  // API parameter values that are decorated as "sensitive" in the API will not
 14850  // be included in the string output. The member name will be present, but the
 14851  // value will be replaced with "sensitive".
 14852  func (s IdempotentParameterMismatchException) GoString() string {
 14853  	return s.String()
 14854  }
 14855  
 14856  func newErrorIdempotentParameterMismatchException(v protocol.ResponseMetadata) error {
 14857  	return &IdempotentParameterMismatchException{
 14858  		RespMetadata: v,
 14859  	}
 14860  }
 14861  
 14862  // Code returns the exception type name.
 14863  func (s *IdempotentParameterMismatchException) Code() string {
 14864  	return "IdempotentParameterMismatchException"
 14865  }
 14866  
 14867  // Message returns the exception's message.
 14868  func (s *IdempotentParameterMismatchException) Message() string {
 14869  	if s.Message_ != nil {
 14870  		return *s.Message_
 14871  	}
 14872  	return ""
 14873  }
 14874  
 14875  // OrigErr always returns nil, satisfies awserr.Error interface.
 14876  func (s *IdempotentParameterMismatchException) OrigErr() error {
 14877  	return nil
 14878  }
 14879  
 14880  func (s *IdempotentParameterMismatchException) Error() string {
 14881  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 14882  }
 14883  
 14884  // Status code returns the HTTP status code for the request's response error.
 14885  func (s *IdempotentParameterMismatchException) StatusCode() int {
 14886  	return s.RespMetadata.StatusCode
 14887  }
 14888  
 14889  // RequestID returns the service's response RequestID for request.
 14890  func (s *IdempotentParameterMismatchException) RequestID() string {
 14891  	return s.RespMetadata.RequestID
 14892  }
 14893  
 14894  // The operation tried to access a nonexistent index.
 14895  type IndexNotFoundException struct {
 14896  	_            struct{}                  `type:"structure"`
 14897  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 14898  
 14899  	Message_ *string `locationName:"message" type:"string"`
 14900  }
 14901  
 14902  // String returns the string representation.
 14903  //
 14904  // API parameter values that are decorated as "sensitive" in the API will not
 14905  // be included in the string output. The member name will be present, but the
 14906  // value will be replaced with "sensitive".
 14907  func (s IndexNotFoundException) String() string {
 14908  	return awsutil.Prettify(s)
 14909  }
 14910  
 14911  // GoString returns the string representation.
 14912  //
 14913  // API parameter values that are decorated as "sensitive" in the API will not
 14914  // be included in the string output. The member name will be present, but the
 14915  // value will be replaced with "sensitive".
 14916  func (s IndexNotFoundException) GoString() string {
 14917  	return s.String()
 14918  }
 14919  
 14920  func newErrorIndexNotFoundException(v protocol.ResponseMetadata) error {
 14921  	return &IndexNotFoundException{
 14922  		RespMetadata: v,
 14923  	}
 14924  }
 14925  
 14926  // Code returns the exception type name.
 14927  func (s *IndexNotFoundException) Code() string {
 14928  	return "IndexNotFoundException"
 14929  }
 14930  
 14931  // Message returns the exception's message.
 14932  func (s *IndexNotFoundException) Message() string {
 14933  	if s.Message_ != nil {
 14934  		return *s.Message_
 14935  	}
 14936  	return ""
 14937  }
 14938  
 14939  // OrigErr always returns nil, satisfies awserr.Error interface.
 14940  func (s *IndexNotFoundException) OrigErr() error {
 14941  	return nil
 14942  }
 14943  
 14944  func (s *IndexNotFoundException) Error() string {
 14945  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 14946  }
 14947  
 14948  // Status code returns the HTTP status code for the request's response error.
 14949  func (s *IndexNotFoundException) StatusCode() int {
 14950  	return s.RespMetadata.StatusCode
 14951  }
 14952  
 14953  // RequestID returns the service's response RequestID for request.
 14954  func (s *IndexNotFoundException) RequestID() string {
 14955  	return s.RespMetadata.RequestID
 14956  }
 14957  
 14958  // An error occurred on the server side.
 14959  type InternalServerError struct {
 14960  	_            struct{}                  `type:"structure"`
 14961  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 14962  
 14963  	// The server encountered an internal error trying to fulfill the request.
 14964  	Message_ *string `locationName:"message" type:"string"`
 14965  }
 14966  
 14967  // String returns the string representation.
 14968  //
 14969  // API parameter values that are decorated as "sensitive" in the API will not
 14970  // be included in the string output. The member name will be present, but the
 14971  // value will be replaced with "sensitive".
 14972  func (s InternalServerError) String() string {
 14973  	return awsutil.Prettify(s)
 14974  }
 14975  
 14976  // GoString returns the string representation.
 14977  //
 14978  // API parameter values that are decorated as "sensitive" in the API will not
 14979  // be included in the string output. The member name will be present, but the
 14980  // value will be replaced with "sensitive".
 14981  func (s InternalServerError) GoString() string {
 14982  	return s.String()
 14983  }
 14984  
 14985  func newErrorInternalServerError(v protocol.ResponseMetadata) error {
 14986  	return &InternalServerError{
 14987  		RespMetadata: v,
 14988  	}
 14989  }
 14990  
 14991  // Code returns the exception type name.
 14992  func (s *InternalServerError) Code() string {
 14993  	return "InternalServerError"
 14994  }
 14995  
 14996  // Message returns the exception's message.
 14997  func (s *InternalServerError) Message() string {
 14998  	if s.Message_ != nil {
 14999  		return *s.Message_
 15000  	}
 15001  	return ""
 15002  }
 15003  
 15004  // OrigErr always returns nil, satisfies awserr.Error interface.
 15005  func (s *InternalServerError) OrigErr() error {
 15006  	return nil
 15007  }
 15008  
 15009  func (s *InternalServerError) Error() string {
 15010  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 15011  }
 15012  
 15013  // Status code returns the HTTP status code for the request's response error.
 15014  func (s *InternalServerError) StatusCode() int {
 15015  	return s.RespMetadata.StatusCode
 15016  }
 15017  
 15018  // RequestID returns the service's response RequestID for request.
 15019  func (s *InternalServerError) RequestID() string {
 15020  	return s.RespMetadata.RequestID
 15021  }
 15022  
 15023  // The specified ExportTime is outside of the point in time recovery window.
 15024  type InvalidExportTimeException struct {
 15025  	_            struct{}                  `type:"structure"`
 15026  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 15027  
 15028  	Message_ *string `locationName:"message" type:"string"`
 15029  }
 15030  
 15031  // String returns the string representation.
 15032  //
 15033  // API parameter values that are decorated as "sensitive" in the API will not
 15034  // be included in the string output. The member name will be present, but the
 15035  // value will be replaced with "sensitive".
 15036  func (s InvalidExportTimeException) String() string {
 15037  	return awsutil.Prettify(s)
 15038  }
 15039  
 15040  // GoString returns the string representation.
 15041  //
 15042  // API parameter values that are decorated as "sensitive" in the API will not
 15043  // be included in the string output. The member name will be present, but the
 15044  // value will be replaced with "sensitive".
 15045  func (s InvalidExportTimeException) GoString() string {
 15046  	return s.String()
 15047  }
 15048  
 15049  func newErrorInvalidExportTimeException(v protocol.ResponseMetadata) error {
 15050  	return &InvalidExportTimeException{
 15051  		RespMetadata: v,
 15052  	}
 15053  }
 15054  
 15055  // Code returns the exception type name.
 15056  func (s *InvalidExportTimeException) Code() string {
 15057  	return "InvalidExportTimeException"
 15058  }
 15059  
 15060  // Message returns the exception's message.
 15061  func (s *InvalidExportTimeException) Message() string {
 15062  	if s.Message_ != nil {
 15063  		return *s.Message_
 15064  	}
 15065  	return ""
 15066  }
 15067  
 15068  // OrigErr always returns nil, satisfies awserr.Error interface.
 15069  func (s *InvalidExportTimeException) OrigErr() error {
 15070  	return nil
 15071  }
 15072  
 15073  func (s *InvalidExportTimeException) Error() string {
 15074  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 15075  }
 15076  
 15077  // Status code returns the HTTP status code for the request's response error.
 15078  func (s *InvalidExportTimeException) StatusCode() int {
 15079  	return s.RespMetadata.StatusCode
 15080  }
 15081  
 15082  // RequestID returns the service's response RequestID for request.
 15083  func (s *InvalidExportTimeException) RequestID() string {
 15084  	return s.RespMetadata.RequestID
 15085  }
 15086  
 15087  // An invalid restore time was specified. RestoreDateTime must be between EarliestRestorableDateTime
 15088  // and LatestRestorableDateTime.
 15089  type InvalidRestoreTimeException struct {
 15090  	_            struct{}                  `type:"structure"`
 15091  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 15092  
 15093  	Message_ *string `locationName:"message" type:"string"`
 15094  }
 15095  
 15096  // String returns the string representation.
 15097  //
 15098  // API parameter values that are decorated as "sensitive" in the API will not
 15099  // be included in the string output. The member name will be present, but the
 15100  // value will be replaced with "sensitive".
 15101  func (s InvalidRestoreTimeException) String() string {
 15102  	return awsutil.Prettify(s)
 15103  }
 15104  
 15105  // GoString returns the string representation.
 15106  //
 15107  // API parameter values that are decorated as "sensitive" in the API will not
 15108  // be included in the string output. The member name will be present, but the
 15109  // value will be replaced with "sensitive".
 15110  func (s InvalidRestoreTimeException) GoString() string {
 15111  	return s.String()
 15112  }
 15113  
 15114  func newErrorInvalidRestoreTimeException(v protocol.ResponseMetadata) error {
 15115  	return &InvalidRestoreTimeException{
 15116  		RespMetadata: v,
 15117  	}
 15118  }
 15119  
 15120  // Code returns the exception type name.
 15121  func (s *InvalidRestoreTimeException) Code() string {
 15122  	return "InvalidRestoreTimeException"
 15123  }
 15124  
 15125  // Message returns the exception's message.
 15126  func (s *InvalidRestoreTimeException) Message() string {
 15127  	if s.Message_ != nil {
 15128  		return *s.Message_
 15129  	}
 15130  	return ""
 15131  }
 15132  
 15133  // OrigErr always returns nil, satisfies awserr.Error interface.
 15134  func (s *InvalidRestoreTimeException) OrigErr() error {
 15135  	return nil
 15136  }
 15137  
 15138  func (s *InvalidRestoreTimeException) Error() string {
 15139  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 15140  }
 15141  
 15142  // Status code returns the HTTP status code for the request's response error.
 15143  func (s *InvalidRestoreTimeException) StatusCode() int {
 15144  	return s.RespMetadata.StatusCode
 15145  }
 15146  
 15147  // RequestID returns the service's response RequestID for request.
 15148  func (s *InvalidRestoreTimeException) RequestID() string {
 15149  	return s.RespMetadata.RequestID
 15150  }
 15151  
 15152  // Information about item collections, if any, that were affected by the operation.
 15153  // ItemCollectionMetrics is only returned if the request asked for it. If the
 15154  // table does not have any local secondary indexes, this information is not
 15155  // returned in the response.
 15156  type ItemCollectionMetrics struct {
 15157  	_ struct{} `type:"structure"`
 15158  
 15159  	// The partition key value of the item collection. This value is the same as
 15160  	// the partition key value of the item.
 15161  	ItemCollectionKey map[string]*AttributeValue `type:"map"`
 15162  
 15163  	// An estimate of item collection size, in gigabytes. This value is a two-element
 15164  	// array containing a lower bound and an upper bound for the estimate. The estimate
 15165  	// includes the size of all the items in the table, plus the size of all attributes
 15166  	// projected into all of the local secondary indexes on that table. Use this
 15167  	// estimate to measure whether a local secondary index is approaching its size
 15168  	// limit.
 15169  	//
 15170  	// The estimate is subject to change over time; therefore, do not rely on the
 15171  	// precision or accuracy of the estimate.
 15172  	SizeEstimateRangeGB []*float64 `type:"list"`
 15173  }
 15174  
 15175  // String returns the string representation.
 15176  //
 15177  // API parameter values that are decorated as "sensitive" in the API will not
 15178  // be included in the string output. The member name will be present, but the
 15179  // value will be replaced with "sensitive".
 15180  func (s ItemCollectionMetrics) String() string {
 15181  	return awsutil.Prettify(s)
 15182  }
 15183  
 15184  // GoString returns the string representation.
 15185  //
 15186  // API parameter values that are decorated as "sensitive" in the API will not
 15187  // be included in the string output. The member name will be present, but the
 15188  // value will be replaced with "sensitive".
 15189  func (s ItemCollectionMetrics) GoString() string {
 15190  	return s.String()
 15191  }
 15192  
 15193  // SetItemCollectionKey sets the ItemCollectionKey field's value.
 15194  func (s *ItemCollectionMetrics) SetItemCollectionKey(v map[string]*AttributeValue) *ItemCollectionMetrics {
 15195  	s.ItemCollectionKey = v
 15196  	return s
 15197  }
 15198  
 15199  // SetSizeEstimateRangeGB sets the SizeEstimateRangeGB field's value.
 15200  func (s *ItemCollectionMetrics) SetSizeEstimateRangeGB(v []*float64) *ItemCollectionMetrics {
 15201  	s.SizeEstimateRangeGB = v
 15202  	return s
 15203  }
 15204  
 15205  // An item collection is too large. This exception is only returned for tables
 15206  // that have one or more local secondary indexes.
 15207  type ItemCollectionSizeLimitExceededException struct {
 15208  	_            struct{}                  `type:"structure"`
 15209  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 15210  
 15211  	// The total size of an item collection has exceeded the maximum limit of 10
 15212  	// gigabytes.
 15213  	Message_ *string `locationName:"message" type:"string"`
 15214  }
 15215  
 15216  // String returns the string representation.
 15217  //
 15218  // API parameter values that are decorated as "sensitive" in the API will not
 15219  // be included in the string output. The member name will be present, but the
 15220  // value will be replaced with "sensitive".
 15221  func (s ItemCollectionSizeLimitExceededException) String() string {
 15222  	return awsutil.Prettify(s)
 15223  }
 15224  
 15225  // GoString returns the string representation.
 15226  //
 15227  // API parameter values that are decorated as "sensitive" in the API will not
 15228  // be included in the string output. The member name will be present, but the
 15229  // value will be replaced with "sensitive".
 15230  func (s ItemCollectionSizeLimitExceededException) GoString() string {
 15231  	return s.String()
 15232  }
 15233  
 15234  func newErrorItemCollectionSizeLimitExceededException(v protocol.ResponseMetadata) error {
 15235  	return &ItemCollectionSizeLimitExceededException{
 15236  		RespMetadata: v,
 15237  	}
 15238  }
 15239  
 15240  // Code returns the exception type name.
 15241  func (s *ItemCollectionSizeLimitExceededException) Code() string {
 15242  	return "ItemCollectionSizeLimitExceededException"
 15243  }
 15244  
 15245  // Message returns the exception's message.
 15246  func (s *ItemCollectionSizeLimitExceededException) Message() string {
 15247  	if s.Message_ != nil {
 15248  		return *s.Message_
 15249  	}
 15250  	return ""
 15251  }
 15252  
 15253  // OrigErr always returns nil, satisfies awserr.Error interface.
 15254  func (s *ItemCollectionSizeLimitExceededException) OrigErr() error {
 15255  	return nil
 15256  }
 15257  
 15258  func (s *ItemCollectionSizeLimitExceededException) Error() string {
 15259  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 15260  }
 15261  
 15262  // Status code returns the HTTP status code for the request's response error.
 15263  func (s *ItemCollectionSizeLimitExceededException) StatusCode() int {
 15264  	return s.RespMetadata.StatusCode
 15265  }
 15266  
 15267  // RequestID returns the service's response RequestID for request.
 15268  func (s *ItemCollectionSizeLimitExceededException) RequestID() string {
 15269  	return s.RespMetadata.RequestID
 15270  }
 15271  
 15272  // Details for the requested item.
 15273  type ItemResponse struct {
 15274  	_ struct{} `type:"structure"`
 15275  
 15276  	// Map of attribute data consisting of the data type and attribute value.
 15277  	Item map[string]*AttributeValue `type:"map"`
 15278  }
 15279  
 15280  // String returns the string representation.
 15281  //
 15282  // API parameter values that are decorated as "sensitive" in the API will not
 15283  // be included in the string output. The member name will be present, but the
 15284  // value will be replaced with "sensitive".
 15285  func (s ItemResponse) String() string {
 15286  	return awsutil.Prettify(s)
 15287  }
 15288  
 15289  // GoString returns the string representation.
 15290  //
 15291  // API parameter values that are decorated as "sensitive" in the API will not
 15292  // be included in the string output. The member name will be present, but the
 15293  // value will be replaced with "sensitive".
 15294  func (s ItemResponse) GoString() string {
 15295  	return s.String()
 15296  }
 15297  
 15298  // SetItem sets the Item field's value.
 15299  func (s *ItemResponse) SetItem(v map[string]*AttributeValue) *ItemResponse {
 15300  	s.Item = v
 15301  	return s
 15302  }
 15303  
 15304  // Represents a single element of a key schema. A key schema specifies the attributes
 15305  // that make up the primary key of a table, or the key attributes of an index.
 15306  //
 15307  // A KeySchemaElement represents exactly one attribute of the primary key. For
 15308  // example, a simple primary key would be represented by one KeySchemaElement
 15309  // (for the partition key). A composite primary key would require one KeySchemaElement
 15310  // for the partition key, and another KeySchemaElement for the sort key.
 15311  //
 15312  // A KeySchemaElement must be a scalar, top-level attribute (not a nested attribute).
 15313  // The data type must be one of String, Number, or Binary. The attribute cannot
 15314  // be nested within a List or a Map.
 15315  type KeySchemaElement struct {
 15316  	_ struct{} `type:"structure"`
 15317  
 15318  	// The name of a key attribute.
 15319  	//
 15320  	// AttributeName is a required field
 15321  	AttributeName *string `min:"1" type:"string" required:"true"`
 15322  
 15323  	// The role that this key attribute will assume:
 15324  	//
 15325  	//    * HASH - partition key
 15326  	//
 15327  	//    * RANGE - sort key
 15328  	//
 15329  	// The partition key of an item is also known as its hash attribute. The term
 15330  	// "hash attribute" derives from DynamoDB's usage of an internal hash function
 15331  	// to evenly distribute data items across partitions, based on their partition
 15332  	// key values.
 15333  	//
 15334  	// The sort key of an item is also known as its range attribute. The term "range
 15335  	// attribute" derives from the way DynamoDB stores items with the same partition
 15336  	// key physically close together, in sorted order by the sort key value.
 15337  	//
 15338  	// KeyType is a required field
 15339  	KeyType *string `type:"string" required:"true" enum:"KeyType"`
 15340  }
 15341  
 15342  // String returns the string representation.
 15343  //
 15344  // API parameter values that are decorated as "sensitive" in the API will not
 15345  // be included in the string output. The member name will be present, but the
 15346  // value will be replaced with "sensitive".
 15347  func (s KeySchemaElement) String() string {
 15348  	return awsutil.Prettify(s)
 15349  }
 15350  
 15351  // GoString returns the string representation.
 15352  //
 15353  // API parameter values that are decorated as "sensitive" in the API will not
 15354  // be included in the string output. The member name will be present, but the
 15355  // value will be replaced with "sensitive".
 15356  func (s KeySchemaElement) GoString() string {
 15357  	return s.String()
 15358  }
 15359  
 15360  // Validate inspects the fields of the type to determine if they are valid.
 15361  func (s *KeySchemaElement) Validate() error {
 15362  	invalidParams := request.ErrInvalidParams{Context: "KeySchemaElement"}
 15363  	if s.AttributeName == nil {
 15364  		invalidParams.Add(request.NewErrParamRequired("AttributeName"))
 15365  	}
 15366  	if s.AttributeName != nil && len(*s.AttributeName) < 1 {
 15367  		invalidParams.Add(request.NewErrParamMinLen("AttributeName", 1))
 15368  	}
 15369  	if s.KeyType == nil {
 15370  		invalidParams.Add(request.NewErrParamRequired("KeyType"))
 15371  	}
 15372  
 15373  	if invalidParams.Len() > 0 {
 15374  		return invalidParams
 15375  	}
 15376  	return nil
 15377  }
 15378  
 15379  // SetAttributeName sets the AttributeName field's value.
 15380  func (s *KeySchemaElement) SetAttributeName(v string) *KeySchemaElement {
 15381  	s.AttributeName = &v
 15382  	return s
 15383  }
 15384  
 15385  // SetKeyType sets the KeyType field's value.
 15386  func (s *KeySchemaElement) SetKeyType(v string) *KeySchemaElement {
 15387  	s.KeyType = &v
 15388  	return s
 15389  }
 15390  
 15391  // Represents a set of primary keys and, for each key, the attributes to retrieve
 15392  // from the table.
 15393  //
 15394  // For each primary key, you must provide all of the key attributes. For example,
 15395  // with a simple primary key, you only need to provide the partition key. For
 15396  // a composite primary key, you must provide both the partition key and the
 15397  // sort key.
 15398  type KeysAndAttributes struct {
 15399  	_ struct{} `type:"structure"`
 15400  
 15401  	// This is a legacy parameter. Use ProjectionExpression instead. For more information,
 15402  	// see Legacy Conditional Parameters (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.html)
 15403  	// in the Amazon DynamoDB Developer Guide.
 15404  	AttributesToGet []*string `min:"1" type:"list"`
 15405  
 15406  	// The consistency of a read operation. If set to true, then a strongly consistent
 15407  	// read is used; otherwise, an eventually consistent read is used.
 15408  	ConsistentRead *bool `type:"boolean"`
 15409  
 15410  	// One or more substitution tokens for attribute names in an expression. The
 15411  	// following are some use cases for using ExpressionAttributeNames:
 15412  	//
 15413  	//    * To access an attribute whose name conflicts with a DynamoDB reserved
 15414  	//    word.
 15415  	//
 15416  	//    * To create a placeholder for repeating occurrences of an attribute name
 15417  	//    in an expression.
 15418  	//
 15419  	//    * To prevent special characters in an attribute name from being misinterpreted
 15420  	//    in an expression.
 15421  	//
 15422  	// Use the # character in an expression to dereference an attribute name. For
 15423  	// example, consider the following attribute name:
 15424  	//
 15425  	//    * Percentile
 15426  	//
 15427  	// The name of this attribute conflicts with a reserved word, so it cannot be
 15428  	// used directly in an expression. (For the complete list of reserved words,
 15429  	// see Reserved Words (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html)
 15430  	// in the Amazon DynamoDB Developer Guide). To work around this, you could specify
 15431  	// the following for ExpressionAttributeNames:
 15432  	//
 15433  	//    * {"#P":"Percentile"}
 15434  	//
 15435  	// You could then use this substitution in an expression, as in this example:
 15436  	//
 15437  	//    * #P = :val
 15438  	//
 15439  	// Tokens that begin with the : character are expression attribute values, which
 15440  	// are placeholders for the actual value at runtime.
 15441  	//
 15442  	// For more information on expression attribute names, see Accessing Item Attributes
 15443  	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html)
 15444  	// in the Amazon DynamoDB Developer Guide.
 15445  	ExpressionAttributeNames map[string]*string `type:"map"`
 15446  
 15447  	// The primary key attribute values that define the items and the attributes
 15448  	// associated with the items.
 15449  	//
 15450  	// Keys is a required field
 15451  	Keys []map[string]*AttributeValue `min:"1" type:"list" required:"true"`
 15452  
 15453  	// A string that identifies one or more attributes to retrieve from the table.
 15454  	// These attributes can include scalars, sets, or elements of a JSON document.
 15455  	// The attributes in the ProjectionExpression must be separated by commas.
 15456  	//
 15457  	// If no attribute names are specified, then all attributes will be returned.
 15458  	// If any of the requested attributes are not found, they will not appear in
 15459  	// the result.
 15460  	//
 15461  	// For more information, see Accessing Item Attributes (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html)
 15462  	// in the Amazon DynamoDB Developer Guide.
 15463  	ProjectionExpression *string `type:"string"`
 15464  }
 15465  
 15466  // String returns the string representation.
 15467  //
 15468  // API parameter values that are decorated as "sensitive" in the API will not
 15469  // be included in the string output. The member name will be present, but the
 15470  // value will be replaced with "sensitive".
 15471  func (s KeysAndAttributes) String() string {
 15472  	return awsutil.Prettify(s)
 15473  }
 15474  
 15475  // GoString returns the string representation.
 15476  //
 15477  // API parameter values that are decorated as "sensitive" in the API will not
 15478  // be included in the string output. The member name will be present, but the
 15479  // value will be replaced with "sensitive".
 15480  func (s KeysAndAttributes) GoString() string {
 15481  	return s.String()
 15482  }
 15483  
 15484  // Validate inspects the fields of the type to determine if they are valid.
 15485  func (s *KeysAndAttributes) Validate() error {
 15486  	invalidParams := request.ErrInvalidParams{Context: "KeysAndAttributes"}
 15487  	if s.AttributesToGet != nil && len(s.AttributesToGet) < 1 {
 15488  		invalidParams.Add(request.NewErrParamMinLen("AttributesToGet", 1))
 15489  	}
 15490  	if s.Keys == nil {
 15491  		invalidParams.Add(request.NewErrParamRequired("Keys"))
 15492  	}
 15493  	if s.Keys != nil && len(s.Keys) < 1 {
 15494  		invalidParams.Add(request.NewErrParamMinLen("Keys", 1))
 15495  	}
 15496  
 15497  	if invalidParams.Len() > 0 {
 15498  		return invalidParams
 15499  	}
 15500  	return nil
 15501  }
 15502  
 15503  // SetAttributesToGet sets the AttributesToGet field's value.
 15504  func (s *KeysAndAttributes) SetAttributesToGet(v []*string) *KeysAndAttributes {
 15505  	s.AttributesToGet = v
 15506  	return s
 15507  }
 15508  
 15509  // SetConsistentRead sets the ConsistentRead field's value.
 15510  func (s *KeysAndAttributes) SetConsistentRead(v bool) *KeysAndAttributes {
 15511  	s.ConsistentRead = &v
 15512  	return s
 15513  }
 15514  
 15515  // SetExpressionAttributeNames sets the ExpressionAttributeNames field's value.
 15516  func (s *KeysAndAttributes) SetExpressionAttributeNames(v map[string]*string) *KeysAndAttributes {
 15517  	s.ExpressionAttributeNames = v
 15518  	return s
 15519  }
 15520  
 15521  // SetKeys sets the Keys field's value.
 15522  func (s *KeysAndAttributes) SetKeys(v []map[string]*AttributeValue) *KeysAndAttributes {
 15523  	s.Keys = v
 15524  	return s
 15525  }
 15526  
 15527  // SetProjectionExpression sets the ProjectionExpression field's value.
 15528  func (s *KeysAndAttributes) SetProjectionExpression(v string) *KeysAndAttributes {
 15529  	s.ProjectionExpression = &v
 15530  	return s
 15531  }
 15532  
 15533  // Describes a Kinesis data stream destination.
 15534  type KinesisDataStreamDestination struct {
 15535  	_ struct{} `type:"structure"`
 15536  
 15537  	// The current status of replication.
 15538  	DestinationStatus *string `type:"string" enum:"DestinationStatus"`
 15539  
 15540  	// The human-readable string that corresponds to the replica status.
 15541  	DestinationStatusDescription *string `type:"string"`
 15542  
 15543  	// The ARN for a specific Kinesis data stream.
 15544  	StreamArn *string `min:"37" type:"string"`
 15545  }
 15546  
 15547  // String returns the string representation.
 15548  //
 15549  // API parameter values that are decorated as "sensitive" in the API will not
 15550  // be included in the string output. The member name will be present, but the
 15551  // value will be replaced with "sensitive".
 15552  func (s KinesisDataStreamDestination) String() string {
 15553  	return awsutil.Prettify(s)
 15554  }
 15555  
 15556  // GoString returns the string representation.
 15557  //
 15558  // API parameter values that are decorated as "sensitive" in the API will not
 15559  // be included in the string output. The member name will be present, but the
 15560  // value will be replaced with "sensitive".
 15561  func (s KinesisDataStreamDestination) GoString() string {
 15562  	return s.String()
 15563  }
 15564  
 15565  // SetDestinationStatus sets the DestinationStatus field's value.
 15566  func (s *KinesisDataStreamDestination) SetDestinationStatus(v string) *KinesisDataStreamDestination {
 15567  	s.DestinationStatus = &v
 15568  	return s
 15569  }
 15570  
 15571  // SetDestinationStatusDescription sets the DestinationStatusDescription field's value.
 15572  func (s *KinesisDataStreamDestination) SetDestinationStatusDescription(v string) *KinesisDataStreamDestination {
 15573  	s.DestinationStatusDescription = &v
 15574  	return s
 15575  }
 15576  
 15577  // SetStreamArn sets the StreamArn field's value.
 15578  func (s *KinesisDataStreamDestination) SetStreamArn(v string) *KinesisDataStreamDestination {
 15579  	s.StreamArn = &v
 15580  	return s
 15581  }
 15582  
 15583  // There is no limit to the number of daily on-demand backups that can be taken.
 15584  //
 15585  // Up to 50 simultaneous table operations are allowed per account. These operations
 15586  // include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup,
 15587  // and RestoreTableToPointInTime.
 15588  //
 15589  // The only exception is when you are creating a table with one or more secondary
 15590  // indexes. You can have up to 25 such requests running at a time; however,
 15591  // if the table or index specifications are complex, DynamoDB might temporarily
 15592  // reduce the number of concurrent operations.
 15593  //
 15594  // There is a soft account quota of 256 tables.
 15595  type LimitExceededException struct {
 15596  	_            struct{}                  `type:"structure"`
 15597  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 15598  
 15599  	// Too many operations for a given subscriber.
 15600  	Message_ *string `locationName:"message" type:"string"`
 15601  }
 15602  
 15603  // String returns the string representation.
 15604  //
 15605  // API parameter values that are decorated as "sensitive" in the API will not
 15606  // be included in the string output. The member name will be present, but the
 15607  // value will be replaced with "sensitive".
 15608  func (s LimitExceededException) String() string {
 15609  	return awsutil.Prettify(s)
 15610  }
 15611  
 15612  // GoString returns the string representation.
 15613  //
 15614  // API parameter values that are decorated as "sensitive" in the API will not
 15615  // be included in the string output. The member name will be present, but the
 15616  // value will be replaced with "sensitive".
 15617  func (s LimitExceededException) GoString() string {
 15618  	return s.String()
 15619  }
 15620  
 15621  func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
 15622  	return &LimitExceededException{
 15623  		RespMetadata: v,
 15624  	}
 15625  }
 15626  
 15627  // Code returns the exception type name.
 15628  func (s *LimitExceededException) Code() string {
 15629  	return "LimitExceededException"
 15630  }
 15631  
 15632  // Message returns the exception's message.
 15633  func (s *LimitExceededException) Message() string {
 15634  	if s.Message_ != nil {
 15635  		return *s.Message_
 15636  	}
 15637  	return ""
 15638  }
 15639  
 15640  // OrigErr always returns nil, satisfies awserr.Error interface.
 15641  func (s *LimitExceededException) OrigErr() error {
 15642  	return nil
 15643  }
 15644  
 15645  func (s *LimitExceededException) Error() string {
 15646  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 15647  }
 15648  
 15649  // Status code returns the HTTP status code for the request's response error.
 15650  func (s *LimitExceededException) StatusCode() int {
 15651  	return s.RespMetadata.StatusCode
 15652  }
 15653  
 15654  // RequestID returns the service's response RequestID for request.
 15655  func (s *LimitExceededException) RequestID() string {
 15656  	return s.RespMetadata.RequestID
 15657  }
 15658  
 15659  type ListBackupsInput struct {
 15660  	_ struct{} `type:"structure"`
 15661  
 15662  	// The backups from the table specified by BackupType are listed.
 15663  	//
 15664  	// Where BackupType can be:
 15665  	//
 15666  	//    * USER - On-demand backup created by you.
 15667  	//
 15668  	//    * SYSTEM - On-demand backup automatically created by DynamoDB.
 15669  	//
 15670  	//    * ALL - All types of on-demand backups (USER and SYSTEM).
 15671  	BackupType *string `type:"string" enum:"BackupTypeFilter"`
 15672  
 15673  	// LastEvaluatedBackupArn is the Amazon Resource Name (ARN) of the backup last
 15674  	// evaluated when the current page of results was returned, inclusive of the
 15675  	// current page of results. This value may be specified as the ExclusiveStartBackupArn
 15676  	// of a new ListBackups operation in order to fetch the next page of results.
 15677  	ExclusiveStartBackupArn *string `min:"37" type:"string"`
 15678  
 15679  	// Maximum number of backups to return at once.
 15680  	Limit *int64 `min:"1" type:"integer"`
 15681  
 15682  	// The backups from the table specified by TableName are listed.
 15683  	TableName *string `min:"3" type:"string"`
 15684  
 15685  	// Only backups created after this time are listed. TimeRangeLowerBound is inclusive.
 15686  	TimeRangeLowerBound *time.Time `type:"timestamp"`
 15687  
 15688  	// Only backups created before this time are listed. TimeRangeUpperBound is
 15689  	// exclusive.
 15690  	TimeRangeUpperBound *time.Time `type:"timestamp"`
 15691  }
 15692  
 15693  // String returns the string representation.
 15694  //
 15695  // API parameter values that are decorated as "sensitive" in the API will not
 15696  // be included in the string output. The member name will be present, but the
 15697  // value will be replaced with "sensitive".
 15698  func (s ListBackupsInput) String() string {
 15699  	return awsutil.Prettify(s)
 15700  }
 15701  
 15702  // GoString returns the string representation.
 15703  //
 15704  // API parameter values that are decorated as "sensitive" in the API will not
 15705  // be included in the string output. The member name will be present, but the
 15706  // value will be replaced with "sensitive".
 15707  func (s ListBackupsInput) GoString() string {
 15708  	return s.String()
 15709  }
 15710  
 15711  // Validate inspects the fields of the type to determine if they are valid.
 15712  func (s *ListBackupsInput) Validate() error {
 15713  	invalidParams := request.ErrInvalidParams{Context: "ListBackupsInput"}
 15714  	if s.ExclusiveStartBackupArn != nil && len(*s.ExclusiveStartBackupArn) < 37 {
 15715  		invalidParams.Add(request.NewErrParamMinLen("ExclusiveStartBackupArn", 37))
 15716  	}
 15717  	if s.Limit != nil && *s.Limit < 1 {
 15718  		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
 15719  	}
 15720  	if s.TableName != nil && len(*s.TableName) < 3 {
 15721  		invalidParams.Add(request.NewErrParamMinLen("TableName", 3))
 15722  	}
 15723  
 15724  	if invalidParams.Len() > 0 {
 15725  		return invalidParams
 15726  	}
 15727  	return nil
 15728  }
 15729  
 15730  // SetBackupType sets the BackupType field's value.
 15731  func (s *ListBackupsInput) SetBackupType(v string) *ListBackupsInput {
 15732  	s.BackupType = &v
 15733  	return s
 15734  }
 15735  
 15736  // SetExclusiveStartBackupArn sets the ExclusiveStartBackupArn field's value.
 15737  func (s *ListBackupsInput) SetExclusiveStartBackupArn(v string) *ListBackupsInput {
 15738  	s.ExclusiveStartBackupArn = &v
 15739  	return s
 15740  }
 15741  
 15742  // SetLimit sets the Limit field's value.
 15743  func (s *ListBackupsInput) SetLimit(v int64) *ListBackupsInput {
 15744  	s.Limit = &v
 15745  	return s
 15746  }
 15747  
 15748  // SetTableName sets the TableName field's value.
 15749  func (s *ListBackupsInput) SetTableName(v string) *ListBackupsInput {
 15750  	s.TableName = &v
 15751  	return s
 15752  }
 15753  
 15754  // SetTimeRangeLowerBound sets the TimeRangeLowerBound field's value.
 15755  func (s *ListBackupsInput) SetTimeRangeLowerBound(v time.Time) *ListBackupsInput {
 15756  	s.TimeRangeLowerBound = &v
 15757  	return s
 15758  }
 15759  
 15760  // SetTimeRangeUpperBound sets the TimeRangeUpperBound field's value.
 15761  func (s *ListBackupsInput) SetTimeRangeUpperBound(v time.Time) *ListBackupsInput {
 15762  	s.TimeRangeUpperBound = &v
 15763  	return s
 15764  }
 15765  
 15766  type ListBackupsOutput struct {
 15767  	_ struct{} `type:"structure"`
 15768  
 15769  	// List of BackupSummary objects.
 15770  	BackupSummaries []*BackupSummary `type:"list"`
 15771  
 15772  	// The ARN of the backup last evaluated when the current page of results was
 15773  	// returned, inclusive of the current page of results. This value may be specified
 15774  	// as the ExclusiveStartBackupArn of a new ListBackups operation in order to
 15775  	// fetch the next page of results.
 15776  	//
 15777  	// If LastEvaluatedBackupArn is empty, then the last page of results has been
 15778  	// processed and there are no more results to be retrieved.
 15779  	//
 15780  	// If LastEvaluatedBackupArn is not empty, this may or may not indicate that
 15781  	// there is more data to be returned. All results are guaranteed to have been
 15782  	// returned if and only if no value for LastEvaluatedBackupArn is returned.
 15783  	LastEvaluatedBackupArn *string `min:"37" type:"string"`
 15784  }
 15785  
 15786  // String returns the string representation.
 15787  //
 15788  // API parameter values that are decorated as "sensitive" in the API will not
 15789  // be included in the string output. The member name will be present, but the
 15790  // value will be replaced with "sensitive".
 15791  func (s ListBackupsOutput) String() string {
 15792  	return awsutil.Prettify(s)
 15793  }
 15794  
 15795  // GoString returns the string representation.
 15796  //
 15797  // API parameter values that are decorated as "sensitive" in the API will not
 15798  // be included in the string output. The member name will be present, but the
 15799  // value will be replaced with "sensitive".
 15800  func (s ListBackupsOutput) GoString() string {
 15801  	return s.String()
 15802  }
 15803  
 15804  // SetBackupSummaries sets the BackupSummaries field's value.
 15805  func (s *ListBackupsOutput) SetBackupSummaries(v []*BackupSummary) *ListBackupsOutput {
 15806  	s.BackupSummaries = v
 15807  	return s
 15808  }
 15809  
 15810  // SetLastEvaluatedBackupArn sets the LastEvaluatedBackupArn field's value.
 15811  func (s *ListBackupsOutput) SetLastEvaluatedBackupArn(v string) *ListBackupsOutput {
 15812  	s.LastEvaluatedBackupArn = &v
 15813  	return s
 15814  }
 15815  
 15816  type ListContributorInsightsInput struct {
 15817  	_ struct{} `type:"structure"`
 15818  
 15819  	// Maximum number of results to return per page.
 15820  	MaxResults *int64 `type:"integer"`
 15821  
 15822  	// A token to for the desired page, if there is one.
 15823  	NextToken *string `type:"string"`
 15824  
 15825  	// The name of the table.
 15826  	TableName *string `min:"3" type:"string"`
 15827  }
 15828  
 15829  // String returns the string representation.
 15830  //
 15831  // API parameter values that are decorated as "sensitive" in the API will not
 15832  // be included in the string output. The member name will be present, but the
 15833  // value will be replaced with "sensitive".
 15834  func (s ListContributorInsightsInput) String() string {
 15835  	return awsutil.Prettify(s)
 15836  }
 15837  
 15838  // GoString returns the string representation.
 15839  //
 15840  // API parameter values that are decorated as "sensitive" in the API will not
 15841  // be included in the string output. The member name will be present, but the
 15842  // value will be replaced with "sensitive".
 15843  func (s ListContributorInsightsInput) GoString() string {
 15844  	return s.String()
 15845  }
 15846  
 15847  // Validate inspects the fields of the type to determine if they are valid.
 15848  func (s *ListContributorInsightsInput) Validate() error {
 15849  	invalidParams := request.ErrInvalidParams{Context: "ListContributorInsightsInput"}
 15850  	if s.TableName != nil && len(*s.TableName) < 3 {
 15851  		invalidParams.Add(request.NewErrParamMinLen("TableName", 3))
 15852  	}
 15853  
 15854  	if invalidParams.Len() > 0 {
 15855  		return invalidParams
 15856  	}
 15857  	return nil
 15858  }
 15859  
 15860  // SetMaxResults sets the MaxResults field's value.
 15861  func (s *ListContributorInsightsInput) SetMaxResults(v int64) *ListContributorInsightsInput {
 15862  	s.MaxResults = &v
 15863  	return s
 15864  }
 15865  
 15866  // SetNextToken sets the NextToken field's value.
 15867  func (s *ListContributorInsightsInput) SetNextToken(v string) *ListContributorInsightsInput {
 15868  	s.NextToken = &v
 15869  	return s
 15870  }
 15871  
 15872  // SetTableName sets the TableName field's value.
 15873  func (s *ListContributorInsightsInput) SetTableName(v string) *ListContributorInsightsInput {
 15874  	s.TableName = &v
 15875  	return s
 15876  }
 15877  
 15878  type ListContributorInsightsOutput struct {
 15879  	_ struct{} `type:"structure"`
 15880  
 15881  	// A list of ContributorInsightsSummary.
 15882  	ContributorInsightsSummaries []*ContributorInsightsSummary `type:"list"`
 15883  
 15884  	// A token to go to the next page if there is one.
 15885  	NextToken *string `type:"string"`
 15886  }
 15887  
 15888  // String returns the string representation.
 15889  //
 15890  // API parameter values that are decorated as "sensitive" in the API will not
 15891  // be included in the string output. The member name will be present, but the
 15892  // value will be replaced with "sensitive".
 15893  func (s ListContributorInsightsOutput) String() string {
 15894  	return awsutil.Prettify(s)
 15895  }
 15896  
 15897  // GoString returns the string representation.
 15898  //
 15899  // API parameter values that are decorated as "sensitive" in the API will not
 15900  // be included in the string output. The member name will be present, but the
 15901  // value will be replaced with "sensitive".
 15902  func (s ListContributorInsightsOutput) GoString() string {
 15903  	return s.String()
 15904  }
 15905  
 15906  // SetContributorInsightsSummaries sets the ContributorInsightsSummaries field's value.
 15907  func (s *ListContributorInsightsOutput) SetContributorInsightsSummaries(v []*ContributorInsightsSummary) *ListContributorInsightsOutput {
 15908  	s.ContributorInsightsSummaries = v
 15909  	return s
 15910  }
 15911  
 15912  // SetNextToken sets the NextToken field's value.
 15913  func (s *ListContributorInsightsOutput) SetNextToken(v string) *ListContributorInsightsOutput {
 15914  	s.NextToken = &v
 15915  	return s
 15916  }
 15917  
 15918  type ListExportsInput struct {
 15919  	_ struct{} `type:"structure"`
 15920  
 15921  	// Maximum number of results to return per page.
 15922  	MaxResults *int64 `min:"1" type:"integer"`
 15923  
 15924  	// An optional string that, if supplied, must be copied from the output of a
 15925  	// previous call to ListExports. When provided in this manner, the API fetches
 15926  	// the next page of results.
 15927  	NextToken *string `type:"string"`
 15928  
 15929  	// The Amazon Resource Name (ARN) associated with the exported table.
 15930  	TableArn *string `type:"string"`
 15931  }
 15932  
 15933  // String returns the string representation.
 15934  //
 15935  // API parameter values that are decorated as "sensitive" in the API will not
 15936  // be included in the string output. The member name will be present, but the
 15937  // value will be replaced with "sensitive".
 15938  func (s ListExportsInput) String() string {
 15939  	return awsutil.Prettify(s)
 15940  }
 15941  
 15942  // GoString returns the string representation.
 15943  //
 15944  // API parameter values that are decorated as "sensitive" in the API will not
 15945  // be included in the string output. The member name will be present, but the
 15946  // value will be replaced with "sensitive".
 15947  func (s ListExportsInput) GoString() string {
 15948  	return s.String()
 15949  }
 15950  
 15951  // Validate inspects the fields of the type to determine if they are valid.
 15952  func (s *ListExportsInput) Validate() error {
 15953  	invalidParams := request.ErrInvalidParams{Context: "ListExportsInput"}
 15954  	if s.MaxResults != nil && *s.MaxResults < 1 {
 15955  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 15956  	}
 15957  
 15958  	if invalidParams.Len() > 0 {
 15959  		return invalidParams
 15960  	}
 15961  	return nil
 15962  }
 15963  
 15964  // SetMaxResults sets the MaxResults field's value.
 15965  func (s *ListExportsInput) SetMaxResults(v int64) *ListExportsInput {
 15966  	s.MaxResults = &v
 15967  	return s
 15968  }
 15969  
 15970  // SetNextToken sets the NextToken field's value.
 15971  func (s *ListExportsInput) SetNextToken(v string) *ListExportsInput {
 15972  	s.NextToken = &v
 15973  	return s
 15974  }
 15975  
 15976  // SetTableArn sets the TableArn field's value.
 15977  func (s *ListExportsInput) SetTableArn(v string) *ListExportsInput {
 15978  	s.TableArn = &v
 15979  	return s
 15980  }
 15981  
 15982  type ListExportsOutput struct {
 15983  	_ struct{} `type:"structure"`
 15984  
 15985  	// A list of ExportSummary objects.
 15986  	ExportSummaries []*ExportSummary `type:"list"`
 15987  
 15988  	// If this value is returned, there are additional results to be displayed.
 15989  	// To retrieve them, call ListExports again, with NextToken set to this value.
 15990  	NextToken *string `type:"string"`
 15991  }
 15992  
 15993  // String returns the string representation.
 15994  //
 15995  // API parameter values that are decorated as "sensitive" in the API will not
 15996  // be included in the string output. The member name will be present, but the
 15997  // value will be replaced with "sensitive".
 15998  func (s ListExportsOutput) String() string {
 15999  	return awsutil.Prettify(s)
 16000  }
 16001  
 16002  // GoString returns the string representation.
 16003  //
 16004  // API parameter values that are decorated as "sensitive" in the API will not
 16005  // be included in the string output. The member name will be present, but the
 16006  // value will be replaced with "sensitive".
 16007  func (s ListExportsOutput) GoString() string {
 16008  	return s.String()
 16009  }
 16010  
 16011  // SetExportSummaries sets the ExportSummaries field's value.
 16012  func (s *ListExportsOutput) SetExportSummaries(v []*ExportSummary) *ListExportsOutput {
 16013  	s.ExportSummaries = v
 16014  	return s
 16015  }
 16016  
 16017  // SetNextToken sets the NextToken field's value.
 16018  func (s *ListExportsOutput) SetNextToken(v string) *ListExportsOutput {
 16019  	s.NextToken = &v
 16020  	return s
 16021  }
 16022  
 16023  type ListGlobalTablesInput struct {
 16024  	_ struct{} `type:"structure"`
 16025  
 16026  	// The first global table name that this operation will evaluate.
 16027  	ExclusiveStartGlobalTableName *string `min:"3" type:"string"`
 16028  
 16029  	// The maximum number of table names to return, if the parameter is not specified
 16030  	// DynamoDB defaults to 100.
 16031  	//
 16032  	// If the number of global tables DynamoDB finds reaches this limit, it stops
 16033  	// the operation and returns the table names collected up to that point, with
 16034  	// a table name in the LastEvaluatedGlobalTableName to apply in a subsequent
 16035  	// operation to the ExclusiveStartGlobalTableName parameter.
 16036  	Limit *int64 `min:"1" type:"integer"`
 16037  
 16038  	// Lists the global tables in a specific Region.
 16039  	RegionName *string `type:"string"`
 16040  }
 16041  
 16042  // String returns the string representation.
 16043  //
 16044  // API parameter values that are decorated as "sensitive" in the API will not
 16045  // be included in the string output. The member name will be present, but the
 16046  // value will be replaced with "sensitive".
 16047  func (s ListGlobalTablesInput) String() string {
 16048  	return awsutil.Prettify(s)
 16049  }
 16050  
 16051  // GoString returns the string representation.
 16052  //
 16053  // API parameter values that are decorated as "sensitive" in the API will not
 16054  // be included in the string output. The member name will be present, but the
 16055  // value will be replaced with "sensitive".
 16056  func (s ListGlobalTablesInput) GoString() string {
 16057  	return s.String()
 16058  }
 16059  
 16060  // Validate inspects the fields of the type to determine if they are valid.
 16061  func (s *ListGlobalTablesInput) Validate() error {
 16062  	invalidParams := request.ErrInvalidParams{Context: "ListGlobalTablesInput"}
 16063  	if s.ExclusiveStartGlobalTableName != nil && len(*s.ExclusiveStartGlobalTableName) < 3 {
 16064  		invalidParams.Add(request.NewErrParamMinLen("ExclusiveStartGlobalTableName", 3))
 16065  	}
 16066  	if s.Limit != nil && *s.Limit < 1 {
 16067  		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
 16068  	}
 16069  
 16070  	if invalidParams.Len() > 0 {
 16071  		return invalidParams
 16072  	}
 16073  	return nil
 16074  }
 16075  
 16076  // SetExclusiveStartGlobalTableName sets the ExclusiveStartGlobalTableName field's value.
 16077  func (s *ListGlobalTablesInput) SetExclusiveStartGlobalTableName(v string) *ListGlobalTablesInput {
 16078  	s.ExclusiveStartGlobalTableName = &v
 16079  	return s
 16080  }
 16081  
 16082  // SetLimit sets the Limit field's value.
 16083  func (s *ListGlobalTablesInput) SetLimit(v int64) *ListGlobalTablesInput {
 16084  	s.Limit = &v
 16085  	return s
 16086  }
 16087  
 16088  // SetRegionName sets the RegionName field's value.
 16089  func (s *ListGlobalTablesInput) SetRegionName(v string) *ListGlobalTablesInput {
 16090  	s.RegionName = &v
 16091  	return s
 16092  }
 16093  
 16094  type ListGlobalTablesOutput struct {
 16095  	_ struct{} `type:"structure"`
 16096  
 16097  	// List of global table names.
 16098  	GlobalTables []*GlobalTable `type:"list"`
 16099  
 16100  	// Last evaluated global table name.
 16101  	LastEvaluatedGlobalTableName *string `min:"3" type:"string"`
 16102  }
 16103  
 16104  // String returns the string representation.
 16105  //
 16106  // API parameter values that are decorated as "sensitive" in the API will not
 16107  // be included in the string output. The member name will be present, but the
 16108  // value will be replaced with "sensitive".
 16109  func (s ListGlobalTablesOutput) String() string {
 16110  	return awsutil.Prettify(s)
 16111  }
 16112  
 16113  // GoString returns the string representation.
 16114  //
 16115  // API parameter values that are decorated as "sensitive" in the API will not
 16116  // be included in the string output. The member name will be present, but the
 16117  // value will be replaced with "sensitive".
 16118  func (s ListGlobalTablesOutput) GoString() string {
 16119  	return s.String()
 16120  }
 16121  
 16122  // SetGlobalTables sets the GlobalTables field's value.
 16123  func (s *ListGlobalTablesOutput) SetGlobalTables(v []*GlobalTable) *ListGlobalTablesOutput {
 16124  	s.GlobalTables = v
 16125  	return s
 16126  }
 16127  
 16128  // SetLastEvaluatedGlobalTableName sets the LastEvaluatedGlobalTableName field's value.
 16129  func (s *ListGlobalTablesOutput) SetLastEvaluatedGlobalTableName(v string) *ListGlobalTablesOutput {
 16130  	s.LastEvaluatedGlobalTableName = &v
 16131  	return s
 16132  }
 16133  
 16134  // Represents the input of a ListTables operation.
 16135  type ListTablesInput struct {
 16136  	_ struct{} `type:"structure"`
 16137  
 16138  	// The first table name that this operation will evaluate. Use the value that
 16139  	// was returned for LastEvaluatedTableName in a previous operation, so that
 16140  	// you can obtain the next page of results.
 16141  	ExclusiveStartTableName *string `min:"3" type:"string"`
 16142  
 16143  	// A maximum number of table names to return. If this parameter is not specified,
 16144  	// the limit is 100.
 16145  	Limit *int64 `min:"1" type:"integer"`
 16146  }
 16147  
 16148  // String returns the string representation.
 16149  //
 16150  // API parameter values that are decorated as "sensitive" in the API will not
 16151  // be included in the string output. The member name will be present, but the
 16152  // value will be replaced with "sensitive".
 16153  func (s ListTablesInput) String() string {
 16154  	return awsutil.Prettify(s)
 16155  }
 16156  
 16157  // GoString returns the string representation.
 16158  //
 16159  // API parameter values that are decorated as "sensitive" in the API will not
 16160  // be included in the string output. The member name will be present, but the
 16161  // value will be replaced with "sensitive".
 16162  func (s ListTablesInput) GoString() string {
 16163  	return s.String()
 16164  }
 16165  
 16166  // Validate inspects the fields of the type to determine if they are valid.
 16167  func (s *ListTablesInput) Validate() error {
 16168  	invalidParams := request.ErrInvalidParams{Context: "ListTablesInput"}
 16169  	if s.ExclusiveStartTableName != nil && len(*s.ExclusiveStartTableName) < 3 {
 16170  		invalidParams.Add(request.NewErrParamMinLen("ExclusiveStartTableName", 3))
 16171  	}
 16172  	if s.Limit != nil && *s.Limit < 1 {
 16173  		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
 16174  	}
 16175  
 16176  	if invalidParams.Len() > 0 {
 16177  		return invalidParams
 16178  	}
 16179  	return nil
 16180  }
 16181  
 16182  // SetExclusiveStartTableName sets the ExclusiveStartTableName field's value.
 16183  func (s *ListTablesInput) SetExclusiveStartTableName(v string) *ListTablesInput {
 16184  	s.ExclusiveStartTableName = &v
 16185  	return s
 16186  }
 16187  
 16188  // SetLimit sets the Limit field's value.
 16189  func (s *ListTablesInput) SetLimit(v int64) *ListTablesInput {
 16190  	s.Limit = &v
 16191  	return s
 16192  }
 16193  
 16194  // Represents the output of a ListTables operation.
 16195  type ListTablesOutput struct {
 16196  	_ struct{} `type:"structure"`
 16197  
 16198  	// The name of the last table in the current page of results. Use this value
 16199  	// as the ExclusiveStartTableName in a new request to obtain the next page of
 16200  	// results, until all the table names are returned.
 16201  	//
 16202  	// If you do not receive a LastEvaluatedTableName value in the response, this
 16203  	// means that there are no more table names to be retrieved.
 16204  	LastEvaluatedTableName *string `min:"3" type:"string"`
 16205  
 16206  	// The names of the tables associated with the current account at the current
 16207  	// endpoint. The maximum size of this array is 100.
 16208  	//
 16209  	// If LastEvaluatedTableName also appears in the output, you can use this value
 16210  	// as the ExclusiveStartTableName parameter in a subsequent ListTables request
 16211  	// and obtain the next page of results.
 16212  	TableNames []*string `type:"list"`
 16213  }
 16214  
 16215  // String returns the string representation.
 16216  //
 16217  // API parameter values that are decorated as "sensitive" in the API will not
 16218  // be included in the string output. The member name will be present, but the
 16219  // value will be replaced with "sensitive".
 16220  func (s ListTablesOutput) String() string {
 16221  	return awsutil.Prettify(s)
 16222  }
 16223  
 16224  // GoString returns the string representation.
 16225  //
 16226  // API parameter values that are decorated as "sensitive" in the API will not
 16227  // be included in the string output. The member name will be present, but the
 16228  // value will be replaced with "sensitive".
 16229  func (s ListTablesOutput) GoString() string {
 16230  	return s.String()
 16231  }
 16232  
 16233  // SetLastEvaluatedTableName sets the LastEvaluatedTableName field's value.
 16234  func (s *ListTablesOutput) SetLastEvaluatedTableName(v string) *ListTablesOutput {
 16235  	s.LastEvaluatedTableName = &v
 16236  	return s
 16237  }
 16238  
 16239  // SetTableNames sets the TableNames field's value.
 16240  func (s *ListTablesOutput) SetTableNames(v []*string) *ListTablesOutput {
 16241  	s.TableNames = v
 16242  	return s
 16243  }
 16244  
 16245  type ListTagsOfResourceInput struct {
 16246  	_ struct{} `type:"structure"`
 16247  
 16248  	// An optional string that, if supplied, must be copied from the output of a
 16249  	// previous call to ListTagOfResource. When provided in this manner, this API
 16250  	// fetches the next page of results.
 16251  	NextToken *string `type:"string"`
 16252  
 16253  	// The Amazon DynamoDB resource with tags to be listed. This value is an Amazon
 16254  	// Resource Name (ARN).
 16255  	//
 16256  	// ResourceArn is a required field
 16257  	ResourceArn *string `min:"1" type:"string" required:"true"`
 16258  }
 16259  
 16260  // String returns the string representation.
 16261  //
 16262  // API parameter values that are decorated as "sensitive" in the API will not
 16263  // be included in the string output. The member name will be present, but the
 16264  // value will be replaced with "sensitive".
 16265  func (s ListTagsOfResourceInput) String() string {
 16266  	return awsutil.Prettify(s)
 16267  }
 16268  
 16269  // GoString returns the string representation.
 16270  //
 16271  // API parameter values that are decorated as "sensitive" in the API will not
 16272  // be included in the string output. The member name will be present, but the
 16273  // value will be replaced with "sensitive".
 16274  func (s ListTagsOfResourceInput) GoString() string {
 16275  	return s.String()
 16276  }
 16277  
 16278  // Validate inspects the fields of the type to determine if they are valid.
 16279  func (s *ListTagsOfResourceInput) Validate() error {
 16280  	invalidParams := request.ErrInvalidParams{Context: "ListTagsOfResourceInput"}
 16281  	if s.ResourceArn == nil {
 16282  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
 16283  	}
 16284  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
 16285  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
 16286  	}
 16287  
 16288  	if invalidParams.Len() > 0 {
 16289  		return invalidParams
 16290  	}
 16291  	return nil
 16292  }
 16293  
 16294  // SetNextToken sets the NextToken field's value.
 16295  func (s *ListTagsOfResourceInput) SetNextToken(v string) *ListTagsOfResourceInput {
 16296  	s.NextToken = &v
 16297  	return s
 16298  }
 16299  
 16300  // SetResourceArn sets the ResourceArn field's value.
 16301  func (s *ListTagsOfResourceInput) SetResourceArn(v string) *ListTagsOfResourceInput {
 16302  	s.ResourceArn = &v
 16303  	return s
 16304  }
 16305  
 16306  type ListTagsOfResourceOutput struct {
 16307  	_ struct{} `type:"structure"`
 16308  
 16309  	// If this value is returned, there are additional results to be displayed.
 16310  	// To retrieve them, call ListTagsOfResource again, with NextToken set to this
 16311  	// value.
 16312  	NextToken *string `type:"string"`
 16313  
 16314  	// The tags currently associated with the Amazon DynamoDB resource.
 16315  	Tags []*Tag `type:"list"`
 16316  }
 16317  
 16318  // String returns the string representation.
 16319  //
 16320  // API parameter values that are decorated as "sensitive" in the API will not
 16321  // be included in the string output. The member name will be present, but the
 16322  // value will be replaced with "sensitive".
 16323  func (s ListTagsOfResourceOutput) String() string {
 16324  	return awsutil.Prettify(s)
 16325  }
 16326  
 16327  // GoString returns the string representation.
 16328  //
 16329  // API parameter values that are decorated as "sensitive" in the API will not
 16330  // be included in the string output. The member name will be present, but the
 16331  // value will be replaced with "sensitive".
 16332  func (s ListTagsOfResourceOutput) GoString() string {
 16333  	return s.String()
 16334  }
 16335  
 16336  // SetNextToken sets the NextToken field's value.
 16337  func (s *ListTagsOfResourceOutput) SetNextToken(v string) *ListTagsOfResourceOutput {
 16338  	s.NextToken = &v
 16339  	return s
 16340  }
 16341  
 16342  // SetTags sets the Tags field's value.
 16343  func (s *ListTagsOfResourceOutput) SetTags(v []*Tag) *ListTagsOfResourceOutput {
 16344  	s.Tags = v
 16345  	return s
 16346  }
 16347  
 16348  // Represents the properties of a local secondary index.
 16349  type LocalSecondaryIndex struct {
 16350  	_ struct{} `type:"structure"`
 16351  
 16352  	// The name of the local secondary index. The name must be unique among all
 16353  	// other indexes on this table.
 16354  	//
 16355  	// IndexName is a required field
 16356  	IndexName *string `min:"3" type:"string" required:"true"`
 16357  
 16358  	// The complete key schema for the local secondary index, consisting of one
 16359  	// or more pairs of attribute names and key types:
 16360  	//
 16361  	//    * HASH - partition key
 16362  	//
 16363  	//    * RANGE - sort key
 16364  	//
 16365  	// The partition key of an item is also known as its hash attribute. The term
 16366  	// "hash attribute" derives from DynamoDB's usage of an internal hash function
 16367  	// to evenly distribute data items across partitions, based on their partition
 16368  	// key values.
 16369  	//
 16370  	// The sort key of an item is also known as its range attribute. The term "range
 16371  	// attribute" derives from the way DynamoDB stores items with the same partition
 16372  	// key physically close together, in sorted order by the sort key value.
 16373  	//
 16374  	// KeySchema is a required field
 16375  	KeySchema []*KeySchemaElement `min:"1" type:"list" required:"true"`
 16376  
 16377  	// Represents attributes that are copied (projected) from the table into the
 16378  	// local secondary index. These are in addition to the primary key attributes
 16379  	// and index key attributes, which are automatically projected.
 16380  	//
 16381  	// Projection is a required field
 16382  	Projection *Projection `type:"structure" required:"true"`
 16383  }
 16384  
 16385  // String returns the string representation.
 16386  //
 16387  // API parameter values that are decorated as "sensitive" in the API will not
 16388  // be included in the string output. The member name will be present, but the
 16389  // value will be replaced with "sensitive".
 16390  func (s LocalSecondaryIndex) String() string {
 16391  	return awsutil.Prettify(s)
 16392  }
 16393  
 16394  // GoString returns the string representation.
 16395  //
 16396  // API parameter values that are decorated as "sensitive" in the API will not
 16397  // be included in the string output. The member name will be present, but the
 16398  // value will be replaced with "sensitive".
 16399  func (s LocalSecondaryIndex) GoString() string {
 16400  	return s.String()
 16401  }
 16402  
 16403  // Validate inspects the fields of the type to determine if they are valid.
 16404  func (s *LocalSecondaryIndex) Validate() error {
 16405  	invalidParams := request.ErrInvalidParams{Context: "LocalSecondaryIndex"}
 16406  	if s.IndexName == nil {
 16407  		invalidParams.Add(request.NewErrParamRequired("IndexName"))
 16408  	}
 16409  	if s.IndexName != nil && len(*s.IndexName) < 3 {
 16410  		invalidParams.Add(request.NewErrParamMinLen("IndexName", 3))
 16411  	}
 16412  	if s.KeySchema == nil {
 16413  		invalidParams.Add(request.NewErrParamRequired("KeySchema"))
 16414  	}
 16415  	if s.KeySchema != nil && len(s.KeySchema) < 1 {
 16416  		invalidParams.Add(request.NewErrParamMinLen("KeySchema", 1))
 16417  	}
 16418  	if s.Projection == nil {
 16419  		invalidParams.Add(request.NewErrParamRequired("Projection"))
 16420  	}
 16421  	if s.KeySchema != nil {
 16422  		for i, v := range s.KeySchema {
 16423  			if v == nil {
 16424  				continue
 16425  			}
 16426  			if err := v.Validate(); err != nil {
 16427  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "KeySchema", i), err.(request.ErrInvalidParams))
 16428  			}
 16429  		}
 16430  	}
 16431  	if s.Projection != nil {
 16432  		if err := s.Projection.Validate(); err != nil {
 16433  			invalidParams.AddNested("Projection", err.(request.ErrInvalidParams))
 16434  		}
 16435  	}
 16436  
 16437  	if invalidParams.Len() > 0 {
 16438  		return invalidParams
 16439  	}
 16440  	return nil
 16441  }
 16442  
 16443  // SetIndexName sets the IndexName field's value.
 16444  func (s *LocalSecondaryIndex) SetIndexName(v string) *LocalSecondaryIndex {
 16445  	s.IndexName = &v
 16446  	return s
 16447  }
 16448  
 16449  // SetKeySchema sets the KeySchema field's value.
 16450  func (s *LocalSecondaryIndex) SetKeySchema(v []*KeySchemaElement) *LocalSecondaryIndex {
 16451  	s.KeySchema = v
 16452  	return s
 16453  }
 16454  
 16455  // SetProjection sets the Projection field's value.
 16456  func (s *LocalSecondaryIndex) SetProjection(v *Projection) *LocalSecondaryIndex {
 16457  	s.Projection = v
 16458  	return s
 16459  }
 16460  
 16461  // Represents the properties of a local secondary index.
 16462  type LocalSecondaryIndexDescription struct {
 16463  	_ struct{} `type:"structure"`
 16464  
 16465  	// The Amazon Resource Name (ARN) that uniquely identifies the index.
 16466  	IndexArn *string `type:"string"`
 16467  
 16468  	// Represents the name of the local secondary index.
 16469  	IndexName *string `min:"3" type:"string"`
 16470  
 16471  	// The total size of the specified index, in bytes. DynamoDB updates this value
 16472  	// approximately every six hours. Recent changes might not be reflected in this
 16473  	// value.
 16474  	IndexSizeBytes *int64 `type:"long"`
 16475  
 16476  	// The number of items in the specified index. DynamoDB updates this value approximately
 16477  	// every six hours. Recent changes might not be reflected in this value.
 16478  	ItemCount *int64 `type:"long"`
 16479  
 16480  	// The complete key schema for the local secondary index, consisting of one
 16481  	// or more pairs of attribute names and key types:
 16482  	//
 16483  	//    * HASH - partition key
 16484  	//
 16485  	//    * RANGE - sort key
 16486  	//
 16487  	// The partition key of an item is also known as its hash attribute. The term
 16488  	// "hash attribute" derives from DynamoDB's usage of an internal hash function
 16489  	// to evenly distribute data items across partitions, based on their partition
 16490  	// key values.
 16491  	//
 16492  	// The sort key of an item is also known as its range attribute. The term "range
 16493  	// attribute" derives from the way DynamoDB stores items with the same partition
 16494  	// key physically close together, in sorted order by the sort key value.
 16495  	KeySchema []*KeySchemaElement `min:"1" type:"list"`
 16496  
 16497  	// Represents attributes that are copied (projected) from the table into the
 16498  	// global secondary index. These are in addition to the primary key attributes
 16499  	// and index key attributes, which are automatically projected.
 16500  	Projection *Projection `type:"structure"`
 16501  }
 16502  
 16503  // String returns the string representation.
 16504  //
 16505  // API parameter values that are decorated as "sensitive" in the API will not
 16506  // be included in the string output. The member name will be present, but the
 16507  // value will be replaced with "sensitive".
 16508  func (s LocalSecondaryIndexDescription) String() string {
 16509  	return awsutil.Prettify(s)
 16510  }
 16511  
 16512  // GoString returns the string representation.
 16513  //
 16514  // API parameter values that are decorated as "sensitive" in the API will not
 16515  // be included in the string output. The member name will be present, but the
 16516  // value will be replaced with "sensitive".
 16517  func (s LocalSecondaryIndexDescription) GoString() string {
 16518  	return s.String()
 16519  }
 16520  
 16521  // SetIndexArn sets the IndexArn field's value.
 16522  func (s *LocalSecondaryIndexDescription) SetIndexArn(v string) *LocalSecondaryIndexDescription {
 16523  	s.IndexArn = &v
 16524  	return s
 16525  }
 16526  
 16527  // SetIndexName sets the IndexName field's value.
 16528  func (s *LocalSecondaryIndexDescription) SetIndexName(v string) *LocalSecondaryIndexDescription {
 16529  	s.IndexName = &v
 16530  	return s
 16531  }
 16532  
 16533  // SetIndexSizeBytes sets the IndexSizeBytes field's value.
 16534  func (s *LocalSecondaryIndexDescription) SetIndexSizeBytes(v int64) *LocalSecondaryIndexDescription {
 16535  	s.IndexSizeBytes = &v
 16536  	return s
 16537  }
 16538  
 16539  // SetItemCount sets the ItemCount field's value.
 16540  func (s *LocalSecondaryIndexDescription) SetItemCount(v int64) *LocalSecondaryIndexDescription {
 16541  	s.ItemCount = &v
 16542  	return s
 16543  }
 16544  
 16545  // SetKeySchema sets the KeySchema field's value.
 16546  func (s *LocalSecondaryIndexDescription) SetKeySchema(v []*KeySchemaElement) *LocalSecondaryIndexDescription {
 16547  	s.KeySchema = v
 16548  	return s
 16549  }
 16550  
 16551  // SetProjection sets the Projection field's value.
 16552  func (s *LocalSecondaryIndexDescription) SetProjection(v *Projection) *LocalSecondaryIndexDescription {
 16553  	s.Projection = v
 16554  	return s
 16555  }
 16556  
 16557  // Represents the properties of a local secondary index for the table when the
 16558  // backup was created.
 16559  type LocalSecondaryIndexInfo struct {
 16560  	_ struct{} `type:"structure"`
 16561  
 16562  	// Represents the name of the local secondary index.
 16563  	IndexName *string `min:"3" type:"string"`
 16564  
 16565  	// The complete key schema for a local secondary index, which consists of one
 16566  	// or more pairs of attribute names and key types:
 16567  	//
 16568  	//    * HASH - partition key
 16569  	//
 16570  	//    * RANGE - sort key
 16571  	//
 16572  	// The partition key of an item is also known as its hash attribute. The term
 16573  	// "hash attribute" derives from DynamoDB's usage of an internal hash function
 16574  	// to evenly distribute data items across partitions, based on their partition
 16575  	// key values.
 16576  	//
 16577  	// The sort key of an item is also known as its range attribute. The term "range
 16578  	// attribute" derives from the way DynamoDB stores items with the same partition
 16579  	// key physically close together, in sorted order by the sort key value.
 16580  	KeySchema []*KeySchemaElement `min:"1" type:"list"`
 16581  
 16582  	// Represents attributes that are copied (projected) from the table into the
 16583  	// global secondary index. These are in addition to the primary key attributes
 16584  	// and index key attributes, which are automatically projected.
 16585  	Projection *Projection `type:"structure"`
 16586  }
 16587  
 16588  // String returns the string representation.
 16589  //
 16590  // API parameter values that are decorated as "sensitive" in the API will not
 16591  // be included in the string output. The member name will be present, but the
 16592  // value will be replaced with "sensitive".
 16593  func (s LocalSecondaryIndexInfo) String() string {
 16594  	return awsutil.Prettify(s)
 16595  }
 16596  
 16597  // GoString returns the string representation.
 16598  //
 16599  // API parameter values that are decorated as "sensitive" in the API will not
 16600  // be included in the string output. The member name will be present, but the
 16601  // value will be replaced with "sensitive".
 16602  func (s LocalSecondaryIndexInfo) GoString() string {
 16603  	return s.String()
 16604  }
 16605  
 16606  // SetIndexName sets the IndexName field's value.
 16607  func (s *LocalSecondaryIndexInfo) SetIndexName(v string) *LocalSecondaryIndexInfo {
 16608  	s.IndexName = &v
 16609  	return s
 16610  }
 16611  
 16612  // SetKeySchema sets the KeySchema field's value.
 16613  func (s *LocalSecondaryIndexInfo) SetKeySchema(v []*KeySchemaElement) *LocalSecondaryIndexInfo {
 16614  	s.KeySchema = v
 16615  	return s
 16616  }
 16617  
 16618  // SetProjection sets the Projection field's value.
 16619  func (s *LocalSecondaryIndexInfo) SetProjection(v *Projection) *LocalSecondaryIndexInfo {
 16620  	s.Projection = v
 16621  	return s
 16622  }
 16623  
 16624  // Represents a PartiQL statment that uses parameters.
 16625  type ParameterizedStatement struct {
 16626  	_ struct{} `type:"structure"`
 16627  
 16628  	// The parameter values.
 16629  	Parameters []*AttributeValue `min:"1" type:"list"`
 16630  
 16631  	// A PartiQL statment that uses parameters.
 16632  	//
 16633  	// Statement is a required field
 16634  	Statement *string `min:"1" type:"string" required:"true"`
 16635  }
 16636  
 16637  // String returns the string representation.
 16638  //
 16639  // API parameter values that are decorated as "sensitive" in the API will not
 16640  // be included in the string output. The member name will be present, but the
 16641  // value will be replaced with "sensitive".
 16642  func (s ParameterizedStatement) String() string {
 16643  	return awsutil.Prettify(s)
 16644  }
 16645  
 16646  // GoString returns the string representation.
 16647  //
 16648  // API parameter values that are decorated as "sensitive" in the API will not
 16649  // be included in the string output. The member name will be present, but the
 16650  // value will be replaced with "sensitive".
 16651  func (s ParameterizedStatement) GoString() string {
 16652  	return s.String()
 16653  }
 16654  
 16655  // Validate inspects the fields of the type to determine if they are valid.
 16656  func (s *ParameterizedStatement) Validate() error {
 16657  	invalidParams := request.ErrInvalidParams{Context: "ParameterizedStatement"}
 16658  	if s.Parameters != nil && len(s.Parameters) < 1 {
 16659  		invalidParams.Add(request.NewErrParamMinLen("Parameters", 1))
 16660  	}
 16661  	if s.Statement == nil {
 16662  		invalidParams.Add(request.NewErrParamRequired("Statement"))
 16663  	}
 16664  	if s.Statement != nil && len(*s.Statement) < 1 {
 16665  		invalidParams.Add(request.NewErrParamMinLen("Statement", 1))
 16666  	}
 16667  
 16668  	if invalidParams.Len() > 0 {
 16669  		return invalidParams
 16670  	}
 16671  	return nil
 16672  }
 16673  
 16674  // SetParameters sets the Parameters field's value.
 16675  func (s *ParameterizedStatement) SetParameters(v []*AttributeValue) *ParameterizedStatement {
 16676  	s.Parameters = v
 16677  	return s
 16678  }
 16679  
 16680  // SetStatement sets the Statement field's value.
 16681  func (s *ParameterizedStatement) SetStatement(v string) *ParameterizedStatement {
 16682  	s.Statement = &v
 16683  	return s
 16684  }
 16685  
 16686  // The description of the point in time settings applied to the table.
 16687  type PointInTimeRecoveryDescription struct {
 16688  	_ struct{} `type:"structure"`
 16689  
 16690  	// Specifies the earliest point in time you can restore your table to. You can
 16691  	// restore your table to any point in time during the last 35 days.
 16692  	EarliestRestorableDateTime *time.Time `type:"timestamp"`
 16693  
 16694  	// LatestRestorableDateTime is typically 5 minutes before the current time.
 16695  	LatestRestorableDateTime *time.Time `type:"timestamp"`
 16696  
 16697  	// The current state of point in time recovery:
 16698  	//
 16699  	//    * ENABLING - Point in time recovery is being enabled.
 16700  	//
 16701  	//    * ENABLED - Point in time recovery is enabled.
 16702  	//
 16703  	//    * DISABLED - Point in time recovery is disabled.
 16704  	PointInTimeRecoveryStatus *string `type:"string" enum:"PointInTimeRecoveryStatus"`
 16705  }
 16706  
 16707  // String returns the string representation.
 16708  //
 16709  // API parameter values that are decorated as "sensitive" in the API will not
 16710  // be included in the string output. The member name will be present, but the
 16711  // value will be replaced with "sensitive".
 16712  func (s PointInTimeRecoveryDescription) String() string {
 16713  	return awsutil.Prettify(s)
 16714  }
 16715  
 16716  // GoString returns the string representation.
 16717  //
 16718  // API parameter values that are decorated as "sensitive" in the API will not
 16719  // be included in the string output. The member name will be present, but the
 16720  // value will be replaced with "sensitive".
 16721  func (s PointInTimeRecoveryDescription) GoString() string {
 16722  	return s.String()
 16723  }
 16724  
 16725  // SetEarliestRestorableDateTime sets the EarliestRestorableDateTime field's value.
 16726  func (s *PointInTimeRecoveryDescription) SetEarliestRestorableDateTime(v time.Time) *PointInTimeRecoveryDescription {
 16727  	s.EarliestRestorableDateTime = &v
 16728  	return s
 16729  }
 16730  
 16731  // SetLatestRestorableDateTime sets the LatestRestorableDateTime field's value.
 16732  func (s *PointInTimeRecoveryDescription) SetLatestRestorableDateTime(v time.Time) *PointInTimeRecoveryDescription {
 16733  	s.LatestRestorableDateTime = &v
 16734  	return s
 16735  }
 16736  
 16737  // SetPointInTimeRecoveryStatus sets the PointInTimeRecoveryStatus field's value.
 16738  func (s *PointInTimeRecoveryDescription) SetPointInTimeRecoveryStatus(v string) *PointInTimeRecoveryDescription {
 16739  	s.PointInTimeRecoveryStatus = &v
 16740  	return s
 16741  }
 16742  
 16743  // Represents the settings used to enable point in time recovery.
 16744  type PointInTimeRecoverySpecification struct {
 16745  	_ struct{} `type:"structure"`
 16746  
 16747  	// Indicates whether point in time recovery is enabled (true) or disabled (false)
 16748  	// on the table.
 16749  	//
 16750  	// PointInTimeRecoveryEnabled is a required field
 16751  	PointInTimeRecoveryEnabled *bool `type:"boolean" required:"true"`
 16752  }
 16753  
 16754  // String returns the string representation.
 16755  //
 16756  // API parameter values that are decorated as "sensitive" in the API will not
 16757  // be included in the string output. The member name will be present, but the
 16758  // value will be replaced with "sensitive".
 16759  func (s PointInTimeRecoverySpecification) String() string {
 16760  	return awsutil.Prettify(s)
 16761  }
 16762  
 16763  // GoString returns the string representation.
 16764  //
 16765  // API parameter values that are decorated as "sensitive" in the API will not
 16766  // be included in the string output. The member name will be present, but the
 16767  // value will be replaced with "sensitive".
 16768  func (s PointInTimeRecoverySpecification) GoString() string {
 16769  	return s.String()
 16770  }
 16771  
 16772  // Validate inspects the fields of the type to determine if they are valid.
 16773  func (s *PointInTimeRecoverySpecification) Validate() error {
 16774  	invalidParams := request.ErrInvalidParams{Context: "PointInTimeRecoverySpecification"}
 16775  	if s.PointInTimeRecoveryEnabled == nil {
 16776  		invalidParams.Add(request.NewErrParamRequired("PointInTimeRecoveryEnabled"))
 16777  	}
 16778  
 16779  	if invalidParams.Len() > 0 {
 16780  		return invalidParams
 16781  	}
 16782  	return nil
 16783  }
 16784  
 16785  // SetPointInTimeRecoveryEnabled sets the PointInTimeRecoveryEnabled field's value.
 16786  func (s *PointInTimeRecoverySpecification) SetPointInTimeRecoveryEnabled(v bool) *PointInTimeRecoverySpecification {
 16787  	s.PointInTimeRecoveryEnabled = &v
 16788  	return s
 16789  }
 16790  
 16791  // Point in time recovery has not yet been enabled for this source table.
 16792  type PointInTimeRecoveryUnavailableException struct {
 16793  	_            struct{}                  `type:"structure"`
 16794  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 16795  
 16796  	Message_ *string `locationName:"message" type:"string"`
 16797  }
 16798  
 16799  // String returns the string representation.
 16800  //
 16801  // API parameter values that are decorated as "sensitive" in the API will not
 16802  // be included in the string output. The member name will be present, but the
 16803  // value will be replaced with "sensitive".
 16804  func (s PointInTimeRecoveryUnavailableException) String() string {
 16805  	return awsutil.Prettify(s)
 16806  }
 16807  
 16808  // GoString returns the string representation.
 16809  //
 16810  // API parameter values that are decorated as "sensitive" in the API will not
 16811  // be included in the string output. The member name will be present, but the
 16812  // value will be replaced with "sensitive".
 16813  func (s PointInTimeRecoveryUnavailableException) GoString() string {
 16814  	return s.String()
 16815  }
 16816  
 16817  func newErrorPointInTimeRecoveryUnavailableException(v protocol.ResponseMetadata) error {
 16818  	return &PointInTimeRecoveryUnavailableException{
 16819  		RespMetadata: v,
 16820  	}
 16821  }
 16822  
 16823  // Code returns the exception type name.
 16824  func (s *PointInTimeRecoveryUnavailableException) Code() string {
 16825  	return "PointInTimeRecoveryUnavailableException"
 16826  }
 16827  
 16828  // Message returns the exception's message.
 16829  func (s *PointInTimeRecoveryUnavailableException) Message() string {
 16830  	if s.Message_ != nil {
 16831  		return *s.Message_
 16832  	}
 16833  	return ""
 16834  }
 16835  
 16836  // OrigErr always returns nil, satisfies awserr.Error interface.
 16837  func (s *PointInTimeRecoveryUnavailableException) OrigErr() error {
 16838  	return nil
 16839  }
 16840  
 16841  func (s *PointInTimeRecoveryUnavailableException) Error() string {
 16842  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 16843  }
 16844  
 16845  // Status code returns the HTTP status code for the request's response error.
 16846  func (s *PointInTimeRecoveryUnavailableException) StatusCode() int {
 16847  	return s.RespMetadata.StatusCode
 16848  }
 16849  
 16850  // RequestID returns the service's response RequestID for request.
 16851  func (s *PointInTimeRecoveryUnavailableException) RequestID() string {
 16852  	return s.RespMetadata.RequestID
 16853  }
 16854  
 16855  // Represents attributes that are copied (projected) from the table into an
 16856  // index. These are in addition to the primary key attributes and index key
 16857  // attributes, which are automatically projected.
 16858  type Projection struct {
 16859  	_ struct{} `type:"structure"`
 16860  
 16861  	// Represents the non-key attribute names which will be projected into the index.
 16862  	//
 16863  	// For local secondary indexes, the total count of NonKeyAttributes summed across
 16864  	// all of the local secondary indexes, must not exceed 20. If you project the
 16865  	// same attribute into two different indexes, this counts as two distinct attributes
 16866  	// when determining the total.
 16867  	NonKeyAttributes []*string `min:"1" type:"list"`
 16868  
 16869  	// The set of attributes that are projected into the index:
 16870  	//
 16871  	//    * KEYS_ONLY - Only the index and primary keys are projected into the index.
 16872  	//
 16873  	//    * INCLUDE - In addition to the attributes described in KEYS_ONLY, the
 16874  	//    secondary index will include other non-key attributes that you specify.
 16875  	//
 16876  	//    * ALL - All of the table attributes are projected into the index.
 16877  	ProjectionType *string `type:"string" enum:"ProjectionType"`
 16878  }
 16879  
 16880  // String returns the string representation.
 16881  //
 16882  // API parameter values that are decorated as "sensitive" in the API will not
 16883  // be included in the string output. The member name will be present, but the
 16884  // value will be replaced with "sensitive".
 16885  func (s Projection) String() string {
 16886  	return awsutil.Prettify(s)
 16887  }
 16888  
 16889  // GoString returns the string representation.
 16890  //
 16891  // API parameter values that are decorated as "sensitive" in the API will not
 16892  // be included in the string output. The member name will be present, but the
 16893  // value will be replaced with "sensitive".
 16894  func (s Projection) GoString() string {
 16895  	return s.String()
 16896  }
 16897  
 16898  // Validate inspects the fields of the type to determine if they are valid.
 16899  func (s *Projection) Validate() error {
 16900  	invalidParams := request.ErrInvalidParams{Context: "Projection"}
 16901  	if s.NonKeyAttributes != nil && len(s.NonKeyAttributes) < 1 {
 16902  		invalidParams.Add(request.NewErrParamMinLen("NonKeyAttributes", 1))
 16903  	}
 16904  
 16905  	if invalidParams.Len() > 0 {
 16906  		return invalidParams
 16907  	}
 16908  	return nil
 16909  }
 16910  
 16911  // SetNonKeyAttributes sets the NonKeyAttributes field's value.
 16912  func (s *Projection) SetNonKeyAttributes(v []*string) *Projection {
 16913  	s.NonKeyAttributes = v
 16914  	return s
 16915  }
 16916  
 16917  // SetProjectionType sets the ProjectionType field's value.
 16918  func (s *Projection) SetProjectionType(v string) *Projection {
 16919  	s.ProjectionType = &v
 16920  	return s
 16921  }
 16922  
 16923  // Represents the provisioned throughput settings for a specified table or index.
 16924  // The settings can be modified using the UpdateTable operation.
 16925  //
 16926  // For current minimum and maximum provisioned throughput values, see Service,
 16927  // Account, and Table Quotas (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html)
 16928  // in the Amazon DynamoDB Developer Guide.
 16929  type ProvisionedThroughput struct {
 16930  	_ struct{} `type:"structure"`
 16931  
 16932  	// The maximum number of strongly consistent reads consumed per second before
 16933  	// DynamoDB returns a ThrottlingException. For more information, see Specifying
 16934  	// Read and Write Requirements (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput)
 16935  	// in the Amazon DynamoDB Developer Guide.
 16936  	//
 16937  	// If read/write capacity mode is PAY_PER_REQUEST the value is set to 0.
 16938  	//
 16939  	// ReadCapacityUnits is a required field
 16940  	ReadCapacityUnits *int64 `min:"1" type:"long" required:"true"`
 16941  
 16942  	// The maximum number of writes consumed per second before DynamoDB returns
 16943  	// a ThrottlingException. For more information, see Specifying Read and Write
 16944  	// Requirements (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput)
 16945  	// in the Amazon DynamoDB Developer Guide.
 16946  	//
 16947  	// If read/write capacity mode is PAY_PER_REQUEST the value is set to 0.
 16948  	//
 16949  	// WriteCapacityUnits is a required field
 16950  	WriteCapacityUnits *int64 `min:"1" type:"long" required:"true"`
 16951  }
 16952  
 16953  // String returns the string representation.
 16954  //
 16955  // API parameter values that are decorated as "sensitive" in the API will not
 16956  // be included in the string output. The member name will be present, but the
 16957  // value will be replaced with "sensitive".
 16958  func (s ProvisionedThroughput) String() string {
 16959  	return awsutil.Prettify(s)
 16960  }
 16961  
 16962  // GoString returns the string representation.
 16963  //
 16964  // API parameter values that are decorated as "sensitive" in the API will not
 16965  // be included in the string output. The member name will be present, but the
 16966  // value will be replaced with "sensitive".
 16967  func (s ProvisionedThroughput) GoString() string {
 16968  	return s.String()
 16969  }
 16970  
 16971  // Validate inspects the fields of the type to determine if they are valid.
 16972  func (s *ProvisionedThroughput) Validate() error {
 16973  	invalidParams := request.ErrInvalidParams{Context: "ProvisionedThroughput"}
 16974  	if s.ReadCapacityUnits == nil {
 16975  		invalidParams.Add(request.NewErrParamRequired("ReadCapacityUnits"))
 16976  	}
 16977  	if s.ReadCapacityUnits != nil && *s.ReadCapacityUnits < 1 {
 16978  		invalidParams.Add(request.NewErrParamMinValue("ReadCapacityUnits", 1))
 16979  	}
 16980  	if s.WriteCapacityUnits == nil {
 16981  		invalidParams.Add(request.NewErrParamRequired("WriteCapacityUnits"))
 16982  	}
 16983  	if s.WriteCapacityUnits != nil && *s.WriteCapacityUnits < 1 {
 16984  		invalidParams.Add(request.NewErrParamMinValue("WriteCapacityUnits", 1))
 16985  	}
 16986  
 16987  	if invalidParams.Len() > 0 {
 16988  		return invalidParams
 16989  	}
 16990  	return nil
 16991  }
 16992  
 16993  // SetReadCapacityUnits sets the ReadCapacityUnits field's value.
 16994  func (s *ProvisionedThroughput) SetReadCapacityUnits(v int64) *ProvisionedThroughput {
 16995  	s.ReadCapacityUnits = &v
 16996  	return s
 16997  }
 16998  
 16999  // SetWriteCapacityUnits sets the WriteCapacityUnits field's value.
 17000  func (s *ProvisionedThroughput) SetWriteCapacityUnits(v int64) *ProvisionedThroughput {
 17001  	s.WriteCapacityUnits = &v
 17002  	return s
 17003  }
 17004  
 17005  // Represents the provisioned throughput settings for the table, consisting
 17006  // of read and write capacity units, along with data about increases and decreases.
 17007  type ProvisionedThroughputDescription struct {
 17008  	_ struct{} `type:"structure"`
 17009  
 17010  	// The date and time of the last provisioned throughput decrease for this table.
 17011  	LastDecreaseDateTime *time.Time `type:"timestamp"`
 17012  
 17013  	// The date and time of the last provisioned throughput increase for this table.
 17014  	LastIncreaseDateTime *time.Time `type:"timestamp"`
 17015  
 17016  	// The number of provisioned throughput decreases for this table during this
 17017  	// UTC calendar day. For current maximums on provisioned throughput decreases,
 17018  	// see Service, Account, and Table Quotas (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html)
 17019  	// in the Amazon DynamoDB Developer Guide.
 17020  	NumberOfDecreasesToday *int64 `min:"1" type:"long"`
 17021  
 17022  	// The maximum number of strongly consistent reads consumed per second before
 17023  	// DynamoDB returns a ThrottlingException. Eventually consistent reads require
 17024  	// less effort than strongly consistent reads, so a setting of 50 ReadCapacityUnits
 17025  	// per second provides 100 eventually consistent ReadCapacityUnits per second.
 17026  	ReadCapacityUnits *int64 `type:"long"`
 17027  
 17028  	// The maximum number of writes consumed per second before DynamoDB returns
 17029  	// a ThrottlingException.
 17030  	WriteCapacityUnits *int64 `type:"long"`
 17031  }
 17032  
 17033  // String returns the string representation.
 17034  //
 17035  // API parameter values that are decorated as "sensitive" in the API will not
 17036  // be included in the string output. The member name will be present, but the
 17037  // value will be replaced with "sensitive".
 17038  func (s ProvisionedThroughputDescription) String() string {
 17039  	return awsutil.Prettify(s)
 17040  }
 17041  
 17042  // GoString returns the string representation.
 17043  //
 17044  // API parameter values that are decorated as "sensitive" in the API will not
 17045  // be included in the string output. The member name will be present, but the
 17046  // value will be replaced with "sensitive".
 17047  func (s ProvisionedThroughputDescription) GoString() string {
 17048  	return s.String()
 17049  }
 17050  
 17051  // SetLastDecreaseDateTime sets the LastDecreaseDateTime field's value.
 17052  func (s *ProvisionedThroughputDescription) SetLastDecreaseDateTime(v time.Time) *ProvisionedThroughputDescription {
 17053  	s.LastDecreaseDateTime = &v
 17054  	return s
 17055  }
 17056  
 17057  // SetLastIncreaseDateTime sets the LastIncreaseDateTime field's value.
 17058  func (s *ProvisionedThroughputDescription) SetLastIncreaseDateTime(v time.Time) *ProvisionedThroughputDescription {
 17059  	s.LastIncreaseDateTime = &v
 17060  	return s
 17061  }
 17062  
 17063  // SetNumberOfDecreasesToday sets the NumberOfDecreasesToday field's value.
 17064  func (s *ProvisionedThroughputDescription) SetNumberOfDecreasesToday(v int64) *ProvisionedThroughputDescription {
 17065  	s.NumberOfDecreasesToday = &v
 17066  	return s
 17067  }
 17068  
 17069  // SetReadCapacityUnits sets the ReadCapacityUnits field's value.
 17070  func (s *ProvisionedThroughputDescription) SetReadCapacityUnits(v int64) *ProvisionedThroughputDescription {
 17071  	s.ReadCapacityUnits = &v
 17072  	return s
 17073  }
 17074  
 17075  // SetWriteCapacityUnits sets the WriteCapacityUnits field's value.
 17076  func (s *ProvisionedThroughputDescription) SetWriteCapacityUnits(v int64) *ProvisionedThroughputDescription {
 17077  	s.WriteCapacityUnits = &v
 17078  	return s
 17079  }
 17080  
 17081  // Your request rate is too high. The AWS SDKs for DynamoDB automatically retry
 17082  // requests that receive this exception. Your request is eventually successful,
 17083  // unless your retry queue is too large to finish. Reduce the frequency of requests
 17084  // and use exponential backoff. For more information, go to Error Retries and
 17085  // Exponential Backoff (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.RetryAndBackoff)
 17086  // in the Amazon DynamoDB Developer Guide.
 17087  type ProvisionedThroughputExceededException struct {
 17088  	_            struct{}                  `type:"structure"`
 17089  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 17090  
 17091  	// You exceeded your maximum allowed provisioned throughput.
 17092  	Message_ *string `locationName:"message" type:"string"`
 17093  }
 17094  
 17095  // String returns the string representation.
 17096  //
 17097  // API parameter values that are decorated as "sensitive" in the API will not
 17098  // be included in the string output. The member name will be present, but the
 17099  // value will be replaced with "sensitive".
 17100  func (s ProvisionedThroughputExceededException) String() string {
 17101  	return awsutil.Prettify(s)
 17102  }
 17103  
 17104  // GoString returns the string representation.
 17105  //
 17106  // API parameter values that are decorated as "sensitive" in the API will not
 17107  // be included in the string output. The member name will be present, but the
 17108  // value will be replaced with "sensitive".
 17109  func (s ProvisionedThroughputExceededException) GoString() string {
 17110  	return s.String()
 17111  }
 17112  
 17113  func newErrorProvisionedThroughputExceededException(v protocol.ResponseMetadata) error {
 17114  	return &ProvisionedThroughputExceededException{
 17115  		RespMetadata: v,
 17116  	}
 17117  }
 17118  
 17119  // Code returns the exception type name.
 17120  func (s *ProvisionedThroughputExceededException) Code() string {
 17121  	return "ProvisionedThroughputExceededException"
 17122  }
 17123  
 17124  // Message returns the exception's message.
 17125  func (s *ProvisionedThroughputExceededException) Message() string {
 17126  	if s.Message_ != nil {
 17127  		return *s.Message_
 17128  	}
 17129  	return ""
 17130  }
 17131  
 17132  // OrigErr always returns nil, satisfies awserr.Error interface.
 17133  func (s *ProvisionedThroughputExceededException) OrigErr() error {
 17134  	return nil
 17135  }
 17136  
 17137  func (s *ProvisionedThroughputExceededException) Error() string {
 17138  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 17139  }
 17140  
 17141  // Status code returns the HTTP status code for the request's response error.
 17142  func (s *ProvisionedThroughputExceededException) StatusCode() int {
 17143  	return s.RespMetadata.StatusCode
 17144  }
 17145  
 17146  // RequestID returns the service's response RequestID for request.
 17147  func (s *ProvisionedThroughputExceededException) RequestID() string {
 17148  	return s.RespMetadata.RequestID
 17149  }
 17150  
 17151  // Replica-specific provisioned throughput settings. If not specified, uses
 17152  // the source table's provisioned throughput settings.
 17153  type ProvisionedThroughputOverride struct {
 17154  	_ struct{} `type:"structure"`
 17155  
 17156  	// Replica-specific read capacity units. If not specified, uses the source table's
 17157  	// read capacity settings.
 17158  	ReadCapacityUnits *int64 `min:"1" type:"long"`
 17159  }
 17160  
 17161  // String returns the string representation.
 17162  //
 17163  // API parameter values that are decorated as "sensitive" in the API will not
 17164  // be included in the string output. The member name will be present, but the
 17165  // value will be replaced with "sensitive".
 17166  func (s ProvisionedThroughputOverride) String() string {
 17167  	return awsutil.Prettify(s)
 17168  }
 17169  
 17170  // GoString returns the string representation.
 17171  //
 17172  // API parameter values that are decorated as "sensitive" in the API will not
 17173  // be included in the string output. The member name will be present, but the
 17174  // value will be replaced with "sensitive".
 17175  func (s ProvisionedThroughputOverride) GoString() string {
 17176  	return s.String()
 17177  }
 17178  
 17179  // Validate inspects the fields of the type to determine if they are valid.
 17180  func (s *ProvisionedThroughputOverride) Validate() error {
 17181  	invalidParams := request.ErrInvalidParams{Context: "ProvisionedThroughputOverride"}
 17182  	if s.ReadCapacityUnits != nil && *s.ReadCapacityUnits < 1 {
 17183  		invalidParams.Add(request.NewErrParamMinValue("ReadCapacityUnits", 1))
 17184  	}
 17185  
 17186  	if invalidParams.Len() > 0 {
 17187  		return invalidParams
 17188  	}
 17189  	return nil
 17190  }
 17191  
 17192  // SetReadCapacityUnits sets the ReadCapacityUnits field's value.
 17193  func (s *ProvisionedThroughputOverride) SetReadCapacityUnits(v int64) *ProvisionedThroughputOverride {
 17194  	s.ReadCapacityUnits = &v
 17195  	return s
 17196  }
 17197  
 17198  // Represents a request to perform a PutItem operation.
 17199  type Put struct {
 17200  	_ struct{} `type:"structure"`
 17201  
 17202  	// A condition that must be satisfied in order for a conditional update to succeed.
 17203  	ConditionExpression *string `type:"string"`
 17204  
 17205  	// One or more substitution tokens for attribute names in an expression.
 17206  	ExpressionAttributeNames map[string]*string `type:"map"`
 17207  
 17208  	// One or more values that can be substituted in an expression.
 17209  	ExpressionAttributeValues map[string]*AttributeValue `type:"map"`
 17210  
 17211  	// A map of attribute name to attribute values, representing the primary key
 17212  	// of the item to be written by PutItem. All of the table's primary key attributes
 17213  	// must be specified, and their data types must match those of the table's key
 17214  	// schema. If any attributes are present in the item that are part of an index
 17215  	// key schema for the table, their types must match the index key schema.
 17216  	//
 17217  	// Item is a required field
 17218  	Item map[string]*AttributeValue `type:"map" required:"true"`
 17219  
 17220  	// Use ReturnValuesOnConditionCheckFailure to get the item attributes if the
 17221  	// Put condition fails. For ReturnValuesOnConditionCheckFailure, the valid values
 17222  	// are: NONE and ALL_OLD.
 17223  	ReturnValuesOnConditionCheckFailure *string `type:"string" enum:"ReturnValuesOnConditionCheckFailure"`
 17224  
 17225  	// Name of the table in which to write the item.
 17226  	//
 17227  	// TableName is a required field
 17228  	TableName *string `min:"3" type:"string" required:"true"`
 17229  }
 17230  
 17231  // String returns the string representation.
 17232  //
 17233  // API parameter values that are decorated as "sensitive" in the API will not
 17234  // be included in the string output. The member name will be present, but the
 17235  // value will be replaced with "sensitive".
 17236  func (s Put) String() string {
 17237  	return awsutil.Prettify(s)
 17238  }
 17239  
 17240  // GoString returns the string representation.
 17241  //
 17242  // API parameter values that are decorated as "sensitive" in the API will not
 17243  // be included in the string output. The member name will be present, but the
 17244  // value will be replaced with "sensitive".
 17245  func (s Put) GoString() string {
 17246  	return s.String()
 17247  }
 17248  
 17249  // Validate inspects the fields of the type to determine if they are valid.
 17250  func (s *Put) Validate() error {
 17251  	invalidParams := request.ErrInvalidParams{Context: "Put"}
 17252  	if s.Item == nil {
 17253  		invalidParams.Add(request.NewErrParamRequired("Item"))
 17254  	}
 17255  	if s.TableName == nil {
 17256  		invalidParams.Add(request.NewErrParamRequired("TableName"))
 17257  	}
 17258  	if s.TableName != nil && len(*s.TableName) < 3 {
 17259  		invalidParams.Add(request.NewErrParamMinLen("TableName", 3))
 17260  	}
 17261  
 17262  	if invalidParams.Len() > 0 {
 17263  		return invalidParams
 17264  	}
 17265  	return nil
 17266  }
 17267  
 17268  // SetConditionExpression sets the ConditionExpression field's value.
 17269  func (s *Put) SetConditionExpression(v string) *Put {
 17270  	s.ConditionExpression = &v
 17271  	return s
 17272  }
 17273  
 17274  // SetExpressionAttributeNames sets the ExpressionAttributeNames field's value.
 17275  func (s *Put) SetExpressionAttributeNames(v map[string]*string) *Put {
 17276  	s.ExpressionAttributeNames = v
 17277  	return s
 17278  }
 17279  
 17280  // SetExpressionAttributeValues sets the ExpressionAttributeValues field's value.
 17281  func (s *Put) SetExpressionAttributeValues(v map[string]*AttributeValue) *Put {
 17282  	s.ExpressionAttributeValues = v
 17283  	return s
 17284  }
 17285  
 17286  // SetItem sets the Item field's value.
 17287  func (s *Put) SetItem(v map[string]*AttributeValue) *Put {
 17288  	s.Item = v
 17289  	return s
 17290  }
 17291  
 17292  // SetReturnValuesOnConditionCheckFailure sets the ReturnValuesOnConditionCheckFailure field's value.
 17293  func (s *Put) SetReturnValuesOnConditionCheckFailure(v string) *Put {
 17294  	s.ReturnValuesOnConditionCheckFailure = &v
 17295  	return s
 17296  }
 17297  
 17298  // SetTableName sets the TableName field's value.
 17299  func (s *Put) SetTableName(v string) *Put {
 17300  	s.TableName = &v
 17301  	return s
 17302  }
 17303  
 17304  // Represents the input of a PutItem operation.
 17305  type PutItemInput struct {
 17306  	_ struct{} `type:"structure"`
 17307  
 17308  	// A condition that must be satisfied in order for a conditional PutItem operation
 17309  	// to succeed.
 17310  	//
 17311  	// An expression can contain any of the following:
 17312  	//
 17313  	//    * Functions: attribute_exists | attribute_not_exists | attribute_type
 17314  	//    | contains | begins_with | size These function names are case-sensitive.
 17315  	//
 17316  	//    * Comparison operators: = | <> | < | > | <= | >= | BETWEEN | IN
 17317  	//
 17318  	//    * Logical operators: AND | OR | NOT
 17319  	//
 17320  	// For more information on condition expressions, see Condition Expressions
 17321  	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html)
 17322  	// in the Amazon DynamoDB Developer Guide.
 17323  	ConditionExpression *string `type:"string"`
 17324  
 17325  	// This is a legacy parameter. Use ConditionExpression instead. For more information,
 17326  	// see ConditionalOperator (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ConditionalOperator.html)
 17327  	// in the Amazon DynamoDB Developer Guide.
 17328  	ConditionalOperator *string `type:"string" enum:"ConditionalOperator"`
 17329  
 17330  	// This is a legacy parameter. Use ConditionExpression instead. For more information,
 17331  	// see Expected (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.Expected.html)
 17332  	// in the Amazon DynamoDB Developer Guide.
 17333  	Expected map[string]*ExpectedAttributeValue `type:"map"`
 17334  
 17335  	// One or more substitution tokens for attribute names in an expression. The
 17336  	// following are some use cases for using ExpressionAttributeNames:
 17337  	//
 17338  	//    * To access an attribute whose name conflicts with a DynamoDB reserved
 17339  	//    word.
 17340  	//
 17341  	//    * To create a placeholder for repeating occurrences of an attribute name
 17342  	//    in an expression.
 17343  	//
 17344  	//    * To prevent special characters in an attribute name from being misinterpreted
 17345  	//    in an expression.
 17346  	//
 17347  	// Use the # character in an expression to dereference an attribute name. For
 17348  	// example, consider the following attribute name:
 17349  	//
 17350  	//    * Percentile
 17351  	//
 17352  	// The name of this attribute conflicts with a reserved word, so it cannot be
 17353  	// used directly in an expression. (For the complete list of reserved words,
 17354  	// see Reserved Words (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html)
 17355  	// in the Amazon DynamoDB Developer Guide). To work around this, you could specify
 17356  	// the following for ExpressionAttributeNames:
 17357  	//
 17358  	//    * {"#P":"Percentile"}
 17359  	//
 17360  	// You could then use this substitution in an expression, as in this example:
 17361  	//
 17362  	//    * #P = :val
 17363  	//
 17364  	// Tokens that begin with the : character are expression attribute values, which
 17365  	// are placeholders for the actual value at runtime.
 17366  	//
 17367  	// For more information on expression attribute names, see Specifying Item Attributes
 17368  	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html)
 17369  	// in the Amazon DynamoDB Developer Guide.
 17370  	ExpressionAttributeNames map[string]*string `type:"map"`
 17371  
 17372  	// One or more values that can be substituted in an expression.
 17373  	//
 17374  	// Use the : (colon) character in an expression to dereference an attribute
 17375  	// value. For example, suppose that you wanted to check whether the value of
 17376  	// the ProductStatus attribute was one of the following:
 17377  	//
 17378  	// Available | Backordered | Discontinued
 17379  	//
 17380  	// You would first need to specify ExpressionAttributeValues as follows:
 17381  	//
 17382  	// { ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"}
 17383  	// }
 17384  	//
 17385  	// You could then use these values in an expression, such as this:
 17386  	//
 17387  	// ProductStatus IN (:avail, :back, :disc)
 17388  	//
 17389  	// For more information on expression attribute values, see Condition Expressions
 17390  	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html)
 17391  	// in the Amazon DynamoDB Developer Guide.
 17392  	ExpressionAttributeValues map[string]*AttributeValue `type:"map"`
 17393  
 17394  	// A map of attribute name/value pairs, one for each attribute. Only the primary
 17395  	// key attributes are required; you can optionally provide other attribute name-value
 17396  	// pairs for the item.
 17397  	//
 17398  	// You must provide all of the attributes for the primary key. For example,
 17399  	// with a simple primary key, you only need to provide a value for the partition
 17400  	// key. For a composite primary key, you must provide both values for both the
 17401  	// partition key and the sort key.
 17402  	//
 17403  	// If you specify any attributes that are part of an index key, then the data
 17404  	// types for those attributes must match those of the schema in the table's
 17405  	// attribute definition.
 17406  	//
 17407  	// Empty String and Binary attribute values are allowed. Attribute values of
 17408  	// type String and Binary must have a length greater than zero if the attribute
 17409  	// is used as a key attribute for a table or index.
 17410  	//
 17411  	// For more information about primary keys, see Primary Key (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html#HowItWorks.CoreComponents.PrimaryKey)
 17412  	// in the Amazon DynamoDB Developer Guide.
 17413  	//
 17414  	// Each element in the Item map is an AttributeValue object.
 17415  	//
 17416  	// Item is a required field
 17417  	Item map[string]*AttributeValue `type:"map" required:"true"`
 17418  
 17419  	// Determines the level of detail about provisioned throughput consumption that
 17420  	// is returned in the response:
 17421  	//
 17422  	//    * INDEXES - The response includes the aggregate ConsumedCapacity for the
 17423  	//    operation, together with ConsumedCapacity for each table and secondary
 17424  	//    index that was accessed. Note that some operations, such as GetItem and
 17425  	//    BatchGetItem, do not access any indexes at all. In these cases, specifying
 17426  	//    INDEXES will only return ConsumedCapacity information for table(s).
 17427  	//
 17428  	//    * TOTAL - The response includes only the aggregate ConsumedCapacity for
 17429  	//    the operation.
 17430  	//
 17431  	//    * NONE - No ConsumedCapacity details are included in the response.
 17432  	ReturnConsumedCapacity *string `type:"string" enum:"ReturnConsumedCapacity"`
 17433  
 17434  	// Determines whether item collection metrics are returned. If set to SIZE,
 17435  	// the response includes statistics about item collections, if any, that were
 17436  	// modified during the operation are returned in the response. If set to NONE
 17437  	// (the default), no statistics are returned.
 17438  	ReturnItemCollectionMetrics *string `type:"string" enum:"ReturnItemCollectionMetrics"`
 17439  
 17440  	// Use ReturnValues if you want to get the item attributes as they appeared
 17441  	// before they were updated with the PutItem request. For PutItem, the valid
 17442  	// values are:
 17443  	//
 17444  	//    * NONE - If ReturnValues is not specified, or if its value is NONE, then
 17445  	//    nothing is returned. (This setting is the default for ReturnValues.)
 17446  	//
 17447  	//    * ALL_OLD - If PutItem overwrote an attribute name-value pair, then the
 17448  	//    content of the old item is returned.
 17449  	//
 17450  	// The ReturnValues parameter is used by several DynamoDB operations; however,
 17451  	// PutItem does not recognize any values other than NONE or ALL_OLD.
 17452  	ReturnValues *string `type:"string" enum:"ReturnValue"`
 17453  
 17454  	// The name of the table to contain the item.
 17455  	//
 17456  	// TableName is a required field
 17457  	TableName *string `min:"3" type:"string" required:"true"`
 17458  }
 17459  
 17460  // String returns the string representation.
 17461  //
 17462  // API parameter values that are decorated as "sensitive" in the API will not
 17463  // be included in the string output. The member name will be present, but the
 17464  // value will be replaced with "sensitive".
 17465  func (s PutItemInput) String() string {
 17466  	return awsutil.Prettify(s)
 17467  }
 17468  
 17469  // GoString returns the string representation.
 17470  //
 17471  // API parameter values that are decorated as "sensitive" in the API will not
 17472  // be included in the string output. The member name will be present, but the
 17473  // value will be replaced with "sensitive".
 17474  func (s PutItemInput) GoString() string {
 17475  	return s.String()
 17476  }
 17477  
 17478  // Validate inspects the fields of the type to determine if they are valid.
 17479  func (s *PutItemInput) Validate() error {
 17480  	invalidParams := request.ErrInvalidParams{Context: "PutItemInput"}
 17481  	if s.Item == nil {
 17482  		invalidParams.Add(request.NewErrParamRequired("Item"))
 17483  	}
 17484  	if s.TableName == nil {
 17485  		invalidParams.Add(request.NewErrParamRequired("TableName"))
 17486  	}
 17487  	if s.TableName != nil && len(*s.TableName) < 3 {
 17488  		invalidParams.Add(request.NewErrParamMinLen("TableName", 3))
 17489  	}
 17490  
 17491  	if invalidParams.Len() > 0 {
 17492  		return invalidParams
 17493  	}
 17494  	return nil
 17495  }
 17496  
 17497  // SetConditionExpression sets the ConditionExpression field's value.
 17498  func (s *PutItemInput) SetConditionExpression(v string) *PutItemInput {
 17499  	s.ConditionExpression = &v
 17500  	return s
 17501  }
 17502  
 17503  // SetConditionalOperator sets the ConditionalOperator field's value.
 17504  func (s *PutItemInput) SetConditionalOperator(v string) *PutItemInput {
 17505  	s.ConditionalOperator = &v
 17506  	return s
 17507  }
 17508  
 17509  // SetExpected sets the Expected field's value.
 17510  func (s *PutItemInput) SetExpected(v map[string]*ExpectedAttributeValue) *PutItemInput {
 17511  	s.Expected = v
 17512  	return s
 17513  }
 17514  
 17515  // SetExpressionAttributeNames sets the ExpressionAttributeNames field's value.
 17516  func (s *PutItemInput) SetExpressionAttributeNames(v map[string]*string) *PutItemInput {
 17517  	s.ExpressionAttributeNames = v
 17518  	return s
 17519  }
 17520  
 17521  // SetExpressionAttributeValues sets the ExpressionAttributeValues field's value.
 17522  func (s *PutItemInput) SetExpressionAttributeValues(v map[string]*AttributeValue) *PutItemInput {
 17523  	s.ExpressionAttributeValues = v
 17524  	return s
 17525  }
 17526  
 17527  // SetItem sets the Item field's value.
 17528  func (s *PutItemInput) SetItem(v map[string]*AttributeValue) *PutItemInput {
 17529  	s.Item = v
 17530  	return s
 17531  }
 17532  
 17533  // SetReturnConsumedCapacity sets the ReturnConsumedCapacity field's value.
 17534  func (s *PutItemInput) SetReturnConsumedCapacity(v string) *PutItemInput {
 17535  	s.ReturnConsumedCapacity = &v
 17536  	return s
 17537  }
 17538  
 17539  // SetReturnItemCollectionMetrics sets the ReturnItemCollectionMetrics field's value.
 17540  func (s *PutItemInput) SetReturnItemCollectionMetrics(v string) *PutItemInput {
 17541  	s.ReturnItemCollectionMetrics = &v
 17542  	return s
 17543  }
 17544  
 17545  // SetReturnValues sets the ReturnValues field's value.
 17546  func (s *PutItemInput) SetReturnValues(v string) *PutItemInput {
 17547  	s.ReturnValues = &v
 17548  	return s
 17549  }
 17550  
 17551  // SetTableName sets the TableName field's value.
 17552  func (s *PutItemInput) SetTableName(v string) *PutItemInput {
 17553  	s.TableName = &v
 17554  	return s
 17555  }
 17556  
 17557  // Represents the output of a PutItem operation.
 17558  type PutItemOutput struct {
 17559  	_ struct{} `type:"structure"`
 17560  
 17561  	// The attribute values as they appeared before the PutItem operation, but only
 17562  	// if ReturnValues is specified as ALL_OLD in the request. Each element consists
 17563  	// of an attribute name and an attribute value.
 17564  	Attributes map[string]*AttributeValue `type:"map"`
 17565  
 17566  	// The capacity units consumed by the PutItem operation. The data returned includes
 17567  	// the total provisioned throughput consumed, along with statistics for the
 17568  	// table and any indexes involved in the operation. ConsumedCapacity is only
 17569  	// returned if the ReturnConsumedCapacity parameter was specified. For more
 17570  	// information, see Read/Write Capacity Mode (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html)
 17571  	// in the Amazon DynamoDB Developer Guide.
 17572  	ConsumedCapacity *ConsumedCapacity `type:"structure"`
 17573  
 17574  	// Information about item collections, if any, that were affected by the PutItem
 17575  	// operation. ItemCollectionMetrics is only returned if the ReturnItemCollectionMetrics
 17576  	// parameter was specified. If the table does not have any local secondary indexes,
 17577  	// this information is not returned in the response.
 17578  	//
 17579  	// Each ItemCollectionMetrics element consists of:
 17580  	//
 17581  	//    * ItemCollectionKey - The partition key value of the item collection.
 17582  	//    This is the same as the partition key value of the item itself.
 17583  	//
 17584  	//    * SizeEstimateRangeGB - An estimate of item collection size, in gigabytes.
 17585  	//    This value is a two-element array containing a lower bound and an upper
 17586  	//    bound for the estimate. The estimate includes the size of all the items
 17587  	//    in the table, plus the size of all attributes projected into all of the
 17588  	//    local secondary indexes on that table. Use this estimate to measure whether
 17589  	//    a local secondary index is approaching its size limit. The estimate is
 17590  	//    subject to change over time; therefore, do not rely on the precision or
 17591  	//    accuracy of the estimate.
 17592  	ItemCollectionMetrics *ItemCollectionMetrics `type:"structure"`
 17593  }
 17594  
 17595  // String returns the string representation.
 17596  //
 17597  // API parameter values that are decorated as "sensitive" in the API will not
 17598  // be included in the string output. The member name will be present, but the
 17599  // value will be replaced with "sensitive".
 17600  func (s PutItemOutput) String() string {
 17601  	return awsutil.Prettify(s)
 17602  }
 17603  
 17604  // GoString returns the string representation.
 17605  //
 17606  // API parameter values that are decorated as "sensitive" in the API will not
 17607  // be included in the string output. The member name will be present, but the
 17608  // value will be replaced with "sensitive".
 17609  func (s PutItemOutput) GoString() string {
 17610  	return s.String()
 17611  }
 17612  
 17613  // SetAttributes sets the Attributes field's value.
 17614  func (s *PutItemOutput) SetAttributes(v map[string]*AttributeValue) *PutItemOutput {
 17615  	s.Attributes = v
 17616  	return s
 17617  }
 17618  
 17619  // SetConsumedCapacity sets the ConsumedCapacity field's value.
 17620  func (s *PutItemOutput) SetConsumedCapacity(v *ConsumedCapacity) *PutItemOutput {
 17621  	s.ConsumedCapacity = v
 17622  	return s
 17623  }
 17624  
 17625  // SetItemCollectionMetrics sets the ItemCollectionMetrics field's value.
 17626  func (s *PutItemOutput) SetItemCollectionMetrics(v *ItemCollectionMetrics) *PutItemOutput {
 17627  	s.ItemCollectionMetrics = v
 17628  	return s
 17629  }
 17630  
 17631  // Represents a request to perform a PutItem operation on an item.
 17632  type PutRequest struct {
 17633  	_ struct{} `type:"structure"`
 17634  
 17635  	// A map of attribute name to attribute values, representing the primary key
 17636  	// of an item to be processed by PutItem. All of the table's primary key attributes
 17637  	// must be specified, and their data types must match those of the table's key
 17638  	// schema. If any attributes are present in the item that are part of an index
 17639  	// key schema for the table, their types must match the index key schema.
 17640  	//
 17641  	// Item is a required field
 17642  	Item map[string]*AttributeValue `type:"map" required:"true"`
 17643  }
 17644  
 17645  // String returns the string representation.
 17646  //
 17647  // API parameter values that are decorated as "sensitive" in the API will not
 17648  // be included in the string output. The member name will be present, but the
 17649  // value will be replaced with "sensitive".
 17650  func (s PutRequest) String() string {
 17651  	return awsutil.Prettify(s)
 17652  }
 17653  
 17654  // GoString returns the string representation.
 17655  //
 17656  // API parameter values that are decorated as "sensitive" in the API will not
 17657  // be included in the string output. The member name will be present, but the
 17658  // value will be replaced with "sensitive".
 17659  func (s PutRequest) GoString() string {
 17660  	return s.String()
 17661  }
 17662  
 17663  // SetItem sets the Item field's value.
 17664  func (s *PutRequest) SetItem(v map[string]*AttributeValue) *PutRequest {
 17665  	s.Item = v
 17666  	return s
 17667  }
 17668  
 17669  // Represents the input of a Query operation.
 17670  type QueryInput struct {
 17671  	_ struct{} `type:"structure"`
 17672  
 17673  	// This is a legacy parameter. Use ProjectionExpression instead. For more information,
 17674  	// see AttributesToGet (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.AttributesToGet.html)
 17675  	// in the Amazon DynamoDB Developer Guide.
 17676  	AttributesToGet []*string `min:"1" type:"list"`
 17677  
 17678  	// This is a legacy parameter. Use FilterExpression instead. For more information,
 17679  	// see ConditionalOperator (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ConditionalOperator.html)
 17680  	// in the Amazon DynamoDB Developer Guide.
 17681  	ConditionalOperator *string `type:"string" enum:"ConditionalOperator"`
 17682  
 17683  	// Determines the read consistency model: If set to true, then the operation
 17684  	// uses strongly consistent reads; otherwise, the operation uses eventually
 17685  	// consistent reads.
 17686  	//
 17687  	// Strongly consistent reads are not supported on global secondary indexes.
 17688  	// If you query a global secondary index with ConsistentRead set to true, you
 17689  	// will receive a ValidationException.
 17690  	ConsistentRead *bool `type:"boolean"`
 17691  
 17692  	// The primary key of the first item that this operation will evaluate. Use
 17693  	// the value that was returned for LastEvaluatedKey in the previous operation.
 17694  	//
 17695  	// The data type for ExclusiveStartKey must be String, Number, or Binary. No
 17696  	// set data types are allowed.
 17697  	ExclusiveStartKey map[string]*AttributeValue `type:"map"`
 17698  
 17699  	// One or more substitution tokens for attribute names in an expression. The
 17700  	// following are some use cases for using ExpressionAttributeNames:
 17701  	//
 17702  	//    * To access an attribute whose name conflicts with a DynamoDB reserved
 17703  	//    word.
 17704  	//
 17705  	//    * To create a placeholder for repeating occurrences of an attribute name
 17706  	//    in an expression.
 17707  	//
 17708  	//    * To prevent special characters in an attribute name from being misinterpreted
 17709  	//    in an expression.
 17710  	//
 17711  	// Use the # character in an expression to dereference an attribute name. For
 17712  	// example, consider the following attribute name:
 17713  	//
 17714  	//    * Percentile
 17715  	//
 17716  	// The name of this attribute conflicts with a reserved word, so it cannot be
 17717  	// used directly in an expression. (For the complete list of reserved words,
 17718  	// see Reserved Words (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html)
 17719  	// in the Amazon DynamoDB Developer Guide). To work around this, you could specify
 17720  	// the following for ExpressionAttributeNames:
 17721  	//
 17722  	//    * {"#P":"Percentile"}
 17723  	//
 17724  	// You could then use this substitution in an expression, as in this example:
 17725  	//
 17726  	//    * #P = :val
 17727  	//
 17728  	// Tokens that begin with the : character are expression attribute values, which
 17729  	// are placeholders for the actual value at runtime.
 17730  	//
 17731  	// For more information on expression attribute names, see Specifying Item Attributes
 17732  	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html)
 17733  	// in the Amazon DynamoDB Developer Guide.
 17734  	ExpressionAttributeNames map[string]*string `type:"map"`
 17735  
 17736  	// One or more values that can be substituted in an expression.
 17737  	//
 17738  	// Use the : (colon) character in an expression to dereference an attribute
 17739  	// value. For example, suppose that you wanted to check whether the value of
 17740  	// the ProductStatus attribute was one of the following:
 17741  	//
 17742  	// Available | Backordered | Discontinued
 17743  	//
 17744  	// You would first need to specify ExpressionAttributeValues as follows:
 17745  	//
 17746  	// { ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"}
 17747  	// }
 17748  	//
 17749  	// You could then use these values in an expression, such as this:
 17750  	//
 17751  	// ProductStatus IN (:avail, :back, :disc)
 17752  	//
 17753  	// For more information on expression attribute values, see Specifying Conditions
 17754  	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html)
 17755  	// in the Amazon DynamoDB Developer Guide.
 17756  	ExpressionAttributeValues map[string]*AttributeValue `type:"map"`
 17757  
 17758  	// A string that contains conditions that DynamoDB applies after the Query operation,
 17759  	// but before the data is returned to you. Items that do not satisfy the FilterExpression
 17760  	// criteria are not returned.
 17761  	//
 17762  	// A FilterExpression does not allow key attributes. You cannot define a filter
 17763  	// expression based on a partition key or a sort key.
 17764  	//
 17765  	// A FilterExpression is applied after the items have already been read; the
 17766  	// process of filtering does not consume any additional read capacity units.
 17767  	//
 17768  	// For more information, see Filter Expressions (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#FilteringResults)
 17769  	// in the Amazon DynamoDB Developer Guide.
 17770  	FilterExpression *string `type:"string"`
 17771  
 17772  	// The name of an index to query. This index can be any local secondary index
 17773  	// or global secondary index on the table. Note that if you use the IndexName
 17774  	// parameter, you must also provide TableName.
 17775  	IndexName *string `min:"3" type:"string"`
 17776  
 17777  	// The condition that specifies the key values for items to be retrieved by
 17778  	// the Query action.
 17779  	//
 17780  	// The condition must perform an equality test on a single partition key value.
 17781  	//
 17782  	// The condition can optionally perform one of several comparison tests on a
 17783  	// single sort key value. This allows Query to retrieve one item with a given
 17784  	// partition key value and sort key value, or several items that have the same
 17785  	// partition key value but different sort key values.
 17786  	//
 17787  	// The partition key equality test is required, and must be specified in the
 17788  	// following format:
 17789  	//
 17790  	// partitionKeyName = :partitionkeyval
 17791  	//
 17792  	// If you also want to provide a condition for the sort key, it must be combined
 17793  	// using AND with the condition for the sort key. Following is an example, using
 17794  	// the = comparison operator for the sort key:
 17795  	//
 17796  	// partitionKeyName = :partitionkeyval AND sortKeyName = :sortkeyval
 17797  	//
 17798  	// Valid comparisons for the sort key condition are as follows:
 17799  	//
 17800  	//    * sortKeyName = :sortkeyval - true if the sort key value is equal to :sortkeyval.
 17801  	//
 17802  	//    * sortKeyName < :sortkeyval - true if the sort key value is less than
 17803  	//    :sortkeyval.
 17804  	//
 17805  	//    * sortKeyName <= :sortkeyval - true if the sort key value is less than
 17806  	//    or equal to :sortkeyval.
 17807  	//
 17808  	//    * sortKeyName > :sortkeyval - true if the sort key value is greater than
 17809  	//    :sortkeyval.
 17810  	//
 17811  	//    * sortKeyName >= :sortkeyval - true if the sort key value is greater than
 17812  	//    or equal to :sortkeyval.
 17813  	//
 17814  	//    * sortKeyName BETWEEN :sortkeyval1 AND :sortkeyval2 - true if the sort
 17815  	//    key value is greater than or equal to :sortkeyval1, and less than or equal
 17816  	//    to :sortkeyval2.
 17817  	//
 17818  	//    * begins_with ( sortKeyName, :sortkeyval ) - true if the sort key value
 17819  	//    begins with a particular operand. (You cannot use this function with a
 17820  	//    sort key that is of type Number.) Note that the function name begins_with
 17821  	//    is case-sensitive.
 17822  	//
 17823  	// Use the ExpressionAttributeValues parameter to replace tokens such as :partitionval
 17824  	// and :sortval with actual values at runtime.
 17825  	//
 17826  	// You can optionally use the ExpressionAttributeNames parameter to replace
 17827  	// the names of the partition key and sort key with placeholder tokens. This
 17828  	// option might be necessary if an attribute name conflicts with a DynamoDB
 17829  	// reserved word. For example, the following KeyConditionExpression parameter
 17830  	// causes an error because Size is a reserved word:
 17831  	//
 17832  	//    * Size = :myval
 17833  	//
 17834  	// To work around this, define a placeholder (such a #S) to represent the attribute
 17835  	// name Size. KeyConditionExpression then is as follows:
 17836  	//
 17837  	//    * #S = :myval
 17838  	//
 17839  	// For a list of reserved words, see Reserved Words (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html)
 17840  	// in the Amazon DynamoDB Developer Guide.
 17841  	//
 17842  	// For more information on ExpressionAttributeNames and ExpressionAttributeValues,
 17843  	// see Using Placeholders for Attribute Names and Values (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ExpressionPlaceholders.html)
 17844  	// in the Amazon DynamoDB Developer Guide.
 17845  	KeyConditionExpression *string `type:"string"`
 17846  
 17847  	// This is a legacy parameter. Use KeyConditionExpression instead. For more
 17848  	// information, see KeyConditions (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.KeyConditions.html)
 17849  	// in the Amazon DynamoDB Developer Guide.
 17850  	KeyConditions map[string]*Condition `type:"map"`
 17851  
 17852  	// The maximum number of items to evaluate (not necessarily the number of matching
 17853  	// items). If DynamoDB processes the number of items up to the limit while processing
 17854  	// the results, it stops the operation and returns the matching values up to
 17855  	// that point, and a key in LastEvaluatedKey to apply in a subsequent operation,
 17856  	// so that you can pick up where you left off. Also, if the processed dataset
 17857  	// size exceeds 1 MB before DynamoDB reaches this limit, it stops the operation
 17858  	// and returns the matching values up to the limit, and a key in LastEvaluatedKey
 17859  	// to apply in a subsequent operation to continue the operation. For more information,
 17860  	// see Query and Scan (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html)
 17861  	// in the Amazon DynamoDB Developer Guide.
 17862  	Limit *int64 `min:"1" type:"integer"`
 17863  
 17864  	// A string that identifies one or more attributes to retrieve from the table.
 17865  	// These attributes can include scalars, sets, or elements of a JSON document.
 17866  	// The attributes in the expression must be separated by commas.
 17867  	//
 17868  	// If no attribute names are specified, then all attributes will be returned.
 17869  	// If any of the requested attributes are not found, they will not appear in
 17870  	// the result.
 17871  	//
 17872  	// For more information, see Accessing Item Attributes (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html)
 17873  	// in the Amazon DynamoDB Developer Guide.
 17874  	ProjectionExpression *string `type:"string"`
 17875  
 17876  	// This is a legacy parameter. Use FilterExpression instead. For more information,
 17877  	// see QueryFilter (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.QueryFilter.html)
 17878  	// in the Amazon DynamoDB Developer Guide.
 17879  	QueryFilter map[string]*Condition `type:"map"`
 17880  
 17881  	// Determines the level of detail about provisioned throughput consumption that
 17882  	// is returned in the response:
 17883  	//
 17884  	//    * INDEXES - The response includes the aggregate ConsumedCapacity for the
 17885  	//    operation, together with ConsumedCapacity for each table and secondary
 17886  	//    index that was accessed. Note that some operations, such as GetItem and
 17887  	//    BatchGetItem, do not access any indexes at all. In these cases, specifying
 17888  	//    INDEXES will only return ConsumedCapacity information for table(s).
 17889  	//
 17890  	//    * TOTAL - The response includes only the aggregate ConsumedCapacity for
 17891  	//    the operation.
 17892  	//
 17893  	//    * NONE - No ConsumedCapacity details are included in the response.
 17894  	ReturnConsumedCapacity *string `type:"string" enum:"ReturnConsumedCapacity"`
 17895  
 17896  	// Specifies the order for index traversal: If true (default), the traversal
 17897  	// is performed in ascending order; if false, the traversal is performed in
 17898  	// descending order.
 17899  	//
 17900  	// Items with the same partition key value are stored in sorted order by sort
 17901  	// key. If the sort key data type is Number, the results are stored in numeric
 17902  	// order. For type String, the results are stored in order of UTF-8 bytes. For
 17903  	// type Binary, DynamoDB treats each byte of the binary data as unsigned.
 17904  	//
 17905  	// If ScanIndexForward is true, DynamoDB returns the results in the order in
 17906  	// which they are stored (by sort key value). This is the default behavior.
 17907  	// If ScanIndexForward is false, DynamoDB reads the results in reverse order
 17908  	// by sort key value, and then returns the results to the client.
 17909  	ScanIndexForward *bool `type:"boolean"`
 17910  
 17911  	// The attributes to be returned in the result. You can retrieve all item attributes,
 17912  	// specific item attributes, the count of matching items, or in the case of
 17913  	// an index, some or all of the attributes projected into the index.
 17914  	//
 17915  	//    * ALL_ATTRIBUTES - Returns all of the item attributes from the specified
 17916  	//    table or index. If you query a local secondary index, then for each matching
 17917  	//    item in the index, DynamoDB fetches the entire item from the parent table.
 17918  	//    If the index is configured to project all item attributes, then all of
 17919  	//    the data can be obtained from the local secondary index, and no fetching
 17920  	//    is required.
 17921  	//
 17922  	//    * ALL_PROJECTED_ATTRIBUTES - Allowed only when querying an index. Retrieves
 17923  	//    all attributes that have been projected into the index. If the index is
 17924  	//    configured to project all attributes, this return value is equivalent
 17925  	//    to specifying ALL_ATTRIBUTES.
 17926  	//
 17927  	//    * COUNT - Returns the number of matching items, rather than the matching
 17928  	//    items themselves.
 17929  	//
 17930  	//    * SPECIFIC_ATTRIBUTES - Returns only the attributes listed in AttributesToGet.
 17931  	//    This return value is equivalent to specifying AttributesToGet without
 17932  	//    specifying any value for Select. If you query or scan a local secondary
 17933  	//    index and request only attributes that are projected into that index,
 17934  	//    the operation will read only the index and not the table. If any of the
 17935  	//    requested attributes are not projected into the local secondary index,
 17936  	//    DynamoDB fetches each of these attributes from the parent table. This
 17937  	//    extra fetching incurs additional throughput cost and latency. If you query
 17938  	//    or scan a global secondary index, you can only request attributes that
 17939  	//    are projected into the index. Global secondary index queries cannot fetch
 17940  	//    attributes from the parent table.
 17941  	//
 17942  	// If neither Select nor AttributesToGet are specified, DynamoDB defaults to
 17943  	// ALL_ATTRIBUTES when accessing a table, and ALL_PROJECTED_ATTRIBUTES when
 17944  	// accessing an index. You cannot use both Select and AttributesToGet together
 17945  	// in a single request, unless the value for Select is SPECIFIC_ATTRIBUTES.
 17946  	// (This usage is equivalent to specifying AttributesToGet without any value
 17947  	// for Select.)
 17948  	//
 17949  	// If you use the ProjectionExpression parameter, then the value for Select
 17950  	// can only be SPECIFIC_ATTRIBUTES. Any other value for Select will return an
 17951  	// error.
 17952  	Select *string `type:"string" enum:"Select"`
 17953  
 17954  	// The name of the table containing the requested items.
 17955  	//
 17956  	// TableName is a required field
 17957  	TableName *string `min:"3" type:"string" required:"true"`
 17958  }
 17959  
 17960  // String returns the string representation.
 17961  //
 17962  // API parameter values that are decorated as "sensitive" in the API will not
 17963  // be included in the string output. The member name will be present, but the
 17964  // value will be replaced with "sensitive".
 17965  func (s QueryInput) String() string {
 17966  	return awsutil.Prettify(s)
 17967  }
 17968  
 17969  // GoString returns the string representation.
 17970  //
 17971  // API parameter values that are decorated as "sensitive" in the API will not
 17972  // be included in the string output. The member name will be present, but the
 17973  // value will be replaced with "sensitive".
 17974  func (s QueryInput) GoString() string {
 17975  	return s.String()
 17976  }
 17977  
 17978  // Validate inspects the fields of the type to determine if they are valid.
 17979  func (s *QueryInput) Validate() error {
 17980  	invalidParams := request.ErrInvalidParams{Context: "QueryInput"}
 17981  	if s.AttributesToGet != nil && len(s.AttributesToGet) < 1 {
 17982  		invalidParams.Add(request.NewErrParamMinLen("AttributesToGet", 1))
 17983  	}
 17984  	if s.IndexName != nil && len(*s.IndexName) < 3 {
 17985  		invalidParams.Add(request.NewErrParamMinLen("IndexName", 3))
 17986  	}
 17987  	if s.Limit != nil && *s.Limit < 1 {
 17988  		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
 17989  	}
 17990  	if s.TableName == nil {
 17991  		invalidParams.Add(request.NewErrParamRequired("TableName"))
 17992  	}
 17993  	if s.TableName != nil && len(*s.TableName) < 3 {
 17994  		invalidParams.Add(request.NewErrParamMinLen("TableName", 3))
 17995  	}
 17996  	if s.KeyConditions != nil {
 17997  		for i, v := range s.KeyConditions {
 17998  			if v == nil {
 17999  				continue
 18000  			}
 18001  			if err := v.Validate(); err != nil {
 18002  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "KeyConditions", i), err.(request.ErrInvalidParams))
 18003  			}
 18004  		}
 18005  	}
 18006  	if s.QueryFilter != nil {
 18007  		for i, v := range s.QueryFilter {
 18008  			if v == nil {
 18009  				continue
 18010  			}
 18011  			if err := v.Validate(); err != nil {
 18012  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "QueryFilter", i), err.(request.ErrInvalidParams))
 18013  			}
 18014  		}
 18015  	}
 18016  
 18017  	if invalidParams.Len() > 0 {
 18018  		return invalidParams
 18019  	}
 18020  	return nil
 18021  }
 18022  
 18023  // SetAttributesToGet sets the AttributesToGet field's value.
 18024  func (s *QueryInput) SetAttributesToGet(v []*string) *QueryInput {
 18025  	s.AttributesToGet = v
 18026  	return s
 18027  }
 18028  
 18029  // SetConditionalOperator sets the ConditionalOperator field's value.
 18030  func (s *QueryInput) SetConditionalOperator(v string) *QueryInput {
 18031  	s.ConditionalOperator = &v
 18032  	return s
 18033  }
 18034  
 18035  // SetConsistentRead sets the ConsistentRead field's value.
 18036  func (s *QueryInput) SetConsistentRead(v bool) *QueryInput {
 18037  	s.ConsistentRead = &v
 18038  	return s
 18039  }
 18040  
 18041  // SetExclusiveStartKey sets the ExclusiveStartKey field's value.
 18042  func (s *QueryInput) SetExclusiveStartKey(v map[string]*AttributeValue) *QueryInput {
 18043  	s.ExclusiveStartKey = v
 18044  	return s
 18045  }
 18046  
 18047  // SetExpressionAttributeNames sets the ExpressionAttributeNames field's value.
 18048  func (s *QueryInput) SetExpressionAttributeNames(v map[string]*string) *QueryInput {
 18049  	s.ExpressionAttributeNames = v
 18050  	return s
 18051  }
 18052  
 18053  // SetExpressionAttributeValues sets the ExpressionAttributeValues field's value.
 18054  func (s *QueryInput) SetExpressionAttributeValues(v map[string]*AttributeValue) *QueryInput {
 18055  	s.ExpressionAttributeValues = v
 18056  	return s
 18057  }
 18058  
 18059  // SetFilterExpression sets the FilterExpression field's value.
 18060  func (s *QueryInput) SetFilterExpression(v string) *QueryInput {
 18061  	s.FilterExpression = &v
 18062  	return s
 18063  }
 18064  
 18065  // SetIndexName sets the IndexName field's value.
 18066  func (s *QueryInput) SetIndexName(v string) *QueryInput {
 18067  	s.IndexName = &v
 18068  	return s
 18069  }
 18070  
 18071  // SetKeyConditionExpression sets the KeyConditionExpression field's value.
 18072  func (s *QueryInput) SetKeyConditionExpression(v string) *QueryInput {
 18073  	s.KeyConditionExpression = &v
 18074  	return s
 18075  }
 18076  
 18077  // SetKeyConditions sets the KeyConditions field's value.
 18078  func (s *QueryInput) SetKeyConditions(v map[string]*Condition) *QueryInput {
 18079  	s.KeyConditions = v
 18080  	return s
 18081  }
 18082  
 18083  // SetLimit sets the Limit field's value.
 18084  func (s *QueryInput) SetLimit(v int64) *QueryInput {
 18085  	s.Limit = &v
 18086  	return s
 18087  }
 18088  
 18089  // SetProjectionExpression sets the ProjectionExpression field's value.
 18090  func (s *QueryInput) SetProjectionExpression(v string) *QueryInput {
 18091  	s.ProjectionExpression = &v
 18092  	return s
 18093  }
 18094  
 18095  // SetQueryFilter sets the QueryFilter field's value.
 18096  func (s *QueryInput) SetQueryFilter(v map[string]*Condition) *QueryInput {
 18097  	s.QueryFilter = v
 18098  	return s
 18099  }
 18100  
 18101  // SetReturnConsumedCapacity sets the ReturnConsumedCapacity field's value.
 18102  func (s *QueryInput) SetReturnConsumedCapacity(v string) *QueryInput {
 18103  	s.ReturnConsumedCapacity = &v
 18104  	return s
 18105  }
 18106  
 18107  // SetScanIndexForward sets the ScanIndexForward field's value.
 18108  func (s *QueryInput) SetScanIndexForward(v bool) *QueryInput {
 18109  	s.ScanIndexForward = &v
 18110  	return s
 18111  }
 18112  
 18113  // SetSelect sets the Select field's value.
 18114  func (s *QueryInput) SetSelect(v string) *QueryInput {
 18115  	s.Select = &v
 18116  	return s
 18117  }
 18118  
 18119  // SetTableName sets the TableName field's value.
 18120  func (s *QueryInput) SetTableName(v string) *QueryInput {
 18121  	s.TableName = &v
 18122  	return s
 18123  }
 18124  
 18125  // Represents the output of a Query operation.
 18126  type QueryOutput struct {
 18127  	_ struct{} `type:"structure"`
 18128  
 18129  	// The capacity units consumed by the Query operation. The data returned includes
 18130  	// the total provisioned throughput consumed, along with statistics for the
 18131  	// table and any indexes involved in the operation. ConsumedCapacity is only
 18132  	// returned if the ReturnConsumedCapacity parameter was specified. For more
 18133  	// information, see Provisioned Throughput (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html)
 18134  	// in the Amazon DynamoDB Developer Guide.
 18135  	ConsumedCapacity *ConsumedCapacity `type:"structure"`
 18136  
 18137  	// The number of items in the response.
 18138  	//
 18139  	// If you used a QueryFilter in the request, then Count is the number of items
 18140  	// returned after the filter was applied, and ScannedCount is the number of
 18141  	// matching items before the filter was applied.
 18142  	//
 18143  	// If you did not use a filter in the request, then Count and ScannedCount are
 18144  	// the same.
 18145  	Count *int64 `type:"integer"`
 18146  
 18147  	// An array of item attributes that match the query criteria. Each element in
 18148  	// this array consists of an attribute name and the value for that attribute.
 18149  	Items []map[string]*AttributeValue `type:"list"`
 18150  
 18151  	// The primary key of the item where the operation stopped, inclusive of the
 18152  	// previous result set. Use this value to start a new operation, excluding this
 18153  	// value in the new request.
 18154  	//
 18155  	// If LastEvaluatedKey is empty, then the "last page" of results has been processed
 18156  	// and there is no more data to be retrieved.
 18157  	//
 18158  	// If LastEvaluatedKey is not empty, it does not necessarily mean that there
 18159  	// is more data in the result set. The only way to know when you have reached
 18160  	// the end of the result set is when LastEvaluatedKey is empty.
 18161  	LastEvaluatedKey map[string]*AttributeValue `type:"map"`
 18162  
 18163  	// The number of items evaluated, before any QueryFilter is applied. A high
 18164  	// ScannedCount value with few, or no, Count results indicates an inefficient
 18165  	// Query operation. For more information, see Count and ScannedCount (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#Count)
 18166  	// in the Amazon DynamoDB Developer Guide.
 18167  	//
 18168  	// If you did not use a filter in the request, then ScannedCount is the same
 18169  	// as Count.
 18170  	ScannedCount *int64 `type:"integer"`
 18171  }
 18172  
 18173  // String returns the string representation.
 18174  //
 18175  // API parameter values that are decorated as "sensitive" in the API will not
 18176  // be included in the string output. The member name will be present, but the
 18177  // value will be replaced with "sensitive".
 18178  func (s QueryOutput) String() string {
 18179  	return awsutil.Prettify(s)
 18180  }
 18181  
 18182  // GoString returns the string representation.
 18183  //
 18184  // API parameter values that are decorated as "sensitive" in the API will not
 18185  // be included in the string output. The member name will be present, but the
 18186  // value will be replaced with "sensitive".
 18187  func (s QueryOutput) GoString() string {
 18188  	return s.String()
 18189  }
 18190  
 18191  // SetConsumedCapacity sets the ConsumedCapacity field's value.
 18192  func (s *QueryOutput) SetConsumedCapacity(v *ConsumedCapacity) *QueryOutput {
 18193  	s.ConsumedCapacity = v
 18194  	return s
 18195  }
 18196  
 18197  // SetCount sets the Count field's value.
 18198  func (s *QueryOutput) SetCount(v int64) *QueryOutput {
 18199  	s.Count = &v
 18200  	return s
 18201  }
 18202  
 18203  // SetItems sets the Items field's value.
 18204  func (s *QueryOutput) SetItems(v []map[string]*AttributeValue) *QueryOutput {
 18205  	s.Items = v
 18206  	return s
 18207  }
 18208  
 18209  // SetLastEvaluatedKey sets the LastEvaluatedKey field's value.
 18210  func (s *QueryOutput) SetLastEvaluatedKey(v map[string]*AttributeValue) *QueryOutput {
 18211  	s.LastEvaluatedKey = v
 18212  	return s
 18213  }
 18214  
 18215  // SetScannedCount sets the ScannedCount field's value.
 18216  func (s *QueryOutput) SetScannedCount(v int64) *QueryOutput {
 18217  	s.ScannedCount = &v
 18218  	return s
 18219  }
 18220  
 18221  // Represents the properties of a replica.
 18222  type Replica struct {
 18223  	_ struct{} `type:"structure"`
 18224  
 18225  	// The Region where the replica needs to be created.
 18226  	RegionName *string `type:"string"`
 18227  }
 18228  
 18229  // String returns the string representation.
 18230  //
 18231  // API parameter values that are decorated as "sensitive" in the API will not
 18232  // be included in the string output. The member name will be present, but the
 18233  // value will be replaced with "sensitive".
 18234  func (s Replica) String() string {
 18235  	return awsutil.Prettify(s)
 18236  }
 18237  
 18238  // GoString returns the string representation.
 18239  //
 18240  // API parameter values that are decorated as "sensitive" in the API will not
 18241  // be included in the string output. The member name will be present, but the
 18242  // value will be replaced with "sensitive".
 18243  func (s Replica) GoString() string {
 18244  	return s.String()
 18245  }
 18246  
 18247  // SetRegionName sets the RegionName field's value.
 18248  func (s *Replica) SetRegionName(v string) *Replica {
 18249  	s.RegionName = &v
 18250  	return s
 18251  }
 18252  
 18253  // The specified replica is already part of the global table.
 18254  type ReplicaAlreadyExistsException struct {
 18255  	_            struct{}                  `type:"structure"`
 18256  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 18257  
 18258  	Message_ *string `locationName:"message" type:"string"`
 18259  }
 18260  
 18261  // String returns the string representation.
 18262  //
 18263  // API parameter values that are decorated as "sensitive" in the API will not
 18264  // be included in the string output. The member name will be present, but the
 18265  // value will be replaced with "sensitive".
 18266  func (s ReplicaAlreadyExistsException) String() string {
 18267  	return awsutil.Prettify(s)
 18268  }
 18269  
 18270  // GoString returns the string representation.
 18271  //
 18272  // API parameter values that are decorated as "sensitive" in the API will not
 18273  // be included in the string output. The member name will be present, but the
 18274  // value will be replaced with "sensitive".
 18275  func (s ReplicaAlreadyExistsException) GoString() string {
 18276  	return s.String()
 18277  }
 18278  
 18279  func newErrorReplicaAlreadyExistsException(v protocol.ResponseMetadata) error {
 18280  	return &ReplicaAlreadyExistsException{
 18281  		RespMetadata: v,
 18282  	}
 18283  }
 18284  
 18285  // Code returns the exception type name.
 18286  func (s *ReplicaAlreadyExistsException) Code() string {
 18287  	return "ReplicaAlreadyExistsException"
 18288  }
 18289  
 18290  // Message returns the exception's message.
 18291  func (s *ReplicaAlreadyExistsException) Message() string {
 18292  	if s.Message_ != nil {
 18293  		return *s.Message_
 18294  	}
 18295  	return ""
 18296  }
 18297  
 18298  // OrigErr always returns nil, satisfies awserr.Error interface.
 18299  func (s *ReplicaAlreadyExistsException) OrigErr() error {
 18300  	return nil
 18301  }
 18302  
 18303  func (s *ReplicaAlreadyExistsException) Error() string {
 18304  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 18305  }
 18306  
 18307  // Status code returns the HTTP status code for the request's response error.
 18308  func (s *ReplicaAlreadyExistsException) StatusCode() int {
 18309  	return s.RespMetadata.StatusCode
 18310  }
 18311  
 18312  // RequestID returns the service's response RequestID for request.
 18313  func (s *ReplicaAlreadyExistsException) RequestID() string {
 18314  	return s.RespMetadata.RequestID
 18315  }
 18316  
 18317  // Represents the auto scaling settings of the replica.
 18318  type ReplicaAutoScalingDescription struct {
 18319  	_ struct{} `type:"structure"`
 18320  
 18321  	// Replica-specific global secondary index auto scaling settings.
 18322  	GlobalSecondaryIndexes []*ReplicaGlobalSecondaryIndexAutoScalingDescription `type:"list"`
 18323  
 18324  	// The Region where the replica exists.
 18325  	RegionName *string `type:"string"`
 18326  
 18327  	// Represents the auto scaling settings for a global table or global secondary
 18328  	// index.
 18329  	ReplicaProvisionedReadCapacityAutoScalingSettings *AutoScalingSettingsDescription `type:"structure"`
 18330  
 18331  	// Represents the auto scaling settings for a global table or global secondary
 18332  	// index.
 18333  	ReplicaProvisionedWriteCapacityAutoScalingSettings *AutoScalingSettingsDescription `type:"structure"`
 18334  
 18335  	// The current state of the replica:
 18336  	//
 18337  	//    * CREATING - The replica is being created.
 18338  	//
 18339  	//    * UPDATING - The replica is being updated.
 18340  	//
 18341  	//    * DELETING - The replica is being deleted.
 18342  	//
 18343  	//    * ACTIVE - The replica is ready for use.
 18344  	ReplicaStatus *string `type:"string" enum:"ReplicaStatus"`
 18345  }
 18346  
 18347  // String returns the string representation.
 18348  //
 18349  // API parameter values that are decorated as "sensitive" in the API will not
 18350  // be included in the string output. The member name will be present, but the
 18351  // value will be replaced with "sensitive".
 18352  func (s ReplicaAutoScalingDescription) String() string {
 18353  	return awsutil.Prettify(s)
 18354  }
 18355  
 18356  // GoString returns the string representation.
 18357  //
 18358  // API parameter values that are decorated as "sensitive" in the API will not
 18359  // be included in the string output. The member name will be present, but the
 18360  // value will be replaced with "sensitive".
 18361  func (s ReplicaAutoScalingDescription) GoString() string {
 18362  	return s.String()
 18363  }
 18364  
 18365  // SetGlobalSecondaryIndexes sets the GlobalSecondaryIndexes field's value.
 18366  func (s *ReplicaAutoScalingDescription) SetGlobalSecondaryIndexes(v []*ReplicaGlobalSecondaryIndexAutoScalingDescription) *ReplicaAutoScalingDescription {
 18367  	s.GlobalSecondaryIndexes = v
 18368  	return s
 18369  }
 18370  
 18371  // SetRegionName sets the RegionName field's value.
 18372  func (s *ReplicaAutoScalingDescription) SetRegionName(v string) *ReplicaAutoScalingDescription {
 18373  	s.RegionName = &v
 18374  	return s
 18375  }
 18376  
 18377  // SetReplicaProvisionedReadCapacityAutoScalingSettings sets the ReplicaProvisionedReadCapacityAutoScalingSettings field's value.
 18378  func (s *ReplicaAutoScalingDescription) SetReplicaProvisionedReadCapacityAutoScalingSettings(v *AutoScalingSettingsDescription) *ReplicaAutoScalingDescription {
 18379  	s.ReplicaProvisionedReadCapacityAutoScalingSettings = v
 18380  	return s
 18381  }
 18382  
 18383  // SetReplicaProvisionedWriteCapacityAutoScalingSettings sets the ReplicaProvisionedWriteCapacityAutoScalingSettings field's value.
 18384  func (s *ReplicaAutoScalingDescription) SetReplicaProvisionedWriteCapacityAutoScalingSettings(v *AutoScalingSettingsDescription) *ReplicaAutoScalingDescription {
 18385  	s.ReplicaProvisionedWriteCapacityAutoScalingSettings = v
 18386  	return s
 18387  }
 18388  
 18389  // SetReplicaStatus sets the ReplicaStatus field's value.
 18390  func (s *ReplicaAutoScalingDescription) SetReplicaStatus(v string) *ReplicaAutoScalingDescription {
 18391  	s.ReplicaStatus = &v
 18392  	return s
 18393  }
 18394  
 18395  // Represents the auto scaling settings of a replica that will be modified.
 18396  type ReplicaAutoScalingUpdate struct {
 18397  	_ struct{} `type:"structure"`
 18398  
 18399  	// The Region where the replica exists.
 18400  	//
 18401  	// RegionName is a required field
 18402  	RegionName *string `type:"string" required:"true"`
 18403  
 18404  	// Represents the auto scaling settings of global secondary indexes that will
 18405  	// be modified.
 18406  	ReplicaGlobalSecondaryIndexUpdates []*ReplicaGlobalSecondaryIndexAutoScalingUpdate `type:"list"`
 18407  
 18408  	// Represents the auto scaling settings to be modified for a global table or
 18409  	// global secondary index.
 18410  	ReplicaProvisionedReadCapacityAutoScalingUpdate *AutoScalingSettingsUpdate `type:"structure"`
 18411  }
 18412  
 18413  // String returns the string representation.
 18414  //
 18415  // API parameter values that are decorated as "sensitive" in the API will not
 18416  // be included in the string output. The member name will be present, but the
 18417  // value will be replaced with "sensitive".
 18418  func (s ReplicaAutoScalingUpdate) String() string {
 18419  	return awsutil.Prettify(s)
 18420  }
 18421  
 18422  // GoString returns the string representation.
 18423  //
 18424  // API parameter values that are decorated as "sensitive" in the API will not
 18425  // be included in the string output. The member name will be present, but the
 18426  // value will be replaced with "sensitive".
 18427  func (s ReplicaAutoScalingUpdate) GoString() string {
 18428  	return s.String()
 18429  }
 18430  
 18431  // Validate inspects the fields of the type to determine if they are valid.
 18432  func (s *ReplicaAutoScalingUpdate) Validate() error {
 18433  	invalidParams := request.ErrInvalidParams{Context: "ReplicaAutoScalingUpdate"}
 18434  	if s.RegionName == nil {
 18435  		invalidParams.Add(request.NewErrParamRequired("RegionName"))
 18436  	}
 18437  	if s.ReplicaGlobalSecondaryIndexUpdates != nil {
 18438  		for i, v := range s.ReplicaGlobalSecondaryIndexUpdates {
 18439  			if v == nil {
 18440  				continue
 18441  			}
 18442  			if err := v.Validate(); err != nil {
 18443  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ReplicaGlobalSecondaryIndexUpdates", i), err.(request.ErrInvalidParams))
 18444  			}
 18445  		}
 18446  	}
 18447  	if s.ReplicaProvisionedReadCapacityAutoScalingUpdate != nil {
 18448  		if err := s.ReplicaProvisionedReadCapacityAutoScalingUpdate.Validate(); err != nil {
 18449  			invalidParams.AddNested("ReplicaProvisionedReadCapacityAutoScalingUpdate", err.(request.ErrInvalidParams))
 18450  		}
 18451  	}
 18452  
 18453  	if invalidParams.Len() > 0 {
 18454  		return invalidParams
 18455  	}
 18456  	return nil
 18457  }
 18458  
 18459  // SetRegionName sets the RegionName field's value.
 18460  func (s *ReplicaAutoScalingUpdate) SetRegionName(v string) *ReplicaAutoScalingUpdate {
 18461  	s.RegionName = &v
 18462  	return s
 18463  }
 18464  
 18465  // SetReplicaGlobalSecondaryIndexUpdates sets the ReplicaGlobalSecondaryIndexUpdates field's value.
 18466  func (s *ReplicaAutoScalingUpdate) SetReplicaGlobalSecondaryIndexUpdates(v []*ReplicaGlobalSecondaryIndexAutoScalingUpdate) *ReplicaAutoScalingUpdate {
 18467  	s.ReplicaGlobalSecondaryIndexUpdates = v
 18468  	return s
 18469  }
 18470  
 18471  // SetReplicaProvisionedReadCapacityAutoScalingUpdate sets the ReplicaProvisionedReadCapacityAutoScalingUpdate field's value.
 18472  func (s *ReplicaAutoScalingUpdate) SetReplicaProvisionedReadCapacityAutoScalingUpdate(v *AutoScalingSettingsUpdate) *ReplicaAutoScalingUpdate {
 18473  	s.ReplicaProvisionedReadCapacityAutoScalingUpdate = v
 18474  	return s
 18475  }
 18476  
 18477  // Contains the details of the replica.
 18478  type ReplicaDescription struct {
 18479  	_ struct{} `type:"structure"`
 18480  
 18481  	// Replica-specific global secondary index settings.
 18482  	GlobalSecondaryIndexes []*ReplicaGlobalSecondaryIndexDescription `type:"list"`
 18483  
 18484  	// The AWS KMS customer master key (CMK) of the replica that will be used for
 18485  	// AWS KMS encryption.
 18486  	KMSMasterKeyId *string `type:"string"`
 18487  
 18488  	// Replica-specific provisioned throughput. If not described, uses the source
 18489  	// table's provisioned throughput settings.
 18490  	ProvisionedThroughputOverride *ProvisionedThroughputOverride `type:"structure"`
 18491  
 18492  	// The name of the Region.
 18493  	RegionName *string `type:"string"`
 18494  
 18495  	// The time at which the replica was first detected as inaccessible. To determine
 18496  	// cause of inaccessibility check the ReplicaStatus property.
 18497  	ReplicaInaccessibleDateTime *time.Time `type:"timestamp"`
 18498  
 18499  	// The current state of the replica:
 18500  	//
 18501  	//    * CREATING - The replica is being created.
 18502  	//
 18503  	//    * UPDATING - The replica is being updated.
 18504  	//
 18505  	//    * DELETING - The replica is being deleted.
 18506  	//
 18507  	//    * ACTIVE - The replica is ready for use.
 18508  	//
 18509  	//    * REGION_DISABLED - The replica is inaccessible because the AWS Region
 18510  	//    has been disabled. If the AWS Region remains inaccessible for more than
 18511  	//    20 hours, DynamoDB will remove this replica from the replication group.
 18512  	//    The replica will not be deleted and replication will stop from and to
 18513  	//    this region.
 18514  	//
 18515  	//    * INACCESSIBLE_ENCRYPTION_CREDENTIALS - The AWS KMS key used to encrypt
 18516  	//    the table is inaccessible. If the AWS KMS key remains inaccessible for
 18517  	//    more than 20 hours, DynamoDB will remove this replica from the replication
 18518  	//    group. The replica will not be deleted and replication will stop from
 18519  	//    and to this region.
 18520  	ReplicaStatus *string `type:"string" enum:"ReplicaStatus"`
 18521  
 18522  	// Detailed information about the replica status.
 18523  	ReplicaStatusDescription *string `type:"string"`
 18524  
 18525  	// Specifies the progress of a Create, Update, or Delete action on the replica
 18526  	// as a percentage.
 18527  	ReplicaStatusPercentProgress *string `type:"string"`
 18528  }
 18529  
 18530  // String returns the string representation.
 18531  //
 18532  // API parameter values that are decorated as "sensitive" in the API will not
 18533  // be included in the string output. The member name will be present, but the
 18534  // value will be replaced with "sensitive".
 18535  func (s ReplicaDescription) String() string {
 18536  	return awsutil.Prettify(s)
 18537  }
 18538  
 18539  // GoString returns the string representation.
 18540  //
 18541  // API parameter values that are decorated as "sensitive" in the API will not
 18542  // be included in the string output. The member name will be present, but the
 18543  // value will be replaced with "sensitive".
 18544  func (s ReplicaDescription) GoString() string {
 18545  	return s.String()
 18546  }
 18547  
 18548  // SetGlobalSecondaryIndexes sets the GlobalSecondaryIndexes field's value.
 18549  func (s *ReplicaDescription) SetGlobalSecondaryIndexes(v []*ReplicaGlobalSecondaryIndexDescription) *ReplicaDescription {
 18550  	s.GlobalSecondaryIndexes = v
 18551  	return s
 18552  }
 18553  
 18554  // SetKMSMasterKeyId sets the KMSMasterKeyId field's value.
 18555  func (s *ReplicaDescription) SetKMSMasterKeyId(v string) *ReplicaDescription {
 18556  	s.KMSMasterKeyId = &v
 18557  	return s
 18558  }
 18559  
 18560  // SetProvisionedThroughputOverride sets the ProvisionedThroughputOverride field's value.
 18561  func (s *ReplicaDescription) SetProvisionedThroughputOverride(v *ProvisionedThroughputOverride) *ReplicaDescription {
 18562  	s.ProvisionedThroughputOverride = v
 18563  	return s
 18564  }
 18565  
 18566  // SetRegionName sets the RegionName field's value.
 18567  func (s *ReplicaDescription) SetRegionName(v string) *ReplicaDescription {
 18568  	s.RegionName = &v
 18569  	return s
 18570  }
 18571  
 18572  // SetReplicaInaccessibleDateTime sets the ReplicaInaccessibleDateTime field's value.
 18573  func (s *ReplicaDescription) SetReplicaInaccessibleDateTime(v time.Time) *ReplicaDescription {
 18574  	s.ReplicaInaccessibleDateTime = &v
 18575  	return s
 18576  }
 18577  
 18578  // SetReplicaStatus sets the ReplicaStatus field's value.
 18579  func (s *ReplicaDescription) SetReplicaStatus(v string) *ReplicaDescription {
 18580  	s.ReplicaStatus = &v
 18581  	return s
 18582  }
 18583  
 18584  // SetReplicaStatusDescription sets the ReplicaStatusDescription field's value.
 18585  func (s *ReplicaDescription) SetReplicaStatusDescription(v string) *ReplicaDescription {
 18586  	s.ReplicaStatusDescription = &v
 18587  	return s
 18588  }
 18589  
 18590  // SetReplicaStatusPercentProgress sets the ReplicaStatusPercentProgress field's value.
 18591  func (s *ReplicaDescription) SetReplicaStatusPercentProgress(v string) *ReplicaDescription {
 18592  	s.ReplicaStatusPercentProgress = &v
 18593  	return s
 18594  }
 18595  
 18596  // Represents the properties of a replica global secondary index.
 18597  type ReplicaGlobalSecondaryIndex struct {
 18598  	_ struct{} `type:"structure"`
 18599  
 18600  	// The name of the global secondary index.
 18601  	//
 18602  	// IndexName is a required field
 18603  	IndexName *string `min:"3" type:"string" required:"true"`
 18604  
 18605  	// Replica table GSI-specific provisioned throughput. If not specified, uses
 18606  	// the source table GSI's read capacity settings.
 18607  	ProvisionedThroughputOverride *ProvisionedThroughputOverride `type:"structure"`
 18608  }
 18609  
 18610  // String returns the string representation.
 18611  //
 18612  // API parameter values that are decorated as "sensitive" in the API will not
 18613  // be included in the string output. The member name will be present, but the
 18614  // value will be replaced with "sensitive".
 18615  func (s ReplicaGlobalSecondaryIndex) String() string {
 18616  	return awsutil.Prettify(s)
 18617  }
 18618  
 18619  // GoString returns the string representation.
 18620  //
 18621  // API parameter values that are decorated as "sensitive" in the API will not
 18622  // be included in the string output. The member name will be present, but the
 18623  // value will be replaced with "sensitive".
 18624  func (s ReplicaGlobalSecondaryIndex) GoString() string {
 18625  	return s.String()
 18626  }
 18627  
 18628  // Validate inspects the fields of the type to determine if they are valid.
 18629  func (s *ReplicaGlobalSecondaryIndex) Validate() error {
 18630  	invalidParams := request.ErrInvalidParams{Context: "ReplicaGlobalSecondaryIndex"}
 18631  	if s.IndexName == nil {
 18632  		invalidParams.Add(request.NewErrParamRequired("IndexName"))
 18633  	}
 18634  	if s.IndexName != nil && len(*s.IndexName) < 3 {
 18635  		invalidParams.Add(request.NewErrParamMinLen("IndexName", 3))
 18636  	}
 18637  	if s.ProvisionedThroughputOverride != nil {
 18638  		if err := s.ProvisionedThroughputOverride.Validate(); err != nil {
 18639  			invalidParams.AddNested("ProvisionedThroughputOverride", err.(request.ErrInvalidParams))
 18640  		}
 18641  	}
 18642  
 18643  	if invalidParams.Len() > 0 {
 18644  		return invalidParams
 18645  	}
 18646  	return nil
 18647  }
 18648  
 18649  // SetIndexName sets the IndexName field's value.
 18650  func (s *ReplicaGlobalSecondaryIndex) SetIndexName(v string) *ReplicaGlobalSecondaryIndex {
 18651  	s.IndexName = &v
 18652  	return s
 18653  }
 18654  
 18655  // SetProvisionedThroughputOverride sets the ProvisionedThroughputOverride field's value.
 18656  func (s *ReplicaGlobalSecondaryIndex) SetProvisionedThroughputOverride(v *ProvisionedThroughputOverride) *ReplicaGlobalSecondaryIndex {
 18657  	s.ProvisionedThroughputOverride = v
 18658  	return s
 18659  }
 18660  
 18661  // Represents the auto scaling configuration for a replica global secondary
 18662  // index.
 18663  type ReplicaGlobalSecondaryIndexAutoScalingDescription struct {
 18664  	_ struct{} `type:"structure"`
 18665  
 18666  	// The name of the global secondary index.
 18667  	IndexName *string `min:"3" type:"string"`
 18668  
 18669  	// The current state of the replica global secondary index:
 18670  	//
 18671  	//    * CREATING - The index is being created.
 18672  	//
 18673  	//    * UPDATING - The index is being updated.
 18674  	//
 18675  	//    * DELETING - The index is being deleted.
 18676  	//
 18677  	//    * ACTIVE - The index is ready for use.
 18678  	IndexStatus *string `type:"string" enum:"IndexStatus"`
 18679  
 18680  	// Represents the auto scaling settings for a global table or global secondary
 18681  	// index.
 18682  	ProvisionedReadCapacityAutoScalingSettings *AutoScalingSettingsDescription `type:"structure"`
 18683  
 18684  	// Represents the auto scaling settings for a global table or global secondary
 18685  	// index.
 18686  	ProvisionedWriteCapacityAutoScalingSettings *AutoScalingSettingsDescription `type:"structure"`
 18687  }
 18688  
 18689  // String returns the string representation.
 18690  //
 18691  // API parameter values that are decorated as "sensitive" in the API will not
 18692  // be included in the string output. The member name will be present, but the
 18693  // value will be replaced with "sensitive".
 18694  func (s ReplicaGlobalSecondaryIndexAutoScalingDescription) String() string {
 18695  	return awsutil.Prettify(s)
 18696  }
 18697  
 18698  // GoString returns the string representation.
 18699  //
 18700  // API parameter values that are decorated as "sensitive" in the API will not
 18701  // be included in the string output. The member name will be present, but the
 18702  // value will be replaced with "sensitive".
 18703  func (s ReplicaGlobalSecondaryIndexAutoScalingDescription) GoString() string {
 18704  	return s.String()
 18705  }
 18706  
 18707  // SetIndexName sets the IndexName field's value.
 18708  func (s *ReplicaGlobalSecondaryIndexAutoScalingDescription) SetIndexName(v string) *ReplicaGlobalSecondaryIndexAutoScalingDescription {
 18709  	s.IndexName = &v
 18710  	return s
 18711  }
 18712  
 18713  // SetIndexStatus sets the IndexStatus field's value.
 18714  func (s *ReplicaGlobalSecondaryIndexAutoScalingDescription) SetIndexStatus(v string) *ReplicaGlobalSecondaryIndexAutoScalingDescription {
 18715  	s.IndexStatus = &v
 18716  	return s
 18717  }
 18718  
 18719  // SetProvisionedReadCapacityAutoScalingSettings sets the ProvisionedReadCapacityAutoScalingSettings field's value.
 18720  func (s *ReplicaGlobalSecondaryIndexAutoScalingDescription) SetProvisionedReadCapacityAutoScalingSettings(v *AutoScalingSettingsDescription) *ReplicaGlobalSecondaryIndexAutoScalingDescription {
 18721  	s.ProvisionedReadCapacityAutoScalingSettings = v
 18722  	return s
 18723  }
 18724  
 18725  // SetProvisionedWriteCapacityAutoScalingSettings sets the ProvisionedWriteCapacityAutoScalingSettings field's value.
 18726  func (s *ReplicaGlobalSecondaryIndexAutoScalingDescription) SetProvisionedWriteCapacityAutoScalingSettings(v *AutoScalingSettingsDescription) *ReplicaGlobalSecondaryIndexAutoScalingDescription {
 18727  	s.ProvisionedWriteCapacityAutoScalingSettings = v
 18728  	return s
 18729  }
 18730  
 18731  // Represents the auto scaling settings of a global secondary index for a replica
 18732  // that will be modified.
 18733  type ReplicaGlobalSecondaryIndexAutoScalingUpdate struct {
 18734  	_ struct{} `type:"structure"`
 18735  
 18736  	// The name of the global secondary index.
 18737  	IndexName *string `min:"3" type:"string"`
 18738  
 18739  	// Represents the auto scaling settings to be modified for a global table or
 18740  	// global secondary index.
 18741  	ProvisionedReadCapacityAutoScalingUpdate *AutoScalingSettingsUpdate `type:"structure"`
 18742  }
 18743  
 18744  // String returns the string representation.
 18745  //
 18746  // API parameter values that are decorated as "sensitive" in the API will not
 18747  // be included in the string output. The member name will be present, but the
 18748  // value will be replaced with "sensitive".
 18749  func (s ReplicaGlobalSecondaryIndexAutoScalingUpdate) String() string {
 18750  	return awsutil.Prettify(s)
 18751  }
 18752  
 18753  // GoString returns the string representation.
 18754  //
 18755  // API parameter values that are decorated as "sensitive" in the API will not
 18756  // be included in the string output. The member name will be present, but the
 18757  // value will be replaced with "sensitive".
 18758  func (s ReplicaGlobalSecondaryIndexAutoScalingUpdate) GoString() string {
 18759  	return s.String()
 18760  }
 18761  
 18762  // Validate inspects the fields of the type to determine if they are valid.
 18763  func (s *ReplicaGlobalSecondaryIndexAutoScalingUpdate) Validate() error {
 18764  	invalidParams := request.ErrInvalidParams{Context: "ReplicaGlobalSecondaryIndexAutoScalingUpdate"}
 18765  	if s.IndexName != nil && len(*s.IndexName) < 3 {
 18766  		invalidParams.Add(request.NewErrParamMinLen("IndexName", 3))
 18767  	}
 18768  	if s.ProvisionedReadCapacityAutoScalingUpdate != nil {
 18769  		if err := s.ProvisionedReadCapacityAutoScalingUpdate.Validate(); err != nil {
 18770  			invalidParams.AddNested("ProvisionedReadCapacityAutoScalingUpdate", err.(request.ErrInvalidParams))
 18771  		}
 18772  	}
 18773  
 18774  	if invalidParams.Len() > 0 {
 18775  		return invalidParams
 18776  	}
 18777  	return nil
 18778  }
 18779  
 18780  // SetIndexName sets the IndexName field's value.
 18781  func (s *ReplicaGlobalSecondaryIndexAutoScalingUpdate) SetIndexName(v string) *ReplicaGlobalSecondaryIndexAutoScalingUpdate {
 18782  	s.IndexName = &v
 18783  	return s
 18784  }
 18785  
 18786  // SetProvisionedReadCapacityAutoScalingUpdate sets the ProvisionedReadCapacityAutoScalingUpdate field's value.
 18787  func (s *ReplicaGlobalSecondaryIndexAutoScalingUpdate) SetProvisionedReadCapacityAutoScalingUpdate(v *AutoScalingSettingsUpdate) *ReplicaGlobalSecondaryIndexAutoScalingUpdate {
 18788  	s.ProvisionedReadCapacityAutoScalingUpdate = v
 18789  	return s
 18790  }
 18791  
 18792  // Represents the properties of a replica global secondary index.
 18793  type ReplicaGlobalSecondaryIndexDescription struct {
 18794  	_ struct{} `type:"structure"`
 18795  
 18796  	// The name of the global secondary index.
 18797  	IndexName *string `min:"3" type:"string"`
 18798  
 18799  	// If not described, uses the source table GSI's read capacity settings.
 18800  	ProvisionedThroughputOverride *ProvisionedThroughputOverride `type:"structure"`
 18801  }
 18802  
 18803  // String returns the string representation.
 18804  //
 18805  // API parameter values that are decorated as "sensitive" in the API will not
 18806  // be included in the string output. The member name will be present, but the
 18807  // value will be replaced with "sensitive".
 18808  func (s ReplicaGlobalSecondaryIndexDescription) String() string {
 18809  	return awsutil.Prettify(s)
 18810  }
 18811  
 18812  // GoString returns the string representation.
 18813  //
 18814  // API parameter values that are decorated as "sensitive" in the API will not
 18815  // be included in the string output. The member name will be present, but the
 18816  // value will be replaced with "sensitive".
 18817  func (s ReplicaGlobalSecondaryIndexDescription) GoString() string {
 18818  	return s.String()
 18819  }
 18820  
 18821  // SetIndexName sets the IndexName field's value.
 18822  func (s *ReplicaGlobalSecondaryIndexDescription) SetIndexName(v string) *ReplicaGlobalSecondaryIndexDescription {
 18823  	s.IndexName = &v
 18824  	return s
 18825  }
 18826  
 18827  // SetProvisionedThroughputOverride sets the ProvisionedThroughputOverride field's value.
 18828  func (s *ReplicaGlobalSecondaryIndexDescription) SetProvisionedThroughputOverride(v *ProvisionedThroughputOverride) *ReplicaGlobalSecondaryIndexDescription {
 18829  	s.ProvisionedThroughputOverride = v
 18830  	return s
 18831  }
 18832  
 18833  // Represents the properties of a global secondary index.
 18834  type ReplicaGlobalSecondaryIndexSettingsDescription struct {
 18835  	_ struct{} `type:"structure"`
 18836  
 18837  	// The name of the global secondary index. The name must be unique among all
 18838  	// other indexes on this table.
 18839  	//
 18840  	// IndexName is a required field
 18841  	IndexName *string `min:"3" type:"string" required:"true"`
 18842  
 18843  	// The current status of the global secondary index:
 18844  	//
 18845  	//    * CREATING - The global secondary index is being created.
 18846  	//
 18847  	//    * UPDATING - The global secondary index is being updated.
 18848  	//
 18849  	//    * DELETING - The global secondary index is being deleted.
 18850  	//
 18851  	//    * ACTIVE - The global secondary index is ready for use.
 18852  	IndexStatus *string `type:"string" enum:"IndexStatus"`
 18853  
 18854  	// Auto scaling settings for a global secondary index replica's read capacity
 18855  	// units.
 18856  	ProvisionedReadCapacityAutoScalingSettings *AutoScalingSettingsDescription `type:"structure"`
 18857  
 18858  	// The maximum number of strongly consistent reads consumed per second before
 18859  	// DynamoDB returns a ThrottlingException.
 18860  	ProvisionedReadCapacityUnits *int64 `min:"1" type:"long"`
 18861  
 18862  	// Auto scaling settings for a global secondary index replica's write capacity
 18863  	// units.
 18864  	ProvisionedWriteCapacityAutoScalingSettings *AutoScalingSettingsDescription `type:"structure"`
 18865  
 18866  	// The maximum number of writes consumed per second before DynamoDB returns
 18867  	// a ThrottlingException.
 18868  	ProvisionedWriteCapacityUnits *int64 `min:"1" type:"long"`
 18869  }
 18870  
 18871  // String returns the string representation.
 18872  //
 18873  // API parameter values that are decorated as "sensitive" in the API will not
 18874  // be included in the string output. The member name will be present, but the
 18875  // value will be replaced with "sensitive".
 18876  func (s ReplicaGlobalSecondaryIndexSettingsDescription) String() string {
 18877  	return awsutil.Prettify(s)
 18878  }
 18879  
 18880  // GoString returns the string representation.
 18881  //
 18882  // API parameter values that are decorated as "sensitive" in the API will not
 18883  // be included in the string output. The member name will be present, but the
 18884  // value will be replaced with "sensitive".
 18885  func (s ReplicaGlobalSecondaryIndexSettingsDescription) GoString() string {
 18886  	return s.String()
 18887  }
 18888  
 18889  // SetIndexName sets the IndexName field's value.
 18890  func (s *ReplicaGlobalSecondaryIndexSettingsDescription) SetIndexName(v string) *ReplicaGlobalSecondaryIndexSettingsDescription {
 18891  	s.IndexName = &v
 18892  	return s
 18893  }
 18894  
 18895  // SetIndexStatus sets the IndexStatus field's value.
 18896  func (s *ReplicaGlobalSecondaryIndexSettingsDescription) SetIndexStatus(v string) *ReplicaGlobalSecondaryIndexSettingsDescription {
 18897  	s.IndexStatus = &v
 18898  	return s
 18899  }
 18900  
 18901  // SetProvisionedReadCapacityAutoScalingSettings sets the ProvisionedReadCapacityAutoScalingSettings field's value.
 18902  func (s *ReplicaGlobalSecondaryIndexSettingsDescription) SetProvisionedReadCapacityAutoScalingSettings(v *AutoScalingSettingsDescription) *ReplicaGlobalSecondaryIndexSettingsDescription {
 18903  	s.ProvisionedReadCapacityAutoScalingSettings = v
 18904  	return s
 18905  }
 18906  
 18907  // SetProvisionedReadCapacityUnits sets the ProvisionedReadCapacityUnits field's value.
 18908  func (s *ReplicaGlobalSecondaryIndexSettingsDescription) SetProvisionedReadCapacityUnits(v int64) *ReplicaGlobalSecondaryIndexSettingsDescription {
 18909  	s.ProvisionedReadCapacityUnits = &v
 18910  	return s
 18911  }
 18912  
 18913  // SetProvisionedWriteCapacityAutoScalingSettings sets the ProvisionedWriteCapacityAutoScalingSettings field's value.
 18914  func (s *ReplicaGlobalSecondaryIndexSettingsDescription) SetProvisionedWriteCapacityAutoScalingSettings(v *AutoScalingSettingsDescription) *ReplicaGlobalSecondaryIndexSettingsDescription {
 18915  	s.ProvisionedWriteCapacityAutoScalingSettings = v
 18916  	return s
 18917  }
 18918  
 18919  // SetProvisionedWriteCapacityUnits sets the ProvisionedWriteCapacityUnits field's value.
 18920  func (s *ReplicaGlobalSecondaryIndexSettingsDescription) SetProvisionedWriteCapacityUnits(v int64) *ReplicaGlobalSecondaryIndexSettingsDescription {
 18921  	s.ProvisionedWriteCapacityUnits = &v
 18922  	return s
 18923  }
 18924  
 18925  // Represents the settings of a global secondary index for a global table that
 18926  // will be modified.
 18927  type ReplicaGlobalSecondaryIndexSettingsUpdate struct {
 18928  	_ struct{} `type:"structure"`
 18929  
 18930  	// The name of the global secondary index. The name must be unique among all
 18931  	// other indexes on this table.
 18932  	//
 18933  	// IndexName is a required field
 18934  	IndexName *string `min:"3" type:"string" required:"true"`
 18935  
 18936  	// Auto scaling settings for managing a global secondary index replica's read
 18937  	// capacity units.
 18938  	ProvisionedReadCapacityAutoScalingSettingsUpdate *AutoScalingSettingsUpdate `type:"structure"`
 18939  
 18940  	// The maximum number of strongly consistent reads consumed per second before
 18941  	// DynamoDB returns a ThrottlingException.
 18942  	ProvisionedReadCapacityUnits *int64 `min:"1" type:"long"`
 18943  }
 18944  
 18945  // String returns the string representation.
 18946  //
 18947  // API parameter values that are decorated as "sensitive" in the API will not
 18948  // be included in the string output. The member name will be present, but the
 18949  // value will be replaced with "sensitive".
 18950  func (s ReplicaGlobalSecondaryIndexSettingsUpdate) String() string {
 18951  	return awsutil.Prettify(s)
 18952  }
 18953  
 18954  // GoString returns the string representation.
 18955  //
 18956  // API parameter values that are decorated as "sensitive" in the API will not
 18957  // be included in the string output. The member name will be present, but the
 18958  // value will be replaced with "sensitive".
 18959  func (s ReplicaGlobalSecondaryIndexSettingsUpdate) GoString() string {
 18960  	return s.String()
 18961  }
 18962  
 18963  // Validate inspects the fields of the type to determine if they are valid.
 18964  func (s *ReplicaGlobalSecondaryIndexSettingsUpdate) Validate() error {
 18965  	invalidParams := request.ErrInvalidParams{Context: "ReplicaGlobalSecondaryIndexSettingsUpdate"}
 18966  	if s.IndexName == nil {
 18967  		invalidParams.Add(request.NewErrParamRequired("IndexName"))
 18968  	}
 18969  	if s.IndexName != nil && len(*s.IndexName) < 3 {
 18970  		invalidParams.Add(request.NewErrParamMinLen("IndexName", 3))
 18971  	}
 18972  	if s.ProvisionedReadCapacityUnits != nil && *s.ProvisionedReadCapacityUnits < 1 {
 18973  		invalidParams.Add(request.NewErrParamMinValue("ProvisionedReadCapacityUnits", 1))
 18974  	}
 18975  	if s.ProvisionedReadCapacityAutoScalingSettingsUpdate != nil {
 18976  		if err := s.ProvisionedReadCapacityAutoScalingSettingsUpdate.Validate(); err != nil {
 18977  			invalidParams.AddNested("ProvisionedReadCapacityAutoScalingSettingsUpdate", err.(request.ErrInvalidParams))
 18978  		}
 18979  	}
 18980  
 18981  	if invalidParams.Len() > 0 {
 18982  		return invalidParams
 18983  	}
 18984  	return nil
 18985  }
 18986  
 18987  // SetIndexName sets the IndexName field's value.
 18988  func (s *ReplicaGlobalSecondaryIndexSettingsUpdate) SetIndexName(v string) *ReplicaGlobalSecondaryIndexSettingsUpdate {
 18989  	s.IndexName = &v
 18990  	return s
 18991  }
 18992  
 18993  // SetProvisionedReadCapacityAutoScalingSettingsUpdate sets the ProvisionedReadCapacityAutoScalingSettingsUpdate field's value.
 18994  func (s *ReplicaGlobalSecondaryIndexSettingsUpdate) SetProvisionedReadCapacityAutoScalingSettingsUpdate(v *AutoScalingSettingsUpdate) *ReplicaGlobalSecondaryIndexSettingsUpdate {
 18995  	s.ProvisionedReadCapacityAutoScalingSettingsUpdate = v
 18996  	return s
 18997  }
 18998  
 18999  // SetProvisionedReadCapacityUnits sets the ProvisionedReadCapacityUnits field's value.
 19000  func (s *ReplicaGlobalSecondaryIndexSettingsUpdate) SetProvisionedReadCapacityUnits(v int64) *ReplicaGlobalSecondaryIndexSettingsUpdate {
 19001  	s.ProvisionedReadCapacityUnits = &v
 19002  	return s
 19003  }
 19004  
 19005  // The specified replica is no longer part of the global table.
 19006  type ReplicaNotFoundException struct {
 19007  	_            struct{}                  `type:"structure"`
 19008  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 19009  
 19010  	Message_ *string `locationName:"message" type:"string"`
 19011  }
 19012  
 19013  // String returns the string representation.
 19014  //
 19015  // API parameter values that are decorated as "sensitive" in the API will not
 19016  // be included in the string output. The member name will be present, but the
 19017  // value will be replaced with "sensitive".
 19018  func (s ReplicaNotFoundException) String() string {
 19019  	return awsutil.Prettify(s)
 19020  }
 19021  
 19022  // GoString returns the string representation.
 19023  //
 19024  // API parameter values that are decorated as "sensitive" in the API will not
 19025  // be included in the string output. The member name will be present, but the
 19026  // value will be replaced with "sensitive".
 19027  func (s ReplicaNotFoundException) GoString() string {
 19028  	return s.String()
 19029  }
 19030  
 19031  func newErrorReplicaNotFoundException(v protocol.ResponseMetadata) error {
 19032  	return &ReplicaNotFoundException{
 19033  		RespMetadata: v,
 19034  	}
 19035  }
 19036  
 19037  // Code returns the exception type name.
 19038  func (s *ReplicaNotFoundException) Code() string {
 19039  	return "ReplicaNotFoundException"
 19040  }
 19041  
 19042  // Message returns the exception's message.
 19043  func (s *ReplicaNotFoundException) Message() string {
 19044  	if s.Message_ != nil {
 19045  		return *s.Message_
 19046  	}
 19047  	return ""
 19048  }
 19049  
 19050  // OrigErr always returns nil, satisfies awserr.Error interface.
 19051  func (s *ReplicaNotFoundException) OrigErr() error {
 19052  	return nil
 19053  }
 19054  
 19055  func (s *ReplicaNotFoundException) Error() string {
 19056  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 19057  }
 19058  
 19059  // Status code returns the HTTP status code for the request's response error.
 19060  func (s *ReplicaNotFoundException) StatusCode() int {
 19061  	return s.RespMetadata.StatusCode
 19062  }
 19063  
 19064  // RequestID returns the service's response RequestID for request.
 19065  func (s *ReplicaNotFoundException) RequestID() string {
 19066  	return s.RespMetadata.RequestID
 19067  }
 19068  
 19069  // Represents the properties of a replica.
 19070  type ReplicaSettingsDescription struct {
 19071  	_ struct{} `type:"structure"`
 19072  
 19073  	// The Region name of the replica.
 19074  	//
 19075  	// RegionName is a required field
 19076  	RegionName *string `type:"string" required:"true"`
 19077  
 19078  	// The read/write capacity mode of the replica.
 19079  	ReplicaBillingModeSummary *BillingModeSummary `type:"structure"`
 19080  
 19081  	// Replica global secondary index settings for the global table.
 19082  	ReplicaGlobalSecondaryIndexSettings []*ReplicaGlobalSecondaryIndexSettingsDescription `type:"list"`
 19083  
 19084  	// Auto scaling settings for a global table replica's read capacity units.
 19085  	ReplicaProvisionedReadCapacityAutoScalingSettings *AutoScalingSettingsDescription `type:"structure"`
 19086  
 19087  	// The maximum number of strongly consistent reads consumed per second before
 19088  	// DynamoDB returns a ThrottlingException. For more information, see Specifying
 19089  	// Read and Write Requirements (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput)
 19090  	// in the Amazon DynamoDB Developer Guide.
 19091  	ReplicaProvisionedReadCapacityUnits *int64 `type:"long"`
 19092  
 19093  	// Auto scaling settings for a global table replica's write capacity units.
 19094  	ReplicaProvisionedWriteCapacityAutoScalingSettings *AutoScalingSettingsDescription `type:"structure"`
 19095  
 19096  	// The maximum number of writes consumed per second before DynamoDB returns
 19097  	// a ThrottlingException. For more information, see Specifying Read and Write
 19098  	// Requirements (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput)
 19099  	// in the Amazon DynamoDB Developer Guide.
 19100  	ReplicaProvisionedWriteCapacityUnits *int64 `type:"long"`
 19101  
 19102  	// The current state of the Region:
 19103  	//
 19104  	//    * CREATING - The Region is being created.
 19105  	//
 19106  	//    * UPDATING - The Region is being updated.
 19107  	//
 19108  	//    * DELETING - The Region is being deleted.
 19109  	//
 19110  	//    * ACTIVE - The Region is ready for use.
 19111  	ReplicaStatus *string `type:"string" enum:"ReplicaStatus"`
 19112  }
 19113  
 19114  // String returns the string representation.
 19115  //
 19116  // API parameter values that are decorated as "sensitive" in the API will not
 19117  // be included in the string output. The member name will be present, but the
 19118  // value will be replaced with "sensitive".
 19119  func (s ReplicaSettingsDescription) String() string {
 19120  	return awsutil.Prettify(s)
 19121  }
 19122  
 19123  // GoString returns the string representation.
 19124  //
 19125  // API parameter values that are decorated as "sensitive" in the API will not
 19126  // be included in the string output. The member name will be present, but the
 19127  // value will be replaced with "sensitive".
 19128  func (s ReplicaSettingsDescription) GoString() string {
 19129  	return s.String()
 19130  }
 19131  
 19132  // SetRegionName sets the RegionName field's value.
 19133  func (s *ReplicaSettingsDescription) SetRegionName(v string) *ReplicaSettingsDescription {
 19134  	s.RegionName = &v
 19135  	return s
 19136  }
 19137  
 19138  // SetReplicaBillingModeSummary sets the ReplicaBillingModeSummary field's value.
 19139  func (s *ReplicaSettingsDescription) SetReplicaBillingModeSummary(v *BillingModeSummary) *ReplicaSettingsDescription {
 19140  	s.ReplicaBillingModeSummary = v
 19141  	return s
 19142  }
 19143  
 19144  // SetReplicaGlobalSecondaryIndexSettings sets the ReplicaGlobalSecondaryIndexSettings field's value.
 19145  func (s *ReplicaSettingsDescription) SetReplicaGlobalSecondaryIndexSettings(v []*ReplicaGlobalSecondaryIndexSettingsDescription) *ReplicaSettingsDescription {
 19146  	s.ReplicaGlobalSecondaryIndexSettings = v
 19147  	return s
 19148  }
 19149  
 19150  // SetReplicaProvisionedReadCapacityAutoScalingSettings sets the ReplicaProvisionedReadCapacityAutoScalingSettings field's value.
 19151  func (s *ReplicaSettingsDescription) SetReplicaProvisionedReadCapacityAutoScalingSettings(v *AutoScalingSettingsDescription) *ReplicaSettingsDescription {
 19152  	s.ReplicaProvisionedReadCapacityAutoScalingSettings = v
 19153  	return s
 19154  }
 19155  
 19156  // SetReplicaProvisionedReadCapacityUnits sets the ReplicaProvisionedReadCapacityUnits field's value.
 19157  func (s *ReplicaSettingsDescription) SetReplicaProvisionedReadCapacityUnits(v int64) *ReplicaSettingsDescription {
 19158  	s.ReplicaProvisionedReadCapacityUnits = &v
 19159  	return s
 19160  }
 19161  
 19162  // SetReplicaProvisionedWriteCapacityAutoScalingSettings sets the ReplicaProvisionedWriteCapacityAutoScalingSettings field's value.
 19163  func (s *ReplicaSettingsDescription) SetReplicaProvisionedWriteCapacityAutoScalingSettings(v *AutoScalingSettingsDescription) *ReplicaSettingsDescription {
 19164  	s.ReplicaProvisionedWriteCapacityAutoScalingSettings = v
 19165  	return s
 19166  }
 19167  
 19168  // SetReplicaProvisionedWriteCapacityUnits sets the ReplicaProvisionedWriteCapacityUnits field's value.
 19169  func (s *ReplicaSettingsDescription) SetReplicaProvisionedWriteCapacityUnits(v int64) *ReplicaSettingsDescription {
 19170  	s.ReplicaProvisionedWriteCapacityUnits = &v
 19171  	return s
 19172  }
 19173  
 19174  // SetReplicaStatus sets the ReplicaStatus field's value.
 19175  func (s *ReplicaSettingsDescription) SetReplicaStatus(v string) *ReplicaSettingsDescription {
 19176  	s.ReplicaStatus = &v
 19177  	return s
 19178  }
 19179  
 19180  // Represents the settings for a global table in a Region that will be modified.
 19181  type ReplicaSettingsUpdate struct {
 19182  	_ struct{} `type:"structure"`
 19183  
 19184  	// The Region of the replica to be added.
 19185  	//
 19186  	// RegionName is a required field
 19187  	RegionName *string `type:"string" required:"true"`
 19188  
 19189  	// Represents the settings of a global secondary index for a global table that
 19190  	// will be modified.
 19191  	ReplicaGlobalSecondaryIndexSettingsUpdate []*ReplicaGlobalSecondaryIndexSettingsUpdate `min:"1" type:"list"`
 19192  
 19193  	// Auto scaling settings for managing a global table replica's read capacity
 19194  	// units.
 19195  	ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate *AutoScalingSettingsUpdate `type:"structure"`
 19196  
 19197  	// The maximum number of strongly consistent reads consumed per second before
 19198  	// DynamoDB returns a ThrottlingException. For more information, see Specifying
 19199  	// Read and Write Requirements (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput)
 19200  	// in the Amazon DynamoDB Developer Guide.
 19201  	ReplicaProvisionedReadCapacityUnits *int64 `min:"1" type:"long"`
 19202  }
 19203  
 19204  // String returns the string representation.
 19205  //
 19206  // API parameter values that are decorated as "sensitive" in the API will not
 19207  // be included in the string output. The member name will be present, but the
 19208  // value will be replaced with "sensitive".
 19209  func (s ReplicaSettingsUpdate) String() string {
 19210  	return awsutil.Prettify(s)
 19211  }
 19212  
 19213  // GoString returns the string representation.
 19214  //
 19215  // API parameter values that are decorated as "sensitive" in the API will not
 19216  // be included in the string output. The member name will be present, but the
 19217  // value will be replaced with "sensitive".
 19218  func (s ReplicaSettingsUpdate) GoString() string {
 19219  	return s.String()
 19220  }
 19221  
 19222  // Validate inspects the fields of the type to determine if they are valid.
 19223  func (s *ReplicaSettingsUpdate) Validate() error {
 19224  	invalidParams := request.ErrInvalidParams{Context: "ReplicaSettingsUpdate"}
 19225  	if s.RegionName == nil {
 19226  		invalidParams.Add(request.NewErrParamRequired("RegionName"))
 19227  	}
 19228  	if s.ReplicaGlobalSecondaryIndexSettingsUpdate != nil && len(s.ReplicaGlobalSecondaryIndexSettingsUpdate) < 1 {
 19229  		invalidParams.Add(request.NewErrParamMinLen("ReplicaGlobalSecondaryIndexSettingsUpdate", 1))
 19230  	}
 19231  	if s.ReplicaProvisionedReadCapacityUnits != nil && *s.ReplicaProvisionedReadCapacityUnits < 1 {
 19232  		invalidParams.Add(request.NewErrParamMinValue("ReplicaProvisionedReadCapacityUnits", 1))
 19233  	}
 19234  	if s.ReplicaGlobalSecondaryIndexSettingsUpdate != nil {
 19235  		for i, v := range s.ReplicaGlobalSecondaryIndexSettingsUpdate {
 19236  			if v == nil {
 19237  				continue
 19238  			}
 19239  			if err := v.Validate(); err != nil {
 19240  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ReplicaGlobalSecondaryIndexSettingsUpdate", i), err.(request.ErrInvalidParams))
 19241  			}
 19242  		}
 19243  	}
 19244  	if s.ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate != nil {
 19245  		if err := s.ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate.Validate(); err != nil {
 19246  			invalidParams.AddNested("ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate", err.(request.ErrInvalidParams))
 19247  		}
 19248  	}
 19249  
 19250  	if invalidParams.Len() > 0 {
 19251  		return invalidParams
 19252  	}
 19253  	return nil
 19254  }
 19255  
 19256  // SetRegionName sets the RegionName field's value.
 19257  func (s *ReplicaSettingsUpdate) SetRegionName(v string) *ReplicaSettingsUpdate {
 19258  	s.RegionName = &v
 19259  	return s
 19260  }
 19261  
 19262  // SetReplicaGlobalSecondaryIndexSettingsUpdate sets the ReplicaGlobalSecondaryIndexSettingsUpdate field's value.
 19263  func (s *ReplicaSettingsUpdate) SetReplicaGlobalSecondaryIndexSettingsUpdate(v []*ReplicaGlobalSecondaryIndexSettingsUpdate) *ReplicaSettingsUpdate {
 19264  	s.ReplicaGlobalSecondaryIndexSettingsUpdate = v
 19265  	return s
 19266  }
 19267  
 19268  // SetReplicaProvisionedReadCapacityAutoScalingSettingsUpdate sets the ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate field's value.
 19269  func (s *ReplicaSettingsUpdate) SetReplicaProvisionedReadCapacityAutoScalingSettingsUpdate(v *AutoScalingSettingsUpdate) *ReplicaSettingsUpdate {
 19270  	s.ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate = v
 19271  	return s
 19272  }
 19273  
 19274  // SetReplicaProvisionedReadCapacityUnits sets the ReplicaProvisionedReadCapacityUnits field's value.
 19275  func (s *ReplicaSettingsUpdate) SetReplicaProvisionedReadCapacityUnits(v int64) *ReplicaSettingsUpdate {
 19276  	s.ReplicaProvisionedReadCapacityUnits = &v
 19277  	return s
 19278  }
 19279  
 19280  // Represents one of the following:
 19281  //
 19282  //    * A new replica to be added to an existing global table.
 19283  //
 19284  //    * New parameters for an existing replica.
 19285  //
 19286  //    * An existing replica to be removed from an existing global table.
 19287  type ReplicaUpdate struct {
 19288  	_ struct{} `type:"structure"`
 19289  
 19290  	// The parameters required for creating a replica on an existing global table.
 19291  	Create *CreateReplicaAction `type:"structure"`
 19292  
 19293  	// The name of the existing replica to be removed.
 19294  	Delete *DeleteReplicaAction `type:"structure"`
 19295  }
 19296  
 19297  // String returns the string representation.
 19298  //
 19299  // API parameter values that are decorated as "sensitive" in the API will not
 19300  // be included in the string output. The member name will be present, but the
 19301  // value will be replaced with "sensitive".
 19302  func (s ReplicaUpdate) String() string {
 19303  	return awsutil.Prettify(s)
 19304  }
 19305  
 19306  // GoString returns the string representation.
 19307  //
 19308  // API parameter values that are decorated as "sensitive" in the API will not
 19309  // be included in the string output. The member name will be present, but the
 19310  // value will be replaced with "sensitive".
 19311  func (s ReplicaUpdate) GoString() string {
 19312  	return s.String()
 19313  }
 19314  
 19315  // Validate inspects the fields of the type to determine if they are valid.
 19316  func (s *ReplicaUpdate) Validate() error {
 19317  	invalidParams := request.ErrInvalidParams{Context: "ReplicaUpdate"}
 19318  	if s.Create != nil {
 19319  		if err := s.Create.Validate(); err != nil {
 19320  			invalidParams.AddNested("Create", err.(request.ErrInvalidParams))
 19321  		}
 19322  	}
 19323  	if s.Delete != nil {
 19324  		if err := s.Delete.Validate(); err != nil {
 19325  			invalidParams.AddNested("Delete", err.(request.ErrInvalidParams))
 19326  		}
 19327  	}
 19328  
 19329  	if invalidParams.Len() > 0 {
 19330  		return invalidParams
 19331  	}
 19332  	return nil
 19333  }
 19334  
 19335  // SetCreate sets the Create field's value.
 19336  func (s *ReplicaUpdate) SetCreate(v *CreateReplicaAction) *ReplicaUpdate {
 19337  	s.Create = v
 19338  	return s
 19339  }
 19340  
 19341  // SetDelete sets the Delete field's value.
 19342  func (s *ReplicaUpdate) SetDelete(v *DeleteReplicaAction) *ReplicaUpdate {
 19343  	s.Delete = v
 19344  	return s
 19345  }
 19346  
 19347  // Represents one of the following:
 19348  //
 19349  //    * A new replica to be added to an existing regional table or global table.
 19350  //    This request invokes the CreateTableReplica action in the destination
 19351  //    Region.
 19352  //
 19353  //    * New parameters for an existing replica. This request invokes the UpdateTable
 19354  //    action in the destination Region.
 19355  //
 19356  //    * An existing replica to be deleted. The request invokes the DeleteTableReplica
 19357  //    action in the destination Region, deleting the replica and all if its
 19358  //    items in the destination Region.
 19359  type ReplicationGroupUpdate struct {
 19360  	_ struct{} `type:"structure"`
 19361  
 19362  	// The parameters required for creating a replica for the table.
 19363  	Create *CreateReplicationGroupMemberAction `type:"structure"`
 19364  
 19365  	// The parameters required for deleting a replica for the table.
 19366  	Delete *DeleteReplicationGroupMemberAction `type:"structure"`
 19367  
 19368  	// The parameters required for updating a replica for the table.
 19369  	Update *UpdateReplicationGroupMemberAction `type:"structure"`
 19370  }
 19371  
 19372  // String returns the string representation.
 19373  //
 19374  // API parameter values that are decorated as "sensitive" in the API will not
 19375  // be included in the string output. The member name will be present, but the
 19376  // value will be replaced with "sensitive".
 19377  func (s ReplicationGroupUpdate) String() string {
 19378  	return awsutil.Prettify(s)
 19379  }
 19380  
 19381  // GoString returns the string representation.
 19382  //
 19383  // API parameter values that are decorated as "sensitive" in the API will not
 19384  // be included in the string output. The member name will be present, but the
 19385  // value will be replaced with "sensitive".
 19386  func (s ReplicationGroupUpdate) GoString() string {
 19387  	return s.String()
 19388  }
 19389  
 19390  // Validate inspects the fields of the type to determine if they are valid.
 19391  func (s *ReplicationGroupUpdate) Validate() error {
 19392  	invalidParams := request.ErrInvalidParams{Context: "ReplicationGroupUpdate"}
 19393  	if s.Create != nil {
 19394  		if err := s.Create.Validate(); err != nil {
 19395  			invalidParams.AddNested("Create", err.(request.ErrInvalidParams))
 19396  		}
 19397  	}
 19398  	if s.Delete != nil {
 19399  		if err := s.Delete.Validate(); err != nil {
 19400  			invalidParams.AddNested("Delete", err.(request.ErrInvalidParams))
 19401  		}
 19402  	}
 19403  	if s.Update != nil {
 19404  		if err := s.Update.Validate(); err != nil {
 19405  			invalidParams.AddNested("Update", err.(request.ErrInvalidParams))
 19406  		}
 19407  	}
 19408  
 19409  	if invalidParams.Len() > 0 {
 19410  		return invalidParams
 19411  	}
 19412  	return nil
 19413  }
 19414  
 19415  // SetCreate sets the Create field's value.
 19416  func (s *ReplicationGroupUpdate) SetCreate(v *CreateReplicationGroupMemberAction) *ReplicationGroupUpdate {
 19417  	s.Create = v
 19418  	return s
 19419  }
 19420  
 19421  // SetDelete sets the Delete field's value.
 19422  func (s *ReplicationGroupUpdate) SetDelete(v *DeleteReplicationGroupMemberAction) *ReplicationGroupUpdate {
 19423  	s.Delete = v
 19424  	return s
 19425  }
 19426  
 19427  // SetUpdate sets the Update field's value.
 19428  func (s *ReplicationGroupUpdate) SetUpdate(v *UpdateReplicationGroupMemberAction) *ReplicationGroupUpdate {
 19429  	s.Update = v
 19430  	return s
 19431  }
 19432  
 19433  // Throughput exceeds the current throughput quota for your account. Please
 19434  // contact AWS Support at AWS Support (https://aws.amazon.com/support) to request
 19435  // a quota increase.
 19436  type RequestLimitExceeded struct {
 19437  	_            struct{}                  `type:"structure"`
 19438  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 19439  
 19440  	Message_ *string `locationName:"message" type:"string"`
 19441  }
 19442  
 19443  // String returns the string representation.
 19444  //
 19445  // API parameter values that are decorated as "sensitive" in the API will not
 19446  // be included in the string output. The member name will be present, but the
 19447  // value will be replaced with "sensitive".
 19448  func (s RequestLimitExceeded) String() string {
 19449  	return awsutil.Prettify(s)
 19450  }
 19451  
 19452  // GoString returns the string representation.
 19453  //
 19454  // API parameter values that are decorated as "sensitive" in the API will not
 19455  // be included in the string output. The member name will be present, but the
 19456  // value will be replaced with "sensitive".
 19457  func (s RequestLimitExceeded) GoString() string {
 19458  	return s.String()
 19459  }
 19460  
 19461  func newErrorRequestLimitExceeded(v protocol.ResponseMetadata) error {
 19462  	return &RequestLimitExceeded{
 19463  		RespMetadata: v,
 19464  	}
 19465  }
 19466  
 19467  // Code returns the exception type name.
 19468  func (s *RequestLimitExceeded) Code() string {
 19469  	return "RequestLimitExceeded"
 19470  }
 19471  
 19472  // Message returns the exception's message.
 19473  func (s *RequestLimitExceeded) Message() string {
 19474  	if s.Message_ != nil {
 19475  		return *s.Message_
 19476  	}
 19477  	return ""
 19478  }
 19479  
 19480  // OrigErr always returns nil, satisfies awserr.Error interface.
 19481  func (s *RequestLimitExceeded) OrigErr() error {
 19482  	return nil
 19483  }
 19484  
 19485  func (s *RequestLimitExceeded) Error() string {
 19486  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 19487  }
 19488  
 19489  // Status code returns the HTTP status code for the request's response error.
 19490  func (s *RequestLimitExceeded) StatusCode() int {
 19491  	return s.RespMetadata.StatusCode
 19492  }
 19493  
 19494  // RequestID returns the service's response RequestID for request.
 19495  func (s *RequestLimitExceeded) RequestID() string {
 19496  	return s.RespMetadata.RequestID
 19497  }
 19498  
 19499  // The operation conflicts with the resource's availability. For example, you
 19500  // attempted to recreate an existing table, or tried to delete a table currently
 19501  // in the CREATING state.
 19502  type ResourceInUseException struct {
 19503  	_            struct{}                  `type:"structure"`
 19504  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 19505  
 19506  	// The resource which is being attempted to be changed is in use.
 19507  	Message_ *string `locationName:"message" type:"string"`
 19508  }
 19509  
 19510  // String returns the string representation.
 19511  //
 19512  // API parameter values that are decorated as "sensitive" in the API will not
 19513  // be included in the string output. The member name will be present, but the
 19514  // value will be replaced with "sensitive".
 19515  func (s ResourceInUseException) String() string {
 19516  	return awsutil.Prettify(s)
 19517  }
 19518  
 19519  // GoString returns the string representation.
 19520  //
 19521  // API parameter values that are decorated as "sensitive" in the API will not
 19522  // be included in the string output. The member name will be present, but the
 19523  // value will be replaced with "sensitive".
 19524  func (s ResourceInUseException) GoString() string {
 19525  	return s.String()
 19526  }
 19527  
 19528  func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
 19529  	return &ResourceInUseException{
 19530  		RespMetadata: v,
 19531  	}
 19532  }
 19533  
 19534  // Code returns the exception type name.
 19535  func (s *ResourceInUseException) Code() string {
 19536  	return "ResourceInUseException"
 19537  }
 19538  
 19539  // Message returns the exception's message.
 19540  func (s *ResourceInUseException) Message() string {
 19541  	if s.Message_ != nil {
 19542  		return *s.Message_
 19543  	}
 19544  	return ""
 19545  }
 19546  
 19547  // OrigErr always returns nil, satisfies awserr.Error interface.
 19548  func (s *ResourceInUseException) OrigErr() error {
 19549  	return nil
 19550  }
 19551  
 19552  func (s *ResourceInUseException) Error() string {
 19553  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 19554  }
 19555  
 19556  // Status code returns the HTTP status code for the request's response error.
 19557  func (s *ResourceInUseException) StatusCode() int {
 19558  	return s.RespMetadata.StatusCode
 19559  }
 19560  
 19561  // RequestID returns the service's response RequestID for request.
 19562  func (s *ResourceInUseException) RequestID() string {
 19563  	return s.RespMetadata.RequestID
 19564  }
 19565  
 19566  // The operation tried to access a nonexistent table or index. The resource
 19567  // might not be specified correctly, or its status might not be ACTIVE.
 19568  type ResourceNotFoundException struct {
 19569  	_            struct{}                  `type:"structure"`
 19570  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 19571  
 19572  	// The resource which is being requested does not exist.
 19573  	Message_ *string `locationName:"message" type:"string"`
 19574  }
 19575  
 19576  // String returns the string representation.
 19577  //
 19578  // API parameter values that are decorated as "sensitive" in the API will not
 19579  // be included in the string output. The member name will be present, but the
 19580  // value will be replaced with "sensitive".
 19581  func (s ResourceNotFoundException) String() string {
 19582  	return awsutil.Prettify(s)
 19583  }
 19584  
 19585  // GoString returns the string representation.
 19586  //
 19587  // API parameter values that are decorated as "sensitive" in the API will not
 19588  // be included in the string output. The member name will be present, but the
 19589  // value will be replaced with "sensitive".
 19590  func (s ResourceNotFoundException) GoString() string {
 19591  	return s.String()
 19592  }
 19593  
 19594  func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
 19595  	return &ResourceNotFoundException{
 19596  		RespMetadata: v,
 19597  	}
 19598  }
 19599  
 19600  // Code returns the exception type name.
 19601  func (s *ResourceNotFoundException) Code() string {
 19602  	return "ResourceNotFoundException"
 19603  }
 19604  
 19605  // Message returns the exception's message.
 19606  func (s *ResourceNotFoundException) Message() string {
 19607  	if s.Message_ != nil {
 19608  		return *s.Message_
 19609  	}
 19610  	return ""
 19611  }
 19612  
 19613  // OrigErr always returns nil, satisfies awserr.Error interface.
 19614  func (s *ResourceNotFoundException) OrigErr() error {
 19615  	return nil
 19616  }
 19617  
 19618  func (s *ResourceNotFoundException) Error() string {
 19619  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 19620  }
 19621  
 19622  // Status code returns the HTTP status code for the request's response error.
 19623  func (s *ResourceNotFoundException) StatusCode() int {
 19624  	return s.RespMetadata.StatusCode
 19625  }
 19626  
 19627  // RequestID returns the service's response RequestID for request.
 19628  func (s *ResourceNotFoundException) RequestID() string {
 19629  	return s.RespMetadata.RequestID
 19630  }
 19631  
 19632  // Contains details for the restore.
 19633  type RestoreSummary struct {
 19634  	_ struct{} `type:"structure"`
 19635  
 19636  	// Point in time or source backup time.
 19637  	//
 19638  	// RestoreDateTime is a required field
 19639  	RestoreDateTime *time.Time `type:"timestamp" required:"true"`
 19640  
 19641  	// Indicates if a restore is in progress or not.
 19642  	//
 19643  	// RestoreInProgress is a required field
 19644  	RestoreInProgress *bool `type:"boolean" required:"true"`
 19645  
 19646  	// The Amazon Resource Name (ARN) of the backup from which the table was restored.
 19647  	SourceBackupArn *string `min:"37" type:"string"`
 19648  
 19649  	// The ARN of the source table of the backup that is being restored.
 19650  	SourceTableArn *string `type:"string"`
 19651  }
 19652  
 19653  // String returns the string representation.
 19654  //
 19655  // API parameter values that are decorated as "sensitive" in the API will not
 19656  // be included in the string output. The member name will be present, but the
 19657  // value will be replaced with "sensitive".
 19658  func (s RestoreSummary) String() string {
 19659  	return awsutil.Prettify(s)
 19660  }
 19661  
 19662  // GoString returns the string representation.
 19663  //
 19664  // API parameter values that are decorated as "sensitive" in the API will not
 19665  // be included in the string output. The member name will be present, but the
 19666  // value will be replaced with "sensitive".
 19667  func (s RestoreSummary) GoString() string {
 19668  	return s.String()
 19669  }
 19670  
 19671  // SetRestoreDateTime sets the RestoreDateTime field's value.
 19672  func (s *RestoreSummary) SetRestoreDateTime(v time.Time) *RestoreSummary {
 19673  	s.RestoreDateTime = &v
 19674  	return s
 19675  }
 19676  
 19677  // SetRestoreInProgress sets the RestoreInProgress field's value.
 19678  func (s *RestoreSummary) SetRestoreInProgress(v bool) *RestoreSummary {
 19679  	s.RestoreInProgress = &v
 19680  	return s
 19681  }
 19682  
 19683  // SetSourceBackupArn sets the SourceBackupArn field's value.
 19684  func (s *RestoreSummary) SetSourceBackupArn(v string) *RestoreSummary {
 19685  	s.SourceBackupArn = &v
 19686  	return s
 19687  }
 19688  
 19689  // SetSourceTableArn sets the SourceTableArn field's value.
 19690  func (s *RestoreSummary) SetSourceTableArn(v string) *RestoreSummary {
 19691  	s.SourceTableArn = &v
 19692  	return s
 19693  }
 19694  
 19695  type RestoreTableFromBackupInput struct {
 19696  	_ struct{} `type:"structure"`
 19697  
 19698  	// The Amazon Resource Name (ARN) associated with the backup.
 19699  	//
 19700  	// BackupArn is a required field
 19701  	BackupArn *string `min:"37" type:"string" required:"true"`
 19702  
 19703  	// The billing mode of the restored table.
 19704  	BillingModeOverride *string `type:"string" enum:"BillingMode"`
 19705  
 19706  	// List of global secondary indexes for the restored table. The indexes provided
 19707  	// should match existing secondary indexes. You can choose to exclude some or
 19708  	// all of the indexes at the time of restore.
 19709  	GlobalSecondaryIndexOverride []*GlobalSecondaryIndex `type:"list"`
 19710  
 19711  	// List of local secondary indexes for the restored table. The indexes provided
 19712  	// should match existing secondary indexes. You can choose to exclude some or
 19713  	// all of the indexes at the time of restore.
 19714  	LocalSecondaryIndexOverride []*LocalSecondaryIndex `type:"list"`
 19715  
 19716  	// Provisioned throughput settings for the restored table.
 19717  	ProvisionedThroughputOverride *ProvisionedThroughput `type:"structure"`
 19718  
 19719  	// The new server-side encryption settings for the restored table.
 19720  	SSESpecificationOverride *SSESpecification `type:"structure"`
 19721  
 19722  	// The name of the new table to which the backup must be restored.
 19723  	//
 19724  	// TargetTableName is a required field
 19725  	TargetTableName *string `min:"3" type:"string" required:"true"`
 19726  }
 19727  
 19728  // String returns the string representation.
 19729  //
 19730  // API parameter values that are decorated as "sensitive" in the API will not
 19731  // be included in the string output. The member name will be present, but the
 19732  // value will be replaced with "sensitive".
 19733  func (s RestoreTableFromBackupInput) String() string {
 19734  	return awsutil.Prettify(s)
 19735  }
 19736  
 19737  // GoString returns the string representation.
 19738  //
 19739  // API parameter values that are decorated as "sensitive" in the API will not
 19740  // be included in the string output. The member name will be present, but the
 19741  // value will be replaced with "sensitive".
 19742  func (s RestoreTableFromBackupInput) GoString() string {
 19743  	return s.String()
 19744  }
 19745  
 19746  // Validate inspects the fields of the type to determine if they are valid.
 19747  func (s *RestoreTableFromBackupInput) Validate() error {
 19748  	invalidParams := request.ErrInvalidParams{Context: "RestoreTableFromBackupInput"}
 19749  	if s.BackupArn == nil {
 19750  		invalidParams.Add(request.NewErrParamRequired("BackupArn"))
 19751  	}
 19752  	if s.BackupArn != nil && len(*s.BackupArn) < 37 {
 19753  		invalidParams.Add(request.NewErrParamMinLen("BackupArn", 37))
 19754  	}
 19755  	if s.TargetTableName == nil {
 19756  		invalidParams.Add(request.NewErrParamRequired("TargetTableName"))
 19757  	}
 19758  	if s.TargetTableName != nil && len(*s.TargetTableName) < 3 {
 19759  		invalidParams.Add(request.NewErrParamMinLen("TargetTableName", 3))
 19760  	}
 19761  	if s.GlobalSecondaryIndexOverride != nil {
 19762  		for i, v := range s.GlobalSecondaryIndexOverride {
 19763  			if v == nil {
 19764  				continue
 19765  			}
 19766  			if err := v.Validate(); err != nil {
 19767  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "GlobalSecondaryIndexOverride", i), err.(request.ErrInvalidParams))
 19768  			}
 19769  		}
 19770  	}
 19771  	if s.LocalSecondaryIndexOverride != nil {
 19772  		for i, v := range s.LocalSecondaryIndexOverride {
 19773  			if v == nil {
 19774  				continue
 19775  			}
 19776  			if err := v.Validate(); err != nil {
 19777  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "LocalSecondaryIndexOverride", i), err.(request.ErrInvalidParams))
 19778  			}
 19779  		}
 19780  	}
 19781  	if s.ProvisionedThroughputOverride != nil {
 19782  		if err := s.ProvisionedThroughputOverride.Validate(); err != nil {
 19783  			invalidParams.AddNested("ProvisionedThroughputOverride", err.(request.ErrInvalidParams))
 19784  		}
 19785  	}
 19786  
 19787  	if invalidParams.Len() > 0 {
 19788  		return invalidParams
 19789  	}
 19790  	return nil
 19791  }
 19792  
 19793  // SetBackupArn sets the BackupArn field's value.
 19794  func (s *RestoreTableFromBackupInput) SetBackupArn(v string) *RestoreTableFromBackupInput {
 19795  	s.BackupArn = &v
 19796  	return s
 19797  }
 19798  
 19799  // SetBillingModeOverride sets the BillingModeOverride field's value.
 19800  func (s *RestoreTableFromBackupInput) SetBillingModeOverride(v string) *RestoreTableFromBackupInput {
 19801  	s.BillingModeOverride = &v
 19802  	return s
 19803  }
 19804  
 19805  // SetGlobalSecondaryIndexOverride sets the GlobalSecondaryIndexOverride field's value.
 19806  func (s *RestoreTableFromBackupInput) SetGlobalSecondaryIndexOverride(v []*GlobalSecondaryIndex) *RestoreTableFromBackupInput {
 19807  	s.GlobalSecondaryIndexOverride = v
 19808  	return s
 19809  }
 19810  
 19811  // SetLocalSecondaryIndexOverride sets the LocalSecondaryIndexOverride field's value.
 19812  func (s *RestoreTableFromBackupInput) SetLocalSecondaryIndexOverride(v []*LocalSecondaryIndex) *RestoreTableFromBackupInput {
 19813  	s.LocalSecondaryIndexOverride = v
 19814  	return s
 19815  }
 19816  
 19817  // SetProvisionedThroughputOverride sets the ProvisionedThroughputOverride field's value.
 19818  func (s *RestoreTableFromBackupInput) SetProvisionedThroughputOverride(v *ProvisionedThroughput) *RestoreTableFromBackupInput {
 19819  	s.ProvisionedThroughputOverride = v
 19820  	return s
 19821  }
 19822  
 19823  // SetSSESpecificationOverride sets the SSESpecificationOverride field's value.
 19824  func (s *RestoreTableFromBackupInput) SetSSESpecificationOverride(v *SSESpecification) *RestoreTableFromBackupInput {
 19825  	s.SSESpecificationOverride = v
 19826  	return s
 19827  }
 19828  
 19829  // SetTargetTableName sets the TargetTableName field's value.
 19830  func (s *RestoreTableFromBackupInput) SetTargetTableName(v string) *RestoreTableFromBackupInput {
 19831  	s.TargetTableName = &v
 19832  	return s
 19833  }
 19834  
 19835  type RestoreTableFromBackupOutput struct {
 19836  	_ struct{} `type:"structure"`
 19837  
 19838  	// The description of the table created from an existing backup.
 19839  	TableDescription *TableDescription `type:"structure"`
 19840  }
 19841  
 19842  // String returns the string representation.
 19843  //
 19844  // API parameter values that are decorated as "sensitive" in the API will not
 19845  // be included in the string output. The member name will be present, but the
 19846  // value will be replaced with "sensitive".
 19847  func (s RestoreTableFromBackupOutput) String() string {
 19848  	return awsutil.Prettify(s)
 19849  }
 19850  
 19851  // GoString returns the string representation.
 19852  //
 19853  // API parameter values that are decorated as "sensitive" in the API will not
 19854  // be included in the string output. The member name will be present, but the
 19855  // value will be replaced with "sensitive".
 19856  func (s RestoreTableFromBackupOutput) GoString() string {
 19857  	return s.String()
 19858  }
 19859  
 19860  // SetTableDescription sets the TableDescription field's value.
 19861  func (s *RestoreTableFromBackupOutput) SetTableDescription(v *TableDescription) *RestoreTableFromBackupOutput {
 19862  	s.TableDescription = v
 19863  	return s
 19864  }
 19865  
 19866  type RestoreTableToPointInTimeInput struct {
 19867  	_ struct{} `type:"structure"`
 19868  
 19869  	// The billing mode of the restored table.
 19870  	BillingModeOverride *string `type:"string" enum:"BillingMode"`
 19871  
 19872  	// List of global secondary indexes for the restored table. The indexes provided
 19873  	// should match existing secondary indexes. You can choose to exclude some or
 19874  	// all of the indexes at the time of restore.
 19875  	GlobalSecondaryIndexOverride []*GlobalSecondaryIndex `type:"list"`
 19876  
 19877  	// List of local secondary indexes for the restored table. The indexes provided
 19878  	// should match existing secondary indexes. You can choose to exclude some or
 19879  	// all of the indexes at the time of restore.
 19880  	LocalSecondaryIndexOverride []*LocalSecondaryIndex `type:"list"`
 19881  
 19882  	// Provisioned throughput settings for the restored table.
 19883  	ProvisionedThroughputOverride *ProvisionedThroughput `type:"structure"`
 19884  
 19885  	// Time in the past to restore the table to.
 19886  	RestoreDateTime *time.Time `type:"timestamp"`
 19887  
 19888  	// The new server-side encryption settings for the restored table.
 19889  	SSESpecificationOverride *SSESpecification `type:"structure"`
 19890  
 19891  	// The DynamoDB table that will be restored. This value is an Amazon Resource
 19892  	// Name (ARN).
 19893  	SourceTableArn *string `type:"string"`
 19894  
 19895  	// Name of the source table that is being restored.
 19896  	SourceTableName *string `min:"3" type:"string"`
 19897  
 19898  	// The name of the new table to which it must be restored to.
 19899  	//
 19900  	// TargetTableName is a required field
 19901  	TargetTableName *string `min:"3" type:"string" required:"true"`
 19902  
 19903  	// Restore the table to the latest possible time. LatestRestorableDateTime is
 19904  	// typically 5 minutes before the current time.
 19905  	UseLatestRestorableTime *bool `type:"boolean"`
 19906  }
 19907  
 19908  // String returns the string representation.
 19909  //
 19910  // API parameter values that are decorated as "sensitive" in the API will not
 19911  // be included in the string output. The member name will be present, but the
 19912  // value will be replaced with "sensitive".
 19913  func (s RestoreTableToPointInTimeInput) String() string {
 19914  	return awsutil.Prettify(s)
 19915  }
 19916  
 19917  // GoString returns the string representation.
 19918  //
 19919  // API parameter values that are decorated as "sensitive" in the API will not
 19920  // be included in the string output. The member name will be present, but the
 19921  // value will be replaced with "sensitive".
 19922  func (s RestoreTableToPointInTimeInput) GoString() string {
 19923  	return s.String()
 19924  }
 19925  
 19926  // Validate inspects the fields of the type to determine if they are valid.
 19927  func (s *RestoreTableToPointInTimeInput) Validate() error {
 19928  	invalidParams := request.ErrInvalidParams{Context: "RestoreTableToPointInTimeInput"}
 19929  	if s.SourceTableName != nil && len(*s.SourceTableName) < 3 {
 19930  		invalidParams.Add(request.NewErrParamMinLen("SourceTableName", 3))
 19931  	}
 19932  	if s.TargetTableName == nil {
 19933  		invalidParams.Add(request.NewErrParamRequired("TargetTableName"))
 19934  	}
 19935  	if s.TargetTableName != nil && len(*s.TargetTableName) < 3 {
 19936  		invalidParams.Add(request.NewErrParamMinLen("TargetTableName", 3))
 19937  	}
 19938  	if s.GlobalSecondaryIndexOverride != nil {
 19939  		for i, v := range s.GlobalSecondaryIndexOverride {
 19940  			if v == nil {
 19941  				continue
 19942  			}
 19943  			if err := v.Validate(); err != nil {
 19944  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "GlobalSecondaryIndexOverride", i), err.(request.ErrInvalidParams))
 19945  			}
 19946  		}
 19947  	}
 19948  	if s.LocalSecondaryIndexOverride != nil {
 19949  		for i, v := range s.LocalSecondaryIndexOverride {
 19950  			if v == nil {
 19951  				continue
 19952  			}
 19953  			if err := v.Validate(); err != nil {
 19954  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "LocalSecondaryIndexOverride", i), err.(request.ErrInvalidParams))
 19955  			}
 19956  		}
 19957  	}
 19958  	if s.ProvisionedThroughputOverride != nil {
 19959  		if err := s.ProvisionedThroughputOverride.Validate(); err != nil {
 19960  			invalidParams.AddNested("ProvisionedThroughputOverride", err.(request.ErrInvalidParams))
 19961  		}
 19962  	}
 19963  
 19964  	if invalidParams.Len() > 0 {
 19965  		return invalidParams
 19966  	}
 19967  	return nil
 19968  }
 19969  
 19970  // SetBillingModeOverride sets the BillingModeOverride field's value.
 19971  func (s *RestoreTableToPointInTimeInput) SetBillingModeOverride(v string) *RestoreTableToPointInTimeInput {
 19972  	s.BillingModeOverride = &v
 19973  	return s
 19974  }
 19975  
 19976  // SetGlobalSecondaryIndexOverride sets the GlobalSecondaryIndexOverride field's value.
 19977  func (s *RestoreTableToPointInTimeInput) SetGlobalSecondaryIndexOverride(v []*GlobalSecondaryIndex) *RestoreTableToPointInTimeInput {
 19978  	s.GlobalSecondaryIndexOverride = v
 19979  	return s
 19980  }
 19981  
 19982  // SetLocalSecondaryIndexOverride sets the LocalSecondaryIndexOverride field's value.
 19983  func (s *RestoreTableToPointInTimeInput) SetLocalSecondaryIndexOverride(v []*LocalSecondaryIndex) *RestoreTableToPointInTimeInput {
 19984  	s.LocalSecondaryIndexOverride = v
 19985  	return s
 19986  }
 19987  
 19988  // SetProvisionedThroughputOverride sets the ProvisionedThroughputOverride field's value.
 19989  func (s *RestoreTableToPointInTimeInput) SetProvisionedThroughputOverride(v *ProvisionedThroughput) *RestoreTableToPointInTimeInput {
 19990  	s.ProvisionedThroughputOverride = v
 19991  	return s
 19992  }
 19993  
 19994  // SetRestoreDateTime sets the RestoreDateTime field's value.
 19995  func (s *RestoreTableToPointInTimeInput) SetRestoreDateTime(v time.Time) *RestoreTableToPointInTimeInput {
 19996  	s.RestoreDateTime = &v
 19997  	return s
 19998  }
 19999  
 20000  // SetSSESpecificationOverride sets the SSESpecificationOverride field's value.
 20001  func (s *RestoreTableToPointInTimeInput) SetSSESpecificationOverride(v *SSESpecification) *RestoreTableToPointInTimeInput {
 20002  	s.SSESpecificationOverride = v
 20003  	return s
 20004  }
 20005  
 20006  // SetSourceTableArn sets the SourceTableArn field's value.
 20007  func (s *RestoreTableToPointInTimeInput) SetSourceTableArn(v string) *RestoreTableToPointInTimeInput {
 20008  	s.SourceTableArn = &v
 20009  	return s
 20010  }
 20011  
 20012  // SetSourceTableName sets the SourceTableName field's value.
 20013  func (s *RestoreTableToPointInTimeInput) SetSourceTableName(v string) *RestoreTableToPointInTimeInput {
 20014  	s.SourceTableName = &v
 20015  	return s
 20016  }
 20017  
 20018  // SetTargetTableName sets the TargetTableName field's value.
 20019  func (s *RestoreTableToPointInTimeInput) SetTargetTableName(v string) *RestoreTableToPointInTimeInput {
 20020  	s.TargetTableName = &v
 20021  	return s
 20022  }
 20023  
 20024  // SetUseLatestRestorableTime sets the UseLatestRestorableTime field's value.
 20025  func (s *RestoreTableToPointInTimeInput) SetUseLatestRestorableTime(v bool) *RestoreTableToPointInTimeInput {
 20026  	s.UseLatestRestorableTime = &v
 20027  	return s
 20028  }
 20029  
 20030  type RestoreTableToPointInTimeOutput struct {
 20031  	_ struct{} `type:"structure"`
 20032  
 20033  	// Represents the properties of a table.
 20034  	TableDescription *TableDescription `type:"structure"`
 20035  }
 20036  
 20037  // String returns the string representation.
 20038  //
 20039  // API parameter values that are decorated as "sensitive" in the API will not
 20040  // be included in the string output. The member name will be present, but the
 20041  // value will be replaced with "sensitive".
 20042  func (s RestoreTableToPointInTimeOutput) String() string {
 20043  	return awsutil.Prettify(s)
 20044  }
 20045  
 20046  // GoString returns the string representation.
 20047  //
 20048  // API parameter values that are decorated as "sensitive" in the API will not
 20049  // be included in the string output. The member name will be present, but the
 20050  // value will be replaced with "sensitive".
 20051  func (s RestoreTableToPointInTimeOutput) GoString() string {
 20052  	return s.String()
 20053  }
 20054  
 20055  // SetTableDescription sets the TableDescription field's value.
 20056  func (s *RestoreTableToPointInTimeOutput) SetTableDescription(v *TableDescription) *RestoreTableToPointInTimeOutput {
 20057  	s.TableDescription = v
 20058  	return s
 20059  }
 20060  
 20061  // The description of the server-side encryption status on the specified table.
 20062  type SSEDescription struct {
 20063  	_ struct{} `type:"structure"`
 20064  
 20065  	// Indicates the time, in UNIX epoch date format, when DynamoDB detected that
 20066  	// the table's AWS KMS key was inaccessible. This attribute will automatically
 20067  	// be cleared when DynamoDB detects that the table's AWS KMS key is accessible
 20068  	// again. DynamoDB will initiate the table archival process when table's AWS
 20069  	// KMS key remains inaccessible for more than seven days from this date.
 20070  	InaccessibleEncryptionDateTime *time.Time `type:"timestamp"`
 20071  
 20072  	// The AWS KMS customer master key (CMK) ARN used for the AWS KMS encryption.
 20073  	KMSMasterKeyArn *string `type:"string"`
 20074  
 20075  	// Server-side encryption type. The only supported value is:
 20076  	//
 20077  	//    * KMS - Server-side encryption that uses AWS Key Management Service. The
 20078  	//    key is stored in your account and is managed by AWS KMS (AWS KMS charges
 20079  	//    apply).
 20080  	SSEType *string `type:"string" enum:"SSEType"`
 20081  
 20082  	// Represents the current state of server-side encryption. The only supported
 20083  	// values are:
 20084  	//
 20085  	//    * ENABLED - Server-side encryption is enabled.
 20086  	//
 20087  	//    * UPDATING - Server-side encryption is being updated.
 20088  	Status *string `type:"string" enum:"SSEStatus"`
 20089  }
 20090  
 20091  // String returns the string representation.
 20092  //
 20093  // API parameter values that are decorated as "sensitive" in the API will not
 20094  // be included in the string output. The member name will be present, but the
 20095  // value will be replaced with "sensitive".
 20096  func (s SSEDescription) String() string {
 20097  	return awsutil.Prettify(s)
 20098  }
 20099  
 20100  // GoString returns the string representation.
 20101  //
 20102  // API parameter values that are decorated as "sensitive" in the API will not
 20103  // be included in the string output. The member name will be present, but the
 20104  // value will be replaced with "sensitive".
 20105  func (s SSEDescription) GoString() string {
 20106  	return s.String()
 20107  }
 20108  
 20109  // SetInaccessibleEncryptionDateTime sets the InaccessibleEncryptionDateTime field's value.
 20110  func (s *SSEDescription) SetInaccessibleEncryptionDateTime(v time.Time) *SSEDescription {
 20111  	s.InaccessibleEncryptionDateTime = &v
 20112  	return s
 20113  }
 20114  
 20115  // SetKMSMasterKeyArn sets the KMSMasterKeyArn field's value.
 20116  func (s *SSEDescription) SetKMSMasterKeyArn(v string) *SSEDescription {
 20117  	s.KMSMasterKeyArn = &v
 20118  	return s
 20119  }
 20120  
 20121  // SetSSEType sets the SSEType field's value.
 20122  func (s *SSEDescription) SetSSEType(v string) *SSEDescription {
 20123  	s.SSEType = &v
 20124  	return s
 20125  }
 20126  
 20127  // SetStatus sets the Status field's value.
 20128  func (s *SSEDescription) SetStatus(v string) *SSEDescription {
 20129  	s.Status = &v
 20130  	return s
 20131  }
 20132  
 20133  // Represents the settings used to enable server-side encryption.
 20134  type SSESpecification struct {
 20135  	_ struct{} `type:"structure"`
 20136  
 20137  	// Indicates whether server-side encryption is done using an AWS managed CMK
 20138  	// or an AWS owned CMK. If enabled (true), server-side encryption type is set
 20139  	// to KMS and an AWS managed CMK is used (AWS KMS charges apply). If disabled
 20140  	// (false) or not specified, server-side encryption is set to AWS owned CMK.
 20141  	Enabled *bool `type:"boolean"`
 20142  
 20143  	// The AWS KMS customer master key (CMK) that should be used for the AWS KMS
 20144  	// encryption. To specify a CMK, use its key ID, Amazon Resource Name (ARN),
 20145  	// alias name, or alias ARN. Note that you should only provide this parameter
 20146  	// if the key is different from the default DynamoDB customer master key alias/aws/dynamodb.
 20147  	KMSMasterKeyId *string `type:"string"`
 20148  
 20149  	// Server-side encryption type. The only supported value is:
 20150  	//
 20151  	//    * KMS - Server-side encryption that uses AWS Key Management Service. The
 20152  	//    key is stored in your account and is managed by AWS KMS (AWS KMS charges
 20153  	//    apply).
 20154  	SSEType *string `type:"string" enum:"SSEType"`
 20155  }
 20156  
 20157  // String returns the string representation.
 20158  //
 20159  // API parameter values that are decorated as "sensitive" in the API will not
 20160  // be included in the string output. The member name will be present, but the
 20161  // value will be replaced with "sensitive".
 20162  func (s SSESpecification) String() string {
 20163  	return awsutil.Prettify(s)
 20164  }
 20165  
 20166  // GoString returns the string representation.
 20167  //
 20168  // API parameter values that are decorated as "sensitive" in the API will not
 20169  // be included in the string output. The member name will be present, but the
 20170  // value will be replaced with "sensitive".
 20171  func (s SSESpecification) GoString() string {
 20172  	return s.String()
 20173  }
 20174  
 20175  // SetEnabled sets the Enabled field's value.
 20176  func (s *SSESpecification) SetEnabled(v bool) *SSESpecification {
 20177  	s.Enabled = &v
 20178  	return s
 20179  }
 20180  
 20181  // SetKMSMasterKeyId sets the KMSMasterKeyId field's value.
 20182  func (s *SSESpecification) SetKMSMasterKeyId(v string) *SSESpecification {
 20183  	s.KMSMasterKeyId = &v
 20184  	return s
 20185  }
 20186  
 20187  // SetSSEType sets the SSEType field's value.
 20188  func (s *SSESpecification) SetSSEType(v string) *SSESpecification {
 20189  	s.SSEType = &v
 20190  	return s
 20191  }
 20192  
 20193  // Represents the input of a Scan operation.
 20194  type ScanInput struct {
 20195  	_ struct{} `type:"structure"`
 20196  
 20197  	// This is a legacy parameter. Use ProjectionExpression instead. For more information,
 20198  	// see AttributesToGet (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.AttributesToGet.html)
 20199  	// in the Amazon DynamoDB Developer Guide.
 20200  	AttributesToGet []*string `min:"1" type:"list"`
 20201  
 20202  	// This is a legacy parameter. Use FilterExpression instead. For more information,
 20203  	// see ConditionalOperator (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ConditionalOperator.html)
 20204  	// in the Amazon DynamoDB Developer Guide.
 20205  	ConditionalOperator *string `type:"string" enum:"ConditionalOperator"`
 20206  
 20207  	// A Boolean value that determines the read consistency model during the scan:
 20208  	//
 20209  	//    * If ConsistentRead is false, then the data returned from Scan might not
 20210  	//    contain the results from other recently completed write operations (PutItem,
 20211  	//    UpdateItem, or DeleteItem).
 20212  	//
 20213  	//    * If ConsistentRead is true, then all of the write operations that completed
 20214  	//    before the Scan began are guaranteed to be contained in the Scan response.
 20215  	//
 20216  	// The default setting for ConsistentRead is false.
 20217  	//
 20218  	// The ConsistentRead parameter is not supported on global secondary indexes.
 20219  	// If you scan a global secondary index with ConsistentRead set to true, you
 20220  	// will receive a ValidationException.
 20221  	ConsistentRead *bool `type:"boolean"`
 20222  
 20223  	// The primary key of the first item that this operation will evaluate. Use
 20224  	// the value that was returned for LastEvaluatedKey in the previous operation.
 20225  	//
 20226  	// The data type for ExclusiveStartKey must be String, Number or Binary. No
 20227  	// set data types are allowed.
 20228  	//
 20229  	// In a parallel scan, a Scan request that includes ExclusiveStartKey must specify
 20230  	// the same segment whose previous Scan returned the corresponding value of
 20231  	// LastEvaluatedKey.
 20232  	ExclusiveStartKey map[string]*AttributeValue `type:"map"`
 20233  
 20234  	// One or more substitution tokens for attribute names in an expression. The
 20235  	// following are some use cases for using ExpressionAttributeNames:
 20236  	//
 20237  	//    * To access an attribute whose name conflicts with a DynamoDB reserved
 20238  	//    word.
 20239  	//
 20240  	//    * To create a placeholder for repeating occurrences of an attribute name
 20241  	//    in an expression.
 20242  	//
 20243  	//    * To prevent special characters in an attribute name from being misinterpreted
 20244  	//    in an expression.
 20245  	//
 20246  	// Use the # character in an expression to dereference an attribute name. For
 20247  	// example, consider the following attribute name:
 20248  	//
 20249  	//    * Percentile
 20250  	//
 20251  	// The name of this attribute conflicts with a reserved word, so it cannot be
 20252  	// used directly in an expression. (For the complete list of reserved words,
 20253  	// see Reserved Words (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html)
 20254  	// in the Amazon DynamoDB Developer Guide). To work around this, you could specify
 20255  	// the following for ExpressionAttributeNames:
 20256  	//
 20257  	//    * {"#P":"Percentile"}
 20258  	//
 20259  	// You could then use this substitution in an expression, as in this example:
 20260  	//
 20261  	//    * #P = :val
 20262  	//
 20263  	// Tokens that begin with the : character are expression attribute values, which
 20264  	// are placeholders for the actual value at runtime.
 20265  	//
 20266  	// For more information on expression attribute names, see Specifying Item Attributes
 20267  	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html)
 20268  	// in the Amazon DynamoDB Developer Guide.
 20269  	ExpressionAttributeNames map[string]*string `type:"map"`
 20270  
 20271  	// One or more values that can be substituted in an expression.
 20272  	//
 20273  	// Use the : (colon) character in an expression to dereference an attribute
 20274  	// value. For example, suppose that you wanted to check whether the value of
 20275  	// the ProductStatus attribute was one of the following:
 20276  	//
 20277  	// Available | Backordered | Discontinued
 20278  	//
 20279  	// You would first need to specify ExpressionAttributeValues as follows:
 20280  	//
 20281  	// { ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"}
 20282  	// }
 20283  	//
 20284  	// You could then use these values in an expression, such as this:
 20285  	//
 20286  	// ProductStatus IN (:avail, :back, :disc)
 20287  	//
 20288  	// For more information on expression attribute values, see Condition Expressions
 20289  	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html)
 20290  	// in the Amazon DynamoDB Developer Guide.
 20291  	ExpressionAttributeValues map[string]*AttributeValue `type:"map"`
 20292  
 20293  	// A string that contains conditions that DynamoDB applies after the Scan operation,
 20294  	// but before the data is returned to you. Items that do not satisfy the FilterExpression
 20295  	// criteria are not returned.
 20296  	//
 20297  	// A FilterExpression is applied after the items have already been read; the
 20298  	// process of filtering does not consume any additional read capacity units.
 20299  	//
 20300  	// For more information, see Filter Expressions (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#FilteringResults)
 20301  	// in the Amazon DynamoDB Developer Guide.
 20302  	FilterExpression *string `type:"string"`
 20303  
 20304  	// The name of a secondary index to scan. This index can be any local secondary
 20305  	// index or global secondary index. Note that if you use the IndexName parameter,
 20306  	// you must also provide TableName.
 20307  	IndexName *string `min:"3" type:"string"`
 20308  
 20309  	// The maximum number of items to evaluate (not necessarily the number of matching
 20310  	// items). If DynamoDB processes the number of items up to the limit while processing
 20311  	// the results, it stops the operation and returns the matching values up to
 20312  	// that point, and a key in LastEvaluatedKey to apply in a subsequent operation,
 20313  	// so that you can pick up where you left off. Also, if the processed dataset
 20314  	// size exceeds 1 MB before DynamoDB reaches this limit, it stops the operation
 20315  	// and returns the matching values up to the limit, and a key in LastEvaluatedKey
 20316  	// to apply in a subsequent operation to continue the operation. For more information,
 20317  	// see Working with Queries (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html)
 20318  	// in the Amazon DynamoDB Developer Guide.
 20319  	Limit *int64 `min:"1" type:"integer"`
 20320  
 20321  	// A string that identifies one or more attributes to retrieve from the specified
 20322  	// table or index. These attributes can include scalars, sets, or elements of
 20323  	// a JSON document. The attributes in the expression must be separated by commas.
 20324  	//
 20325  	// If no attribute names are specified, then all attributes will be returned.
 20326  	// If any of the requested attributes are not found, they will not appear in
 20327  	// the result.
 20328  	//
 20329  	// For more information, see Specifying Item Attributes (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html)
 20330  	// in the Amazon DynamoDB Developer Guide.
 20331  	ProjectionExpression *string `type:"string"`
 20332  
 20333  	// Determines the level of detail about provisioned throughput consumption that
 20334  	// is returned in the response:
 20335  	//
 20336  	//    * INDEXES - The response includes the aggregate ConsumedCapacity for the
 20337  	//    operation, together with ConsumedCapacity for each table and secondary
 20338  	//    index that was accessed. Note that some operations, such as GetItem and
 20339  	//    BatchGetItem, do not access any indexes at all. In these cases, specifying
 20340  	//    INDEXES will only return ConsumedCapacity information for table(s).
 20341  	//
 20342  	//    * TOTAL - The response includes only the aggregate ConsumedCapacity for
 20343  	//    the operation.
 20344  	//
 20345  	//    * NONE - No ConsumedCapacity details are included in the response.
 20346  	ReturnConsumedCapacity *string `type:"string" enum:"ReturnConsumedCapacity"`
 20347  
 20348  	// This is a legacy parameter. Use FilterExpression instead. For more information,
 20349  	// see ScanFilter (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ScanFilter.html)
 20350  	// in the Amazon DynamoDB Developer Guide.
 20351  	ScanFilter map[string]*Condition `type:"map"`
 20352  
 20353  	// For a parallel Scan request, Segment identifies an individual segment to
 20354  	// be scanned by an application worker.
 20355  	//
 20356  	// Segment IDs are zero-based, so the first segment is always 0. For example,
 20357  	// if you want to use four application threads to scan a table or an index,
 20358  	// then the first thread specifies a Segment value of 0, the second thread specifies
 20359  	// 1, and so on.
 20360  	//
 20361  	// The value of LastEvaluatedKey returned from a parallel Scan request must
 20362  	// be used as ExclusiveStartKey with the same segment ID in a subsequent Scan
 20363  	// operation.
 20364  	//
 20365  	// The value for Segment must be greater than or equal to 0, and less than the
 20366  	// value provided for TotalSegments.
 20367  	//
 20368  	// If you provide Segment, you must also provide TotalSegments.
 20369  	Segment *int64 `type:"integer"`
 20370  
 20371  	// The attributes to be returned in the result. You can retrieve all item attributes,
 20372  	// specific item attributes, the count of matching items, or in the case of
 20373  	// an index, some or all of the attributes projected into the index.
 20374  	//
 20375  	//    * ALL_ATTRIBUTES - Returns all of the item attributes from the specified
 20376  	//    table or index. If you query a local secondary index, then for each matching
 20377  	//    item in the index, DynamoDB fetches the entire item from the parent table.
 20378  	//    If the index is configured to project all item attributes, then all of
 20379  	//    the data can be obtained from the local secondary index, and no fetching
 20380  	//    is required.
 20381  	//
 20382  	//    * ALL_PROJECTED_ATTRIBUTES - Allowed only when querying an index. Retrieves
 20383  	//    all attributes that have been projected into the index. If the index is
 20384  	//    configured to project all attributes, this return value is equivalent
 20385  	//    to specifying ALL_ATTRIBUTES.
 20386  	//
 20387  	//    * COUNT - Returns the number of matching items, rather than the matching
 20388  	//    items themselves.
 20389  	//
 20390  	//    * SPECIFIC_ATTRIBUTES - Returns only the attributes listed in AttributesToGet.
 20391  	//    This return value is equivalent to specifying AttributesToGet without
 20392  	//    specifying any value for Select. If you query or scan a local secondary
 20393  	//    index and request only attributes that are projected into that index,
 20394  	//    the operation reads only the index and not the table. If any of the requested
 20395  	//    attributes are not projected into the local secondary index, DynamoDB
 20396  	//    fetches each of these attributes from the parent table. This extra fetching
 20397  	//    incurs additional throughput cost and latency. If you query or scan a
 20398  	//    global secondary index, you can only request attributes that are projected
 20399  	//    into the index. Global secondary index queries cannot fetch attributes
 20400  	//    from the parent table.
 20401  	//
 20402  	// If neither Select nor AttributesToGet are specified, DynamoDB defaults to
 20403  	// ALL_ATTRIBUTES when accessing a table, and ALL_PROJECTED_ATTRIBUTES when
 20404  	// accessing an index. You cannot use both Select and AttributesToGet together
 20405  	// in a single request, unless the value for Select is SPECIFIC_ATTRIBUTES.
 20406  	// (This usage is equivalent to specifying AttributesToGet without any value
 20407  	// for Select.)
 20408  	//
 20409  	// If you use the ProjectionExpression parameter, then the value for Select
 20410  	// can only be SPECIFIC_ATTRIBUTES. Any other value for Select will return an
 20411  	// error.
 20412  	Select *string `type:"string" enum:"Select"`
 20413  
 20414  	// The name of the table containing the requested items; or, if you provide
 20415  	// IndexName, the name of the table to which that index belongs.
 20416  	//
 20417  	// TableName is a required field
 20418  	TableName *string `min:"3" type:"string" required:"true"`
 20419  
 20420  	// For a parallel Scan request, TotalSegments represents the total number of
 20421  	// segments into which the Scan operation will be divided. The value of TotalSegments
 20422  	// corresponds to the number of application workers that will perform the parallel
 20423  	// scan. For example, if you want to use four application threads to scan a
 20424  	// table or an index, specify a TotalSegments value of 4.
 20425  	//
 20426  	// The value for TotalSegments must be greater than or equal to 1, and less
 20427  	// than or equal to 1000000. If you specify a TotalSegments value of 1, the
 20428  	// Scan operation will be sequential rather than parallel.
 20429  	//
 20430  	// If you specify TotalSegments, you must also specify Segment.
 20431  	TotalSegments *int64 `min:"1" type:"integer"`
 20432  }
 20433  
 20434  // String returns the string representation.
 20435  //
 20436  // API parameter values that are decorated as "sensitive" in the API will not
 20437  // be included in the string output. The member name will be present, but the
 20438  // value will be replaced with "sensitive".
 20439  func (s ScanInput) String() string {
 20440  	return awsutil.Prettify(s)
 20441  }
 20442  
 20443  // GoString returns the string representation.
 20444  //
 20445  // API parameter values that are decorated as "sensitive" in the API will not
 20446  // be included in the string output. The member name will be present, but the
 20447  // value will be replaced with "sensitive".
 20448  func (s ScanInput) GoString() string {
 20449  	return s.String()
 20450  }
 20451  
 20452  // Validate inspects the fields of the type to determine if they are valid.
 20453  func (s *ScanInput) Validate() error {
 20454  	invalidParams := request.ErrInvalidParams{Context: "ScanInput"}
 20455  	if s.AttributesToGet != nil && len(s.AttributesToGet) < 1 {
 20456  		invalidParams.Add(request.NewErrParamMinLen("AttributesToGet", 1))
 20457  	}
 20458  	if s.IndexName != nil && len(*s.IndexName) < 3 {
 20459  		invalidParams.Add(request.NewErrParamMinLen("IndexName", 3))
 20460  	}
 20461  	if s.Limit != nil && *s.Limit < 1 {
 20462  		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
 20463  	}
 20464  	if s.TableName == nil {
 20465  		invalidParams.Add(request.NewErrParamRequired("TableName"))
 20466  	}
 20467  	if s.TableName != nil && len(*s.TableName) < 3 {
 20468  		invalidParams.Add(request.NewErrParamMinLen("TableName", 3))
 20469  	}
 20470  	if s.TotalSegments != nil && *s.TotalSegments < 1 {
 20471  		invalidParams.Add(request.NewErrParamMinValue("TotalSegments", 1))
 20472  	}
 20473  	if s.ScanFilter != nil {
 20474  		for i, v := range s.ScanFilter {
 20475  			if v == nil {
 20476  				continue
 20477  			}
 20478  			if err := v.Validate(); err != nil {
 20479  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ScanFilter", i), err.(request.ErrInvalidParams))
 20480  			}
 20481  		}
 20482  	}
 20483  
 20484  	if invalidParams.Len() > 0 {
 20485  		return invalidParams
 20486  	}
 20487  	return nil
 20488  }
 20489  
 20490  // SetAttributesToGet sets the AttributesToGet field's value.
 20491  func (s *ScanInput) SetAttributesToGet(v []*string) *ScanInput {
 20492  	s.AttributesToGet = v
 20493  	return s
 20494  }
 20495  
 20496  // SetConditionalOperator sets the ConditionalOperator field's value.
 20497  func (s *ScanInput) SetConditionalOperator(v string) *ScanInput {
 20498  	s.ConditionalOperator = &v
 20499  	return s
 20500  }
 20501  
 20502  // SetConsistentRead sets the ConsistentRead field's value.
 20503  func (s *ScanInput) SetConsistentRead(v bool) *ScanInput {
 20504  	s.ConsistentRead = &v
 20505  	return s
 20506  }
 20507  
 20508  // SetExclusiveStartKey sets the ExclusiveStartKey field's value.
 20509  func (s *ScanInput) SetExclusiveStartKey(v map[string]*AttributeValue) *ScanInput {
 20510  	s.ExclusiveStartKey = v
 20511  	return s
 20512  }
 20513  
 20514  // SetExpressionAttributeNames sets the ExpressionAttributeNames field's value.
 20515  func (s *ScanInput) SetExpressionAttributeNames(v map[string]*string) *ScanInput {
 20516  	s.ExpressionAttributeNames = v
 20517  	return s
 20518  }
 20519  
 20520  // SetExpressionAttributeValues sets the ExpressionAttributeValues field's value.
 20521  func (s *ScanInput) SetExpressionAttributeValues(v map[string]*AttributeValue) *ScanInput {
 20522  	s.ExpressionAttributeValues = v
 20523  	return s
 20524  }
 20525  
 20526  // SetFilterExpression sets the FilterExpression field's value.
 20527  func (s *ScanInput) SetFilterExpression(v string) *ScanInput {
 20528  	s.FilterExpression = &v
 20529  	return s
 20530  }
 20531  
 20532  // SetIndexName sets the IndexName field's value.
 20533  func (s *ScanInput) SetIndexName(v string) *ScanInput {
 20534  	s.IndexName = &v
 20535  	return s
 20536  }
 20537  
 20538  // SetLimit sets the Limit field's value.
 20539  func (s *ScanInput) SetLimit(v int64) *ScanInput {
 20540  	s.Limit = &v
 20541  	return s
 20542  }
 20543  
 20544  // SetProjectionExpression sets the ProjectionExpression field's value.
 20545  func (s *ScanInput) SetProjectionExpression(v string) *ScanInput {
 20546  	s.ProjectionExpression = &v
 20547  	return s
 20548  }
 20549  
 20550  // SetReturnConsumedCapacity sets the ReturnConsumedCapacity field's value.
 20551  func (s *ScanInput) SetReturnConsumedCapacity(v string) *ScanInput {
 20552  	s.ReturnConsumedCapacity = &v
 20553  	return s
 20554  }
 20555  
 20556  // SetScanFilter sets the ScanFilter field's value.
 20557  func (s *ScanInput) SetScanFilter(v map[string]*Condition) *ScanInput {
 20558  	s.ScanFilter = v
 20559  	return s
 20560  }
 20561  
 20562  // SetSegment sets the Segment field's value.
 20563  func (s *ScanInput) SetSegment(v int64) *ScanInput {
 20564  	s.Segment = &v
 20565  	return s
 20566  }
 20567  
 20568  // SetSelect sets the Select field's value.
 20569  func (s *ScanInput) SetSelect(v string) *ScanInput {
 20570  	s.Select = &v
 20571  	return s
 20572  }
 20573  
 20574  // SetTableName sets the TableName field's value.
 20575  func (s *ScanInput) SetTableName(v string) *ScanInput {
 20576  	s.TableName = &v
 20577  	return s
 20578  }
 20579  
 20580  // SetTotalSegments sets the TotalSegments field's value.
 20581  func (s *ScanInput) SetTotalSegments(v int64) *ScanInput {
 20582  	s.TotalSegments = &v
 20583  	return s
 20584  }
 20585  
 20586  // Represents the output of a Scan operation.
 20587  type ScanOutput struct {
 20588  	_ struct{} `type:"structure"`
 20589  
 20590  	// The capacity units consumed by the Scan operation. The data returned includes
 20591  	// the total provisioned throughput consumed, along with statistics for the
 20592  	// table and any indexes involved in the operation. ConsumedCapacity is only
 20593  	// returned if the ReturnConsumedCapacity parameter was specified. For more
 20594  	// information, see Provisioned Throughput (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html)
 20595  	// in the Amazon DynamoDB Developer Guide.
 20596  	ConsumedCapacity *ConsumedCapacity `type:"structure"`
 20597  
 20598  	// The number of items in the response.
 20599  	//
 20600  	// If you set ScanFilter in the request, then Count is the number of items returned
 20601  	// after the filter was applied, and ScannedCount is the number of matching
 20602  	// items before the filter was applied.
 20603  	//
 20604  	// If you did not use a filter in the request, then Count is the same as ScannedCount.
 20605  	Count *int64 `type:"integer"`
 20606  
 20607  	// An array of item attributes that match the scan criteria. Each element in
 20608  	// this array consists of an attribute name and the value for that attribute.
 20609  	Items []map[string]*AttributeValue `type:"list"`
 20610  
 20611  	// The primary key of the item where the operation stopped, inclusive of the
 20612  	// previous result set. Use this value to start a new operation, excluding this
 20613  	// value in the new request.
 20614  	//
 20615  	// If LastEvaluatedKey is empty, then the "last page" of results has been processed
 20616  	// and there is no more data to be retrieved.
 20617  	//
 20618  	// If LastEvaluatedKey is not empty, it does not necessarily mean that there
 20619  	// is more data in the result set. The only way to know when you have reached
 20620  	// the end of the result set is when LastEvaluatedKey is empty.
 20621  	LastEvaluatedKey map[string]*AttributeValue `type:"map"`
 20622  
 20623  	// The number of items evaluated, before any ScanFilter is applied. A high ScannedCount
 20624  	// value with few, or no, Count results indicates an inefficient Scan operation.
 20625  	// For more information, see Count and ScannedCount (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#Count)
 20626  	// in the Amazon DynamoDB Developer Guide.
 20627  	//
 20628  	// If you did not use a filter in the request, then ScannedCount is the same
 20629  	// as Count.
 20630  	ScannedCount *int64 `type:"integer"`
 20631  }
 20632  
 20633  // String returns the string representation.
 20634  //
 20635  // API parameter values that are decorated as "sensitive" in the API will not
 20636  // be included in the string output. The member name will be present, but the
 20637  // value will be replaced with "sensitive".
 20638  func (s ScanOutput) String() string {
 20639  	return awsutil.Prettify(s)
 20640  }
 20641  
 20642  // GoString returns the string representation.
 20643  //
 20644  // API parameter values that are decorated as "sensitive" in the API will not
 20645  // be included in the string output. The member name will be present, but the
 20646  // value will be replaced with "sensitive".
 20647  func (s ScanOutput) GoString() string {
 20648  	return s.String()
 20649  }
 20650  
 20651  // SetConsumedCapacity sets the ConsumedCapacity field's value.
 20652  func (s *ScanOutput) SetConsumedCapacity(v *ConsumedCapacity) *ScanOutput {
 20653  	s.ConsumedCapacity = v
 20654  	return s
 20655  }
 20656  
 20657  // SetCount sets the Count field's value.
 20658  func (s *ScanOutput) SetCount(v int64) *ScanOutput {
 20659  	s.Count = &v
 20660  	return s
 20661  }
 20662  
 20663  // SetItems sets the Items field's value.
 20664  func (s *ScanOutput) SetItems(v []map[string]*AttributeValue) *ScanOutput {
 20665  	s.Items = v
 20666  	return s
 20667  }
 20668  
 20669  // SetLastEvaluatedKey sets the LastEvaluatedKey field's value.
 20670  func (s *ScanOutput) SetLastEvaluatedKey(v map[string]*AttributeValue) *ScanOutput {
 20671  	s.LastEvaluatedKey = v
 20672  	return s
 20673  }
 20674  
 20675  // SetScannedCount sets the ScannedCount field's value.
 20676  func (s *ScanOutput) SetScannedCount(v int64) *ScanOutput {
 20677  	s.ScannedCount = &v
 20678  	return s
 20679  }
 20680  
 20681  // Contains the details of the table when the backup was created.
 20682  type SourceTableDetails struct {
 20683  	_ struct{} `type:"structure"`
 20684  
 20685  	// Controls how you are charged for read and write throughput and how you manage
 20686  	// capacity. This setting can be changed later.
 20687  	//
 20688  	//    * PROVISIONED - Sets the read/write capacity mode to PROVISIONED. We recommend
 20689  	//    using PROVISIONED for predictable workloads.
 20690  	//
 20691  	//    * PAY_PER_REQUEST - Sets the read/write capacity mode to PAY_PER_REQUEST.
 20692  	//    We recommend using PAY_PER_REQUEST for unpredictable workloads.
 20693  	BillingMode *string `type:"string" enum:"BillingMode"`
 20694  
 20695  	// Number of items in the table. Note that this is an approximate value.
 20696  	ItemCount *int64 `type:"long"`
 20697  
 20698  	// Schema of the table.
 20699  	//
 20700  	// KeySchema is a required field
 20701  	KeySchema []*KeySchemaElement `min:"1" type:"list" required:"true"`
 20702  
 20703  	// Read IOPs and Write IOPS on the table when the backup was created.
 20704  	//
 20705  	// ProvisionedThroughput is a required field
 20706  	ProvisionedThroughput *ProvisionedThroughput `type:"structure" required:"true"`
 20707  
 20708  	// ARN of the table for which backup was created.
 20709  	TableArn *string `type:"string"`
 20710  
 20711  	// Time when the source table was created.
 20712  	//
 20713  	// TableCreationDateTime is a required field
 20714  	TableCreationDateTime *time.Time `type:"timestamp" required:"true"`
 20715  
 20716  	// Unique identifier for the table for which the backup was created.
 20717  	//
 20718  	// TableId is a required field
 20719  	TableId *string `type:"string" required:"true"`
 20720  
 20721  	// The name of the table for which the backup was created.
 20722  	//
 20723  	// TableName is a required field
 20724  	TableName *string `min:"3" type:"string" required:"true"`
 20725  
 20726  	// Size of the table in bytes. Note that this is an approximate value.
 20727  	TableSizeBytes *int64 `type:"long"`
 20728  }
 20729  
 20730  // String returns the string representation.
 20731  //
 20732  // API parameter values that are decorated as "sensitive" in the API will not
 20733  // be included in the string output. The member name will be present, but the
 20734  // value will be replaced with "sensitive".
 20735  func (s SourceTableDetails) String() string {
 20736  	return awsutil.Prettify(s)
 20737  }
 20738  
 20739  // GoString returns the string representation.
 20740  //
 20741  // API parameter values that are decorated as "sensitive" in the API will not
 20742  // be included in the string output. The member name will be present, but the
 20743  // value will be replaced with "sensitive".
 20744  func (s SourceTableDetails) GoString() string {
 20745  	return s.String()
 20746  }
 20747  
 20748  // SetBillingMode sets the BillingMode field's value.
 20749  func (s *SourceTableDetails) SetBillingMode(v string) *SourceTableDetails {
 20750  	s.BillingMode = &v
 20751  	return s
 20752  }
 20753  
 20754  // SetItemCount sets the ItemCount field's value.
 20755  func (s *SourceTableDetails) SetItemCount(v int64) *SourceTableDetails {
 20756  	s.ItemCount = &v
 20757  	return s
 20758  }
 20759  
 20760  // SetKeySchema sets the KeySchema field's value.
 20761  func (s *SourceTableDetails) SetKeySchema(v []*KeySchemaElement) *SourceTableDetails {
 20762  	s.KeySchema = v
 20763  	return s
 20764  }
 20765  
 20766  // SetProvisionedThroughput sets the ProvisionedThroughput field's value.
 20767  func (s *SourceTableDetails) SetProvisionedThroughput(v *ProvisionedThroughput) *SourceTableDetails {
 20768  	s.ProvisionedThroughput = v
 20769  	return s
 20770  }
 20771  
 20772  // SetTableArn sets the TableArn field's value.
 20773  func (s *SourceTableDetails) SetTableArn(v string) *SourceTableDetails {
 20774  	s.TableArn = &v
 20775  	return s
 20776  }
 20777  
 20778  // SetTableCreationDateTime sets the TableCreationDateTime field's value.
 20779  func (s *SourceTableDetails) SetTableCreationDateTime(v time.Time) *SourceTableDetails {
 20780  	s.TableCreationDateTime = &v
 20781  	return s
 20782  }
 20783  
 20784  // SetTableId sets the TableId field's value.
 20785  func (s *SourceTableDetails) SetTableId(v string) *SourceTableDetails {
 20786  	s.TableId = &v
 20787  	return s
 20788  }
 20789  
 20790  // SetTableName sets the TableName field's value.
 20791  func (s *SourceTableDetails) SetTableName(v string) *SourceTableDetails {
 20792  	s.TableName = &v
 20793  	return s
 20794  }
 20795  
 20796  // SetTableSizeBytes sets the TableSizeBytes field's value.
 20797  func (s *SourceTableDetails) SetTableSizeBytes(v int64) *SourceTableDetails {
 20798  	s.TableSizeBytes = &v
 20799  	return s
 20800  }
 20801  
 20802  // Contains the details of the features enabled on the table when the backup
 20803  // was created. For example, LSIs, GSIs, streams, TTL.
 20804  type SourceTableFeatureDetails struct {
 20805  	_ struct{} `type:"structure"`
 20806  
 20807  	// Represents the GSI properties for the table when the backup was created.
 20808  	// It includes the IndexName, KeySchema, Projection, and ProvisionedThroughput
 20809  	// for the GSIs on the table at the time of backup.
 20810  	GlobalSecondaryIndexes []*GlobalSecondaryIndexInfo `type:"list"`
 20811  
 20812  	// Represents the LSI properties for the table when the backup was created.
 20813  	// It includes the IndexName, KeySchema and Projection for the LSIs on the table
 20814  	// at the time of backup.
 20815  	LocalSecondaryIndexes []*LocalSecondaryIndexInfo `type:"list"`
 20816  
 20817  	// The description of the server-side encryption status on the table when the
 20818  	// backup was created.
 20819  	SSEDescription *SSEDescription `type:"structure"`
 20820  
 20821  	// Stream settings on the table when the backup was created.
 20822  	StreamDescription *StreamSpecification `type:"structure"`
 20823  
 20824  	// Time to Live settings on the table when the backup was created.
 20825  	TimeToLiveDescription *TimeToLiveDescription `type:"structure"`
 20826  }
 20827  
 20828  // String returns the string representation.
 20829  //
 20830  // API parameter values that are decorated as "sensitive" in the API will not
 20831  // be included in the string output. The member name will be present, but the
 20832  // value will be replaced with "sensitive".
 20833  func (s SourceTableFeatureDetails) String() string {
 20834  	return awsutil.Prettify(s)
 20835  }
 20836  
 20837  // GoString returns the string representation.
 20838  //
 20839  // API parameter values that are decorated as "sensitive" in the API will not
 20840  // be included in the string output. The member name will be present, but the
 20841  // value will be replaced with "sensitive".
 20842  func (s SourceTableFeatureDetails) GoString() string {
 20843  	return s.String()
 20844  }
 20845  
 20846  // SetGlobalSecondaryIndexes sets the GlobalSecondaryIndexes field's value.
 20847  func (s *SourceTableFeatureDetails) SetGlobalSecondaryIndexes(v []*GlobalSecondaryIndexInfo) *SourceTableFeatureDetails {
 20848  	s.GlobalSecondaryIndexes = v
 20849  	return s
 20850  }
 20851  
 20852  // SetLocalSecondaryIndexes sets the LocalSecondaryIndexes field's value.
 20853  func (s *SourceTableFeatureDetails) SetLocalSecondaryIndexes(v []*LocalSecondaryIndexInfo) *SourceTableFeatureDetails {
 20854  	s.LocalSecondaryIndexes = v
 20855  	return s
 20856  }
 20857  
 20858  // SetSSEDescription sets the SSEDescription field's value.
 20859  func (s *SourceTableFeatureDetails) SetSSEDescription(v *SSEDescription) *SourceTableFeatureDetails {
 20860  	s.SSEDescription = v
 20861  	return s
 20862  }
 20863  
 20864  // SetStreamDescription sets the StreamDescription field's value.
 20865  func (s *SourceTableFeatureDetails) SetStreamDescription(v *StreamSpecification) *SourceTableFeatureDetails {
 20866  	s.StreamDescription = v
 20867  	return s
 20868  }
 20869  
 20870  // SetTimeToLiveDescription sets the TimeToLiveDescription field's value.
 20871  func (s *SourceTableFeatureDetails) SetTimeToLiveDescription(v *TimeToLiveDescription) *SourceTableFeatureDetails {
 20872  	s.TimeToLiveDescription = v
 20873  	return s
 20874  }
 20875  
 20876  // Represents the DynamoDB Streams configuration for a table in DynamoDB.
 20877  type StreamSpecification struct {
 20878  	_ struct{} `type:"structure"`
 20879  
 20880  	// Indicates whether DynamoDB Streams is enabled (true) or disabled (false)
 20881  	// on the table.
 20882  	//
 20883  	// StreamEnabled is a required field
 20884  	StreamEnabled *bool `type:"boolean" required:"true"`
 20885  
 20886  	// When an item in the table is modified, StreamViewType determines what information
 20887  	// is written to the stream for this table. Valid values for StreamViewType
 20888  	// are:
 20889  	//
 20890  	//    * KEYS_ONLY - Only the key attributes of the modified item are written
 20891  	//    to the stream.
 20892  	//
 20893  	//    * NEW_IMAGE - The entire item, as it appears after it was modified, is
 20894  	//    written to the stream.
 20895  	//
 20896  	//    * OLD_IMAGE - The entire item, as it appeared before it was modified,
 20897  	//    is written to the stream.
 20898  	//
 20899  	//    * NEW_AND_OLD_IMAGES - Both the new and the old item images of the item
 20900  	//    are written to the stream.
 20901  	StreamViewType *string `type:"string" enum:"StreamViewType"`
 20902  }
 20903  
 20904  // String returns the string representation.
 20905  //
 20906  // API parameter values that are decorated as "sensitive" in the API will not
 20907  // be included in the string output. The member name will be present, but the
 20908  // value will be replaced with "sensitive".
 20909  func (s StreamSpecification) String() string {
 20910  	return awsutil.Prettify(s)
 20911  }
 20912  
 20913  // GoString returns the string representation.
 20914  //
 20915  // API parameter values that are decorated as "sensitive" in the API will not
 20916  // be included in the string output. The member name will be present, but the
 20917  // value will be replaced with "sensitive".
 20918  func (s StreamSpecification) GoString() string {
 20919  	return s.String()
 20920  }
 20921  
 20922  // Validate inspects the fields of the type to determine if they are valid.
 20923  func (s *StreamSpecification) Validate() error {
 20924  	invalidParams := request.ErrInvalidParams{Context: "StreamSpecification"}
 20925  	if s.StreamEnabled == nil {
 20926  		invalidParams.Add(request.NewErrParamRequired("StreamEnabled"))
 20927  	}
 20928  
 20929  	if invalidParams.Len() > 0 {
 20930  		return invalidParams
 20931  	}
 20932  	return nil
 20933  }
 20934  
 20935  // SetStreamEnabled sets the StreamEnabled field's value.
 20936  func (s *StreamSpecification) SetStreamEnabled(v bool) *StreamSpecification {
 20937  	s.StreamEnabled = &v
 20938  	return s
 20939  }
 20940  
 20941  // SetStreamViewType sets the StreamViewType field's value.
 20942  func (s *StreamSpecification) SetStreamViewType(v string) *StreamSpecification {
 20943  	s.StreamViewType = &v
 20944  	return s
 20945  }
 20946  
 20947  // A target table with the specified name already exists.
 20948  type TableAlreadyExistsException struct {
 20949  	_            struct{}                  `type:"structure"`
 20950  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 20951  
 20952  	Message_ *string `locationName:"message" type:"string"`
 20953  }
 20954  
 20955  // String returns the string representation.
 20956  //
 20957  // API parameter values that are decorated as "sensitive" in the API will not
 20958  // be included in the string output. The member name will be present, but the
 20959  // value will be replaced with "sensitive".
 20960  func (s TableAlreadyExistsException) String() string {
 20961  	return awsutil.Prettify(s)
 20962  }
 20963  
 20964  // GoString returns the string representation.
 20965  //
 20966  // API parameter values that are decorated as "sensitive" in the API will not
 20967  // be included in the string output. The member name will be present, but the
 20968  // value will be replaced with "sensitive".
 20969  func (s TableAlreadyExistsException) GoString() string {
 20970  	return s.String()
 20971  }
 20972  
 20973  func newErrorTableAlreadyExistsException(v protocol.ResponseMetadata) error {
 20974  	return &TableAlreadyExistsException{
 20975  		RespMetadata: v,
 20976  	}
 20977  }
 20978  
 20979  // Code returns the exception type name.
 20980  func (s *TableAlreadyExistsException) Code() string {
 20981  	return "TableAlreadyExistsException"
 20982  }
 20983  
 20984  // Message returns the exception's message.
 20985  func (s *TableAlreadyExistsException) Message() string {
 20986  	if s.Message_ != nil {
 20987  		return *s.Message_
 20988  	}
 20989  	return ""
 20990  }
 20991  
 20992  // OrigErr always returns nil, satisfies awserr.Error interface.
 20993  func (s *TableAlreadyExistsException) OrigErr() error {
 20994  	return nil
 20995  }
 20996  
 20997  func (s *TableAlreadyExistsException) Error() string {
 20998  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 20999  }
 21000  
 21001  // Status code returns the HTTP status code for the request's response error.
 21002  func (s *TableAlreadyExistsException) StatusCode() int {
 21003  	return s.RespMetadata.StatusCode
 21004  }
 21005  
 21006  // RequestID returns the service's response RequestID for request.
 21007  func (s *TableAlreadyExistsException) RequestID() string {
 21008  	return s.RespMetadata.RequestID
 21009  }
 21010  
 21011  // Represents the auto scaling configuration for a global table.
 21012  type TableAutoScalingDescription struct {
 21013  	_ struct{} `type:"structure"`
 21014  
 21015  	// Represents replicas of the global table.
 21016  	Replicas []*ReplicaAutoScalingDescription `type:"list"`
 21017  
 21018  	// The name of the table.
 21019  	TableName *string `min:"3" type:"string"`
 21020  
 21021  	// The current state of the table:
 21022  	//
 21023  	//    * CREATING - The table is being created.
 21024  	//
 21025  	//    * UPDATING - The table is being updated.
 21026  	//
 21027  	//    * DELETING - The table is being deleted.
 21028  	//
 21029  	//    * ACTIVE - The table is ready for use.
 21030  	TableStatus *string `type:"string" enum:"TableStatus"`
 21031  }
 21032  
 21033  // String returns the string representation.
 21034  //
 21035  // API parameter values that are decorated as "sensitive" in the API will not
 21036  // be included in the string output. The member name will be present, but the
 21037  // value will be replaced with "sensitive".
 21038  func (s TableAutoScalingDescription) String() string {
 21039  	return awsutil.Prettify(s)
 21040  }
 21041  
 21042  // GoString returns the string representation.
 21043  //
 21044  // API parameter values that are decorated as "sensitive" in the API will not
 21045  // be included in the string output. The member name will be present, but the
 21046  // value will be replaced with "sensitive".
 21047  func (s TableAutoScalingDescription) GoString() string {
 21048  	return s.String()
 21049  }
 21050  
 21051  // SetReplicas sets the Replicas field's value.
 21052  func (s *TableAutoScalingDescription) SetReplicas(v []*ReplicaAutoScalingDescription) *TableAutoScalingDescription {
 21053  	s.Replicas = v
 21054  	return s
 21055  }
 21056  
 21057  // SetTableName sets the TableName field's value.
 21058  func (s *TableAutoScalingDescription) SetTableName(v string) *TableAutoScalingDescription {
 21059  	s.TableName = &v
 21060  	return s
 21061  }
 21062  
 21063  // SetTableStatus sets the TableStatus field's value.
 21064  func (s *TableAutoScalingDescription) SetTableStatus(v string) *TableAutoScalingDescription {
 21065  	s.TableStatus = &v
 21066  	return s
 21067  }
 21068  
 21069  // Represents the properties of a table.
 21070  type TableDescription struct {
 21071  	_ struct{} `type:"structure"`
 21072  
 21073  	// Contains information about the table archive.
 21074  	ArchivalSummary *ArchivalSummary `type:"structure"`
 21075  
 21076  	// An array of AttributeDefinition objects. Each of these objects describes
 21077  	// one attribute in the table and index key schema.
 21078  	//
 21079  	// Each AttributeDefinition object in this array is composed of:
 21080  	//
 21081  	//    * AttributeName - The name of the attribute.
 21082  	//
 21083  	//    * AttributeType - The data type for the attribute.
 21084  	AttributeDefinitions []*AttributeDefinition `type:"list"`
 21085  
 21086  	// Contains the details for the read/write capacity mode.
 21087  	BillingModeSummary *BillingModeSummary `type:"structure"`
 21088  
 21089  	// The date and time when the table was created, in UNIX epoch time (http://www.epochconverter.com/)
 21090  	// format.
 21091  	CreationDateTime *time.Time `type:"timestamp"`
 21092  
 21093  	// The global secondary indexes, if any, on the table. Each index is scoped
 21094  	// to a given partition key value. Each element is composed of:
 21095  	//
 21096  	//    * Backfilling - If true, then the index is currently in the backfilling
 21097  	//    phase. Backfilling occurs only when a new global secondary index is added
 21098  	//    to the table. It is the process by which DynamoDB populates the new index
 21099  	//    with data from the table. (This attribute does not appear for indexes
 21100  	//    that were created during a CreateTable operation.) You can delete an index
 21101  	//    that is being created during the Backfilling phase when IndexStatus is
 21102  	//    set to CREATING and Backfilling is true. You can't delete the index that
 21103  	//    is being created when IndexStatus is set to CREATING and Backfilling is
 21104  	//    false. (This attribute does not appear for indexes that were created during
 21105  	//    a CreateTable operation.)
 21106  	//
 21107  	//    * IndexName - The name of the global secondary index.
 21108  	//
 21109  	//    * IndexSizeBytes - The total size of the global secondary index, in bytes.
 21110  	//    DynamoDB updates this value approximately every six hours. Recent changes
 21111  	//    might not be reflected in this value.
 21112  	//
 21113  	//    * IndexStatus - The current status of the global secondary index: CREATING
 21114  	//    - The index is being created. UPDATING - The index is being updated. DELETING
 21115  	//    - The index is being deleted. ACTIVE - The index is ready for use.
 21116  	//
 21117  	//    * ItemCount - The number of items in the global secondary index. DynamoDB
 21118  	//    updates this value approximately every six hours. Recent changes might
 21119  	//    not be reflected in this value.
 21120  	//
 21121  	//    * KeySchema - Specifies the complete index key schema. The attribute names
 21122  	//    in the key schema must be between 1 and 255 characters (inclusive). The
 21123  	//    key schema must begin with the same partition key as the table.
 21124  	//
 21125  	//    * Projection - Specifies attributes that are copied (projected) from the
 21126  	//    table into the index. These are in addition to the primary key attributes
 21127  	//    and index key attributes, which are automatically projected. Each attribute
 21128  	//    specification is composed of: ProjectionType - One of the following: KEYS_ONLY
 21129  	//    - Only the index and primary keys are projected into the index. INCLUDE
 21130  	//    - In addition to the attributes described in KEYS_ONLY, the secondary
 21131  	//    index will include other non-key attributes that you specify. ALL - All
 21132  	//    of the table attributes are projected into the index. NonKeyAttributes
 21133  	//    - A list of one or more non-key attribute names that are projected into
 21134  	//    the secondary index. The total count of attributes provided in NonKeyAttributes,
 21135  	//    summed across all of the secondary indexes, must not exceed 20. If you
 21136  	//    project the same attribute into two different indexes, this counts as
 21137  	//    two distinct attributes when determining the total.
 21138  	//
 21139  	//    * ProvisionedThroughput - The provisioned throughput settings for the
 21140  	//    global secondary index, consisting of read and write capacity units, along
 21141  	//    with data about increases and decreases.
 21142  	//
 21143  	// If the table is in the DELETING state, no information about indexes will
 21144  	// be returned.
 21145  	GlobalSecondaryIndexes []*GlobalSecondaryIndexDescription `type:"list"`
 21146  
 21147  	// Represents the version of global tables (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GlobalTables.html)
 21148  	// in use, if the table is replicated across AWS Regions.
 21149  	GlobalTableVersion *string `type:"string"`
 21150  
 21151  	// The number of items in the specified table. DynamoDB updates this value approximately
 21152  	// every six hours. Recent changes might not be reflected in this value.
 21153  	ItemCount *int64 `type:"long"`
 21154  
 21155  	// The primary key structure for the table. Each KeySchemaElement consists of:
 21156  	//
 21157  	//    * AttributeName - The name of the attribute.
 21158  	//
 21159  	//    * KeyType - The role of the attribute: HASH - partition key RANGE - sort
 21160  	//    key The partition key of an item is also known as its hash attribute.
 21161  	//    The term "hash attribute" derives from DynamoDB's usage of an internal
 21162  	//    hash function to evenly distribute data items across partitions, based
 21163  	//    on their partition key values. The sort key of an item is also known as
 21164  	//    its range attribute. The term "range attribute" derives from the way DynamoDB
 21165  	//    stores items with the same partition key physically close together, in
 21166  	//    sorted order by the sort key value.
 21167  	//
 21168  	// For more information about primary keys, see Primary Key (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModelPrimaryKey)
 21169  	// in the Amazon DynamoDB Developer Guide.
 21170  	KeySchema []*KeySchemaElement `min:"1" type:"list"`
 21171  
 21172  	// The Amazon Resource Name (ARN) that uniquely identifies the latest stream
 21173  	// for this table.
 21174  	LatestStreamArn *string `min:"37" type:"string"`
 21175  
 21176  	// A timestamp, in ISO 8601 format, for this stream.
 21177  	//
 21178  	// Note that LatestStreamLabel is not a unique identifier for the stream, because
 21179  	// it is possible that a stream from another table might have the same timestamp.
 21180  	// However, the combination of the following three elements is guaranteed to
 21181  	// be unique:
 21182  	//
 21183  	//    * AWS customer ID
 21184  	//
 21185  	//    * Table name
 21186  	//
 21187  	//    * StreamLabel
 21188  	LatestStreamLabel *string `type:"string"`
 21189  
 21190  	// Represents one or more local secondary indexes on the table. Each index is
 21191  	// scoped to a given partition key value. Tables with one or more local secondary
 21192  	// indexes are subject to an item collection size limit, where the amount of
 21193  	// data within a given item collection cannot exceed 10 GB. Each element is
 21194  	// composed of:
 21195  	//
 21196  	//    * IndexName - The name of the local secondary index.
 21197  	//
 21198  	//    * KeySchema - Specifies the complete index key schema. The attribute names
 21199  	//    in the key schema must be between 1 and 255 characters (inclusive). The
 21200  	//    key schema must begin with the same partition key as the table.
 21201  	//
 21202  	//    * Projection - Specifies attributes that are copied (projected) from the
 21203  	//    table into the index. These are in addition to the primary key attributes
 21204  	//    and index key attributes, which are automatically projected. Each attribute
 21205  	//    specification is composed of: ProjectionType - One of the following: KEYS_ONLY
 21206  	//    - Only the index and primary keys are projected into the index. INCLUDE
 21207  	//    - Only the specified table attributes are projected into the index. The
 21208  	//    list of projected attributes is in NonKeyAttributes. ALL - All of the
 21209  	//    table attributes are projected into the index. NonKeyAttributes - A list
 21210  	//    of one or more non-key attribute names that are projected into the secondary
 21211  	//    index. The total count of attributes provided in NonKeyAttributes, summed
 21212  	//    across all of the secondary indexes, must not exceed 20. If you project
 21213  	//    the same attribute into two different indexes, this counts as two distinct
 21214  	//    attributes when determining the total.
 21215  	//
 21216  	//    * IndexSizeBytes - Represents the total size of the index, in bytes. DynamoDB
 21217  	//    updates this value approximately every six hours. Recent changes might
 21218  	//    not be reflected in this value.
 21219  	//
 21220  	//    * ItemCount - Represents the number of items in the index. DynamoDB updates
 21221  	//    this value approximately every six hours. Recent changes might not be
 21222  	//    reflected in this value.
 21223  	//
 21224  	// If the table is in the DELETING state, no information about indexes will
 21225  	// be returned.
 21226  	LocalSecondaryIndexes []*LocalSecondaryIndexDescription `type:"list"`
 21227  
 21228  	// The provisioned throughput settings for the table, consisting of read and
 21229  	// write capacity units, along with data about increases and decreases.
 21230  	ProvisionedThroughput *ProvisionedThroughputDescription `type:"structure"`
 21231  
 21232  	// Represents replicas of the table.
 21233  	Replicas []*ReplicaDescription `type:"list"`
 21234  
 21235  	// Contains details for the restore.
 21236  	RestoreSummary *RestoreSummary `type:"structure"`
 21237  
 21238  	// The description of the server-side encryption status on the specified table.
 21239  	SSEDescription *SSEDescription `type:"structure"`
 21240  
 21241  	// The current DynamoDB Streams configuration for the table.
 21242  	StreamSpecification *StreamSpecification `type:"structure"`
 21243  
 21244  	// The Amazon Resource Name (ARN) that uniquely identifies the table.
 21245  	TableArn *string `type:"string"`
 21246  
 21247  	// Unique identifier for the table for which the backup was created.
 21248  	TableId *string `type:"string"`
 21249  
 21250  	// The name of the table.
 21251  	TableName *string `min:"3" type:"string"`
 21252  
 21253  	// The total size of the specified table, in bytes. DynamoDB updates this value
 21254  	// approximately every six hours. Recent changes might not be reflected in this
 21255  	// value.
 21256  	TableSizeBytes *int64 `type:"long"`
 21257  
 21258  	// The current state of the table:
 21259  	//
 21260  	//    * CREATING - The table is being created.
 21261  	//
 21262  	//    * UPDATING - The table is being updated.
 21263  	//
 21264  	//    * DELETING - The table is being deleted.
 21265  	//
 21266  	//    * ACTIVE - The table is ready for use.
 21267  	//
 21268  	//    * INACCESSIBLE_ENCRYPTION_CREDENTIALS - The AWS KMS key used to encrypt
 21269  	//    the table in inaccessible. Table operations may fail due to failure to
 21270  	//    use the AWS KMS key. DynamoDB will initiate the table archival process
 21271  	//    when a table's AWS KMS key remains inaccessible for more than seven days.
 21272  	//
 21273  	//    * ARCHIVING - The table is being archived. Operations are not allowed
 21274  	//    until archival is complete.
 21275  	//
 21276  	//    * ARCHIVED - The table has been archived. See the ArchivalReason for more
 21277  	//    information.
 21278  	TableStatus *string `type:"string" enum:"TableStatus"`
 21279  }
 21280  
 21281  // String returns the string representation.
 21282  //
 21283  // API parameter values that are decorated as "sensitive" in the API will not
 21284  // be included in the string output. The member name will be present, but the
 21285  // value will be replaced with "sensitive".
 21286  func (s TableDescription) String() string {
 21287  	return awsutil.Prettify(s)
 21288  }
 21289  
 21290  // GoString returns the string representation.
 21291  //
 21292  // API parameter values that are decorated as "sensitive" in the API will not
 21293  // be included in the string output. The member name will be present, but the
 21294  // value will be replaced with "sensitive".
 21295  func (s TableDescription) GoString() string {
 21296  	return s.String()
 21297  }
 21298  
 21299  // SetArchivalSummary sets the ArchivalSummary field's value.
 21300  func (s *TableDescription) SetArchivalSummary(v *ArchivalSummary) *TableDescription {
 21301  	s.ArchivalSummary = v
 21302  	return s
 21303  }
 21304  
 21305  // SetAttributeDefinitions sets the AttributeDefinitions field's value.
 21306  func (s *TableDescription) SetAttributeDefinitions(v []*AttributeDefinition) *TableDescription {
 21307  	s.AttributeDefinitions = v
 21308  	return s
 21309  }
 21310  
 21311  // SetBillingModeSummary sets the BillingModeSummary field's value.
 21312  func (s *TableDescription) SetBillingModeSummary(v *BillingModeSummary) *TableDescription {
 21313  	s.BillingModeSummary = v
 21314  	return s
 21315  }
 21316  
 21317  // SetCreationDateTime sets the CreationDateTime field's value.
 21318  func (s *TableDescription) SetCreationDateTime(v time.Time) *TableDescription {
 21319  	s.CreationDateTime = &v
 21320  	return s
 21321  }
 21322  
 21323  // SetGlobalSecondaryIndexes sets the GlobalSecondaryIndexes field's value.
 21324  func (s *TableDescription) SetGlobalSecondaryIndexes(v []*GlobalSecondaryIndexDescription) *TableDescription {
 21325  	s.GlobalSecondaryIndexes = v
 21326  	return s
 21327  }
 21328  
 21329  // SetGlobalTableVersion sets the GlobalTableVersion field's value.
 21330  func (s *TableDescription) SetGlobalTableVersion(v string) *TableDescription {
 21331  	s.GlobalTableVersion = &v
 21332  	return s
 21333  }
 21334  
 21335  // SetItemCount sets the ItemCount field's value.
 21336  func (s *TableDescription) SetItemCount(v int64) *TableDescription {
 21337  	s.ItemCount = &v
 21338  	return s
 21339  }
 21340  
 21341  // SetKeySchema sets the KeySchema field's value.
 21342  func (s *TableDescription) SetKeySchema(v []*KeySchemaElement) *TableDescription {
 21343  	s.KeySchema = v
 21344  	return s
 21345  }
 21346  
 21347  // SetLatestStreamArn sets the LatestStreamArn field's value.
 21348  func (s *TableDescription) SetLatestStreamArn(v string) *TableDescription {
 21349  	s.LatestStreamArn = &v
 21350  	return s
 21351  }
 21352  
 21353  // SetLatestStreamLabel sets the LatestStreamLabel field's value.
 21354  func (s *TableDescription) SetLatestStreamLabel(v string) *TableDescription {
 21355  	s.LatestStreamLabel = &v
 21356  	return s
 21357  }
 21358  
 21359  // SetLocalSecondaryIndexes sets the LocalSecondaryIndexes field's value.
 21360  func (s *TableDescription) SetLocalSecondaryIndexes(v []*LocalSecondaryIndexDescription) *TableDescription {
 21361  	s.LocalSecondaryIndexes = v
 21362  	return s
 21363  }
 21364  
 21365  // SetProvisionedThroughput sets the ProvisionedThroughput field's value.
 21366  func (s *TableDescription) SetProvisionedThroughput(v *ProvisionedThroughputDescription) *TableDescription {
 21367  	s.ProvisionedThroughput = v
 21368  	return s
 21369  }
 21370  
 21371  // SetReplicas sets the Replicas field's value.
 21372  func (s *TableDescription) SetReplicas(v []*ReplicaDescription) *TableDescription {
 21373  	s.Replicas = v
 21374  	return s
 21375  }
 21376  
 21377  // SetRestoreSummary sets the RestoreSummary field's value.
 21378  func (s *TableDescription) SetRestoreSummary(v *RestoreSummary) *TableDescription {
 21379  	s.RestoreSummary = v
 21380  	return s
 21381  }
 21382  
 21383  // SetSSEDescription sets the SSEDescription field's value.
 21384  func (s *TableDescription) SetSSEDescription(v *SSEDescription) *TableDescription {
 21385  	s.SSEDescription = v
 21386  	return s
 21387  }
 21388  
 21389  // SetStreamSpecification sets the StreamSpecification field's value.
 21390  func (s *TableDescription) SetStreamSpecification(v *StreamSpecification) *TableDescription {
 21391  	s.StreamSpecification = v
 21392  	return s
 21393  }
 21394  
 21395  // SetTableArn sets the TableArn field's value.
 21396  func (s *TableDescription) SetTableArn(v string) *TableDescription {
 21397  	s.TableArn = &v
 21398  	return s
 21399  }
 21400  
 21401  // SetTableId sets the TableId field's value.
 21402  func (s *TableDescription) SetTableId(v string) *TableDescription {
 21403  	s.TableId = &v
 21404  	return s
 21405  }
 21406  
 21407  // SetTableName sets the TableName field's value.
 21408  func (s *TableDescription) SetTableName(v string) *TableDescription {
 21409  	s.TableName = &v
 21410  	return s
 21411  }
 21412  
 21413  // SetTableSizeBytes sets the TableSizeBytes field's value.
 21414  func (s *TableDescription) SetTableSizeBytes(v int64) *TableDescription {
 21415  	s.TableSizeBytes = &v
 21416  	return s
 21417  }
 21418  
 21419  // SetTableStatus sets the TableStatus field's value.
 21420  func (s *TableDescription) SetTableStatus(v string) *TableDescription {
 21421  	s.TableStatus = &v
 21422  	return s
 21423  }
 21424  
 21425  // A target table with the specified name is either being created or deleted.
 21426  type TableInUseException struct {
 21427  	_            struct{}                  `type:"structure"`
 21428  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 21429  
 21430  	Message_ *string `locationName:"message" type:"string"`
 21431  }
 21432  
 21433  // String returns the string representation.
 21434  //
 21435  // API parameter values that are decorated as "sensitive" in the API will not
 21436  // be included in the string output. The member name will be present, but the
 21437  // value will be replaced with "sensitive".
 21438  func (s TableInUseException) String() string {
 21439  	return awsutil.Prettify(s)
 21440  }
 21441  
 21442  // GoString returns the string representation.
 21443  //
 21444  // API parameter values that are decorated as "sensitive" in the API will not
 21445  // be included in the string output. The member name will be present, but the
 21446  // value will be replaced with "sensitive".
 21447  func (s TableInUseException) GoString() string {
 21448  	return s.String()
 21449  }
 21450  
 21451  func newErrorTableInUseException(v protocol.ResponseMetadata) error {
 21452  	return &TableInUseException{
 21453  		RespMetadata: v,
 21454  	}
 21455  }
 21456  
 21457  // Code returns the exception type name.
 21458  func (s *TableInUseException) Code() string {
 21459  	return "TableInUseException"
 21460  }
 21461  
 21462  // Message returns the exception's message.
 21463  func (s *TableInUseException) Message() string {
 21464  	if s.Message_ != nil {
 21465  		return *s.Message_
 21466  	}
 21467  	return ""
 21468  }
 21469  
 21470  // OrigErr always returns nil, satisfies awserr.Error interface.
 21471  func (s *TableInUseException) OrigErr() error {
 21472  	return nil
 21473  }
 21474  
 21475  func (s *TableInUseException) Error() string {
 21476  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 21477  }
 21478  
 21479  // Status code returns the HTTP status code for the request's response error.
 21480  func (s *TableInUseException) StatusCode() int {
 21481  	return s.RespMetadata.StatusCode
 21482  }
 21483  
 21484  // RequestID returns the service's response RequestID for request.
 21485  func (s *TableInUseException) RequestID() string {
 21486  	return s.RespMetadata.RequestID
 21487  }
 21488  
 21489  // A source table with the name TableName does not currently exist within the
 21490  // subscriber's account.
 21491  type TableNotFoundException struct {
 21492  	_            struct{}                  `type:"structure"`
 21493  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 21494  
 21495  	Message_ *string `locationName:"message" type:"string"`
 21496  }
 21497  
 21498  // String returns the string representation.
 21499  //
 21500  // API parameter values that are decorated as "sensitive" in the API will not
 21501  // be included in the string output. The member name will be present, but the
 21502  // value will be replaced with "sensitive".
 21503  func (s TableNotFoundException) String() string {
 21504  	return awsutil.Prettify(s)
 21505  }
 21506  
 21507  // GoString returns the string representation.
 21508  //
 21509  // API parameter values that are decorated as "sensitive" in the API will not
 21510  // be included in the string output. The member name will be present, but the
 21511  // value will be replaced with "sensitive".
 21512  func (s TableNotFoundException) GoString() string {
 21513  	return s.String()
 21514  }
 21515  
 21516  func newErrorTableNotFoundException(v protocol.ResponseMetadata) error {
 21517  	return &TableNotFoundException{
 21518  		RespMetadata: v,
 21519  	}
 21520  }
 21521  
 21522  // Code returns the exception type name.
 21523  func (s *TableNotFoundException) Code() string {
 21524  	return "TableNotFoundException"
 21525  }
 21526  
 21527  // Message returns the exception's message.
 21528  func (s *TableNotFoundException) Message() string {
 21529  	if s.Message_ != nil {
 21530  		return *s.Message_
 21531  	}
 21532  	return ""
 21533  }
 21534  
 21535  // OrigErr always returns nil, satisfies awserr.Error interface.
 21536  func (s *TableNotFoundException) OrigErr() error {
 21537  	return nil
 21538  }
 21539  
 21540  func (s *TableNotFoundException) Error() string {
 21541  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 21542  }
 21543  
 21544  // Status code returns the HTTP status code for the request's response error.
 21545  func (s *TableNotFoundException) StatusCode() int {
 21546  	return s.RespMetadata.StatusCode
 21547  }
 21548  
 21549  // RequestID returns the service's response RequestID for request.
 21550  func (s *TableNotFoundException) RequestID() string {
 21551  	return s.RespMetadata.RequestID
 21552  }
 21553  
 21554  // Describes a tag. A tag is a key-value pair. You can add up to 50 tags to
 21555  // a single DynamoDB table.
 21556  //
 21557  // AWS-assigned tag names and values are automatically assigned the aws: prefix,
 21558  // which the user cannot assign. AWS-assigned tag names do not count towards
 21559  // the tag limit of 50. User-assigned tag names have the prefix user: in the
 21560  // Cost Allocation Report. You cannot backdate the application of a tag.
 21561  //
 21562  // For an overview on tagging DynamoDB resources, see Tagging for DynamoDB (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html)
 21563  // in the Amazon DynamoDB Developer Guide.
 21564  type Tag struct {
 21565  	_ struct{} `type:"structure"`
 21566  
 21567  	// The key of the tag. Tag keys are case sensitive. Each DynamoDB table can
 21568  	// only have up to one tag with the same key. If you try to add an existing
 21569  	// tag (same key), the existing tag value will be updated to the new value.
 21570  	//
 21571  	// Key is a required field
 21572  	Key *string `min:"1" type:"string" required:"true"`
 21573  
 21574  	// The value of the tag. Tag values are case-sensitive and can be null.
 21575  	//
 21576  	// Value is a required field
 21577  	Value *string `type:"string" required:"true"`
 21578  }
 21579  
 21580  // String returns the string representation.
 21581  //
 21582  // API parameter values that are decorated as "sensitive" in the API will not
 21583  // be included in the string output. The member name will be present, but the
 21584  // value will be replaced with "sensitive".
 21585  func (s Tag) String() string {
 21586  	return awsutil.Prettify(s)
 21587  }
 21588  
 21589  // GoString returns the string representation.
 21590  //
 21591  // API parameter values that are decorated as "sensitive" in the API will not
 21592  // be included in the string output. The member name will be present, but the
 21593  // value will be replaced with "sensitive".
 21594  func (s Tag) GoString() string {
 21595  	return s.String()
 21596  }
 21597  
 21598  // Validate inspects the fields of the type to determine if they are valid.
 21599  func (s *Tag) Validate() error {
 21600  	invalidParams := request.ErrInvalidParams{Context: "Tag"}
 21601  	if s.Key == nil {
 21602  		invalidParams.Add(request.NewErrParamRequired("Key"))
 21603  	}
 21604  	if s.Key != nil && len(*s.Key) < 1 {
 21605  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
 21606  	}
 21607  	if s.Value == nil {
 21608  		invalidParams.Add(request.NewErrParamRequired("Value"))
 21609  	}
 21610  
 21611  	if invalidParams.Len() > 0 {
 21612  		return invalidParams
 21613  	}
 21614  	return nil
 21615  }
 21616  
 21617  // SetKey sets the Key field's value.
 21618  func (s *Tag) SetKey(v string) *Tag {
 21619  	s.Key = &v
 21620  	return s
 21621  }
 21622  
 21623  // SetValue sets the Value field's value.
 21624  func (s *Tag) SetValue(v string) *Tag {
 21625  	s.Value = &v
 21626  	return s
 21627  }
 21628  
 21629  type TagResourceInput struct {
 21630  	_ struct{} `type:"structure"`
 21631  
 21632  	// Identifies the Amazon DynamoDB resource to which tags should be added. This
 21633  	// value is an Amazon Resource Name (ARN).
 21634  	//
 21635  	// ResourceArn is a required field
 21636  	ResourceArn *string `min:"1" type:"string" required:"true"`
 21637  
 21638  	// The tags to be assigned to the Amazon DynamoDB resource.
 21639  	//
 21640  	// Tags is a required field
 21641  	Tags []*Tag `type:"list" required:"true"`
 21642  }
 21643  
 21644  // String returns the string representation.
 21645  //
 21646  // API parameter values that are decorated as "sensitive" in the API will not
 21647  // be included in the string output. The member name will be present, but the
 21648  // value will be replaced with "sensitive".
 21649  func (s TagResourceInput) String() string {
 21650  	return awsutil.Prettify(s)
 21651  }
 21652  
 21653  // GoString returns the string representation.
 21654  //
 21655  // API parameter values that are decorated as "sensitive" in the API will not
 21656  // be included in the string output. The member name will be present, but the
 21657  // value will be replaced with "sensitive".
 21658  func (s TagResourceInput) GoString() string {
 21659  	return s.String()
 21660  }
 21661  
 21662  // Validate inspects the fields of the type to determine if they are valid.
 21663  func (s *TagResourceInput) Validate() error {
 21664  	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
 21665  	if s.ResourceArn == nil {
 21666  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
 21667  	}
 21668  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
 21669  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
 21670  	}
 21671  	if s.Tags == nil {
 21672  		invalidParams.Add(request.NewErrParamRequired("Tags"))
 21673  	}
 21674  	if s.Tags != nil {
 21675  		for i, v := range s.Tags {
 21676  			if v == nil {
 21677  				continue
 21678  			}
 21679  			if err := v.Validate(); err != nil {
 21680  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 21681  			}
 21682  		}
 21683  	}
 21684  
 21685  	if invalidParams.Len() > 0 {
 21686  		return invalidParams
 21687  	}
 21688  	return nil
 21689  }
 21690  
 21691  // SetResourceArn sets the ResourceArn field's value.
 21692  func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
 21693  	s.ResourceArn = &v
 21694  	return s
 21695  }
 21696  
 21697  // SetTags sets the Tags field's value.
 21698  func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
 21699  	s.Tags = v
 21700  	return s
 21701  }
 21702  
 21703  type TagResourceOutput struct {
 21704  	_ struct{} `type:"structure"`
 21705  }
 21706  
 21707  // String returns the string representation.
 21708  //
 21709  // API parameter values that are decorated as "sensitive" in the API will not
 21710  // be included in the string output. The member name will be present, but the
 21711  // value will be replaced with "sensitive".
 21712  func (s TagResourceOutput) String() string {
 21713  	return awsutil.Prettify(s)
 21714  }
 21715  
 21716  // GoString returns the string representation.
 21717  //
 21718  // API parameter values that are decorated as "sensitive" in the API will not
 21719  // be included in the string output. The member name will be present, but the
 21720  // value will be replaced with "sensitive".
 21721  func (s TagResourceOutput) GoString() string {
 21722  	return s.String()
 21723  }
 21724  
 21725  // The description of the Time to Live (TTL) status on the specified table.
 21726  type TimeToLiveDescription struct {
 21727  	_ struct{} `type:"structure"`
 21728  
 21729  	// The name of the TTL attribute for items in the table.
 21730  	AttributeName *string `min:"1" type:"string"`
 21731  
 21732  	// The TTL status for the table.
 21733  	TimeToLiveStatus *string `type:"string" enum:"TimeToLiveStatus"`
 21734  }
 21735  
 21736  // String returns the string representation.
 21737  //
 21738  // API parameter values that are decorated as "sensitive" in the API will not
 21739  // be included in the string output. The member name will be present, but the
 21740  // value will be replaced with "sensitive".
 21741  func (s TimeToLiveDescription) String() string {
 21742  	return awsutil.Prettify(s)
 21743  }
 21744  
 21745  // GoString returns the string representation.
 21746  //
 21747  // API parameter values that are decorated as "sensitive" in the API will not
 21748  // be included in the string output. The member name will be present, but the
 21749  // value will be replaced with "sensitive".
 21750  func (s TimeToLiveDescription) GoString() string {
 21751  	return s.String()
 21752  }
 21753  
 21754  // SetAttributeName sets the AttributeName field's value.
 21755  func (s *TimeToLiveDescription) SetAttributeName(v string) *TimeToLiveDescription {
 21756  	s.AttributeName = &v
 21757  	return s
 21758  }
 21759  
 21760  // SetTimeToLiveStatus sets the TimeToLiveStatus field's value.
 21761  func (s *TimeToLiveDescription) SetTimeToLiveStatus(v string) *TimeToLiveDescription {
 21762  	s.TimeToLiveStatus = &v
 21763  	return s
 21764  }
 21765  
 21766  // Represents the settings used to enable or disable Time to Live (TTL) for
 21767  // the specified table.
 21768  type TimeToLiveSpecification struct {
 21769  	_ struct{} `type:"structure"`
 21770  
 21771  	// The name of the TTL attribute used to store the expiration time for items
 21772  	// in the table.
 21773  	//
 21774  	// AttributeName is a required field
 21775  	AttributeName *string `min:"1" type:"string" required:"true"`
 21776  
 21777  	// Indicates whether TTL is to be enabled (true) or disabled (false) on the
 21778  	// table.
 21779  	//
 21780  	// Enabled is a required field
 21781  	Enabled *bool `type:"boolean" required:"true"`
 21782  }
 21783  
 21784  // String returns the string representation.
 21785  //
 21786  // API parameter values that are decorated as "sensitive" in the API will not
 21787  // be included in the string output. The member name will be present, but the
 21788  // value will be replaced with "sensitive".
 21789  func (s TimeToLiveSpecification) String() string {
 21790  	return awsutil.Prettify(s)
 21791  }
 21792  
 21793  // GoString returns the string representation.
 21794  //
 21795  // API parameter values that are decorated as "sensitive" in the API will not
 21796  // be included in the string output. The member name will be present, but the
 21797  // value will be replaced with "sensitive".
 21798  func (s TimeToLiveSpecification) GoString() string {
 21799  	return s.String()
 21800  }
 21801  
 21802  // Validate inspects the fields of the type to determine if they are valid.
 21803  func (s *TimeToLiveSpecification) Validate() error {
 21804  	invalidParams := request.ErrInvalidParams{Context: "TimeToLiveSpecification"}
 21805  	if s.AttributeName == nil {
 21806  		invalidParams.Add(request.NewErrParamRequired("AttributeName"))
 21807  	}
 21808  	if s.AttributeName != nil && len(*s.AttributeName) < 1 {
 21809  		invalidParams.Add(request.NewErrParamMinLen("AttributeName", 1))
 21810  	}
 21811  	if s.Enabled == nil {
 21812  		invalidParams.Add(request.NewErrParamRequired("Enabled"))
 21813  	}
 21814  
 21815  	if invalidParams.Len() > 0 {
 21816  		return invalidParams
 21817  	}
 21818  	return nil
 21819  }
 21820  
 21821  // SetAttributeName sets the AttributeName field's value.
 21822  func (s *TimeToLiveSpecification) SetAttributeName(v string) *TimeToLiveSpecification {
 21823  	s.AttributeName = &v
 21824  	return s
 21825  }
 21826  
 21827  // SetEnabled sets the Enabled field's value.
 21828  func (s *TimeToLiveSpecification) SetEnabled(v bool) *TimeToLiveSpecification {
 21829  	s.Enabled = &v
 21830  	return s
 21831  }
 21832  
 21833  // Specifies an item to be retrieved as part of the transaction.
 21834  type TransactGetItem struct {
 21835  	_ struct{} `type:"structure"`
 21836  
 21837  	// Contains the primary key that identifies the item to get, together with the
 21838  	// name of the table that contains the item, and optionally the specific attributes
 21839  	// of the item to retrieve.
 21840  	//
 21841  	// Get is a required field
 21842  	Get *Get `type:"structure" required:"true"`
 21843  }
 21844  
 21845  // String returns the string representation.
 21846  //
 21847  // API parameter values that are decorated as "sensitive" in the API will not
 21848  // be included in the string output. The member name will be present, but the
 21849  // value will be replaced with "sensitive".
 21850  func (s TransactGetItem) String() string {
 21851  	return awsutil.Prettify(s)
 21852  }
 21853  
 21854  // GoString returns the string representation.
 21855  //
 21856  // API parameter values that are decorated as "sensitive" in the API will not
 21857  // be included in the string output. The member name will be present, but the
 21858  // value will be replaced with "sensitive".
 21859  func (s TransactGetItem) GoString() string {
 21860  	return s.String()
 21861  }
 21862  
 21863  // Validate inspects the fields of the type to determine if they are valid.
 21864  func (s *TransactGetItem) Validate() error {
 21865  	invalidParams := request.ErrInvalidParams{Context: "TransactGetItem"}
 21866  	if s.Get == nil {
 21867  		invalidParams.Add(request.NewErrParamRequired("Get"))
 21868  	}
 21869  	if s.Get != nil {
 21870  		if err := s.Get.Validate(); err != nil {
 21871  			invalidParams.AddNested("Get", err.(request.ErrInvalidParams))
 21872  		}
 21873  	}
 21874  
 21875  	if invalidParams.Len() > 0 {
 21876  		return invalidParams
 21877  	}
 21878  	return nil
 21879  }
 21880  
 21881  // SetGet sets the Get field's value.
 21882  func (s *TransactGetItem) SetGet(v *Get) *TransactGetItem {
 21883  	s.Get = v
 21884  	return s
 21885  }
 21886  
 21887  type TransactGetItemsInput struct {
 21888  	_ struct{} `type:"structure"`
 21889  
 21890  	// A value of TOTAL causes consumed capacity information to be returned, and
 21891  	// a value of NONE prevents that information from being returned. No other value
 21892  	// is valid.
 21893  	ReturnConsumedCapacity *string `type:"string" enum:"ReturnConsumedCapacity"`
 21894  
 21895  	// An ordered array of up to 25 TransactGetItem objects, each of which contains
 21896  	// a Get structure.
 21897  	//
 21898  	// TransactItems is a required field
 21899  	TransactItems []*TransactGetItem `min:"1" type:"list" required:"true"`
 21900  }
 21901  
 21902  // String returns the string representation.
 21903  //
 21904  // API parameter values that are decorated as "sensitive" in the API will not
 21905  // be included in the string output. The member name will be present, but the
 21906  // value will be replaced with "sensitive".
 21907  func (s TransactGetItemsInput) String() string {
 21908  	return awsutil.Prettify(s)
 21909  }
 21910  
 21911  // GoString returns the string representation.
 21912  //
 21913  // API parameter values that are decorated as "sensitive" in the API will not
 21914  // be included in the string output. The member name will be present, but the
 21915  // value will be replaced with "sensitive".
 21916  func (s TransactGetItemsInput) GoString() string {
 21917  	return s.String()
 21918  }
 21919  
 21920  // Validate inspects the fields of the type to determine if they are valid.
 21921  func (s *TransactGetItemsInput) Validate() error {
 21922  	invalidParams := request.ErrInvalidParams{Context: "TransactGetItemsInput"}
 21923  	if s.TransactItems == nil {
 21924  		invalidParams.Add(request.NewErrParamRequired("TransactItems"))
 21925  	}
 21926  	if s.TransactItems != nil && len(s.TransactItems) < 1 {
 21927  		invalidParams.Add(request.NewErrParamMinLen("TransactItems", 1))
 21928  	}
 21929  	if s.TransactItems != nil {
 21930  		for i, v := range s.TransactItems {
 21931  			if v == nil {
 21932  				continue
 21933  			}
 21934  			if err := v.Validate(); err != nil {
 21935  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TransactItems", i), err.(request.ErrInvalidParams))
 21936  			}
 21937  		}
 21938  	}
 21939  
 21940  	if invalidParams.Len() > 0 {
 21941  		return invalidParams
 21942  	}
 21943  	return nil
 21944  }
 21945  
 21946  // SetReturnConsumedCapacity sets the ReturnConsumedCapacity field's value.
 21947  func (s *TransactGetItemsInput) SetReturnConsumedCapacity(v string) *TransactGetItemsInput {
 21948  	s.ReturnConsumedCapacity = &v
 21949  	return s
 21950  }
 21951  
 21952  // SetTransactItems sets the TransactItems field's value.
 21953  func (s *TransactGetItemsInput) SetTransactItems(v []*TransactGetItem) *TransactGetItemsInput {
 21954  	s.TransactItems = v
 21955  	return s
 21956  }
 21957  
 21958  type TransactGetItemsOutput struct {
 21959  	_ struct{} `type:"structure"`
 21960  
 21961  	// If the ReturnConsumedCapacity value was TOTAL, this is an array of ConsumedCapacity
 21962  	// objects, one for each table addressed by TransactGetItem objects in the TransactItems
 21963  	// parameter. These ConsumedCapacity objects report the read-capacity units
 21964  	// consumed by the TransactGetItems call in that table.
 21965  	ConsumedCapacity []*ConsumedCapacity `type:"list"`
 21966  
 21967  	// An ordered array of up to 25 ItemResponse objects, each of which corresponds
 21968  	// to the TransactGetItem object in the same position in the TransactItems array.
 21969  	// Each ItemResponse object contains a Map of the name-value pairs that are
 21970  	// the projected attributes of the requested item.
 21971  	//
 21972  	// If a requested item could not be retrieved, the corresponding ItemResponse
 21973  	// object is Null, or if the requested item has no projected attributes, the
 21974  	// corresponding ItemResponse object is an empty Map.
 21975  	Responses []*ItemResponse `min:"1" type:"list"`
 21976  }
 21977  
 21978  // String returns the string representation.
 21979  //
 21980  // API parameter values that are decorated as "sensitive" in the API will not
 21981  // be included in the string output. The member name will be present, but the
 21982  // value will be replaced with "sensitive".
 21983  func (s TransactGetItemsOutput) String() string {
 21984  	return awsutil.Prettify(s)
 21985  }
 21986  
 21987  // GoString returns the string representation.
 21988  //
 21989  // API parameter values that are decorated as "sensitive" in the API will not
 21990  // be included in the string output. The member name will be present, but the
 21991  // value will be replaced with "sensitive".
 21992  func (s TransactGetItemsOutput) GoString() string {
 21993  	return s.String()
 21994  }
 21995  
 21996  // SetConsumedCapacity sets the ConsumedCapacity field's value.
 21997  func (s *TransactGetItemsOutput) SetConsumedCapacity(v []*ConsumedCapacity) *TransactGetItemsOutput {
 21998  	s.ConsumedCapacity = v
 21999  	return s
 22000  }
 22001  
 22002  // SetResponses sets the Responses field's value.
 22003  func (s *TransactGetItemsOutput) SetResponses(v []*ItemResponse) *TransactGetItemsOutput {
 22004  	s.Responses = v
 22005  	return s
 22006  }
 22007  
 22008  // A list of requests that can perform update, put, delete, or check operations
 22009  // on multiple items in one or more tables atomically.
 22010  type TransactWriteItem struct {
 22011  	_ struct{} `type:"structure"`
 22012  
 22013  	// A request to perform a check item operation.
 22014  	ConditionCheck *ConditionCheck `type:"structure"`
 22015  
 22016  	// A request to perform a DeleteItem operation.
 22017  	Delete *Delete `type:"structure"`
 22018  
 22019  	// A request to perform a PutItem operation.
 22020  	Put *Put `type:"structure"`
 22021  
 22022  	// A request to perform an UpdateItem operation.
 22023  	Update *Update `type:"structure"`
 22024  }
 22025  
 22026  // String returns the string representation.
 22027  //
 22028  // API parameter values that are decorated as "sensitive" in the API will not
 22029  // be included in the string output. The member name will be present, but the
 22030  // value will be replaced with "sensitive".
 22031  func (s TransactWriteItem) String() string {
 22032  	return awsutil.Prettify(s)
 22033  }
 22034  
 22035  // GoString returns the string representation.
 22036  //
 22037  // API parameter values that are decorated as "sensitive" in the API will not
 22038  // be included in the string output. The member name will be present, but the
 22039  // value will be replaced with "sensitive".
 22040  func (s TransactWriteItem) GoString() string {
 22041  	return s.String()
 22042  }
 22043  
 22044  // Validate inspects the fields of the type to determine if they are valid.
 22045  func (s *TransactWriteItem) Validate() error {
 22046  	invalidParams := request.ErrInvalidParams{Context: "TransactWriteItem"}
 22047  	if s.ConditionCheck != nil {
 22048  		if err := s.ConditionCheck.Validate(); err != nil {
 22049  			invalidParams.AddNested("ConditionCheck", err.(request.ErrInvalidParams))
 22050  		}
 22051  	}
 22052  	if s.Delete != nil {
 22053  		if err := s.Delete.Validate(); err != nil {
 22054  			invalidParams.AddNested("Delete", err.(request.ErrInvalidParams))
 22055  		}
 22056  	}
 22057  	if s.Put != nil {
 22058  		if err := s.Put.Validate(); err != nil {
 22059  			invalidParams.AddNested("Put", err.(request.ErrInvalidParams))
 22060  		}
 22061  	}
 22062  	if s.Update != nil {
 22063  		if err := s.Update.Validate(); err != nil {
 22064  			invalidParams.AddNested("Update", err.(request.ErrInvalidParams))
 22065  		}
 22066  	}
 22067  
 22068  	if invalidParams.Len() > 0 {
 22069  		return invalidParams
 22070  	}
 22071  	return nil
 22072  }
 22073  
 22074  // SetConditionCheck sets the ConditionCheck field's value.
 22075  func (s *TransactWriteItem) SetConditionCheck(v *ConditionCheck) *TransactWriteItem {
 22076  	s.ConditionCheck = v
 22077  	return s
 22078  }
 22079  
 22080  // SetDelete sets the Delete field's value.
 22081  func (s *TransactWriteItem) SetDelete(v *Delete) *TransactWriteItem {
 22082  	s.Delete = v
 22083  	return s
 22084  }
 22085  
 22086  // SetPut sets the Put field's value.
 22087  func (s *TransactWriteItem) SetPut(v *Put) *TransactWriteItem {
 22088  	s.Put = v
 22089  	return s
 22090  }
 22091  
 22092  // SetUpdate sets the Update field's value.
 22093  func (s *TransactWriteItem) SetUpdate(v *Update) *TransactWriteItem {
 22094  	s.Update = v
 22095  	return s
 22096  }
 22097  
 22098  type TransactWriteItemsInput struct {
 22099  	_ struct{} `type:"structure"`
 22100  
 22101  	// Providing a ClientRequestToken makes the call to TransactWriteItems idempotent,
 22102  	// meaning that multiple identical calls have the same effect as one single
 22103  	// call.
 22104  	//
 22105  	// Although multiple identical calls using the same client request token produce
 22106  	// the same result on the server (no side effects), the responses to the calls
 22107  	// might not be the same. If the ReturnConsumedCapacity> parameter is set, then
 22108  	// the initial TransactWriteItems call returns the amount of write capacity
 22109  	// units consumed in making the changes. Subsequent TransactWriteItems calls
 22110  	// with the same client token return the number of read capacity units consumed
 22111  	// in reading the item.
 22112  	//
 22113  	// A client request token is valid for 10 minutes after the first request that
 22114  	// uses it is completed. After 10 minutes, any request with the same client
 22115  	// token is treated as a new request. Do not resubmit the same request with
 22116  	// the same client token for more than 10 minutes, or the result might not be
 22117  	// idempotent.
 22118  	//
 22119  	// If you submit a request with the same client token but a change in other
 22120  	// parameters within the 10-minute idempotency window, DynamoDB returns an IdempotentParameterMismatch
 22121  	// exception.
 22122  	ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"`
 22123  
 22124  	// Determines the level of detail about provisioned throughput consumption that
 22125  	// is returned in the response:
 22126  	//
 22127  	//    * INDEXES - The response includes the aggregate ConsumedCapacity for the
 22128  	//    operation, together with ConsumedCapacity for each table and secondary
 22129  	//    index that was accessed. Note that some operations, such as GetItem and
 22130  	//    BatchGetItem, do not access any indexes at all. In these cases, specifying
 22131  	//    INDEXES will only return ConsumedCapacity information for table(s).
 22132  	//
 22133  	//    * TOTAL - The response includes only the aggregate ConsumedCapacity for
 22134  	//    the operation.
 22135  	//
 22136  	//    * NONE - No ConsumedCapacity details are included in the response.
 22137  	ReturnConsumedCapacity *string `type:"string" enum:"ReturnConsumedCapacity"`
 22138  
 22139  	// Determines whether item collection metrics are returned. If set to SIZE,
 22140  	// the response includes statistics about item collections (if any), that were
 22141  	// modified during the operation and are returned in the response. If set to
 22142  	// NONE (the default), no statistics are returned.
 22143  	ReturnItemCollectionMetrics *string `type:"string" enum:"ReturnItemCollectionMetrics"`
 22144  
 22145  	// An ordered array of up to 25 TransactWriteItem objects, each of which contains
 22146  	// a ConditionCheck, Put, Update, or Delete object. These can operate on items
 22147  	// in different tables, but the tables must reside in the same AWS account and
 22148  	// Region, and no two of them can operate on the same item.
 22149  	//
 22150  	// TransactItems is a required field
 22151  	TransactItems []*TransactWriteItem `min:"1" type:"list" required:"true"`
 22152  }
 22153  
 22154  // String returns the string representation.
 22155  //
 22156  // API parameter values that are decorated as "sensitive" in the API will not
 22157  // be included in the string output. The member name will be present, but the
 22158  // value will be replaced with "sensitive".
 22159  func (s TransactWriteItemsInput) String() string {
 22160  	return awsutil.Prettify(s)
 22161  }
 22162  
 22163  // GoString returns the string representation.
 22164  //
 22165  // API parameter values that are decorated as "sensitive" in the API will not
 22166  // be included in the string output. The member name will be present, but the
 22167  // value will be replaced with "sensitive".
 22168  func (s TransactWriteItemsInput) GoString() string {
 22169  	return s.String()
 22170  }
 22171  
 22172  // Validate inspects the fields of the type to determine if they are valid.
 22173  func (s *TransactWriteItemsInput) Validate() error {
 22174  	invalidParams := request.ErrInvalidParams{Context: "TransactWriteItemsInput"}
 22175  	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
 22176  		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
 22177  	}
 22178  	if s.TransactItems == nil {
 22179  		invalidParams.Add(request.NewErrParamRequired("TransactItems"))
 22180  	}
 22181  	if s.TransactItems != nil && len(s.TransactItems) < 1 {
 22182  		invalidParams.Add(request.NewErrParamMinLen("TransactItems", 1))
 22183  	}
 22184  	if s.TransactItems != nil {
 22185  		for i, v := range s.TransactItems {
 22186  			if v == nil {
 22187  				continue
 22188  			}
 22189  			if err := v.Validate(); err != nil {
 22190  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TransactItems", i), err.(request.ErrInvalidParams))
 22191  			}
 22192  		}
 22193  	}
 22194  
 22195  	if invalidParams.Len() > 0 {
 22196  		return invalidParams
 22197  	}
 22198  	return nil
 22199  }
 22200  
 22201  // SetClientRequestToken sets the ClientRequestToken field's value.
 22202  func (s *TransactWriteItemsInput) SetClientRequestToken(v string) *TransactWriteItemsInput {
 22203  	s.ClientRequestToken = &v
 22204  	return s
 22205  }
 22206  
 22207  // SetReturnConsumedCapacity sets the ReturnConsumedCapacity field's value.
 22208  func (s *TransactWriteItemsInput) SetReturnConsumedCapacity(v string) *TransactWriteItemsInput {
 22209  	s.ReturnConsumedCapacity = &v
 22210  	return s
 22211  }
 22212  
 22213  // SetReturnItemCollectionMetrics sets the ReturnItemCollectionMetrics field's value.
 22214  func (s *TransactWriteItemsInput) SetReturnItemCollectionMetrics(v string) *TransactWriteItemsInput {
 22215  	s.ReturnItemCollectionMetrics = &v
 22216  	return s
 22217  }
 22218  
 22219  // SetTransactItems sets the TransactItems field's value.
 22220  func (s *TransactWriteItemsInput) SetTransactItems(v []*TransactWriteItem) *TransactWriteItemsInput {
 22221  	s.TransactItems = v
 22222  	return s
 22223  }
 22224  
 22225  type TransactWriteItemsOutput struct {
 22226  	_ struct{} `type:"structure"`
 22227  
 22228  	// The capacity units consumed by the entire TransactWriteItems operation. The
 22229  	// values of the list are ordered according to the ordering of the TransactItems
 22230  	// request parameter.
 22231  	ConsumedCapacity []*ConsumedCapacity `type:"list"`
 22232  
 22233  	// A list of tables that were processed by TransactWriteItems and, for each
 22234  	// table, information about any item collections that were affected by individual
 22235  	// UpdateItem, PutItem, or DeleteItem operations.
 22236  	ItemCollectionMetrics map[string][]*ItemCollectionMetrics `type:"map"`
 22237  }
 22238  
 22239  // String returns the string representation.
 22240  //
 22241  // API parameter values that are decorated as "sensitive" in the API will not
 22242  // be included in the string output. The member name will be present, but the
 22243  // value will be replaced with "sensitive".
 22244  func (s TransactWriteItemsOutput) String() string {
 22245  	return awsutil.Prettify(s)
 22246  }
 22247  
 22248  // GoString returns the string representation.
 22249  //
 22250  // API parameter values that are decorated as "sensitive" in the API will not
 22251  // be included in the string output. The member name will be present, but the
 22252  // value will be replaced with "sensitive".
 22253  func (s TransactWriteItemsOutput) GoString() string {
 22254  	return s.String()
 22255  }
 22256  
 22257  // SetConsumedCapacity sets the ConsumedCapacity field's value.
 22258  func (s *TransactWriteItemsOutput) SetConsumedCapacity(v []*ConsumedCapacity) *TransactWriteItemsOutput {
 22259  	s.ConsumedCapacity = v
 22260  	return s
 22261  }
 22262  
 22263  // SetItemCollectionMetrics sets the ItemCollectionMetrics field's value.
 22264  func (s *TransactWriteItemsOutput) SetItemCollectionMetrics(v map[string][]*ItemCollectionMetrics) *TransactWriteItemsOutput {
 22265  	s.ItemCollectionMetrics = v
 22266  	return s
 22267  }
 22268  
 22269  // The entire transaction request was canceled.
 22270  //
 22271  // DynamoDB cancels a TransactWriteItems request under the following circumstances:
 22272  //
 22273  //    * A condition in one of the condition expressions is not met.
 22274  //
 22275  //    * A table in the TransactWriteItems request is in a different account
 22276  //    or region.
 22277  //
 22278  //    * More than one action in the TransactWriteItems operation targets the
 22279  //    same item.
 22280  //
 22281  //    * There is insufficient provisioned capacity for the transaction to be
 22282  //    completed.
 22283  //
 22284  //    * An item size becomes too large (larger than 400 KB), or a local secondary
 22285  //    index (LSI) becomes too large, or a similar validation error occurs because
 22286  //    of changes made by the transaction.
 22287  //
 22288  //    * There is a user error, such as an invalid data format.
 22289  //
 22290  // DynamoDB cancels a TransactGetItems request under the following circumstances:
 22291  //
 22292  //    * There is an ongoing TransactGetItems operation that conflicts with a
 22293  //    concurrent PutItem, UpdateItem, DeleteItem or TransactWriteItems request.
 22294  //    In this case the TransactGetItems operation fails with a TransactionCanceledException.
 22295  //
 22296  //    * A table in the TransactGetItems request is in a different account or
 22297  //    region.
 22298  //
 22299  //    * There is insufficient provisioned capacity for the transaction to be
 22300  //    completed.
 22301  //
 22302  //    * There is a user error, such as an invalid data format.
 22303  //
 22304  // If using Java, DynamoDB lists the cancellation reasons on the CancellationReasons
 22305  // property. This property is not set for other languages. Transaction cancellation
 22306  // reasons are ordered in the order of requested items, if an item has no error
 22307  // it will have NONE code and Null message.
 22308  //
 22309  // Cancellation reason codes and possible error messages:
 22310  //
 22311  //    * No Errors: Code: NONE Message: null
 22312  //
 22313  //    * Conditional Check Failed: Code: ConditionalCheckFailed Message: The
 22314  //    conditional request failed.
 22315  //
 22316  //    * Item Collection Size Limit Exceeded: Code: ItemCollectionSizeLimitExceeded
 22317  //    Message: Collection size exceeded.
 22318  //
 22319  //    * Transaction Conflict: Code: TransactionConflict Message: Transaction
 22320  //    is ongoing for the item.
 22321  //
 22322  //    * Provisioned Throughput Exceeded: Code: ProvisionedThroughputExceeded
 22323  //    Messages: The level of configured provisioned throughput for the table
 22324  //    was exceeded. Consider increasing your provisioning level with the UpdateTable
 22325  //    API. This Message is received when provisioned throughput is exceeded
 22326  //    is on a provisioned DynamoDB table. The level of configured provisioned
 22327  //    throughput for one or more global secondary indexes of the table was exceeded.
 22328  //    Consider increasing your provisioning level for the under-provisioned
 22329  //    global secondary indexes with the UpdateTable API. This message is returned
 22330  //    when provisioned throughput is exceeded is on a provisioned GSI.
 22331  //
 22332  //    * Throttling Error: Code: ThrottlingError Messages: Throughput exceeds
 22333  //    the current capacity of your table or index. DynamoDB is automatically
 22334  //    scaling your table or index so please try again shortly. If exceptions
 22335  //    persist, check if you have a hot key: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-partition-key-design.html.
 22336  //    This message is returned when writes get throttled on an On-Demand table
 22337  //    as DynamoDB is automatically scaling the table. Throughput exceeds the
 22338  //    current capacity for one or more global secondary indexes. DynamoDB is
 22339  //    automatically scaling your index so please try again shortly. This message
 22340  //    is returned when when writes get throttled on an On-Demand GSI as DynamoDB
 22341  //    is automatically scaling the GSI.
 22342  //
 22343  //    * Validation Error: Code: ValidationError Messages: One or more parameter
 22344  //    values were invalid. The update expression attempted to update the secondary
 22345  //    index key beyond allowed size limits. The update expression attempted
 22346  //    to update the secondary index key to unsupported type. An operand in the
 22347  //    update expression has an incorrect data type. Item size to update has
 22348  //    exceeded the maximum allowed size. Number overflow. Attempting to store
 22349  //    a number with magnitude larger than supported range. Type mismatch for
 22350  //    attribute to update. Nesting Levels have exceeded supported limits. The
 22351  //    document path provided in the update expression is invalid for update.
 22352  //    The provided expression refers to an attribute that does not exist in
 22353  //    the item.
 22354  type TransactionCanceledException struct {
 22355  	_            struct{}                  `type:"structure"`
 22356  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 22357  
 22358  	// A list of cancellation reasons.
 22359  	CancellationReasons []*CancellationReason `min:"1" type:"list"`
 22360  
 22361  	Message_ *string `locationName:"Message" type:"string"`
 22362  }
 22363  
 22364  // String returns the string representation.
 22365  //
 22366  // API parameter values that are decorated as "sensitive" in the API will not
 22367  // be included in the string output. The member name will be present, but the
 22368  // value will be replaced with "sensitive".
 22369  func (s TransactionCanceledException) String() string {
 22370  	return awsutil.Prettify(s)
 22371  }
 22372  
 22373  // GoString returns the string representation.
 22374  //
 22375  // API parameter values that are decorated as "sensitive" in the API will not
 22376  // be included in the string output. The member name will be present, but the
 22377  // value will be replaced with "sensitive".
 22378  func (s TransactionCanceledException) GoString() string {
 22379  	return s.String()
 22380  }
 22381  
 22382  func newErrorTransactionCanceledException(v protocol.ResponseMetadata) error {
 22383  	return &TransactionCanceledException{
 22384  		RespMetadata: v,
 22385  	}
 22386  }
 22387  
 22388  // Code returns the exception type name.
 22389  func (s *TransactionCanceledException) Code() string {
 22390  	return "TransactionCanceledException"
 22391  }
 22392  
 22393  // Message returns the exception's message.
 22394  func (s *TransactionCanceledException) Message() string {
 22395  	if s.Message_ != nil {
 22396  		return *s.Message_
 22397  	}
 22398  	return ""
 22399  }
 22400  
 22401  // OrigErr always returns nil, satisfies awserr.Error interface.
 22402  func (s *TransactionCanceledException) OrigErr() error {
 22403  	return nil
 22404  }
 22405  
 22406  func (s *TransactionCanceledException) Error() string {
 22407  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
 22408  }
 22409  
 22410  // Status code returns the HTTP status code for the request's response error.
 22411  func (s *TransactionCanceledException) StatusCode() int {
 22412  	return s.RespMetadata.StatusCode
 22413  }
 22414  
 22415  // RequestID returns the service's response RequestID for request.
 22416  func (s *TransactionCanceledException) RequestID() string {
 22417  	return s.RespMetadata.RequestID
 22418  }
 22419  
 22420  // Operation was rejected because there is an ongoing transaction for the item.
 22421  type TransactionConflictException struct {
 22422  	_            struct{}                  `type:"structure"`
 22423  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 22424  
 22425  	Message_ *string `locationName:"message" type:"string"`
 22426  }
 22427  
 22428  // String returns the string representation.
 22429  //
 22430  // API parameter values that are decorated as "sensitive" in the API will not
 22431  // be included in the string output. The member name will be present, but the
 22432  // value will be replaced with "sensitive".
 22433  func (s TransactionConflictException) String() string {
 22434  	return awsutil.Prettify(s)
 22435  }
 22436  
 22437  // GoString returns the string representation.
 22438  //
 22439  // API parameter values that are decorated as "sensitive" in the API will not
 22440  // be included in the string output. The member name will be present, but the
 22441  // value will be replaced with "sensitive".
 22442  func (s TransactionConflictException) GoString() string {
 22443  	return s.String()
 22444  }
 22445  
 22446  func newErrorTransactionConflictException(v protocol.ResponseMetadata) error {
 22447  	return &TransactionConflictException{
 22448  		RespMetadata: v,
 22449  	}
 22450  }
 22451  
 22452  // Code returns the exception type name.
 22453  func (s *TransactionConflictException) Code() string {
 22454  	return "TransactionConflictException"
 22455  }
 22456  
 22457  // Message returns the exception's message.
 22458  func (s *TransactionConflictException) Message() string {
 22459  	if s.Message_ != nil {
 22460  		return *s.Message_
 22461  	}
 22462  	return ""
 22463  }
 22464  
 22465  // OrigErr always returns nil, satisfies awserr.Error interface.
 22466  func (s *TransactionConflictException) OrigErr() error {
 22467  	return nil
 22468  }
 22469  
 22470  func (s *TransactionConflictException) Error() string {
 22471  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 22472  }
 22473  
 22474  // Status code returns the HTTP status code for the request's response error.
 22475  func (s *TransactionConflictException) StatusCode() int {
 22476  	return s.RespMetadata.StatusCode
 22477  }
 22478  
 22479  // RequestID returns the service's response RequestID for request.
 22480  func (s *TransactionConflictException) RequestID() string {
 22481  	return s.RespMetadata.RequestID
 22482  }
 22483  
 22484  // The transaction with the given request token is already in progress.
 22485  type TransactionInProgressException struct {
 22486  	_            struct{}                  `type:"structure"`
 22487  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 22488  
 22489  	Message_ *string `locationName:"Message" type:"string"`
 22490  }
 22491  
 22492  // String returns the string representation.
 22493  //
 22494  // API parameter values that are decorated as "sensitive" in the API will not
 22495  // be included in the string output. The member name will be present, but the
 22496  // value will be replaced with "sensitive".
 22497  func (s TransactionInProgressException) String() string {
 22498  	return awsutil.Prettify(s)
 22499  }
 22500  
 22501  // GoString returns the string representation.
 22502  //
 22503  // API parameter values that are decorated as "sensitive" in the API will not
 22504  // be included in the string output. The member name will be present, but the
 22505  // value will be replaced with "sensitive".
 22506  func (s TransactionInProgressException) GoString() string {
 22507  	return s.String()
 22508  }
 22509  
 22510  func newErrorTransactionInProgressException(v protocol.ResponseMetadata) error {
 22511  	return &TransactionInProgressException{
 22512  		RespMetadata: v,
 22513  	}
 22514  }
 22515  
 22516  // Code returns the exception type name.
 22517  func (s *TransactionInProgressException) Code() string {
 22518  	return "TransactionInProgressException"
 22519  }
 22520  
 22521  // Message returns the exception's message.
 22522  func (s *TransactionInProgressException) Message() string {
 22523  	if s.Message_ != nil {
 22524  		return *s.Message_
 22525  	}
 22526  	return ""
 22527  }
 22528  
 22529  // OrigErr always returns nil, satisfies awserr.Error interface.
 22530  func (s *TransactionInProgressException) OrigErr() error {
 22531  	return nil
 22532  }
 22533  
 22534  func (s *TransactionInProgressException) Error() string {
 22535  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 22536  }
 22537  
 22538  // Status code returns the HTTP status code for the request's response error.
 22539  func (s *TransactionInProgressException) StatusCode() int {
 22540  	return s.RespMetadata.StatusCode
 22541  }
 22542  
 22543  // RequestID returns the service's response RequestID for request.
 22544  func (s *TransactionInProgressException) RequestID() string {
 22545  	return s.RespMetadata.RequestID
 22546  }
 22547  
 22548  type UntagResourceInput struct {
 22549  	_ struct{} `type:"structure"`
 22550  
 22551  	// The DynamoDB resource that the tags will be removed from. This value is an
 22552  	// Amazon Resource Name (ARN).
 22553  	//
 22554  	// ResourceArn is a required field
 22555  	ResourceArn *string `min:"1" type:"string" required:"true"`
 22556  
 22557  	// A list of tag keys. Existing tags of the resource whose keys are members
 22558  	// of this list will be removed from the DynamoDB resource.
 22559  	//
 22560  	// TagKeys is a required field
 22561  	TagKeys []*string `type:"list" required:"true"`
 22562  }
 22563  
 22564  // String returns the string representation.
 22565  //
 22566  // API parameter values that are decorated as "sensitive" in the API will not
 22567  // be included in the string output. The member name will be present, but the
 22568  // value will be replaced with "sensitive".
 22569  func (s UntagResourceInput) String() string {
 22570  	return awsutil.Prettify(s)
 22571  }
 22572  
 22573  // GoString returns the string representation.
 22574  //
 22575  // API parameter values that are decorated as "sensitive" in the API will not
 22576  // be included in the string output. The member name will be present, but the
 22577  // value will be replaced with "sensitive".
 22578  func (s UntagResourceInput) GoString() string {
 22579  	return s.String()
 22580  }
 22581  
 22582  // Validate inspects the fields of the type to determine if they are valid.
 22583  func (s *UntagResourceInput) Validate() error {
 22584  	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
 22585  	if s.ResourceArn == nil {
 22586  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
 22587  	}
 22588  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
 22589  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
 22590  	}
 22591  	if s.TagKeys == nil {
 22592  		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
 22593  	}
 22594  
 22595  	if invalidParams.Len() > 0 {
 22596  		return invalidParams
 22597  	}
 22598  	return nil
 22599  }
 22600  
 22601  // SetResourceArn sets the ResourceArn field's value.
 22602  func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
 22603  	s.ResourceArn = &v
 22604  	return s
 22605  }
 22606  
 22607  // SetTagKeys sets the TagKeys field's value.
 22608  func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
 22609  	s.TagKeys = v
 22610  	return s
 22611  }
 22612  
 22613  type UntagResourceOutput struct {
 22614  	_ struct{} `type:"structure"`
 22615  }
 22616  
 22617  // String returns the string representation.
 22618  //
 22619  // API parameter values that are decorated as "sensitive" in the API will not
 22620  // be included in the string output. The member name will be present, but the
 22621  // value will be replaced with "sensitive".
 22622  func (s UntagResourceOutput) String() string {
 22623  	return awsutil.Prettify(s)
 22624  }
 22625  
 22626  // GoString returns the string representation.
 22627  //
 22628  // API parameter values that are decorated as "sensitive" in the API will not
 22629  // be included in the string output. The member name will be present, but the
 22630  // value will be replaced with "sensitive".
 22631  func (s UntagResourceOutput) GoString() string {
 22632  	return s.String()
 22633  }
 22634  
 22635  // Represents a request to perform an UpdateItem operation.
 22636  type Update struct {
 22637  	_ struct{} `type:"structure"`
 22638  
 22639  	// A condition that must be satisfied in order for a conditional update to succeed.
 22640  	ConditionExpression *string `type:"string"`
 22641  
 22642  	// One or more substitution tokens for attribute names in an expression.
 22643  	ExpressionAttributeNames map[string]*string `type:"map"`
 22644  
 22645  	// One or more values that can be substituted in an expression.
 22646  	ExpressionAttributeValues map[string]*AttributeValue `type:"map"`
 22647  
 22648  	// The primary key of the item to be updated. Each element consists of an attribute
 22649  	// name and a value for that attribute.
 22650  	//
 22651  	// Key is a required field
 22652  	Key map[string]*AttributeValue `type:"map" required:"true"`
 22653  
 22654  	// Use ReturnValuesOnConditionCheckFailure to get the item attributes if the
 22655  	// Update condition fails. For ReturnValuesOnConditionCheckFailure, the valid
 22656  	// values are: NONE, ALL_OLD, UPDATED_OLD, ALL_NEW, UPDATED_NEW.
 22657  	ReturnValuesOnConditionCheckFailure *string `type:"string" enum:"ReturnValuesOnConditionCheckFailure"`
 22658  
 22659  	// Name of the table for the UpdateItem request.
 22660  	//
 22661  	// TableName is a required field
 22662  	TableName *string `min:"3" type:"string" required:"true"`
 22663  
 22664  	// An expression that defines one or more attributes to be updated, the action
 22665  	// to be performed on them, and new value(s) for them.
 22666  	//
 22667  	// UpdateExpression is a required field
 22668  	UpdateExpression *string `type:"string" required:"true"`
 22669  }
 22670  
 22671  // String returns the string representation.
 22672  //
 22673  // API parameter values that are decorated as "sensitive" in the API will not
 22674  // be included in the string output. The member name will be present, but the
 22675  // value will be replaced with "sensitive".
 22676  func (s Update) String() string {
 22677  	return awsutil.Prettify(s)
 22678  }
 22679  
 22680  // GoString returns the string representation.
 22681  //
 22682  // API parameter values that are decorated as "sensitive" in the API will not
 22683  // be included in the string output. The member name will be present, but the
 22684  // value will be replaced with "sensitive".
 22685  func (s Update) GoString() string {
 22686  	return s.String()
 22687  }
 22688  
 22689  // Validate inspects the fields of the type to determine if they are valid.
 22690  func (s *Update) Validate() error {
 22691  	invalidParams := request.ErrInvalidParams{Context: "Update"}
 22692  	if s.Key == nil {
 22693  		invalidParams.Add(request.NewErrParamRequired("Key"))
 22694  	}
 22695  	if s.TableName == nil {
 22696  		invalidParams.Add(request.NewErrParamRequired("TableName"))
 22697  	}
 22698  	if s.TableName != nil && len(*s.TableName) < 3 {
 22699  		invalidParams.Add(request.NewErrParamMinLen("TableName", 3))
 22700  	}
 22701  	if s.UpdateExpression == nil {
 22702  		invalidParams.Add(request.NewErrParamRequired("UpdateExpression"))
 22703  	}
 22704  
 22705  	if invalidParams.Len() > 0 {
 22706  		return invalidParams
 22707  	}
 22708  	return nil
 22709  }
 22710  
 22711  // SetConditionExpression sets the ConditionExpression field's value.
 22712  func (s *Update) SetConditionExpression(v string) *Update {
 22713  	s.ConditionExpression = &v
 22714  	return s
 22715  }
 22716  
 22717  // SetExpressionAttributeNames sets the ExpressionAttributeNames field's value.
 22718  func (s *Update) SetExpressionAttributeNames(v map[string]*string) *Update {
 22719  	s.ExpressionAttributeNames = v
 22720  	return s
 22721  }
 22722  
 22723  // SetExpressionAttributeValues sets the ExpressionAttributeValues field's value.
 22724  func (s *Update) SetExpressionAttributeValues(v map[string]*AttributeValue) *Update {
 22725  	s.ExpressionAttributeValues = v
 22726  	return s
 22727  }
 22728  
 22729  // SetKey sets the Key field's value.
 22730  func (s *Update) SetKey(v map[string]*AttributeValue) *Update {
 22731  	s.Key = v
 22732  	return s
 22733  }
 22734  
 22735  // SetReturnValuesOnConditionCheckFailure sets the ReturnValuesOnConditionCheckFailure field's value.
 22736  func (s *Update) SetReturnValuesOnConditionCheckFailure(v string) *Update {
 22737  	s.ReturnValuesOnConditionCheckFailure = &v
 22738  	return s
 22739  }
 22740  
 22741  // SetTableName sets the TableName field's value.
 22742  func (s *Update) SetTableName(v string) *Update {
 22743  	s.TableName = &v
 22744  	return s
 22745  }
 22746  
 22747  // SetUpdateExpression sets the UpdateExpression field's value.
 22748  func (s *Update) SetUpdateExpression(v string) *Update {
 22749  	s.UpdateExpression = &v
 22750  	return s
 22751  }
 22752  
 22753  type UpdateContinuousBackupsInput struct {
 22754  	_ struct{} `type:"structure"`
 22755  
 22756  	// Represents the settings used to enable point in time recovery.
 22757  	//
 22758  	// PointInTimeRecoverySpecification is a required field
 22759  	PointInTimeRecoverySpecification *PointInTimeRecoverySpecification `type:"structure" required:"true"`
 22760  
 22761  	// The name of the table.
 22762  	//
 22763  	// TableName is a required field
 22764  	TableName *string `min:"3" type:"string" required:"true"`
 22765  }
 22766  
 22767  // String returns the string representation.
 22768  //
 22769  // API parameter values that are decorated as "sensitive" in the API will not
 22770  // be included in the string output. The member name will be present, but the
 22771  // value will be replaced with "sensitive".
 22772  func (s UpdateContinuousBackupsInput) String() string {
 22773  	return awsutil.Prettify(s)
 22774  }
 22775  
 22776  // GoString returns the string representation.
 22777  //
 22778  // API parameter values that are decorated as "sensitive" in the API will not
 22779  // be included in the string output. The member name will be present, but the
 22780  // value will be replaced with "sensitive".
 22781  func (s UpdateContinuousBackupsInput) GoString() string {
 22782  	return s.String()
 22783  }
 22784  
 22785  // Validate inspects the fields of the type to determine if they are valid.
 22786  func (s *UpdateContinuousBackupsInput) Validate() error {
 22787  	invalidParams := request.ErrInvalidParams{Context: "UpdateContinuousBackupsInput"}
 22788  	if s.PointInTimeRecoverySpecification == nil {
 22789  		invalidParams.Add(request.NewErrParamRequired("PointInTimeRecoverySpecification"))
 22790  	}
 22791  	if s.TableName == nil {
 22792  		invalidParams.Add(request.NewErrParamRequired("TableName"))
 22793  	}
 22794  	if s.TableName != nil && len(*s.TableName) < 3 {
 22795  		invalidParams.Add(request.NewErrParamMinLen("TableName", 3))
 22796  	}
 22797  	if s.PointInTimeRecoverySpecification != nil {
 22798  		if err := s.PointInTimeRecoverySpecification.Validate(); err != nil {
 22799  			invalidParams.AddNested("PointInTimeRecoverySpecification", err.(request.ErrInvalidParams))
 22800  		}
 22801  	}
 22802  
 22803  	if invalidParams.Len() > 0 {
 22804  		return invalidParams
 22805  	}
 22806  	return nil
 22807  }
 22808  
 22809  // SetPointInTimeRecoverySpecification sets the PointInTimeRecoverySpecification field's value.
 22810  func (s *UpdateContinuousBackupsInput) SetPointInTimeRecoverySpecification(v *PointInTimeRecoverySpecification) *UpdateContinuousBackupsInput {
 22811  	s.PointInTimeRecoverySpecification = v
 22812  	return s
 22813  }
 22814  
 22815  // SetTableName sets the TableName field's value.
 22816  func (s *UpdateContinuousBackupsInput) SetTableName(v string) *UpdateContinuousBackupsInput {
 22817  	s.TableName = &v
 22818  	return s
 22819  }
 22820  
 22821  type UpdateContinuousBackupsOutput struct {
 22822  	_ struct{} `type:"structure"`
 22823  
 22824  	// Represents the continuous backups and point in time recovery settings on
 22825  	// the table.
 22826  	ContinuousBackupsDescription *ContinuousBackupsDescription `type:"structure"`
 22827  }
 22828  
 22829  // String returns the string representation.
 22830  //
 22831  // API parameter values that are decorated as "sensitive" in the API will not
 22832  // be included in the string output. The member name will be present, but the
 22833  // value will be replaced with "sensitive".
 22834  func (s UpdateContinuousBackupsOutput) String() string {
 22835  	return awsutil.Prettify(s)
 22836  }
 22837  
 22838  // GoString returns the string representation.
 22839  //
 22840  // API parameter values that are decorated as "sensitive" in the API will not
 22841  // be included in the string output. The member name will be present, but the
 22842  // value will be replaced with "sensitive".
 22843  func (s UpdateContinuousBackupsOutput) GoString() string {
 22844  	return s.String()
 22845  }
 22846  
 22847  // SetContinuousBackupsDescription sets the ContinuousBackupsDescription field's value.
 22848  func (s *UpdateContinuousBackupsOutput) SetContinuousBackupsDescription(v *ContinuousBackupsDescription) *UpdateContinuousBackupsOutput {
 22849  	s.ContinuousBackupsDescription = v
 22850  	return s
 22851  }
 22852  
 22853  type UpdateContributorInsightsInput struct {
 22854  	_ struct{} `type:"structure"`
 22855  
 22856  	// Represents the contributor insights action.
 22857  	//
 22858  	// ContributorInsightsAction is a required field
 22859  	ContributorInsightsAction *string `type:"string" required:"true" enum:"ContributorInsightsAction"`
 22860  
 22861  	// The global secondary index name, if applicable.
 22862  	IndexName *string `min:"3" type:"string"`
 22863  
 22864  	// The name of the table.
 22865  	//
 22866  	// TableName is a required field
 22867  	TableName *string `min:"3" type:"string" required:"true"`
 22868  }
 22869  
 22870  // String returns the string representation.
 22871  //
 22872  // API parameter values that are decorated as "sensitive" in the API will not
 22873  // be included in the string output. The member name will be present, but the
 22874  // value will be replaced with "sensitive".
 22875  func (s UpdateContributorInsightsInput) String() string {
 22876  	return awsutil.Prettify(s)
 22877  }
 22878  
 22879  // GoString returns the string representation.
 22880  //
 22881  // API parameter values that are decorated as "sensitive" in the API will not
 22882  // be included in the string output. The member name will be present, but the
 22883  // value will be replaced with "sensitive".
 22884  func (s UpdateContributorInsightsInput) GoString() string {
 22885  	return s.String()
 22886  }
 22887  
 22888  // Validate inspects the fields of the type to determine if they are valid.
 22889  func (s *UpdateContributorInsightsInput) Validate() error {
 22890  	invalidParams := request.ErrInvalidParams{Context: "UpdateContributorInsightsInput"}
 22891  	if s.ContributorInsightsAction == nil {
 22892  		invalidParams.Add(request.NewErrParamRequired("ContributorInsightsAction"))
 22893  	}
 22894  	if s.IndexName != nil && len(*s.IndexName) < 3 {
 22895  		invalidParams.Add(request.NewErrParamMinLen("IndexName", 3))
 22896  	}
 22897  	if s.TableName == nil {
 22898  		invalidParams.Add(request.NewErrParamRequired("TableName"))
 22899  	}
 22900  	if s.TableName != nil && len(*s.TableName) < 3 {
 22901  		invalidParams.Add(request.NewErrParamMinLen("TableName", 3))
 22902  	}
 22903  
 22904  	if invalidParams.Len() > 0 {
 22905  		return invalidParams
 22906  	}
 22907  	return nil
 22908  }
 22909  
 22910  // SetContributorInsightsAction sets the ContributorInsightsAction field's value.
 22911  func (s *UpdateContributorInsightsInput) SetContributorInsightsAction(v string) *UpdateContributorInsightsInput {
 22912  	s.ContributorInsightsAction = &v
 22913  	return s
 22914  }
 22915  
 22916  // SetIndexName sets the IndexName field's value.
 22917  func (s *UpdateContributorInsightsInput) SetIndexName(v string) *UpdateContributorInsightsInput {
 22918  	s.IndexName = &v
 22919  	return s
 22920  }
 22921  
 22922  // SetTableName sets the TableName field's value.
 22923  func (s *UpdateContributorInsightsInput) SetTableName(v string) *UpdateContributorInsightsInput {
 22924  	s.TableName = &v
 22925  	return s
 22926  }
 22927  
 22928  type UpdateContributorInsightsOutput struct {
 22929  	_ struct{} `type:"structure"`
 22930  
 22931  	// The status of contributor insights
 22932  	ContributorInsightsStatus *string `type:"string" enum:"ContributorInsightsStatus"`
 22933  
 22934  	// The name of the global secondary index, if applicable.
 22935  	IndexName *string `min:"3" type:"string"`
 22936  
 22937  	// The name of the table.
 22938  	TableName *string `min:"3" type:"string"`
 22939  }
 22940  
 22941  // String returns the string representation.
 22942  //
 22943  // API parameter values that are decorated as "sensitive" in the API will not
 22944  // be included in the string output. The member name will be present, but the
 22945  // value will be replaced with "sensitive".
 22946  func (s UpdateContributorInsightsOutput) String() string {
 22947  	return awsutil.Prettify(s)
 22948  }
 22949  
 22950  // GoString returns the string representation.
 22951  //
 22952  // API parameter values that are decorated as "sensitive" in the API will not
 22953  // be included in the string output. The member name will be present, but the
 22954  // value will be replaced with "sensitive".
 22955  func (s UpdateContributorInsightsOutput) GoString() string {
 22956  	return s.String()
 22957  }
 22958  
 22959  // SetContributorInsightsStatus sets the ContributorInsightsStatus field's value.
 22960  func (s *UpdateContributorInsightsOutput) SetContributorInsightsStatus(v string) *UpdateContributorInsightsOutput {
 22961  	s.ContributorInsightsStatus = &v
 22962  	return s
 22963  }
 22964  
 22965  // SetIndexName sets the IndexName field's value.
 22966  func (s *UpdateContributorInsightsOutput) SetIndexName(v string) *UpdateContributorInsightsOutput {
 22967  	s.IndexName = &v
 22968  	return s
 22969  }
 22970  
 22971  // SetTableName sets the TableName field's value.
 22972  func (s *UpdateContributorInsightsOutput) SetTableName(v string) *UpdateContributorInsightsOutput {
 22973  	s.TableName = &v
 22974  	return s
 22975  }
 22976  
 22977  // Represents the new provisioned throughput settings to be applied to a global
 22978  // secondary index.
 22979  type UpdateGlobalSecondaryIndexAction struct {
 22980  	_ struct{} `type:"structure"`
 22981  
 22982  	// The name of the global secondary index to be updated.
 22983  	//
 22984  	// IndexName is a required field
 22985  	IndexName *string `min:"3" type:"string" required:"true"`
 22986  
 22987  	// Represents the provisioned throughput settings for the specified global secondary
 22988  	// index.
 22989  	//
 22990  	// For current minimum and maximum provisioned throughput values, see Service,
 22991  	// Account, and Table Quotas (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html)
 22992  	// in the Amazon DynamoDB Developer Guide.
 22993  	//
 22994  	// ProvisionedThroughput is a required field
 22995  	ProvisionedThroughput *ProvisionedThroughput `type:"structure" required:"true"`
 22996  }
 22997  
 22998  // String returns the string representation.
 22999  //
 23000  // API parameter values that are decorated as "sensitive" in the API will not
 23001  // be included in the string output. The member name will be present, but the
 23002  // value will be replaced with "sensitive".
 23003  func (s UpdateGlobalSecondaryIndexAction) String() string {
 23004  	return awsutil.Prettify(s)
 23005  }
 23006  
 23007  // GoString returns the string representation.
 23008  //
 23009  // API parameter values that are decorated as "sensitive" in the API will not
 23010  // be included in the string output. The member name will be present, but the
 23011  // value will be replaced with "sensitive".
 23012  func (s UpdateGlobalSecondaryIndexAction) GoString() string {
 23013  	return s.String()
 23014  }
 23015  
 23016  // Validate inspects the fields of the type to determine if they are valid.
 23017  func (s *UpdateGlobalSecondaryIndexAction) Validate() error {
 23018  	invalidParams := request.ErrInvalidParams{Context: "UpdateGlobalSecondaryIndexAction"}
 23019  	if s.IndexName == nil {
 23020  		invalidParams.Add(request.NewErrParamRequired("IndexName"))
 23021  	}
 23022  	if s.IndexName != nil && len(*s.IndexName) < 3 {
 23023  		invalidParams.Add(request.NewErrParamMinLen("IndexName", 3))
 23024  	}
 23025  	if s.ProvisionedThroughput == nil {
 23026  		invalidParams.Add(request.NewErrParamRequired("ProvisionedThroughput"))
 23027  	}
 23028  	if s.ProvisionedThroughput != nil {
 23029  		if err := s.ProvisionedThroughput.Validate(); err != nil {
 23030  			invalidParams.AddNested("ProvisionedThroughput", err.(request.ErrInvalidParams))
 23031  		}
 23032  	}
 23033  
 23034  	if invalidParams.Len() > 0 {
 23035  		return invalidParams
 23036  	}
 23037  	return nil
 23038  }
 23039  
 23040  // SetIndexName sets the IndexName field's value.
 23041  func (s *UpdateGlobalSecondaryIndexAction) SetIndexName(v string) *UpdateGlobalSecondaryIndexAction {
 23042  	s.IndexName = &v
 23043  	return s
 23044  }
 23045  
 23046  // SetProvisionedThroughput sets the ProvisionedThroughput field's value.
 23047  func (s *UpdateGlobalSecondaryIndexAction) SetProvisionedThroughput(v *ProvisionedThroughput) *UpdateGlobalSecondaryIndexAction {
 23048  	s.ProvisionedThroughput = v
 23049  	return s
 23050  }
 23051  
 23052  type UpdateGlobalTableInput struct {
 23053  	_ struct{} `type:"structure"`
 23054  
 23055  	// The global table name.
 23056  	//
 23057  	// GlobalTableName is a required field
 23058  	GlobalTableName *string `min:"3" type:"string" required:"true"`
 23059  
 23060  	// A list of Regions that should be added or removed from the global table.
 23061  	//
 23062  	// ReplicaUpdates is a required field
 23063  	ReplicaUpdates []*ReplicaUpdate `type:"list" required:"true"`
 23064  }
 23065  
 23066  // String returns the string representation.
 23067  //
 23068  // API parameter values that are decorated as "sensitive" in the API will not
 23069  // be included in the string output. The member name will be present, but the
 23070  // value will be replaced with "sensitive".
 23071  func (s UpdateGlobalTableInput) String() string {
 23072  	return awsutil.Prettify(s)
 23073  }
 23074  
 23075  // GoString returns the string representation.
 23076  //
 23077  // API parameter values that are decorated as "sensitive" in the API will not
 23078  // be included in the string output. The member name will be present, but the
 23079  // value will be replaced with "sensitive".
 23080  func (s UpdateGlobalTableInput) GoString() string {
 23081  	return s.String()
 23082  }
 23083  
 23084  // Validate inspects the fields of the type to determine if they are valid.
 23085  func (s *UpdateGlobalTableInput) Validate() error {
 23086  	invalidParams := request.ErrInvalidParams{Context: "UpdateGlobalTableInput"}
 23087  	if s.GlobalTableName == nil {
 23088  		invalidParams.Add(request.NewErrParamRequired("GlobalTableName"))
 23089  	}
 23090  	if s.GlobalTableName != nil && len(*s.GlobalTableName) < 3 {
 23091  		invalidParams.Add(request.NewErrParamMinLen("GlobalTableName", 3))
 23092  	}
 23093  	if s.ReplicaUpdates == nil {
 23094  		invalidParams.Add(request.NewErrParamRequired("ReplicaUpdates"))
 23095  	}
 23096  	if s.ReplicaUpdates != nil {
 23097  		for i, v := range s.ReplicaUpdates {
 23098  			if v == nil {
 23099  				continue
 23100  			}
 23101  			if err := v.Validate(); err != nil {
 23102  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ReplicaUpdates", i), err.(request.ErrInvalidParams))
 23103  			}
 23104  		}
 23105  	}
 23106  
 23107  	if invalidParams.Len() > 0 {
 23108  		return invalidParams
 23109  	}
 23110  	return nil
 23111  }
 23112  
 23113  // SetGlobalTableName sets the GlobalTableName field's value.
 23114  func (s *UpdateGlobalTableInput) SetGlobalTableName(v string) *UpdateGlobalTableInput {
 23115  	s.GlobalTableName = &v
 23116  	return s
 23117  }
 23118  
 23119  // SetReplicaUpdates sets the ReplicaUpdates field's value.
 23120  func (s *UpdateGlobalTableInput) SetReplicaUpdates(v []*ReplicaUpdate) *UpdateGlobalTableInput {
 23121  	s.ReplicaUpdates = v
 23122  	return s
 23123  }
 23124  
 23125  type UpdateGlobalTableOutput struct {
 23126  	_ struct{} `type:"structure"`
 23127  
 23128  	// Contains the details of the global table.
 23129  	GlobalTableDescription *GlobalTableDescription `type:"structure"`
 23130  }
 23131  
 23132  // String returns the string representation.
 23133  //
 23134  // API parameter values that are decorated as "sensitive" in the API will not
 23135  // be included in the string output. The member name will be present, but the
 23136  // value will be replaced with "sensitive".
 23137  func (s UpdateGlobalTableOutput) String() string {
 23138  	return awsutil.Prettify(s)
 23139  }
 23140  
 23141  // GoString returns the string representation.
 23142  //
 23143  // API parameter values that are decorated as "sensitive" in the API will not
 23144  // be included in the string output. The member name will be present, but the
 23145  // value will be replaced with "sensitive".
 23146  func (s UpdateGlobalTableOutput) GoString() string {
 23147  	return s.String()
 23148  }
 23149  
 23150  // SetGlobalTableDescription sets the GlobalTableDescription field's value.
 23151  func (s *UpdateGlobalTableOutput) SetGlobalTableDescription(v *GlobalTableDescription) *UpdateGlobalTableOutput {
 23152  	s.GlobalTableDescription = v
 23153  	return s
 23154  }
 23155  
 23156  type UpdateGlobalTableSettingsInput struct {
 23157  	_ struct{} `type:"structure"`
 23158  
 23159  	// The billing mode of the global table. If GlobalTableBillingMode is not specified,
 23160  	// the global table defaults to PROVISIONED capacity billing mode.
 23161  	//
 23162  	//    * PROVISIONED - We recommend using PROVISIONED for predictable workloads.
 23163  	//    PROVISIONED sets the billing mode to Provisioned Mode (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual).
 23164  	//
 23165  	//    * PAY_PER_REQUEST - We recommend using PAY_PER_REQUEST for unpredictable
 23166  	//    workloads. PAY_PER_REQUEST sets the billing mode to On-Demand Mode (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand).
 23167  	GlobalTableBillingMode *string `type:"string" enum:"BillingMode"`
 23168  
 23169  	// Represents the settings of a global secondary index for a global table that
 23170  	// will be modified.
 23171  	GlobalTableGlobalSecondaryIndexSettingsUpdate []*GlobalTableGlobalSecondaryIndexSettingsUpdate `min:"1" type:"list"`
 23172  
 23173  	// The name of the global table
 23174  	//
 23175  	// GlobalTableName is a required field
 23176  	GlobalTableName *string `min:"3" type:"string" required:"true"`
 23177  
 23178  	// Auto scaling settings for managing provisioned write capacity for the global
 23179  	// table.
 23180  	GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate *AutoScalingSettingsUpdate `type:"structure"`
 23181  
 23182  	// The maximum number of writes consumed per second before DynamoDB returns
 23183  	// a ThrottlingException.
 23184  	GlobalTableProvisionedWriteCapacityUnits *int64 `min:"1" type:"long"`
 23185  
 23186  	// Represents the settings for a global table in a Region that will be modified.
 23187  	ReplicaSettingsUpdate []*ReplicaSettingsUpdate `min:"1" type:"list"`
 23188  }
 23189  
 23190  // String returns the string representation.
 23191  //
 23192  // API parameter values that are decorated as "sensitive" in the API will not
 23193  // be included in the string output. The member name will be present, but the
 23194  // value will be replaced with "sensitive".
 23195  func (s UpdateGlobalTableSettingsInput) String() string {
 23196  	return awsutil.Prettify(s)
 23197  }
 23198  
 23199  // GoString returns the string representation.
 23200  //
 23201  // API parameter values that are decorated as "sensitive" in the API will not
 23202  // be included in the string output. The member name will be present, but the
 23203  // value will be replaced with "sensitive".
 23204  func (s UpdateGlobalTableSettingsInput) GoString() string {
 23205  	return s.String()
 23206  }
 23207  
 23208  // Validate inspects the fields of the type to determine if they are valid.
 23209  func (s *UpdateGlobalTableSettingsInput) Validate() error {
 23210  	invalidParams := request.ErrInvalidParams{Context: "UpdateGlobalTableSettingsInput"}
 23211  	if s.GlobalTableGlobalSecondaryIndexSettingsUpdate != nil && len(s.GlobalTableGlobalSecondaryIndexSettingsUpdate) < 1 {
 23212  		invalidParams.Add(request.NewErrParamMinLen("GlobalTableGlobalSecondaryIndexSettingsUpdate", 1))
 23213  	}
 23214  	if s.GlobalTableName == nil {
 23215  		invalidParams.Add(request.NewErrParamRequired("GlobalTableName"))
 23216  	}
 23217  	if s.GlobalTableName != nil && len(*s.GlobalTableName) < 3 {
 23218  		invalidParams.Add(request.NewErrParamMinLen("GlobalTableName", 3))
 23219  	}
 23220  	if s.GlobalTableProvisionedWriteCapacityUnits != nil && *s.GlobalTableProvisionedWriteCapacityUnits < 1 {
 23221  		invalidParams.Add(request.NewErrParamMinValue("GlobalTableProvisionedWriteCapacityUnits", 1))
 23222  	}
 23223  	if s.ReplicaSettingsUpdate != nil && len(s.ReplicaSettingsUpdate) < 1 {
 23224  		invalidParams.Add(request.NewErrParamMinLen("ReplicaSettingsUpdate", 1))
 23225  	}
 23226  	if s.GlobalTableGlobalSecondaryIndexSettingsUpdate != nil {
 23227  		for i, v := range s.GlobalTableGlobalSecondaryIndexSettingsUpdate {
 23228  			if v == nil {
 23229  				continue
 23230  			}
 23231  			if err := v.Validate(); err != nil {
 23232  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "GlobalTableGlobalSecondaryIndexSettingsUpdate", i), err.(request.ErrInvalidParams))
 23233  			}
 23234  		}
 23235  	}
 23236  	if s.GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate != nil {
 23237  		if err := s.GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate.Validate(); err != nil {
 23238  			invalidParams.AddNested("GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate", err.(request.ErrInvalidParams))
 23239  		}
 23240  	}
 23241  	if s.ReplicaSettingsUpdate != nil {
 23242  		for i, v := range s.ReplicaSettingsUpdate {
 23243  			if v == nil {
 23244  				continue
 23245  			}
 23246  			if err := v.Validate(); err != nil {
 23247  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ReplicaSettingsUpdate", i), err.(request.ErrInvalidParams))
 23248  			}
 23249  		}
 23250  	}
 23251  
 23252  	if invalidParams.Len() > 0 {
 23253  		return invalidParams
 23254  	}
 23255  	return nil
 23256  }
 23257  
 23258  // SetGlobalTableBillingMode sets the GlobalTableBillingMode field's value.
 23259  func (s *UpdateGlobalTableSettingsInput) SetGlobalTableBillingMode(v string) *UpdateGlobalTableSettingsInput {
 23260  	s.GlobalTableBillingMode = &v
 23261  	return s
 23262  }
 23263  
 23264  // SetGlobalTableGlobalSecondaryIndexSettingsUpdate sets the GlobalTableGlobalSecondaryIndexSettingsUpdate field's value.
 23265  func (s *UpdateGlobalTableSettingsInput) SetGlobalTableGlobalSecondaryIndexSettingsUpdate(v []*GlobalTableGlobalSecondaryIndexSettingsUpdate) *UpdateGlobalTableSettingsInput {
 23266  	s.GlobalTableGlobalSecondaryIndexSettingsUpdate = v
 23267  	return s
 23268  }
 23269  
 23270  // SetGlobalTableName sets the GlobalTableName field's value.
 23271  func (s *UpdateGlobalTableSettingsInput) SetGlobalTableName(v string) *UpdateGlobalTableSettingsInput {
 23272  	s.GlobalTableName = &v
 23273  	return s
 23274  }
 23275  
 23276  // SetGlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate sets the GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate field's value.
 23277  func (s *UpdateGlobalTableSettingsInput) SetGlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate(v *AutoScalingSettingsUpdate) *UpdateGlobalTableSettingsInput {
 23278  	s.GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate = v
 23279  	return s
 23280  }
 23281  
 23282  // SetGlobalTableProvisionedWriteCapacityUnits sets the GlobalTableProvisionedWriteCapacityUnits field's value.
 23283  func (s *UpdateGlobalTableSettingsInput) SetGlobalTableProvisionedWriteCapacityUnits(v int64) *UpdateGlobalTableSettingsInput {
 23284  	s.GlobalTableProvisionedWriteCapacityUnits = &v
 23285  	return s
 23286  }
 23287  
 23288  // SetReplicaSettingsUpdate sets the ReplicaSettingsUpdate field's value.
 23289  func (s *UpdateGlobalTableSettingsInput) SetReplicaSettingsUpdate(v []*ReplicaSettingsUpdate) *UpdateGlobalTableSettingsInput {
 23290  	s.ReplicaSettingsUpdate = v
 23291  	return s
 23292  }
 23293  
 23294  type UpdateGlobalTableSettingsOutput struct {
 23295  	_ struct{} `type:"structure"`
 23296  
 23297  	// The name of the global table.
 23298  	GlobalTableName *string `min:"3" type:"string"`
 23299  
 23300  	// The Region-specific settings for the global table.
 23301  	ReplicaSettings []*ReplicaSettingsDescription `type:"list"`
 23302  }
 23303  
 23304  // String returns the string representation.
 23305  //
 23306  // API parameter values that are decorated as "sensitive" in the API will not
 23307  // be included in the string output. The member name will be present, but the
 23308  // value will be replaced with "sensitive".
 23309  func (s UpdateGlobalTableSettingsOutput) String() string {
 23310  	return awsutil.Prettify(s)
 23311  }
 23312  
 23313  // GoString returns the string representation.
 23314  //
 23315  // API parameter values that are decorated as "sensitive" in the API will not
 23316  // be included in the string output. The member name will be present, but the
 23317  // value will be replaced with "sensitive".
 23318  func (s UpdateGlobalTableSettingsOutput) GoString() string {
 23319  	return s.String()
 23320  }
 23321  
 23322  // SetGlobalTableName sets the GlobalTableName field's value.
 23323  func (s *UpdateGlobalTableSettingsOutput) SetGlobalTableName(v string) *UpdateGlobalTableSettingsOutput {
 23324  	s.GlobalTableName = &v
 23325  	return s
 23326  }
 23327  
 23328  // SetReplicaSettings sets the ReplicaSettings field's value.
 23329  func (s *UpdateGlobalTableSettingsOutput) SetReplicaSettings(v []*ReplicaSettingsDescription) *UpdateGlobalTableSettingsOutput {
 23330  	s.ReplicaSettings = v
 23331  	return s
 23332  }
 23333  
 23334  // Represents the input of an UpdateItem operation.
 23335  type UpdateItemInput struct {
 23336  	_ struct{} `type:"structure"`
 23337  
 23338  	// This is a legacy parameter. Use UpdateExpression instead. For more information,
 23339  	// see AttributeUpdates (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.AttributeUpdates.html)
 23340  	// in the Amazon DynamoDB Developer Guide.
 23341  	AttributeUpdates map[string]*AttributeValueUpdate `type:"map"`
 23342  
 23343  	// A condition that must be satisfied in order for a conditional update to succeed.
 23344  	//
 23345  	// An expression can contain any of the following:
 23346  	//
 23347  	//    * Functions: attribute_exists | attribute_not_exists | attribute_type
 23348  	//    | contains | begins_with | size These function names are case-sensitive.
 23349  	//
 23350  	//    * Comparison operators: = | <> | < | > | <= | >= | BETWEEN | IN
 23351  	//
 23352  	//    * Logical operators: AND | OR | NOT
 23353  	//
 23354  	// For more information about condition expressions, see Specifying Conditions
 23355  	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html)
 23356  	// in the Amazon DynamoDB Developer Guide.
 23357  	ConditionExpression *string `type:"string"`
 23358  
 23359  	// This is a legacy parameter. Use ConditionExpression instead. For more information,
 23360  	// see ConditionalOperator (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ConditionalOperator.html)
 23361  	// in the Amazon DynamoDB Developer Guide.
 23362  	ConditionalOperator *string `type:"string" enum:"ConditionalOperator"`
 23363  
 23364  	// This is a legacy parameter. Use ConditionExpression instead. For more information,
 23365  	// see Expected (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.Expected.html)
 23366  	// in the Amazon DynamoDB Developer Guide.
 23367  	Expected map[string]*ExpectedAttributeValue `type:"map"`
 23368  
 23369  	// One or more substitution tokens for attribute names in an expression. The
 23370  	// following are some use cases for using ExpressionAttributeNames:
 23371  	//
 23372  	//    * To access an attribute whose name conflicts with a DynamoDB reserved
 23373  	//    word.
 23374  	//
 23375  	//    * To create a placeholder for repeating occurrences of an attribute name
 23376  	//    in an expression.
 23377  	//
 23378  	//    * To prevent special characters in an attribute name from being misinterpreted
 23379  	//    in an expression.
 23380  	//
 23381  	// Use the # character in an expression to dereference an attribute name. For
 23382  	// example, consider the following attribute name:
 23383  	//
 23384  	//    * Percentile
 23385  	//
 23386  	// The name of this attribute conflicts with a reserved word, so it cannot be
 23387  	// used directly in an expression. (For the complete list of reserved words,
 23388  	// see Reserved Words (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html)
 23389  	// in the Amazon DynamoDB Developer Guide.) To work around this, you could specify
 23390  	// the following for ExpressionAttributeNames:
 23391  	//
 23392  	//    * {"#P":"Percentile"}
 23393  	//
 23394  	// You could then use this substitution in an expression, as in this example:
 23395  	//
 23396  	//    * #P = :val
 23397  	//
 23398  	// Tokens that begin with the : character are expression attribute values, which
 23399  	// are placeholders for the actual value at runtime.
 23400  	//
 23401  	// For more information about expression attribute names, see Specifying Item
 23402  	// Attributes (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html)
 23403  	// in the Amazon DynamoDB Developer Guide.
 23404  	ExpressionAttributeNames map[string]*string `type:"map"`
 23405  
 23406  	// One or more values that can be substituted in an expression.
 23407  	//
 23408  	// Use the : (colon) character in an expression to dereference an attribute
 23409  	// value. For example, suppose that you wanted to check whether the value of
 23410  	// the ProductStatus attribute was one of the following:
 23411  	//
 23412  	// Available | Backordered | Discontinued
 23413  	//
 23414  	// You would first need to specify ExpressionAttributeValues as follows:
 23415  	//
 23416  	// { ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"}
 23417  	// }
 23418  	//
 23419  	// You could then use these values in an expression, such as this:
 23420  	//
 23421  	// ProductStatus IN (:avail, :back, :disc)
 23422  	//
 23423  	// For more information on expression attribute values, see Condition Expressions
 23424  	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html)
 23425  	// in the Amazon DynamoDB Developer Guide.
 23426  	ExpressionAttributeValues map[string]*AttributeValue `type:"map"`
 23427  
 23428  	// The primary key of the item to be updated. Each element consists of an attribute
 23429  	// name and a value for that attribute.
 23430  	//
 23431  	// For the primary key, you must provide all of the attributes. For example,
 23432  	// with a simple primary key, you only need to provide a value for the partition
 23433  	// key. For a composite primary key, you must provide values for both the partition
 23434  	// key and the sort key.
 23435  	//
 23436  	// Key is a required field
 23437  	Key map[string]*AttributeValue `type:"map" required:"true"`
 23438  
 23439  	// Determines the level of detail about provisioned throughput consumption that
 23440  	// is returned in the response:
 23441  	//
 23442  	//    * INDEXES - The response includes the aggregate ConsumedCapacity for the
 23443  	//    operation, together with ConsumedCapacity for each table and secondary
 23444  	//    index that was accessed. Note that some operations, such as GetItem and
 23445  	//    BatchGetItem, do not access any indexes at all. In these cases, specifying
 23446  	//    INDEXES will only return ConsumedCapacity information for table(s).
 23447  	//
 23448  	//    * TOTAL - The response includes only the aggregate ConsumedCapacity for
 23449  	//    the operation.
 23450  	//
 23451  	//    * NONE - No ConsumedCapacity details are included in the response.
 23452  	ReturnConsumedCapacity *string `type:"string" enum:"ReturnConsumedCapacity"`
 23453  
 23454  	// Determines whether item collection metrics are returned. If set to SIZE,
 23455  	// the response includes statistics about item collections, if any, that were
 23456  	// modified during the operation are returned in the response. If set to NONE
 23457  	// (the default), no statistics are returned.
 23458  	ReturnItemCollectionMetrics *string `type:"string" enum:"ReturnItemCollectionMetrics"`
 23459  
 23460  	// Use ReturnValues if you want to get the item attributes as they appear before
 23461  	// or after they are updated. For UpdateItem, the valid values are:
 23462  	//
 23463  	//    * NONE - If ReturnValues is not specified, or if its value is NONE, then
 23464  	//    nothing is returned. (This setting is the default for ReturnValues.)
 23465  	//
 23466  	//    * ALL_OLD - Returns all of the attributes of the item, as they appeared
 23467  	//    before the UpdateItem operation.
 23468  	//
 23469  	//    * UPDATED_OLD - Returns only the updated attributes, as they appeared
 23470  	//    before the UpdateItem operation.
 23471  	//
 23472  	//    * ALL_NEW - Returns all of the attributes of the item, as they appear
 23473  	//    after the UpdateItem operation.
 23474  	//
 23475  	//    * UPDATED_NEW - Returns only the updated attributes, as they appear after
 23476  	//    the UpdateItem operation.
 23477  	//
 23478  	// There is no additional cost associated with requesting a return value aside
 23479  	// from the small network and processing overhead of receiving a larger response.
 23480  	// No read capacity units are consumed.
 23481  	//
 23482  	// The values returned are strongly consistent.
 23483  	ReturnValues *string `type:"string" enum:"ReturnValue"`
 23484  
 23485  	// The name of the table containing the item to update.
 23486  	//
 23487  	// TableName is a required field
 23488  	TableName *string `min:"3" type:"string" required:"true"`
 23489  
 23490  	// An expression that defines one or more attributes to be updated, the action
 23491  	// to be performed on them, and new values for them.
 23492  	//
 23493  	// The following action values are available for UpdateExpression.
 23494  	//
 23495  	//    * SET - Adds one or more attributes and values to an item. If any of these
 23496  	//    attributes already exist, they are replaced by the new values. You can
 23497  	//    also use SET to add or subtract from an attribute that is of type Number.
 23498  	//    For example: SET myNum = myNum + :val SET supports the following functions:
 23499  	//    if_not_exists (path, operand) - if the item does not contain an attribute
 23500  	//    at the specified path, then if_not_exists evaluates to operand; otherwise,
 23501  	//    it evaluates to path. You can use this function to avoid overwriting an
 23502  	//    attribute that may already be present in the item. list_append (operand,
 23503  	//    operand) - evaluates to a list with a new element added to it. You can
 23504  	//    append the new element to the start or the end of the list by reversing
 23505  	//    the order of the operands. These function names are case-sensitive.
 23506  	//
 23507  	//    * REMOVE - Removes one or more attributes from an item.
 23508  	//
 23509  	//    * ADD - Adds the specified value to the item, if the attribute does not
 23510  	//    already exist. If the attribute does exist, then the behavior of ADD depends
 23511  	//    on the data type of the attribute: If the existing attribute is a number,
 23512  	//    and if Value is also a number, then Value is mathematically added to the
 23513  	//    existing attribute. If Value is a negative number, then it is subtracted
 23514  	//    from the existing attribute. If you use ADD to increment or decrement
 23515  	//    a number value for an item that doesn't exist before the update, DynamoDB
 23516  	//    uses 0 as the initial value. Similarly, if you use ADD for an existing
 23517  	//    item to increment or decrement an attribute value that doesn't exist before
 23518  	//    the update, DynamoDB uses 0 as the initial value. For example, suppose
 23519  	//    that the item you want to update doesn't have an attribute named itemcount,
 23520  	//    but you decide to ADD the number 3 to this attribute anyway. DynamoDB
 23521  	//    will create the itemcount attribute, set its initial value to 0, and finally
 23522  	//    add 3 to it. The result will be a new itemcount attribute in the item,
 23523  	//    with a value of 3. If the existing data type is a set and if Value is
 23524  	//    also a set, then Value is added to the existing set. For example, if the
 23525  	//    attribute value is the set [1,2], and the ADD action specified [3], then
 23526  	//    the final attribute value is [1,2,3]. An error occurs if an ADD action
 23527  	//    is specified for a set attribute and the attribute type specified does
 23528  	//    not match the existing set type. Both sets must have the same primitive
 23529  	//    data type. For example, if the existing data type is a set of strings,
 23530  	//    the Value must also be a set of strings. The ADD action only supports
 23531  	//    Number and set data types. In addition, ADD can only be used on top-level
 23532  	//    attributes, not nested attributes.
 23533  	//
 23534  	//    * DELETE - Deletes an element from a set. If a set of values is specified,
 23535  	//    then those values are subtracted from the old set. For example, if the
 23536  	//    attribute value was the set [a,b,c] and the DELETE action specifies [a,c],
 23537  	//    then the final attribute value is [b]. Specifying an empty set is an error.
 23538  	//    The DELETE action only supports set data types. In addition, DELETE can
 23539  	//    only be used on top-level attributes, not nested attributes.
 23540  	//
 23541  	// You can have many actions in a single expression, such as the following:
 23542  	// SET a=:value1, b=:value2 DELETE :value3, :value4, :value5
 23543  	//
 23544  	// For more information on update expressions, see Modifying Items and Attributes
 23545  	// (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.Modifying.html)
 23546  	// in the Amazon DynamoDB Developer Guide.
 23547  	UpdateExpression *string `type:"string"`
 23548  }
 23549  
 23550  // String returns the string representation.
 23551  //
 23552  // API parameter values that are decorated as "sensitive" in the API will not
 23553  // be included in the string output. The member name will be present, but the
 23554  // value will be replaced with "sensitive".
 23555  func (s UpdateItemInput) String() string {
 23556  	return awsutil.Prettify(s)
 23557  }
 23558  
 23559  // GoString returns the string representation.
 23560  //
 23561  // API parameter values that are decorated as "sensitive" in the API will not
 23562  // be included in the string output. The member name will be present, but the
 23563  // value will be replaced with "sensitive".
 23564  func (s UpdateItemInput) GoString() string {
 23565  	return s.String()
 23566  }
 23567  
 23568  // Validate inspects the fields of the type to determine if they are valid.
 23569  func (s *UpdateItemInput) Validate() error {
 23570  	invalidParams := request.ErrInvalidParams{Context: "UpdateItemInput"}
 23571  	if s.Key == nil {
 23572  		invalidParams.Add(request.NewErrParamRequired("Key"))
 23573  	}
 23574  	if s.TableName == nil {
 23575  		invalidParams.Add(request.NewErrParamRequired("TableName"))
 23576  	}
 23577  	if s.TableName != nil && len(*s.TableName) < 3 {
 23578  		invalidParams.Add(request.NewErrParamMinLen("TableName", 3))
 23579  	}
 23580  
 23581  	if invalidParams.Len() > 0 {
 23582  		return invalidParams
 23583  	}
 23584  	return nil
 23585  }
 23586  
 23587  // SetAttributeUpdates sets the AttributeUpdates field's value.
 23588  func (s *UpdateItemInput) SetAttributeUpdates(v map[string]*AttributeValueUpdate) *UpdateItemInput {
 23589  	s.AttributeUpdates = v
 23590  	return s
 23591  }
 23592  
 23593  // SetConditionExpression sets the ConditionExpression field's value.
 23594  func (s *UpdateItemInput) SetConditionExpression(v string) *UpdateItemInput {
 23595  	s.ConditionExpression = &v
 23596  	return s
 23597  }
 23598  
 23599  // SetConditionalOperator sets the ConditionalOperator field's value.
 23600  func (s *UpdateItemInput) SetConditionalOperator(v string) *UpdateItemInput {
 23601  	s.ConditionalOperator = &v
 23602  	return s
 23603  }
 23604  
 23605  // SetExpected sets the Expected field's value.
 23606  func (s *UpdateItemInput) SetExpected(v map[string]*ExpectedAttributeValue) *UpdateItemInput {
 23607  	s.Expected = v
 23608  	return s
 23609  }
 23610  
 23611  // SetExpressionAttributeNames sets the ExpressionAttributeNames field's value.
 23612  func (s *UpdateItemInput) SetExpressionAttributeNames(v map[string]*string) *UpdateItemInput {
 23613  	s.ExpressionAttributeNames = v
 23614  	return s
 23615  }
 23616  
 23617  // SetExpressionAttributeValues sets the ExpressionAttributeValues field's value.
 23618  func (s *UpdateItemInput) SetExpressionAttributeValues(v map[string]*AttributeValue) *UpdateItemInput {
 23619  	s.ExpressionAttributeValues = v
 23620  	return s
 23621  }
 23622  
 23623  // SetKey sets the Key field's value.
 23624  func (s *UpdateItemInput) SetKey(v map[string]*AttributeValue) *UpdateItemInput {
 23625  	s.Key = v
 23626  	return s
 23627  }
 23628  
 23629  // SetReturnConsumedCapacity sets the ReturnConsumedCapacity field's value.
 23630  func (s *UpdateItemInput) SetReturnConsumedCapacity(v string) *UpdateItemInput {
 23631  	s.ReturnConsumedCapacity = &v
 23632  	return s
 23633  }
 23634  
 23635  // SetReturnItemCollectionMetrics sets the ReturnItemCollectionMetrics field's value.
 23636  func (s *UpdateItemInput) SetReturnItemCollectionMetrics(v string) *UpdateItemInput {
 23637  	s.ReturnItemCollectionMetrics = &v
 23638  	return s
 23639  }
 23640  
 23641  // SetReturnValues sets the ReturnValues field's value.
 23642  func (s *UpdateItemInput) SetReturnValues(v string) *UpdateItemInput {
 23643  	s.ReturnValues = &v
 23644  	return s
 23645  }
 23646  
 23647  // SetTableName sets the TableName field's value.
 23648  func (s *UpdateItemInput) SetTableName(v string) *UpdateItemInput {
 23649  	s.TableName = &v
 23650  	return s
 23651  }
 23652  
 23653  // SetUpdateExpression sets the UpdateExpression field's value.
 23654  func (s *UpdateItemInput) SetUpdateExpression(v string) *UpdateItemInput {
 23655  	s.UpdateExpression = &v
 23656  	return s
 23657  }
 23658  
 23659  // Represents the output of an UpdateItem operation.
 23660  type UpdateItemOutput struct {
 23661  	_ struct{} `type:"structure"`
 23662  
 23663  	// A map of attribute values as they appear before or after the UpdateItem operation,
 23664  	// as determined by the ReturnValues parameter.
 23665  	//
 23666  	// The Attributes map is only present if ReturnValues was specified as something
 23667  	// other than NONE in the request. Each element represents one attribute.
 23668  	Attributes map[string]*AttributeValue `type:"map"`
 23669  
 23670  	// The capacity units consumed by the UpdateItem operation. The data returned
 23671  	// includes the total provisioned throughput consumed, along with statistics
 23672  	// for the table and any indexes involved in the operation. ConsumedCapacity
 23673  	// is only returned if the ReturnConsumedCapacity parameter was specified. For
 23674  	// more information, see Provisioned Throughput (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html)
 23675  	// in the Amazon DynamoDB Developer Guide.
 23676  	ConsumedCapacity *ConsumedCapacity `type:"structure"`
 23677  
 23678  	// Information about item collections, if any, that were affected by the UpdateItem
 23679  	// operation. ItemCollectionMetrics is only returned if the ReturnItemCollectionMetrics
 23680  	// parameter was specified. If the table does not have any local secondary indexes,
 23681  	// this information is not returned in the response.
 23682  	//
 23683  	// Each ItemCollectionMetrics element consists of:
 23684  	//
 23685  	//    * ItemCollectionKey - The partition key value of the item collection.
 23686  	//    This is the same as the partition key value of the item itself.
 23687  	//
 23688  	//    * SizeEstimateRangeGB - An estimate of item collection size, in gigabytes.
 23689  	//    This value is a two-element array containing a lower bound and an upper
 23690  	//    bound for the estimate. The estimate includes the size of all the items
 23691  	//    in the table, plus the size of all attributes projected into all of the
 23692  	//    local secondary indexes on that table. Use this estimate to measure whether
 23693  	//    a local secondary index is approaching its size limit. The estimate is
 23694  	//    subject to change over time; therefore, do not rely on the precision or
 23695  	//    accuracy of the estimate.
 23696  	ItemCollectionMetrics *ItemCollectionMetrics `type:"structure"`
 23697  }
 23698  
 23699  // String returns the string representation.
 23700  //
 23701  // API parameter values that are decorated as "sensitive" in the API will not
 23702  // be included in the string output. The member name will be present, but the
 23703  // value will be replaced with "sensitive".
 23704  func (s UpdateItemOutput) String() string {
 23705  	return awsutil.Prettify(s)
 23706  }
 23707  
 23708  // GoString returns the string representation.
 23709  //
 23710  // API parameter values that are decorated as "sensitive" in the API will not
 23711  // be included in the string output. The member name will be present, but the
 23712  // value will be replaced with "sensitive".
 23713  func (s UpdateItemOutput) GoString() string {
 23714  	return s.String()
 23715  }
 23716  
 23717  // SetAttributes sets the Attributes field's value.
 23718  func (s *UpdateItemOutput) SetAttributes(v map[string]*AttributeValue) *UpdateItemOutput {
 23719  	s.Attributes = v
 23720  	return s
 23721  }
 23722  
 23723  // SetConsumedCapacity sets the ConsumedCapacity field's value.
 23724  func (s *UpdateItemOutput) SetConsumedCapacity(v *ConsumedCapacity) *UpdateItemOutput {
 23725  	s.ConsumedCapacity = v
 23726  	return s
 23727  }
 23728  
 23729  // SetItemCollectionMetrics sets the ItemCollectionMetrics field's value.
 23730  func (s *UpdateItemOutput) SetItemCollectionMetrics(v *ItemCollectionMetrics) *UpdateItemOutput {
 23731  	s.ItemCollectionMetrics = v
 23732  	return s
 23733  }
 23734  
 23735  // Represents a replica to be modified.
 23736  type UpdateReplicationGroupMemberAction struct {
 23737  	_ struct{} `type:"structure"`
 23738  
 23739  	// Replica-specific global secondary index settings.
 23740  	GlobalSecondaryIndexes []*ReplicaGlobalSecondaryIndex `min:"1" type:"list"`
 23741  
 23742  	// The AWS KMS customer master key (CMK) of the replica that should be used
 23743  	// for AWS KMS encryption. To specify a CMK, use its key ID, Amazon Resource
 23744  	// Name (ARN), alias name, or alias ARN. Note that you should only provide this
 23745  	// parameter if the key is different from the default DynamoDB KMS master key
 23746  	// alias/aws/dynamodb.
 23747  	KMSMasterKeyId *string `type:"string"`
 23748  
 23749  	// Replica-specific provisioned throughput. If not specified, uses the source
 23750  	// table's provisioned throughput settings.
 23751  	ProvisionedThroughputOverride *ProvisionedThroughputOverride `type:"structure"`
 23752  
 23753  	// The Region where the replica exists.
 23754  	//
 23755  	// RegionName is a required field
 23756  	RegionName *string `type:"string" required:"true"`
 23757  }
 23758  
 23759  // String returns the string representation.
 23760  //
 23761  // API parameter values that are decorated as "sensitive" in the API will not
 23762  // be included in the string output. The member name will be present, but the
 23763  // value will be replaced with "sensitive".
 23764  func (s UpdateReplicationGroupMemberAction) String() string {
 23765  	return awsutil.Prettify(s)
 23766  }
 23767  
 23768  // GoString returns the string representation.
 23769  //
 23770  // API parameter values that are decorated as "sensitive" in the API will not
 23771  // be included in the string output. The member name will be present, but the
 23772  // value will be replaced with "sensitive".
 23773  func (s UpdateReplicationGroupMemberAction) GoString() string {
 23774  	return s.String()
 23775  }
 23776  
 23777  // Validate inspects the fields of the type to determine if they are valid.
 23778  func (s *UpdateReplicationGroupMemberAction) Validate() error {
 23779  	invalidParams := request.ErrInvalidParams{Context: "UpdateReplicationGroupMemberAction"}
 23780  	if s.GlobalSecondaryIndexes != nil && len(s.GlobalSecondaryIndexes) < 1 {
 23781  		invalidParams.Add(request.NewErrParamMinLen("GlobalSecondaryIndexes", 1))
 23782  	}
 23783  	if s.RegionName == nil {
 23784  		invalidParams.Add(request.NewErrParamRequired("RegionName"))
 23785  	}
 23786  	if s.GlobalSecondaryIndexes != nil {
 23787  		for i, v := range s.GlobalSecondaryIndexes {
 23788  			if v == nil {
 23789  				continue
 23790  			}
 23791  			if err := v.Validate(); err != nil {
 23792  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "GlobalSecondaryIndexes", i), err.(request.ErrInvalidParams))
 23793  			}
 23794  		}
 23795  	}
 23796  	if s.ProvisionedThroughputOverride != nil {
 23797  		if err := s.ProvisionedThroughputOverride.Validate(); err != nil {
 23798  			invalidParams.AddNested("ProvisionedThroughputOverride", err.(request.ErrInvalidParams))
 23799  		}
 23800  	}
 23801  
 23802  	if invalidParams.Len() > 0 {
 23803  		return invalidParams
 23804  	}
 23805  	return nil
 23806  }
 23807  
 23808  // SetGlobalSecondaryIndexes sets the GlobalSecondaryIndexes field's value.
 23809  func (s *UpdateReplicationGroupMemberAction) SetGlobalSecondaryIndexes(v []*ReplicaGlobalSecondaryIndex) *UpdateReplicationGroupMemberAction {
 23810  	s.GlobalSecondaryIndexes = v
 23811  	return s
 23812  }
 23813  
 23814  // SetKMSMasterKeyId sets the KMSMasterKeyId field's value.
 23815  func (s *UpdateReplicationGroupMemberAction) SetKMSMasterKeyId(v string) *UpdateReplicationGroupMemberAction {
 23816  	s.KMSMasterKeyId = &v
 23817  	return s
 23818  }
 23819  
 23820  // SetProvisionedThroughputOverride sets the ProvisionedThroughputOverride field's value.
 23821  func (s *UpdateReplicationGroupMemberAction) SetProvisionedThroughputOverride(v *ProvisionedThroughputOverride) *UpdateReplicationGroupMemberAction {
 23822  	s.ProvisionedThroughputOverride = v
 23823  	return s
 23824  }
 23825  
 23826  // SetRegionName sets the RegionName field's value.
 23827  func (s *UpdateReplicationGroupMemberAction) SetRegionName(v string) *UpdateReplicationGroupMemberAction {
 23828  	s.RegionName = &v
 23829  	return s
 23830  }
 23831  
 23832  // Represents the input of an UpdateTable operation.
 23833  type UpdateTableInput struct {
 23834  	_ struct{} `type:"structure"`
 23835  
 23836  	// An array of attributes that describe the key schema for the table and indexes.
 23837  	// If you are adding a new global secondary index to the table, AttributeDefinitions
 23838  	// must include the key element(s) of the new index.
 23839  	AttributeDefinitions []*AttributeDefinition `type:"list"`
 23840  
 23841  	// Controls how you are charged for read and write throughput and how you manage
 23842  	// capacity. When switching from pay-per-request to provisioned capacity, initial
 23843  	// provisioned capacity values must be set. The initial provisioned capacity
 23844  	// values are estimated based on the consumed read and write capacity of your
 23845  	// table and global secondary indexes over the past 30 minutes.
 23846  	//
 23847  	//    * PROVISIONED - We recommend using PROVISIONED for predictable workloads.
 23848  	//    PROVISIONED sets the billing mode to Provisioned Mode (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual).
 23849  	//
 23850  	//    * PAY_PER_REQUEST - We recommend using PAY_PER_REQUEST for unpredictable
 23851  	//    workloads. PAY_PER_REQUEST sets the billing mode to On-Demand Mode (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand).
 23852  	BillingMode *string `type:"string" enum:"BillingMode"`
 23853  
 23854  	// An array of one or more global secondary indexes for the table. For each
 23855  	// index in the array, you can request one action:
 23856  	//
 23857  	//    * Create - add a new global secondary index to the table.
 23858  	//
 23859  	//    * Update - modify the provisioned throughput settings of an existing global
 23860  	//    secondary index.
 23861  	//
 23862  	//    * Delete - remove a global secondary index from the table.
 23863  	//
 23864  	// You can create or delete only one global secondary index per UpdateTable
 23865  	// operation.
 23866  	//
 23867  	// For more information, see Managing Global Secondary Indexes (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.OnlineOps.html)
 23868  	// in the Amazon DynamoDB Developer Guide.
 23869  	GlobalSecondaryIndexUpdates []*GlobalSecondaryIndexUpdate `type:"list"`
 23870  
 23871  	// The new provisioned throughput settings for the specified table or index.
 23872  	ProvisionedThroughput *ProvisionedThroughput `type:"structure"`
 23873  
 23874  	// A list of replica update actions (create, delete, or update) for the table.
 23875  	//
 23876  	// This property only applies to Version 2019.11.21 (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V2.html)
 23877  	// of global tables.
 23878  	ReplicaUpdates []*ReplicationGroupUpdate `min:"1" type:"list"`
 23879  
 23880  	// The new server-side encryption settings for the specified table.
 23881  	SSESpecification *SSESpecification `type:"structure"`
 23882  
 23883  	// Represents the DynamoDB Streams configuration for the table.
 23884  	//
 23885  	// You receive a ResourceInUseException if you try to enable a stream on a table
 23886  	// that already has a stream, or if you try to disable a stream on a table that
 23887  	// doesn't have a stream.
 23888  	StreamSpecification *StreamSpecification `type:"structure"`
 23889  
 23890  	// The name of the table to be updated.
 23891  	//
 23892  	// TableName is a required field
 23893  	TableName *string `min:"3" type:"string" required:"true"`
 23894  }
 23895  
 23896  // String returns the string representation.
 23897  //
 23898  // API parameter values that are decorated as "sensitive" in the API will not
 23899  // be included in the string output. The member name will be present, but the
 23900  // value will be replaced with "sensitive".
 23901  func (s UpdateTableInput) String() string {
 23902  	return awsutil.Prettify(s)
 23903  }
 23904  
 23905  // GoString returns the string representation.
 23906  //
 23907  // API parameter values that are decorated as "sensitive" in the API will not
 23908  // be included in the string output. The member name will be present, but the
 23909  // value will be replaced with "sensitive".
 23910  func (s UpdateTableInput) GoString() string {
 23911  	return s.String()
 23912  }
 23913  
 23914  // Validate inspects the fields of the type to determine if they are valid.
 23915  func (s *UpdateTableInput) Validate() error {
 23916  	invalidParams := request.ErrInvalidParams{Context: "UpdateTableInput"}
 23917  	if s.ReplicaUpdates != nil && len(s.ReplicaUpdates) < 1 {
 23918  		invalidParams.Add(request.NewErrParamMinLen("ReplicaUpdates", 1))
 23919  	}
 23920  	if s.TableName == nil {
 23921  		invalidParams.Add(request.NewErrParamRequired("TableName"))
 23922  	}
 23923  	if s.TableName != nil && len(*s.TableName) < 3 {
 23924  		invalidParams.Add(request.NewErrParamMinLen("TableName", 3))
 23925  	}
 23926  	if s.AttributeDefinitions != nil {
 23927  		for i, v := range s.AttributeDefinitions {
 23928  			if v == nil {
 23929  				continue
 23930  			}
 23931  			if err := v.Validate(); err != nil {
 23932  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttributeDefinitions", i), err.(request.ErrInvalidParams))
 23933  			}
 23934  		}
 23935  	}
 23936  	if s.GlobalSecondaryIndexUpdates != nil {
 23937  		for i, v := range s.GlobalSecondaryIndexUpdates {
 23938  			if v == nil {
 23939  				continue
 23940  			}
 23941  			if err := v.Validate(); err != nil {
 23942  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "GlobalSecondaryIndexUpdates", i), err.(request.ErrInvalidParams))
 23943  			}
 23944  		}
 23945  	}
 23946  	if s.ProvisionedThroughput != nil {
 23947  		if err := s.ProvisionedThroughput.Validate(); err != nil {
 23948  			invalidParams.AddNested("ProvisionedThroughput", err.(request.ErrInvalidParams))
 23949  		}
 23950  	}
 23951  	if s.ReplicaUpdates != nil {
 23952  		for i, v := range s.ReplicaUpdates {
 23953  			if v == nil {
 23954  				continue
 23955  			}
 23956  			if err := v.Validate(); err != nil {
 23957  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ReplicaUpdates", i), err.(request.ErrInvalidParams))
 23958  			}
 23959  		}
 23960  	}
 23961  	if s.StreamSpecification != nil {
 23962  		if err := s.StreamSpecification.Validate(); err != nil {
 23963  			invalidParams.AddNested("StreamSpecification", err.(request.ErrInvalidParams))
 23964  		}
 23965  	}
 23966  
 23967  	if invalidParams.Len() > 0 {
 23968  		return invalidParams
 23969  	}
 23970  	return nil
 23971  }
 23972  
 23973  // SetAttributeDefinitions sets the AttributeDefinitions field's value.
 23974  func (s *UpdateTableInput) SetAttributeDefinitions(v []*AttributeDefinition) *UpdateTableInput {
 23975  	s.AttributeDefinitions = v
 23976  	return s
 23977  }
 23978  
 23979  // SetBillingMode sets the BillingMode field's value.
 23980  func (s *UpdateTableInput) SetBillingMode(v string) *UpdateTableInput {
 23981  	s.BillingMode = &v
 23982  	return s
 23983  }
 23984  
 23985  // SetGlobalSecondaryIndexUpdates sets the GlobalSecondaryIndexUpdates field's value.
 23986  func (s *UpdateTableInput) SetGlobalSecondaryIndexUpdates(v []*GlobalSecondaryIndexUpdate) *UpdateTableInput {
 23987  	s.GlobalSecondaryIndexUpdates = v
 23988  	return s
 23989  }
 23990  
 23991  // SetProvisionedThroughput sets the ProvisionedThroughput field's value.
 23992  func (s *UpdateTableInput) SetProvisionedThroughput(v *ProvisionedThroughput) *UpdateTableInput {
 23993  	s.ProvisionedThroughput = v
 23994  	return s
 23995  }
 23996  
 23997  // SetReplicaUpdates sets the ReplicaUpdates field's value.
 23998  func (s *UpdateTableInput) SetReplicaUpdates(v []*ReplicationGroupUpdate) *UpdateTableInput {
 23999  	s.ReplicaUpdates = v
 24000  	return s
 24001  }
 24002  
 24003  // SetSSESpecification sets the SSESpecification field's value.
 24004  func (s *UpdateTableInput) SetSSESpecification(v *SSESpecification) *UpdateTableInput {
 24005  	s.SSESpecification = v
 24006  	return s
 24007  }
 24008  
 24009  // SetStreamSpecification sets the StreamSpecification field's value.
 24010  func (s *UpdateTableInput) SetStreamSpecification(v *StreamSpecification) *UpdateTableInput {
 24011  	s.StreamSpecification = v
 24012  	return s
 24013  }
 24014  
 24015  // SetTableName sets the TableName field's value.
 24016  func (s *UpdateTableInput) SetTableName(v string) *UpdateTableInput {
 24017  	s.TableName = &v
 24018  	return s
 24019  }
 24020  
 24021  // Represents the output of an UpdateTable operation.
 24022  type UpdateTableOutput struct {
 24023  	_ struct{} `type:"structure"`
 24024  
 24025  	// Represents the properties of the table.
 24026  	TableDescription *TableDescription `type:"structure"`
 24027  }
 24028  
 24029  // String returns the string representation.
 24030  //
 24031  // API parameter values that are decorated as "sensitive" in the API will not
 24032  // be included in the string output. The member name will be present, but the
 24033  // value will be replaced with "sensitive".
 24034  func (s UpdateTableOutput) String() string {
 24035  	return awsutil.Prettify(s)
 24036  }
 24037  
 24038  // GoString returns the string representation.
 24039  //
 24040  // API parameter values that are decorated as "sensitive" in the API will not
 24041  // be included in the string output. The member name will be present, but the
 24042  // value will be replaced with "sensitive".
 24043  func (s UpdateTableOutput) GoString() string {
 24044  	return s.String()
 24045  }
 24046  
 24047  // SetTableDescription sets the TableDescription field's value.
 24048  func (s *UpdateTableOutput) SetTableDescription(v *TableDescription) *UpdateTableOutput {
 24049  	s.TableDescription = v
 24050  	return s
 24051  }
 24052  
 24053  type UpdateTableReplicaAutoScalingInput struct {
 24054  	_ struct{} `type:"structure"`
 24055  
 24056  	// Represents the auto scaling settings of the global secondary indexes of the
 24057  	// replica to be updated.
 24058  	GlobalSecondaryIndexUpdates []*GlobalSecondaryIndexAutoScalingUpdate `min:"1" type:"list"`
 24059  
 24060  	// Represents the auto scaling settings to be modified for a global table or
 24061  	// global secondary index.
 24062  	ProvisionedWriteCapacityAutoScalingUpdate *AutoScalingSettingsUpdate `type:"structure"`
 24063  
 24064  	// Represents the auto scaling settings of replicas of the table that will be
 24065  	// modified.
 24066  	ReplicaUpdates []*ReplicaAutoScalingUpdate `min:"1" type:"list"`
 24067  
 24068  	// The name of the global table to be updated.
 24069  	//
 24070  	// TableName is a required field
 24071  	TableName *string `min:"3" type:"string" required:"true"`
 24072  }
 24073  
 24074  // String returns the string representation.
 24075  //
 24076  // API parameter values that are decorated as "sensitive" in the API will not
 24077  // be included in the string output. The member name will be present, but the
 24078  // value will be replaced with "sensitive".
 24079  func (s UpdateTableReplicaAutoScalingInput) String() string {
 24080  	return awsutil.Prettify(s)
 24081  }
 24082  
 24083  // GoString returns the string representation.
 24084  //
 24085  // API parameter values that are decorated as "sensitive" in the API will not
 24086  // be included in the string output. The member name will be present, but the
 24087  // value will be replaced with "sensitive".
 24088  func (s UpdateTableReplicaAutoScalingInput) GoString() string {
 24089  	return s.String()
 24090  }
 24091  
 24092  // Validate inspects the fields of the type to determine if they are valid.
 24093  func (s *UpdateTableReplicaAutoScalingInput) Validate() error {
 24094  	invalidParams := request.ErrInvalidParams{Context: "UpdateTableReplicaAutoScalingInput"}
 24095  	if s.GlobalSecondaryIndexUpdates != nil && len(s.GlobalSecondaryIndexUpdates) < 1 {
 24096  		invalidParams.Add(request.NewErrParamMinLen("GlobalSecondaryIndexUpdates", 1))
 24097  	}
 24098  	if s.ReplicaUpdates != nil && len(s.ReplicaUpdates) < 1 {
 24099  		invalidParams.Add(request.NewErrParamMinLen("ReplicaUpdates", 1))
 24100  	}
 24101  	if s.TableName == nil {
 24102  		invalidParams.Add(request.NewErrParamRequired("TableName"))
 24103  	}
 24104  	if s.TableName != nil && len(*s.TableName) < 3 {
 24105  		invalidParams.Add(request.NewErrParamMinLen("TableName", 3))
 24106  	}
 24107  	if s.GlobalSecondaryIndexUpdates != nil {
 24108  		for i, v := range s.GlobalSecondaryIndexUpdates {
 24109  			if v == nil {
 24110  				continue
 24111  			}
 24112  			if err := v.Validate(); err != nil {
 24113  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "GlobalSecondaryIndexUpdates", i), err.(request.ErrInvalidParams))
 24114  			}
 24115  		}
 24116  	}
 24117  	if s.ProvisionedWriteCapacityAutoScalingUpdate != nil {
 24118  		if err := s.ProvisionedWriteCapacityAutoScalingUpdate.Validate(); err != nil {
 24119  			invalidParams.AddNested("ProvisionedWriteCapacityAutoScalingUpdate", err.(request.ErrInvalidParams))
 24120  		}
 24121  	}
 24122  	if s.ReplicaUpdates != nil {
 24123  		for i, v := range s.ReplicaUpdates {
 24124  			if v == nil {
 24125  				continue
 24126  			}
 24127  			if err := v.Validate(); err != nil {
 24128  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ReplicaUpdates", i), err.(request.ErrInvalidParams))
 24129  			}
 24130  		}
 24131  	}
 24132  
 24133  	if invalidParams.Len() > 0 {
 24134  		return invalidParams
 24135  	}
 24136  	return nil
 24137  }
 24138  
 24139  // SetGlobalSecondaryIndexUpdates sets the GlobalSecondaryIndexUpdates field's value.
 24140  func (s *UpdateTableReplicaAutoScalingInput) SetGlobalSecondaryIndexUpdates(v []*GlobalSecondaryIndexAutoScalingUpdate) *UpdateTableReplicaAutoScalingInput {
 24141  	s.GlobalSecondaryIndexUpdates = v
 24142  	return s
 24143  }
 24144  
 24145  // SetProvisionedWriteCapacityAutoScalingUpdate sets the ProvisionedWriteCapacityAutoScalingUpdate field's value.
 24146  func (s *UpdateTableReplicaAutoScalingInput) SetProvisionedWriteCapacityAutoScalingUpdate(v *AutoScalingSettingsUpdate) *UpdateTableReplicaAutoScalingInput {
 24147  	s.ProvisionedWriteCapacityAutoScalingUpdate = v
 24148  	return s
 24149  }
 24150  
 24151  // SetReplicaUpdates sets the ReplicaUpdates field's value.
 24152  func (s *UpdateTableReplicaAutoScalingInput) SetReplicaUpdates(v []*ReplicaAutoScalingUpdate) *UpdateTableReplicaAutoScalingInput {
 24153  	s.ReplicaUpdates = v
 24154  	return s
 24155  }
 24156  
 24157  // SetTableName sets the TableName field's value.
 24158  func (s *UpdateTableReplicaAutoScalingInput) SetTableName(v string) *UpdateTableReplicaAutoScalingInput {
 24159  	s.TableName = &v
 24160  	return s
 24161  }
 24162  
 24163  type UpdateTableReplicaAutoScalingOutput struct {
 24164  	_ struct{} `type:"structure"`
 24165  
 24166  	// Returns information about the auto scaling settings of a table with replicas.
 24167  	TableAutoScalingDescription *TableAutoScalingDescription `type:"structure"`
 24168  }
 24169  
 24170  // String returns the string representation.
 24171  //
 24172  // API parameter values that are decorated as "sensitive" in the API will not
 24173  // be included in the string output. The member name will be present, but the
 24174  // value will be replaced with "sensitive".
 24175  func (s UpdateTableReplicaAutoScalingOutput) String() string {
 24176  	return awsutil.Prettify(s)
 24177  }
 24178  
 24179  // GoString returns the string representation.
 24180  //
 24181  // API parameter values that are decorated as "sensitive" in the API will not
 24182  // be included in the string output. The member name will be present, but the
 24183  // value will be replaced with "sensitive".
 24184  func (s UpdateTableReplicaAutoScalingOutput) GoString() string {
 24185  	return s.String()
 24186  }
 24187  
 24188  // SetTableAutoScalingDescription sets the TableAutoScalingDescription field's value.
 24189  func (s *UpdateTableReplicaAutoScalingOutput) SetTableAutoScalingDescription(v *TableAutoScalingDescription) *UpdateTableReplicaAutoScalingOutput {
 24190  	s.TableAutoScalingDescription = v
 24191  	return s
 24192  }
 24193  
 24194  // Represents the input of an UpdateTimeToLive operation.
 24195  type UpdateTimeToLiveInput struct {
 24196  	_ struct{} `type:"structure"`
 24197  
 24198  	// The name of the table to be configured.
 24199  	//
 24200  	// TableName is a required field
 24201  	TableName *string `min:"3" type:"string" required:"true"`
 24202  
 24203  	// Represents the settings used to enable or disable Time to Live for the specified
 24204  	// table.
 24205  	//
 24206  	// TimeToLiveSpecification is a required field
 24207  	TimeToLiveSpecification *TimeToLiveSpecification `type:"structure" required:"true"`
 24208  }
 24209  
 24210  // String returns the string representation.
 24211  //
 24212  // API parameter values that are decorated as "sensitive" in the API will not
 24213  // be included in the string output. The member name will be present, but the
 24214  // value will be replaced with "sensitive".
 24215  func (s UpdateTimeToLiveInput) String() string {
 24216  	return awsutil.Prettify(s)
 24217  }
 24218  
 24219  // GoString returns the string representation.
 24220  //
 24221  // API parameter values that are decorated as "sensitive" in the API will not
 24222  // be included in the string output. The member name will be present, but the
 24223  // value will be replaced with "sensitive".
 24224  func (s UpdateTimeToLiveInput) GoString() string {
 24225  	return s.String()
 24226  }
 24227  
 24228  // Validate inspects the fields of the type to determine if they are valid.
 24229  func (s *UpdateTimeToLiveInput) Validate() error {
 24230  	invalidParams := request.ErrInvalidParams{Context: "UpdateTimeToLiveInput"}
 24231  	if s.TableName == nil {
 24232  		invalidParams.Add(request.NewErrParamRequired("TableName"))
 24233  	}
 24234  	if s.TableName != nil && len(*s.TableName) < 3 {
 24235  		invalidParams.Add(request.NewErrParamMinLen("TableName", 3))
 24236  	}
 24237  	if s.TimeToLiveSpecification == nil {
 24238  		invalidParams.Add(request.NewErrParamRequired("TimeToLiveSpecification"))
 24239  	}
 24240  	if s.TimeToLiveSpecification != nil {
 24241  		if err := s.TimeToLiveSpecification.Validate(); err != nil {
 24242  			invalidParams.AddNested("TimeToLiveSpecification", err.(request.ErrInvalidParams))
 24243  		}
 24244  	}
 24245  
 24246  	if invalidParams.Len() > 0 {
 24247  		return invalidParams
 24248  	}
 24249  	return nil
 24250  }
 24251  
 24252  // SetTableName sets the TableName field's value.
 24253  func (s *UpdateTimeToLiveInput) SetTableName(v string) *UpdateTimeToLiveInput {
 24254  	s.TableName = &v
 24255  	return s
 24256  }
 24257  
 24258  // SetTimeToLiveSpecification sets the TimeToLiveSpecification field's value.
 24259  func (s *UpdateTimeToLiveInput) SetTimeToLiveSpecification(v *TimeToLiveSpecification) *UpdateTimeToLiveInput {
 24260  	s.TimeToLiveSpecification = v
 24261  	return s
 24262  }
 24263  
 24264  type UpdateTimeToLiveOutput struct {
 24265  	_ struct{} `type:"structure"`
 24266  
 24267  	// Represents the output of an UpdateTimeToLive operation.
 24268  	TimeToLiveSpecification *TimeToLiveSpecification `type:"structure"`
 24269  }
 24270  
 24271  // String returns the string representation.
 24272  //
 24273  // API parameter values that are decorated as "sensitive" in the API will not
 24274  // be included in the string output. The member name will be present, but the
 24275  // value will be replaced with "sensitive".
 24276  func (s UpdateTimeToLiveOutput) String() string {
 24277  	return awsutil.Prettify(s)
 24278  }
 24279  
 24280  // GoString returns the string representation.
 24281  //
 24282  // API parameter values that are decorated as "sensitive" in the API will not
 24283  // be included in the string output. The member name will be present, but the
 24284  // value will be replaced with "sensitive".
 24285  func (s UpdateTimeToLiveOutput) GoString() string {
 24286  	return s.String()
 24287  }
 24288  
 24289  // SetTimeToLiveSpecification sets the TimeToLiveSpecification field's value.
 24290  func (s *UpdateTimeToLiveOutput) SetTimeToLiveSpecification(v *TimeToLiveSpecification) *UpdateTimeToLiveOutput {
 24291  	s.TimeToLiveSpecification = v
 24292  	return s
 24293  }
 24294  
 24295  // Represents an operation to perform - either DeleteItem or PutItem. You can
 24296  // only request one of these operations, not both, in a single WriteRequest.
 24297  // If you do need to perform both of these operations, you need to provide two
 24298  // separate WriteRequest objects.
 24299  type WriteRequest struct {
 24300  	_ struct{} `type:"structure"`
 24301  
 24302  	// A request to perform a DeleteItem operation.
 24303  	DeleteRequest *DeleteRequest `type:"structure"`
 24304  
 24305  	// A request to perform a PutItem operation.
 24306  	PutRequest *PutRequest `type:"structure"`
 24307  }
 24308  
 24309  // String returns the string representation.
 24310  //
 24311  // API parameter values that are decorated as "sensitive" in the API will not
 24312  // be included in the string output. The member name will be present, but the
 24313  // value will be replaced with "sensitive".
 24314  func (s WriteRequest) String() string {
 24315  	return awsutil.Prettify(s)
 24316  }
 24317  
 24318  // GoString returns the string representation.
 24319  //
 24320  // API parameter values that are decorated as "sensitive" in the API will not
 24321  // be included in the string output. The member name will be present, but the
 24322  // value will be replaced with "sensitive".
 24323  func (s WriteRequest) GoString() string {
 24324  	return s.String()
 24325  }
 24326  
 24327  // SetDeleteRequest sets the DeleteRequest field's value.
 24328  func (s *WriteRequest) SetDeleteRequest(v *DeleteRequest) *WriteRequest {
 24329  	s.DeleteRequest = v
 24330  	return s
 24331  }
 24332  
 24333  // SetPutRequest sets the PutRequest field's value.
 24334  func (s *WriteRequest) SetPutRequest(v *PutRequest) *WriteRequest {
 24335  	s.PutRequest = v
 24336  	return s
 24337  }
 24338  
 24339  const (
 24340  	// AttributeActionAdd is a AttributeAction enum value
 24341  	AttributeActionAdd = "ADD"
 24342  
 24343  	// AttributeActionPut is a AttributeAction enum value
 24344  	AttributeActionPut = "PUT"
 24345  
 24346  	// AttributeActionDelete is a AttributeAction enum value
 24347  	AttributeActionDelete = "DELETE"
 24348  )
 24349  
 24350  // AttributeAction_Values returns all elements of the AttributeAction enum
 24351  func AttributeAction_Values() []string {
 24352  	return []string{
 24353  		AttributeActionAdd,
 24354  		AttributeActionPut,
 24355  		AttributeActionDelete,
 24356  	}
 24357  }
 24358  
 24359  const (
 24360  	// BackupStatusCreating is a BackupStatus enum value
 24361  	BackupStatusCreating = "CREATING"
 24362  
 24363  	// BackupStatusDeleted is a BackupStatus enum value
 24364  	BackupStatusDeleted = "DELETED"
 24365  
 24366  	// BackupStatusAvailable is a BackupStatus enum value
 24367  	BackupStatusAvailable = "AVAILABLE"
 24368  )
 24369  
 24370  // BackupStatus_Values returns all elements of the BackupStatus enum
 24371  func BackupStatus_Values() []string {
 24372  	return []string{
 24373  		BackupStatusCreating,
 24374  		BackupStatusDeleted,
 24375  		BackupStatusAvailable,
 24376  	}
 24377  }
 24378  
 24379  const (
 24380  	// BackupTypeUser is a BackupType enum value
 24381  	BackupTypeUser = "USER"
 24382  
 24383  	// BackupTypeSystem is a BackupType enum value
 24384  	BackupTypeSystem = "SYSTEM"
 24385  
 24386  	// BackupTypeAwsBackup is a BackupType enum value
 24387  	BackupTypeAwsBackup = "AWS_BACKUP"
 24388  )
 24389  
 24390  // BackupType_Values returns all elements of the BackupType enum
 24391  func BackupType_Values() []string {
 24392  	return []string{
 24393  		BackupTypeUser,
 24394  		BackupTypeSystem,
 24395  		BackupTypeAwsBackup,
 24396  	}
 24397  }
 24398  
 24399  const (
 24400  	// BackupTypeFilterUser is a BackupTypeFilter enum value
 24401  	BackupTypeFilterUser = "USER"
 24402  
 24403  	// BackupTypeFilterSystem is a BackupTypeFilter enum value
 24404  	BackupTypeFilterSystem = "SYSTEM"
 24405  
 24406  	// BackupTypeFilterAwsBackup is a BackupTypeFilter enum value
 24407  	BackupTypeFilterAwsBackup = "AWS_BACKUP"
 24408  
 24409  	// BackupTypeFilterAll is a BackupTypeFilter enum value
 24410  	BackupTypeFilterAll = "ALL"
 24411  )
 24412  
 24413  // BackupTypeFilter_Values returns all elements of the BackupTypeFilter enum
 24414  func BackupTypeFilter_Values() []string {
 24415  	return []string{
 24416  		BackupTypeFilterUser,
 24417  		BackupTypeFilterSystem,
 24418  		BackupTypeFilterAwsBackup,
 24419  		BackupTypeFilterAll,
 24420  	}
 24421  }
 24422  
 24423  const (
 24424  	// BatchStatementErrorCodeEnumConditionalCheckFailed is a BatchStatementErrorCodeEnum enum value
 24425  	BatchStatementErrorCodeEnumConditionalCheckFailed = "ConditionalCheckFailed"
 24426  
 24427  	// BatchStatementErrorCodeEnumItemCollectionSizeLimitExceeded is a BatchStatementErrorCodeEnum enum value
 24428  	BatchStatementErrorCodeEnumItemCollectionSizeLimitExceeded = "ItemCollectionSizeLimitExceeded"
 24429  
 24430  	// BatchStatementErrorCodeEnumRequestLimitExceeded is a BatchStatementErrorCodeEnum enum value
 24431  	BatchStatementErrorCodeEnumRequestLimitExceeded = "RequestLimitExceeded"
 24432  
 24433  	// BatchStatementErrorCodeEnumValidationError is a BatchStatementErrorCodeEnum enum value
 24434  	BatchStatementErrorCodeEnumValidationError = "ValidationError"
 24435  
 24436  	// BatchStatementErrorCodeEnumProvisionedThroughputExceeded is a BatchStatementErrorCodeEnum enum value
 24437  	BatchStatementErrorCodeEnumProvisionedThroughputExceeded = "ProvisionedThroughputExceeded"
 24438  
 24439  	// BatchStatementErrorCodeEnumTransactionConflict is a BatchStatementErrorCodeEnum enum value
 24440  	BatchStatementErrorCodeEnumTransactionConflict = "TransactionConflict"
 24441  
 24442  	// BatchStatementErrorCodeEnumThrottlingError is a BatchStatementErrorCodeEnum enum value
 24443  	BatchStatementErrorCodeEnumThrottlingError = "ThrottlingError"
 24444  
 24445  	// BatchStatementErrorCodeEnumInternalServerError is a BatchStatementErrorCodeEnum enum value
 24446  	BatchStatementErrorCodeEnumInternalServerError = "InternalServerError"
 24447  
 24448  	// BatchStatementErrorCodeEnumResourceNotFound is a BatchStatementErrorCodeEnum enum value
 24449  	BatchStatementErrorCodeEnumResourceNotFound = "ResourceNotFound"
 24450  
 24451  	// BatchStatementErrorCodeEnumAccessDenied is a BatchStatementErrorCodeEnum enum value
 24452  	BatchStatementErrorCodeEnumAccessDenied = "AccessDenied"
 24453  
 24454  	// BatchStatementErrorCodeEnumDuplicateItem is a BatchStatementErrorCodeEnum enum value
 24455  	BatchStatementErrorCodeEnumDuplicateItem = "DuplicateItem"
 24456  )
 24457  
 24458  // BatchStatementErrorCodeEnum_Values returns all elements of the BatchStatementErrorCodeEnum enum
 24459  func BatchStatementErrorCodeEnum_Values() []string {
 24460  	return []string{
 24461  		BatchStatementErrorCodeEnumConditionalCheckFailed,
 24462  		BatchStatementErrorCodeEnumItemCollectionSizeLimitExceeded,
 24463  		BatchStatementErrorCodeEnumRequestLimitExceeded,
 24464  		BatchStatementErrorCodeEnumValidationError,
 24465  		BatchStatementErrorCodeEnumProvisionedThroughputExceeded,
 24466  		BatchStatementErrorCodeEnumTransactionConflict,
 24467  		BatchStatementErrorCodeEnumThrottlingError,
 24468  		BatchStatementErrorCodeEnumInternalServerError,
 24469  		BatchStatementErrorCodeEnumResourceNotFound,
 24470  		BatchStatementErrorCodeEnumAccessDenied,
 24471  		BatchStatementErrorCodeEnumDuplicateItem,
 24472  	}
 24473  }
 24474  
 24475  const (
 24476  	// BillingModeProvisioned is a BillingMode enum value
 24477  	BillingModeProvisioned = "PROVISIONED"
 24478  
 24479  	// BillingModePayPerRequest is a BillingMode enum value
 24480  	BillingModePayPerRequest = "PAY_PER_REQUEST"
 24481  )
 24482  
 24483  // BillingMode_Values returns all elements of the BillingMode enum
 24484  func BillingMode_Values() []string {
 24485  	return []string{
 24486  		BillingModeProvisioned,
 24487  		BillingModePayPerRequest,
 24488  	}
 24489  }
 24490  
 24491  const (
 24492  	// ComparisonOperatorEq is a ComparisonOperator enum value
 24493  	ComparisonOperatorEq = "EQ"
 24494  
 24495  	// ComparisonOperatorNe is a ComparisonOperator enum value
 24496  	ComparisonOperatorNe = "NE"
 24497  
 24498  	// ComparisonOperatorIn is a ComparisonOperator enum value
 24499  	ComparisonOperatorIn = "IN"
 24500  
 24501  	// ComparisonOperatorLe is a ComparisonOperator enum value
 24502  	ComparisonOperatorLe = "LE"
 24503  
 24504  	// ComparisonOperatorLt is a ComparisonOperator enum value
 24505  	ComparisonOperatorLt = "LT"
 24506  
 24507  	// ComparisonOperatorGe is a ComparisonOperator enum value
 24508  	ComparisonOperatorGe = "GE"
 24509  
 24510  	// ComparisonOperatorGt is a ComparisonOperator enum value
 24511  	ComparisonOperatorGt = "GT"
 24512  
 24513  	// ComparisonOperatorBetween is a ComparisonOperator enum value
 24514  	ComparisonOperatorBetween = "BETWEEN"
 24515  
 24516  	// ComparisonOperatorNotNull is a ComparisonOperator enum value
 24517  	ComparisonOperatorNotNull = "NOT_NULL"
 24518  
 24519  	// ComparisonOperatorNull is a ComparisonOperator enum value
 24520  	ComparisonOperatorNull = "NULL"
 24521  
 24522  	// ComparisonOperatorContains is a ComparisonOperator enum value
 24523  	ComparisonOperatorContains = "CONTAINS"
 24524  
 24525  	// ComparisonOperatorNotContains is a ComparisonOperator enum value
 24526  	ComparisonOperatorNotContains = "NOT_CONTAINS"
 24527  
 24528  	// ComparisonOperatorBeginsWith is a ComparisonOperator enum value
 24529  	ComparisonOperatorBeginsWith = "BEGINS_WITH"
 24530  )
 24531  
 24532  // ComparisonOperator_Values returns all elements of the ComparisonOperator enum
 24533  func ComparisonOperator_Values() []string {
 24534  	return []string{
 24535  		ComparisonOperatorEq,
 24536  		ComparisonOperatorNe,
 24537  		ComparisonOperatorIn,
 24538  		ComparisonOperatorLe,
 24539  		ComparisonOperatorLt,
 24540  		ComparisonOperatorGe,
 24541  		ComparisonOperatorGt,
 24542  		ComparisonOperatorBetween,
 24543  		ComparisonOperatorNotNull,
 24544  		ComparisonOperatorNull,
 24545  		ComparisonOperatorContains,
 24546  		ComparisonOperatorNotContains,
 24547  		ComparisonOperatorBeginsWith,
 24548  	}
 24549  }
 24550  
 24551  const (
 24552  	// ConditionalOperatorAnd is a ConditionalOperator enum value
 24553  	ConditionalOperatorAnd = "AND"
 24554  
 24555  	// ConditionalOperatorOr is a ConditionalOperator enum value
 24556  	ConditionalOperatorOr = "OR"
 24557  )
 24558  
 24559  // ConditionalOperator_Values returns all elements of the ConditionalOperator enum
 24560  func ConditionalOperator_Values() []string {
 24561  	return []string{
 24562  		ConditionalOperatorAnd,
 24563  		ConditionalOperatorOr,
 24564  	}
 24565  }
 24566  
 24567  const (
 24568  	// ContinuousBackupsStatusEnabled is a ContinuousBackupsStatus enum value
 24569  	ContinuousBackupsStatusEnabled = "ENABLED"
 24570  
 24571  	// ContinuousBackupsStatusDisabled is a ContinuousBackupsStatus enum value
 24572  	ContinuousBackupsStatusDisabled = "DISABLED"
 24573  )
 24574  
 24575  // ContinuousBackupsStatus_Values returns all elements of the ContinuousBackupsStatus enum
 24576  func ContinuousBackupsStatus_Values() []string {
 24577  	return []string{
 24578  		ContinuousBackupsStatusEnabled,
 24579  		ContinuousBackupsStatusDisabled,
 24580  	}
 24581  }
 24582  
 24583  const (
 24584  	// ContributorInsightsActionEnable is a ContributorInsightsAction enum value
 24585  	ContributorInsightsActionEnable = "ENABLE"
 24586  
 24587  	// ContributorInsightsActionDisable is a ContributorInsightsAction enum value
 24588  	ContributorInsightsActionDisable = "DISABLE"
 24589  )
 24590  
 24591  // ContributorInsightsAction_Values returns all elements of the ContributorInsightsAction enum
 24592  func ContributorInsightsAction_Values() []string {
 24593  	return []string{
 24594  		ContributorInsightsActionEnable,
 24595  		ContributorInsightsActionDisable,
 24596  	}
 24597  }
 24598  
 24599  const (
 24600  	// ContributorInsightsStatusEnabling is a ContributorInsightsStatus enum value
 24601  	ContributorInsightsStatusEnabling = "ENABLING"
 24602  
 24603  	// ContributorInsightsStatusEnabled is a ContributorInsightsStatus enum value
 24604  	ContributorInsightsStatusEnabled = "ENABLED"
 24605  
 24606  	// ContributorInsightsStatusDisabling is a ContributorInsightsStatus enum value
 24607  	ContributorInsightsStatusDisabling = "DISABLING"
 24608  
 24609  	// ContributorInsightsStatusDisabled is a ContributorInsightsStatus enum value
 24610  	ContributorInsightsStatusDisabled = "DISABLED"
 24611  
 24612  	// ContributorInsightsStatusFailed is a ContributorInsightsStatus enum value
 24613  	ContributorInsightsStatusFailed = "FAILED"
 24614  )
 24615  
 24616  // ContributorInsightsStatus_Values returns all elements of the ContributorInsightsStatus enum
 24617  func ContributorInsightsStatus_Values() []string {
 24618  	return []string{
 24619  		ContributorInsightsStatusEnabling,
 24620  		ContributorInsightsStatusEnabled,
 24621  		ContributorInsightsStatusDisabling,
 24622  		ContributorInsightsStatusDisabled,
 24623  		ContributorInsightsStatusFailed,
 24624  	}
 24625  }
 24626  
 24627  const (
 24628  	// DestinationStatusEnabling is a DestinationStatus enum value
 24629  	DestinationStatusEnabling = "ENABLING"
 24630  
 24631  	// DestinationStatusActive is a DestinationStatus enum value
 24632  	DestinationStatusActive = "ACTIVE"
 24633  
 24634  	// DestinationStatusDisabling is a DestinationStatus enum value
 24635  	DestinationStatusDisabling = "DISABLING"
 24636  
 24637  	// DestinationStatusDisabled is a DestinationStatus enum value
 24638  	DestinationStatusDisabled = "DISABLED"
 24639  
 24640  	// DestinationStatusEnableFailed is a DestinationStatus enum value
 24641  	DestinationStatusEnableFailed = "ENABLE_FAILED"
 24642  )
 24643  
 24644  // DestinationStatus_Values returns all elements of the DestinationStatus enum
 24645  func DestinationStatus_Values() []string {
 24646  	return []string{
 24647  		DestinationStatusEnabling,
 24648  		DestinationStatusActive,
 24649  		DestinationStatusDisabling,
 24650  		DestinationStatusDisabled,
 24651  		DestinationStatusEnableFailed,
 24652  	}
 24653  }
 24654  
 24655  const (
 24656  	// ExportFormatDynamodbJson is a ExportFormat enum value
 24657  	ExportFormatDynamodbJson = "DYNAMODB_JSON"
 24658  
 24659  	// ExportFormatIon is a ExportFormat enum value
 24660  	ExportFormatIon = "ION"
 24661  )
 24662  
 24663  // ExportFormat_Values returns all elements of the ExportFormat enum
 24664  func ExportFormat_Values() []string {
 24665  	return []string{
 24666  		ExportFormatDynamodbJson,
 24667  		ExportFormatIon,
 24668  	}
 24669  }
 24670  
 24671  const (
 24672  	// ExportStatusInProgress is a ExportStatus enum value
 24673  	ExportStatusInProgress = "IN_PROGRESS"
 24674  
 24675  	// ExportStatusCompleted is a ExportStatus enum value
 24676  	ExportStatusCompleted = "COMPLETED"
 24677  
 24678  	// ExportStatusFailed is a ExportStatus enum value
 24679  	ExportStatusFailed = "FAILED"
 24680  )
 24681  
 24682  // ExportStatus_Values returns all elements of the ExportStatus enum
 24683  func ExportStatus_Values() []string {
 24684  	return []string{
 24685  		ExportStatusInProgress,
 24686  		ExportStatusCompleted,
 24687  		ExportStatusFailed,
 24688  	}
 24689  }
 24690  
 24691  const (
 24692  	// GlobalTableStatusCreating is a GlobalTableStatus enum value
 24693  	GlobalTableStatusCreating = "CREATING"
 24694  
 24695  	// GlobalTableStatusActive is a GlobalTableStatus enum value
 24696  	GlobalTableStatusActive = "ACTIVE"
 24697  
 24698  	// GlobalTableStatusDeleting is a GlobalTableStatus enum value
 24699  	GlobalTableStatusDeleting = "DELETING"
 24700  
 24701  	// GlobalTableStatusUpdating is a GlobalTableStatus enum value
 24702  	GlobalTableStatusUpdating = "UPDATING"
 24703  )
 24704  
 24705  // GlobalTableStatus_Values returns all elements of the GlobalTableStatus enum
 24706  func GlobalTableStatus_Values() []string {
 24707  	return []string{
 24708  		GlobalTableStatusCreating,
 24709  		GlobalTableStatusActive,
 24710  		GlobalTableStatusDeleting,
 24711  		GlobalTableStatusUpdating,
 24712  	}
 24713  }
 24714  
 24715  const (
 24716  	// IndexStatusCreating is a IndexStatus enum value
 24717  	IndexStatusCreating = "CREATING"
 24718  
 24719  	// IndexStatusUpdating is a IndexStatus enum value
 24720  	IndexStatusUpdating = "UPDATING"
 24721  
 24722  	// IndexStatusDeleting is a IndexStatus enum value
 24723  	IndexStatusDeleting = "DELETING"
 24724  
 24725  	// IndexStatusActive is a IndexStatus enum value
 24726  	IndexStatusActive = "ACTIVE"
 24727  )
 24728  
 24729  // IndexStatus_Values returns all elements of the IndexStatus enum
 24730  func IndexStatus_Values() []string {
 24731  	return []string{
 24732  		IndexStatusCreating,
 24733  		IndexStatusUpdating,
 24734  		IndexStatusDeleting,
 24735  		IndexStatusActive,
 24736  	}
 24737  }
 24738  
 24739  const (
 24740  	// KeyTypeHash is a KeyType enum value
 24741  	KeyTypeHash = "HASH"
 24742  
 24743  	// KeyTypeRange is a KeyType enum value
 24744  	KeyTypeRange = "RANGE"
 24745  )
 24746  
 24747  // KeyType_Values returns all elements of the KeyType enum
 24748  func KeyType_Values() []string {
 24749  	return []string{
 24750  		KeyTypeHash,
 24751  		KeyTypeRange,
 24752  	}
 24753  }
 24754  
 24755  const (
 24756  	// PointInTimeRecoveryStatusEnabled is a PointInTimeRecoveryStatus enum value
 24757  	PointInTimeRecoveryStatusEnabled = "ENABLED"
 24758  
 24759  	// PointInTimeRecoveryStatusDisabled is a PointInTimeRecoveryStatus enum value
 24760  	PointInTimeRecoveryStatusDisabled = "DISABLED"
 24761  )
 24762  
 24763  // PointInTimeRecoveryStatus_Values returns all elements of the PointInTimeRecoveryStatus enum
 24764  func PointInTimeRecoveryStatus_Values() []string {
 24765  	return []string{
 24766  		PointInTimeRecoveryStatusEnabled,
 24767  		PointInTimeRecoveryStatusDisabled,
 24768  	}
 24769  }
 24770  
 24771  const (
 24772  	// ProjectionTypeAll is a ProjectionType enum value
 24773  	ProjectionTypeAll = "ALL"
 24774  
 24775  	// ProjectionTypeKeysOnly is a ProjectionType enum value
 24776  	ProjectionTypeKeysOnly = "KEYS_ONLY"
 24777  
 24778  	// ProjectionTypeInclude is a ProjectionType enum value
 24779  	ProjectionTypeInclude = "INCLUDE"
 24780  )
 24781  
 24782  // ProjectionType_Values returns all elements of the ProjectionType enum
 24783  func ProjectionType_Values() []string {
 24784  	return []string{
 24785  		ProjectionTypeAll,
 24786  		ProjectionTypeKeysOnly,
 24787  		ProjectionTypeInclude,
 24788  	}
 24789  }
 24790  
 24791  const (
 24792  	// ReplicaStatusCreating is a ReplicaStatus enum value
 24793  	ReplicaStatusCreating = "CREATING"
 24794  
 24795  	// ReplicaStatusCreationFailed is a ReplicaStatus enum value
 24796  	ReplicaStatusCreationFailed = "CREATION_FAILED"
 24797  
 24798  	// ReplicaStatusUpdating is a ReplicaStatus enum value
 24799  	ReplicaStatusUpdating = "UPDATING"
 24800  
 24801  	// ReplicaStatusDeleting is a ReplicaStatus enum value
 24802  	ReplicaStatusDeleting = "DELETING"
 24803  
 24804  	// ReplicaStatusActive is a ReplicaStatus enum value
 24805  	ReplicaStatusActive = "ACTIVE"
 24806  
 24807  	// ReplicaStatusRegionDisabled is a ReplicaStatus enum value
 24808  	ReplicaStatusRegionDisabled = "REGION_DISABLED"
 24809  
 24810  	// ReplicaStatusInaccessibleEncryptionCredentials is a ReplicaStatus enum value
 24811  	ReplicaStatusInaccessibleEncryptionCredentials = "INACCESSIBLE_ENCRYPTION_CREDENTIALS"
 24812  )
 24813  
 24814  // ReplicaStatus_Values returns all elements of the ReplicaStatus enum
 24815  func ReplicaStatus_Values() []string {
 24816  	return []string{
 24817  		ReplicaStatusCreating,
 24818  		ReplicaStatusCreationFailed,
 24819  		ReplicaStatusUpdating,
 24820  		ReplicaStatusDeleting,
 24821  		ReplicaStatusActive,
 24822  		ReplicaStatusRegionDisabled,
 24823  		ReplicaStatusInaccessibleEncryptionCredentials,
 24824  	}
 24825  }
 24826  
 24827  // Determines the level of detail about provisioned throughput consumption that
 24828  // is returned in the response:
 24829  //
 24830  //    * INDEXES - The response includes the aggregate ConsumedCapacity for the
 24831  //    operation, together with ConsumedCapacity for each table and secondary
 24832  //    index that was accessed. Note that some operations, such as GetItem and
 24833  //    BatchGetItem, do not access any indexes at all. In these cases, specifying
 24834  //    INDEXES will only return ConsumedCapacity information for table(s).
 24835  //
 24836  //    * TOTAL - The response includes only the aggregate ConsumedCapacity for
 24837  //    the operation.
 24838  //
 24839  //    * NONE - No ConsumedCapacity details are included in the response.
 24840  const (
 24841  	// ReturnConsumedCapacityIndexes is a ReturnConsumedCapacity enum value
 24842  	ReturnConsumedCapacityIndexes = "INDEXES"
 24843  
 24844  	// ReturnConsumedCapacityTotal is a ReturnConsumedCapacity enum value
 24845  	ReturnConsumedCapacityTotal = "TOTAL"
 24846  
 24847  	// ReturnConsumedCapacityNone is a ReturnConsumedCapacity enum value
 24848  	ReturnConsumedCapacityNone = "NONE"
 24849  )
 24850  
 24851  // ReturnConsumedCapacity_Values returns all elements of the ReturnConsumedCapacity enum
 24852  func ReturnConsumedCapacity_Values() []string {
 24853  	return []string{
 24854  		ReturnConsumedCapacityIndexes,
 24855  		ReturnConsumedCapacityTotal,
 24856  		ReturnConsumedCapacityNone,
 24857  	}
 24858  }
 24859  
 24860  const (
 24861  	// ReturnItemCollectionMetricsSize is a ReturnItemCollectionMetrics enum value
 24862  	ReturnItemCollectionMetricsSize = "SIZE"
 24863  
 24864  	// ReturnItemCollectionMetricsNone is a ReturnItemCollectionMetrics enum value
 24865  	ReturnItemCollectionMetricsNone = "NONE"
 24866  )
 24867  
 24868  // ReturnItemCollectionMetrics_Values returns all elements of the ReturnItemCollectionMetrics enum
 24869  func ReturnItemCollectionMetrics_Values() []string {
 24870  	return []string{
 24871  		ReturnItemCollectionMetricsSize,
 24872  		ReturnItemCollectionMetricsNone,
 24873  	}
 24874  }
 24875  
 24876  const (
 24877  	// ReturnValueNone is a ReturnValue enum value
 24878  	ReturnValueNone = "NONE"
 24879  
 24880  	// ReturnValueAllOld is a ReturnValue enum value
 24881  	ReturnValueAllOld = "ALL_OLD"
 24882  
 24883  	// ReturnValueUpdatedOld is a ReturnValue enum value
 24884  	ReturnValueUpdatedOld = "UPDATED_OLD"
 24885  
 24886  	// ReturnValueAllNew is a ReturnValue enum value
 24887  	ReturnValueAllNew = "ALL_NEW"
 24888  
 24889  	// ReturnValueUpdatedNew is a ReturnValue enum value
 24890  	ReturnValueUpdatedNew = "UPDATED_NEW"
 24891  )
 24892  
 24893  // ReturnValue_Values returns all elements of the ReturnValue enum
 24894  func ReturnValue_Values() []string {
 24895  	return []string{
 24896  		ReturnValueNone,
 24897  		ReturnValueAllOld,
 24898  		ReturnValueUpdatedOld,
 24899  		ReturnValueAllNew,
 24900  		ReturnValueUpdatedNew,
 24901  	}
 24902  }
 24903  
 24904  const (
 24905  	// ReturnValuesOnConditionCheckFailureAllOld is a ReturnValuesOnConditionCheckFailure enum value
 24906  	ReturnValuesOnConditionCheckFailureAllOld = "ALL_OLD"
 24907  
 24908  	// ReturnValuesOnConditionCheckFailureNone is a ReturnValuesOnConditionCheckFailure enum value
 24909  	ReturnValuesOnConditionCheckFailureNone = "NONE"
 24910  )
 24911  
 24912  // ReturnValuesOnConditionCheckFailure_Values returns all elements of the ReturnValuesOnConditionCheckFailure enum
 24913  func ReturnValuesOnConditionCheckFailure_Values() []string {
 24914  	return []string{
 24915  		ReturnValuesOnConditionCheckFailureAllOld,
 24916  		ReturnValuesOnConditionCheckFailureNone,
 24917  	}
 24918  }
 24919  
 24920  const (
 24921  	// S3SseAlgorithmAes256 is a S3SseAlgorithm enum value
 24922  	S3SseAlgorithmAes256 = "AES256"
 24923  
 24924  	// S3SseAlgorithmKms is a S3SseAlgorithm enum value
 24925  	S3SseAlgorithmKms = "KMS"
 24926  )
 24927  
 24928  // S3SseAlgorithm_Values returns all elements of the S3SseAlgorithm enum
 24929  func S3SseAlgorithm_Values() []string {
 24930  	return []string{
 24931  		S3SseAlgorithmAes256,
 24932  		S3SseAlgorithmKms,
 24933  	}
 24934  }
 24935  
 24936  const (
 24937  	// SSEStatusEnabling is a SSEStatus enum value
 24938  	SSEStatusEnabling = "ENABLING"
 24939  
 24940  	// SSEStatusEnabled is a SSEStatus enum value
 24941  	SSEStatusEnabled = "ENABLED"
 24942  
 24943  	// SSEStatusDisabling is a SSEStatus enum value
 24944  	SSEStatusDisabling = "DISABLING"
 24945  
 24946  	// SSEStatusDisabled is a SSEStatus enum value
 24947  	SSEStatusDisabled = "DISABLED"
 24948  
 24949  	// SSEStatusUpdating is a SSEStatus enum value
 24950  	SSEStatusUpdating = "UPDATING"
 24951  )
 24952  
 24953  // SSEStatus_Values returns all elements of the SSEStatus enum
 24954  func SSEStatus_Values() []string {
 24955  	return []string{
 24956  		SSEStatusEnabling,
 24957  		SSEStatusEnabled,
 24958  		SSEStatusDisabling,
 24959  		SSEStatusDisabled,
 24960  		SSEStatusUpdating,
 24961  	}
 24962  }
 24963  
 24964  const (
 24965  	// SSETypeAes256 is a SSEType enum value
 24966  	SSETypeAes256 = "AES256"
 24967  
 24968  	// SSETypeKms is a SSEType enum value
 24969  	SSETypeKms = "KMS"
 24970  )
 24971  
 24972  // SSEType_Values returns all elements of the SSEType enum
 24973  func SSEType_Values() []string {
 24974  	return []string{
 24975  		SSETypeAes256,
 24976  		SSETypeKms,
 24977  	}
 24978  }
 24979  
 24980  const (
 24981  	// ScalarAttributeTypeS is a ScalarAttributeType enum value
 24982  	ScalarAttributeTypeS = "S"
 24983  
 24984  	// ScalarAttributeTypeN is a ScalarAttributeType enum value
 24985  	ScalarAttributeTypeN = "N"
 24986  
 24987  	// ScalarAttributeTypeB is a ScalarAttributeType enum value
 24988  	ScalarAttributeTypeB = "B"
 24989  )
 24990  
 24991  // ScalarAttributeType_Values returns all elements of the ScalarAttributeType enum
 24992  func ScalarAttributeType_Values() []string {
 24993  	return []string{
 24994  		ScalarAttributeTypeS,
 24995  		ScalarAttributeTypeN,
 24996  		ScalarAttributeTypeB,
 24997  	}
 24998  }
 24999  
 25000  const (
 25001  	// SelectAllAttributes is a Select enum value
 25002  	SelectAllAttributes = "ALL_ATTRIBUTES"
 25003  
 25004  	// SelectAllProjectedAttributes is a Select enum value
 25005  	SelectAllProjectedAttributes = "ALL_PROJECTED_ATTRIBUTES"
 25006  
 25007  	// SelectSpecificAttributes is a Select enum value
 25008  	SelectSpecificAttributes = "SPECIFIC_ATTRIBUTES"
 25009  
 25010  	// SelectCount is a Select enum value
 25011  	SelectCount = "COUNT"
 25012  )
 25013  
 25014  // Select_Values returns all elements of the Select enum
 25015  func Select_Values() []string {
 25016  	return []string{
 25017  		SelectAllAttributes,
 25018  		SelectAllProjectedAttributes,
 25019  		SelectSpecificAttributes,
 25020  		SelectCount,
 25021  	}
 25022  }
 25023  
 25024  const (
 25025  	// StreamViewTypeNewImage is a StreamViewType enum value
 25026  	StreamViewTypeNewImage = "NEW_IMAGE"
 25027  
 25028  	// StreamViewTypeOldImage is a StreamViewType enum value
 25029  	StreamViewTypeOldImage = "OLD_IMAGE"
 25030  
 25031  	// StreamViewTypeNewAndOldImages is a StreamViewType enum value
 25032  	StreamViewTypeNewAndOldImages = "NEW_AND_OLD_IMAGES"
 25033  
 25034  	// StreamViewTypeKeysOnly is a StreamViewType enum value
 25035  	StreamViewTypeKeysOnly = "KEYS_ONLY"
 25036  )
 25037  
 25038  // StreamViewType_Values returns all elements of the StreamViewType enum
 25039  func StreamViewType_Values() []string {
 25040  	return []string{
 25041  		StreamViewTypeNewImage,
 25042  		StreamViewTypeOldImage,
 25043  		StreamViewTypeNewAndOldImages,
 25044  		StreamViewTypeKeysOnly,
 25045  	}
 25046  }
 25047  
 25048  const (
 25049  	// TableStatusCreating is a TableStatus enum value
 25050  	TableStatusCreating = "CREATING"
 25051  
 25052  	// TableStatusUpdating is a TableStatus enum value
 25053  	TableStatusUpdating = "UPDATING"
 25054  
 25055  	// TableStatusDeleting is a TableStatus enum value
 25056  	TableStatusDeleting = "DELETING"
 25057  
 25058  	// TableStatusActive is a TableStatus enum value
 25059  	TableStatusActive = "ACTIVE"
 25060  
 25061  	// TableStatusInaccessibleEncryptionCredentials is a TableStatus enum value
 25062  	TableStatusInaccessibleEncryptionCredentials = "INACCESSIBLE_ENCRYPTION_CREDENTIALS"
 25063  
 25064  	// TableStatusArchiving is a TableStatus enum value
 25065  	TableStatusArchiving = "ARCHIVING"
 25066  
 25067  	// TableStatusArchived is a TableStatus enum value
 25068  	TableStatusArchived = "ARCHIVED"
 25069  )
 25070  
 25071  // TableStatus_Values returns all elements of the TableStatus enum
 25072  func TableStatus_Values() []string {
 25073  	return []string{
 25074  		TableStatusCreating,
 25075  		TableStatusUpdating,
 25076  		TableStatusDeleting,
 25077  		TableStatusActive,
 25078  		TableStatusInaccessibleEncryptionCredentials,
 25079  		TableStatusArchiving,
 25080  		TableStatusArchived,
 25081  	}
 25082  }
 25083  
 25084  const (
 25085  	// TimeToLiveStatusEnabling is a TimeToLiveStatus enum value
 25086  	TimeToLiveStatusEnabling = "ENABLING"
 25087  
 25088  	// TimeToLiveStatusDisabling is a TimeToLiveStatus enum value
 25089  	TimeToLiveStatusDisabling = "DISABLING"
 25090  
 25091  	// TimeToLiveStatusEnabled is a TimeToLiveStatus enum value
 25092  	TimeToLiveStatusEnabled = "ENABLED"
 25093  
 25094  	// TimeToLiveStatusDisabled is a TimeToLiveStatus enum value
 25095  	TimeToLiveStatusDisabled = "DISABLED"
 25096  )
 25097  
 25098  // TimeToLiveStatus_Values returns all elements of the TimeToLiveStatus enum
 25099  func TimeToLiveStatus_Values() []string {
 25100  	return []string{
 25101  		TimeToLiveStatusEnabling,
 25102  		TimeToLiveStatusDisabling,
 25103  		TimeToLiveStatusEnabled,
 25104  		TimeToLiveStatusDisabled,
 25105  	}
 25106  }