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

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package simpledb
     4  
     5  import (
     6  	"fmt"
     7  
     8  	"github.com/aavshr/aws-sdk-go/aws"
     9  	"github.com/aavshr/aws-sdk-go/aws/awsutil"
    10  	"github.com/aavshr/aws-sdk-go/aws/request"
    11  	"github.com/aavshr/aws-sdk-go/private/protocol"
    12  	"github.com/aavshr/aws-sdk-go/private/protocol/query"
    13  )
    14  
    15  const opBatchDeleteAttributes = "BatchDeleteAttributes"
    16  
    17  // BatchDeleteAttributesRequest generates a "aws/request.Request" representing the
    18  // client's request for the BatchDeleteAttributes operation. The "output" return
    19  // value will be populated with the request's response once the request completes
    20  // successfully.
    21  //
    22  // Use "Send" method on the returned Request to send the API call to the service.
    23  // the "output" return value is not valid until after Send returns without error.
    24  //
    25  // See BatchDeleteAttributes for more information on using the BatchDeleteAttributes
    26  // API call, and error handling.
    27  //
    28  // This method is useful when you want to inject custom logic or configuration
    29  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
    30  //
    31  //
    32  //    // Example sending a request using the BatchDeleteAttributesRequest method.
    33  //    req, resp := client.BatchDeleteAttributesRequest(params)
    34  //
    35  //    err := req.Send()
    36  //    if err == nil { // resp is now filled
    37  //        fmt.Println(resp)
    38  //    }
    39  func (c *SimpleDB) BatchDeleteAttributesRequest(input *BatchDeleteAttributesInput) (req *request.Request, output *BatchDeleteAttributesOutput) {
    40  	op := &request.Operation{
    41  		Name:       opBatchDeleteAttributes,
    42  		HTTPMethod: "POST",
    43  		HTTPPath:   "/",
    44  	}
    45  
    46  	if input == nil {
    47  		input = &BatchDeleteAttributesInput{}
    48  	}
    49  
    50  	output = &BatchDeleteAttributesOutput{}
    51  	req = c.newRequest(op, input, output)
    52  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
    53  	return
    54  }
    55  
    56  // BatchDeleteAttributes API operation for Amazon SimpleDB.
    57  //
    58  // Performs multiple DeleteAttributes operations in a single call, which reduces
    59  // round trips and latencies. This enables Amazon SimpleDB to optimize requests,
    60  // which generally yields better throughput.
    61  //
    62  // If you specify BatchDeleteAttributes without attributes or values, all the
    63  // attributes for the item are deleted.
    64  //
    65  // BatchDeleteAttributes is an idempotent operation; running it multiple times
    66  // on the same item or attribute doesn't result in an error.
    67  //
    68  // The BatchDeleteAttributes operation succeeds or fails in its entirety. There
    69  // are no partial deletes. You can execute multiple BatchDeleteAttributes operations
    70  // and other operations in parallel. However, large numbers of concurrent BatchDeleteAttributes
    71  // calls can result in Service Unavailable (503) responses.
    72  //
    73  // This operation is vulnerable to exceeding the maximum URL size when making
    74  // a REST request using the HTTP GET method.
    75  //
    76  // This operation does not support conditions using Expected.X.Name, Expected.X.Value,
    77  // or Expected.X.Exists.
    78  //
    79  // The following limitations are enforced for this operation:
    80  //    * 1 MB request size
    81  //
    82  //    * 25 item limit per BatchDeleteAttributes operation
    83  //
    84  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
    85  // with awserr.Error's Code and Message methods to get detailed information about
    86  // the error.
    87  //
    88  // See the AWS API reference guide for Amazon SimpleDB's
    89  // API operation BatchDeleteAttributes for usage and error information.
    90  func (c *SimpleDB) BatchDeleteAttributes(input *BatchDeleteAttributesInput) (*BatchDeleteAttributesOutput, error) {
    91  	req, out := c.BatchDeleteAttributesRequest(input)
    92  	return out, req.Send()
    93  }
    94  
    95  // BatchDeleteAttributesWithContext is the same as BatchDeleteAttributes with the addition of
    96  // the ability to pass a context and additional request options.
    97  //
    98  // See BatchDeleteAttributes for details on how to use this API operation.
    99  //
   100  // The context must be non-nil and will be used for request cancellation. If
   101  // the context is nil a panic will occur. In the future the SDK may create
   102  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   103  // for more information on using Contexts.
   104  func (c *SimpleDB) BatchDeleteAttributesWithContext(ctx aws.Context, input *BatchDeleteAttributesInput, opts ...request.Option) (*BatchDeleteAttributesOutput, error) {
   105  	req, out := c.BatchDeleteAttributesRequest(input)
   106  	req.SetContext(ctx)
   107  	req.ApplyOptions(opts...)
   108  	return out, req.Send()
   109  }
   110  
   111  const opBatchPutAttributes = "BatchPutAttributes"
   112  
   113  // BatchPutAttributesRequest generates a "aws/request.Request" representing the
   114  // client's request for the BatchPutAttributes operation. The "output" return
   115  // value will be populated with the request's response once the request completes
   116  // successfully.
   117  //
   118  // Use "Send" method on the returned Request to send the API call to the service.
   119  // the "output" return value is not valid until after Send returns without error.
   120  //
   121  // See BatchPutAttributes for more information on using the BatchPutAttributes
   122  // API call, and error handling.
   123  //
   124  // This method is useful when you want to inject custom logic or configuration
   125  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   126  //
   127  //
   128  //    // Example sending a request using the BatchPutAttributesRequest method.
   129  //    req, resp := client.BatchPutAttributesRequest(params)
   130  //
   131  //    err := req.Send()
   132  //    if err == nil { // resp is now filled
   133  //        fmt.Println(resp)
   134  //    }
   135  func (c *SimpleDB) BatchPutAttributesRequest(input *BatchPutAttributesInput) (req *request.Request, output *BatchPutAttributesOutput) {
   136  	op := &request.Operation{
   137  		Name:       opBatchPutAttributes,
   138  		HTTPMethod: "POST",
   139  		HTTPPath:   "/",
   140  	}
   141  
   142  	if input == nil {
   143  		input = &BatchPutAttributesInput{}
   144  	}
   145  
   146  	output = &BatchPutAttributesOutput{}
   147  	req = c.newRequest(op, input, output)
   148  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   149  	return
   150  }
   151  
   152  // BatchPutAttributes API operation for Amazon SimpleDB.
   153  //
   154  // The BatchPutAttributes operation creates or replaces attributes within one
   155  // or more items. By using this operation, the client can perform multiple PutAttribute
   156  // operation with a single call. This helps yield savings in round trips and
   157  // latencies, enabling Amazon SimpleDB to optimize requests and generally produce
   158  // better throughput.
   159  //
   160  // The client may specify the item name with the Item.X.ItemName parameter.
   161  // The client may specify new attributes using a combination of the Item.X.Attribute.Y.Name
   162  // and Item.X.Attribute.Y.Value parameters. The client may specify the first
   163  // attribute for the first item using the parameters Item.0.Attribute.0.Name
   164  // and Item.0.Attribute.0.Value, and for the second attribute for the first
   165  // item by the parameters Item.0.Attribute.1.Name and Item.0.Attribute.1.Value,
   166  // and so on.
   167  //
   168  // Attributes are uniquely identified within an item by their name/value combination.
   169  // For example, a single item can have the attributes { "first_name", "first_value"
   170  // } and { "first_name", "second_value" }. However, it cannot have two attribute
   171  // instances where both the Item.X.Attribute.Y.Name and Item.X.Attribute.Y.Value
   172  // are the same.
   173  //
   174  // Optionally, the requester can supply the Replace parameter for each individual
   175  // value. Setting this value to true will cause the new attribute values to
   176  // replace the existing attribute values. For example, if an item I has the
   177  // attributes { 'a', '1' }, { 'b', '2'} and { 'b', '3' } and the requester does
   178  // a BatchPutAttributes of {'I', 'b', '4' } with the Replace parameter set to
   179  // true, the final attributes of the item will be { 'a', '1' } and { 'b', '4'
   180  // }, replacing the previous values of the 'b' attribute with the new value.
   181  //   You cannot specify an empty string as an item or as an attribute name.
   182  //   The
   183  //    BatchPutAttributes
   184  //  operation succeeds or fails in its entirety. There are no partial puts.
   185  //  This operation is vulnerable to exceeding the maximum URL size when making
   186  //  a REST request using the HTTP GET method. This operation does not support
   187  //  conditions using
   188  //    Expected.X.Name
   189  // ,
   190  //    Expected.X.Value
   191  // , or
   192  //    Expected.X.Exists
   193  // .
   194  // You can execute multiple BatchPutAttributes operations and other operations
   195  // in parallel. However, large numbers of concurrent BatchPutAttributes calls
   196  // can result in Service Unavailable (503) responses.
   197  //
   198  // The following limitations are enforced for this operation:
   199  //    * 256 attribute name-value pairs per item
   200  //
   201  //    * 1 MB request size
   202  //
   203  //    * 1 billion attributes per domain
   204  //
   205  //    * 10 GB of total user data storage per domain
   206  //
   207  //    * 25 item limit per BatchPutAttributes operation
   208  //
   209  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   210  // with awserr.Error's Code and Message methods to get detailed information about
   211  // the error.
   212  //
   213  // See the AWS API reference guide for Amazon SimpleDB's
   214  // API operation BatchPutAttributes for usage and error information.
   215  //
   216  // Returned Error Codes:
   217  //   * ErrCodeDuplicateItemName "DuplicateItemName"
   218  //   The item name was specified more than once.
   219  //
   220  //   * ErrCodeInvalidParameterValue "InvalidParameterValue"
   221  //   The value for a parameter is invalid.
   222  //
   223  //   * ErrCodeMissingParameter "MissingParameter"
   224  //   The request must contain the specified missing parameter.
   225  //
   226  //   * ErrCodeNoSuchDomain "NoSuchDomain"
   227  //   The specified domain does not exist.
   228  //
   229  //   * ErrCodeNumberItemAttributesExceeded "NumberItemAttributesExceeded"
   230  //   Too many attributes in this item.
   231  //
   232  //   * ErrCodeNumberDomainAttributesExceeded "NumberDomainAttributesExceeded"
   233  //   Too many attributes in this domain.
   234  //
   235  //   * ErrCodeNumberDomainBytesExceeded "NumberDomainBytesExceeded"
   236  //   Too many bytes in this domain.
   237  //
   238  //   * ErrCodeNumberSubmittedItemsExceeded "NumberSubmittedItemsExceeded"
   239  //   Too many items exist in a single call.
   240  //
   241  //   * ErrCodeNumberSubmittedAttributesExceeded "NumberSubmittedAttributesExceeded"
   242  //   Too many attributes exist in a single call.
   243  //
   244  func (c *SimpleDB) BatchPutAttributes(input *BatchPutAttributesInput) (*BatchPutAttributesOutput, error) {
   245  	req, out := c.BatchPutAttributesRequest(input)
   246  	return out, req.Send()
   247  }
   248  
   249  // BatchPutAttributesWithContext is the same as BatchPutAttributes with the addition of
   250  // the ability to pass a context and additional request options.
   251  //
   252  // See BatchPutAttributes for details on how to use this API operation.
   253  //
   254  // The context must be non-nil and will be used for request cancellation. If
   255  // the context is nil a panic will occur. In the future the SDK may create
   256  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   257  // for more information on using Contexts.
   258  func (c *SimpleDB) BatchPutAttributesWithContext(ctx aws.Context, input *BatchPutAttributesInput, opts ...request.Option) (*BatchPutAttributesOutput, error) {
   259  	req, out := c.BatchPutAttributesRequest(input)
   260  	req.SetContext(ctx)
   261  	req.ApplyOptions(opts...)
   262  	return out, req.Send()
   263  }
   264  
   265  const opCreateDomain = "CreateDomain"
   266  
   267  // CreateDomainRequest generates a "aws/request.Request" representing the
   268  // client's request for the CreateDomain operation. The "output" return
   269  // value will be populated with the request's response once the request completes
   270  // successfully.
   271  //
   272  // Use "Send" method on the returned Request to send the API call to the service.
   273  // the "output" return value is not valid until after Send returns without error.
   274  //
   275  // See CreateDomain for more information on using the CreateDomain
   276  // API call, and error handling.
   277  //
   278  // This method is useful when you want to inject custom logic or configuration
   279  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   280  //
   281  //
   282  //    // Example sending a request using the CreateDomainRequest method.
   283  //    req, resp := client.CreateDomainRequest(params)
   284  //
   285  //    err := req.Send()
   286  //    if err == nil { // resp is now filled
   287  //        fmt.Println(resp)
   288  //    }
   289  func (c *SimpleDB) CreateDomainRequest(input *CreateDomainInput) (req *request.Request, output *CreateDomainOutput) {
   290  	op := &request.Operation{
   291  		Name:       opCreateDomain,
   292  		HTTPMethod: "POST",
   293  		HTTPPath:   "/",
   294  	}
   295  
   296  	if input == nil {
   297  		input = &CreateDomainInput{}
   298  	}
   299  
   300  	output = &CreateDomainOutput{}
   301  	req = c.newRequest(op, input, output)
   302  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   303  	return
   304  }
   305  
   306  // CreateDomain API operation for Amazon SimpleDB.
   307  //
   308  // The CreateDomain operation creates a new domain. The domain name should be
   309  // unique among the domains associated with the Access Key ID provided in the
   310  // request. The CreateDomain operation may take 10 or more seconds to complete.
   311  //   CreateDomain is an idempotent operation; running it multiple times using
   312  //   the same domain name will not result in an error response.
   313  // The client can create up to 100 domains per account.
   314  //
   315  // If the client requires additional domains, go to http://aws.amazon.com/contact-us/simpledb-limit-request/
   316  // (http://aws.amazon.com/contact-us/simpledb-limit-request/).
   317  //
   318  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   319  // with awserr.Error's Code and Message methods to get detailed information about
   320  // the error.
   321  //
   322  // See the AWS API reference guide for Amazon SimpleDB's
   323  // API operation CreateDomain for usage and error information.
   324  //
   325  // Returned Error Codes:
   326  //   * ErrCodeInvalidParameterValue "InvalidParameterValue"
   327  //   The value for a parameter is invalid.
   328  //
   329  //   * ErrCodeMissingParameter "MissingParameter"
   330  //   The request must contain the specified missing parameter.
   331  //
   332  //   * ErrCodeNumberDomainsExceeded "NumberDomainsExceeded"
   333  //   Too many domains exist per this account.
   334  //
   335  func (c *SimpleDB) CreateDomain(input *CreateDomainInput) (*CreateDomainOutput, error) {
   336  	req, out := c.CreateDomainRequest(input)
   337  	return out, req.Send()
   338  }
   339  
   340  // CreateDomainWithContext is the same as CreateDomain with the addition of
   341  // the ability to pass a context and additional request options.
   342  //
   343  // See CreateDomain for details on how to use this API operation.
   344  //
   345  // The context must be non-nil and will be used for request cancellation. If
   346  // the context is nil a panic will occur. In the future the SDK may create
   347  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   348  // for more information on using Contexts.
   349  func (c *SimpleDB) CreateDomainWithContext(ctx aws.Context, input *CreateDomainInput, opts ...request.Option) (*CreateDomainOutput, error) {
   350  	req, out := c.CreateDomainRequest(input)
   351  	req.SetContext(ctx)
   352  	req.ApplyOptions(opts...)
   353  	return out, req.Send()
   354  }
   355  
   356  const opDeleteAttributes = "DeleteAttributes"
   357  
   358  // DeleteAttributesRequest generates a "aws/request.Request" representing the
   359  // client's request for the DeleteAttributes operation. The "output" return
   360  // value will be populated with the request's response once the request completes
   361  // successfully.
   362  //
   363  // Use "Send" method on the returned Request to send the API call to the service.
   364  // the "output" return value is not valid until after Send returns without error.
   365  //
   366  // See DeleteAttributes for more information on using the DeleteAttributes
   367  // API call, and error handling.
   368  //
   369  // This method is useful when you want to inject custom logic or configuration
   370  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   371  //
   372  //
   373  //    // Example sending a request using the DeleteAttributesRequest method.
   374  //    req, resp := client.DeleteAttributesRequest(params)
   375  //
   376  //    err := req.Send()
   377  //    if err == nil { // resp is now filled
   378  //        fmt.Println(resp)
   379  //    }
   380  func (c *SimpleDB) DeleteAttributesRequest(input *DeleteAttributesInput) (req *request.Request, output *DeleteAttributesOutput) {
   381  	op := &request.Operation{
   382  		Name:       opDeleteAttributes,
   383  		HTTPMethod: "POST",
   384  		HTTPPath:   "/",
   385  	}
   386  
   387  	if input == nil {
   388  		input = &DeleteAttributesInput{}
   389  	}
   390  
   391  	output = &DeleteAttributesOutput{}
   392  	req = c.newRequest(op, input, output)
   393  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   394  	return
   395  }
   396  
   397  // DeleteAttributes API operation for Amazon SimpleDB.
   398  //
   399  // Deletes one or more attributes associated with an item. If all attributes
   400  // of the item are deleted, the item is deleted.
   401  //   If
   402  //    DeleteAttributes
   403  //  is called without being passed any attributes or values specified, all the
   404  //  attributes for the item are deleted.
   405  // DeleteAttributes is an idempotent operation; running it multiple times on
   406  // the same item or attribute does not result in an error response.
   407  //
   408  // Because Amazon SimpleDB makes multiple copies of item data and uses an eventual
   409  // consistency update model, performing a GetAttributes or Select operation
   410  // (read) immediately after a DeleteAttributes or PutAttributes operation (write)
   411  // might not return updated item data.
   412  //
   413  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   414  // with awserr.Error's Code and Message methods to get detailed information about
   415  // the error.
   416  //
   417  // See the AWS API reference guide for Amazon SimpleDB's
   418  // API operation DeleteAttributes for usage and error information.
   419  //
   420  // Returned Error Codes:
   421  //   * ErrCodeInvalidParameterValue "InvalidParameterValue"
   422  //   The value for a parameter is invalid.
   423  //
   424  //   * ErrCodeMissingParameter "MissingParameter"
   425  //   The request must contain the specified missing parameter.
   426  //
   427  //   * ErrCodeNoSuchDomain "NoSuchDomain"
   428  //   The specified domain does not exist.
   429  //
   430  //   * ErrCodeAttributeDoesNotExist "AttributeDoesNotExist"
   431  //   The specified attribute does not exist.
   432  //
   433  func (c *SimpleDB) DeleteAttributes(input *DeleteAttributesInput) (*DeleteAttributesOutput, error) {
   434  	req, out := c.DeleteAttributesRequest(input)
   435  	return out, req.Send()
   436  }
   437  
   438  // DeleteAttributesWithContext is the same as DeleteAttributes with the addition of
   439  // the ability to pass a context and additional request options.
   440  //
   441  // See DeleteAttributes for details on how to use this API operation.
   442  //
   443  // The context must be non-nil and will be used for request cancellation. If
   444  // the context is nil a panic will occur. In the future the SDK may create
   445  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   446  // for more information on using Contexts.
   447  func (c *SimpleDB) DeleteAttributesWithContext(ctx aws.Context, input *DeleteAttributesInput, opts ...request.Option) (*DeleteAttributesOutput, error) {
   448  	req, out := c.DeleteAttributesRequest(input)
   449  	req.SetContext(ctx)
   450  	req.ApplyOptions(opts...)
   451  	return out, req.Send()
   452  }
   453  
   454  const opDeleteDomain = "DeleteDomain"
   455  
   456  // DeleteDomainRequest generates a "aws/request.Request" representing the
   457  // client's request for the DeleteDomain operation. The "output" return
   458  // value will be populated with the request's response once the request completes
   459  // successfully.
   460  //
   461  // Use "Send" method on the returned Request to send the API call to the service.
   462  // the "output" return value is not valid until after Send returns without error.
   463  //
   464  // See DeleteDomain for more information on using the DeleteDomain
   465  // API call, and error handling.
   466  //
   467  // This method is useful when you want to inject custom logic or configuration
   468  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   469  //
   470  //
   471  //    // Example sending a request using the DeleteDomainRequest method.
   472  //    req, resp := client.DeleteDomainRequest(params)
   473  //
   474  //    err := req.Send()
   475  //    if err == nil { // resp is now filled
   476  //        fmt.Println(resp)
   477  //    }
   478  func (c *SimpleDB) DeleteDomainRequest(input *DeleteDomainInput) (req *request.Request, output *DeleteDomainOutput) {
   479  	op := &request.Operation{
   480  		Name:       opDeleteDomain,
   481  		HTTPMethod: "POST",
   482  		HTTPPath:   "/",
   483  	}
   484  
   485  	if input == nil {
   486  		input = &DeleteDomainInput{}
   487  	}
   488  
   489  	output = &DeleteDomainOutput{}
   490  	req = c.newRequest(op, input, output)
   491  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   492  	return
   493  }
   494  
   495  // DeleteDomain API operation for Amazon SimpleDB.
   496  //
   497  // The DeleteDomain operation deletes a domain. Any items (and their attributes)
   498  // in the domain are deleted as well. The DeleteDomain operation might take
   499  // 10 or more seconds to complete.
   500  //   Running
   501  //    DeleteDomain
   502  //  on a domain that does not exist or running the function multiple times using
   503  //  the same domain name will not result in an error response.
   504  //
   505  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   506  // with awserr.Error's Code and Message methods to get detailed information about
   507  // the error.
   508  //
   509  // See the AWS API reference guide for Amazon SimpleDB's
   510  // API operation DeleteDomain for usage and error information.
   511  //
   512  // Returned Error Codes:
   513  //   * ErrCodeMissingParameter "MissingParameter"
   514  //   The request must contain the specified missing parameter.
   515  //
   516  func (c *SimpleDB) DeleteDomain(input *DeleteDomainInput) (*DeleteDomainOutput, error) {
   517  	req, out := c.DeleteDomainRequest(input)
   518  	return out, req.Send()
   519  }
   520  
   521  // DeleteDomainWithContext is the same as DeleteDomain with the addition of
   522  // the ability to pass a context and additional request options.
   523  //
   524  // See DeleteDomain for details on how to use this API operation.
   525  //
   526  // The context must be non-nil and will be used for request cancellation. If
   527  // the context is nil a panic will occur. In the future the SDK may create
   528  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   529  // for more information on using Contexts.
   530  func (c *SimpleDB) DeleteDomainWithContext(ctx aws.Context, input *DeleteDomainInput, opts ...request.Option) (*DeleteDomainOutput, error) {
   531  	req, out := c.DeleteDomainRequest(input)
   532  	req.SetContext(ctx)
   533  	req.ApplyOptions(opts...)
   534  	return out, req.Send()
   535  }
   536  
   537  const opDomainMetadata = "DomainMetadata"
   538  
   539  // DomainMetadataRequest generates a "aws/request.Request" representing the
   540  // client's request for the DomainMetadata operation. The "output" return
   541  // value will be populated with the request's response once the request completes
   542  // successfully.
   543  //
   544  // Use "Send" method on the returned Request to send the API call to the service.
   545  // the "output" return value is not valid until after Send returns without error.
   546  //
   547  // See DomainMetadata for more information on using the DomainMetadata
   548  // API call, and error handling.
   549  //
   550  // This method is useful when you want to inject custom logic or configuration
   551  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   552  //
   553  //
   554  //    // Example sending a request using the DomainMetadataRequest method.
   555  //    req, resp := client.DomainMetadataRequest(params)
   556  //
   557  //    err := req.Send()
   558  //    if err == nil { // resp is now filled
   559  //        fmt.Println(resp)
   560  //    }
   561  func (c *SimpleDB) DomainMetadataRequest(input *DomainMetadataInput) (req *request.Request, output *DomainMetadataOutput) {
   562  	op := &request.Operation{
   563  		Name:       opDomainMetadata,
   564  		HTTPMethod: "POST",
   565  		HTTPPath:   "/",
   566  	}
   567  
   568  	if input == nil {
   569  		input = &DomainMetadataInput{}
   570  	}
   571  
   572  	output = &DomainMetadataOutput{}
   573  	req = c.newRequest(op, input, output)
   574  	return
   575  }
   576  
   577  // DomainMetadata API operation for Amazon SimpleDB.
   578  //
   579  // Returns information about the domain, including when the domain was created,
   580  // the number of items and attributes in the domain, and the size of the attribute
   581  // names and values.
   582  //
   583  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   584  // with awserr.Error's Code and Message methods to get detailed information about
   585  // the error.
   586  //
   587  // See the AWS API reference guide for Amazon SimpleDB's
   588  // API operation DomainMetadata for usage and error information.
   589  //
   590  // Returned Error Codes:
   591  //   * ErrCodeMissingParameter "MissingParameter"
   592  //   The request must contain the specified missing parameter.
   593  //
   594  //   * ErrCodeNoSuchDomain "NoSuchDomain"
   595  //   The specified domain does not exist.
   596  //
   597  func (c *SimpleDB) DomainMetadata(input *DomainMetadataInput) (*DomainMetadataOutput, error) {
   598  	req, out := c.DomainMetadataRequest(input)
   599  	return out, req.Send()
   600  }
   601  
   602  // DomainMetadataWithContext is the same as DomainMetadata with the addition of
   603  // the ability to pass a context and additional request options.
   604  //
   605  // See DomainMetadata for details on how to use this API operation.
   606  //
   607  // The context must be non-nil and will be used for request cancellation. If
   608  // the context is nil a panic will occur. In the future the SDK may create
   609  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   610  // for more information on using Contexts.
   611  func (c *SimpleDB) DomainMetadataWithContext(ctx aws.Context, input *DomainMetadataInput, opts ...request.Option) (*DomainMetadataOutput, error) {
   612  	req, out := c.DomainMetadataRequest(input)
   613  	req.SetContext(ctx)
   614  	req.ApplyOptions(opts...)
   615  	return out, req.Send()
   616  }
   617  
   618  const opGetAttributes = "GetAttributes"
   619  
   620  // GetAttributesRequest generates a "aws/request.Request" representing the
   621  // client's request for the GetAttributes operation. The "output" return
   622  // value will be populated with the request's response once the request completes
   623  // successfully.
   624  //
   625  // Use "Send" method on the returned Request to send the API call to the service.
   626  // the "output" return value is not valid until after Send returns without error.
   627  //
   628  // See GetAttributes for more information on using the GetAttributes
   629  // API call, and error handling.
   630  //
   631  // This method is useful when you want to inject custom logic or configuration
   632  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   633  //
   634  //
   635  //    // Example sending a request using the GetAttributesRequest method.
   636  //    req, resp := client.GetAttributesRequest(params)
   637  //
   638  //    err := req.Send()
   639  //    if err == nil { // resp is now filled
   640  //        fmt.Println(resp)
   641  //    }
   642  func (c *SimpleDB) GetAttributesRequest(input *GetAttributesInput) (req *request.Request, output *GetAttributesOutput) {
   643  	op := &request.Operation{
   644  		Name:       opGetAttributes,
   645  		HTTPMethod: "POST",
   646  		HTTPPath:   "/",
   647  	}
   648  
   649  	if input == nil {
   650  		input = &GetAttributesInput{}
   651  	}
   652  
   653  	output = &GetAttributesOutput{}
   654  	req = c.newRequest(op, input, output)
   655  	return
   656  }
   657  
   658  // GetAttributes API operation for Amazon SimpleDB.
   659  //
   660  // Returns all of the attributes associated with the specified item. Optionally,
   661  // the attributes returned can be limited to one or more attributes by specifying
   662  // an attribute name parameter.
   663  //
   664  // If the item does not exist on the replica that was accessed for this operation,
   665  // an empty set is returned. The system does not return an error as it cannot
   666  // guarantee the item does not exist on other replicas.
   667  //   If GetAttributes is called without being passed any attribute names, all
   668  //   the attributes for the item are returned.
   669  //
   670  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   671  // with awserr.Error's Code and Message methods to get detailed information about
   672  // the error.
   673  //
   674  // See the AWS API reference guide for Amazon SimpleDB's
   675  // API operation GetAttributes for usage and error information.
   676  //
   677  // Returned Error Codes:
   678  //   * ErrCodeInvalidParameterValue "InvalidParameterValue"
   679  //   The value for a parameter is invalid.
   680  //
   681  //   * ErrCodeMissingParameter "MissingParameter"
   682  //   The request must contain the specified missing parameter.
   683  //
   684  //   * ErrCodeNoSuchDomain "NoSuchDomain"
   685  //   The specified domain does not exist.
   686  //
   687  func (c *SimpleDB) GetAttributes(input *GetAttributesInput) (*GetAttributesOutput, error) {
   688  	req, out := c.GetAttributesRequest(input)
   689  	return out, req.Send()
   690  }
   691  
   692  // GetAttributesWithContext is the same as GetAttributes with the addition of
   693  // the ability to pass a context and additional request options.
   694  //
   695  // See GetAttributes for details on how to use this API operation.
   696  //
   697  // The context must be non-nil and will be used for request cancellation. If
   698  // the context is nil a panic will occur. In the future the SDK may create
   699  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   700  // for more information on using Contexts.
   701  func (c *SimpleDB) GetAttributesWithContext(ctx aws.Context, input *GetAttributesInput, opts ...request.Option) (*GetAttributesOutput, error) {
   702  	req, out := c.GetAttributesRequest(input)
   703  	req.SetContext(ctx)
   704  	req.ApplyOptions(opts...)
   705  	return out, req.Send()
   706  }
   707  
   708  const opListDomains = "ListDomains"
   709  
   710  // ListDomainsRequest generates a "aws/request.Request" representing the
   711  // client's request for the ListDomains operation. The "output" return
   712  // value will be populated with the request's response once the request completes
   713  // successfully.
   714  //
   715  // Use "Send" method on the returned Request to send the API call to the service.
   716  // the "output" return value is not valid until after Send returns without error.
   717  //
   718  // See ListDomains for more information on using the ListDomains
   719  // API call, and error handling.
   720  //
   721  // This method is useful when you want to inject custom logic or configuration
   722  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   723  //
   724  //
   725  //    // Example sending a request using the ListDomainsRequest method.
   726  //    req, resp := client.ListDomainsRequest(params)
   727  //
   728  //    err := req.Send()
   729  //    if err == nil { // resp is now filled
   730  //        fmt.Println(resp)
   731  //    }
   732  func (c *SimpleDB) ListDomainsRequest(input *ListDomainsInput) (req *request.Request, output *ListDomainsOutput) {
   733  	op := &request.Operation{
   734  		Name:       opListDomains,
   735  		HTTPMethod: "POST",
   736  		HTTPPath:   "/",
   737  		Paginator: &request.Paginator{
   738  			InputTokens:     []string{"NextToken"},
   739  			OutputTokens:    []string{"NextToken"},
   740  			LimitToken:      "MaxNumberOfDomains",
   741  			TruncationToken: "",
   742  		},
   743  	}
   744  
   745  	if input == nil {
   746  		input = &ListDomainsInput{}
   747  	}
   748  
   749  	output = &ListDomainsOutput{}
   750  	req = c.newRequest(op, input, output)
   751  	return
   752  }
   753  
   754  // ListDomains API operation for Amazon SimpleDB.
   755  //
   756  // The ListDomains operation lists all domains associated with the Access Key
   757  // ID. It returns domain names up to the limit set by MaxNumberOfDomains (#MaxNumberOfDomains).
   758  // A NextToken (#NextToken) is returned if there are more than MaxNumberOfDomains
   759  // domains. Calling ListDomains successive times with the NextToken provided
   760  // by the operation returns up to MaxNumberOfDomains more domain names with
   761  // each successive operation call.
   762  //
   763  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   764  // with awserr.Error's Code and Message methods to get detailed information about
   765  // the error.
   766  //
   767  // See the AWS API reference guide for Amazon SimpleDB's
   768  // API operation ListDomains for usage and error information.
   769  //
   770  // Returned Error Codes:
   771  //   * ErrCodeInvalidParameterValue "InvalidParameterValue"
   772  //   The value for a parameter is invalid.
   773  //
   774  //   * ErrCodeInvalidNextToken "InvalidNextToken"
   775  //   The specified NextToken is not valid.
   776  //
   777  func (c *SimpleDB) ListDomains(input *ListDomainsInput) (*ListDomainsOutput, error) {
   778  	req, out := c.ListDomainsRequest(input)
   779  	return out, req.Send()
   780  }
   781  
   782  // ListDomainsWithContext is the same as ListDomains with the addition of
   783  // the ability to pass a context and additional request options.
   784  //
   785  // See ListDomains for details on how to use this API operation.
   786  //
   787  // The context must be non-nil and will be used for request cancellation. If
   788  // the context is nil a panic will occur. In the future the SDK may create
   789  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   790  // for more information on using Contexts.
   791  func (c *SimpleDB) ListDomainsWithContext(ctx aws.Context, input *ListDomainsInput, opts ...request.Option) (*ListDomainsOutput, error) {
   792  	req, out := c.ListDomainsRequest(input)
   793  	req.SetContext(ctx)
   794  	req.ApplyOptions(opts...)
   795  	return out, req.Send()
   796  }
   797  
   798  // ListDomainsPages iterates over the pages of a ListDomains operation,
   799  // calling the "fn" function with the response data for each page. To stop
   800  // iterating, return false from the fn function.
   801  //
   802  // See ListDomains method for more information on how to use this operation.
   803  //
   804  // Note: This operation can generate multiple requests to a service.
   805  //
   806  //    // Example iterating over at most 3 pages of a ListDomains operation.
   807  //    pageNum := 0
   808  //    err := client.ListDomainsPages(params,
   809  //        func(page *simpledb.ListDomainsOutput, lastPage bool) bool {
   810  //            pageNum++
   811  //            fmt.Println(page)
   812  //            return pageNum <= 3
   813  //        })
   814  //
   815  func (c *SimpleDB) ListDomainsPages(input *ListDomainsInput, fn func(*ListDomainsOutput, bool) bool) error {
   816  	return c.ListDomainsPagesWithContext(aws.BackgroundContext(), input, fn)
   817  }
   818  
   819  // ListDomainsPagesWithContext same as ListDomainsPages except
   820  // it takes a Context and allows setting request options on the pages.
   821  //
   822  // The context must be non-nil and will be used for request cancellation. If
   823  // the context is nil a panic will occur. In the future the SDK may create
   824  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   825  // for more information on using Contexts.
   826  func (c *SimpleDB) ListDomainsPagesWithContext(ctx aws.Context, input *ListDomainsInput, fn func(*ListDomainsOutput, bool) bool, opts ...request.Option) error {
   827  	p := request.Pagination{
   828  		NewRequest: func() (*request.Request, error) {
   829  			var inCpy *ListDomainsInput
   830  			if input != nil {
   831  				tmp := *input
   832  				inCpy = &tmp
   833  			}
   834  			req, _ := c.ListDomainsRequest(inCpy)
   835  			req.SetContext(ctx)
   836  			req.ApplyOptions(opts...)
   837  			return req, nil
   838  		},
   839  	}
   840  
   841  	for p.Next() {
   842  		if !fn(p.Page().(*ListDomainsOutput), !p.HasNextPage()) {
   843  			break
   844  		}
   845  	}
   846  
   847  	return p.Err()
   848  }
   849  
   850  const opPutAttributes = "PutAttributes"
   851  
   852  // PutAttributesRequest generates a "aws/request.Request" representing the
   853  // client's request for the PutAttributes operation. The "output" return
   854  // value will be populated with the request's response once the request completes
   855  // successfully.
   856  //
   857  // Use "Send" method on the returned Request to send the API call to the service.
   858  // the "output" return value is not valid until after Send returns without error.
   859  //
   860  // See PutAttributes for more information on using the PutAttributes
   861  // API call, and error handling.
   862  //
   863  // This method is useful when you want to inject custom logic or configuration
   864  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   865  //
   866  //
   867  //    // Example sending a request using the PutAttributesRequest method.
   868  //    req, resp := client.PutAttributesRequest(params)
   869  //
   870  //    err := req.Send()
   871  //    if err == nil { // resp is now filled
   872  //        fmt.Println(resp)
   873  //    }
   874  func (c *SimpleDB) PutAttributesRequest(input *PutAttributesInput) (req *request.Request, output *PutAttributesOutput) {
   875  	op := &request.Operation{
   876  		Name:       opPutAttributes,
   877  		HTTPMethod: "POST",
   878  		HTTPPath:   "/",
   879  	}
   880  
   881  	if input == nil {
   882  		input = &PutAttributesInput{}
   883  	}
   884  
   885  	output = &PutAttributesOutput{}
   886  	req = c.newRequest(op, input, output)
   887  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   888  	return
   889  }
   890  
   891  // PutAttributes API operation for Amazon SimpleDB.
   892  //
   893  // The PutAttributes operation creates or replaces attributes in an item. The
   894  // client may specify new attributes using a combination of the Attribute.X.Name
   895  // and Attribute.X.Value parameters. The client specifies the first attribute
   896  // by the parameters Attribute.0.Name and Attribute.0.Value, the second attribute
   897  // by the parameters Attribute.1.Name and Attribute.1.Value, and so on.
   898  //
   899  // Attributes are uniquely identified in an item by their name/value combination.
   900  // For example, a single item can have the attributes { "first_name", "first_value"
   901  // } and { "first_name", second_value" }. However, it cannot have two attribute
   902  // instances where both the Attribute.X.Name and Attribute.X.Value are the same.
   903  //
   904  // Optionally, the requestor can supply the Replace parameter for each individual
   905  // attribute. Setting this value to true causes the new attribute value to replace
   906  // the existing attribute value(s). For example, if an item has the attributes
   907  // { 'a', '1' }, { 'b', '2'} and { 'b', '3' } and the requestor calls PutAttributes
   908  // using the attributes { 'b', '4' } with the Replace parameter set to true,
   909  // the final attributes of the item are changed to { 'a', '1' } and { 'b', '4'
   910  // }, which replaces the previous values of the 'b' attribute with the new value.
   911  //   Using
   912  //    PutAttributes
   913  //  to replace attribute values that do not exist will not result in an error
   914  //  response.
   915  // You cannot specify an empty string as an attribute name.
   916  //
   917  // Because Amazon SimpleDB makes multiple copies of client data and uses an
   918  // eventual consistency update model, an immediate GetAttributes or Select operation
   919  // (read) immediately after a PutAttributes or DeleteAttributes operation (write)
   920  // might not return the updated data.
   921  //
   922  // The following limitations are enforced for this operation:
   923  //    * 256 total attribute name-value pairs per item
   924  //
   925  //    * One billion attributes per domain
   926  //
   927  //    * 10 GB of total user data storage per domain
   928  //
   929  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   930  // with awserr.Error's Code and Message methods to get detailed information about
   931  // the error.
   932  //
   933  // See the AWS API reference guide for Amazon SimpleDB's
   934  // API operation PutAttributes for usage and error information.
   935  //
   936  // Returned Error Codes:
   937  //   * ErrCodeInvalidParameterValue "InvalidParameterValue"
   938  //   The value for a parameter is invalid.
   939  //
   940  //   * ErrCodeMissingParameter "MissingParameter"
   941  //   The request must contain the specified missing parameter.
   942  //
   943  //   * ErrCodeNoSuchDomain "NoSuchDomain"
   944  //   The specified domain does not exist.
   945  //
   946  //   * ErrCodeNumberDomainAttributesExceeded "NumberDomainAttributesExceeded"
   947  //   Too many attributes in this domain.
   948  //
   949  //   * ErrCodeNumberDomainBytesExceeded "NumberDomainBytesExceeded"
   950  //   Too many bytes in this domain.
   951  //
   952  //   * ErrCodeNumberItemAttributesExceeded "NumberItemAttributesExceeded"
   953  //   Too many attributes in this item.
   954  //
   955  //   * ErrCodeAttributeDoesNotExist "AttributeDoesNotExist"
   956  //   The specified attribute does not exist.
   957  //
   958  func (c *SimpleDB) PutAttributes(input *PutAttributesInput) (*PutAttributesOutput, error) {
   959  	req, out := c.PutAttributesRequest(input)
   960  	return out, req.Send()
   961  }
   962  
   963  // PutAttributesWithContext is the same as PutAttributes with the addition of
   964  // the ability to pass a context and additional request options.
   965  //
   966  // See PutAttributes for details on how to use this API operation.
   967  //
   968  // The context must be non-nil and will be used for request cancellation. If
   969  // the context is nil a panic will occur. In the future the SDK may create
   970  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   971  // for more information on using Contexts.
   972  func (c *SimpleDB) PutAttributesWithContext(ctx aws.Context, input *PutAttributesInput, opts ...request.Option) (*PutAttributesOutput, error) {
   973  	req, out := c.PutAttributesRequest(input)
   974  	req.SetContext(ctx)
   975  	req.ApplyOptions(opts...)
   976  	return out, req.Send()
   977  }
   978  
   979  const opSelect = "Select"
   980  
   981  // SelectRequest generates a "aws/request.Request" representing the
   982  // client's request for the Select operation. The "output" return
   983  // value will be populated with the request's response once the request completes
   984  // successfully.
   985  //
   986  // Use "Send" method on the returned Request to send the API call to the service.
   987  // the "output" return value is not valid until after Send returns without error.
   988  //
   989  // See Select for more information on using the Select
   990  // API call, and error handling.
   991  //
   992  // This method is useful when you want to inject custom logic or configuration
   993  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   994  //
   995  //
   996  //    // Example sending a request using the SelectRequest method.
   997  //    req, resp := client.SelectRequest(params)
   998  //
   999  //    err := req.Send()
  1000  //    if err == nil { // resp is now filled
  1001  //        fmt.Println(resp)
  1002  //    }
  1003  func (c *SimpleDB) SelectRequest(input *SelectInput) (req *request.Request, output *SelectOutput) {
  1004  	op := &request.Operation{
  1005  		Name:       opSelect,
  1006  		HTTPMethod: "POST",
  1007  		HTTPPath:   "/",
  1008  		Paginator: &request.Paginator{
  1009  			InputTokens:     []string{"NextToken"},
  1010  			OutputTokens:    []string{"NextToken"},
  1011  			LimitToken:      "",
  1012  			TruncationToken: "",
  1013  		},
  1014  	}
  1015  
  1016  	if input == nil {
  1017  		input = &SelectInput{}
  1018  	}
  1019  
  1020  	output = &SelectOutput{}
  1021  	req = c.newRequest(op, input, output)
  1022  	return
  1023  }
  1024  
  1025  // Select API operation for Amazon SimpleDB.
  1026  //
  1027  // The Select operation returns a set of attributes for ItemNames that match
  1028  // the select expression. Select is similar to the standard SQL SELECT statement.
  1029  //
  1030  // The total size of the response cannot exceed 1 MB in total size. Amazon SimpleDB
  1031  // automatically adjusts the number of items returned per page to enforce this
  1032  // limit. For example, if the client asks to retrieve 2500 items, but each individual
  1033  // item is 10 kB in size, the system returns 100 items and an appropriate NextToken
  1034  // so the client can access the next page of results.
  1035  //
  1036  // For information on how to construct select expressions, see Using Select
  1037  // to Create Amazon SimpleDB Queries in the Developer Guide.
  1038  //
  1039  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1040  // with awserr.Error's Code and Message methods to get detailed information about
  1041  // the error.
  1042  //
  1043  // See the AWS API reference guide for Amazon SimpleDB's
  1044  // API operation Select for usage and error information.
  1045  //
  1046  // Returned Error Codes:
  1047  //   * ErrCodeInvalidParameterValue "InvalidParameterValue"
  1048  //   The value for a parameter is invalid.
  1049  //
  1050  //   * ErrCodeInvalidNextToken "InvalidNextToken"
  1051  //   The specified NextToken is not valid.
  1052  //
  1053  //   * ErrCodeInvalidNumberPredicates "InvalidNumberPredicates"
  1054  //   Too many predicates exist in the query expression.
  1055  //
  1056  //   * ErrCodeInvalidNumberValueTests "InvalidNumberValueTests"
  1057  //   Too many predicates exist in the query expression.
  1058  //
  1059  //   * ErrCodeInvalidQueryExpression "InvalidQueryExpression"
  1060  //   The specified query expression syntax is not valid.
  1061  //
  1062  //   * ErrCodeMissingParameter "MissingParameter"
  1063  //   The request must contain the specified missing parameter.
  1064  //
  1065  //   * ErrCodeNoSuchDomain "NoSuchDomain"
  1066  //   The specified domain does not exist.
  1067  //
  1068  //   * ErrCodeRequestTimeout "RequestTimeout"
  1069  //   A timeout occurred when attempting to query the specified domain with specified
  1070  //   query expression.
  1071  //
  1072  //   * ErrCodeTooManyRequestedAttributes "TooManyRequestedAttributes"
  1073  //   Too many attributes requested.
  1074  //
  1075  func (c *SimpleDB) Select(input *SelectInput) (*SelectOutput, error) {
  1076  	req, out := c.SelectRequest(input)
  1077  	return out, req.Send()
  1078  }
  1079  
  1080  // SelectWithContext is the same as Select with the addition of
  1081  // the ability to pass a context and additional request options.
  1082  //
  1083  // See Select for details on how to use this API operation.
  1084  //
  1085  // The context must be non-nil and will be used for request cancellation. If
  1086  // the context is nil a panic will occur. In the future the SDK may create
  1087  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1088  // for more information on using Contexts.
  1089  func (c *SimpleDB) SelectWithContext(ctx aws.Context, input *SelectInput, opts ...request.Option) (*SelectOutput, error) {
  1090  	req, out := c.SelectRequest(input)
  1091  	req.SetContext(ctx)
  1092  	req.ApplyOptions(opts...)
  1093  	return out, req.Send()
  1094  }
  1095  
  1096  // SelectPages iterates over the pages of a Select operation,
  1097  // calling the "fn" function with the response data for each page. To stop
  1098  // iterating, return false from the fn function.
  1099  //
  1100  // See Select method for more information on how to use this operation.
  1101  //
  1102  // Note: This operation can generate multiple requests to a service.
  1103  //
  1104  //    // Example iterating over at most 3 pages of a Select operation.
  1105  //    pageNum := 0
  1106  //    err := client.SelectPages(params,
  1107  //        func(page *simpledb.SelectOutput, lastPage bool) bool {
  1108  //            pageNum++
  1109  //            fmt.Println(page)
  1110  //            return pageNum <= 3
  1111  //        })
  1112  //
  1113  func (c *SimpleDB) SelectPages(input *SelectInput, fn func(*SelectOutput, bool) bool) error {
  1114  	return c.SelectPagesWithContext(aws.BackgroundContext(), input, fn)
  1115  }
  1116  
  1117  // SelectPagesWithContext same as SelectPages except
  1118  // it takes a Context and allows setting request options on the pages.
  1119  //
  1120  // The context must be non-nil and will be used for request cancellation. If
  1121  // the context is nil a panic will occur. In the future the SDK may create
  1122  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1123  // for more information on using Contexts.
  1124  func (c *SimpleDB) SelectPagesWithContext(ctx aws.Context, input *SelectInput, fn func(*SelectOutput, bool) bool, opts ...request.Option) error {
  1125  	p := request.Pagination{
  1126  		NewRequest: func() (*request.Request, error) {
  1127  			var inCpy *SelectInput
  1128  			if input != nil {
  1129  				tmp := *input
  1130  				inCpy = &tmp
  1131  			}
  1132  			req, _ := c.SelectRequest(inCpy)
  1133  			req.SetContext(ctx)
  1134  			req.ApplyOptions(opts...)
  1135  			return req, nil
  1136  		},
  1137  	}
  1138  
  1139  	for p.Next() {
  1140  		if !fn(p.Page().(*SelectOutput), !p.HasNextPage()) {
  1141  			break
  1142  		}
  1143  	}
  1144  
  1145  	return p.Err()
  1146  }
  1147  
  1148  type Attribute struct {
  1149  	_ struct{} `type:"structure"`
  1150  
  1151  	AlternateNameEncoding *string `type:"string"`
  1152  
  1153  	AlternateValueEncoding *string `type:"string"`
  1154  
  1155  	// The name of the attribute.
  1156  	//
  1157  	// Name is a required field
  1158  	Name *string `type:"string" required:"true"`
  1159  
  1160  	// The value of the attribute.
  1161  	//
  1162  	// Value is a required field
  1163  	Value *string `type:"string" required:"true"`
  1164  }
  1165  
  1166  // String returns the string representation.
  1167  //
  1168  // API parameter values that are decorated as "sensitive" in the API will not
  1169  // be included in the string output. The member name will be present, but the
  1170  // value will be replaced with "sensitive".
  1171  func (s Attribute) String() string {
  1172  	return awsutil.Prettify(s)
  1173  }
  1174  
  1175  // GoString returns the string representation.
  1176  //
  1177  // API parameter values that are decorated as "sensitive" in the API will not
  1178  // be included in the string output. The member name will be present, but the
  1179  // value will be replaced with "sensitive".
  1180  func (s Attribute) GoString() string {
  1181  	return s.String()
  1182  }
  1183  
  1184  // SetAlternateNameEncoding sets the AlternateNameEncoding field's value.
  1185  func (s *Attribute) SetAlternateNameEncoding(v string) *Attribute {
  1186  	s.AlternateNameEncoding = &v
  1187  	return s
  1188  }
  1189  
  1190  // SetAlternateValueEncoding sets the AlternateValueEncoding field's value.
  1191  func (s *Attribute) SetAlternateValueEncoding(v string) *Attribute {
  1192  	s.AlternateValueEncoding = &v
  1193  	return s
  1194  }
  1195  
  1196  // SetName sets the Name field's value.
  1197  func (s *Attribute) SetName(v string) *Attribute {
  1198  	s.Name = &v
  1199  	return s
  1200  }
  1201  
  1202  // SetValue sets the Value field's value.
  1203  func (s *Attribute) SetValue(v string) *Attribute {
  1204  	s.Value = &v
  1205  	return s
  1206  }
  1207  
  1208  type BatchDeleteAttributesInput struct {
  1209  	_ struct{} `type:"structure"`
  1210  
  1211  	// The name of the domain in which the attributes are being deleted.
  1212  	//
  1213  	// DomainName is a required field
  1214  	DomainName *string `type:"string" required:"true"`
  1215  
  1216  	// A list of items on which to perform the operation.
  1217  	//
  1218  	// Items is a required field
  1219  	Items []*DeletableItem `locationNameList:"Item" type:"list" flattened:"true" required:"true"`
  1220  }
  1221  
  1222  // String returns the string representation.
  1223  //
  1224  // API parameter values that are decorated as "sensitive" in the API will not
  1225  // be included in the string output. The member name will be present, but the
  1226  // value will be replaced with "sensitive".
  1227  func (s BatchDeleteAttributesInput) String() string {
  1228  	return awsutil.Prettify(s)
  1229  }
  1230  
  1231  // GoString returns the string representation.
  1232  //
  1233  // API parameter values that are decorated as "sensitive" in the API will not
  1234  // be included in the string output. The member name will be present, but the
  1235  // value will be replaced with "sensitive".
  1236  func (s BatchDeleteAttributesInput) GoString() string {
  1237  	return s.String()
  1238  }
  1239  
  1240  // Validate inspects the fields of the type to determine if they are valid.
  1241  func (s *BatchDeleteAttributesInput) Validate() error {
  1242  	invalidParams := request.ErrInvalidParams{Context: "BatchDeleteAttributesInput"}
  1243  	if s.DomainName == nil {
  1244  		invalidParams.Add(request.NewErrParamRequired("DomainName"))
  1245  	}
  1246  	if s.Items == nil {
  1247  		invalidParams.Add(request.NewErrParamRequired("Items"))
  1248  	}
  1249  	if s.Items != nil {
  1250  		for i, v := range s.Items {
  1251  			if v == nil {
  1252  				continue
  1253  			}
  1254  			if err := v.Validate(); err != nil {
  1255  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Items", i), err.(request.ErrInvalidParams))
  1256  			}
  1257  		}
  1258  	}
  1259  
  1260  	if invalidParams.Len() > 0 {
  1261  		return invalidParams
  1262  	}
  1263  	return nil
  1264  }
  1265  
  1266  // SetDomainName sets the DomainName field's value.
  1267  func (s *BatchDeleteAttributesInput) SetDomainName(v string) *BatchDeleteAttributesInput {
  1268  	s.DomainName = &v
  1269  	return s
  1270  }
  1271  
  1272  // SetItems sets the Items field's value.
  1273  func (s *BatchDeleteAttributesInput) SetItems(v []*DeletableItem) *BatchDeleteAttributesInput {
  1274  	s.Items = v
  1275  	return s
  1276  }
  1277  
  1278  type BatchDeleteAttributesOutput struct {
  1279  	_ struct{} `type:"structure"`
  1280  }
  1281  
  1282  // String returns the string representation.
  1283  //
  1284  // API parameter values that are decorated as "sensitive" in the API will not
  1285  // be included in the string output. The member name will be present, but the
  1286  // value will be replaced with "sensitive".
  1287  func (s BatchDeleteAttributesOutput) String() string {
  1288  	return awsutil.Prettify(s)
  1289  }
  1290  
  1291  // GoString returns the string representation.
  1292  //
  1293  // API parameter values that are decorated as "sensitive" in the API will not
  1294  // be included in the string output. The member name will be present, but the
  1295  // value will be replaced with "sensitive".
  1296  func (s BatchDeleteAttributesOutput) GoString() string {
  1297  	return s.String()
  1298  }
  1299  
  1300  type BatchPutAttributesInput struct {
  1301  	_ struct{} `type:"structure"`
  1302  
  1303  	// The name of the domain in which the attributes are being stored.
  1304  	//
  1305  	// DomainName is a required field
  1306  	DomainName *string `type:"string" required:"true"`
  1307  
  1308  	// A list of items on which to perform the operation.
  1309  	//
  1310  	// Items is a required field
  1311  	Items []*ReplaceableItem `locationNameList:"Item" type:"list" flattened:"true" required:"true"`
  1312  }
  1313  
  1314  // String returns the string representation.
  1315  //
  1316  // API parameter values that are decorated as "sensitive" in the API will not
  1317  // be included in the string output. The member name will be present, but the
  1318  // value will be replaced with "sensitive".
  1319  func (s BatchPutAttributesInput) String() string {
  1320  	return awsutil.Prettify(s)
  1321  }
  1322  
  1323  // GoString returns the string representation.
  1324  //
  1325  // API parameter values that are decorated as "sensitive" in the API will not
  1326  // be included in the string output. The member name will be present, but the
  1327  // value will be replaced with "sensitive".
  1328  func (s BatchPutAttributesInput) GoString() string {
  1329  	return s.String()
  1330  }
  1331  
  1332  // Validate inspects the fields of the type to determine if they are valid.
  1333  func (s *BatchPutAttributesInput) Validate() error {
  1334  	invalidParams := request.ErrInvalidParams{Context: "BatchPutAttributesInput"}
  1335  	if s.DomainName == nil {
  1336  		invalidParams.Add(request.NewErrParamRequired("DomainName"))
  1337  	}
  1338  	if s.Items == nil {
  1339  		invalidParams.Add(request.NewErrParamRequired("Items"))
  1340  	}
  1341  	if s.Items != nil {
  1342  		for i, v := range s.Items {
  1343  			if v == nil {
  1344  				continue
  1345  			}
  1346  			if err := v.Validate(); err != nil {
  1347  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Items", i), err.(request.ErrInvalidParams))
  1348  			}
  1349  		}
  1350  	}
  1351  
  1352  	if invalidParams.Len() > 0 {
  1353  		return invalidParams
  1354  	}
  1355  	return nil
  1356  }
  1357  
  1358  // SetDomainName sets the DomainName field's value.
  1359  func (s *BatchPutAttributesInput) SetDomainName(v string) *BatchPutAttributesInput {
  1360  	s.DomainName = &v
  1361  	return s
  1362  }
  1363  
  1364  // SetItems sets the Items field's value.
  1365  func (s *BatchPutAttributesInput) SetItems(v []*ReplaceableItem) *BatchPutAttributesInput {
  1366  	s.Items = v
  1367  	return s
  1368  }
  1369  
  1370  type BatchPutAttributesOutput struct {
  1371  	_ struct{} `type:"structure"`
  1372  }
  1373  
  1374  // String returns the string representation.
  1375  //
  1376  // API parameter values that are decorated as "sensitive" in the API will not
  1377  // be included in the string output. The member name will be present, but the
  1378  // value will be replaced with "sensitive".
  1379  func (s BatchPutAttributesOutput) String() string {
  1380  	return awsutil.Prettify(s)
  1381  }
  1382  
  1383  // GoString returns the string representation.
  1384  //
  1385  // API parameter values that are decorated as "sensitive" in the API will not
  1386  // be included in the string output. The member name will be present, but the
  1387  // value will be replaced with "sensitive".
  1388  func (s BatchPutAttributesOutput) GoString() string {
  1389  	return s.String()
  1390  }
  1391  
  1392  type CreateDomainInput struct {
  1393  	_ struct{} `type:"structure"`
  1394  
  1395  	// The name of the domain to create. The name can range between 3 and 255 characters
  1396  	// and can contain the following characters: a-z, A-Z, 0-9, '_', '-', and '.'.
  1397  	//
  1398  	// DomainName is a required field
  1399  	DomainName *string `type:"string" required:"true"`
  1400  }
  1401  
  1402  // String returns the string representation.
  1403  //
  1404  // API parameter values that are decorated as "sensitive" in the API will not
  1405  // be included in the string output. The member name will be present, but the
  1406  // value will be replaced with "sensitive".
  1407  func (s CreateDomainInput) String() string {
  1408  	return awsutil.Prettify(s)
  1409  }
  1410  
  1411  // GoString returns the string representation.
  1412  //
  1413  // API parameter values that are decorated as "sensitive" in the API will not
  1414  // be included in the string output. The member name will be present, but the
  1415  // value will be replaced with "sensitive".
  1416  func (s CreateDomainInput) GoString() string {
  1417  	return s.String()
  1418  }
  1419  
  1420  // Validate inspects the fields of the type to determine if they are valid.
  1421  func (s *CreateDomainInput) Validate() error {
  1422  	invalidParams := request.ErrInvalidParams{Context: "CreateDomainInput"}
  1423  	if s.DomainName == nil {
  1424  		invalidParams.Add(request.NewErrParamRequired("DomainName"))
  1425  	}
  1426  
  1427  	if invalidParams.Len() > 0 {
  1428  		return invalidParams
  1429  	}
  1430  	return nil
  1431  }
  1432  
  1433  // SetDomainName sets the DomainName field's value.
  1434  func (s *CreateDomainInput) SetDomainName(v string) *CreateDomainInput {
  1435  	s.DomainName = &v
  1436  	return s
  1437  }
  1438  
  1439  type CreateDomainOutput struct {
  1440  	_ struct{} `type:"structure"`
  1441  }
  1442  
  1443  // String returns the string representation.
  1444  //
  1445  // API parameter values that are decorated as "sensitive" in the API will not
  1446  // be included in the string output. The member name will be present, but the
  1447  // value will be replaced with "sensitive".
  1448  func (s CreateDomainOutput) String() string {
  1449  	return awsutil.Prettify(s)
  1450  }
  1451  
  1452  // GoString returns the string representation.
  1453  //
  1454  // API parameter values that are decorated as "sensitive" in the API will not
  1455  // be included in the string output. The member name will be present, but the
  1456  // value will be replaced with "sensitive".
  1457  func (s CreateDomainOutput) GoString() string {
  1458  	return s.String()
  1459  }
  1460  
  1461  type DeletableAttribute struct {
  1462  	_ struct{} `type:"structure"`
  1463  
  1464  	// The name of the attribute.
  1465  	//
  1466  	// Name is a required field
  1467  	Name *string `type:"string" required:"true"`
  1468  
  1469  	// The value of the attribute.
  1470  	Value *string `type:"string"`
  1471  }
  1472  
  1473  // String returns the string representation.
  1474  //
  1475  // API parameter values that are decorated as "sensitive" in the API will not
  1476  // be included in the string output. The member name will be present, but the
  1477  // value will be replaced with "sensitive".
  1478  func (s DeletableAttribute) String() string {
  1479  	return awsutil.Prettify(s)
  1480  }
  1481  
  1482  // GoString returns the string representation.
  1483  //
  1484  // API parameter values that are decorated as "sensitive" in the API will not
  1485  // be included in the string output. The member name will be present, but the
  1486  // value will be replaced with "sensitive".
  1487  func (s DeletableAttribute) GoString() string {
  1488  	return s.String()
  1489  }
  1490  
  1491  // Validate inspects the fields of the type to determine if they are valid.
  1492  func (s *DeletableAttribute) Validate() error {
  1493  	invalidParams := request.ErrInvalidParams{Context: "DeletableAttribute"}
  1494  	if s.Name == nil {
  1495  		invalidParams.Add(request.NewErrParamRequired("Name"))
  1496  	}
  1497  
  1498  	if invalidParams.Len() > 0 {
  1499  		return invalidParams
  1500  	}
  1501  	return nil
  1502  }
  1503  
  1504  // SetName sets the Name field's value.
  1505  func (s *DeletableAttribute) SetName(v string) *DeletableAttribute {
  1506  	s.Name = &v
  1507  	return s
  1508  }
  1509  
  1510  // SetValue sets the Value field's value.
  1511  func (s *DeletableAttribute) SetValue(v string) *DeletableAttribute {
  1512  	s.Value = &v
  1513  	return s
  1514  }
  1515  
  1516  type DeletableItem struct {
  1517  	_ struct{} `type:"structure"`
  1518  
  1519  	Attributes []*DeletableAttribute `locationNameList:"Attribute" type:"list" flattened:"true"`
  1520  
  1521  	// Name is a required field
  1522  	Name *string `locationName:"ItemName" type:"string" required:"true"`
  1523  }
  1524  
  1525  // String returns the string representation.
  1526  //
  1527  // API parameter values that are decorated as "sensitive" in the API will not
  1528  // be included in the string output. The member name will be present, but the
  1529  // value will be replaced with "sensitive".
  1530  func (s DeletableItem) String() string {
  1531  	return awsutil.Prettify(s)
  1532  }
  1533  
  1534  // GoString returns the string representation.
  1535  //
  1536  // API parameter values that are decorated as "sensitive" in the API will not
  1537  // be included in the string output. The member name will be present, but the
  1538  // value will be replaced with "sensitive".
  1539  func (s DeletableItem) GoString() string {
  1540  	return s.String()
  1541  }
  1542  
  1543  // Validate inspects the fields of the type to determine if they are valid.
  1544  func (s *DeletableItem) Validate() error {
  1545  	invalidParams := request.ErrInvalidParams{Context: "DeletableItem"}
  1546  	if s.Name == nil {
  1547  		invalidParams.Add(request.NewErrParamRequired("Name"))
  1548  	}
  1549  	if s.Attributes != nil {
  1550  		for i, v := range s.Attributes {
  1551  			if v == nil {
  1552  				continue
  1553  			}
  1554  			if err := v.Validate(); err != nil {
  1555  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
  1556  			}
  1557  		}
  1558  	}
  1559  
  1560  	if invalidParams.Len() > 0 {
  1561  		return invalidParams
  1562  	}
  1563  	return nil
  1564  }
  1565  
  1566  // SetAttributes sets the Attributes field's value.
  1567  func (s *DeletableItem) SetAttributes(v []*DeletableAttribute) *DeletableItem {
  1568  	s.Attributes = v
  1569  	return s
  1570  }
  1571  
  1572  // SetName sets the Name field's value.
  1573  func (s *DeletableItem) SetName(v string) *DeletableItem {
  1574  	s.Name = &v
  1575  	return s
  1576  }
  1577  
  1578  type DeleteAttributesInput struct {
  1579  	_ struct{} `type:"structure"`
  1580  
  1581  	// A list of Attributes. Similar to columns on a spreadsheet, attributes represent
  1582  	// categories of data that can be assigned to items.
  1583  	Attributes []*DeletableAttribute `locationNameList:"Attribute" type:"list" flattened:"true"`
  1584  
  1585  	// The name of the domain in which to perform the operation.
  1586  	//
  1587  	// DomainName is a required field
  1588  	DomainName *string `type:"string" required:"true"`
  1589  
  1590  	// The update condition which, if specified, determines whether the specified
  1591  	// attributes will be deleted or not. The update condition must be satisfied
  1592  	// in order for this request to be processed and the attributes to be deleted.
  1593  	Expected *UpdateCondition `type:"structure"`
  1594  
  1595  	// The name of the item. Similar to rows on a spreadsheet, items represent individual
  1596  	// objects that contain one or more value-attribute pairs.
  1597  	//
  1598  	// ItemName is a required field
  1599  	ItemName *string `type:"string" required:"true"`
  1600  }
  1601  
  1602  // String returns the string representation.
  1603  //
  1604  // API parameter values that are decorated as "sensitive" in the API will not
  1605  // be included in the string output. The member name will be present, but the
  1606  // value will be replaced with "sensitive".
  1607  func (s DeleteAttributesInput) String() string {
  1608  	return awsutil.Prettify(s)
  1609  }
  1610  
  1611  // GoString returns the string representation.
  1612  //
  1613  // API parameter values that are decorated as "sensitive" in the API will not
  1614  // be included in the string output. The member name will be present, but the
  1615  // value will be replaced with "sensitive".
  1616  func (s DeleteAttributesInput) GoString() string {
  1617  	return s.String()
  1618  }
  1619  
  1620  // Validate inspects the fields of the type to determine if they are valid.
  1621  func (s *DeleteAttributesInput) Validate() error {
  1622  	invalidParams := request.ErrInvalidParams{Context: "DeleteAttributesInput"}
  1623  	if s.DomainName == nil {
  1624  		invalidParams.Add(request.NewErrParamRequired("DomainName"))
  1625  	}
  1626  	if s.ItemName == nil {
  1627  		invalidParams.Add(request.NewErrParamRequired("ItemName"))
  1628  	}
  1629  	if s.Attributes != nil {
  1630  		for i, v := range s.Attributes {
  1631  			if v == nil {
  1632  				continue
  1633  			}
  1634  			if err := v.Validate(); err != nil {
  1635  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
  1636  			}
  1637  		}
  1638  	}
  1639  
  1640  	if invalidParams.Len() > 0 {
  1641  		return invalidParams
  1642  	}
  1643  	return nil
  1644  }
  1645  
  1646  // SetAttributes sets the Attributes field's value.
  1647  func (s *DeleteAttributesInput) SetAttributes(v []*DeletableAttribute) *DeleteAttributesInput {
  1648  	s.Attributes = v
  1649  	return s
  1650  }
  1651  
  1652  // SetDomainName sets the DomainName field's value.
  1653  func (s *DeleteAttributesInput) SetDomainName(v string) *DeleteAttributesInput {
  1654  	s.DomainName = &v
  1655  	return s
  1656  }
  1657  
  1658  // SetExpected sets the Expected field's value.
  1659  func (s *DeleteAttributesInput) SetExpected(v *UpdateCondition) *DeleteAttributesInput {
  1660  	s.Expected = v
  1661  	return s
  1662  }
  1663  
  1664  // SetItemName sets the ItemName field's value.
  1665  func (s *DeleteAttributesInput) SetItemName(v string) *DeleteAttributesInput {
  1666  	s.ItemName = &v
  1667  	return s
  1668  }
  1669  
  1670  type DeleteAttributesOutput struct {
  1671  	_ struct{} `type:"structure"`
  1672  }
  1673  
  1674  // String returns the string representation.
  1675  //
  1676  // API parameter values that are decorated as "sensitive" in the API will not
  1677  // be included in the string output. The member name will be present, but the
  1678  // value will be replaced with "sensitive".
  1679  func (s DeleteAttributesOutput) String() string {
  1680  	return awsutil.Prettify(s)
  1681  }
  1682  
  1683  // GoString returns the string representation.
  1684  //
  1685  // API parameter values that are decorated as "sensitive" in the API will not
  1686  // be included in the string output. The member name will be present, but the
  1687  // value will be replaced with "sensitive".
  1688  func (s DeleteAttributesOutput) GoString() string {
  1689  	return s.String()
  1690  }
  1691  
  1692  type DeleteDomainInput struct {
  1693  	_ struct{} `type:"structure"`
  1694  
  1695  	// The name of the domain to delete.
  1696  	//
  1697  	// DomainName is a required field
  1698  	DomainName *string `type:"string" required:"true"`
  1699  }
  1700  
  1701  // String returns the string representation.
  1702  //
  1703  // API parameter values that are decorated as "sensitive" in the API will not
  1704  // be included in the string output. The member name will be present, but the
  1705  // value will be replaced with "sensitive".
  1706  func (s DeleteDomainInput) String() string {
  1707  	return awsutil.Prettify(s)
  1708  }
  1709  
  1710  // GoString returns the string representation.
  1711  //
  1712  // API parameter values that are decorated as "sensitive" in the API will not
  1713  // be included in the string output. The member name will be present, but the
  1714  // value will be replaced with "sensitive".
  1715  func (s DeleteDomainInput) GoString() string {
  1716  	return s.String()
  1717  }
  1718  
  1719  // Validate inspects the fields of the type to determine if they are valid.
  1720  func (s *DeleteDomainInput) Validate() error {
  1721  	invalidParams := request.ErrInvalidParams{Context: "DeleteDomainInput"}
  1722  	if s.DomainName == nil {
  1723  		invalidParams.Add(request.NewErrParamRequired("DomainName"))
  1724  	}
  1725  
  1726  	if invalidParams.Len() > 0 {
  1727  		return invalidParams
  1728  	}
  1729  	return nil
  1730  }
  1731  
  1732  // SetDomainName sets the DomainName field's value.
  1733  func (s *DeleteDomainInput) SetDomainName(v string) *DeleteDomainInput {
  1734  	s.DomainName = &v
  1735  	return s
  1736  }
  1737  
  1738  type DeleteDomainOutput struct {
  1739  	_ struct{} `type:"structure"`
  1740  }
  1741  
  1742  // String returns the string representation.
  1743  //
  1744  // API parameter values that are decorated as "sensitive" in the API will not
  1745  // be included in the string output. The member name will be present, but the
  1746  // value will be replaced with "sensitive".
  1747  func (s DeleteDomainOutput) String() string {
  1748  	return awsutil.Prettify(s)
  1749  }
  1750  
  1751  // GoString returns the string representation.
  1752  //
  1753  // API parameter values that are decorated as "sensitive" in the API will not
  1754  // be included in the string output. The member name will be present, but the
  1755  // value will be replaced with "sensitive".
  1756  func (s DeleteDomainOutput) GoString() string {
  1757  	return s.String()
  1758  }
  1759  
  1760  type DomainMetadataInput struct {
  1761  	_ struct{} `type:"structure"`
  1762  
  1763  	// The name of the domain for which to display the metadata of.
  1764  	//
  1765  	// DomainName is a required field
  1766  	DomainName *string `type:"string" required:"true"`
  1767  }
  1768  
  1769  // String returns the string representation.
  1770  //
  1771  // API parameter values that are decorated as "sensitive" in the API will not
  1772  // be included in the string output. The member name will be present, but the
  1773  // value will be replaced with "sensitive".
  1774  func (s DomainMetadataInput) String() string {
  1775  	return awsutil.Prettify(s)
  1776  }
  1777  
  1778  // GoString returns the string representation.
  1779  //
  1780  // API parameter values that are decorated as "sensitive" in the API will not
  1781  // be included in the string output. The member name will be present, but the
  1782  // value will be replaced with "sensitive".
  1783  func (s DomainMetadataInput) GoString() string {
  1784  	return s.String()
  1785  }
  1786  
  1787  // Validate inspects the fields of the type to determine if they are valid.
  1788  func (s *DomainMetadataInput) Validate() error {
  1789  	invalidParams := request.ErrInvalidParams{Context: "DomainMetadataInput"}
  1790  	if s.DomainName == nil {
  1791  		invalidParams.Add(request.NewErrParamRequired("DomainName"))
  1792  	}
  1793  
  1794  	if invalidParams.Len() > 0 {
  1795  		return invalidParams
  1796  	}
  1797  	return nil
  1798  }
  1799  
  1800  // SetDomainName sets the DomainName field's value.
  1801  func (s *DomainMetadataInput) SetDomainName(v string) *DomainMetadataInput {
  1802  	s.DomainName = &v
  1803  	return s
  1804  }
  1805  
  1806  type DomainMetadataOutput struct {
  1807  	_ struct{} `type:"structure"`
  1808  
  1809  	// The number of unique attribute names in the domain.
  1810  	AttributeNameCount *int64 `type:"integer"`
  1811  
  1812  	// The total size of all unique attribute names in the domain, in bytes.
  1813  	AttributeNamesSizeBytes *int64 `type:"long"`
  1814  
  1815  	// The number of all attribute name/value pairs in the domain.
  1816  	AttributeValueCount *int64 `type:"integer"`
  1817  
  1818  	// The total size of all attribute values in the domain, in bytes.
  1819  	AttributeValuesSizeBytes *int64 `type:"long"`
  1820  
  1821  	// The number of all items in the domain.
  1822  	ItemCount *int64 `type:"integer"`
  1823  
  1824  	// The total size of all item names in the domain, in bytes.
  1825  	ItemNamesSizeBytes *int64 `type:"long"`
  1826  
  1827  	// The data and time when metadata was calculated, in Epoch (UNIX) seconds.
  1828  	Timestamp *int64 `type:"integer"`
  1829  }
  1830  
  1831  // String returns the string representation.
  1832  //
  1833  // API parameter values that are decorated as "sensitive" in the API will not
  1834  // be included in the string output. The member name will be present, but the
  1835  // value will be replaced with "sensitive".
  1836  func (s DomainMetadataOutput) String() string {
  1837  	return awsutil.Prettify(s)
  1838  }
  1839  
  1840  // GoString returns the string representation.
  1841  //
  1842  // API parameter values that are decorated as "sensitive" in the API will not
  1843  // be included in the string output. The member name will be present, but the
  1844  // value will be replaced with "sensitive".
  1845  func (s DomainMetadataOutput) GoString() string {
  1846  	return s.String()
  1847  }
  1848  
  1849  // SetAttributeNameCount sets the AttributeNameCount field's value.
  1850  func (s *DomainMetadataOutput) SetAttributeNameCount(v int64) *DomainMetadataOutput {
  1851  	s.AttributeNameCount = &v
  1852  	return s
  1853  }
  1854  
  1855  // SetAttributeNamesSizeBytes sets the AttributeNamesSizeBytes field's value.
  1856  func (s *DomainMetadataOutput) SetAttributeNamesSizeBytes(v int64) *DomainMetadataOutput {
  1857  	s.AttributeNamesSizeBytes = &v
  1858  	return s
  1859  }
  1860  
  1861  // SetAttributeValueCount sets the AttributeValueCount field's value.
  1862  func (s *DomainMetadataOutput) SetAttributeValueCount(v int64) *DomainMetadataOutput {
  1863  	s.AttributeValueCount = &v
  1864  	return s
  1865  }
  1866  
  1867  // SetAttributeValuesSizeBytes sets the AttributeValuesSizeBytes field's value.
  1868  func (s *DomainMetadataOutput) SetAttributeValuesSizeBytes(v int64) *DomainMetadataOutput {
  1869  	s.AttributeValuesSizeBytes = &v
  1870  	return s
  1871  }
  1872  
  1873  // SetItemCount sets the ItemCount field's value.
  1874  func (s *DomainMetadataOutput) SetItemCount(v int64) *DomainMetadataOutput {
  1875  	s.ItemCount = &v
  1876  	return s
  1877  }
  1878  
  1879  // SetItemNamesSizeBytes sets the ItemNamesSizeBytes field's value.
  1880  func (s *DomainMetadataOutput) SetItemNamesSizeBytes(v int64) *DomainMetadataOutput {
  1881  	s.ItemNamesSizeBytes = &v
  1882  	return s
  1883  }
  1884  
  1885  // SetTimestamp sets the Timestamp field's value.
  1886  func (s *DomainMetadataOutput) SetTimestamp(v int64) *DomainMetadataOutput {
  1887  	s.Timestamp = &v
  1888  	return s
  1889  }
  1890  
  1891  type GetAttributesInput struct {
  1892  	_ struct{} `type:"structure"`
  1893  
  1894  	// The names of the attributes.
  1895  	AttributeNames []*string `locationNameList:"AttributeName" type:"list" flattened:"true"`
  1896  
  1897  	// Determines whether or not strong consistency should be enforced when data
  1898  	// is read from SimpleDB. If
  1899  	//    true
  1900  	// , any data previously written to SimpleDB will be returned. Otherwise, results
  1901  	// will be consistent eventually, and the client may not see data that was written
  1902  	// immediately before your read.
  1903  	ConsistentRead *bool `type:"boolean"`
  1904  
  1905  	// The name of the domain in which to perform the operation.
  1906  	//
  1907  	// DomainName is a required field
  1908  	DomainName *string `type:"string" required:"true"`
  1909  
  1910  	// The name of the item.
  1911  	//
  1912  	// ItemName is a required field
  1913  	ItemName *string `type:"string" required:"true"`
  1914  }
  1915  
  1916  // String returns the string representation.
  1917  //
  1918  // API parameter values that are decorated as "sensitive" in the API will not
  1919  // be included in the string output. The member name will be present, but the
  1920  // value will be replaced with "sensitive".
  1921  func (s GetAttributesInput) String() string {
  1922  	return awsutil.Prettify(s)
  1923  }
  1924  
  1925  // GoString returns the string representation.
  1926  //
  1927  // API parameter values that are decorated as "sensitive" in the API will not
  1928  // be included in the string output. The member name will be present, but the
  1929  // value will be replaced with "sensitive".
  1930  func (s GetAttributesInput) GoString() string {
  1931  	return s.String()
  1932  }
  1933  
  1934  // Validate inspects the fields of the type to determine if they are valid.
  1935  func (s *GetAttributesInput) Validate() error {
  1936  	invalidParams := request.ErrInvalidParams{Context: "GetAttributesInput"}
  1937  	if s.DomainName == nil {
  1938  		invalidParams.Add(request.NewErrParamRequired("DomainName"))
  1939  	}
  1940  	if s.ItemName == nil {
  1941  		invalidParams.Add(request.NewErrParamRequired("ItemName"))
  1942  	}
  1943  
  1944  	if invalidParams.Len() > 0 {
  1945  		return invalidParams
  1946  	}
  1947  	return nil
  1948  }
  1949  
  1950  // SetAttributeNames sets the AttributeNames field's value.
  1951  func (s *GetAttributesInput) SetAttributeNames(v []*string) *GetAttributesInput {
  1952  	s.AttributeNames = v
  1953  	return s
  1954  }
  1955  
  1956  // SetConsistentRead sets the ConsistentRead field's value.
  1957  func (s *GetAttributesInput) SetConsistentRead(v bool) *GetAttributesInput {
  1958  	s.ConsistentRead = &v
  1959  	return s
  1960  }
  1961  
  1962  // SetDomainName sets the DomainName field's value.
  1963  func (s *GetAttributesInput) SetDomainName(v string) *GetAttributesInput {
  1964  	s.DomainName = &v
  1965  	return s
  1966  }
  1967  
  1968  // SetItemName sets the ItemName field's value.
  1969  func (s *GetAttributesInput) SetItemName(v string) *GetAttributesInput {
  1970  	s.ItemName = &v
  1971  	return s
  1972  }
  1973  
  1974  type GetAttributesOutput struct {
  1975  	_ struct{} `type:"structure"`
  1976  
  1977  	// The list of attributes returned by the operation.
  1978  	Attributes []*Attribute `locationNameList:"Attribute" type:"list" flattened:"true"`
  1979  }
  1980  
  1981  // String returns the string representation.
  1982  //
  1983  // API parameter values that are decorated as "sensitive" in the API will not
  1984  // be included in the string output. The member name will be present, but the
  1985  // value will be replaced with "sensitive".
  1986  func (s GetAttributesOutput) String() string {
  1987  	return awsutil.Prettify(s)
  1988  }
  1989  
  1990  // GoString returns the string representation.
  1991  //
  1992  // API parameter values that are decorated as "sensitive" in the API will not
  1993  // be included in the string output. The member name will be present, but the
  1994  // value will be replaced with "sensitive".
  1995  func (s GetAttributesOutput) GoString() string {
  1996  	return s.String()
  1997  }
  1998  
  1999  // SetAttributes sets the Attributes field's value.
  2000  func (s *GetAttributesOutput) SetAttributes(v []*Attribute) *GetAttributesOutput {
  2001  	s.Attributes = v
  2002  	return s
  2003  }
  2004  
  2005  type Item struct {
  2006  	_ struct{} `type:"structure"`
  2007  
  2008  	AlternateNameEncoding *string `type:"string"`
  2009  
  2010  	// A list of attributes.
  2011  	//
  2012  	// Attributes is a required field
  2013  	Attributes []*Attribute `locationNameList:"Attribute" type:"list" flattened:"true" required:"true"`
  2014  
  2015  	// The name of the item.
  2016  	//
  2017  	// Name is a required field
  2018  	Name *string `type:"string" required:"true"`
  2019  }
  2020  
  2021  // String returns the string representation.
  2022  //
  2023  // API parameter values that are decorated as "sensitive" in the API will not
  2024  // be included in the string output. The member name will be present, but the
  2025  // value will be replaced with "sensitive".
  2026  func (s Item) String() string {
  2027  	return awsutil.Prettify(s)
  2028  }
  2029  
  2030  // GoString returns the string representation.
  2031  //
  2032  // API parameter values that are decorated as "sensitive" in the API will not
  2033  // be included in the string output. The member name will be present, but the
  2034  // value will be replaced with "sensitive".
  2035  func (s Item) GoString() string {
  2036  	return s.String()
  2037  }
  2038  
  2039  // SetAlternateNameEncoding sets the AlternateNameEncoding field's value.
  2040  func (s *Item) SetAlternateNameEncoding(v string) *Item {
  2041  	s.AlternateNameEncoding = &v
  2042  	return s
  2043  }
  2044  
  2045  // SetAttributes sets the Attributes field's value.
  2046  func (s *Item) SetAttributes(v []*Attribute) *Item {
  2047  	s.Attributes = v
  2048  	return s
  2049  }
  2050  
  2051  // SetName sets the Name field's value.
  2052  func (s *Item) SetName(v string) *Item {
  2053  	s.Name = &v
  2054  	return s
  2055  }
  2056  
  2057  type ListDomainsInput struct {
  2058  	_ struct{} `type:"structure"`
  2059  
  2060  	// The maximum number of domain names you want returned. The range is 1 to 100.
  2061  	// The default setting is 100.
  2062  	MaxNumberOfDomains *int64 `type:"integer"`
  2063  
  2064  	// A string informing Amazon SimpleDB where to start the next list of domain
  2065  	// names.
  2066  	NextToken *string `type:"string"`
  2067  }
  2068  
  2069  // String returns the string representation.
  2070  //
  2071  // API parameter values that are decorated as "sensitive" in the API will not
  2072  // be included in the string output. The member name will be present, but the
  2073  // value will be replaced with "sensitive".
  2074  func (s ListDomainsInput) String() string {
  2075  	return awsutil.Prettify(s)
  2076  }
  2077  
  2078  // GoString returns the string representation.
  2079  //
  2080  // API parameter values that are decorated as "sensitive" in the API will not
  2081  // be included in the string output. The member name will be present, but the
  2082  // value will be replaced with "sensitive".
  2083  func (s ListDomainsInput) GoString() string {
  2084  	return s.String()
  2085  }
  2086  
  2087  // SetMaxNumberOfDomains sets the MaxNumberOfDomains field's value.
  2088  func (s *ListDomainsInput) SetMaxNumberOfDomains(v int64) *ListDomainsInput {
  2089  	s.MaxNumberOfDomains = &v
  2090  	return s
  2091  }
  2092  
  2093  // SetNextToken sets the NextToken field's value.
  2094  func (s *ListDomainsInput) SetNextToken(v string) *ListDomainsInput {
  2095  	s.NextToken = &v
  2096  	return s
  2097  }
  2098  
  2099  type ListDomainsOutput struct {
  2100  	_ struct{} `type:"structure"`
  2101  
  2102  	// A list of domain names that match the expression.
  2103  	DomainNames []*string `locationNameList:"DomainName" type:"list" flattened:"true"`
  2104  
  2105  	// An opaque token indicating that there are more domains than the specified
  2106  	//    MaxNumberOfDomains
  2107  	//  still available.
  2108  	NextToken *string `type:"string"`
  2109  }
  2110  
  2111  // String returns the string representation.
  2112  //
  2113  // API parameter values that are decorated as "sensitive" in the API will not
  2114  // be included in the string output. The member name will be present, but the
  2115  // value will be replaced with "sensitive".
  2116  func (s ListDomainsOutput) String() string {
  2117  	return awsutil.Prettify(s)
  2118  }
  2119  
  2120  // GoString returns the string representation.
  2121  //
  2122  // API parameter values that are decorated as "sensitive" in the API will not
  2123  // be included in the string output. The member name will be present, but the
  2124  // value will be replaced with "sensitive".
  2125  func (s ListDomainsOutput) GoString() string {
  2126  	return s.String()
  2127  }
  2128  
  2129  // SetDomainNames sets the DomainNames field's value.
  2130  func (s *ListDomainsOutput) SetDomainNames(v []*string) *ListDomainsOutput {
  2131  	s.DomainNames = v
  2132  	return s
  2133  }
  2134  
  2135  // SetNextToken sets the NextToken field's value.
  2136  func (s *ListDomainsOutput) SetNextToken(v string) *ListDomainsOutput {
  2137  	s.NextToken = &v
  2138  	return s
  2139  }
  2140  
  2141  type PutAttributesInput struct {
  2142  	_ struct{} `type:"structure"`
  2143  
  2144  	// The list of attributes.
  2145  	//
  2146  	// Attributes is a required field
  2147  	Attributes []*ReplaceableAttribute `locationNameList:"Attribute" type:"list" flattened:"true" required:"true"`
  2148  
  2149  	// The name of the domain in which to perform the operation.
  2150  	//
  2151  	// DomainName is a required field
  2152  	DomainName *string `type:"string" required:"true"`
  2153  
  2154  	// The update condition which, if specified, determines whether the specified
  2155  	// attributes will be updated or not. The update condition must be satisfied
  2156  	// in order for this request to be processed and the attributes to be updated.
  2157  	Expected *UpdateCondition `type:"structure"`
  2158  
  2159  	// The name of the item.
  2160  	//
  2161  	// ItemName is a required field
  2162  	ItemName *string `type:"string" required:"true"`
  2163  }
  2164  
  2165  // String returns the string representation.
  2166  //
  2167  // API parameter values that are decorated as "sensitive" in the API will not
  2168  // be included in the string output. The member name will be present, but the
  2169  // value will be replaced with "sensitive".
  2170  func (s PutAttributesInput) String() string {
  2171  	return awsutil.Prettify(s)
  2172  }
  2173  
  2174  // GoString returns the string representation.
  2175  //
  2176  // API parameter values that are decorated as "sensitive" in the API will not
  2177  // be included in the string output. The member name will be present, but the
  2178  // value will be replaced with "sensitive".
  2179  func (s PutAttributesInput) GoString() string {
  2180  	return s.String()
  2181  }
  2182  
  2183  // Validate inspects the fields of the type to determine if they are valid.
  2184  func (s *PutAttributesInput) Validate() error {
  2185  	invalidParams := request.ErrInvalidParams{Context: "PutAttributesInput"}
  2186  	if s.Attributes == nil {
  2187  		invalidParams.Add(request.NewErrParamRequired("Attributes"))
  2188  	}
  2189  	if s.DomainName == nil {
  2190  		invalidParams.Add(request.NewErrParamRequired("DomainName"))
  2191  	}
  2192  	if s.ItemName == nil {
  2193  		invalidParams.Add(request.NewErrParamRequired("ItemName"))
  2194  	}
  2195  	if s.Attributes != nil {
  2196  		for i, v := range s.Attributes {
  2197  			if v == nil {
  2198  				continue
  2199  			}
  2200  			if err := v.Validate(); err != nil {
  2201  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
  2202  			}
  2203  		}
  2204  	}
  2205  
  2206  	if invalidParams.Len() > 0 {
  2207  		return invalidParams
  2208  	}
  2209  	return nil
  2210  }
  2211  
  2212  // SetAttributes sets the Attributes field's value.
  2213  func (s *PutAttributesInput) SetAttributes(v []*ReplaceableAttribute) *PutAttributesInput {
  2214  	s.Attributes = v
  2215  	return s
  2216  }
  2217  
  2218  // SetDomainName sets the DomainName field's value.
  2219  func (s *PutAttributesInput) SetDomainName(v string) *PutAttributesInput {
  2220  	s.DomainName = &v
  2221  	return s
  2222  }
  2223  
  2224  // SetExpected sets the Expected field's value.
  2225  func (s *PutAttributesInput) SetExpected(v *UpdateCondition) *PutAttributesInput {
  2226  	s.Expected = v
  2227  	return s
  2228  }
  2229  
  2230  // SetItemName sets the ItemName field's value.
  2231  func (s *PutAttributesInput) SetItemName(v string) *PutAttributesInput {
  2232  	s.ItemName = &v
  2233  	return s
  2234  }
  2235  
  2236  type PutAttributesOutput struct {
  2237  	_ struct{} `type:"structure"`
  2238  }
  2239  
  2240  // String returns the string representation.
  2241  //
  2242  // API parameter values that are decorated as "sensitive" in the API will not
  2243  // be included in the string output. The member name will be present, but the
  2244  // value will be replaced with "sensitive".
  2245  func (s PutAttributesOutput) String() string {
  2246  	return awsutil.Prettify(s)
  2247  }
  2248  
  2249  // GoString returns the string representation.
  2250  //
  2251  // API parameter values that are decorated as "sensitive" in the API will not
  2252  // be included in the string output. The member name will be present, but the
  2253  // value will be replaced with "sensitive".
  2254  func (s PutAttributesOutput) GoString() string {
  2255  	return s.String()
  2256  }
  2257  
  2258  type ReplaceableAttribute struct {
  2259  	_ struct{} `type:"structure"`
  2260  
  2261  	// The name of the replaceable attribute.
  2262  	//
  2263  	// Name is a required field
  2264  	Name *string `type:"string" required:"true"`
  2265  
  2266  	// A flag specifying whether or not to replace the attribute/value pair or to
  2267  	// add a new attribute/value pair. The default setting is
  2268  	//    false
  2269  	// .
  2270  	Replace *bool `type:"boolean"`
  2271  
  2272  	// The value of the replaceable attribute.
  2273  	//
  2274  	// Value is a required field
  2275  	Value *string `type:"string" required:"true"`
  2276  }
  2277  
  2278  // String returns the string representation.
  2279  //
  2280  // API parameter values that are decorated as "sensitive" in the API will not
  2281  // be included in the string output. The member name will be present, but the
  2282  // value will be replaced with "sensitive".
  2283  func (s ReplaceableAttribute) String() string {
  2284  	return awsutil.Prettify(s)
  2285  }
  2286  
  2287  // GoString returns the string representation.
  2288  //
  2289  // API parameter values that are decorated as "sensitive" in the API will not
  2290  // be included in the string output. The member name will be present, but the
  2291  // value will be replaced with "sensitive".
  2292  func (s ReplaceableAttribute) GoString() string {
  2293  	return s.String()
  2294  }
  2295  
  2296  // Validate inspects the fields of the type to determine if they are valid.
  2297  func (s *ReplaceableAttribute) Validate() error {
  2298  	invalidParams := request.ErrInvalidParams{Context: "ReplaceableAttribute"}
  2299  	if s.Name == nil {
  2300  		invalidParams.Add(request.NewErrParamRequired("Name"))
  2301  	}
  2302  	if s.Value == nil {
  2303  		invalidParams.Add(request.NewErrParamRequired("Value"))
  2304  	}
  2305  
  2306  	if invalidParams.Len() > 0 {
  2307  		return invalidParams
  2308  	}
  2309  	return nil
  2310  }
  2311  
  2312  // SetName sets the Name field's value.
  2313  func (s *ReplaceableAttribute) SetName(v string) *ReplaceableAttribute {
  2314  	s.Name = &v
  2315  	return s
  2316  }
  2317  
  2318  // SetReplace sets the Replace field's value.
  2319  func (s *ReplaceableAttribute) SetReplace(v bool) *ReplaceableAttribute {
  2320  	s.Replace = &v
  2321  	return s
  2322  }
  2323  
  2324  // SetValue sets the Value field's value.
  2325  func (s *ReplaceableAttribute) SetValue(v string) *ReplaceableAttribute {
  2326  	s.Value = &v
  2327  	return s
  2328  }
  2329  
  2330  type ReplaceableItem struct {
  2331  	_ struct{} `type:"structure"`
  2332  
  2333  	// The list of attributes for a replaceable item.
  2334  	//
  2335  	// Attributes is a required field
  2336  	Attributes []*ReplaceableAttribute `locationNameList:"Attribute" type:"list" flattened:"true" required:"true"`
  2337  
  2338  	// The name of the replaceable item.
  2339  	//
  2340  	// Name is a required field
  2341  	Name *string `locationName:"ItemName" type:"string" required:"true"`
  2342  }
  2343  
  2344  // String returns the string representation.
  2345  //
  2346  // API parameter values that are decorated as "sensitive" in the API will not
  2347  // be included in the string output. The member name will be present, but the
  2348  // value will be replaced with "sensitive".
  2349  func (s ReplaceableItem) String() string {
  2350  	return awsutil.Prettify(s)
  2351  }
  2352  
  2353  // GoString returns the string representation.
  2354  //
  2355  // API parameter values that are decorated as "sensitive" in the API will not
  2356  // be included in the string output. The member name will be present, but the
  2357  // value will be replaced with "sensitive".
  2358  func (s ReplaceableItem) GoString() string {
  2359  	return s.String()
  2360  }
  2361  
  2362  // Validate inspects the fields of the type to determine if they are valid.
  2363  func (s *ReplaceableItem) Validate() error {
  2364  	invalidParams := request.ErrInvalidParams{Context: "ReplaceableItem"}
  2365  	if s.Attributes == nil {
  2366  		invalidParams.Add(request.NewErrParamRequired("Attributes"))
  2367  	}
  2368  	if s.Name == nil {
  2369  		invalidParams.Add(request.NewErrParamRequired("Name"))
  2370  	}
  2371  	if s.Attributes != nil {
  2372  		for i, v := range s.Attributes {
  2373  			if v == nil {
  2374  				continue
  2375  			}
  2376  			if err := v.Validate(); err != nil {
  2377  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
  2378  			}
  2379  		}
  2380  	}
  2381  
  2382  	if invalidParams.Len() > 0 {
  2383  		return invalidParams
  2384  	}
  2385  	return nil
  2386  }
  2387  
  2388  // SetAttributes sets the Attributes field's value.
  2389  func (s *ReplaceableItem) SetAttributes(v []*ReplaceableAttribute) *ReplaceableItem {
  2390  	s.Attributes = v
  2391  	return s
  2392  }
  2393  
  2394  // SetName sets the Name field's value.
  2395  func (s *ReplaceableItem) SetName(v string) *ReplaceableItem {
  2396  	s.Name = &v
  2397  	return s
  2398  }
  2399  
  2400  type SelectInput struct {
  2401  	_ struct{} `type:"structure"`
  2402  
  2403  	// Determines whether or not strong consistency should be enforced when data
  2404  	// is read from SimpleDB. If
  2405  	//    true
  2406  	// , any data previously written to SimpleDB will be returned. Otherwise, results
  2407  	// will be consistent eventually, and the client may not see data that was written
  2408  	// immediately before your read.
  2409  	ConsistentRead *bool `type:"boolean"`
  2410  
  2411  	// A string informing Amazon SimpleDB where to start the next list of
  2412  	//    ItemNames
  2413  	// .
  2414  	NextToken *string `type:"string"`
  2415  
  2416  	// The expression used to query the domain.
  2417  	//
  2418  	// SelectExpression is a required field
  2419  	SelectExpression *string `type:"string" required:"true"`
  2420  }
  2421  
  2422  // String returns the string representation.
  2423  //
  2424  // API parameter values that are decorated as "sensitive" in the API will not
  2425  // be included in the string output. The member name will be present, but the
  2426  // value will be replaced with "sensitive".
  2427  func (s SelectInput) String() string {
  2428  	return awsutil.Prettify(s)
  2429  }
  2430  
  2431  // GoString returns the string representation.
  2432  //
  2433  // API parameter values that are decorated as "sensitive" in the API will not
  2434  // be included in the string output. The member name will be present, but the
  2435  // value will be replaced with "sensitive".
  2436  func (s SelectInput) GoString() string {
  2437  	return s.String()
  2438  }
  2439  
  2440  // Validate inspects the fields of the type to determine if they are valid.
  2441  func (s *SelectInput) Validate() error {
  2442  	invalidParams := request.ErrInvalidParams{Context: "SelectInput"}
  2443  	if s.SelectExpression == nil {
  2444  		invalidParams.Add(request.NewErrParamRequired("SelectExpression"))
  2445  	}
  2446  
  2447  	if invalidParams.Len() > 0 {
  2448  		return invalidParams
  2449  	}
  2450  	return nil
  2451  }
  2452  
  2453  // SetConsistentRead sets the ConsistentRead field's value.
  2454  func (s *SelectInput) SetConsistentRead(v bool) *SelectInput {
  2455  	s.ConsistentRead = &v
  2456  	return s
  2457  }
  2458  
  2459  // SetNextToken sets the NextToken field's value.
  2460  func (s *SelectInput) SetNextToken(v string) *SelectInput {
  2461  	s.NextToken = &v
  2462  	return s
  2463  }
  2464  
  2465  // SetSelectExpression sets the SelectExpression field's value.
  2466  func (s *SelectInput) SetSelectExpression(v string) *SelectInput {
  2467  	s.SelectExpression = &v
  2468  	return s
  2469  }
  2470  
  2471  type SelectOutput struct {
  2472  	_ struct{} `type:"structure"`
  2473  
  2474  	// A list of items that match the select expression.
  2475  	Items []*Item `locationNameList:"Item" type:"list" flattened:"true"`
  2476  
  2477  	// An opaque token indicating that more items than
  2478  	//    MaxNumberOfItems
  2479  	//  were matched, the response size exceeded 1 megabyte, or the execution time
  2480  	//  exceeded 5 seconds.
  2481  	NextToken *string `type:"string"`
  2482  }
  2483  
  2484  // String returns the string representation.
  2485  //
  2486  // API parameter values that are decorated as "sensitive" in the API will not
  2487  // be included in the string output. The member name will be present, but the
  2488  // value will be replaced with "sensitive".
  2489  func (s SelectOutput) String() string {
  2490  	return awsutil.Prettify(s)
  2491  }
  2492  
  2493  // GoString returns the string representation.
  2494  //
  2495  // API parameter values that are decorated as "sensitive" in the API will not
  2496  // be included in the string output. The member name will be present, but the
  2497  // value will be replaced with "sensitive".
  2498  func (s SelectOutput) GoString() string {
  2499  	return s.String()
  2500  }
  2501  
  2502  // SetItems sets the Items field's value.
  2503  func (s *SelectOutput) SetItems(v []*Item) *SelectOutput {
  2504  	s.Items = v
  2505  	return s
  2506  }
  2507  
  2508  // SetNextToken sets the NextToken field's value.
  2509  func (s *SelectOutput) SetNextToken(v string) *SelectOutput {
  2510  	s.NextToken = &v
  2511  	return s
  2512  }
  2513  
  2514  // Specifies the conditions under which data should be updated. If an update
  2515  // condition is specified for a request, the data will only be updated if the
  2516  // condition is satisfied. For example, if an attribute with a specific name
  2517  // and value exists, or if a specific attribute doesn't exist.
  2518  type UpdateCondition struct {
  2519  	_ struct{} `type:"structure"`
  2520  
  2521  	// A value specifying whether or not the specified attribute must exist with
  2522  	// the specified value in order for the update condition to be satisfied. Specify
  2523  	// true if the attribute must exist for the update condition to be satisfied.
  2524  	// Specify false if the attribute should not exist in order for the update condition
  2525  	// to be satisfied.
  2526  	Exists *bool `type:"boolean"`
  2527  
  2528  	// The name of the attribute involved in the condition.
  2529  	Name *string `type:"string"`
  2530  
  2531  	// The value of an attribute. This value can only be specified when the Exists
  2532  	// parameter is equal to true.
  2533  	Value *string `type:"string"`
  2534  }
  2535  
  2536  // String returns the string representation.
  2537  //
  2538  // API parameter values that are decorated as "sensitive" in the API will not
  2539  // be included in the string output. The member name will be present, but the
  2540  // value will be replaced with "sensitive".
  2541  func (s UpdateCondition) String() string {
  2542  	return awsutil.Prettify(s)
  2543  }
  2544  
  2545  // GoString returns the string representation.
  2546  //
  2547  // API parameter values that are decorated as "sensitive" in the API will not
  2548  // be included in the string output. The member name will be present, but the
  2549  // value will be replaced with "sensitive".
  2550  func (s UpdateCondition) GoString() string {
  2551  	return s.String()
  2552  }
  2553  
  2554  // SetExists sets the Exists field's value.
  2555  func (s *UpdateCondition) SetExists(v bool) *UpdateCondition {
  2556  	s.Exists = &v
  2557  	return s
  2558  }
  2559  
  2560  // SetName sets the Name field's value.
  2561  func (s *UpdateCondition) SetName(v string) *UpdateCondition {
  2562  	s.Name = &v
  2563  	return s
  2564  }
  2565  
  2566  // SetValue sets the Value field's value.
  2567  func (s *UpdateCondition) SetValue(v string) *UpdateCondition {
  2568  	s.Value = &v
  2569  	return s
  2570  }