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

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package sqs
     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 opAddPermission = "AddPermission"
    16  
    17  // AddPermissionRequest generates a "aws/request.Request" representing the
    18  // client's request for the AddPermission 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 AddPermission for more information on using the AddPermission
    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 AddPermissionRequest method.
    33  //    req, resp := client.AddPermissionRequest(params)
    34  //
    35  //    err := req.Send()
    36  //    if err == nil { // resp is now filled
    37  //        fmt.Println(resp)
    38  //    }
    39  //
    40  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/AddPermission
    41  func (c *SQS) AddPermissionRequest(input *AddPermissionInput) (req *request.Request, output *AddPermissionOutput) {
    42  	op := &request.Operation{
    43  		Name:       opAddPermission,
    44  		HTTPMethod: "POST",
    45  		HTTPPath:   "/",
    46  	}
    47  
    48  	if input == nil {
    49  		input = &AddPermissionInput{}
    50  	}
    51  
    52  	output = &AddPermissionOutput{}
    53  	req = c.newRequest(op, input, output)
    54  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
    55  	return
    56  }
    57  
    58  // AddPermission API operation for Amazon Simple Queue Service.
    59  //
    60  // Adds a permission to a queue for a specific principal (https://docs.aws.amazon.com/general/latest/gr/glos-chap.html#P).
    61  // This allows sharing access to the queue.
    62  //
    63  // When you create a queue, you have full control access rights for the queue.
    64  // Only you, the owner of the queue, can grant or deny permissions to the queue.
    65  // For more information about these permissions, see Allow Developers to Write
    66  // Messages to a Shared Queue (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-writing-an-sqs-policy.html#write-messages-to-shared-queue)
    67  // in the Amazon SQS Developer Guide.
    68  //
    69  //    * AddPermission generates a policy for you. You can use SetQueueAttributes
    70  //    to upload your policy. For more information, see Using Custom Policies
    71  //    with the Amazon SQS Access Policy Language (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-creating-custom-policies.html)
    72  //    in the Amazon SQS Developer Guide.
    73  //
    74  //    * An Amazon SQS policy can have a maximum of 7 actions.
    75  //
    76  //    * To remove the ability to change queue permissions, you must deny permission
    77  //    to the AddPermission, RemovePermission, and SetQueueAttributes actions
    78  //    in your IAM policy.
    79  //
    80  // Some actions take lists of parameters. These lists are specified using the
    81  // param.n notation. Values of n are integers starting from 1. For example,
    82  // a parameter list with two elements looks like this:
    83  //
    84  // &AttributeName.1=first
    85  //
    86  // &AttributeName.2=second
    87  //
    88  // Cross-account permissions don't apply to this action. For more information,
    89  // see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name)
    90  // in the Amazon SQS Developer Guide.
    91  //
    92  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
    93  // with awserr.Error's Code and Message methods to get detailed information about
    94  // the error.
    95  //
    96  // See the AWS API reference guide for Amazon Simple Queue Service's
    97  // API operation AddPermission for usage and error information.
    98  //
    99  // Returned Error Codes:
   100  //   * ErrCodeOverLimit "OverLimit"
   101  //   The specified action violates a limit. For example, ReceiveMessage returns
   102  //   this error if the maximum number of inflight messages is reached and AddPermission
   103  //   returns this error if the maximum number of permissions for the queue is
   104  //   reached.
   105  //
   106  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/AddPermission
   107  func (c *SQS) AddPermission(input *AddPermissionInput) (*AddPermissionOutput, error) {
   108  	req, out := c.AddPermissionRequest(input)
   109  	return out, req.Send()
   110  }
   111  
   112  // AddPermissionWithContext is the same as AddPermission with the addition of
   113  // the ability to pass a context and additional request options.
   114  //
   115  // See AddPermission for details on how to use this API operation.
   116  //
   117  // The context must be non-nil and will be used for request cancellation. If
   118  // the context is nil a panic will occur. In the future the SDK may create
   119  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   120  // for more information on using Contexts.
   121  func (c *SQS) AddPermissionWithContext(ctx aws.Context, input *AddPermissionInput, opts ...request.Option) (*AddPermissionOutput, error) {
   122  	req, out := c.AddPermissionRequest(input)
   123  	req.SetContext(ctx)
   124  	req.ApplyOptions(opts...)
   125  	return out, req.Send()
   126  }
   127  
   128  const opChangeMessageVisibility = "ChangeMessageVisibility"
   129  
   130  // ChangeMessageVisibilityRequest generates a "aws/request.Request" representing the
   131  // client's request for the ChangeMessageVisibility operation. The "output" return
   132  // value will be populated with the request's response once the request completes
   133  // successfully.
   134  //
   135  // Use "Send" method on the returned Request to send the API call to the service.
   136  // the "output" return value is not valid until after Send returns without error.
   137  //
   138  // See ChangeMessageVisibility for more information on using the ChangeMessageVisibility
   139  // API call, and error handling.
   140  //
   141  // This method is useful when you want to inject custom logic or configuration
   142  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   143  //
   144  //
   145  //    // Example sending a request using the ChangeMessageVisibilityRequest method.
   146  //    req, resp := client.ChangeMessageVisibilityRequest(params)
   147  //
   148  //    err := req.Send()
   149  //    if err == nil { // resp is now filled
   150  //        fmt.Println(resp)
   151  //    }
   152  //
   153  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ChangeMessageVisibility
   154  func (c *SQS) ChangeMessageVisibilityRequest(input *ChangeMessageVisibilityInput) (req *request.Request, output *ChangeMessageVisibilityOutput) {
   155  	op := &request.Operation{
   156  		Name:       opChangeMessageVisibility,
   157  		HTTPMethod: "POST",
   158  		HTTPPath:   "/",
   159  	}
   160  
   161  	if input == nil {
   162  		input = &ChangeMessageVisibilityInput{}
   163  	}
   164  
   165  	output = &ChangeMessageVisibilityOutput{}
   166  	req = c.newRequest(op, input, output)
   167  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   168  	return
   169  }
   170  
   171  // ChangeMessageVisibility API operation for Amazon Simple Queue Service.
   172  //
   173  // Changes the visibility timeout of a specified message in a queue to a new
   174  // value. The default visibility timeout for a message is 30 seconds. The minimum
   175  // is 0 seconds. The maximum is 12 hours. For more information, see Visibility
   176  // Timeout (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html)
   177  // in the Amazon SQS Developer Guide.
   178  //
   179  // For example, you have a message with a visibility timeout of 5 minutes. After
   180  // 3 minutes, you call ChangeMessageVisibility with a timeout of 10 minutes.
   181  // You can continue to call ChangeMessageVisibility to extend the visibility
   182  // timeout to the maximum allowed time. If you try to extend the visibility
   183  // timeout beyond the maximum, your request is rejected.
   184  //
   185  // An Amazon SQS message has three basic states:
   186  //
   187  // Sent to a queue by a producer.
   188  //
   189  // Received from the queue by a consumer.
   190  //
   191  // Deleted from the queue.
   192  //
   193  // A message is considered to be stored after it is sent to a queue by a producer,
   194  // but not yet received from the queue by a consumer (that is, between states
   195  // 1 and 2). There is no limit to the number of stored messages. A message is
   196  // considered to be in flight after it is received from a queue by a consumer,
   197  // but not yet deleted from the queue (that is, between states 2 and 3). There
   198  // is a limit to the number of inflight messages.
   199  //
   200  // Limits that apply to inflight messages are unrelated to the unlimited number
   201  // of stored messages.
   202  //
   203  // For most standard queues (depending on queue traffic and message backlog),
   204  // there can be a maximum of approximately 120,000 inflight messages (received
   205  // from a queue by a consumer, but not yet deleted from the queue). If you reach
   206  // this limit, Amazon SQS returns the OverLimit error message. To avoid reaching
   207  // the limit, you should delete messages from the queue after they're processed.
   208  // You can also increase the number of queues you use to process your messages.
   209  // To request a limit increase, file a support request (https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&limitType=service-code-sqs).
   210  //
   211  // For FIFO queues, there can be a maximum of 20,000 inflight messages (received
   212  // from a queue by a consumer, but not yet deleted from the queue). If you reach
   213  // this limit, Amazon SQS returns no error messages.
   214  //
   215  // If you attempt to set the VisibilityTimeout to a value greater than the maximum
   216  // time left, Amazon SQS returns an error. Amazon SQS doesn't automatically
   217  // recalculate and increase the timeout to the maximum remaining time.
   218  //
   219  // Unlike with a queue, when you change the visibility timeout for a specific
   220  // message the timeout value is applied immediately but isn't saved in memory
   221  // for that message. If you don't delete a message after it is received, the
   222  // visibility timeout for the message reverts to the original timeout value
   223  // (not to the value you set using the ChangeMessageVisibility action) the next
   224  // time the message is received.
   225  //
   226  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   227  // with awserr.Error's Code and Message methods to get detailed information about
   228  // the error.
   229  //
   230  // See the AWS API reference guide for Amazon Simple Queue Service's
   231  // API operation ChangeMessageVisibility for usage and error information.
   232  //
   233  // Returned Error Codes:
   234  //   * ErrCodeMessageNotInflight "AWS.SimpleQueueService.MessageNotInflight"
   235  //   The specified message isn't in flight.
   236  //
   237  //   * ErrCodeReceiptHandleIsInvalid "ReceiptHandleIsInvalid"
   238  //   The specified receipt handle isn't valid.
   239  //
   240  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ChangeMessageVisibility
   241  func (c *SQS) ChangeMessageVisibility(input *ChangeMessageVisibilityInput) (*ChangeMessageVisibilityOutput, error) {
   242  	req, out := c.ChangeMessageVisibilityRequest(input)
   243  	return out, req.Send()
   244  }
   245  
   246  // ChangeMessageVisibilityWithContext is the same as ChangeMessageVisibility with the addition of
   247  // the ability to pass a context and additional request options.
   248  //
   249  // See ChangeMessageVisibility for details on how to use this API operation.
   250  //
   251  // The context must be non-nil and will be used for request cancellation. If
   252  // the context is nil a panic will occur. In the future the SDK may create
   253  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   254  // for more information on using Contexts.
   255  func (c *SQS) ChangeMessageVisibilityWithContext(ctx aws.Context, input *ChangeMessageVisibilityInput, opts ...request.Option) (*ChangeMessageVisibilityOutput, error) {
   256  	req, out := c.ChangeMessageVisibilityRequest(input)
   257  	req.SetContext(ctx)
   258  	req.ApplyOptions(opts...)
   259  	return out, req.Send()
   260  }
   261  
   262  const opChangeMessageVisibilityBatch = "ChangeMessageVisibilityBatch"
   263  
   264  // ChangeMessageVisibilityBatchRequest generates a "aws/request.Request" representing the
   265  // client's request for the ChangeMessageVisibilityBatch operation. The "output" return
   266  // value will be populated with the request's response once the request completes
   267  // successfully.
   268  //
   269  // Use "Send" method on the returned Request to send the API call to the service.
   270  // the "output" return value is not valid until after Send returns without error.
   271  //
   272  // See ChangeMessageVisibilityBatch for more information on using the ChangeMessageVisibilityBatch
   273  // API call, and error handling.
   274  //
   275  // This method is useful when you want to inject custom logic or configuration
   276  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   277  //
   278  //
   279  //    // Example sending a request using the ChangeMessageVisibilityBatchRequest method.
   280  //    req, resp := client.ChangeMessageVisibilityBatchRequest(params)
   281  //
   282  //    err := req.Send()
   283  //    if err == nil { // resp is now filled
   284  //        fmt.Println(resp)
   285  //    }
   286  //
   287  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ChangeMessageVisibilityBatch
   288  func (c *SQS) ChangeMessageVisibilityBatchRequest(input *ChangeMessageVisibilityBatchInput) (req *request.Request, output *ChangeMessageVisibilityBatchOutput) {
   289  	op := &request.Operation{
   290  		Name:       opChangeMessageVisibilityBatch,
   291  		HTTPMethod: "POST",
   292  		HTTPPath:   "/",
   293  	}
   294  
   295  	if input == nil {
   296  		input = &ChangeMessageVisibilityBatchInput{}
   297  	}
   298  
   299  	output = &ChangeMessageVisibilityBatchOutput{}
   300  	req = c.newRequest(op, input, output)
   301  	return
   302  }
   303  
   304  // ChangeMessageVisibilityBatch API operation for Amazon Simple Queue Service.
   305  //
   306  // Changes the visibility timeout of multiple messages. This is a batch version
   307  // of ChangeMessageVisibility. The result of the action on each message is reported
   308  // individually in the response. You can send up to 10 ChangeMessageVisibility
   309  // requests with each ChangeMessageVisibilityBatch action.
   310  //
   311  // Because the batch request can result in a combination of successful and unsuccessful
   312  // actions, you should check for batch errors even when the call returns an
   313  // HTTP status code of 200.
   314  //
   315  // Some actions take lists of parameters. These lists are specified using the
   316  // param.n notation. Values of n are integers starting from 1. For example,
   317  // a parameter list with two elements looks like this:
   318  //
   319  // &AttributeName.1=first
   320  //
   321  // &AttributeName.2=second
   322  //
   323  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   324  // with awserr.Error's Code and Message methods to get detailed information about
   325  // the error.
   326  //
   327  // See the AWS API reference guide for Amazon Simple Queue Service's
   328  // API operation ChangeMessageVisibilityBatch for usage and error information.
   329  //
   330  // Returned Error Codes:
   331  //   * ErrCodeTooManyEntriesInBatchRequest "AWS.SimpleQueueService.TooManyEntriesInBatchRequest"
   332  //   The batch request contains more entries than permissible.
   333  //
   334  //   * ErrCodeEmptyBatchRequest "AWS.SimpleQueueService.EmptyBatchRequest"
   335  //   The batch request doesn't contain any entries.
   336  //
   337  //   * ErrCodeBatchEntryIdsNotDistinct "AWS.SimpleQueueService.BatchEntryIdsNotDistinct"
   338  //   Two or more batch entries in the request have the same Id.
   339  //
   340  //   * ErrCodeInvalidBatchEntryId "AWS.SimpleQueueService.InvalidBatchEntryId"
   341  //   The Id of a batch entry in a batch request doesn't abide by the specification.
   342  //
   343  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ChangeMessageVisibilityBatch
   344  func (c *SQS) ChangeMessageVisibilityBatch(input *ChangeMessageVisibilityBatchInput) (*ChangeMessageVisibilityBatchOutput, error) {
   345  	req, out := c.ChangeMessageVisibilityBatchRequest(input)
   346  	return out, req.Send()
   347  }
   348  
   349  // ChangeMessageVisibilityBatchWithContext is the same as ChangeMessageVisibilityBatch with the addition of
   350  // the ability to pass a context and additional request options.
   351  //
   352  // See ChangeMessageVisibilityBatch for details on how to use this API operation.
   353  //
   354  // The context must be non-nil and will be used for request cancellation. If
   355  // the context is nil a panic will occur. In the future the SDK may create
   356  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   357  // for more information on using Contexts.
   358  func (c *SQS) ChangeMessageVisibilityBatchWithContext(ctx aws.Context, input *ChangeMessageVisibilityBatchInput, opts ...request.Option) (*ChangeMessageVisibilityBatchOutput, error) {
   359  	req, out := c.ChangeMessageVisibilityBatchRequest(input)
   360  	req.SetContext(ctx)
   361  	req.ApplyOptions(opts...)
   362  	return out, req.Send()
   363  }
   364  
   365  const opCreateQueue = "CreateQueue"
   366  
   367  // CreateQueueRequest generates a "aws/request.Request" representing the
   368  // client's request for the CreateQueue operation. The "output" return
   369  // value will be populated with the request's response once the request completes
   370  // successfully.
   371  //
   372  // Use "Send" method on the returned Request to send the API call to the service.
   373  // the "output" return value is not valid until after Send returns without error.
   374  //
   375  // See CreateQueue for more information on using the CreateQueue
   376  // API call, and error handling.
   377  //
   378  // This method is useful when you want to inject custom logic or configuration
   379  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   380  //
   381  //
   382  //    // Example sending a request using the CreateQueueRequest method.
   383  //    req, resp := client.CreateQueueRequest(params)
   384  //
   385  //    err := req.Send()
   386  //    if err == nil { // resp is now filled
   387  //        fmt.Println(resp)
   388  //    }
   389  //
   390  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/CreateQueue
   391  func (c *SQS) CreateQueueRequest(input *CreateQueueInput) (req *request.Request, output *CreateQueueOutput) {
   392  	op := &request.Operation{
   393  		Name:       opCreateQueue,
   394  		HTTPMethod: "POST",
   395  		HTTPPath:   "/",
   396  	}
   397  
   398  	if input == nil {
   399  		input = &CreateQueueInput{}
   400  	}
   401  
   402  	output = &CreateQueueOutput{}
   403  	req = c.newRequest(op, input, output)
   404  	return
   405  }
   406  
   407  // CreateQueue API operation for Amazon Simple Queue Service.
   408  //
   409  // Creates a new standard or FIFO queue. You can pass one or more attributes
   410  // in the request. Keep the following in mind:
   411  //
   412  //    * If you don't specify the FifoQueue attribute, Amazon SQS creates a standard
   413  //    queue. You can't change the queue type after you create it and you can't
   414  //    convert an existing standard queue into a FIFO queue. You must either
   415  //    create a new FIFO queue for your application or delete your existing standard
   416  //    queue and recreate it as a FIFO queue. For more information, see Moving
   417  //    From a Standard Queue to a FIFO Queue (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-moving)
   418  //    in the Amazon SQS Developer Guide.
   419  //
   420  //    * If you don't provide a value for an attribute, the queue is created
   421  //    with the default value for the attribute.
   422  //
   423  //    * If you delete a queue, you must wait at least 60 seconds before creating
   424  //    a queue with the same name.
   425  //
   426  // To successfully create a new queue, you must provide a queue name that adheres
   427  // to the limits related to queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/limits-queues.html)
   428  // and is unique within the scope of your queues.
   429  //
   430  // After you create a queue, you must wait at least one second after the queue
   431  // is created to be able to use the queue.
   432  //
   433  // To get the queue URL, use the GetQueueUrl action. GetQueueUrl requires only
   434  // the QueueName parameter. be aware of existing queue names:
   435  //
   436  //    * If you provide the name of an existing queue along with the exact names
   437  //    and values of all the queue's attributes, CreateQueue returns the queue
   438  //    URL for the existing queue.
   439  //
   440  //    * If the queue name, attribute names, or attribute values don't match
   441  //    an existing queue, CreateQueue returns an error.
   442  //
   443  // Some actions take lists of parameters. These lists are specified using the
   444  // param.n notation. Values of n are integers starting from 1. For example,
   445  // a parameter list with two elements looks like this:
   446  //
   447  // &AttributeName.1=first
   448  //
   449  // &AttributeName.2=second
   450  //
   451  // Cross-account permissions don't apply to this action. For more information,
   452  // see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name)
   453  // in the Amazon SQS Developer Guide.
   454  //
   455  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   456  // with awserr.Error's Code and Message methods to get detailed information about
   457  // the error.
   458  //
   459  // See the AWS API reference guide for Amazon Simple Queue Service's
   460  // API operation CreateQueue for usage and error information.
   461  //
   462  // Returned Error Codes:
   463  //   * ErrCodeQueueDeletedRecently "AWS.SimpleQueueService.QueueDeletedRecently"
   464  //   You must wait 60 seconds after deleting a queue before you can create another
   465  //   queue with the same name.
   466  //
   467  //   * ErrCodeQueueNameExists "QueueAlreadyExists"
   468  //   A queue with this name already exists. Amazon SQS returns this error only
   469  //   if the request includes attributes whose values differ from those of the
   470  //   existing queue.
   471  //
   472  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/CreateQueue
   473  func (c *SQS) CreateQueue(input *CreateQueueInput) (*CreateQueueOutput, error) {
   474  	req, out := c.CreateQueueRequest(input)
   475  	return out, req.Send()
   476  }
   477  
   478  // CreateQueueWithContext is the same as CreateQueue with the addition of
   479  // the ability to pass a context and additional request options.
   480  //
   481  // See CreateQueue for details on how to use this API operation.
   482  //
   483  // The context must be non-nil and will be used for request cancellation. If
   484  // the context is nil a panic will occur. In the future the SDK may create
   485  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   486  // for more information on using Contexts.
   487  func (c *SQS) CreateQueueWithContext(ctx aws.Context, input *CreateQueueInput, opts ...request.Option) (*CreateQueueOutput, error) {
   488  	req, out := c.CreateQueueRequest(input)
   489  	req.SetContext(ctx)
   490  	req.ApplyOptions(opts...)
   491  	return out, req.Send()
   492  }
   493  
   494  const opDeleteMessage = "DeleteMessage"
   495  
   496  // DeleteMessageRequest generates a "aws/request.Request" representing the
   497  // client's request for the DeleteMessage operation. The "output" return
   498  // value will be populated with the request's response once the request completes
   499  // successfully.
   500  //
   501  // Use "Send" method on the returned Request to send the API call to the service.
   502  // the "output" return value is not valid until after Send returns without error.
   503  //
   504  // See DeleteMessage for more information on using the DeleteMessage
   505  // API call, and error handling.
   506  //
   507  // This method is useful when you want to inject custom logic or configuration
   508  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   509  //
   510  //
   511  //    // Example sending a request using the DeleteMessageRequest method.
   512  //    req, resp := client.DeleteMessageRequest(params)
   513  //
   514  //    err := req.Send()
   515  //    if err == nil { // resp is now filled
   516  //        fmt.Println(resp)
   517  //    }
   518  //
   519  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/DeleteMessage
   520  func (c *SQS) DeleteMessageRequest(input *DeleteMessageInput) (req *request.Request, output *DeleteMessageOutput) {
   521  	op := &request.Operation{
   522  		Name:       opDeleteMessage,
   523  		HTTPMethod: "POST",
   524  		HTTPPath:   "/",
   525  	}
   526  
   527  	if input == nil {
   528  		input = &DeleteMessageInput{}
   529  	}
   530  
   531  	output = &DeleteMessageOutput{}
   532  	req = c.newRequest(op, input, output)
   533  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   534  	return
   535  }
   536  
   537  // DeleteMessage API operation for Amazon Simple Queue Service.
   538  //
   539  // Deletes the specified message from the specified queue. To select the message
   540  // to delete, use the ReceiptHandle of the message (not the MessageId which
   541  // you receive when you send the message). Amazon SQS can delete a message from
   542  // a queue even if a visibility timeout setting causes the message to be locked
   543  // by another consumer. Amazon SQS automatically deletes messages left in a
   544  // queue longer than the retention period configured for the queue.
   545  //
   546  // The ReceiptHandle is associated with a specific instance of receiving a message.
   547  // If you receive a message more than once, the ReceiptHandle is different each
   548  // time you receive a message. When you use the DeleteMessage action, you must
   549  // provide the most recently received ReceiptHandle for the message (otherwise,
   550  // the request succeeds, but the message might not be deleted).
   551  //
   552  // For standard queues, it is possible to receive a message even after you delete
   553  // it. This might happen on rare occasions if one of the servers which stores
   554  // a copy of the message is unavailable when you send the request to delete
   555  // the message. The copy remains on the server and might be returned to you
   556  // during a subsequent receive request. You should ensure that your application
   557  // is idempotent, so that receiving a message more than once does not cause
   558  // issues.
   559  //
   560  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   561  // with awserr.Error's Code and Message methods to get detailed information about
   562  // the error.
   563  //
   564  // See the AWS API reference guide for Amazon Simple Queue Service's
   565  // API operation DeleteMessage for usage and error information.
   566  //
   567  // Returned Error Codes:
   568  //   * ErrCodeInvalidIdFormat "InvalidIdFormat"
   569  //   The specified receipt handle isn't valid for the current version.
   570  //
   571  //   * ErrCodeReceiptHandleIsInvalid "ReceiptHandleIsInvalid"
   572  //   The specified receipt handle isn't valid.
   573  //
   574  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/DeleteMessage
   575  func (c *SQS) DeleteMessage(input *DeleteMessageInput) (*DeleteMessageOutput, error) {
   576  	req, out := c.DeleteMessageRequest(input)
   577  	return out, req.Send()
   578  }
   579  
   580  // DeleteMessageWithContext is the same as DeleteMessage with the addition of
   581  // the ability to pass a context and additional request options.
   582  //
   583  // See DeleteMessage for details on how to use this API operation.
   584  //
   585  // The context must be non-nil and will be used for request cancellation. If
   586  // the context is nil a panic will occur. In the future the SDK may create
   587  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   588  // for more information on using Contexts.
   589  func (c *SQS) DeleteMessageWithContext(ctx aws.Context, input *DeleteMessageInput, opts ...request.Option) (*DeleteMessageOutput, error) {
   590  	req, out := c.DeleteMessageRequest(input)
   591  	req.SetContext(ctx)
   592  	req.ApplyOptions(opts...)
   593  	return out, req.Send()
   594  }
   595  
   596  const opDeleteMessageBatch = "DeleteMessageBatch"
   597  
   598  // DeleteMessageBatchRequest generates a "aws/request.Request" representing the
   599  // client's request for the DeleteMessageBatch operation. The "output" return
   600  // value will be populated with the request's response once the request completes
   601  // successfully.
   602  //
   603  // Use "Send" method on the returned Request to send the API call to the service.
   604  // the "output" return value is not valid until after Send returns without error.
   605  //
   606  // See DeleteMessageBatch for more information on using the DeleteMessageBatch
   607  // API call, and error handling.
   608  //
   609  // This method is useful when you want to inject custom logic or configuration
   610  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   611  //
   612  //
   613  //    // Example sending a request using the DeleteMessageBatchRequest method.
   614  //    req, resp := client.DeleteMessageBatchRequest(params)
   615  //
   616  //    err := req.Send()
   617  //    if err == nil { // resp is now filled
   618  //        fmt.Println(resp)
   619  //    }
   620  //
   621  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/DeleteMessageBatch
   622  func (c *SQS) DeleteMessageBatchRequest(input *DeleteMessageBatchInput) (req *request.Request, output *DeleteMessageBatchOutput) {
   623  	op := &request.Operation{
   624  		Name:       opDeleteMessageBatch,
   625  		HTTPMethod: "POST",
   626  		HTTPPath:   "/",
   627  	}
   628  
   629  	if input == nil {
   630  		input = &DeleteMessageBatchInput{}
   631  	}
   632  
   633  	output = &DeleteMessageBatchOutput{}
   634  	req = c.newRequest(op, input, output)
   635  	return
   636  }
   637  
   638  // DeleteMessageBatch API operation for Amazon Simple Queue Service.
   639  //
   640  // Deletes up to ten messages from the specified queue. This is a batch version
   641  // of DeleteMessage. The result of the action on each message is reported individually
   642  // in the response.
   643  //
   644  // Because the batch request can result in a combination of successful and unsuccessful
   645  // actions, you should check for batch errors even when the call returns an
   646  // HTTP status code of 200.
   647  //
   648  // Some actions take lists of parameters. These lists are specified using the
   649  // param.n notation. Values of n are integers starting from 1. For example,
   650  // a parameter list with two elements looks like this:
   651  //
   652  // &AttributeName.1=first
   653  //
   654  // &AttributeName.2=second
   655  //
   656  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   657  // with awserr.Error's Code and Message methods to get detailed information about
   658  // the error.
   659  //
   660  // See the AWS API reference guide for Amazon Simple Queue Service's
   661  // API operation DeleteMessageBatch for usage and error information.
   662  //
   663  // Returned Error Codes:
   664  //   * ErrCodeTooManyEntriesInBatchRequest "AWS.SimpleQueueService.TooManyEntriesInBatchRequest"
   665  //   The batch request contains more entries than permissible.
   666  //
   667  //   * ErrCodeEmptyBatchRequest "AWS.SimpleQueueService.EmptyBatchRequest"
   668  //   The batch request doesn't contain any entries.
   669  //
   670  //   * ErrCodeBatchEntryIdsNotDistinct "AWS.SimpleQueueService.BatchEntryIdsNotDistinct"
   671  //   Two or more batch entries in the request have the same Id.
   672  //
   673  //   * ErrCodeInvalidBatchEntryId "AWS.SimpleQueueService.InvalidBatchEntryId"
   674  //   The Id of a batch entry in a batch request doesn't abide by the specification.
   675  //
   676  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/DeleteMessageBatch
   677  func (c *SQS) DeleteMessageBatch(input *DeleteMessageBatchInput) (*DeleteMessageBatchOutput, error) {
   678  	req, out := c.DeleteMessageBatchRequest(input)
   679  	return out, req.Send()
   680  }
   681  
   682  // DeleteMessageBatchWithContext is the same as DeleteMessageBatch with the addition of
   683  // the ability to pass a context and additional request options.
   684  //
   685  // See DeleteMessageBatch for details on how to use this API operation.
   686  //
   687  // The context must be non-nil and will be used for request cancellation. If
   688  // the context is nil a panic will occur. In the future the SDK may create
   689  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   690  // for more information on using Contexts.
   691  func (c *SQS) DeleteMessageBatchWithContext(ctx aws.Context, input *DeleteMessageBatchInput, opts ...request.Option) (*DeleteMessageBatchOutput, error) {
   692  	req, out := c.DeleteMessageBatchRequest(input)
   693  	req.SetContext(ctx)
   694  	req.ApplyOptions(opts...)
   695  	return out, req.Send()
   696  }
   697  
   698  const opDeleteQueue = "DeleteQueue"
   699  
   700  // DeleteQueueRequest generates a "aws/request.Request" representing the
   701  // client's request for the DeleteQueue operation. The "output" return
   702  // value will be populated with the request's response once the request completes
   703  // successfully.
   704  //
   705  // Use "Send" method on the returned Request to send the API call to the service.
   706  // the "output" return value is not valid until after Send returns without error.
   707  //
   708  // See DeleteQueue for more information on using the DeleteQueue
   709  // API call, and error handling.
   710  //
   711  // This method is useful when you want to inject custom logic or configuration
   712  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   713  //
   714  //
   715  //    // Example sending a request using the DeleteQueueRequest method.
   716  //    req, resp := client.DeleteQueueRequest(params)
   717  //
   718  //    err := req.Send()
   719  //    if err == nil { // resp is now filled
   720  //        fmt.Println(resp)
   721  //    }
   722  //
   723  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/DeleteQueue
   724  func (c *SQS) DeleteQueueRequest(input *DeleteQueueInput) (req *request.Request, output *DeleteQueueOutput) {
   725  	op := &request.Operation{
   726  		Name:       opDeleteQueue,
   727  		HTTPMethod: "POST",
   728  		HTTPPath:   "/",
   729  	}
   730  
   731  	if input == nil {
   732  		input = &DeleteQueueInput{}
   733  	}
   734  
   735  	output = &DeleteQueueOutput{}
   736  	req = c.newRequest(op, input, output)
   737  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   738  	return
   739  }
   740  
   741  // DeleteQueue API operation for Amazon Simple Queue Service.
   742  //
   743  // Deletes the queue specified by the QueueUrl, regardless of the queue's contents.
   744  //
   745  // Be careful with the DeleteQueue action: When you delete a queue, any messages
   746  // in the queue are no longer available.
   747  //
   748  // When you delete a queue, the deletion process takes up to 60 seconds. Requests
   749  // you send involving that queue during the 60 seconds might succeed. For example,
   750  // a SendMessage request might succeed, but after 60 seconds the queue and the
   751  // message you sent no longer exist.
   752  //
   753  // When you delete a queue, you must wait at least 60 seconds before creating
   754  // a queue with the same name.
   755  //
   756  // Cross-account permissions don't apply to this action. For more information,
   757  // see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name)
   758  // in the Amazon SQS Developer Guide.
   759  //
   760  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   761  // with awserr.Error's Code and Message methods to get detailed information about
   762  // the error.
   763  //
   764  // See the AWS API reference guide for Amazon Simple Queue Service's
   765  // API operation DeleteQueue for usage and error information.
   766  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/DeleteQueue
   767  func (c *SQS) DeleteQueue(input *DeleteQueueInput) (*DeleteQueueOutput, error) {
   768  	req, out := c.DeleteQueueRequest(input)
   769  	return out, req.Send()
   770  }
   771  
   772  // DeleteQueueWithContext is the same as DeleteQueue with the addition of
   773  // the ability to pass a context and additional request options.
   774  //
   775  // See DeleteQueue for details on how to use this API operation.
   776  //
   777  // The context must be non-nil and will be used for request cancellation. If
   778  // the context is nil a panic will occur. In the future the SDK may create
   779  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   780  // for more information on using Contexts.
   781  func (c *SQS) DeleteQueueWithContext(ctx aws.Context, input *DeleteQueueInput, opts ...request.Option) (*DeleteQueueOutput, error) {
   782  	req, out := c.DeleteQueueRequest(input)
   783  	req.SetContext(ctx)
   784  	req.ApplyOptions(opts...)
   785  	return out, req.Send()
   786  }
   787  
   788  const opGetQueueAttributes = "GetQueueAttributes"
   789  
   790  // GetQueueAttributesRequest generates a "aws/request.Request" representing the
   791  // client's request for the GetQueueAttributes operation. The "output" return
   792  // value will be populated with the request's response once the request completes
   793  // successfully.
   794  //
   795  // Use "Send" method on the returned Request to send the API call to the service.
   796  // the "output" return value is not valid until after Send returns without error.
   797  //
   798  // See GetQueueAttributes for more information on using the GetQueueAttributes
   799  // API call, and error handling.
   800  //
   801  // This method is useful when you want to inject custom logic or configuration
   802  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   803  //
   804  //
   805  //    // Example sending a request using the GetQueueAttributesRequest method.
   806  //    req, resp := client.GetQueueAttributesRequest(params)
   807  //
   808  //    err := req.Send()
   809  //    if err == nil { // resp is now filled
   810  //        fmt.Println(resp)
   811  //    }
   812  //
   813  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/GetQueueAttributes
   814  func (c *SQS) GetQueueAttributesRequest(input *GetQueueAttributesInput) (req *request.Request, output *GetQueueAttributesOutput) {
   815  	op := &request.Operation{
   816  		Name:       opGetQueueAttributes,
   817  		HTTPMethod: "POST",
   818  		HTTPPath:   "/",
   819  	}
   820  
   821  	if input == nil {
   822  		input = &GetQueueAttributesInput{}
   823  	}
   824  
   825  	output = &GetQueueAttributesOutput{}
   826  	req = c.newRequest(op, input, output)
   827  	return
   828  }
   829  
   830  // GetQueueAttributes API operation for Amazon Simple Queue Service.
   831  //
   832  // Gets attributes for the specified queue.
   833  //
   834  // To determine whether a queue is FIFO (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html),
   835  // you can check whether QueueName ends with the .fifo suffix.
   836  //
   837  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   838  // with awserr.Error's Code and Message methods to get detailed information about
   839  // the error.
   840  //
   841  // See the AWS API reference guide for Amazon Simple Queue Service's
   842  // API operation GetQueueAttributes for usage and error information.
   843  //
   844  // Returned Error Codes:
   845  //   * ErrCodeInvalidAttributeName "InvalidAttributeName"
   846  //   The specified attribute doesn't exist.
   847  //
   848  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/GetQueueAttributes
   849  func (c *SQS) GetQueueAttributes(input *GetQueueAttributesInput) (*GetQueueAttributesOutput, error) {
   850  	req, out := c.GetQueueAttributesRequest(input)
   851  	return out, req.Send()
   852  }
   853  
   854  // GetQueueAttributesWithContext is the same as GetQueueAttributes with the addition of
   855  // the ability to pass a context and additional request options.
   856  //
   857  // See GetQueueAttributes for details on how to use this API operation.
   858  //
   859  // The context must be non-nil and will be used for request cancellation. If
   860  // the context is nil a panic will occur. In the future the SDK may create
   861  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   862  // for more information on using Contexts.
   863  func (c *SQS) GetQueueAttributesWithContext(ctx aws.Context, input *GetQueueAttributesInput, opts ...request.Option) (*GetQueueAttributesOutput, error) {
   864  	req, out := c.GetQueueAttributesRequest(input)
   865  	req.SetContext(ctx)
   866  	req.ApplyOptions(opts...)
   867  	return out, req.Send()
   868  }
   869  
   870  const opGetQueueUrl = "GetQueueUrl"
   871  
   872  // GetQueueUrlRequest generates a "aws/request.Request" representing the
   873  // client's request for the GetQueueUrl operation. The "output" return
   874  // value will be populated with the request's response once the request completes
   875  // successfully.
   876  //
   877  // Use "Send" method on the returned Request to send the API call to the service.
   878  // the "output" return value is not valid until after Send returns without error.
   879  //
   880  // See GetQueueUrl for more information on using the GetQueueUrl
   881  // API call, and error handling.
   882  //
   883  // This method is useful when you want to inject custom logic or configuration
   884  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   885  //
   886  //
   887  //    // Example sending a request using the GetQueueUrlRequest method.
   888  //    req, resp := client.GetQueueUrlRequest(params)
   889  //
   890  //    err := req.Send()
   891  //    if err == nil { // resp is now filled
   892  //        fmt.Println(resp)
   893  //    }
   894  //
   895  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/GetQueueUrl
   896  func (c *SQS) GetQueueUrlRequest(input *GetQueueUrlInput) (req *request.Request, output *GetQueueUrlOutput) {
   897  	op := &request.Operation{
   898  		Name:       opGetQueueUrl,
   899  		HTTPMethod: "POST",
   900  		HTTPPath:   "/",
   901  	}
   902  
   903  	if input == nil {
   904  		input = &GetQueueUrlInput{}
   905  	}
   906  
   907  	output = &GetQueueUrlOutput{}
   908  	req = c.newRequest(op, input, output)
   909  	return
   910  }
   911  
   912  // GetQueueUrl API operation for Amazon Simple Queue Service.
   913  //
   914  // Returns the URL of an existing Amazon SQS queue.
   915  //
   916  // To access a queue that belongs to another AWS account, use the QueueOwnerAWSAccountId
   917  // parameter to specify the account ID of the queue's owner. The queue's owner
   918  // must grant you permission to access the queue. For more information about
   919  // shared queue access, see AddPermission or see Allow Developers to Write Messages
   920  // to a Shared Queue (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-writing-an-sqs-policy.html#write-messages-to-shared-queue)
   921  // in the Amazon SQS Developer Guide.
   922  //
   923  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   924  // with awserr.Error's Code and Message methods to get detailed information about
   925  // the error.
   926  //
   927  // See the AWS API reference guide for Amazon Simple Queue Service's
   928  // API operation GetQueueUrl for usage and error information.
   929  //
   930  // Returned Error Codes:
   931  //   * ErrCodeQueueDoesNotExist "AWS.SimpleQueueService.NonExistentQueue"
   932  //   The specified queue doesn't exist.
   933  //
   934  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/GetQueueUrl
   935  func (c *SQS) GetQueueUrl(input *GetQueueUrlInput) (*GetQueueUrlOutput, error) {
   936  	req, out := c.GetQueueUrlRequest(input)
   937  	return out, req.Send()
   938  }
   939  
   940  // GetQueueUrlWithContext is the same as GetQueueUrl with the addition of
   941  // the ability to pass a context and additional request options.
   942  //
   943  // See GetQueueUrl for details on how to use this API operation.
   944  //
   945  // The context must be non-nil and will be used for request cancellation. If
   946  // the context is nil a panic will occur. In the future the SDK may create
   947  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   948  // for more information on using Contexts.
   949  func (c *SQS) GetQueueUrlWithContext(ctx aws.Context, input *GetQueueUrlInput, opts ...request.Option) (*GetQueueUrlOutput, error) {
   950  	req, out := c.GetQueueUrlRequest(input)
   951  	req.SetContext(ctx)
   952  	req.ApplyOptions(opts...)
   953  	return out, req.Send()
   954  }
   955  
   956  const opListDeadLetterSourceQueues = "ListDeadLetterSourceQueues"
   957  
   958  // ListDeadLetterSourceQueuesRequest generates a "aws/request.Request" representing the
   959  // client's request for the ListDeadLetterSourceQueues operation. The "output" return
   960  // value will be populated with the request's response once the request completes
   961  // successfully.
   962  //
   963  // Use "Send" method on the returned Request to send the API call to the service.
   964  // the "output" return value is not valid until after Send returns without error.
   965  //
   966  // See ListDeadLetterSourceQueues for more information on using the ListDeadLetterSourceQueues
   967  // API call, and error handling.
   968  //
   969  // This method is useful when you want to inject custom logic or configuration
   970  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   971  //
   972  //
   973  //    // Example sending a request using the ListDeadLetterSourceQueuesRequest method.
   974  //    req, resp := client.ListDeadLetterSourceQueuesRequest(params)
   975  //
   976  //    err := req.Send()
   977  //    if err == nil { // resp is now filled
   978  //        fmt.Println(resp)
   979  //    }
   980  //
   981  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ListDeadLetterSourceQueues
   982  func (c *SQS) ListDeadLetterSourceQueuesRequest(input *ListDeadLetterSourceQueuesInput) (req *request.Request, output *ListDeadLetterSourceQueuesOutput) {
   983  	op := &request.Operation{
   984  		Name:       opListDeadLetterSourceQueues,
   985  		HTTPMethod: "POST",
   986  		HTTPPath:   "/",
   987  		Paginator: &request.Paginator{
   988  			InputTokens:     []string{"NextToken"},
   989  			OutputTokens:    []string{"NextToken"},
   990  			LimitToken:      "MaxResults",
   991  			TruncationToken: "",
   992  		},
   993  	}
   994  
   995  	if input == nil {
   996  		input = &ListDeadLetterSourceQueuesInput{}
   997  	}
   998  
   999  	output = &ListDeadLetterSourceQueuesOutput{}
  1000  	req = c.newRequest(op, input, output)
  1001  	return
  1002  }
  1003  
  1004  // ListDeadLetterSourceQueues API operation for Amazon Simple Queue Service.
  1005  //
  1006  // Returns a list of your queues that have the RedrivePolicy queue attribute
  1007  // configured with a dead-letter queue.
  1008  //
  1009  // The ListDeadLetterSourceQueues methods supports pagination. Set parameter
  1010  // MaxResults in the request to specify the maximum number of results to be
  1011  // returned in the response. If you do not set MaxResults, the response includes
  1012  // a maximum of 1,000 results. If you set MaxResults and there are additional
  1013  // results to display, the response includes a value for NextToken. Use NextToken
  1014  // as a parameter in your next request to ListDeadLetterSourceQueues to receive
  1015  // the next page of results.
  1016  //
  1017  // For more information about using dead-letter queues, see Using Amazon SQS
  1018  // Dead-Letter Queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html)
  1019  // in the Amazon SQS Developer Guide.
  1020  //
  1021  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1022  // with awserr.Error's Code and Message methods to get detailed information about
  1023  // the error.
  1024  //
  1025  // See the AWS API reference guide for Amazon Simple Queue Service's
  1026  // API operation ListDeadLetterSourceQueues for usage and error information.
  1027  //
  1028  // Returned Error Codes:
  1029  //   * ErrCodeQueueDoesNotExist "AWS.SimpleQueueService.NonExistentQueue"
  1030  //   The specified queue doesn't exist.
  1031  //
  1032  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ListDeadLetterSourceQueues
  1033  func (c *SQS) ListDeadLetterSourceQueues(input *ListDeadLetterSourceQueuesInput) (*ListDeadLetterSourceQueuesOutput, error) {
  1034  	req, out := c.ListDeadLetterSourceQueuesRequest(input)
  1035  	return out, req.Send()
  1036  }
  1037  
  1038  // ListDeadLetterSourceQueuesWithContext is the same as ListDeadLetterSourceQueues with the addition of
  1039  // the ability to pass a context and additional request options.
  1040  //
  1041  // See ListDeadLetterSourceQueues for details on how to use this API operation.
  1042  //
  1043  // The context must be non-nil and will be used for request cancellation. If
  1044  // the context is nil a panic will occur. In the future the SDK may create
  1045  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1046  // for more information on using Contexts.
  1047  func (c *SQS) ListDeadLetterSourceQueuesWithContext(ctx aws.Context, input *ListDeadLetterSourceQueuesInput, opts ...request.Option) (*ListDeadLetterSourceQueuesOutput, error) {
  1048  	req, out := c.ListDeadLetterSourceQueuesRequest(input)
  1049  	req.SetContext(ctx)
  1050  	req.ApplyOptions(opts...)
  1051  	return out, req.Send()
  1052  }
  1053  
  1054  // ListDeadLetterSourceQueuesPages iterates over the pages of a ListDeadLetterSourceQueues operation,
  1055  // calling the "fn" function with the response data for each page. To stop
  1056  // iterating, return false from the fn function.
  1057  //
  1058  // See ListDeadLetterSourceQueues method for more information on how to use this operation.
  1059  //
  1060  // Note: This operation can generate multiple requests to a service.
  1061  //
  1062  //    // Example iterating over at most 3 pages of a ListDeadLetterSourceQueues operation.
  1063  //    pageNum := 0
  1064  //    err := client.ListDeadLetterSourceQueuesPages(params,
  1065  //        func(page *sqs.ListDeadLetterSourceQueuesOutput, lastPage bool) bool {
  1066  //            pageNum++
  1067  //            fmt.Println(page)
  1068  //            return pageNum <= 3
  1069  //        })
  1070  //
  1071  func (c *SQS) ListDeadLetterSourceQueuesPages(input *ListDeadLetterSourceQueuesInput, fn func(*ListDeadLetterSourceQueuesOutput, bool) bool) error {
  1072  	return c.ListDeadLetterSourceQueuesPagesWithContext(aws.BackgroundContext(), input, fn)
  1073  }
  1074  
  1075  // ListDeadLetterSourceQueuesPagesWithContext same as ListDeadLetterSourceQueuesPages except
  1076  // it takes a Context and allows setting request options on the pages.
  1077  //
  1078  // The context must be non-nil and will be used for request cancellation. If
  1079  // the context is nil a panic will occur. In the future the SDK may create
  1080  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1081  // for more information on using Contexts.
  1082  func (c *SQS) ListDeadLetterSourceQueuesPagesWithContext(ctx aws.Context, input *ListDeadLetterSourceQueuesInput, fn func(*ListDeadLetterSourceQueuesOutput, bool) bool, opts ...request.Option) error {
  1083  	p := request.Pagination{
  1084  		NewRequest: func() (*request.Request, error) {
  1085  			var inCpy *ListDeadLetterSourceQueuesInput
  1086  			if input != nil {
  1087  				tmp := *input
  1088  				inCpy = &tmp
  1089  			}
  1090  			req, _ := c.ListDeadLetterSourceQueuesRequest(inCpy)
  1091  			req.SetContext(ctx)
  1092  			req.ApplyOptions(opts...)
  1093  			return req, nil
  1094  		},
  1095  	}
  1096  
  1097  	for p.Next() {
  1098  		if !fn(p.Page().(*ListDeadLetterSourceQueuesOutput), !p.HasNextPage()) {
  1099  			break
  1100  		}
  1101  	}
  1102  
  1103  	return p.Err()
  1104  }
  1105  
  1106  const opListQueueTags = "ListQueueTags"
  1107  
  1108  // ListQueueTagsRequest generates a "aws/request.Request" representing the
  1109  // client's request for the ListQueueTags operation. The "output" return
  1110  // value will be populated with the request's response once the request completes
  1111  // successfully.
  1112  //
  1113  // Use "Send" method on the returned Request to send the API call to the service.
  1114  // the "output" return value is not valid until after Send returns without error.
  1115  //
  1116  // See ListQueueTags for more information on using the ListQueueTags
  1117  // API call, and error handling.
  1118  //
  1119  // This method is useful when you want to inject custom logic or configuration
  1120  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1121  //
  1122  //
  1123  //    // Example sending a request using the ListQueueTagsRequest method.
  1124  //    req, resp := client.ListQueueTagsRequest(params)
  1125  //
  1126  //    err := req.Send()
  1127  //    if err == nil { // resp is now filled
  1128  //        fmt.Println(resp)
  1129  //    }
  1130  //
  1131  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ListQueueTags
  1132  func (c *SQS) ListQueueTagsRequest(input *ListQueueTagsInput) (req *request.Request, output *ListQueueTagsOutput) {
  1133  	op := &request.Operation{
  1134  		Name:       opListQueueTags,
  1135  		HTTPMethod: "POST",
  1136  		HTTPPath:   "/",
  1137  	}
  1138  
  1139  	if input == nil {
  1140  		input = &ListQueueTagsInput{}
  1141  	}
  1142  
  1143  	output = &ListQueueTagsOutput{}
  1144  	req = c.newRequest(op, input, output)
  1145  	return
  1146  }
  1147  
  1148  // ListQueueTags API operation for Amazon Simple Queue Service.
  1149  //
  1150  // List all cost allocation tags added to the specified Amazon SQS queue. For
  1151  // an overview, see Tagging Your Amazon SQS Queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-tags.html)
  1152  // in the Amazon SQS Developer Guide.
  1153  //
  1154  // Cross-account permissions don't apply to this action. For more information,
  1155  // see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name)
  1156  // in the Amazon SQS Developer Guide.
  1157  //
  1158  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1159  // with awserr.Error's Code and Message methods to get detailed information about
  1160  // the error.
  1161  //
  1162  // See the AWS API reference guide for Amazon Simple Queue Service's
  1163  // API operation ListQueueTags for usage and error information.
  1164  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ListQueueTags
  1165  func (c *SQS) ListQueueTags(input *ListQueueTagsInput) (*ListQueueTagsOutput, error) {
  1166  	req, out := c.ListQueueTagsRequest(input)
  1167  	return out, req.Send()
  1168  }
  1169  
  1170  // ListQueueTagsWithContext is the same as ListQueueTags with the addition of
  1171  // the ability to pass a context and additional request options.
  1172  //
  1173  // See ListQueueTags for details on how to use this API operation.
  1174  //
  1175  // The context must be non-nil and will be used for request cancellation. If
  1176  // the context is nil a panic will occur. In the future the SDK may create
  1177  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1178  // for more information on using Contexts.
  1179  func (c *SQS) ListQueueTagsWithContext(ctx aws.Context, input *ListQueueTagsInput, opts ...request.Option) (*ListQueueTagsOutput, error) {
  1180  	req, out := c.ListQueueTagsRequest(input)
  1181  	req.SetContext(ctx)
  1182  	req.ApplyOptions(opts...)
  1183  	return out, req.Send()
  1184  }
  1185  
  1186  const opListQueues = "ListQueues"
  1187  
  1188  // ListQueuesRequest generates a "aws/request.Request" representing the
  1189  // client's request for the ListQueues operation. The "output" return
  1190  // value will be populated with the request's response once the request completes
  1191  // successfully.
  1192  //
  1193  // Use "Send" method on the returned Request to send the API call to the service.
  1194  // the "output" return value is not valid until after Send returns without error.
  1195  //
  1196  // See ListQueues for more information on using the ListQueues
  1197  // API call, and error handling.
  1198  //
  1199  // This method is useful when you want to inject custom logic or configuration
  1200  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1201  //
  1202  //
  1203  //    // Example sending a request using the ListQueuesRequest method.
  1204  //    req, resp := client.ListQueuesRequest(params)
  1205  //
  1206  //    err := req.Send()
  1207  //    if err == nil { // resp is now filled
  1208  //        fmt.Println(resp)
  1209  //    }
  1210  //
  1211  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ListQueues
  1212  func (c *SQS) ListQueuesRequest(input *ListQueuesInput) (req *request.Request, output *ListQueuesOutput) {
  1213  	op := &request.Operation{
  1214  		Name:       opListQueues,
  1215  		HTTPMethod: "POST",
  1216  		HTTPPath:   "/",
  1217  		Paginator: &request.Paginator{
  1218  			InputTokens:     []string{"NextToken"},
  1219  			OutputTokens:    []string{"NextToken"},
  1220  			LimitToken:      "MaxResults",
  1221  			TruncationToken: "",
  1222  		},
  1223  	}
  1224  
  1225  	if input == nil {
  1226  		input = &ListQueuesInput{}
  1227  	}
  1228  
  1229  	output = &ListQueuesOutput{}
  1230  	req = c.newRequest(op, input, output)
  1231  	return
  1232  }
  1233  
  1234  // ListQueues API operation for Amazon Simple Queue Service.
  1235  //
  1236  // Returns a list of your queues in the current region. The response includes
  1237  // a maximum of 1,000 results. If you specify a value for the optional QueueNamePrefix
  1238  // parameter, only queues with a name that begins with the specified value are
  1239  // returned.
  1240  //
  1241  // The listQueues methods supports pagination. Set parameter MaxResults in the
  1242  // request to specify the maximum number of results to be returned in the response.
  1243  // If you do not set MaxResults, the response includes a maximum of 1,000 results.
  1244  // If you set MaxResults and there are additional results to display, the response
  1245  // includes a value for NextToken. Use NextToken as a parameter in your next
  1246  // request to listQueues to receive the next page of results.
  1247  //
  1248  // Cross-account permissions don't apply to this action. For more information,
  1249  // see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name)
  1250  // in the Amazon SQS Developer Guide.
  1251  //
  1252  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1253  // with awserr.Error's Code and Message methods to get detailed information about
  1254  // the error.
  1255  //
  1256  // See the AWS API reference guide for Amazon Simple Queue Service's
  1257  // API operation ListQueues for usage and error information.
  1258  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ListQueues
  1259  func (c *SQS) ListQueues(input *ListQueuesInput) (*ListQueuesOutput, error) {
  1260  	req, out := c.ListQueuesRequest(input)
  1261  	return out, req.Send()
  1262  }
  1263  
  1264  // ListQueuesWithContext is the same as ListQueues with the addition of
  1265  // the ability to pass a context and additional request options.
  1266  //
  1267  // See ListQueues for details on how to use this API operation.
  1268  //
  1269  // The context must be non-nil and will be used for request cancellation. If
  1270  // the context is nil a panic will occur. In the future the SDK may create
  1271  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1272  // for more information on using Contexts.
  1273  func (c *SQS) ListQueuesWithContext(ctx aws.Context, input *ListQueuesInput, opts ...request.Option) (*ListQueuesOutput, error) {
  1274  	req, out := c.ListQueuesRequest(input)
  1275  	req.SetContext(ctx)
  1276  	req.ApplyOptions(opts...)
  1277  	return out, req.Send()
  1278  }
  1279  
  1280  // ListQueuesPages iterates over the pages of a ListQueues operation,
  1281  // calling the "fn" function with the response data for each page. To stop
  1282  // iterating, return false from the fn function.
  1283  //
  1284  // See ListQueues method for more information on how to use this operation.
  1285  //
  1286  // Note: This operation can generate multiple requests to a service.
  1287  //
  1288  //    // Example iterating over at most 3 pages of a ListQueues operation.
  1289  //    pageNum := 0
  1290  //    err := client.ListQueuesPages(params,
  1291  //        func(page *sqs.ListQueuesOutput, lastPage bool) bool {
  1292  //            pageNum++
  1293  //            fmt.Println(page)
  1294  //            return pageNum <= 3
  1295  //        })
  1296  //
  1297  func (c *SQS) ListQueuesPages(input *ListQueuesInput, fn func(*ListQueuesOutput, bool) bool) error {
  1298  	return c.ListQueuesPagesWithContext(aws.BackgroundContext(), input, fn)
  1299  }
  1300  
  1301  // ListQueuesPagesWithContext same as ListQueuesPages except
  1302  // it takes a Context and allows setting request options on the pages.
  1303  //
  1304  // The context must be non-nil and will be used for request cancellation. If
  1305  // the context is nil a panic will occur. In the future the SDK may create
  1306  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1307  // for more information on using Contexts.
  1308  func (c *SQS) ListQueuesPagesWithContext(ctx aws.Context, input *ListQueuesInput, fn func(*ListQueuesOutput, bool) bool, opts ...request.Option) error {
  1309  	p := request.Pagination{
  1310  		NewRequest: func() (*request.Request, error) {
  1311  			var inCpy *ListQueuesInput
  1312  			if input != nil {
  1313  				tmp := *input
  1314  				inCpy = &tmp
  1315  			}
  1316  			req, _ := c.ListQueuesRequest(inCpy)
  1317  			req.SetContext(ctx)
  1318  			req.ApplyOptions(opts...)
  1319  			return req, nil
  1320  		},
  1321  	}
  1322  
  1323  	for p.Next() {
  1324  		if !fn(p.Page().(*ListQueuesOutput), !p.HasNextPage()) {
  1325  			break
  1326  		}
  1327  	}
  1328  
  1329  	return p.Err()
  1330  }
  1331  
  1332  const opPurgeQueue = "PurgeQueue"
  1333  
  1334  // PurgeQueueRequest generates a "aws/request.Request" representing the
  1335  // client's request for the PurgeQueue operation. The "output" return
  1336  // value will be populated with the request's response once the request completes
  1337  // successfully.
  1338  //
  1339  // Use "Send" method on the returned Request to send the API call to the service.
  1340  // the "output" return value is not valid until after Send returns without error.
  1341  //
  1342  // See PurgeQueue for more information on using the PurgeQueue
  1343  // API call, and error handling.
  1344  //
  1345  // This method is useful when you want to inject custom logic or configuration
  1346  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1347  //
  1348  //
  1349  //    // Example sending a request using the PurgeQueueRequest method.
  1350  //    req, resp := client.PurgeQueueRequest(params)
  1351  //
  1352  //    err := req.Send()
  1353  //    if err == nil { // resp is now filled
  1354  //        fmt.Println(resp)
  1355  //    }
  1356  //
  1357  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/PurgeQueue
  1358  func (c *SQS) PurgeQueueRequest(input *PurgeQueueInput) (req *request.Request, output *PurgeQueueOutput) {
  1359  	op := &request.Operation{
  1360  		Name:       opPurgeQueue,
  1361  		HTTPMethod: "POST",
  1362  		HTTPPath:   "/",
  1363  	}
  1364  
  1365  	if input == nil {
  1366  		input = &PurgeQueueInput{}
  1367  	}
  1368  
  1369  	output = &PurgeQueueOutput{}
  1370  	req = c.newRequest(op, input, output)
  1371  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1372  	return
  1373  }
  1374  
  1375  // PurgeQueue API operation for Amazon Simple Queue Service.
  1376  //
  1377  // Deletes the messages in a queue specified by the QueueURL parameter.
  1378  //
  1379  // When you use the PurgeQueue action, you can't retrieve any messages deleted
  1380  // from a queue.
  1381  //
  1382  // The message deletion process takes up to 60 seconds. We recommend waiting
  1383  // for 60 seconds regardless of your queue's size.
  1384  //
  1385  // Messages sent to the queue before you call PurgeQueue might be received but
  1386  // are deleted within the next minute.
  1387  //
  1388  // Messages sent to the queue after you call PurgeQueue might be deleted while
  1389  // the queue is being purged.
  1390  //
  1391  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1392  // with awserr.Error's Code and Message methods to get detailed information about
  1393  // the error.
  1394  //
  1395  // See the AWS API reference guide for Amazon Simple Queue Service's
  1396  // API operation PurgeQueue for usage and error information.
  1397  //
  1398  // Returned Error Codes:
  1399  //   * ErrCodeQueueDoesNotExist "AWS.SimpleQueueService.NonExistentQueue"
  1400  //   The specified queue doesn't exist.
  1401  //
  1402  //   * ErrCodePurgeQueueInProgress "AWS.SimpleQueueService.PurgeQueueInProgress"
  1403  //   Indicates that the specified queue previously received a PurgeQueue request
  1404  //   within the last 60 seconds (the time it can take to delete the messages in
  1405  //   the queue).
  1406  //
  1407  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/PurgeQueue
  1408  func (c *SQS) PurgeQueue(input *PurgeQueueInput) (*PurgeQueueOutput, error) {
  1409  	req, out := c.PurgeQueueRequest(input)
  1410  	return out, req.Send()
  1411  }
  1412  
  1413  // PurgeQueueWithContext is the same as PurgeQueue with the addition of
  1414  // the ability to pass a context and additional request options.
  1415  //
  1416  // See PurgeQueue for details on how to use this API operation.
  1417  //
  1418  // The context must be non-nil and will be used for request cancellation. If
  1419  // the context is nil a panic will occur. In the future the SDK may create
  1420  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1421  // for more information on using Contexts.
  1422  func (c *SQS) PurgeQueueWithContext(ctx aws.Context, input *PurgeQueueInput, opts ...request.Option) (*PurgeQueueOutput, error) {
  1423  	req, out := c.PurgeQueueRequest(input)
  1424  	req.SetContext(ctx)
  1425  	req.ApplyOptions(opts...)
  1426  	return out, req.Send()
  1427  }
  1428  
  1429  const opReceiveMessage = "ReceiveMessage"
  1430  
  1431  // ReceiveMessageRequest generates a "aws/request.Request" representing the
  1432  // client's request for the ReceiveMessage operation. The "output" return
  1433  // value will be populated with the request's response once the request completes
  1434  // successfully.
  1435  //
  1436  // Use "Send" method on the returned Request to send the API call to the service.
  1437  // the "output" return value is not valid until after Send returns without error.
  1438  //
  1439  // See ReceiveMessage for more information on using the ReceiveMessage
  1440  // API call, and error handling.
  1441  //
  1442  // This method is useful when you want to inject custom logic or configuration
  1443  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1444  //
  1445  //
  1446  //    // Example sending a request using the ReceiveMessageRequest method.
  1447  //    req, resp := client.ReceiveMessageRequest(params)
  1448  //
  1449  //    err := req.Send()
  1450  //    if err == nil { // resp is now filled
  1451  //        fmt.Println(resp)
  1452  //    }
  1453  //
  1454  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ReceiveMessage
  1455  func (c *SQS) ReceiveMessageRequest(input *ReceiveMessageInput) (req *request.Request, output *ReceiveMessageOutput) {
  1456  	op := &request.Operation{
  1457  		Name:       opReceiveMessage,
  1458  		HTTPMethod: "POST",
  1459  		HTTPPath:   "/",
  1460  	}
  1461  
  1462  	if input == nil {
  1463  		input = &ReceiveMessageInput{}
  1464  	}
  1465  
  1466  	output = &ReceiveMessageOutput{}
  1467  	req = c.newRequest(op, input, output)
  1468  	return
  1469  }
  1470  
  1471  // ReceiveMessage API operation for Amazon Simple Queue Service.
  1472  //
  1473  // Retrieves one or more messages (up to 10), from the specified queue. Using
  1474  // the WaitTimeSeconds parameter enables long-poll support. For more information,
  1475  // see Amazon SQS Long Polling (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-long-polling.html)
  1476  // in the Amazon SQS Developer Guide.
  1477  //
  1478  // Short poll is the default behavior where a weighted random set of machines
  1479  // is sampled on a ReceiveMessage call. Thus, only the messages on the sampled
  1480  // machines are returned. If the number of messages in the queue is small (fewer
  1481  // than 1,000), you most likely get fewer messages than you requested per ReceiveMessage
  1482  // call. If the number of messages in the queue is extremely small, you might
  1483  // not receive any messages in a particular ReceiveMessage response. If this
  1484  // happens, repeat the request.
  1485  //
  1486  // For each message returned, the response includes the following:
  1487  //
  1488  //    * The message body.
  1489  //
  1490  //    * An MD5 digest of the message body. For information about MD5, see RFC1321
  1491  //    (https://www.ietf.org/rfc/rfc1321.txt).
  1492  //
  1493  //    * The MessageId you received when you sent the message to the queue.
  1494  //
  1495  //    * The receipt handle.
  1496  //
  1497  //    * The message attributes.
  1498  //
  1499  //    * An MD5 digest of the message attributes.
  1500  //
  1501  // The receipt handle is the identifier you must provide when deleting the message.
  1502  // For more information, see Queue and Message Identifiers (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-message-identifiers.html)
  1503  // in the Amazon SQS Developer Guide.
  1504  //
  1505  // You can provide the VisibilityTimeout parameter in your request. The parameter
  1506  // is applied to the messages that Amazon SQS returns in the response. If you
  1507  // don't include the parameter, the overall visibility timeout for the queue
  1508  // is used for the returned messages. For more information, see Visibility Timeout
  1509  // (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html)
  1510  // in the Amazon SQS Developer Guide.
  1511  //
  1512  // A message that isn't deleted or a message whose visibility isn't extended
  1513  // before the visibility timeout expires counts as a failed receive. Depending
  1514  // on the configuration of the queue, the message might be sent to the dead-letter
  1515  // queue.
  1516  //
  1517  // In the future, new attributes might be added. If you write code that calls
  1518  // this action, we recommend that you structure your code so that it can handle
  1519  // new attributes gracefully.
  1520  //
  1521  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1522  // with awserr.Error's Code and Message methods to get detailed information about
  1523  // the error.
  1524  //
  1525  // See the AWS API reference guide for Amazon Simple Queue Service's
  1526  // API operation ReceiveMessage for usage and error information.
  1527  //
  1528  // Returned Error Codes:
  1529  //   * ErrCodeOverLimit "OverLimit"
  1530  //   The specified action violates a limit. For example, ReceiveMessage returns
  1531  //   this error if the maximum number of inflight messages is reached and AddPermission
  1532  //   returns this error if the maximum number of permissions for the queue is
  1533  //   reached.
  1534  //
  1535  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ReceiveMessage
  1536  func (c *SQS) ReceiveMessage(input *ReceiveMessageInput) (*ReceiveMessageOutput, error) {
  1537  	req, out := c.ReceiveMessageRequest(input)
  1538  	return out, req.Send()
  1539  }
  1540  
  1541  // ReceiveMessageWithContext is the same as ReceiveMessage with the addition of
  1542  // the ability to pass a context and additional request options.
  1543  //
  1544  // See ReceiveMessage for details on how to use this API operation.
  1545  //
  1546  // The context must be non-nil and will be used for request cancellation. If
  1547  // the context is nil a panic will occur. In the future the SDK may create
  1548  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1549  // for more information on using Contexts.
  1550  func (c *SQS) ReceiveMessageWithContext(ctx aws.Context, input *ReceiveMessageInput, opts ...request.Option) (*ReceiveMessageOutput, error) {
  1551  	req, out := c.ReceiveMessageRequest(input)
  1552  	req.SetContext(ctx)
  1553  	req.ApplyOptions(opts...)
  1554  	return out, req.Send()
  1555  }
  1556  
  1557  const opRemovePermission = "RemovePermission"
  1558  
  1559  // RemovePermissionRequest generates a "aws/request.Request" representing the
  1560  // client's request for the RemovePermission operation. The "output" return
  1561  // value will be populated with the request's response once the request completes
  1562  // successfully.
  1563  //
  1564  // Use "Send" method on the returned Request to send the API call to the service.
  1565  // the "output" return value is not valid until after Send returns without error.
  1566  //
  1567  // See RemovePermission for more information on using the RemovePermission
  1568  // API call, and error handling.
  1569  //
  1570  // This method is useful when you want to inject custom logic or configuration
  1571  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1572  //
  1573  //
  1574  //    // Example sending a request using the RemovePermissionRequest method.
  1575  //    req, resp := client.RemovePermissionRequest(params)
  1576  //
  1577  //    err := req.Send()
  1578  //    if err == nil { // resp is now filled
  1579  //        fmt.Println(resp)
  1580  //    }
  1581  //
  1582  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/RemovePermission
  1583  func (c *SQS) RemovePermissionRequest(input *RemovePermissionInput) (req *request.Request, output *RemovePermissionOutput) {
  1584  	op := &request.Operation{
  1585  		Name:       opRemovePermission,
  1586  		HTTPMethod: "POST",
  1587  		HTTPPath:   "/",
  1588  	}
  1589  
  1590  	if input == nil {
  1591  		input = &RemovePermissionInput{}
  1592  	}
  1593  
  1594  	output = &RemovePermissionOutput{}
  1595  	req = c.newRequest(op, input, output)
  1596  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1597  	return
  1598  }
  1599  
  1600  // RemovePermission API operation for Amazon Simple Queue Service.
  1601  //
  1602  // Revokes any permissions in the queue policy that matches the specified Label
  1603  // parameter.
  1604  //
  1605  //    * Only the owner of a queue can remove permissions from it.
  1606  //
  1607  //    * Cross-account permissions don't apply to this action. For more information,
  1608  //    see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name)
  1609  //    in the Amazon SQS Developer Guide.
  1610  //
  1611  //    * To remove the ability to change queue permissions, you must deny permission
  1612  //    to the AddPermission, RemovePermission, and SetQueueAttributes actions
  1613  //    in your IAM policy.
  1614  //
  1615  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1616  // with awserr.Error's Code and Message methods to get detailed information about
  1617  // the error.
  1618  //
  1619  // See the AWS API reference guide for Amazon Simple Queue Service's
  1620  // API operation RemovePermission for usage and error information.
  1621  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/RemovePermission
  1622  func (c *SQS) RemovePermission(input *RemovePermissionInput) (*RemovePermissionOutput, error) {
  1623  	req, out := c.RemovePermissionRequest(input)
  1624  	return out, req.Send()
  1625  }
  1626  
  1627  // RemovePermissionWithContext is the same as RemovePermission with the addition of
  1628  // the ability to pass a context and additional request options.
  1629  //
  1630  // See RemovePermission for details on how to use this API operation.
  1631  //
  1632  // The context must be non-nil and will be used for request cancellation. If
  1633  // the context is nil a panic will occur. In the future the SDK may create
  1634  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1635  // for more information on using Contexts.
  1636  func (c *SQS) RemovePermissionWithContext(ctx aws.Context, input *RemovePermissionInput, opts ...request.Option) (*RemovePermissionOutput, error) {
  1637  	req, out := c.RemovePermissionRequest(input)
  1638  	req.SetContext(ctx)
  1639  	req.ApplyOptions(opts...)
  1640  	return out, req.Send()
  1641  }
  1642  
  1643  const opSendMessage = "SendMessage"
  1644  
  1645  // SendMessageRequest generates a "aws/request.Request" representing the
  1646  // client's request for the SendMessage operation. The "output" return
  1647  // value will be populated with the request's response once the request completes
  1648  // successfully.
  1649  //
  1650  // Use "Send" method on the returned Request to send the API call to the service.
  1651  // the "output" return value is not valid until after Send returns without error.
  1652  //
  1653  // See SendMessage for more information on using the SendMessage
  1654  // API call, and error handling.
  1655  //
  1656  // This method is useful when you want to inject custom logic or configuration
  1657  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1658  //
  1659  //
  1660  //    // Example sending a request using the SendMessageRequest method.
  1661  //    req, resp := client.SendMessageRequest(params)
  1662  //
  1663  //    err := req.Send()
  1664  //    if err == nil { // resp is now filled
  1665  //        fmt.Println(resp)
  1666  //    }
  1667  //
  1668  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/SendMessage
  1669  func (c *SQS) SendMessageRequest(input *SendMessageInput) (req *request.Request, output *SendMessageOutput) {
  1670  	op := &request.Operation{
  1671  		Name:       opSendMessage,
  1672  		HTTPMethod: "POST",
  1673  		HTTPPath:   "/",
  1674  	}
  1675  
  1676  	if input == nil {
  1677  		input = &SendMessageInput{}
  1678  	}
  1679  
  1680  	output = &SendMessageOutput{}
  1681  	req = c.newRequest(op, input, output)
  1682  	return
  1683  }
  1684  
  1685  // SendMessage API operation for Amazon Simple Queue Service.
  1686  //
  1687  // Delivers a message to the specified queue.
  1688  //
  1689  // A message can include only XML, JSON, and unformatted text. The following
  1690  // Unicode characters are allowed:
  1691  //
  1692  // #x9 | #xA | #xD | #x20 to #xD7FF | #xE000 to #xFFFD | #x10000 to #x10FFFF
  1693  //
  1694  // Any characters not included in this list will be rejected. For more information,
  1695  // see the W3C specification for characters (http://www.w3.org/TR/REC-xml/#charsets).
  1696  //
  1697  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1698  // with awserr.Error's Code and Message methods to get detailed information about
  1699  // the error.
  1700  //
  1701  // See the AWS API reference guide for Amazon Simple Queue Service's
  1702  // API operation SendMessage for usage and error information.
  1703  //
  1704  // Returned Error Codes:
  1705  //   * ErrCodeInvalidMessageContents "InvalidMessageContents"
  1706  //   The message contains characters outside the allowed set.
  1707  //
  1708  //   * ErrCodeUnsupportedOperation "AWS.SimpleQueueService.UnsupportedOperation"
  1709  //   Error code 400. Unsupported operation.
  1710  //
  1711  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/SendMessage
  1712  func (c *SQS) SendMessage(input *SendMessageInput) (*SendMessageOutput, error) {
  1713  	req, out := c.SendMessageRequest(input)
  1714  	return out, req.Send()
  1715  }
  1716  
  1717  // SendMessageWithContext is the same as SendMessage with the addition of
  1718  // the ability to pass a context and additional request options.
  1719  //
  1720  // See SendMessage for details on how to use this API operation.
  1721  //
  1722  // The context must be non-nil and will be used for request cancellation. If
  1723  // the context is nil a panic will occur. In the future the SDK may create
  1724  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1725  // for more information on using Contexts.
  1726  func (c *SQS) SendMessageWithContext(ctx aws.Context, input *SendMessageInput, opts ...request.Option) (*SendMessageOutput, error) {
  1727  	req, out := c.SendMessageRequest(input)
  1728  	req.SetContext(ctx)
  1729  	req.ApplyOptions(opts...)
  1730  	return out, req.Send()
  1731  }
  1732  
  1733  const opSendMessageBatch = "SendMessageBatch"
  1734  
  1735  // SendMessageBatchRequest generates a "aws/request.Request" representing the
  1736  // client's request for the SendMessageBatch operation. The "output" return
  1737  // value will be populated with the request's response once the request completes
  1738  // successfully.
  1739  //
  1740  // Use "Send" method on the returned Request to send the API call to the service.
  1741  // the "output" return value is not valid until after Send returns without error.
  1742  //
  1743  // See SendMessageBatch for more information on using the SendMessageBatch
  1744  // API call, and error handling.
  1745  //
  1746  // This method is useful when you want to inject custom logic or configuration
  1747  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1748  //
  1749  //
  1750  //    // Example sending a request using the SendMessageBatchRequest method.
  1751  //    req, resp := client.SendMessageBatchRequest(params)
  1752  //
  1753  //    err := req.Send()
  1754  //    if err == nil { // resp is now filled
  1755  //        fmt.Println(resp)
  1756  //    }
  1757  //
  1758  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/SendMessageBatch
  1759  func (c *SQS) SendMessageBatchRequest(input *SendMessageBatchInput) (req *request.Request, output *SendMessageBatchOutput) {
  1760  	op := &request.Operation{
  1761  		Name:       opSendMessageBatch,
  1762  		HTTPMethod: "POST",
  1763  		HTTPPath:   "/",
  1764  	}
  1765  
  1766  	if input == nil {
  1767  		input = &SendMessageBatchInput{}
  1768  	}
  1769  
  1770  	output = &SendMessageBatchOutput{}
  1771  	req = c.newRequest(op, input, output)
  1772  	return
  1773  }
  1774  
  1775  // SendMessageBatch API operation for Amazon Simple Queue Service.
  1776  //
  1777  // Delivers up to ten messages to the specified queue. This is a batch version
  1778  // of SendMessage. For a FIFO queue, multiple messages within a single batch
  1779  // are enqueued in the order they are sent.
  1780  //
  1781  // The result of sending each message is reported individually in the response.
  1782  // Because the batch request can result in a combination of successful and unsuccessful
  1783  // actions, you should check for batch errors even when the call returns an
  1784  // HTTP status code of 200.
  1785  //
  1786  // The maximum allowed individual message size and the maximum total payload
  1787  // size (the sum of the individual lengths of all of the batched messages) are
  1788  // both 256 KB (262,144 bytes).
  1789  //
  1790  // A message can include only XML, JSON, and unformatted text. The following
  1791  // Unicode characters are allowed:
  1792  //
  1793  // #x9 | #xA | #xD | #x20 to #xD7FF | #xE000 to #xFFFD | #x10000 to #x10FFFF
  1794  //
  1795  // Any characters not included in this list will be rejected. For more information,
  1796  // see the W3C specification for characters (http://www.w3.org/TR/REC-xml/#charsets).
  1797  //
  1798  // If you don't specify the DelaySeconds parameter for an entry, Amazon SQS
  1799  // uses the default value for the queue.
  1800  //
  1801  // Some actions take lists of parameters. These lists are specified using the
  1802  // param.n notation. Values of n are integers starting from 1. For example,
  1803  // a parameter list with two elements looks like this:
  1804  //
  1805  // &AttributeName.1=first
  1806  //
  1807  // &AttributeName.2=second
  1808  //
  1809  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1810  // with awserr.Error's Code and Message methods to get detailed information about
  1811  // the error.
  1812  //
  1813  // See the AWS API reference guide for Amazon Simple Queue Service's
  1814  // API operation SendMessageBatch for usage and error information.
  1815  //
  1816  // Returned Error Codes:
  1817  //   * ErrCodeTooManyEntriesInBatchRequest "AWS.SimpleQueueService.TooManyEntriesInBatchRequest"
  1818  //   The batch request contains more entries than permissible.
  1819  //
  1820  //   * ErrCodeEmptyBatchRequest "AWS.SimpleQueueService.EmptyBatchRequest"
  1821  //   The batch request doesn't contain any entries.
  1822  //
  1823  //   * ErrCodeBatchEntryIdsNotDistinct "AWS.SimpleQueueService.BatchEntryIdsNotDistinct"
  1824  //   Two or more batch entries in the request have the same Id.
  1825  //
  1826  //   * ErrCodeBatchRequestTooLong "AWS.SimpleQueueService.BatchRequestTooLong"
  1827  //   The length of all the messages put together is more than the limit.
  1828  //
  1829  //   * ErrCodeInvalidBatchEntryId "AWS.SimpleQueueService.InvalidBatchEntryId"
  1830  //   The Id of a batch entry in a batch request doesn't abide by the specification.
  1831  //
  1832  //   * ErrCodeUnsupportedOperation "AWS.SimpleQueueService.UnsupportedOperation"
  1833  //   Error code 400. Unsupported operation.
  1834  //
  1835  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/SendMessageBatch
  1836  func (c *SQS) SendMessageBatch(input *SendMessageBatchInput) (*SendMessageBatchOutput, error) {
  1837  	req, out := c.SendMessageBatchRequest(input)
  1838  	return out, req.Send()
  1839  }
  1840  
  1841  // SendMessageBatchWithContext is the same as SendMessageBatch with the addition of
  1842  // the ability to pass a context and additional request options.
  1843  //
  1844  // See SendMessageBatch for details on how to use this API operation.
  1845  //
  1846  // The context must be non-nil and will be used for request cancellation. If
  1847  // the context is nil a panic will occur. In the future the SDK may create
  1848  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1849  // for more information on using Contexts.
  1850  func (c *SQS) SendMessageBatchWithContext(ctx aws.Context, input *SendMessageBatchInput, opts ...request.Option) (*SendMessageBatchOutput, error) {
  1851  	req, out := c.SendMessageBatchRequest(input)
  1852  	req.SetContext(ctx)
  1853  	req.ApplyOptions(opts...)
  1854  	return out, req.Send()
  1855  }
  1856  
  1857  const opSetQueueAttributes = "SetQueueAttributes"
  1858  
  1859  // SetQueueAttributesRequest generates a "aws/request.Request" representing the
  1860  // client's request for the SetQueueAttributes operation. The "output" return
  1861  // value will be populated with the request's response once the request completes
  1862  // successfully.
  1863  //
  1864  // Use "Send" method on the returned Request to send the API call to the service.
  1865  // the "output" return value is not valid until after Send returns without error.
  1866  //
  1867  // See SetQueueAttributes for more information on using the SetQueueAttributes
  1868  // API call, and error handling.
  1869  //
  1870  // This method is useful when you want to inject custom logic or configuration
  1871  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1872  //
  1873  //
  1874  //    // Example sending a request using the SetQueueAttributesRequest method.
  1875  //    req, resp := client.SetQueueAttributesRequest(params)
  1876  //
  1877  //    err := req.Send()
  1878  //    if err == nil { // resp is now filled
  1879  //        fmt.Println(resp)
  1880  //    }
  1881  //
  1882  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/SetQueueAttributes
  1883  func (c *SQS) SetQueueAttributesRequest(input *SetQueueAttributesInput) (req *request.Request, output *SetQueueAttributesOutput) {
  1884  	op := &request.Operation{
  1885  		Name:       opSetQueueAttributes,
  1886  		HTTPMethod: "POST",
  1887  		HTTPPath:   "/",
  1888  	}
  1889  
  1890  	if input == nil {
  1891  		input = &SetQueueAttributesInput{}
  1892  	}
  1893  
  1894  	output = &SetQueueAttributesOutput{}
  1895  	req = c.newRequest(op, input, output)
  1896  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1897  	return
  1898  }
  1899  
  1900  // SetQueueAttributes API operation for Amazon Simple Queue Service.
  1901  //
  1902  // Sets the value of one or more queue attributes. When you change a queue's
  1903  // attributes, the change can take up to 60 seconds for most of the attributes
  1904  // to propagate throughout the Amazon SQS system. Changes made to the MessageRetentionPeriod
  1905  // attribute can take up to 15 minutes.
  1906  //
  1907  //    * In the future, new attributes might be added. If you write code that
  1908  //    calls this action, we recommend that you structure your code so that it
  1909  //    can handle new attributes gracefully.
  1910  //
  1911  //    * Cross-account permissions don't apply to this action. For more information,
  1912  //    see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name)
  1913  //    in the Amazon SQS Developer Guide.
  1914  //
  1915  //    * To remove the ability to change queue permissions, you must deny permission
  1916  //    to the AddPermission, RemovePermission, and SetQueueAttributes actions
  1917  //    in your IAM policy.
  1918  //
  1919  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1920  // with awserr.Error's Code and Message methods to get detailed information about
  1921  // the error.
  1922  //
  1923  // See the AWS API reference guide for Amazon Simple Queue Service's
  1924  // API operation SetQueueAttributes for usage and error information.
  1925  //
  1926  // Returned Error Codes:
  1927  //   * ErrCodeInvalidAttributeName "InvalidAttributeName"
  1928  //   The specified attribute doesn't exist.
  1929  //
  1930  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/SetQueueAttributes
  1931  func (c *SQS) SetQueueAttributes(input *SetQueueAttributesInput) (*SetQueueAttributesOutput, error) {
  1932  	req, out := c.SetQueueAttributesRequest(input)
  1933  	return out, req.Send()
  1934  }
  1935  
  1936  // SetQueueAttributesWithContext is the same as SetQueueAttributes with the addition of
  1937  // the ability to pass a context and additional request options.
  1938  //
  1939  // See SetQueueAttributes for details on how to use this API operation.
  1940  //
  1941  // The context must be non-nil and will be used for request cancellation. If
  1942  // the context is nil a panic will occur. In the future the SDK may create
  1943  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1944  // for more information on using Contexts.
  1945  func (c *SQS) SetQueueAttributesWithContext(ctx aws.Context, input *SetQueueAttributesInput, opts ...request.Option) (*SetQueueAttributesOutput, error) {
  1946  	req, out := c.SetQueueAttributesRequest(input)
  1947  	req.SetContext(ctx)
  1948  	req.ApplyOptions(opts...)
  1949  	return out, req.Send()
  1950  }
  1951  
  1952  const opTagQueue = "TagQueue"
  1953  
  1954  // TagQueueRequest generates a "aws/request.Request" representing the
  1955  // client's request for the TagQueue operation. The "output" return
  1956  // value will be populated with the request's response once the request completes
  1957  // successfully.
  1958  //
  1959  // Use "Send" method on the returned Request to send the API call to the service.
  1960  // the "output" return value is not valid until after Send returns without error.
  1961  //
  1962  // See TagQueue for more information on using the TagQueue
  1963  // API call, and error handling.
  1964  //
  1965  // This method is useful when you want to inject custom logic or configuration
  1966  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1967  //
  1968  //
  1969  //    // Example sending a request using the TagQueueRequest method.
  1970  //    req, resp := client.TagQueueRequest(params)
  1971  //
  1972  //    err := req.Send()
  1973  //    if err == nil { // resp is now filled
  1974  //        fmt.Println(resp)
  1975  //    }
  1976  //
  1977  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/TagQueue
  1978  func (c *SQS) TagQueueRequest(input *TagQueueInput) (req *request.Request, output *TagQueueOutput) {
  1979  	op := &request.Operation{
  1980  		Name:       opTagQueue,
  1981  		HTTPMethod: "POST",
  1982  		HTTPPath:   "/",
  1983  	}
  1984  
  1985  	if input == nil {
  1986  		input = &TagQueueInput{}
  1987  	}
  1988  
  1989  	output = &TagQueueOutput{}
  1990  	req = c.newRequest(op, input, output)
  1991  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1992  	return
  1993  }
  1994  
  1995  // TagQueue API operation for Amazon Simple Queue Service.
  1996  //
  1997  // Add cost allocation tags to the specified Amazon SQS queue. For an overview,
  1998  // see Tagging Your Amazon SQS Queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-tags.html)
  1999  // in the Amazon SQS Developer Guide.
  2000  //
  2001  // When you use queue tags, keep the following guidelines in mind:
  2002  //
  2003  //    * Adding more than 50 tags to a queue isn't recommended.
  2004  //
  2005  //    * Tags don't have any semantic meaning. Amazon SQS interprets tags as
  2006  //    character strings.
  2007  //
  2008  //    * Tags are case-sensitive.
  2009  //
  2010  //    * A new tag with a key identical to that of an existing tag overwrites
  2011  //    the existing tag.
  2012  //
  2013  // For a full list of tag restrictions, see Quotas related to queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-limits.html#limits-queues)
  2014  // in the Amazon SQS Developer Guide.
  2015  //
  2016  // Cross-account permissions don't apply to this action. For more information,
  2017  // see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name)
  2018  // in the Amazon SQS Developer Guide.
  2019  //
  2020  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2021  // with awserr.Error's Code and Message methods to get detailed information about
  2022  // the error.
  2023  //
  2024  // See the AWS API reference guide for Amazon Simple Queue Service's
  2025  // API operation TagQueue for usage and error information.
  2026  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/TagQueue
  2027  func (c *SQS) TagQueue(input *TagQueueInput) (*TagQueueOutput, error) {
  2028  	req, out := c.TagQueueRequest(input)
  2029  	return out, req.Send()
  2030  }
  2031  
  2032  // TagQueueWithContext is the same as TagQueue with the addition of
  2033  // the ability to pass a context and additional request options.
  2034  //
  2035  // See TagQueue for details on how to use this API operation.
  2036  //
  2037  // The context must be non-nil and will be used for request cancellation. If
  2038  // the context is nil a panic will occur. In the future the SDK may create
  2039  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2040  // for more information on using Contexts.
  2041  func (c *SQS) TagQueueWithContext(ctx aws.Context, input *TagQueueInput, opts ...request.Option) (*TagQueueOutput, error) {
  2042  	req, out := c.TagQueueRequest(input)
  2043  	req.SetContext(ctx)
  2044  	req.ApplyOptions(opts...)
  2045  	return out, req.Send()
  2046  }
  2047  
  2048  const opUntagQueue = "UntagQueue"
  2049  
  2050  // UntagQueueRequest generates a "aws/request.Request" representing the
  2051  // client's request for the UntagQueue operation. The "output" return
  2052  // value will be populated with the request's response once the request completes
  2053  // successfully.
  2054  //
  2055  // Use "Send" method on the returned Request to send the API call to the service.
  2056  // the "output" return value is not valid until after Send returns without error.
  2057  //
  2058  // See UntagQueue for more information on using the UntagQueue
  2059  // API call, and error handling.
  2060  //
  2061  // This method is useful when you want to inject custom logic or configuration
  2062  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2063  //
  2064  //
  2065  //    // Example sending a request using the UntagQueueRequest method.
  2066  //    req, resp := client.UntagQueueRequest(params)
  2067  //
  2068  //    err := req.Send()
  2069  //    if err == nil { // resp is now filled
  2070  //        fmt.Println(resp)
  2071  //    }
  2072  //
  2073  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/UntagQueue
  2074  func (c *SQS) UntagQueueRequest(input *UntagQueueInput) (req *request.Request, output *UntagQueueOutput) {
  2075  	op := &request.Operation{
  2076  		Name:       opUntagQueue,
  2077  		HTTPMethod: "POST",
  2078  		HTTPPath:   "/",
  2079  	}
  2080  
  2081  	if input == nil {
  2082  		input = &UntagQueueInput{}
  2083  	}
  2084  
  2085  	output = &UntagQueueOutput{}
  2086  	req = c.newRequest(op, input, output)
  2087  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2088  	return
  2089  }
  2090  
  2091  // UntagQueue API operation for Amazon Simple Queue Service.
  2092  //
  2093  // Remove cost allocation tags from the specified Amazon SQS queue. For an overview,
  2094  // see Tagging Your Amazon SQS Queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-tags.html)
  2095  // in the Amazon SQS Developer Guide.
  2096  //
  2097  // Cross-account permissions don't apply to this action. For more information,
  2098  // see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name)
  2099  // in the Amazon SQS Developer Guide.
  2100  //
  2101  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2102  // with awserr.Error's Code and Message methods to get detailed information about
  2103  // the error.
  2104  //
  2105  // See the AWS API reference guide for Amazon Simple Queue Service's
  2106  // API operation UntagQueue for usage and error information.
  2107  // See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/UntagQueue
  2108  func (c *SQS) UntagQueue(input *UntagQueueInput) (*UntagQueueOutput, error) {
  2109  	req, out := c.UntagQueueRequest(input)
  2110  	return out, req.Send()
  2111  }
  2112  
  2113  // UntagQueueWithContext is the same as UntagQueue with the addition of
  2114  // the ability to pass a context and additional request options.
  2115  //
  2116  // See UntagQueue for details on how to use this API operation.
  2117  //
  2118  // The context must be non-nil and will be used for request cancellation. If
  2119  // the context is nil a panic will occur. In the future the SDK may create
  2120  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2121  // for more information on using Contexts.
  2122  func (c *SQS) UntagQueueWithContext(ctx aws.Context, input *UntagQueueInput, opts ...request.Option) (*UntagQueueOutput, error) {
  2123  	req, out := c.UntagQueueRequest(input)
  2124  	req.SetContext(ctx)
  2125  	req.ApplyOptions(opts...)
  2126  	return out, req.Send()
  2127  }
  2128  
  2129  type AddPermissionInput struct {
  2130  	_ struct{} `type:"structure"`
  2131  
  2132  	// The account numbers of the principals (https://docs.aws.amazon.com/general/latest/gr/glos-chap.html#P)
  2133  	// who are to receive permission. For information about locating the account
  2134  	// identification, see Your Amazon Web Services Identifiers (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-making-api-requests.html#sqs-api-request-authentication)
  2135  	// in the Amazon SQS Developer Guide.
  2136  	//
  2137  	// AWSAccountIds is a required field
  2138  	AWSAccountIds []*string `locationNameList:"AWSAccountId" type:"list" flattened:"true" required:"true"`
  2139  
  2140  	// The action the client wants to allow for the specified principal. Valid values:
  2141  	// the name of any action or *.
  2142  	//
  2143  	// For more information about these actions, see Overview of Managing Access
  2144  	// Permissions to Your Amazon Simple Queue Service Resource (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-overview-of-managing-access.html)
  2145  	// in the Amazon SQS Developer Guide.
  2146  	//
  2147  	// Specifying SendMessage, DeleteMessage, or ChangeMessageVisibility for ActionName.n
  2148  	// also grants permissions for the corresponding batch versions of those actions:
  2149  	// SendMessageBatch, DeleteMessageBatch, and ChangeMessageVisibilityBatch.
  2150  	//
  2151  	// Actions is a required field
  2152  	Actions []*string `locationNameList:"ActionName" type:"list" flattened:"true" required:"true"`
  2153  
  2154  	// The unique identification of the permission you're setting (for example,
  2155  	// AliceSendMessage). Maximum 80 characters. Allowed characters include alphanumeric
  2156  	// characters, hyphens (-), and underscores (_).
  2157  	//
  2158  	// Label is a required field
  2159  	Label *string `type:"string" required:"true"`
  2160  
  2161  	// The URL of the Amazon SQS queue to which permissions are added.
  2162  	//
  2163  	// Queue URLs and names are case-sensitive.
  2164  	//
  2165  	// QueueUrl is a required field
  2166  	QueueUrl *string `type:"string" required:"true"`
  2167  }
  2168  
  2169  // String returns the string representation.
  2170  //
  2171  // API parameter values that are decorated as "sensitive" in the API will not
  2172  // be included in the string output. The member name will be present, but the
  2173  // value will be replaced with "sensitive".
  2174  func (s AddPermissionInput) String() string {
  2175  	return awsutil.Prettify(s)
  2176  }
  2177  
  2178  // GoString returns the string representation.
  2179  //
  2180  // API parameter values that are decorated as "sensitive" in the API will not
  2181  // be included in the string output. The member name will be present, but the
  2182  // value will be replaced with "sensitive".
  2183  func (s AddPermissionInput) GoString() string {
  2184  	return s.String()
  2185  }
  2186  
  2187  // Validate inspects the fields of the type to determine if they are valid.
  2188  func (s *AddPermissionInput) Validate() error {
  2189  	invalidParams := request.ErrInvalidParams{Context: "AddPermissionInput"}
  2190  	if s.AWSAccountIds == nil {
  2191  		invalidParams.Add(request.NewErrParamRequired("AWSAccountIds"))
  2192  	}
  2193  	if s.Actions == nil {
  2194  		invalidParams.Add(request.NewErrParamRequired("Actions"))
  2195  	}
  2196  	if s.Label == nil {
  2197  		invalidParams.Add(request.NewErrParamRequired("Label"))
  2198  	}
  2199  	if s.QueueUrl == nil {
  2200  		invalidParams.Add(request.NewErrParamRequired("QueueUrl"))
  2201  	}
  2202  
  2203  	if invalidParams.Len() > 0 {
  2204  		return invalidParams
  2205  	}
  2206  	return nil
  2207  }
  2208  
  2209  // SetAWSAccountIds sets the AWSAccountIds field's value.
  2210  func (s *AddPermissionInput) SetAWSAccountIds(v []*string) *AddPermissionInput {
  2211  	s.AWSAccountIds = v
  2212  	return s
  2213  }
  2214  
  2215  // SetActions sets the Actions field's value.
  2216  func (s *AddPermissionInput) SetActions(v []*string) *AddPermissionInput {
  2217  	s.Actions = v
  2218  	return s
  2219  }
  2220  
  2221  // SetLabel sets the Label field's value.
  2222  func (s *AddPermissionInput) SetLabel(v string) *AddPermissionInput {
  2223  	s.Label = &v
  2224  	return s
  2225  }
  2226  
  2227  // SetQueueUrl sets the QueueUrl field's value.
  2228  func (s *AddPermissionInput) SetQueueUrl(v string) *AddPermissionInput {
  2229  	s.QueueUrl = &v
  2230  	return s
  2231  }
  2232  
  2233  type AddPermissionOutput struct {
  2234  	_ struct{} `type:"structure"`
  2235  }
  2236  
  2237  // String returns the string representation.
  2238  //
  2239  // API parameter values that are decorated as "sensitive" in the API will not
  2240  // be included in the string output. The member name will be present, but the
  2241  // value will be replaced with "sensitive".
  2242  func (s AddPermissionOutput) String() string {
  2243  	return awsutil.Prettify(s)
  2244  }
  2245  
  2246  // GoString returns the string representation.
  2247  //
  2248  // API parameter values that are decorated as "sensitive" in the API will not
  2249  // be included in the string output. The member name will be present, but the
  2250  // value will be replaced with "sensitive".
  2251  func (s AddPermissionOutput) GoString() string {
  2252  	return s.String()
  2253  }
  2254  
  2255  // Gives a detailed description of the result of an action on each entry in
  2256  // the request.
  2257  type BatchResultErrorEntry struct {
  2258  	_ struct{} `type:"structure"`
  2259  
  2260  	// An error code representing why the action failed on this entry.
  2261  	//
  2262  	// Code is a required field
  2263  	Code *string `type:"string" required:"true"`
  2264  
  2265  	// The Id of an entry in a batch request.
  2266  	//
  2267  	// Id is a required field
  2268  	Id *string `type:"string" required:"true"`
  2269  
  2270  	// A message explaining why the action failed on this entry.
  2271  	Message *string `type:"string"`
  2272  
  2273  	// Specifies whether the error happened due to the caller of the batch API action.
  2274  	//
  2275  	// SenderFault is a required field
  2276  	SenderFault *bool `type:"boolean" required:"true"`
  2277  }
  2278  
  2279  // String returns the string representation.
  2280  //
  2281  // API parameter values that are decorated as "sensitive" in the API will not
  2282  // be included in the string output. The member name will be present, but the
  2283  // value will be replaced with "sensitive".
  2284  func (s BatchResultErrorEntry) String() string {
  2285  	return awsutil.Prettify(s)
  2286  }
  2287  
  2288  // GoString returns the string representation.
  2289  //
  2290  // API parameter values that are decorated as "sensitive" in the API will not
  2291  // be included in the string output. The member name will be present, but the
  2292  // value will be replaced with "sensitive".
  2293  func (s BatchResultErrorEntry) GoString() string {
  2294  	return s.String()
  2295  }
  2296  
  2297  // SetCode sets the Code field's value.
  2298  func (s *BatchResultErrorEntry) SetCode(v string) *BatchResultErrorEntry {
  2299  	s.Code = &v
  2300  	return s
  2301  }
  2302  
  2303  // SetId sets the Id field's value.
  2304  func (s *BatchResultErrorEntry) SetId(v string) *BatchResultErrorEntry {
  2305  	s.Id = &v
  2306  	return s
  2307  }
  2308  
  2309  // SetMessage sets the Message field's value.
  2310  func (s *BatchResultErrorEntry) SetMessage(v string) *BatchResultErrorEntry {
  2311  	s.Message = &v
  2312  	return s
  2313  }
  2314  
  2315  // SetSenderFault sets the SenderFault field's value.
  2316  func (s *BatchResultErrorEntry) SetSenderFault(v bool) *BatchResultErrorEntry {
  2317  	s.SenderFault = &v
  2318  	return s
  2319  }
  2320  
  2321  type ChangeMessageVisibilityBatchInput struct {
  2322  	_ struct{} `type:"structure"`
  2323  
  2324  	// A list of receipt handles of the messages for which the visibility timeout
  2325  	// must be changed.
  2326  	//
  2327  	// Entries is a required field
  2328  	Entries []*ChangeMessageVisibilityBatchRequestEntry `locationNameList:"ChangeMessageVisibilityBatchRequestEntry" type:"list" flattened:"true" required:"true"`
  2329  
  2330  	// The URL of the Amazon SQS queue whose messages' visibility is changed.
  2331  	//
  2332  	// Queue URLs and names are case-sensitive.
  2333  	//
  2334  	// QueueUrl is a required field
  2335  	QueueUrl *string `type:"string" required:"true"`
  2336  }
  2337  
  2338  // String returns the string representation.
  2339  //
  2340  // API parameter values that are decorated as "sensitive" in the API will not
  2341  // be included in the string output. The member name will be present, but the
  2342  // value will be replaced with "sensitive".
  2343  func (s ChangeMessageVisibilityBatchInput) String() string {
  2344  	return awsutil.Prettify(s)
  2345  }
  2346  
  2347  // GoString returns the string representation.
  2348  //
  2349  // API parameter values that are decorated as "sensitive" in the API will not
  2350  // be included in the string output. The member name will be present, but the
  2351  // value will be replaced with "sensitive".
  2352  func (s ChangeMessageVisibilityBatchInput) GoString() string {
  2353  	return s.String()
  2354  }
  2355  
  2356  // Validate inspects the fields of the type to determine if they are valid.
  2357  func (s *ChangeMessageVisibilityBatchInput) Validate() error {
  2358  	invalidParams := request.ErrInvalidParams{Context: "ChangeMessageVisibilityBatchInput"}
  2359  	if s.Entries == nil {
  2360  		invalidParams.Add(request.NewErrParamRequired("Entries"))
  2361  	}
  2362  	if s.QueueUrl == nil {
  2363  		invalidParams.Add(request.NewErrParamRequired("QueueUrl"))
  2364  	}
  2365  	if s.Entries != nil {
  2366  		for i, v := range s.Entries {
  2367  			if v == nil {
  2368  				continue
  2369  			}
  2370  			if err := v.Validate(); err != nil {
  2371  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Entries", i), err.(request.ErrInvalidParams))
  2372  			}
  2373  		}
  2374  	}
  2375  
  2376  	if invalidParams.Len() > 0 {
  2377  		return invalidParams
  2378  	}
  2379  	return nil
  2380  }
  2381  
  2382  // SetEntries sets the Entries field's value.
  2383  func (s *ChangeMessageVisibilityBatchInput) SetEntries(v []*ChangeMessageVisibilityBatchRequestEntry) *ChangeMessageVisibilityBatchInput {
  2384  	s.Entries = v
  2385  	return s
  2386  }
  2387  
  2388  // SetQueueUrl sets the QueueUrl field's value.
  2389  func (s *ChangeMessageVisibilityBatchInput) SetQueueUrl(v string) *ChangeMessageVisibilityBatchInput {
  2390  	s.QueueUrl = &v
  2391  	return s
  2392  }
  2393  
  2394  // For each message in the batch, the response contains a ChangeMessageVisibilityBatchResultEntry
  2395  // tag if the message succeeds or a BatchResultErrorEntry tag if the message
  2396  // fails.
  2397  type ChangeMessageVisibilityBatchOutput struct {
  2398  	_ struct{} `type:"structure"`
  2399  
  2400  	// A list of BatchResultErrorEntry items.
  2401  	//
  2402  	// Failed is a required field
  2403  	Failed []*BatchResultErrorEntry `locationNameList:"BatchResultErrorEntry" type:"list" flattened:"true" required:"true"`
  2404  
  2405  	// A list of ChangeMessageVisibilityBatchResultEntry items.
  2406  	//
  2407  	// Successful is a required field
  2408  	Successful []*ChangeMessageVisibilityBatchResultEntry `locationNameList:"ChangeMessageVisibilityBatchResultEntry" type:"list" flattened:"true" required:"true"`
  2409  }
  2410  
  2411  // String returns the string representation.
  2412  //
  2413  // API parameter values that are decorated as "sensitive" in the API will not
  2414  // be included in the string output. The member name will be present, but the
  2415  // value will be replaced with "sensitive".
  2416  func (s ChangeMessageVisibilityBatchOutput) String() string {
  2417  	return awsutil.Prettify(s)
  2418  }
  2419  
  2420  // GoString returns the string representation.
  2421  //
  2422  // API parameter values that are decorated as "sensitive" in the API will not
  2423  // be included in the string output. The member name will be present, but the
  2424  // value will be replaced with "sensitive".
  2425  func (s ChangeMessageVisibilityBatchOutput) GoString() string {
  2426  	return s.String()
  2427  }
  2428  
  2429  // SetFailed sets the Failed field's value.
  2430  func (s *ChangeMessageVisibilityBatchOutput) SetFailed(v []*BatchResultErrorEntry) *ChangeMessageVisibilityBatchOutput {
  2431  	s.Failed = v
  2432  	return s
  2433  }
  2434  
  2435  // SetSuccessful sets the Successful field's value.
  2436  func (s *ChangeMessageVisibilityBatchOutput) SetSuccessful(v []*ChangeMessageVisibilityBatchResultEntry) *ChangeMessageVisibilityBatchOutput {
  2437  	s.Successful = v
  2438  	return s
  2439  }
  2440  
  2441  // Encloses a receipt handle and an entry id for each message in ChangeMessageVisibilityBatch.
  2442  //
  2443  // All of the following list parameters must be prefixed with ChangeMessageVisibilityBatchRequestEntry.n,
  2444  // where n is an integer value starting with 1. For example, a parameter list
  2445  // for this action might look like this:
  2446  //
  2447  // &ChangeMessageVisibilityBatchRequestEntry.1.Id=change_visibility_msg_2
  2448  //
  2449  // &ChangeMessageVisibilityBatchRequestEntry.1.ReceiptHandle=your_receipt_handle
  2450  //
  2451  // &ChangeMessageVisibilityBatchRequestEntry.1.VisibilityTimeout=45
  2452  type ChangeMessageVisibilityBatchRequestEntry struct {
  2453  	_ struct{} `type:"structure"`
  2454  
  2455  	// An identifier for this particular receipt handle used to communicate the
  2456  	// result.
  2457  	//
  2458  	// The Ids of a batch request need to be unique within a request.
  2459  	//
  2460  	// This identifier can have up to 80 characters. The following characters are
  2461  	// accepted: alphanumeric characters, hyphens(-), and underscores (_).
  2462  	//
  2463  	// Id is a required field
  2464  	Id *string `type:"string" required:"true"`
  2465  
  2466  	// A receipt handle.
  2467  	//
  2468  	// ReceiptHandle is a required field
  2469  	ReceiptHandle *string `type:"string" required:"true"`
  2470  
  2471  	// The new value (in seconds) for the message's visibility timeout.
  2472  	VisibilityTimeout *int64 `type:"integer"`
  2473  }
  2474  
  2475  // String returns the string representation.
  2476  //
  2477  // API parameter values that are decorated as "sensitive" in the API will not
  2478  // be included in the string output. The member name will be present, but the
  2479  // value will be replaced with "sensitive".
  2480  func (s ChangeMessageVisibilityBatchRequestEntry) String() string {
  2481  	return awsutil.Prettify(s)
  2482  }
  2483  
  2484  // GoString 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 ChangeMessageVisibilityBatchRequestEntry) GoString() string {
  2490  	return s.String()
  2491  }
  2492  
  2493  // Validate inspects the fields of the type to determine if they are valid.
  2494  func (s *ChangeMessageVisibilityBatchRequestEntry) Validate() error {
  2495  	invalidParams := request.ErrInvalidParams{Context: "ChangeMessageVisibilityBatchRequestEntry"}
  2496  	if s.Id == nil {
  2497  		invalidParams.Add(request.NewErrParamRequired("Id"))
  2498  	}
  2499  	if s.ReceiptHandle == nil {
  2500  		invalidParams.Add(request.NewErrParamRequired("ReceiptHandle"))
  2501  	}
  2502  
  2503  	if invalidParams.Len() > 0 {
  2504  		return invalidParams
  2505  	}
  2506  	return nil
  2507  }
  2508  
  2509  // SetId sets the Id field's value.
  2510  func (s *ChangeMessageVisibilityBatchRequestEntry) SetId(v string) *ChangeMessageVisibilityBatchRequestEntry {
  2511  	s.Id = &v
  2512  	return s
  2513  }
  2514  
  2515  // SetReceiptHandle sets the ReceiptHandle field's value.
  2516  func (s *ChangeMessageVisibilityBatchRequestEntry) SetReceiptHandle(v string) *ChangeMessageVisibilityBatchRequestEntry {
  2517  	s.ReceiptHandle = &v
  2518  	return s
  2519  }
  2520  
  2521  // SetVisibilityTimeout sets the VisibilityTimeout field's value.
  2522  func (s *ChangeMessageVisibilityBatchRequestEntry) SetVisibilityTimeout(v int64) *ChangeMessageVisibilityBatchRequestEntry {
  2523  	s.VisibilityTimeout = &v
  2524  	return s
  2525  }
  2526  
  2527  // Encloses the Id of an entry in ChangeMessageVisibilityBatch.
  2528  type ChangeMessageVisibilityBatchResultEntry struct {
  2529  	_ struct{} `type:"structure"`
  2530  
  2531  	// Represents a message whose visibility timeout has been changed successfully.
  2532  	//
  2533  	// Id is a required field
  2534  	Id *string `type:"string" required:"true"`
  2535  }
  2536  
  2537  // String returns the string representation.
  2538  //
  2539  // API parameter values that are decorated as "sensitive" in the API will not
  2540  // be included in the string output. The member name will be present, but the
  2541  // value will be replaced with "sensitive".
  2542  func (s ChangeMessageVisibilityBatchResultEntry) String() string {
  2543  	return awsutil.Prettify(s)
  2544  }
  2545  
  2546  // GoString returns the string representation.
  2547  //
  2548  // API parameter values that are decorated as "sensitive" in the API will not
  2549  // be included in the string output. The member name will be present, but the
  2550  // value will be replaced with "sensitive".
  2551  func (s ChangeMessageVisibilityBatchResultEntry) GoString() string {
  2552  	return s.String()
  2553  }
  2554  
  2555  // SetId sets the Id field's value.
  2556  func (s *ChangeMessageVisibilityBatchResultEntry) SetId(v string) *ChangeMessageVisibilityBatchResultEntry {
  2557  	s.Id = &v
  2558  	return s
  2559  }
  2560  
  2561  type ChangeMessageVisibilityInput struct {
  2562  	_ struct{} `type:"structure"`
  2563  
  2564  	// The URL of the Amazon SQS queue whose message's visibility is changed.
  2565  	//
  2566  	// Queue URLs and names are case-sensitive.
  2567  	//
  2568  	// QueueUrl is a required field
  2569  	QueueUrl *string `type:"string" required:"true"`
  2570  
  2571  	// The receipt handle associated with the message whose visibility timeout is
  2572  	// changed. This parameter is returned by the ReceiveMessage action.
  2573  	//
  2574  	// ReceiptHandle is a required field
  2575  	ReceiptHandle *string `type:"string" required:"true"`
  2576  
  2577  	// The new value for the message's visibility timeout (in seconds). Values range:
  2578  	// 0 to 43200. Maximum: 12 hours.
  2579  	//
  2580  	// VisibilityTimeout is a required field
  2581  	VisibilityTimeout *int64 `type:"integer" required:"true"`
  2582  }
  2583  
  2584  // String returns the string representation.
  2585  //
  2586  // API parameter values that are decorated as "sensitive" in the API will not
  2587  // be included in the string output. The member name will be present, but the
  2588  // value will be replaced with "sensitive".
  2589  func (s ChangeMessageVisibilityInput) String() string {
  2590  	return awsutil.Prettify(s)
  2591  }
  2592  
  2593  // GoString returns the string representation.
  2594  //
  2595  // API parameter values that are decorated as "sensitive" in the API will not
  2596  // be included in the string output. The member name will be present, but the
  2597  // value will be replaced with "sensitive".
  2598  func (s ChangeMessageVisibilityInput) GoString() string {
  2599  	return s.String()
  2600  }
  2601  
  2602  // Validate inspects the fields of the type to determine if they are valid.
  2603  func (s *ChangeMessageVisibilityInput) Validate() error {
  2604  	invalidParams := request.ErrInvalidParams{Context: "ChangeMessageVisibilityInput"}
  2605  	if s.QueueUrl == nil {
  2606  		invalidParams.Add(request.NewErrParamRequired("QueueUrl"))
  2607  	}
  2608  	if s.ReceiptHandle == nil {
  2609  		invalidParams.Add(request.NewErrParamRequired("ReceiptHandle"))
  2610  	}
  2611  	if s.VisibilityTimeout == nil {
  2612  		invalidParams.Add(request.NewErrParamRequired("VisibilityTimeout"))
  2613  	}
  2614  
  2615  	if invalidParams.Len() > 0 {
  2616  		return invalidParams
  2617  	}
  2618  	return nil
  2619  }
  2620  
  2621  // SetQueueUrl sets the QueueUrl field's value.
  2622  func (s *ChangeMessageVisibilityInput) SetQueueUrl(v string) *ChangeMessageVisibilityInput {
  2623  	s.QueueUrl = &v
  2624  	return s
  2625  }
  2626  
  2627  // SetReceiptHandle sets the ReceiptHandle field's value.
  2628  func (s *ChangeMessageVisibilityInput) SetReceiptHandle(v string) *ChangeMessageVisibilityInput {
  2629  	s.ReceiptHandle = &v
  2630  	return s
  2631  }
  2632  
  2633  // SetVisibilityTimeout sets the VisibilityTimeout field's value.
  2634  func (s *ChangeMessageVisibilityInput) SetVisibilityTimeout(v int64) *ChangeMessageVisibilityInput {
  2635  	s.VisibilityTimeout = &v
  2636  	return s
  2637  }
  2638  
  2639  type ChangeMessageVisibilityOutput struct {
  2640  	_ struct{} `type:"structure"`
  2641  }
  2642  
  2643  // String returns the string representation.
  2644  //
  2645  // API parameter values that are decorated as "sensitive" in the API will not
  2646  // be included in the string output. The member name will be present, but the
  2647  // value will be replaced with "sensitive".
  2648  func (s ChangeMessageVisibilityOutput) String() string {
  2649  	return awsutil.Prettify(s)
  2650  }
  2651  
  2652  // GoString returns the string representation.
  2653  //
  2654  // API parameter values that are decorated as "sensitive" in the API will not
  2655  // be included in the string output. The member name will be present, but the
  2656  // value will be replaced with "sensitive".
  2657  func (s ChangeMessageVisibilityOutput) GoString() string {
  2658  	return s.String()
  2659  }
  2660  
  2661  type CreateQueueInput struct {
  2662  	_ struct{} `type:"structure"`
  2663  
  2664  	// A map of attributes with their corresponding values.
  2665  	//
  2666  	// The following lists the names, descriptions, and values of the special request
  2667  	// parameters that the CreateQueue action uses:
  2668  	//
  2669  	//    * DelaySeconds – The length of time, in seconds, for which the delivery
  2670  	//    of all messages in the queue is delayed. Valid values: An integer from
  2671  	//    0 to 900 seconds (15 minutes). Default: 0.
  2672  	//
  2673  	//    * MaximumMessageSize – The limit of how many bytes a message can contain
  2674  	//    before Amazon SQS rejects it. Valid values: An integer from 1,024 bytes
  2675  	//    (1 KiB) to 262,144 bytes (256 KiB). Default: 262,144 (256 KiB).
  2676  	//
  2677  	//    * MessageRetentionPeriod – The length of time, in seconds, for which
  2678  	//    Amazon SQS retains a message. Valid values: An integer from 60 seconds
  2679  	//    (1 minute) to 1,209,600 seconds (14 days). Default: 345,600 (4 days).
  2680  	//
  2681  	//    * Policy – The queue's policy. A valid Amazon Web Services policy. For
  2682  	//    more information about policy structure, see Overview of Amazon Web Services
  2683  	//    IAM Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html)
  2684  	//    in the Amazon IAM User Guide.
  2685  	//
  2686  	//    * ReceiveMessageWaitTimeSeconds – The length of time, in seconds, for
  2687  	//    which a ReceiveMessage action waits for a message to arrive. Valid values:
  2688  	//    An integer from 0 to 20 (seconds). Default: 0.
  2689  	//
  2690  	//    * VisibilityTimeout – The visibility timeout for the queue, in seconds.
  2691  	//    Valid values: An integer from 0 to 43,200 (12 hours). Default: 30. For
  2692  	//    more information about the visibility timeout, see Visibility Timeout
  2693  	//    (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html)
  2694  	//    in the Amazon SQS Developer Guide.
  2695  	//
  2696  	// The following attributes apply only to dead-letter queues: (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html)
  2697  	//
  2698  	//    * RedrivePolicy – The string that includes the parameters for the dead-letter
  2699  	//    queue functionality of the source queue as a JSON object. The parameters
  2700  	//    are as follows: deadLetterTargetArn – The Amazon Resource Name (ARN)
  2701  	//    of the dead-letter queue to which Amazon SQS moves messages after the
  2702  	//    value of maxReceiveCount is exceeded. maxReceiveCount – The number of
  2703  	//    times a message is delivered to the source queue before being moved to
  2704  	//    the dead-letter queue. When the ReceiveCount for a message exceeds the
  2705  	//    maxReceiveCount for a queue, Amazon SQS moves the message to the dead-letter-queue.
  2706  	//
  2707  	//    * RedriveAllowPolicy – The string that includes the parameters for the
  2708  	//    permissions for the dead-letter queue redrive permission and which source
  2709  	//    queues can specify dead-letter queues as a JSON object. The parameters
  2710  	//    are as follows: redrivePermission – The permission type that defines
  2711  	//    which source queues can specify the current queue as the dead-letter queue.
  2712  	//    Valid values are: allowAll – (Default) Any source queues in this Amazon
  2713  	//    Web Services account in the same Region can specify this queue as the
  2714  	//    dead-letter queue. denyAll – No source queues can specify this queue
  2715  	//    as the dead-letter queue. byQueue – Only queues specified by the sourceQueueArns
  2716  	//    parameter can specify this queue as the dead-letter queue. sourceQueueArns
  2717  	//    – The Amazon Resource Names (ARN)s of the source queues that can specify
  2718  	//    this queue as the dead-letter queue and redrive messages. You can specify
  2719  	//    this parameter only when the redrivePermission parameter is set to byQueue.
  2720  	//    You can specify up to 10 source queue ARNs. To allow more than 10 source
  2721  	//    queues to specify dead-letter queues, set the redrivePermission parameter
  2722  	//    to allowAll.
  2723  	//
  2724  	// The dead-letter queue of a FIFO queue must also be a FIFO queue. Similarly,
  2725  	// the dead-letter queue of a standard queue must also be a standard queue.
  2726  	//
  2727  	// The following attributes apply only to server-side-encryption (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html):
  2728  	//
  2729  	//    * KmsMasterKeyId – The ID of an Amazon Web Services managed customer
  2730  	//    master key (CMK) for Amazon SQS or a custom CMK. For more information,
  2731  	//    see Key Terms (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-sse-key-terms).
  2732  	//    While the alias of the Amazon Web Services managed CMK for Amazon SQS
  2733  	//    is always alias/aws/sqs, the alias of a custom CMK can, for example, be
  2734  	//    alias/MyAlias . For more examples, see KeyId (https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters)
  2735  	//    in the Key Management Service API Reference.
  2736  	//
  2737  	//    * KmsDataKeyReusePeriodSeconds – The length of time, in seconds, for
  2738  	//    which Amazon SQS can reuse a data key (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys)
  2739  	//    to encrypt or decrypt messages before calling KMS again. An integer representing
  2740  	//    seconds, between 60 seconds (1 minute) and 86,400 seconds (24 hours).
  2741  	//    Default: 300 (5 minutes). A shorter time period provides better security
  2742  	//    but results in more calls to KMS which might incur charges after Free
  2743  	//    Tier. For more information, see How Does the Data Key Reuse Period Work?
  2744  	//    (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-how-does-the-data-key-reuse-period-work).
  2745  	//
  2746  	// The following attributes apply only to FIFO (first-in-first-out) queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html):
  2747  	//
  2748  	//    * FifoQueue – Designates a queue as FIFO. Valid values are true and
  2749  	//    false. If you don't specify the FifoQueue attribute, Amazon SQS creates
  2750  	//    a standard queue. You can provide this attribute only during queue creation.
  2751  	//    You can't change it for an existing queue. When you set this attribute,
  2752  	//    you must also provide the MessageGroupId for your messages explicitly.
  2753  	//    For more information, see FIFO queue logic (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-understanding-logic.html)
  2754  	//    in the Amazon SQS Developer Guide.
  2755  	//
  2756  	//    * ContentBasedDeduplication – Enables content-based deduplication. Valid
  2757  	//    values are true and false. For more information, see Exactly-once processing
  2758  	//    (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-exactly-once-processing.html)
  2759  	//    in the Amazon SQS Developer Guide. Note the following: Every message must
  2760  	//    have a unique MessageDeduplicationId. You may provide a MessageDeduplicationId
  2761  	//    explicitly. If you aren't able to provide a MessageDeduplicationId and
  2762  	//    you enable ContentBasedDeduplication for your queue, Amazon SQS uses a
  2763  	//    SHA-256 hash to generate the MessageDeduplicationId using the body of
  2764  	//    the message (but not the attributes of the message). If you don't provide
  2765  	//    a MessageDeduplicationId and the queue doesn't have ContentBasedDeduplication
  2766  	//    set, the action fails with an error. If the queue has ContentBasedDeduplication
  2767  	//    set, your MessageDeduplicationId overrides the generated one. When ContentBasedDeduplication
  2768  	//    is in effect, messages with identical content sent within the deduplication
  2769  	//    interval are treated as duplicates and only one copy of the message is
  2770  	//    delivered. If you send one message with ContentBasedDeduplication enabled
  2771  	//    and then another message with a MessageDeduplicationId that is the same
  2772  	//    as the one generated for the first MessageDeduplicationId, the two messages
  2773  	//    are treated as duplicates and only one copy of the message is delivered.
  2774  	//
  2775  	// The following attributes apply only to high throughput for FIFO queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/high-throughput-fifo.html):
  2776  	//
  2777  	//    * DeduplicationScope – Specifies whether message deduplication occurs
  2778  	//    at the message group or queue level. Valid values are messageGroup and
  2779  	//    queue.
  2780  	//
  2781  	//    * FifoThroughputLimit – Specifies whether the FIFO queue throughput
  2782  	//    quota applies to the entire queue or per message group. Valid values are
  2783  	//    perQueue and perMessageGroupId. The perMessageGroupId value is allowed
  2784  	//    only when the value for DeduplicationScope is messageGroup.
  2785  	//
  2786  	// To enable high throughput for FIFO queues, do the following:
  2787  	//
  2788  	//    * Set DeduplicationScope to messageGroup.
  2789  	//
  2790  	//    * Set FifoThroughputLimit to perMessageGroupId.
  2791  	//
  2792  	// If you set these attributes to anything other than the values shown for enabling
  2793  	// high throughput, normal throughput is in effect and deduplication occurs
  2794  	// as specified.
  2795  	//
  2796  	// For information on throughput quotas, see Quotas related to messages (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-messages.html)
  2797  	// in the Amazon SQS Developer Guide.
  2798  	Attributes map[string]*string `locationName:"Attribute" locationNameKey:"Name" locationNameValue:"Value" type:"map" flattened:"true"`
  2799  
  2800  	// The name of the new queue. The following limits apply to this name:
  2801  	//
  2802  	//    * A queue name can have up to 80 characters.
  2803  	//
  2804  	//    * Valid values: alphanumeric characters, hyphens (-), and underscores
  2805  	//    (_).
  2806  	//
  2807  	//    * A FIFO queue name must end with the .fifo suffix.
  2808  	//
  2809  	// Queue URLs and names are case-sensitive.
  2810  	//
  2811  	// QueueName is a required field
  2812  	QueueName *string `type:"string" required:"true"`
  2813  
  2814  	// Add cost allocation tags to the specified Amazon SQS queue. For an overview,
  2815  	// see Tagging Your Amazon SQS Queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-tags.html)
  2816  	// in the Amazon SQS Developer Guide.
  2817  	//
  2818  	// When you use queue tags, keep the following guidelines in mind:
  2819  	//
  2820  	//    * Adding more than 50 tags to a queue isn't recommended.
  2821  	//
  2822  	//    * Tags don't have any semantic meaning. Amazon SQS interprets tags as
  2823  	//    character strings.
  2824  	//
  2825  	//    * Tags are case-sensitive.
  2826  	//
  2827  	//    * A new tag with a key identical to that of an existing tag overwrites
  2828  	//    the existing tag.
  2829  	//
  2830  	// For a full list of tag restrictions, see Quotas related to queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-limits.html#limits-queues)
  2831  	// in the Amazon SQS Developer Guide.
  2832  	//
  2833  	// To be able to tag a queue on creation, you must have the sqs:CreateQueue
  2834  	// and sqs:TagQueue permissions.
  2835  	//
  2836  	// Cross-account permissions don't apply to this action. For more information,
  2837  	// see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name)
  2838  	// in the Amazon SQS Developer Guide.
  2839  	Tags map[string]*string `locationName:"Tag" locationNameKey:"Key" locationNameValue:"Value" type:"map" flattened:"true"`
  2840  }
  2841  
  2842  // String returns the string representation.
  2843  //
  2844  // API parameter values that are decorated as "sensitive" in the API will not
  2845  // be included in the string output. The member name will be present, but the
  2846  // value will be replaced with "sensitive".
  2847  func (s CreateQueueInput) String() string {
  2848  	return awsutil.Prettify(s)
  2849  }
  2850  
  2851  // GoString returns the string representation.
  2852  //
  2853  // API parameter values that are decorated as "sensitive" in the API will not
  2854  // be included in the string output. The member name will be present, but the
  2855  // value will be replaced with "sensitive".
  2856  func (s CreateQueueInput) GoString() string {
  2857  	return s.String()
  2858  }
  2859  
  2860  // Validate inspects the fields of the type to determine if they are valid.
  2861  func (s *CreateQueueInput) Validate() error {
  2862  	invalidParams := request.ErrInvalidParams{Context: "CreateQueueInput"}
  2863  	if s.QueueName == nil {
  2864  		invalidParams.Add(request.NewErrParamRequired("QueueName"))
  2865  	}
  2866  
  2867  	if invalidParams.Len() > 0 {
  2868  		return invalidParams
  2869  	}
  2870  	return nil
  2871  }
  2872  
  2873  // SetAttributes sets the Attributes field's value.
  2874  func (s *CreateQueueInput) SetAttributes(v map[string]*string) *CreateQueueInput {
  2875  	s.Attributes = v
  2876  	return s
  2877  }
  2878  
  2879  // SetQueueName sets the QueueName field's value.
  2880  func (s *CreateQueueInput) SetQueueName(v string) *CreateQueueInput {
  2881  	s.QueueName = &v
  2882  	return s
  2883  }
  2884  
  2885  // SetTags sets the Tags field's value.
  2886  func (s *CreateQueueInput) SetTags(v map[string]*string) *CreateQueueInput {
  2887  	s.Tags = v
  2888  	return s
  2889  }
  2890  
  2891  // Returns the QueueUrl attribute of the created queue.
  2892  type CreateQueueOutput struct {
  2893  	_ struct{} `type:"structure"`
  2894  
  2895  	// The URL of the created Amazon SQS queue.
  2896  	QueueUrl *string `type:"string"`
  2897  }
  2898  
  2899  // String returns the string representation.
  2900  //
  2901  // API parameter values that are decorated as "sensitive" in the API will not
  2902  // be included in the string output. The member name will be present, but the
  2903  // value will be replaced with "sensitive".
  2904  func (s CreateQueueOutput) String() string {
  2905  	return awsutil.Prettify(s)
  2906  }
  2907  
  2908  // GoString returns the string representation.
  2909  //
  2910  // API parameter values that are decorated as "sensitive" in the API will not
  2911  // be included in the string output. The member name will be present, but the
  2912  // value will be replaced with "sensitive".
  2913  func (s CreateQueueOutput) GoString() string {
  2914  	return s.String()
  2915  }
  2916  
  2917  // SetQueueUrl sets the QueueUrl field's value.
  2918  func (s *CreateQueueOutput) SetQueueUrl(v string) *CreateQueueOutput {
  2919  	s.QueueUrl = &v
  2920  	return s
  2921  }
  2922  
  2923  type DeleteMessageBatchInput struct {
  2924  	_ struct{} `type:"structure"`
  2925  
  2926  	// A list of receipt handles for the messages to be deleted.
  2927  	//
  2928  	// Entries is a required field
  2929  	Entries []*DeleteMessageBatchRequestEntry `locationNameList:"DeleteMessageBatchRequestEntry" type:"list" flattened:"true" required:"true"`
  2930  
  2931  	// The URL of the Amazon SQS queue from which messages are deleted.
  2932  	//
  2933  	// Queue URLs and names are case-sensitive.
  2934  	//
  2935  	// QueueUrl is a required field
  2936  	QueueUrl *string `type:"string" required:"true"`
  2937  }
  2938  
  2939  // String returns the string representation.
  2940  //
  2941  // API parameter values that are decorated as "sensitive" in the API will not
  2942  // be included in the string output. The member name will be present, but the
  2943  // value will be replaced with "sensitive".
  2944  func (s DeleteMessageBatchInput) String() string {
  2945  	return awsutil.Prettify(s)
  2946  }
  2947  
  2948  // GoString returns the string representation.
  2949  //
  2950  // API parameter values that are decorated as "sensitive" in the API will not
  2951  // be included in the string output. The member name will be present, but the
  2952  // value will be replaced with "sensitive".
  2953  func (s DeleteMessageBatchInput) GoString() string {
  2954  	return s.String()
  2955  }
  2956  
  2957  // Validate inspects the fields of the type to determine if they are valid.
  2958  func (s *DeleteMessageBatchInput) Validate() error {
  2959  	invalidParams := request.ErrInvalidParams{Context: "DeleteMessageBatchInput"}
  2960  	if s.Entries == nil {
  2961  		invalidParams.Add(request.NewErrParamRequired("Entries"))
  2962  	}
  2963  	if s.QueueUrl == nil {
  2964  		invalidParams.Add(request.NewErrParamRequired("QueueUrl"))
  2965  	}
  2966  	if s.Entries != nil {
  2967  		for i, v := range s.Entries {
  2968  			if v == nil {
  2969  				continue
  2970  			}
  2971  			if err := v.Validate(); err != nil {
  2972  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Entries", i), err.(request.ErrInvalidParams))
  2973  			}
  2974  		}
  2975  	}
  2976  
  2977  	if invalidParams.Len() > 0 {
  2978  		return invalidParams
  2979  	}
  2980  	return nil
  2981  }
  2982  
  2983  // SetEntries sets the Entries field's value.
  2984  func (s *DeleteMessageBatchInput) SetEntries(v []*DeleteMessageBatchRequestEntry) *DeleteMessageBatchInput {
  2985  	s.Entries = v
  2986  	return s
  2987  }
  2988  
  2989  // SetQueueUrl sets the QueueUrl field's value.
  2990  func (s *DeleteMessageBatchInput) SetQueueUrl(v string) *DeleteMessageBatchInput {
  2991  	s.QueueUrl = &v
  2992  	return s
  2993  }
  2994  
  2995  // For each message in the batch, the response contains a DeleteMessageBatchResultEntry
  2996  // tag if the message is deleted or a BatchResultErrorEntry tag if the message
  2997  // can't be deleted.
  2998  type DeleteMessageBatchOutput struct {
  2999  	_ struct{} `type:"structure"`
  3000  
  3001  	// A list of BatchResultErrorEntry items.
  3002  	//
  3003  	// Failed is a required field
  3004  	Failed []*BatchResultErrorEntry `locationNameList:"BatchResultErrorEntry" type:"list" flattened:"true" required:"true"`
  3005  
  3006  	// A list of DeleteMessageBatchResultEntry items.
  3007  	//
  3008  	// Successful is a required field
  3009  	Successful []*DeleteMessageBatchResultEntry `locationNameList:"DeleteMessageBatchResultEntry" type:"list" flattened:"true" required:"true"`
  3010  }
  3011  
  3012  // String returns the string representation.
  3013  //
  3014  // API parameter values that are decorated as "sensitive" in the API will not
  3015  // be included in the string output. The member name will be present, but the
  3016  // value will be replaced with "sensitive".
  3017  func (s DeleteMessageBatchOutput) String() string {
  3018  	return awsutil.Prettify(s)
  3019  }
  3020  
  3021  // GoString returns the string representation.
  3022  //
  3023  // API parameter values that are decorated as "sensitive" in the API will not
  3024  // be included in the string output. The member name will be present, but the
  3025  // value will be replaced with "sensitive".
  3026  func (s DeleteMessageBatchOutput) GoString() string {
  3027  	return s.String()
  3028  }
  3029  
  3030  // SetFailed sets the Failed field's value.
  3031  func (s *DeleteMessageBatchOutput) SetFailed(v []*BatchResultErrorEntry) *DeleteMessageBatchOutput {
  3032  	s.Failed = v
  3033  	return s
  3034  }
  3035  
  3036  // SetSuccessful sets the Successful field's value.
  3037  func (s *DeleteMessageBatchOutput) SetSuccessful(v []*DeleteMessageBatchResultEntry) *DeleteMessageBatchOutput {
  3038  	s.Successful = v
  3039  	return s
  3040  }
  3041  
  3042  // Encloses a receipt handle and an identifier for it.
  3043  type DeleteMessageBatchRequestEntry struct {
  3044  	_ struct{} `type:"structure"`
  3045  
  3046  	// An identifier for this particular receipt handle. This is used to communicate
  3047  	// the result.
  3048  	//
  3049  	// The Ids of a batch request need to be unique within a request.
  3050  	//
  3051  	// This identifier can have up to 80 characters. The following characters are
  3052  	// accepted: alphanumeric characters, hyphens(-), and underscores (_).
  3053  	//
  3054  	// Id is a required field
  3055  	Id *string `type:"string" required:"true"`
  3056  
  3057  	// A receipt handle.
  3058  	//
  3059  	// ReceiptHandle is a required field
  3060  	ReceiptHandle *string `type:"string" required:"true"`
  3061  }
  3062  
  3063  // String returns the string representation.
  3064  //
  3065  // API parameter values that are decorated as "sensitive" in the API will not
  3066  // be included in the string output. The member name will be present, but the
  3067  // value will be replaced with "sensitive".
  3068  func (s DeleteMessageBatchRequestEntry) String() string {
  3069  	return awsutil.Prettify(s)
  3070  }
  3071  
  3072  // GoString returns the string representation.
  3073  //
  3074  // API parameter values that are decorated as "sensitive" in the API will not
  3075  // be included in the string output. The member name will be present, but the
  3076  // value will be replaced with "sensitive".
  3077  func (s DeleteMessageBatchRequestEntry) GoString() string {
  3078  	return s.String()
  3079  }
  3080  
  3081  // Validate inspects the fields of the type to determine if they are valid.
  3082  func (s *DeleteMessageBatchRequestEntry) Validate() error {
  3083  	invalidParams := request.ErrInvalidParams{Context: "DeleteMessageBatchRequestEntry"}
  3084  	if s.Id == nil {
  3085  		invalidParams.Add(request.NewErrParamRequired("Id"))
  3086  	}
  3087  	if s.ReceiptHandle == nil {
  3088  		invalidParams.Add(request.NewErrParamRequired("ReceiptHandle"))
  3089  	}
  3090  
  3091  	if invalidParams.Len() > 0 {
  3092  		return invalidParams
  3093  	}
  3094  	return nil
  3095  }
  3096  
  3097  // SetId sets the Id field's value.
  3098  func (s *DeleteMessageBatchRequestEntry) SetId(v string) *DeleteMessageBatchRequestEntry {
  3099  	s.Id = &v
  3100  	return s
  3101  }
  3102  
  3103  // SetReceiptHandle sets the ReceiptHandle field's value.
  3104  func (s *DeleteMessageBatchRequestEntry) SetReceiptHandle(v string) *DeleteMessageBatchRequestEntry {
  3105  	s.ReceiptHandle = &v
  3106  	return s
  3107  }
  3108  
  3109  // Encloses the Id of an entry in DeleteMessageBatch.
  3110  type DeleteMessageBatchResultEntry struct {
  3111  	_ struct{} `type:"structure"`
  3112  
  3113  	// Represents a successfully deleted message.
  3114  	//
  3115  	// Id is a required field
  3116  	Id *string `type:"string" required:"true"`
  3117  }
  3118  
  3119  // String returns the string representation.
  3120  //
  3121  // API parameter values that are decorated as "sensitive" in the API will not
  3122  // be included in the string output. The member name will be present, but the
  3123  // value will be replaced with "sensitive".
  3124  func (s DeleteMessageBatchResultEntry) String() string {
  3125  	return awsutil.Prettify(s)
  3126  }
  3127  
  3128  // GoString returns the string representation.
  3129  //
  3130  // API parameter values that are decorated as "sensitive" in the API will not
  3131  // be included in the string output. The member name will be present, but the
  3132  // value will be replaced with "sensitive".
  3133  func (s DeleteMessageBatchResultEntry) GoString() string {
  3134  	return s.String()
  3135  }
  3136  
  3137  // SetId sets the Id field's value.
  3138  func (s *DeleteMessageBatchResultEntry) SetId(v string) *DeleteMessageBatchResultEntry {
  3139  	s.Id = &v
  3140  	return s
  3141  }
  3142  
  3143  type DeleteMessageInput struct {
  3144  	_ struct{} `type:"structure"`
  3145  
  3146  	// The URL of the Amazon SQS queue from which messages are deleted.
  3147  	//
  3148  	// Queue URLs and names are case-sensitive.
  3149  	//
  3150  	// QueueUrl is a required field
  3151  	QueueUrl *string `type:"string" required:"true"`
  3152  
  3153  	// The receipt handle associated with the message to delete.
  3154  	//
  3155  	// ReceiptHandle is a required field
  3156  	ReceiptHandle *string `type:"string" required:"true"`
  3157  }
  3158  
  3159  // String returns the string representation.
  3160  //
  3161  // API parameter values that are decorated as "sensitive" in the API will not
  3162  // be included in the string output. The member name will be present, but the
  3163  // value will be replaced with "sensitive".
  3164  func (s DeleteMessageInput) String() string {
  3165  	return awsutil.Prettify(s)
  3166  }
  3167  
  3168  // GoString returns the string representation.
  3169  //
  3170  // API parameter values that are decorated as "sensitive" in the API will not
  3171  // be included in the string output. The member name will be present, but the
  3172  // value will be replaced with "sensitive".
  3173  func (s DeleteMessageInput) GoString() string {
  3174  	return s.String()
  3175  }
  3176  
  3177  // Validate inspects the fields of the type to determine if they are valid.
  3178  func (s *DeleteMessageInput) Validate() error {
  3179  	invalidParams := request.ErrInvalidParams{Context: "DeleteMessageInput"}
  3180  	if s.QueueUrl == nil {
  3181  		invalidParams.Add(request.NewErrParamRequired("QueueUrl"))
  3182  	}
  3183  	if s.ReceiptHandle == nil {
  3184  		invalidParams.Add(request.NewErrParamRequired("ReceiptHandle"))
  3185  	}
  3186  
  3187  	if invalidParams.Len() > 0 {
  3188  		return invalidParams
  3189  	}
  3190  	return nil
  3191  }
  3192  
  3193  // SetQueueUrl sets the QueueUrl field's value.
  3194  func (s *DeleteMessageInput) SetQueueUrl(v string) *DeleteMessageInput {
  3195  	s.QueueUrl = &v
  3196  	return s
  3197  }
  3198  
  3199  // SetReceiptHandle sets the ReceiptHandle field's value.
  3200  func (s *DeleteMessageInput) SetReceiptHandle(v string) *DeleteMessageInput {
  3201  	s.ReceiptHandle = &v
  3202  	return s
  3203  }
  3204  
  3205  type DeleteMessageOutput struct {
  3206  	_ struct{} `type:"structure"`
  3207  }
  3208  
  3209  // String returns the string representation.
  3210  //
  3211  // API parameter values that are decorated as "sensitive" in the API will not
  3212  // be included in the string output. The member name will be present, but the
  3213  // value will be replaced with "sensitive".
  3214  func (s DeleteMessageOutput) String() string {
  3215  	return awsutil.Prettify(s)
  3216  }
  3217  
  3218  // GoString returns the string representation.
  3219  //
  3220  // API parameter values that are decorated as "sensitive" in the API will not
  3221  // be included in the string output. The member name will be present, but the
  3222  // value will be replaced with "sensitive".
  3223  func (s DeleteMessageOutput) GoString() string {
  3224  	return s.String()
  3225  }
  3226  
  3227  type DeleteQueueInput struct {
  3228  	_ struct{} `type:"structure"`
  3229  
  3230  	// The URL of the Amazon SQS queue to delete.
  3231  	//
  3232  	// Queue URLs and names are case-sensitive.
  3233  	//
  3234  	// QueueUrl is a required field
  3235  	QueueUrl *string `type:"string" required:"true"`
  3236  }
  3237  
  3238  // String returns the string representation.
  3239  //
  3240  // API parameter values that are decorated as "sensitive" in the API will not
  3241  // be included in the string output. The member name will be present, but the
  3242  // value will be replaced with "sensitive".
  3243  func (s DeleteQueueInput) String() string {
  3244  	return awsutil.Prettify(s)
  3245  }
  3246  
  3247  // GoString returns the string representation.
  3248  //
  3249  // API parameter values that are decorated as "sensitive" in the API will not
  3250  // be included in the string output. The member name will be present, but the
  3251  // value will be replaced with "sensitive".
  3252  func (s DeleteQueueInput) GoString() string {
  3253  	return s.String()
  3254  }
  3255  
  3256  // Validate inspects the fields of the type to determine if they are valid.
  3257  func (s *DeleteQueueInput) Validate() error {
  3258  	invalidParams := request.ErrInvalidParams{Context: "DeleteQueueInput"}
  3259  	if s.QueueUrl == nil {
  3260  		invalidParams.Add(request.NewErrParamRequired("QueueUrl"))
  3261  	}
  3262  
  3263  	if invalidParams.Len() > 0 {
  3264  		return invalidParams
  3265  	}
  3266  	return nil
  3267  }
  3268  
  3269  // SetQueueUrl sets the QueueUrl field's value.
  3270  func (s *DeleteQueueInput) SetQueueUrl(v string) *DeleteQueueInput {
  3271  	s.QueueUrl = &v
  3272  	return s
  3273  }
  3274  
  3275  type DeleteQueueOutput struct {
  3276  	_ struct{} `type:"structure"`
  3277  }
  3278  
  3279  // String returns the string representation.
  3280  //
  3281  // API parameter values that are decorated as "sensitive" in the API will not
  3282  // be included in the string output. The member name will be present, but the
  3283  // value will be replaced with "sensitive".
  3284  func (s DeleteQueueOutput) String() string {
  3285  	return awsutil.Prettify(s)
  3286  }
  3287  
  3288  // GoString returns the string representation.
  3289  //
  3290  // API parameter values that are decorated as "sensitive" in the API will not
  3291  // be included in the string output. The member name will be present, but the
  3292  // value will be replaced with "sensitive".
  3293  func (s DeleteQueueOutput) GoString() string {
  3294  	return s.String()
  3295  }
  3296  
  3297  type GetQueueAttributesInput struct {
  3298  	_ struct{} `type:"structure"`
  3299  
  3300  	// A list of attributes for which to retrieve information.
  3301  	//
  3302  	// The AttributeName.N parameter is optional, but if you don't specify values
  3303  	// for this parameter, the request returns empty results.
  3304  	//
  3305  	// In the future, new attributes might be added. If you write code that calls
  3306  	// this action, we recommend that you structure your code so that it can handle
  3307  	// new attributes gracefully.
  3308  	//
  3309  	// The following attributes are supported:
  3310  	//
  3311  	// The ApproximateNumberOfMessagesDelayed, ApproximateNumberOfMessagesNotVisible,
  3312  	// and ApproximateNumberOfMessagesVisible metrics may not achieve consistency
  3313  	// until at least 1 minute after the producers stop sending messages. This period
  3314  	// is required for the queue metadata to reach eventual consistency.
  3315  	//
  3316  	//    * All – Returns all values.
  3317  	//
  3318  	//    * ApproximateNumberOfMessages – Returns the approximate number of messages
  3319  	//    available for retrieval from the queue.
  3320  	//
  3321  	//    * ApproximateNumberOfMessagesDelayed – Returns the approximate number
  3322  	//    of messages in the queue that are delayed and not available for reading
  3323  	//    immediately. This can happen when the queue is configured as a delay queue
  3324  	//    or when a message has been sent with a delay parameter.
  3325  	//
  3326  	//    * ApproximateNumberOfMessagesNotVisible – Returns the approximate number
  3327  	//    of messages that are in flight. Messages are considered to be in flight
  3328  	//    if they have been sent to a client but have not yet been deleted or have
  3329  	//    not yet reached the end of their visibility window.
  3330  	//
  3331  	//    * CreatedTimestamp – Returns the time when the queue was created in
  3332  	//    seconds (epoch time (http://en.wikipedia.org/wiki/Unix_time)).
  3333  	//
  3334  	//    * DelaySeconds – Returns the default delay on the queue in seconds.
  3335  	//
  3336  	//    * LastModifiedTimestamp – Returns the time when the queue was last changed
  3337  	//    in seconds (epoch time (http://en.wikipedia.org/wiki/Unix_time)).
  3338  	//
  3339  	//    * MaximumMessageSize – Returns the limit of how many bytes a message
  3340  	//    can contain before Amazon SQS rejects it.
  3341  	//
  3342  	//    * MessageRetentionPeriod – Returns the length of time, in seconds, for
  3343  	//    which Amazon SQS retains a message.
  3344  	//
  3345  	//    * Policy – Returns the policy of the queue.
  3346  	//
  3347  	//    * QueueArn – Returns the Amazon resource name (ARN) of the queue.
  3348  	//
  3349  	//    * ReceiveMessageWaitTimeSeconds – Returns the length of time, in seconds,
  3350  	//    for which the ReceiveMessage action waits for a message to arrive.
  3351  	//
  3352  	//    * VisibilityTimeout – Returns the visibility timeout for the queue.
  3353  	//    For more information about the visibility timeout, see Visibility Timeout
  3354  	//    (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html)
  3355  	//    in the Amazon SQS Developer Guide.
  3356  	//
  3357  	// The following attributes apply only to dead-letter queues: (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html)
  3358  	//
  3359  	//    * RedrivePolicy – The string that includes the parameters for the dead-letter
  3360  	//    queue functionality of the source queue as a JSON object. The parameters
  3361  	//    are as follows: deadLetterTargetArn – The Amazon Resource Name (ARN)
  3362  	//    of the dead-letter queue to which Amazon SQS moves messages after the
  3363  	//    value of maxReceiveCount is exceeded. maxReceiveCount – The number of
  3364  	//    times a message is delivered to the source queue before being moved to
  3365  	//    the dead-letter queue. When the ReceiveCount for a message exceeds the
  3366  	//    maxReceiveCount for a queue, Amazon SQS moves the message to the dead-letter-queue.
  3367  	//
  3368  	//    * RedriveAllowPolicy – The string that includes the parameters for the
  3369  	//    permissions for the dead-letter queue redrive permission and which source
  3370  	//    queues can specify dead-letter queues as a JSON object. The parameters
  3371  	//    are as follows: redrivePermission – The permission type that defines
  3372  	//    which source queues can specify the current queue as the dead-letter queue.
  3373  	//    Valid values are: allowAll – (Default) Any source queues in this Amazon
  3374  	//    Web Services account in the same Region can specify this queue as the
  3375  	//    dead-letter queue. denyAll – No source queues can specify this queue
  3376  	//    as the dead-letter queue. byQueue – Only queues specified by the sourceQueueArns
  3377  	//    parameter can specify this queue as the dead-letter queue. sourceQueueArns
  3378  	//    – The Amazon Resource Names (ARN)s of the source queues that can specify
  3379  	//    this queue as the dead-letter queue and redrive messages. You can specify
  3380  	//    this parameter only when the redrivePermission parameter is set to byQueue.
  3381  	//    You can specify up to 10 source queue ARNs. To allow more than 10 source
  3382  	//    queues to specify dead-letter queues, set the redrivePermission parameter
  3383  	//    to allowAll.
  3384  	//
  3385  	// The dead-letter queue of a FIFO queue must also be a FIFO queue. Similarly,
  3386  	// the dead-letter queue of a standard queue must also be a standard queue.
  3387  	//
  3388  	// The following attributes apply only to server-side-encryption (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html):
  3389  	//
  3390  	//    * KmsMasterKeyId – Returns the ID of an Amazon Web Services managed
  3391  	//    customer master key (CMK) for Amazon SQS or a custom CMK. For more information,
  3392  	//    see Key Terms (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-sse-key-terms).
  3393  	//
  3394  	//    * KmsDataKeyReusePeriodSeconds – Returns the length of time, in seconds,
  3395  	//    for which Amazon SQS can reuse a data key to encrypt or decrypt messages
  3396  	//    before calling KMS again. For more information, see How Does the Data
  3397  	//    Key Reuse Period Work? (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-how-does-the-data-key-reuse-period-work).
  3398  	//
  3399  	// The following attributes apply only to FIFO (first-in-first-out) queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html):
  3400  	//
  3401  	//    * FifoQueue – Returns information about whether the queue is FIFO. For
  3402  	//    more information, see FIFO queue logic (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-understanding-logic.html)
  3403  	//    in the Amazon SQS Developer Guide. To determine whether a queue is FIFO
  3404  	//    (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html),
  3405  	//    you can check whether QueueName ends with the .fifo suffix.
  3406  	//
  3407  	//    * ContentBasedDeduplication – Returns whether content-based deduplication
  3408  	//    is enabled for the queue. For more information, see Exactly-once processing
  3409  	//    (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-exactly-once-processing.html)
  3410  	//    in the Amazon SQS Developer Guide.
  3411  	//
  3412  	// The following attributes apply only to high throughput for FIFO queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/high-throughput-fifo.html):
  3413  	//
  3414  	//    * DeduplicationScope – Specifies whether message deduplication occurs
  3415  	//    at the message group or queue level. Valid values are messageGroup and
  3416  	//    queue.
  3417  	//
  3418  	//    * FifoThroughputLimit – Specifies whether the FIFO queue throughput
  3419  	//    quota applies to the entire queue or per message group. Valid values are
  3420  	//    perQueue and perMessageGroupId. The perMessageGroupId value is allowed
  3421  	//    only when the value for DeduplicationScope is messageGroup.
  3422  	//
  3423  	// To enable high throughput for FIFO queues, do the following:
  3424  	//
  3425  	//    * Set DeduplicationScope to messageGroup.
  3426  	//
  3427  	//    * Set FifoThroughputLimit to perMessageGroupId.
  3428  	//
  3429  	// If you set these attributes to anything other than the values shown for enabling
  3430  	// high throughput, normal throughput is in effect and deduplication occurs
  3431  	// as specified.
  3432  	//
  3433  	// For information on throughput quotas, see Quotas related to messages (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-messages.html)
  3434  	// in the Amazon SQS Developer Guide.
  3435  	AttributeNames []*string `locationNameList:"AttributeName" type:"list" flattened:"true"`
  3436  
  3437  	// The URL of the Amazon SQS queue whose attribute information is retrieved.
  3438  	//
  3439  	// Queue URLs and names are case-sensitive.
  3440  	//
  3441  	// QueueUrl is a required field
  3442  	QueueUrl *string `type:"string" required:"true"`
  3443  }
  3444  
  3445  // String returns the string representation.
  3446  //
  3447  // API parameter values that are decorated as "sensitive" in the API will not
  3448  // be included in the string output. The member name will be present, but the
  3449  // value will be replaced with "sensitive".
  3450  func (s GetQueueAttributesInput) String() string {
  3451  	return awsutil.Prettify(s)
  3452  }
  3453  
  3454  // GoString returns the string representation.
  3455  //
  3456  // API parameter values that are decorated as "sensitive" in the API will not
  3457  // be included in the string output. The member name will be present, but the
  3458  // value will be replaced with "sensitive".
  3459  func (s GetQueueAttributesInput) GoString() string {
  3460  	return s.String()
  3461  }
  3462  
  3463  // Validate inspects the fields of the type to determine if they are valid.
  3464  func (s *GetQueueAttributesInput) Validate() error {
  3465  	invalidParams := request.ErrInvalidParams{Context: "GetQueueAttributesInput"}
  3466  	if s.QueueUrl == nil {
  3467  		invalidParams.Add(request.NewErrParamRequired("QueueUrl"))
  3468  	}
  3469  
  3470  	if invalidParams.Len() > 0 {
  3471  		return invalidParams
  3472  	}
  3473  	return nil
  3474  }
  3475  
  3476  // SetAttributeNames sets the AttributeNames field's value.
  3477  func (s *GetQueueAttributesInput) SetAttributeNames(v []*string) *GetQueueAttributesInput {
  3478  	s.AttributeNames = v
  3479  	return s
  3480  }
  3481  
  3482  // SetQueueUrl sets the QueueUrl field's value.
  3483  func (s *GetQueueAttributesInput) SetQueueUrl(v string) *GetQueueAttributesInput {
  3484  	s.QueueUrl = &v
  3485  	return s
  3486  }
  3487  
  3488  // A list of returned queue attributes.
  3489  type GetQueueAttributesOutput struct {
  3490  	_ struct{} `type:"structure"`
  3491  
  3492  	// A map of attributes to their respective values.
  3493  	Attributes map[string]*string `locationName:"Attribute" locationNameKey:"Name" locationNameValue:"Value" type:"map" flattened:"true"`
  3494  }
  3495  
  3496  // String returns the string representation.
  3497  //
  3498  // API parameter values that are decorated as "sensitive" in the API will not
  3499  // be included in the string output. The member name will be present, but the
  3500  // value will be replaced with "sensitive".
  3501  func (s GetQueueAttributesOutput) String() string {
  3502  	return awsutil.Prettify(s)
  3503  }
  3504  
  3505  // GoString returns the string representation.
  3506  //
  3507  // API parameter values that are decorated as "sensitive" in the API will not
  3508  // be included in the string output. The member name will be present, but the
  3509  // value will be replaced with "sensitive".
  3510  func (s GetQueueAttributesOutput) GoString() string {
  3511  	return s.String()
  3512  }
  3513  
  3514  // SetAttributes sets the Attributes field's value.
  3515  func (s *GetQueueAttributesOutput) SetAttributes(v map[string]*string) *GetQueueAttributesOutput {
  3516  	s.Attributes = v
  3517  	return s
  3518  }
  3519  
  3520  type GetQueueUrlInput struct {
  3521  	_ struct{} `type:"structure"`
  3522  
  3523  	// The name of the queue whose URL must be fetched. Maximum 80 characters. Valid
  3524  	// values: alphanumeric characters, hyphens (-), and underscores (_).
  3525  	//
  3526  	// Queue URLs and names are case-sensitive.
  3527  	//
  3528  	// QueueName is a required field
  3529  	QueueName *string `type:"string" required:"true"`
  3530  
  3531  	// The account ID of the account that created the queue.
  3532  	QueueOwnerAWSAccountId *string `type:"string"`
  3533  }
  3534  
  3535  // String returns the string representation.
  3536  //
  3537  // API parameter values that are decorated as "sensitive" in the API will not
  3538  // be included in the string output. The member name will be present, but the
  3539  // value will be replaced with "sensitive".
  3540  func (s GetQueueUrlInput) String() string {
  3541  	return awsutil.Prettify(s)
  3542  }
  3543  
  3544  // GoString returns the string representation.
  3545  //
  3546  // API parameter values that are decorated as "sensitive" in the API will not
  3547  // be included in the string output. The member name will be present, but the
  3548  // value will be replaced with "sensitive".
  3549  func (s GetQueueUrlInput) GoString() string {
  3550  	return s.String()
  3551  }
  3552  
  3553  // Validate inspects the fields of the type to determine if they are valid.
  3554  func (s *GetQueueUrlInput) Validate() error {
  3555  	invalidParams := request.ErrInvalidParams{Context: "GetQueueUrlInput"}
  3556  	if s.QueueName == nil {
  3557  		invalidParams.Add(request.NewErrParamRequired("QueueName"))
  3558  	}
  3559  
  3560  	if invalidParams.Len() > 0 {
  3561  		return invalidParams
  3562  	}
  3563  	return nil
  3564  }
  3565  
  3566  // SetQueueName sets the QueueName field's value.
  3567  func (s *GetQueueUrlInput) SetQueueName(v string) *GetQueueUrlInput {
  3568  	s.QueueName = &v
  3569  	return s
  3570  }
  3571  
  3572  // SetQueueOwnerAWSAccountId sets the QueueOwnerAWSAccountId field's value.
  3573  func (s *GetQueueUrlInput) SetQueueOwnerAWSAccountId(v string) *GetQueueUrlInput {
  3574  	s.QueueOwnerAWSAccountId = &v
  3575  	return s
  3576  }
  3577  
  3578  // For more information, see Interpreting Responses (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-api-responses.html)
  3579  // in the Amazon SQS Developer Guide.
  3580  type GetQueueUrlOutput struct {
  3581  	_ struct{} `type:"structure"`
  3582  
  3583  	// The URL of the queue.
  3584  	QueueUrl *string `type:"string"`
  3585  }
  3586  
  3587  // String returns the string representation.
  3588  //
  3589  // API parameter values that are decorated as "sensitive" in the API will not
  3590  // be included in the string output. The member name will be present, but the
  3591  // value will be replaced with "sensitive".
  3592  func (s GetQueueUrlOutput) String() string {
  3593  	return awsutil.Prettify(s)
  3594  }
  3595  
  3596  // GoString returns the string representation.
  3597  //
  3598  // API parameter values that are decorated as "sensitive" in the API will not
  3599  // be included in the string output. The member name will be present, but the
  3600  // value will be replaced with "sensitive".
  3601  func (s GetQueueUrlOutput) GoString() string {
  3602  	return s.String()
  3603  }
  3604  
  3605  // SetQueueUrl sets the QueueUrl field's value.
  3606  func (s *GetQueueUrlOutput) SetQueueUrl(v string) *GetQueueUrlOutput {
  3607  	s.QueueUrl = &v
  3608  	return s
  3609  }
  3610  
  3611  type ListDeadLetterSourceQueuesInput struct {
  3612  	_ struct{} `type:"structure"`
  3613  
  3614  	// Maximum number of results to include in the response. Value range is 1 to
  3615  	// 1000. You must set MaxResults to receive a value for NextToken in the response.
  3616  	MaxResults *int64 `type:"integer"`
  3617  
  3618  	// Pagination token to request the next set of results.
  3619  	NextToken *string `type:"string"`
  3620  
  3621  	// The URL of a dead-letter queue.
  3622  	//
  3623  	// Queue URLs and names are case-sensitive.
  3624  	//
  3625  	// QueueUrl is a required field
  3626  	QueueUrl *string `type:"string" required:"true"`
  3627  }
  3628  
  3629  // String returns the string representation.
  3630  //
  3631  // API parameter values that are decorated as "sensitive" in the API will not
  3632  // be included in the string output. The member name will be present, but the
  3633  // value will be replaced with "sensitive".
  3634  func (s ListDeadLetterSourceQueuesInput) String() string {
  3635  	return awsutil.Prettify(s)
  3636  }
  3637  
  3638  // GoString returns the string representation.
  3639  //
  3640  // API parameter values that are decorated as "sensitive" in the API will not
  3641  // be included in the string output. The member name will be present, but the
  3642  // value will be replaced with "sensitive".
  3643  func (s ListDeadLetterSourceQueuesInput) GoString() string {
  3644  	return s.String()
  3645  }
  3646  
  3647  // Validate inspects the fields of the type to determine if they are valid.
  3648  func (s *ListDeadLetterSourceQueuesInput) Validate() error {
  3649  	invalidParams := request.ErrInvalidParams{Context: "ListDeadLetterSourceQueuesInput"}
  3650  	if s.QueueUrl == nil {
  3651  		invalidParams.Add(request.NewErrParamRequired("QueueUrl"))
  3652  	}
  3653  
  3654  	if invalidParams.Len() > 0 {
  3655  		return invalidParams
  3656  	}
  3657  	return nil
  3658  }
  3659  
  3660  // SetMaxResults sets the MaxResults field's value.
  3661  func (s *ListDeadLetterSourceQueuesInput) SetMaxResults(v int64) *ListDeadLetterSourceQueuesInput {
  3662  	s.MaxResults = &v
  3663  	return s
  3664  }
  3665  
  3666  // SetNextToken sets the NextToken field's value.
  3667  func (s *ListDeadLetterSourceQueuesInput) SetNextToken(v string) *ListDeadLetterSourceQueuesInput {
  3668  	s.NextToken = &v
  3669  	return s
  3670  }
  3671  
  3672  // SetQueueUrl sets the QueueUrl field's value.
  3673  func (s *ListDeadLetterSourceQueuesInput) SetQueueUrl(v string) *ListDeadLetterSourceQueuesInput {
  3674  	s.QueueUrl = &v
  3675  	return s
  3676  }
  3677  
  3678  // A list of your dead letter source queues.
  3679  type ListDeadLetterSourceQueuesOutput struct {
  3680  	_ struct{} `type:"structure"`
  3681  
  3682  	// Pagination token to include in the next request. Token value is null if there
  3683  	// are no additional results to request, or if you did not set MaxResults in
  3684  	// the request.
  3685  	NextToken *string `type:"string"`
  3686  
  3687  	// A list of source queue URLs that have the RedrivePolicy queue attribute configured
  3688  	// with a dead-letter queue.
  3689  	//
  3690  	// QueueUrls is a required field
  3691  	QueueUrls []*string `locationName:"queueUrls" locationNameList:"QueueUrl" type:"list" flattened:"true" required:"true"`
  3692  }
  3693  
  3694  // String returns the string representation.
  3695  //
  3696  // API parameter values that are decorated as "sensitive" in the API will not
  3697  // be included in the string output. The member name will be present, but the
  3698  // value will be replaced with "sensitive".
  3699  func (s ListDeadLetterSourceQueuesOutput) String() string {
  3700  	return awsutil.Prettify(s)
  3701  }
  3702  
  3703  // GoString returns the string representation.
  3704  //
  3705  // API parameter values that are decorated as "sensitive" in the API will not
  3706  // be included in the string output. The member name will be present, but the
  3707  // value will be replaced with "sensitive".
  3708  func (s ListDeadLetterSourceQueuesOutput) GoString() string {
  3709  	return s.String()
  3710  }
  3711  
  3712  // SetNextToken sets the NextToken field's value.
  3713  func (s *ListDeadLetterSourceQueuesOutput) SetNextToken(v string) *ListDeadLetterSourceQueuesOutput {
  3714  	s.NextToken = &v
  3715  	return s
  3716  }
  3717  
  3718  // SetQueueUrls sets the QueueUrls field's value.
  3719  func (s *ListDeadLetterSourceQueuesOutput) SetQueueUrls(v []*string) *ListDeadLetterSourceQueuesOutput {
  3720  	s.QueueUrls = v
  3721  	return s
  3722  }
  3723  
  3724  type ListQueueTagsInput struct {
  3725  	_ struct{} `type:"structure"`
  3726  
  3727  	// The URL of the queue.
  3728  	//
  3729  	// QueueUrl is a required field
  3730  	QueueUrl *string `type:"string" required:"true"`
  3731  }
  3732  
  3733  // String returns the string representation.
  3734  //
  3735  // API parameter values that are decorated as "sensitive" in the API will not
  3736  // be included in the string output. The member name will be present, but the
  3737  // value will be replaced with "sensitive".
  3738  func (s ListQueueTagsInput) String() string {
  3739  	return awsutil.Prettify(s)
  3740  }
  3741  
  3742  // GoString returns the string representation.
  3743  //
  3744  // API parameter values that are decorated as "sensitive" in the API will not
  3745  // be included in the string output. The member name will be present, but the
  3746  // value will be replaced with "sensitive".
  3747  func (s ListQueueTagsInput) GoString() string {
  3748  	return s.String()
  3749  }
  3750  
  3751  // Validate inspects the fields of the type to determine if they are valid.
  3752  func (s *ListQueueTagsInput) Validate() error {
  3753  	invalidParams := request.ErrInvalidParams{Context: "ListQueueTagsInput"}
  3754  	if s.QueueUrl == nil {
  3755  		invalidParams.Add(request.NewErrParamRequired("QueueUrl"))
  3756  	}
  3757  
  3758  	if invalidParams.Len() > 0 {
  3759  		return invalidParams
  3760  	}
  3761  	return nil
  3762  }
  3763  
  3764  // SetQueueUrl sets the QueueUrl field's value.
  3765  func (s *ListQueueTagsInput) SetQueueUrl(v string) *ListQueueTagsInput {
  3766  	s.QueueUrl = &v
  3767  	return s
  3768  }
  3769  
  3770  type ListQueueTagsOutput struct {
  3771  	_ struct{} `type:"structure"`
  3772  
  3773  	// The list of all tags added to the specified queue.
  3774  	Tags map[string]*string `locationName:"Tag" locationNameKey:"Key" locationNameValue:"Value" type:"map" flattened:"true"`
  3775  }
  3776  
  3777  // String returns the string representation.
  3778  //
  3779  // API parameter values that are decorated as "sensitive" in the API will not
  3780  // be included in the string output. The member name will be present, but the
  3781  // value will be replaced with "sensitive".
  3782  func (s ListQueueTagsOutput) String() string {
  3783  	return awsutil.Prettify(s)
  3784  }
  3785  
  3786  // GoString returns the string representation.
  3787  //
  3788  // API parameter values that are decorated as "sensitive" in the API will not
  3789  // be included in the string output. The member name will be present, but the
  3790  // value will be replaced with "sensitive".
  3791  func (s ListQueueTagsOutput) GoString() string {
  3792  	return s.String()
  3793  }
  3794  
  3795  // SetTags sets the Tags field's value.
  3796  func (s *ListQueueTagsOutput) SetTags(v map[string]*string) *ListQueueTagsOutput {
  3797  	s.Tags = v
  3798  	return s
  3799  }
  3800  
  3801  type ListQueuesInput struct {
  3802  	_ struct{} `type:"structure"`
  3803  
  3804  	// Maximum number of results to include in the response. Value range is 1 to
  3805  	// 1000. You must set MaxResults to receive a value for NextToken in the response.
  3806  	MaxResults *int64 `type:"integer"`
  3807  
  3808  	// Pagination token to request the next set of results.
  3809  	NextToken *string `type:"string"`
  3810  
  3811  	// A string to use for filtering the list results. Only those queues whose name
  3812  	// begins with the specified string are returned.
  3813  	//
  3814  	// Queue URLs and names are case-sensitive.
  3815  	QueueNamePrefix *string `type:"string"`
  3816  }
  3817  
  3818  // String returns the string representation.
  3819  //
  3820  // API parameter values that are decorated as "sensitive" in the API will not
  3821  // be included in the string output. The member name will be present, but the
  3822  // value will be replaced with "sensitive".
  3823  func (s ListQueuesInput) String() string {
  3824  	return awsutil.Prettify(s)
  3825  }
  3826  
  3827  // GoString returns the string representation.
  3828  //
  3829  // API parameter values that are decorated as "sensitive" in the API will not
  3830  // be included in the string output. The member name will be present, but the
  3831  // value will be replaced with "sensitive".
  3832  func (s ListQueuesInput) GoString() string {
  3833  	return s.String()
  3834  }
  3835  
  3836  // SetMaxResults sets the MaxResults field's value.
  3837  func (s *ListQueuesInput) SetMaxResults(v int64) *ListQueuesInput {
  3838  	s.MaxResults = &v
  3839  	return s
  3840  }
  3841  
  3842  // SetNextToken sets the NextToken field's value.
  3843  func (s *ListQueuesInput) SetNextToken(v string) *ListQueuesInput {
  3844  	s.NextToken = &v
  3845  	return s
  3846  }
  3847  
  3848  // SetQueueNamePrefix sets the QueueNamePrefix field's value.
  3849  func (s *ListQueuesInput) SetQueueNamePrefix(v string) *ListQueuesInput {
  3850  	s.QueueNamePrefix = &v
  3851  	return s
  3852  }
  3853  
  3854  // A list of your queues.
  3855  type ListQueuesOutput struct {
  3856  	_ struct{} `type:"structure"`
  3857  
  3858  	// Pagination token to include in the next request. Token value is null if there
  3859  	// are no additional results to request, or if you did not set MaxResults in
  3860  	// the request.
  3861  	NextToken *string `type:"string"`
  3862  
  3863  	// A list of queue URLs, up to 1,000 entries, or the value of MaxResults that
  3864  	// you sent in the request.
  3865  	QueueUrls []*string `locationNameList:"QueueUrl" type:"list" flattened:"true"`
  3866  }
  3867  
  3868  // String returns the string representation.
  3869  //
  3870  // API parameter values that are decorated as "sensitive" in the API will not
  3871  // be included in the string output. The member name will be present, but the
  3872  // value will be replaced with "sensitive".
  3873  func (s ListQueuesOutput) String() string {
  3874  	return awsutil.Prettify(s)
  3875  }
  3876  
  3877  // GoString returns the string representation.
  3878  //
  3879  // API parameter values that are decorated as "sensitive" in the API will not
  3880  // be included in the string output. The member name will be present, but the
  3881  // value will be replaced with "sensitive".
  3882  func (s ListQueuesOutput) GoString() string {
  3883  	return s.String()
  3884  }
  3885  
  3886  // SetNextToken sets the NextToken field's value.
  3887  func (s *ListQueuesOutput) SetNextToken(v string) *ListQueuesOutput {
  3888  	s.NextToken = &v
  3889  	return s
  3890  }
  3891  
  3892  // SetQueueUrls sets the QueueUrls field's value.
  3893  func (s *ListQueuesOutput) SetQueueUrls(v []*string) *ListQueuesOutput {
  3894  	s.QueueUrls = v
  3895  	return s
  3896  }
  3897  
  3898  // An Amazon SQS message.
  3899  type Message struct {
  3900  	_ struct{} `type:"structure"`
  3901  
  3902  	// A map of the attributes requested in ReceiveMessage to their respective values.
  3903  	// Supported attributes:
  3904  	//
  3905  	//    * ApproximateReceiveCount
  3906  	//
  3907  	//    * ApproximateFirstReceiveTimestamp
  3908  	//
  3909  	//    * MessageDeduplicationId
  3910  	//
  3911  	//    * MessageGroupId
  3912  	//
  3913  	//    * SenderId
  3914  	//
  3915  	//    * SentTimestamp
  3916  	//
  3917  	//    * SequenceNumber
  3918  	//
  3919  	// ApproximateFirstReceiveTimestamp and SentTimestamp are each returned as an
  3920  	// integer representing the epoch time (http://en.wikipedia.org/wiki/Unix_time)
  3921  	// in milliseconds.
  3922  	Attributes map[string]*string `locationName:"Attribute" locationNameKey:"Name" locationNameValue:"Value" type:"map" flattened:"true"`
  3923  
  3924  	// The message's contents (not URL-encoded).
  3925  	Body *string `type:"string"`
  3926  
  3927  	// An MD5 digest of the non-URL-encoded message body string.
  3928  	MD5OfBody *string `type:"string"`
  3929  
  3930  	// An MD5 digest of the non-URL-encoded message attribute string. You can use
  3931  	// this attribute to verify that Amazon SQS received the message correctly.
  3932  	// Amazon SQS URL-decodes the message before creating the MD5 digest. For information
  3933  	// about MD5, see RFC1321 (https://www.ietf.org/rfc/rfc1321.txt).
  3934  	MD5OfMessageAttributes *string `type:"string"`
  3935  
  3936  	// Each message attribute consists of a Name, Type, and Value. For more information,
  3937  	// see Amazon SQS message attributes (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-metadata.html#sqs-message-attributes)
  3938  	// in the Amazon SQS Developer Guide.
  3939  	MessageAttributes map[string]*MessageAttributeValue `locationName:"MessageAttribute" locationNameKey:"Name" locationNameValue:"Value" type:"map" flattened:"true"`
  3940  
  3941  	// A unique identifier for the message. A MessageIdis considered unique across
  3942  	// all accounts for an extended period of time.
  3943  	MessageId *string `type:"string"`
  3944  
  3945  	// An identifier associated with the act of receiving the message. A new receipt
  3946  	// handle is returned every time you receive a message. When deleting a message,
  3947  	// you provide the last received receipt handle to delete the message.
  3948  	ReceiptHandle *string `type:"string"`
  3949  }
  3950  
  3951  // String returns the string representation.
  3952  //
  3953  // API parameter values that are decorated as "sensitive" in the API will not
  3954  // be included in the string output. The member name will be present, but the
  3955  // value will be replaced with "sensitive".
  3956  func (s Message) String() string {
  3957  	return awsutil.Prettify(s)
  3958  }
  3959  
  3960  // GoString returns the string representation.
  3961  //
  3962  // API parameter values that are decorated as "sensitive" in the API will not
  3963  // be included in the string output. The member name will be present, but the
  3964  // value will be replaced with "sensitive".
  3965  func (s Message) GoString() string {
  3966  	return s.String()
  3967  }
  3968  
  3969  // SetAttributes sets the Attributes field's value.
  3970  func (s *Message) SetAttributes(v map[string]*string) *Message {
  3971  	s.Attributes = v
  3972  	return s
  3973  }
  3974  
  3975  // SetBody sets the Body field's value.
  3976  func (s *Message) SetBody(v string) *Message {
  3977  	s.Body = &v
  3978  	return s
  3979  }
  3980  
  3981  // SetMD5OfBody sets the MD5OfBody field's value.
  3982  func (s *Message) SetMD5OfBody(v string) *Message {
  3983  	s.MD5OfBody = &v
  3984  	return s
  3985  }
  3986  
  3987  // SetMD5OfMessageAttributes sets the MD5OfMessageAttributes field's value.
  3988  func (s *Message) SetMD5OfMessageAttributes(v string) *Message {
  3989  	s.MD5OfMessageAttributes = &v
  3990  	return s
  3991  }
  3992  
  3993  // SetMessageAttributes sets the MessageAttributes field's value.
  3994  func (s *Message) SetMessageAttributes(v map[string]*MessageAttributeValue) *Message {
  3995  	s.MessageAttributes = v
  3996  	return s
  3997  }
  3998  
  3999  // SetMessageId sets the MessageId field's value.
  4000  func (s *Message) SetMessageId(v string) *Message {
  4001  	s.MessageId = &v
  4002  	return s
  4003  }
  4004  
  4005  // SetReceiptHandle sets the ReceiptHandle field's value.
  4006  func (s *Message) SetReceiptHandle(v string) *Message {
  4007  	s.ReceiptHandle = &v
  4008  	return s
  4009  }
  4010  
  4011  // The user-specified message attribute value. For string data types, the Value
  4012  // attribute has the same restrictions on the content as the message body. For
  4013  // more information, see SendMessage.
  4014  //
  4015  // Name, type, value and the message body must not be empty or null. All parts
  4016  // of the message attribute, including Name, Type, and Value, are part of the
  4017  // message size restriction (256 KB or 262,144 bytes).
  4018  type MessageAttributeValue struct {
  4019  	_ struct{} `type:"structure"`
  4020  
  4021  	// Not implemented. Reserved for future use.
  4022  	BinaryListValues [][]byte `locationName:"BinaryListValue" locationNameList:"BinaryListValue" type:"list" flattened:"true"`
  4023  
  4024  	// Binary type attributes can store any binary data, such as compressed data,
  4025  	// encrypted data, or images.
  4026  	// BinaryValue is automatically base64 encoded/decoded by the SDK.
  4027  	BinaryValue []byte `type:"blob"`
  4028  
  4029  	// Amazon SQS supports the following logical data types: String, Number, and
  4030  	// Binary. For the Number data type, you must use StringValue.
  4031  	//
  4032  	// You can also append custom labels. For more information, see Amazon SQS Message
  4033  	// Attributes (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-metadata.html#sqs-message-attributes)
  4034  	// in the Amazon SQS Developer Guide.
  4035  	//
  4036  	// DataType is a required field
  4037  	DataType *string `type:"string" required:"true"`
  4038  
  4039  	// Not implemented. Reserved for future use.
  4040  	StringListValues []*string `locationName:"StringListValue" locationNameList:"StringListValue" type:"list" flattened:"true"`
  4041  
  4042  	// Strings are Unicode with UTF-8 binary encoding. For a list of code values,
  4043  	// see ASCII Printable Characters (http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters).
  4044  	StringValue *string `type:"string"`
  4045  }
  4046  
  4047  // String returns the string representation.
  4048  //
  4049  // API parameter values that are decorated as "sensitive" in the API will not
  4050  // be included in the string output. The member name will be present, but the
  4051  // value will be replaced with "sensitive".
  4052  func (s MessageAttributeValue) String() string {
  4053  	return awsutil.Prettify(s)
  4054  }
  4055  
  4056  // GoString returns the string representation.
  4057  //
  4058  // API parameter values that are decorated as "sensitive" in the API will not
  4059  // be included in the string output. The member name will be present, but the
  4060  // value will be replaced with "sensitive".
  4061  func (s MessageAttributeValue) GoString() string {
  4062  	return s.String()
  4063  }
  4064  
  4065  // Validate inspects the fields of the type to determine if they are valid.
  4066  func (s *MessageAttributeValue) Validate() error {
  4067  	invalidParams := request.ErrInvalidParams{Context: "MessageAttributeValue"}
  4068  	if s.DataType == nil {
  4069  		invalidParams.Add(request.NewErrParamRequired("DataType"))
  4070  	}
  4071  
  4072  	if invalidParams.Len() > 0 {
  4073  		return invalidParams
  4074  	}
  4075  	return nil
  4076  }
  4077  
  4078  // SetBinaryListValues sets the BinaryListValues field's value.
  4079  func (s *MessageAttributeValue) SetBinaryListValues(v [][]byte) *MessageAttributeValue {
  4080  	s.BinaryListValues = v
  4081  	return s
  4082  }
  4083  
  4084  // SetBinaryValue sets the BinaryValue field's value.
  4085  func (s *MessageAttributeValue) SetBinaryValue(v []byte) *MessageAttributeValue {
  4086  	s.BinaryValue = v
  4087  	return s
  4088  }
  4089  
  4090  // SetDataType sets the DataType field's value.
  4091  func (s *MessageAttributeValue) SetDataType(v string) *MessageAttributeValue {
  4092  	s.DataType = &v
  4093  	return s
  4094  }
  4095  
  4096  // SetStringListValues sets the StringListValues field's value.
  4097  func (s *MessageAttributeValue) SetStringListValues(v []*string) *MessageAttributeValue {
  4098  	s.StringListValues = v
  4099  	return s
  4100  }
  4101  
  4102  // SetStringValue sets the StringValue field's value.
  4103  func (s *MessageAttributeValue) SetStringValue(v string) *MessageAttributeValue {
  4104  	s.StringValue = &v
  4105  	return s
  4106  }
  4107  
  4108  // The user-specified message system attribute value. For string data types,
  4109  // the Value attribute has the same restrictions on the content as the message
  4110  // body. For more information, see SendMessage.
  4111  //
  4112  // Name, type, value and the message body must not be empty or null.
  4113  type MessageSystemAttributeValue struct {
  4114  	_ struct{} `type:"structure"`
  4115  
  4116  	// Not implemented. Reserved for future use.
  4117  	BinaryListValues [][]byte `locationName:"BinaryListValue" locationNameList:"BinaryListValue" type:"list" flattened:"true"`
  4118  
  4119  	// Binary type attributes can store any binary data, such as compressed data,
  4120  	// encrypted data, or images.
  4121  	// BinaryValue is automatically base64 encoded/decoded by the SDK.
  4122  	BinaryValue []byte `type:"blob"`
  4123  
  4124  	// Amazon SQS supports the following logical data types: String, Number, and
  4125  	// Binary. For the Number data type, you must use StringValue.
  4126  	//
  4127  	// You can also append custom labels. For more information, see Amazon SQS Message
  4128  	// Attributes (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-metadata.html#sqs-message-attributes)
  4129  	// in the Amazon SQS Developer Guide.
  4130  	//
  4131  	// DataType is a required field
  4132  	DataType *string `type:"string" required:"true"`
  4133  
  4134  	// Not implemented. Reserved for future use.
  4135  	StringListValues []*string `locationName:"StringListValue" locationNameList:"StringListValue" type:"list" flattened:"true"`
  4136  
  4137  	// Strings are Unicode with UTF-8 binary encoding. For a list of code values,
  4138  	// see ASCII Printable Characters (http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters).
  4139  	StringValue *string `type:"string"`
  4140  }
  4141  
  4142  // String returns the string representation.
  4143  //
  4144  // API parameter values that are decorated as "sensitive" in the API will not
  4145  // be included in the string output. The member name will be present, but the
  4146  // value will be replaced with "sensitive".
  4147  func (s MessageSystemAttributeValue) String() string {
  4148  	return awsutil.Prettify(s)
  4149  }
  4150  
  4151  // GoString returns the string representation.
  4152  //
  4153  // API parameter values that are decorated as "sensitive" in the API will not
  4154  // be included in the string output. The member name will be present, but the
  4155  // value will be replaced with "sensitive".
  4156  func (s MessageSystemAttributeValue) GoString() string {
  4157  	return s.String()
  4158  }
  4159  
  4160  // Validate inspects the fields of the type to determine if they are valid.
  4161  func (s *MessageSystemAttributeValue) Validate() error {
  4162  	invalidParams := request.ErrInvalidParams{Context: "MessageSystemAttributeValue"}
  4163  	if s.DataType == nil {
  4164  		invalidParams.Add(request.NewErrParamRequired("DataType"))
  4165  	}
  4166  
  4167  	if invalidParams.Len() > 0 {
  4168  		return invalidParams
  4169  	}
  4170  	return nil
  4171  }
  4172  
  4173  // SetBinaryListValues sets the BinaryListValues field's value.
  4174  func (s *MessageSystemAttributeValue) SetBinaryListValues(v [][]byte) *MessageSystemAttributeValue {
  4175  	s.BinaryListValues = v
  4176  	return s
  4177  }
  4178  
  4179  // SetBinaryValue sets the BinaryValue field's value.
  4180  func (s *MessageSystemAttributeValue) SetBinaryValue(v []byte) *MessageSystemAttributeValue {
  4181  	s.BinaryValue = v
  4182  	return s
  4183  }
  4184  
  4185  // SetDataType sets the DataType field's value.
  4186  func (s *MessageSystemAttributeValue) SetDataType(v string) *MessageSystemAttributeValue {
  4187  	s.DataType = &v
  4188  	return s
  4189  }
  4190  
  4191  // SetStringListValues sets the StringListValues field's value.
  4192  func (s *MessageSystemAttributeValue) SetStringListValues(v []*string) *MessageSystemAttributeValue {
  4193  	s.StringListValues = v
  4194  	return s
  4195  }
  4196  
  4197  // SetStringValue sets the StringValue field's value.
  4198  func (s *MessageSystemAttributeValue) SetStringValue(v string) *MessageSystemAttributeValue {
  4199  	s.StringValue = &v
  4200  	return s
  4201  }
  4202  
  4203  type PurgeQueueInput struct {
  4204  	_ struct{} `type:"structure"`
  4205  
  4206  	// The URL of the queue from which the PurgeQueue action deletes messages.
  4207  	//
  4208  	// Queue URLs and names are case-sensitive.
  4209  	//
  4210  	// QueueUrl is a required field
  4211  	QueueUrl *string `type:"string" required:"true"`
  4212  }
  4213  
  4214  // String returns the string representation.
  4215  //
  4216  // API parameter values that are decorated as "sensitive" in the API will not
  4217  // be included in the string output. The member name will be present, but the
  4218  // value will be replaced with "sensitive".
  4219  func (s PurgeQueueInput) String() string {
  4220  	return awsutil.Prettify(s)
  4221  }
  4222  
  4223  // GoString returns the string representation.
  4224  //
  4225  // API parameter values that are decorated as "sensitive" in the API will not
  4226  // be included in the string output. The member name will be present, but the
  4227  // value will be replaced with "sensitive".
  4228  func (s PurgeQueueInput) GoString() string {
  4229  	return s.String()
  4230  }
  4231  
  4232  // Validate inspects the fields of the type to determine if they are valid.
  4233  func (s *PurgeQueueInput) Validate() error {
  4234  	invalidParams := request.ErrInvalidParams{Context: "PurgeQueueInput"}
  4235  	if s.QueueUrl == nil {
  4236  		invalidParams.Add(request.NewErrParamRequired("QueueUrl"))
  4237  	}
  4238  
  4239  	if invalidParams.Len() > 0 {
  4240  		return invalidParams
  4241  	}
  4242  	return nil
  4243  }
  4244  
  4245  // SetQueueUrl sets the QueueUrl field's value.
  4246  func (s *PurgeQueueInput) SetQueueUrl(v string) *PurgeQueueInput {
  4247  	s.QueueUrl = &v
  4248  	return s
  4249  }
  4250  
  4251  type PurgeQueueOutput struct {
  4252  	_ struct{} `type:"structure"`
  4253  }
  4254  
  4255  // String returns the string representation.
  4256  //
  4257  // API parameter values that are decorated as "sensitive" in the API will not
  4258  // be included in the string output. The member name will be present, but the
  4259  // value will be replaced with "sensitive".
  4260  func (s PurgeQueueOutput) String() string {
  4261  	return awsutil.Prettify(s)
  4262  }
  4263  
  4264  // GoString returns the string representation.
  4265  //
  4266  // API parameter values that are decorated as "sensitive" in the API will not
  4267  // be included in the string output. The member name will be present, but the
  4268  // value will be replaced with "sensitive".
  4269  func (s PurgeQueueOutput) GoString() string {
  4270  	return s.String()
  4271  }
  4272  
  4273  type ReceiveMessageInput struct {
  4274  	_ struct{} `type:"structure"`
  4275  
  4276  	// A list of attributes that need to be returned along with each message. These
  4277  	// attributes include:
  4278  	//
  4279  	//    * All – Returns all values.
  4280  	//
  4281  	//    * ApproximateFirstReceiveTimestamp – Returns the time the message was
  4282  	//    first received from the queue (epoch time (http://en.wikipedia.org/wiki/Unix_time)
  4283  	//    in milliseconds).
  4284  	//
  4285  	//    * ApproximateReceiveCount – Returns the number of times a message has
  4286  	//    been received across all queues but not deleted.
  4287  	//
  4288  	//    * AWSTraceHeader – Returns the X-Ray trace header string.
  4289  	//
  4290  	//    * SenderId For an IAM user, returns the IAM user ID, for example ABCDEFGHI1JKLMNOPQ23R.
  4291  	//    For an IAM role, returns the IAM role ID, for example ABCDE1F2GH3I4JK5LMNOP:i-a123b456.
  4292  	//
  4293  	//    * SentTimestamp – Returns the time the message was sent to the queue
  4294  	//    (epoch time (http://en.wikipedia.org/wiki/Unix_time) in milliseconds).
  4295  	//
  4296  	//    * MessageDeduplicationId – Returns the value provided by the producer
  4297  	//    that calls the SendMessage action.
  4298  	//
  4299  	//    * MessageGroupId – Returns the value provided by the producer that calls
  4300  	//    the SendMessage action. Messages with the same MessageGroupId are returned
  4301  	//    in sequence.
  4302  	//
  4303  	//    * SequenceNumber – Returns the value provided by Amazon SQS.
  4304  	AttributeNames []*string `locationNameList:"AttributeName" type:"list" flattened:"true"`
  4305  
  4306  	// The maximum number of messages to return. Amazon SQS never returns more messages
  4307  	// than this value (however, fewer messages might be returned). Valid values:
  4308  	// 1 to 10. Default: 1.
  4309  	MaxNumberOfMessages *int64 `type:"integer"`
  4310  
  4311  	// The name of the message attribute, where N is the index.
  4312  	//
  4313  	//    * The name can contain alphanumeric characters and the underscore (_),
  4314  	//    hyphen (-), and period (.).
  4315  	//
  4316  	//    * The name is case-sensitive and must be unique among all attribute names
  4317  	//    for the message.
  4318  	//
  4319  	//    * The name must not start with AWS-reserved prefixes such as AWS. or Amazon.
  4320  	//    (or any casing variants).
  4321  	//
  4322  	//    * The name must not start or end with a period (.), and it should not
  4323  	//    have periods in succession (..).
  4324  	//
  4325  	//    * The name can be up to 256 characters long.
  4326  	//
  4327  	// When using ReceiveMessage, you can send a list of attribute names to receive,
  4328  	// or you can return all of the attributes by specifying All or .* in your request.
  4329  	// You can also use all message attributes starting with a prefix, for example
  4330  	// bar.*.
  4331  	MessageAttributeNames []*string `locationNameList:"MessageAttributeName" type:"list" flattened:"true"`
  4332  
  4333  	// The URL of the Amazon SQS queue from which messages are received.
  4334  	//
  4335  	// Queue URLs and names are case-sensitive.
  4336  	//
  4337  	// QueueUrl is a required field
  4338  	QueueUrl *string `type:"string" required:"true"`
  4339  
  4340  	// This parameter applies only to FIFO (first-in-first-out) queues.
  4341  	//
  4342  	// The token used for deduplication of ReceiveMessage calls. If a networking
  4343  	// issue occurs after a ReceiveMessage action, and instead of a response you
  4344  	// receive a generic error, it is possible to retry the same action with an
  4345  	// identical ReceiveRequestAttemptId to retrieve the same set of messages, even
  4346  	// if their visibility timeout has not yet expired.
  4347  	//
  4348  	//    * You can use ReceiveRequestAttemptId only for 5 minutes after a ReceiveMessage
  4349  	//    action.
  4350  	//
  4351  	//    * When you set FifoQueue, a caller of the ReceiveMessage action can provide
  4352  	//    a ReceiveRequestAttemptId explicitly.
  4353  	//
  4354  	//    * If a caller of the ReceiveMessage action doesn't provide a ReceiveRequestAttemptId,
  4355  	//    Amazon SQS generates a ReceiveRequestAttemptId.
  4356  	//
  4357  	//    * It is possible to retry the ReceiveMessage action with the same ReceiveRequestAttemptId
  4358  	//    if none of the messages have been modified (deleted or had their visibility
  4359  	//    changes).
  4360  	//
  4361  	//    * During a visibility timeout, subsequent calls with the same ReceiveRequestAttemptId
  4362  	//    return the same messages and receipt handles. If a retry occurs within
  4363  	//    the deduplication interval, it resets the visibility timeout. For more
  4364  	//    information, see Visibility Timeout (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html)
  4365  	//    in the Amazon SQS Developer Guide. If a caller of the ReceiveMessage action
  4366  	//    still processes messages when the visibility timeout expires and messages
  4367  	//    become visible, another worker consuming from the same queue can receive
  4368  	//    the same messages and therefore process duplicates. Also, if a consumer
  4369  	//    whose message processing time is longer than the visibility timeout tries
  4370  	//    to delete the processed messages, the action fails with an error. To mitigate
  4371  	//    this effect, ensure that your application observes a safe threshold before
  4372  	//    the visibility timeout expires and extend the visibility timeout as necessary.
  4373  	//
  4374  	//    * While messages with a particular MessageGroupId are invisible, no more
  4375  	//    messages belonging to the same MessageGroupId are returned until the visibility
  4376  	//    timeout expires. You can still receive messages with another MessageGroupId
  4377  	//    as long as it is also visible.
  4378  	//
  4379  	//    * If a caller of ReceiveMessage can't track the ReceiveRequestAttemptId,
  4380  	//    no retries work until the original visibility timeout expires. As a result,
  4381  	//    delays might occur but the messages in the queue remain in a strict order.
  4382  	//
  4383  	// The maximum length of ReceiveRequestAttemptId is 128 characters. ReceiveRequestAttemptId
  4384  	// can contain alphanumeric characters (a-z, A-Z, 0-9) and punctuation (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~).
  4385  	//
  4386  	// For best practices of using ReceiveRequestAttemptId, see Using the ReceiveRequestAttemptId
  4387  	// Request Parameter (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-receiverequestattemptid-request-parameter.html)
  4388  	// in the Amazon SQS Developer Guide.
  4389  	ReceiveRequestAttemptId *string `type:"string"`
  4390  
  4391  	// The duration (in seconds) that the received messages are hidden from subsequent
  4392  	// retrieve requests after being retrieved by a ReceiveMessage request.
  4393  	VisibilityTimeout *int64 `type:"integer"`
  4394  
  4395  	// The duration (in seconds) for which the call waits for a message to arrive
  4396  	// in the queue before returning. If a message is available, the call returns
  4397  	// sooner than WaitTimeSeconds. If no messages are available and the wait time
  4398  	// expires, the call returns successfully with an empty list of messages.
  4399  	//
  4400  	// To avoid HTTP errors, ensure that the HTTP response timeout for ReceiveMessage
  4401  	// requests is longer than the WaitTimeSeconds parameter. For example, with
  4402  	// the Java SDK, you can set HTTP transport settings using the NettyNioAsyncHttpClient
  4403  	// (https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/nio/netty/NettyNioAsyncHttpClient.html)
  4404  	// for asynchronous clients, or the ApacheHttpClient (https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/apache/ApacheHttpClient.html)
  4405  	// for synchronous clients.
  4406  	WaitTimeSeconds *int64 `type:"integer"`
  4407  }
  4408  
  4409  // String returns the string representation.
  4410  //
  4411  // API parameter values that are decorated as "sensitive" in the API will not
  4412  // be included in the string output. The member name will be present, but the
  4413  // value will be replaced with "sensitive".
  4414  func (s ReceiveMessageInput) String() string {
  4415  	return awsutil.Prettify(s)
  4416  }
  4417  
  4418  // GoString returns the string representation.
  4419  //
  4420  // API parameter values that are decorated as "sensitive" in the API will not
  4421  // be included in the string output. The member name will be present, but the
  4422  // value will be replaced with "sensitive".
  4423  func (s ReceiveMessageInput) GoString() string {
  4424  	return s.String()
  4425  }
  4426  
  4427  // Validate inspects the fields of the type to determine if they are valid.
  4428  func (s *ReceiveMessageInput) Validate() error {
  4429  	invalidParams := request.ErrInvalidParams{Context: "ReceiveMessageInput"}
  4430  	if s.QueueUrl == nil {
  4431  		invalidParams.Add(request.NewErrParamRequired("QueueUrl"))
  4432  	}
  4433  
  4434  	if invalidParams.Len() > 0 {
  4435  		return invalidParams
  4436  	}
  4437  	return nil
  4438  }
  4439  
  4440  // SetAttributeNames sets the AttributeNames field's value.
  4441  func (s *ReceiveMessageInput) SetAttributeNames(v []*string) *ReceiveMessageInput {
  4442  	s.AttributeNames = v
  4443  	return s
  4444  }
  4445  
  4446  // SetMaxNumberOfMessages sets the MaxNumberOfMessages field's value.
  4447  func (s *ReceiveMessageInput) SetMaxNumberOfMessages(v int64) *ReceiveMessageInput {
  4448  	s.MaxNumberOfMessages = &v
  4449  	return s
  4450  }
  4451  
  4452  // SetMessageAttributeNames sets the MessageAttributeNames field's value.
  4453  func (s *ReceiveMessageInput) SetMessageAttributeNames(v []*string) *ReceiveMessageInput {
  4454  	s.MessageAttributeNames = v
  4455  	return s
  4456  }
  4457  
  4458  // SetQueueUrl sets the QueueUrl field's value.
  4459  func (s *ReceiveMessageInput) SetQueueUrl(v string) *ReceiveMessageInput {
  4460  	s.QueueUrl = &v
  4461  	return s
  4462  }
  4463  
  4464  // SetReceiveRequestAttemptId sets the ReceiveRequestAttemptId field's value.
  4465  func (s *ReceiveMessageInput) SetReceiveRequestAttemptId(v string) *ReceiveMessageInput {
  4466  	s.ReceiveRequestAttemptId = &v
  4467  	return s
  4468  }
  4469  
  4470  // SetVisibilityTimeout sets the VisibilityTimeout field's value.
  4471  func (s *ReceiveMessageInput) SetVisibilityTimeout(v int64) *ReceiveMessageInput {
  4472  	s.VisibilityTimeout = &v
  4473  	return s
  4474  }
  4475  
  4476  // SetWaitTimeSeconds sets the WaitTimeSeconds field's value.
  4477  func (s *ReceiveMessageInput) SetWaitTimeSeconds(v int64) *ReceiveMessageInput {
  4478  	s.WaitTimeSeconds = &v
  4479  	return s
  4480  }
  4481  
  4482  // A list of received messages.
  4483  type ReceiveMessageOutput struct {
  4484  	_ struct{} `type:"structure"`
  4485  
  4486  	// A list of messages.
  4487  	Messages []*Message `locationNameList:"Message" type:"list" flattened:"true"`
  4488  }
  4489  
  4490  // String returns the string representation.
  4491  //
  4492  // API parameter values that are decorated as "sensitive" in the API will not
  4493  // be included in the string output. The member name will be present, but the
  4494  // value will be replaced with "sensitive".
  4495  func (s ReceiveMessageOutput) String() string {
  4496  	return awsutil.Prettify(s)
  4497  }
  4498  
  4499  // GoString returns the string representation.
  4500  //
  4501  // API parameter values that are decorated as "sensitive" in the API will not
  4502  // be included in the string output. The member name will be present, but the
  4503  // value will be replaced with "sensitive".
  4504  func (s ReceiveMessageOutput) GoString() string {
  4505  	return s.String()
  4506  }
  4507  
  4508  // SetMessages sets the Messages field's value.
  4509  func (s *ReceiveMessageOutput) SetMessages(v []*Message) *ReceiveMessageOutput {
  4510  	s.Messages = v
  4511  	return s
  4512  }
  4513  
  4514  type RemovePermissionInput struct {
  4515  	_ struct{} `type:"structure"`
  4516  
  4517  	// The identification of the permission to remove. This is the label added using
  4518  	// the AddPermission action.
  4519  	//
  4520  	// Label is a required field
  4521  	Label *string `type:"string" required:"true"`
  4522  
  4523  	// The URL of the Amazon SQS queue from which permissions are removed.
  4524  	//
  4525  	// Queue URLs and names are case-sensitive.
  4526  	//
  4527  	// QueueUrl is a required field
  4528  	QueueUrl *string `type:"string" required:"true"`
  4529  }
  4530  
  4531  // String returns the string representation.
  4532  //
  4533  // API parameter values that are decorated as "sensitive" in the API will not
  4534  // be included in the string output. The member name will be present, but the
  4535  // value will be replaced with "sensitive".
  4536  func (s RemovePermissionInput) String() string {
  4537  	return awsutil.Prettify(s)
  4538  }
  4539  
  4540  // GoString returns the string representation.
  4541  //
  4542  // API parameter values that are decorated as "sensitive" in the API will not
  4543  // be included in the string output. The member name will be present, but the
  4544  // value will be replaced with "sensitive".
  4545  func (s RemovePermissionInput) GoString() string {
  4546  	return s.String()
  4547  }
  4548  
  4549  // Validate inspects the fields of the type to determine if they are valid.
  4550  func (s *RemovePermissionInput) Validate() error {
  4551  	invalidParams := request.ErrInvalidParams{Context: "RemovePermissionInput"}
  4552  	if s.Label == nil {
  4553  		invalidParams.Add(request.NewErrParamRequired("Label"))
  4554  	}
  4555  	if s.QueueUrl == nil {
  4556  		invalidParams.Add(request.NewErrParamRequired("QueueUrl"))
  4557  	}
  4558  
  4559  	if invalidParams.Len() > 0 {
  4560  		return invalidParams
  4561  	}
  4562  	return nil
  4563  }
  4564  
  4565  // SetLabel sets the Label field's value.
  4566  func (s *RemovePermissionInput) SetLabel(v string) *RemovePermissionInput {
  4567  	s.Label = &v
  4568  	return s
  4569  }
  4570  
  4571  // SetQueueUrl sets the QueueUrl field's value.
  4572  func (s *RemovePermissionInput) SetQueueUrl(v string) *RemovePermissionInput {
  4573  	s.QueueUrl = &v
  4574  	return s
  4575  }
  4576  
  4577  type RemovePermissionOutput struct {
  4578  	_ struct{} `type:"structure"`
  4579  }
  4580  
  4581  // String returns the string representation.
  4582  //
  4583  // API parameter values that are decorated as "sensitive" in the API will not
  4584  // be included in the string output. The member name will be present, but the
  4585  // value will be replaced with "sensitive".
  4586  func (s RemovePermissionOutput) String() string {
  4587  	return awsutil.Prettify(s)
  4588  }
  4589  
  4590  // GoString returns the string representation.
  4591  //
  4592  // API parameter values that are decorated as "sensitive" in the API will not
  4593  // be included in the string output. The member name will be present, but the
  4594  // value will be replaced with "sensitive".
  4595  func (s RemovePermissionOutput) GoString() string {
  4596  	return s.String()
  4597  }
  4598  
  4599  type SendMessageBatchInput struct {
  4600  	_ struct{} `type:"structure"`
  4601  
  4602  	// A list of SendMessageBatchRequestEntry items.
  4603  	//
  4604  	// Entries is a required field
  4605  	Entries []*SendMessageBatchRequestEntry `locationNameList:"SendMessageBatchRequestEntry" type:"list" flattened:"true" required:"true"`
  4606  
  4607  	// The URL of the Amazon SQS queue to which batched messages are sent.
  4608  	//
  4609  	// Queue URLs and names are case-sensitive.
  4610  	//
  4611  	// QueueUrl is a required field
  4612  	QueueUrl *string `type:"string" required:"true"`
  4613  }
  4614  
  4615  // String returns the string representation.
  4616  //
  4617  // API parameter values that are decorated as "sensitive" in the API will not
  4618  // be included in the string output. The member name will be present, but the
  4619  // value will be replaced with "sensitive".
  4620  func (s SendMessageBatchInput) String() string {
  4621  	return awsutil.Prettify(s)
  4622  }
  4623  
  4624  // GoString returns the string representation.
  4625  //
  4626  // API parameter values that are decorated as "sensitive" in the API will not
  4627  // be included in the string output. The member name will be present, but the
  4628  // value will be replaced with "sensitive".
  4629  func (s SendMessageBatchInput) GoString() string {
  4630  	return s.String()
  4631  }
  4632  
  4633  // Validate inspects the fields of the type to determine if they are valid.
  4634  func (s *SendMessageBatchInput) Validate() error {
  4635  	invalidParams := request.ErrInvalidParams{Context: "SendMessageBatchInput"}
  4636  	if s.Entries == nil {
  4637  		invalidParams.Add(request.NewErrParamRequired("Entries"))
  4638  	}
  4639  	if s.QueueUrl == nil {
  4640  		invalidParams.Add(request.NewErrParamRequired("QueueUrl"))
  4641  	}
  4642  	if s.Entries != nil {
  4643  		for i, v := range s.Entries {
  4644  			if v == nil {
  4645  				continue
  4646  			}
  4647  			if err := v.Validate(); err != nil {
  4648  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Entries", i), err.(request.ErrInvalidParams))
  4649  			}
  4650  		}
  4651  	}
  4652  
  4653  	if invalidParams.Len() > 0 {
  4654  		return invalidParams
  4655  	}
  4656  	return nil
  4657  }
  4658  
  4659  // SetEntries sets the Entries field's value.
  4660  func (s *SendMessageBatchInput) SetEntries(v []*SendMessageBatchRequestEntry) *SendMessageBatchInput {
  4661  	s.Entries = v
  4662  	return s
  4663  }
  4664  
  4665  // SetQueueUrl sets the QueueUrl field's value.
  4666  func (s *SendMessageBatchInput) SetQueueUrl(v string) *SendMessageBatchInput {
  4667  	s.QueueUrl = &v
  4668  	return s
  4669  }
  4670  
  4671  // For each message in the batch, the response contains a SendMessageBatchResultEntry
  4672  // tag if the message succeeds or a BatchResultErrorEntry tag if the message
  4673  // fails.
  4674  type SendMessageBatchOutput struct {
  4675  	_ struct{} `type:"structure"`
  4676  
  4677  	// A list of BatchResultErrorEntry items with error details about each message
  4678  	// that can't be enqueued.
  4679  	//
  4680  	// Failed is a required field
  4681  	Failed []*BatchResultErrorEntry `locationNameList:"BatchResultErrorEntry" type:"list" flattened:"true" required:"true"`
  4682  
  4683  	// A list of SendMessageBatchResultEntry items.
  4684  	//
  4685  	// Successful is a required field
  4686  	Successful []*SendMessageBatchResultEntry `locationNameList:"SendMessageBatchResultEntry" type:"list" flattened:"true" required:"true"`
  4687  }
  4688  
  4689  // String returns the string representation.
  4690  //
  4691  // API parameter values that are decorated as "sensitive" in the API will not
  4692  // be included in the string output. The member name will be present, but the
  4693  // value will be replaced with "sensitive".
  4694  func (s SendMessageBatchOutput) String() string {
  4695  	return awsutil.Prettify(s)
  4696  }
  4697  
  4698  // GoString returns the string representation.
  4699  //
  4700  // API parameter values that are decorated as "sensitive" in the API will not
  4701  // be included in the string output. The member name will be present, but the
  4702  // value will be replaced with "sensitive".
  4703  func (s SendMessageBatchOutput) GoString() string {
  4704  	return s.String()
  4705  }
  4706  
  4707  // SetFailed sets the Failed field's value.
  4708  func (s *SendMessageBatchOutput) SetFailed(v []*BatchResultErrorEntry) *SendMessageBatchOutput {
  4709  	s.Failed = v
  4710  	return s
  4711  }
  4712  
  4713  // SetSuccessful sets the Successful field's value.
  4714  func (s *SendMessageBatchOutput) SetSuccessful(v []*SendMessageBatchResultEntry) *SendMessageBatchOutput {
  4715  	s.Successful = v
  4716  	return s
  4717  }
  4718  
  4719  // Contains the details of a single Amazon SQS message along with an Id.
  4720  type SendMessageBatchRequestEntry struct {
  4721  	_ struct{} `type:"structure"`
  4722  
  4723  	// The length of time, in seconds, for which a specific message is delayed.
  4724  	// Valid values: 0 to 900. Maximum: 15 minutes. Messages with a positive DelaySeconds
  4725  	// value become available for processing after the delay period is finished.
  4726  	// If you don't specify a value, the default value for the queue is applied.
  4727  	//
  4728  	// When you set FifoQueue, you can't set DelaySeconds per message. You can set
  4729  	// this parameter only on a queue level.
  4730  	DelaySeconds *int64 `type:"integer"`
  4731  
  4732  	// An identifier for a message in this batch used to communicate the result.
  4733  	//
  4734  	// The Ids of a batch request need to be unique within a request.
  4735  	//
  4736  	// This identifier can have up to 80 characters. The following characters are
  4737  	// accepted: alphanumeric characters, hyphens(-), and underscores (_).
  4738  	//
  4739  	// Id is a required field
  4740  	Id *string `type:"string" required:"true"`
  4741  
  4742  	// Each message attribute consists of a Name, Type, and Value. For more information,
  4743  	// see Amazon SQS message attributes (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-metadata.html#sqs-message-attributes)
  4744  	// in the Amazon SQS Developer Guide.
  4745  	MessageAttributes map[string]*MessageAttributeValue `locationName:"MessageAttribute" locationNameKey:"Name" locationNameValue:"Value" type:"map" flattened:"true"`
  4746  
  4747  	// The body of the message.
  4748  	//
  4749  	// MessageBody is a required field
  4750  	MessageBody *string `type:"string" required:"true"`
  4751  
  4752  	// This parameter applies only to FIFO (first-in-first-out) queues.
  4753  	//
  4754  	// The token used for deduplication of messages within a 5-minute minimum deduplication
  4755  	// interval. If a message with a particular MessageDeduplicationId is sent successfully,
  4756  	// subsequent messages with the same MessageDeduplicationId are accepted successfully
  4757  	// but aren't delivered. For more information, see Exactly-once processing (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-exactly-once-processing.html)
  4758  	// in the Amazon SQS Developer Guide.
  4759  	//
  4760  	//    * Every message must have a unique MessageDeduplicationId, You may provide
  4761  	//    a MessageDeduplicationId explicitly. If you aren't able to provide a MessageDeduplicationId
  4762  	//    and you enable ContentBasedDeduplication for your queue, Amazon SQS uses
  4763  	//    a SHA-256 hash to generate the MessageDeduplicationId using the body of
  4764  	//    the message (but not the attributes of the message). If you don't provide
  4765  	//    a MessageDeduplicationId and the queue doesn't have ContentBasedDeduplication
  4766  	//    set, the action fails with an error. If the queue has ContentBasedDeduplication
  4767  	//    set, your MessageDeduplicationId overrides the generated one.
  4768  	//
  4769  	//    * When ContentBasedDeduplication is in effect, messages with identical
  4770  	//    content sent within the deduplication interval are treated as duplicates
  4771  	//    and only one copy of the message is delivered.
  4772  	//
  4773  	//    * If you send one message with ContentBasedDeduplication enabled and then
  4774  	//    another message with a MessageDeduplicationId that is the same as the
  4775  	//    one generated for the first MessageDeduplicationId, the two messages are
  4776  	//    treated as duplicates and only one copy of the message is delivered.
  4777  	//
  4778  	// The MessageDeduplicationId is available to the consumer of the message (this
  4779  	// can be useful for troubleshooting delivery issues).
  4780  	//
  4781  	// If a message is sent successfully but the acknowledgement is lost and the
  4782  	// message is resent with the same MessageDeduplicationId after the deduplication
  4783  	// interval, Amazon SQS can't detect duplicate messages.
  4784  	//
  4785  	// Amazon SQS continues to keep track of the message deduplication ID even after
  4786  	// the message is received and deleted.
  4787  	//
  4788  	// The length of MessageDeduplicationId is 128 characters. MessageDeduplicationId
  4789  	// can contain alphanumeric characters (a-z, A-Z, 0-9) and punctuation (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~).
  4790  	//
  4791  	// For best practices of using MessageDeduplicationId, see Using the MessageDeduplicationId
  4792  	// Property (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagededuplicationid-property.html)
  4793  	// in the Amazon SQS Developer Guide.
  4794  	MessageDeduplicationId *string `type:"string"`
  4795  
  4796  	// This parameter applies only to FIFO (first-in-first-out) queues.
  4797  	//
  4798  	// The tag that specifies that a message belongs to a specific message group.
  4799  	// Messages that belong to the same message group are processed in a FIFO manner
  4800  	// (however, messages in different message groups might be processed out of
  4801  	// order). To interleave multiple ordered streams within a single queue, use
  4802  	// MessageGroupId values (for example, session data for multiple users). In
  4803  	// this scenario, multiple consumers can process the queue, but the session
  4804  	// data of each user is processed in a FIFO fashion.
  4805  	//
  4806  	//    * You must associate a non-empty MessageGroupId with a message. If you
  4807  	//    don't provide a MessageGroupId, the action fails.
  4808  	//
  4809  	//    * ReceiveMessage might return messages with multiple MessageGroupId values.
  4810  	//    For each MessageGroupId, the messages are sorted by time sent. The caller
  4811  	//    can't specify a MessageGroupId.
  4812  	//
  4813  	// The length of MessageGroupId is 128 characters. Valid values: alphanumeric
  4814  	// characters and punctuation (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~).
  4815  	//
  4816  	// For best practices of using MessageGroupId, see Using the MessageGroupId
  4817  	// Property (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagegroupid-property.html)
  4818  	// in the Amazon SQS Developer Guide.
  4819  	//
  4820  	// MessageGroupId is required for FIFO queues. You can't use it for Standard
  4821  	// queues.
  4822  	MessageGroupId *string `type:"string"`
  4823  
  4824  	// The message system attribute to send Each message system attribute consists
  4825  	// of a Name, Type, and Value.
  4826  	//
  4827  	//    * Currently, the only supported message system attribute is AWSTraceHeader.
  4828  	//    Its type must be String and its value must be a correctly formatted X-Ray
  4829  	//    trace header string.
  4830  	//
  4831  	//    * The size of a message system attribute doesn't count towards the total
  4832  	//    size of a message.
  4833  	MessageSystemAttributes map[string]*MessageSystemAttributeValue `locationName:"MessageSystemAttribute" locationNameKey:"Name" locationNameValue:"Value" type:"map" flattened:"true"`
  4834  }
  4835  
  4836  // String returns the string representation.
  4837  //
  4838  // API parameter values that are decorated as "sensitive" in the API will not
  4839  // be included in the string output. The member name will be present, but the
  4840  // value will be replaced with "sensitive".
  4841  func (s SendMessageBatchRequestEntry) String() string {
  4842  	return awsutil.Prettify(s)
  4843  }
  4844  
  4845  // GoString returns the string representation.
  4846  //
  4847  // API parameter values that are decorated as "sensitive" in the API will not
  4848  // be included in the string output. The member name will be present, but the
  4849  // value will be replaced with "sensitive".
  4850  func (s SendMessageBatchRequestEntry) GoString() string {
  4851  	return s.String()
  4852  }
  4853  
  4854  // Validate inspects the fields of the type to determine if they are valid.
  4855  func (s *SendMessageBatchRequestEntry) Validate() error {
  4856  	invalidParams := request.ErrInvalidParams{Context: "SendMessageBatchRequestEntry"}
  4857  	if s.Id == nil {
  4858  		invalidParams.Add(request.NewErrParamRequired("Id"))
  4859  	}
  4860  	if s.MessageBody == nil {
  4861  		invalidParams.Add(request.NewErrParamRequired("MessageBody"))
  4862  	}
  4863  	if s.MessageAttributes != nil {
  4864  		for i, v := range s.MessageAttributes {
  4865  			if v == nil {
  4866  				continue
  4867  			}
  4868  			if err := v.Validate(); err != nil {
  4869  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MessageAttributes", i), err.(request.ErrInvalidParams))
  4870  			}
  4871  		}
  4872  	}
  4873  	if s.MessageSystemAttributes != nil {
  4874  		for i, v := range s.MessageSystemAttributes {
  4875  			if v == nil {
  4876  				continue
  4877  			}
  4878  			if err := v.Validate(); err != nil {
  4879  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MessageSystemAttributes", i), err.(request.ErrInvalidParams))
  4880  			}
  4881  		}
  4882  	}
  4883  
  4884  	if invalidParams.Len() > 0 {
  4885  		return invalidParams
  4886  	}
  4887  	return nil
  4888  }
  4889  
  4890  // SetDelaySeconds sets the DelaySeconds field's value.
  4891  func (s *SendMessageBatchRequestEntry) SetDelaySeconds(v int64) *SendMessageBatchRequestEntry {
  4892  	s.DelaySeconds = &v
  4893  	return s
  4894  }
  4895  
  4896  // SetId sets the Id field's value.
  4897  func (s *SendMessageBatchRequestEntry) SetId(v string) *SendMessageBatchRequestEntry {
  4898  	s.Id = &v
  4899  	return s
  4900  }
  4901  
  4902  // SetMessageAttributes sets the MessageAttributes field's value.
  4903  func (s *SendMessageBatchRequestEntry) SetMessageAttributes(v map[string]*MessageAttributeValue) *SendMessageBatchRequestEntry {
  4904  	s.MessageAttributes = v
  4905  	return s
  4906  }
  4907  
  4908  // SetMessageBody sets the MessageBody field's value.
  4909  func (s *SendMessageBatchRequestEntry) SetMessageBody(v string) *SendMessageBatchRequestEntry {
  4910  	s.MessageBody = &v
  4911  	return s
  4912  }
  4913  
  4914  // SetMessageDeduplicationId sets the MessageDeduplicationId field's value.
  4915  func (s *SendMessageBatchRequestEntry) SetMessageDeduplicationId(v string) *SendMessageBatchRequestEntry {
  4916  	s.MessageDeduplicationId = &v
  4917  	return s
  4918  }
  4919  
  4920  // SetMessageGroupId sets the MessageGroupId field's value.
  4921  func (s *SendMessageBatchRequestEntry) SetMessageGroupId(v string) *SendMessageBatchRequestEntry {
  4922  	s.MessageGroupId = &v
  4923  	return s
  4924  }
  4925  
  4926  // SetMessageSystemAttributes sets the MessageSystemAttributes field's value.
  4927  func (s *SendMessageBatchRequestEntry) SetMessageSystemAttributes(v map[string]*MessageSystemAttributeValue) *SendMessageBatchRequestEntry {
  4928  	s.MessageSystemAttributes = v
  4929  	return s
  4930  }
  4931  
  4932  // Encloses a MessageId for a successfully-enqueued message in a SendMessageBatch.
  4933  type SendMessageBatchResultEntry struct {
  4934  	_ struct{} `type:"structure"`
  4935  
  4936  	// An identifier for the message in this batch.
  4937  	//
  4938  	// Id is a required field
  4939  	Id *string `type:"string" required:"true"`
  4940  
  4941  	// An MD5 digest of the non-URL-encoded message attribute string. You can use
  4942  	// this attribute to verify that Amazon SQS received the message correctly.
  4943  	// Amazon SQS URL-decodes the message before creating the MD5 digest. For information
  4944  	// about MD5, see RFC1321 (https://www.ietf.org/rfc/rfc1321.txt).
  4945  	MD5OfMessageAttributes *string `type:"string"`
  4946  
  4947  	// An MD5 digest of the non-URL-encoded message body string. You can use this
  4948  	// attribute to verify that Amazon SQS received the message correctly. Amazon
  4949  	// SQS URL-decodes the message before creating the MD5 digest. For information
  4950  	// about MD5, see RFC1321 (https://www.ietf.org/rfc/rfc1321.txt).
  4951  	//
  4952  	// MD5OfMessageBody is a required field
  4953  	MD5OfMessageBody *string `type:"string" required:"true"`
  4954  
  4955  	// An MD5 digest of the non-URL-encoded message system attribute string. You
  4956  	// can use this attribute to verify that Amazon SQS received the message correctly.
  4957  	// Amazon SQS URL-decodes the message before creating the MD5 digest. For information
  4958  	// about MD5, see RFC1321 (https://www.ietf.org/rfc/rfc1321.txt).
  4959  	MD5OfMessageSystemAttributes *string `type:"string"`
  4960  
  4961  	// An identifier for the message.
  4962  	//
  4963  	// MessageId is a required field
  4964  	MessageId *string `type:"string" required:"true"`
  4965  
  4966  	// This parameter applies only to FIFO (first-in-first-out) queues.
  4967  	//
  4968  	// The large, non-consecutive number that Amazon SQS assigns to each message.
  4969  	//
  4970  	// The length of SequenceNumber is 128 bits. As SequenceNumber continues to
  4971  	// increase for a particular MessageGroupId.
  4972  	SequenceNumber *string `type:"string"`
  4973  }
  4974  
  4975  // String returns the string representation.
  4976  //
  4977  // API parameter values that are decorated as "sensitive" in the API will not
  4978  // be included in the string output. The member name will be present, but the
  4979  // value will be replaced with "sensitive".
  4980  func (s SendMessageBatchResultEntry) String() string {
  4981  	return awsutil.Prettify(s)
  4982  }
  4983  
  4984  // GoString returns the string representation.
  4985  //
  4986  // API parameter values that are decorated as "sensitive" in the API will not
  4987  // be included in the string output. The member name will be present, but the
  4988  // value will be replaced with "sensitive".
  4989  func (s SendMessageBatchResultEntry) GoString() string {
  4990  	return s.String()
  4991  }
  4992  
  4993  // SetId sets the Id field's value.
  4994  func (s *SendMessageBatchResultEntry) SetId(v string) *SendMessageBatchResultEntry {
  4995  	s.Id = &v
  4996  	return s
  4997  }
  4998  
  4999  // SetMD5OfMessageAttributes sets the MD5OfMessageAttributes field's value.
  5000  func (s *SendMessageBatchResultEntry) SetMD5OfMessageAttributes(v string) *SendMessageBatchResultEntry {
  5001  	s.MD5OfMessageAttributes = &v
  5002  	return s
  5003  }
  5004  
  5005  // SetMD5OfMessageBody sets the MD5OfMessageBody field's value.
  5006  func (s *SendMessageBatchResultEntry) SetMD5OfMessageBody(v string) *SendMessageBatchResultEntry {
  5007  	s.MD5OfMessageBody = &v
  5008  	return s
  5009  }
  5010  
  5011  // SetMD5OfMessageSystemAttributes sets the MD5OfMessageSystemAttributes field's value.
  5012  func (s *SendMessageBatchResultEntry) SetMD5OfMessageSystemAttributes(v string) *SendMessageBatchResultEntry {
  5013  	s.MD5OfMessageSystemAttributes = &v
  5014  	return s
  5015  }
  5016  
  5017  // SetMessageId sets the MessageId field's value.
  5018  func (s *SendMessageBatchResultEntry) SetMessageId(v string) *SendMessageBatchResultEntry {
  5019  	s.MessageId = &v
  5020  	return s
  5021  }
  5022  
  5023  // SetSequenceNumber sets the SequenceNumber field's value.
  5024  func (s *SendMessageBatchResultEntry) SetSequenceNumber(v string) *SendMessageBatchResultEntry {
  5025  	s.SequenceNumber = &v
  5026  	return s
  5027  }
  5028  
  5029  type SendMessageInput struct {
  5030  	_ struct{} `type:"structure"`
  5031  
  5032  	// The length of time, in seconds, for which to delay a specific message. Valid
  5033  	// values: 0 to 900. Maximum: 15 minutes. Messages with a positive DelaySeconds
  5034  	// value become available for processing after the delay period is finished.
  5035  	// If you don't specify a value, the default value for the queue applies.
  5036  	//
  5037  	// When you set FifoQueue, you can't set DelaySeconds per message. You can set
  5038  	// this parameter only on a queue level.
  5039  	DelaySeconds *int64 `type:"integer"`
  5040  
  5041  	// Each message attribute consists of a Name, Type, and Value. For more information,
  5042  	// see Amazon SQS message attributes (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-metadata.html#sqs-message-attributes)
  5043  	// in the Amazon SQS Developer Guide.
  5044  	MessageAttributes map[string]*MessageAttributeValue `locationName:"MessageAttribute" locationNameKey:"Name" locationNameValue:"Value" type:"map" flattened:"true"`
  5045  
  5046  	// The message to send. The minimum size is one character. The maximum size
  5047  	// is 256 KB.
  5048  	//
  5049  	// A message can include only XML, JSON, and unformatted text. The following
  5050  	// Unicode characters are allowed:
  5051  	//
  5052  	// #x9 | #xA | #xD | #x20 to #xD7FF | #xE000 to #xFFFD | #x10000 to #x10FFFF
  5053  	//
  5054  	// Any characters not included in this list will be rejected. For more information,
  5055  	// see the W3C specification for characters (http://www.w3.org/TR/REC-xml/#charsets).
  5056  	//
  5057  	// MessageBody is a required field
  5058  	MessageBody *string `type:"string" required:"true"`
  5059  
  5060  	// This parameter applies only to FIFO (first-in-first-out) queues.
  5061  	//
  5062  	// The token used for deduplication of sent messages. If a message with a particular
  5063  	// MessageDeduplicationId is sent successfully, any messages sent with the same
  5064  	// MessageDeduplicationId are accepted successfully but aren't delivered during
  5065  	// the 5-minute deduplication interval. For more information, see Exactly-once
  5066  	// processing (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-exactly-once-processing.html)
  5067  	// in the Amazon SQS Developer Guide.
  5068  	//
  5069  	//    * Every message must have a unique MessageDeduplicationId, You may provide
  5070  	//    a MessageDeduplicationId explicitly. If you aren't able to provide a MessageDeduplicationId
  5071  	//    and you enable ContentBasedDeduplication for your queue, Amazon SQS uses
  5072  	//    a SHA-256 hash to generate the MessageDeduplicationId using the body of
  5073  	//    the message (but not the attributes of the message). If you don't provide
  5074  	//    a MessageDeduplicationId and the queue doesn't have ContentBasedDeduplication
  5075  	//    set, the action fails with an error. If the queue has ContentBasedDeduplication
  5076  	//    set, your MessageDeduplicationId overrides the generated one.
  5077  	//
  5078  	//    * When ContentBasedDeduplication is in effect, messages with identical
  5079  	//    content sent within the deduplication interval are treated as duplicates
  5080  	//    and only one copy of the message is delivered.
  5081  	//
  5082  	//    * If you send one message with ContentBasedDeduplication enabled and then
  5083  	//    another message with a MessageDeduplicationId that is the same as the
  5084  	//    one generated for the first MessageDeduplicationId, the two messages are
  5085  	//    treated as duplicates and only one copy of the message is delivered.
  5086  	//
  5087  	// The MessageDeduplicationId is available to the consumer of the message (this
  5088  	// can be useful for troubleshooting delivery issues).
  5089  	//
  5090  	// If a message is sent successfully but the acknowledgement is lost and the
  5091  	// message is resent with the same MessageDeduplicationId after the deduplication
  5092  	// interval, Amazon SQS can't detect duplicate messages.
  5093  	//
  5094  	// Amazon SQS continues to keep track of the message deduplication ID even after
  5095  	// the message is received and deleted.
  5096  	//
  5097  	// The maximum length of MessageDeduplicationId is 128 characters. MessageDeduplicationId
  5098  	// can contain alphanumeric characters (a-z, A-Z, 0-9) and punctuation (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~).
  5099  	//
  5100  	// For best practices of using MessageDeduplicationId, see Using the MessageDeduplicationId
  5101  	// Property (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagededuplicationid-property.html)
  5102  	// in the Amazon SQS Developer Guide.
  5103  	MessageDeduplicationId *string `type:"string"`
  5104  
  5105  	// This parameter applies only to FIFO (first-in-first-out) queues.
  5106  	//
  5107  	// The tag that specifies that a message belongs to a specific message group.
  5108  	// Messages that belong to the same message group are processed in a FIFO manner
  5109  	// (however, messages in different message groups might be processed out of
  5110  	// order). To interleave multiple ordered streams within a single queue, use
  5111  	// MessageGroupId values (for example, session data for multiple users). In
  5112  	// this scenario, multiple consumers can process the queue, but the session
  5113  	// data of each user is processed in a FIFO fashion.
  5114  	//
  5115  	//    * You must associate a non-empty MessageGroupId with a message. If you
  5116  	//    don't provide a MessageGroupId, the action fails.
  5117  	//
  5118  	//    * ReceiveMessage might return messages with multiple MessageGroupId values.
  5119  	//    For each MessageGroupId, the messages are sorted by time sent. The caller
  5120  	//    can't specify a MessageGroupId.
  5121  	//
  5122  	// The length of MessageGroupId is 128 characters. Valid values: alphanumeric
  5123  	// characters and punctuation (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~).
  5124  	//
  5125  	// For best practices of using MessageGroupId, see Using the MessageGroupId
  5126  	// Property (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagegroupid-property.html)
  5127  	// in the Amazon SQS Developer Guide.
  5128  	//
  5129  	// MessageGroupId is required for FIFO queues. You can't use it for Standard
  5130  	// queues.
  5131  	MessageGroupId *string `type:"string"`
  5132  
  5133  	// The message system attribute to send. Each message system attribute consists
  5134  	// of a Name, Type, and Value.
  5135  	//
  5136  	//    * Currently, the only supported message system attribute is AWSTraceHeader.
  5137  	//    Its type must be String and its value must be a correctly formatted X-Ray
  5138  	//    trace header string.
  5139  	//
  5140  	//    * The size of a message system attribute doesn't count towards the total
  5141  	//    size of a message.
  5142  	MessageSystemAttributes map[string]*MessageSystemAttributeValue `locationName:"MessageSystemAttribute" locationNameKey:"Name" locationNameValue:"Value" type:"map" flattened:"true"`
  5143  
  5144  	// The URL of the Amazon SQS queue to which a message is sent.
  5145  	//
  5146  	// Queue URLs and names are case-sensitive.
  5147  	//
  5148  	// QueueUrl is a required field
  5149  	QueueUrl *string `type:"string" required:"true"`
  5150  }
  5151  
  5152  // String returns the string representation.
  5153  //
  5154  // API parameter values that are decorated as "sensitive" in the API will not
  5155  // be included in the string output. The member name will be present, but the
  5156  // value will be replaced with "sensitive".
  5157  func (s SendMessageInput) String() string {
  5158  	return awsutil.Prettify(s)
  5159  }
  5160  
  5161  // GoString returns the string representation.
  5162  //
  5163  // API parameter values that are decorated as "sensitive" in the API will not
  5164  // be included in the string output. The member name will be present, but the
  5165  // value will be replaced with "sensitive".
  5166  func (s SendMessageInput) GoString() string {
  5167  	return s.String()
  5168  }
  5169  
  5170  // Validate inspects the fields of the type to determine if they are valid.
  5171  func (s *SendMessageInput) Validate() error {
  5172  	invalidParams := request.ErrInvalidParams{Context: "SendMessageInput"}
  5173  	if s.MessageBody == nil {
  5174  		invalidParams.Add(request.NewErrParamRequired("MessageBody"))
  5175  	}
  5176  	if s.QueueUrl == nil {
  5177  		invalidParams.Add(request.NewErrParamRequired("QueueUrl"))
  5178  	}
  5179  	if s.MessageAttributes != nil {
  5180  		for i, v := range s.MessageAttributes {
  5181  			if v == nil {
  5182  				continue
  5183  			}
  5184  			if err := v.Validate(); err != nil {
  5185  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MessageAttributes", i), err.(request.ErrInvalidParams))
  5186  			}
  5187  		}
  5188  	}
  5189  	if s.MessageSystemAttributes != nil {
  5190  		for i, v := range s.MessageSystemAttributes {
  5191  			if v == nil {
  5192  				continue
  5193  			}
  5194  			if err := v.Validate(); err != nil {
  5195  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MessageSystemAttributes", i), err.(request.ErrInvalidParams))
  5196  			}
  5197  		}
  5198  	}
  5199  
  5200  	if invalidParams.Len() > 0 {
  5201  		return invalidParams
  5202  	}
  5203  	return nil
  5204  }
  5205  
  5206  // SetDelaySeconds sets the DelaySeconds field's value.
  5207  func (s *SendMessageInput) SetDelaySeconds(v int64) *SendMessageInput {
  5208  	s.DelaySeconds = &v
  5209  	return s
  5210  }
  5211  
  5212  // SetMessageAttributes sets the MessageAttributes field's value.
  5213  func (s *SendMessageInput) SetMessageAttributes(v map[string]*MessageAttributeValue) *SendMessageInput {
  5214  	s.MessageAttributes = v
  5215  	return s
  5216  }
  5217  
  5218  // SetMessageBody sets the MessageBody field's value.
  5219  func (s *SendMessageInput) SetMessageBody(v string) *SendMessageInput {
  5220  	s.MessageBody = &v
  5221  	return s
  5222  }
  5223  
  5224  // SetMessageDeduplicationId sets the MessageDeduplicationId field's value.
  5225  func (s *SendMessageInput) SetMessageDeduplicationId(v string) *SendMessageInput {
  5226  	s.MessageDeduplicationId = &v
  5227  	return s
  5228  }
  5229  
  5230  // SetMessageGroupId sets the MessageGroupId field's value.
  5231  func (s *SendMessageInput) SetMessageGroupId(v string) *SendMessageInput {
  5232  	s.MessageGroupId = &v
  5233  	return s
  5234  }
  5235  
  5236  // SetMessageSystemAttributes sets the MessageSystemAttributes field's value.
  5237  func (s *SendMessageInput) SetMessageSystemAttributes(v map[string]*MessageSystemAttributeValue) *SendMessageInput {
  5238  	s.MessageSystemAttributes = v
  5239  	return s
  5240  }
  5241  
  5242  // SetQueueUrl sets the QueueUrl field's value.
  5243  func (s *SendMessageInput) SetQueueUrl(v string) *SendMessageInput {
  5244  	s.QueueUrl = &v
  5245  	return s
  5246  }
  5247  
  5248  // The MD5OfMessageBody and MessageId elements.
  5249  type SendMessageOutput struct {
  5250  	_ struct{} `type:"structure"`
  5251  
  5252  	// An MD5 digest of the non-URL-encoded message attribute string. You can use
  5253  	// this attribute to verify that Amazon SQS received the message correctly.
  5254  	// Amazon SQS URL-decodes the message before creating the MD5 digest. For information
  5255  	// about MD5, see RFC1321 (https://www.ietf.org/rfc/rfc1321.txt).
  5256  	MD5OfMessageAttributes *string `type:"string"`
  5257  
  5258  	// An MD5 digest of the non-URL-encoded message body string. You can use this
  5259  	// attribute to verify that Amazon SQS received the message correctly. Amazon
  5260  	// SQS URL-decodes the message before creating the MD5 digest. For information
  5261  	// about MD5, see RFC1321 (https://www.ietf.org/rfc/rfc1321.txt).
  5262  	MD5OfMessageBody *string `type:"string"`
  5263  
  5264  	// An MD5 digest of the non-URL-encoded message system attribute string. You
  5265  	// can use this attribute to verify that Amazon SQS received the message correctly.
  5266  	// Amazon SQS URL-decodes the message before creating the MD5 digest.
  5267  	MD5OfMessageSystemAttributes *string `type:"string"`
  5268  
  5269  	// An attribute containing the MessageId of the message sent to the queue. For
  5270  	// more information, see Queue and Message Identifiers (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-message-identifiers.html)
  5271  	// in the Amazon SQS Developer Guide.
  5272  	MessageId *string `type:"string"`
  5273  
  5274  	// This parameter applies only to FIFO (first-in-first-out) queues.
  5275  	//
  5276  	// The large, non-consecutive number that Amazon SQS assigns to each message.
  5277  	//
  5278  	// The length of SequenceNumber is 128 bits. SequenceNumber continues to increase
  5279  	// for a particular MessageGroupId.
  5280  	SequenceNumber *string `type:"string"`
  5281  }
  5282  
  5283  // String returns the string representation.
  5284  //
  5285  // API parameter values that are decorated as "sensitive" in the API will not
  5286  // be included in the string output. The member name will be present, but the
  5287  // value will be replaced with "sensitive".
  5288  func (s SendMessageOutput) String() string {
  5289  	return awsutil.Prettify(s)
  5290  }
  5291  
  5292  // GoString returns the string representation.
  5293  //
  5294  // API parameter values that are decorated as "sensitive" in the API will not
  5295  // be included in the string output. The member name will be present, but the
  5296  // value will be replaced with "sensitive".
  5297  func (s SendMessageOutput) GoString() string {
  5298  	return s.String()
  5299  }
  5300  
  5301  // SetMD5OfMessageAttributes sets the MD5OfMessageAttributes field's value.
  5302  func (s *SendMessageOutput) SetMD5OfMessageAttributes(v string) *SendMessageOutput {
  5303  	s.MD5OfMessageAttributes = &v
  5304  	return s
  5305  }
  5306  
  5307  // SetMD5OfMessageBody sets the MD5OfMessageBody field's value.
  5308  func (s *SendMessageOutput) SetMD5OfMessageBody(v string) *SendMessageOutput {
  5309  	s.MD5OfMessageBody = &v
  5310  	return s
  5311  }
  5312  
  5313  // SetMD5OfMessageSystemAttributes sets the MD5OfMessageSystemAttributes field's value.
  5314  func (s *SendMessageOutput) SetMD5OfMessageSystemAttributes(v string) *SendMessageOutput {
  5315  	s.MD5OfMessageSystemAttributes = &v
  5316  	return s
  5317  }
  5318  
  5319  // SetMessageId sets the MessageId field's value.
  5320  func (s *SendMessageOutput) SetMessageId(v string) *SendMessageOutput {
  5321  	s.MessageId = &v
  5322  	return s
  5323  }
  5324  
  5325  // SetSequenceNumber sets the SequenceNumber field's value.
  5326  func (s *SendMessageOutput) SetSequenceNumber(v string) *SendMessageOutput {
  5327  	s.SequenceNumber = &v
  5328  	return s
  5329  }
  5330  
  5331  type SetQueueAttributesInput struct {
  5332  	_ struct{} `type:"structure"`
  5333  
  5334  	// A map of attributes to set.
  5335  	//
  5336  	// The following lists the names, descriptions, and values of the special request
  5337  	// parameters that the SetQueueAttributes action uses:
  5338  	//
  5339  	//    * DelaySeconds – The length of time, in seconds, for which the delivery
  5340  	//    of all messages in the queue is delayed. Valid values: An integer from
  5341  	//    0 to 900 (15 minutes). Default: 0.
  5342  	//
  5343  	//    * MaximumMessageSize – The limit of how many bytes a message can contain
  5344  	//    before Amazon SQS rejects it. Valid values: An integer from 1,024 bytes
  5345  	//    (1 KiB) up to 262,144 bytes (256 KiB). Default: 262,144 (256 KiB).
  5346  	//
  5347  	//    * MessageRetentionPeriod – The length of time, in seconds, for which
  5348  	//    Amazon SQS retains a message. Valid values: An integer representing seconds,
  5349  	//    from 60 (1 minute) to 1,209,600 (14 days). Default: 345,600 (4 days).
  5350  	//
  5351  	//    * Policy – The queue's policy. A valid Amazon Web Services policy. For
  5352  	//    more information about policy structure, see Overview of Amazon Web Services
  5353  	//    IAM Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html)
  5354  	//    in the Identity and Access Management User Guide.
  5355  	//
  5356  	//    * ReceiveMessageWaitTimeSeconds – The length of time, in seconds, for
  5357  	//    which a ReceiveMessage action waits for a message to arrive. Valid values:
  5358  	//    An integer from 0 to 20 (seconds). Default: 0.
  5359  	//
  5360  	//    * VisibilityTimeout – The visibility timeout for the queue, in seconds.
  5361  	//    Valid values: An integer from 0 to 43,200 (12 hours). Default: 30. For
  5362  	//    more information about the visibility timeout, see Visibility Timeout
  5363  	//    (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html)
  5364  	//    in the Amazon SQS Developer Guide.
  5365  	//
  5366  	// The following attributes apply only to dead-letter queues: (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html)
  5367  	//
  5368  	//    * RedrivePolicy – The string that includes the parameters for the dead-letter
  5369  	//    queue functionality of the source queue as a JSON object. The parameters
  5370  	//    are as follows: deadLetterTargetArn – The Amazon Resource Name (ARN)
  5371  	//    of the dead-letter queue to which Amazon SQS moves messages after the
  5372  	//    value of maxReceiveCount is exceeded. maxReceiveCount – The number of
  5373  	//    times a message is delivered to the source queue before being moved to
  5374  	//    the dead-letter queue. When the ReceiveCount for a message exceeds the
  5375  	//    maxReceiveCount for a queue, Amazon SQS moves the message to the dead-letter-queue.
  5376  	//
  5377  	//    * RedriveAllowPolicy – The string that includes the parameters for the
  5378  	//    permissions for the dead-letter queue redrive permission and which source
  5379  	//    queues can specify dead-letter queues as a JSON object. The parameters
  5380  	//    are as follows: redrivePermission – The permission type that defines
  5381  	//    which source queues can specify the current queue as the dead-letter queue.
  5382  	//    Valid values are: allowAll – (Default) Any source queues in this Amazon
  5383  	//    Web Services account in the same Region can specify this queue as the
  5384  	//    dead-letter queue. denyAll – No source queues can specify this queue
  5385  	//    as the dead-letter queue. byQueue – Only queues specified by the sourceQueueArns
  5386  	//    parameter can specify this queue as the dead-letter queue. sourceQueueArns
  5387  	//    – The Amazon Resource Names (ARN)s of the source queues that can specify
  5388  	//    this queue as the dead-letter queue and redrive messages. You can specify
  5389  	//    this parameter only when the redrivePermission parameter is set to byQueue.
  5390  	//    You can specify up to 10 source queue ARNs. To allow more than 10 source
  5391  	//    queues to specify dead-letter queues, set the redrivePermission parameter
  5392  	//    to allowAll.
  5393  	//
  5394  	// The dead-letter queue of a FIFO queue must also be a FIFO queue. Similarly,
  5395  	// the dead-letter queue of a standard queue must also be a standard queue.
  5396  	//
  5397  	// The following attributes apply only to server-side-encryption (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html):
  5398  	//
  5399  	//    * KmsMasterKeyId – The ID of an Amazon Web Services managed customer
  5400  	//    master key (CMK) for Amazon SQS or a custom CMK. For more information,
  5401  	//    see Key Terms (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-sse-key-terms).
  5402  	//    While the alias of the AWS-managed CMK for Amazon SQS is always alias/aws/sqs,
  5403  	//    the alias of a custom CMK can, for example, be alias/MyAlias . For more
  5404  	//    examples, see KeyId (https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters)
  5405  	//    in the Key Management Service API Reference.
  5406  	//
  5407  	//    * KmsDataKeyReusePeriodSeconds – The length of time, in seconds, for
  5408  	//    which Amazon SQS can reuse a data key (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys)
  5409  	//    to encrypt or decrypt messages before calling KMS again. An integer representing
  5410  	//    seconds, between 60 seconds (1 minute) and 86,400 seconds (24 hours).
  5411  	//    Default: 300 (5 minutes). A shorter time period provides better security
  5412  	//    but results in more calls to KMS which might incur charges after Free
  5413  	//    Tier. For more information, see How Does the Data Key Reuse Period Work?
  5414  	//    (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-how-does-the-data-key-reuse-period-work).
  5415  	//
  5416  	// The following attribute applies only to FIFO (first-in-first-out) queues
  5417  	// (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html):
  5418  	//
  5419  	//    * ContentBasedDeduplication – Enables content-based deduplication. For
  5420  	//    more information, see Exactly-once processing (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-exactly-once-processing.html)
  5421  	//    in the Amazon SQS Developer Guide. Note the following: Every message must
  5422  	//    have a unique MessageDeduplicationId. You may provide a MessageDeduplicationId
  5423  	//    explicitly. If you aren't able to provide a MessageDeduplicationId and
  5424  	//    you enable ContentBasedDeduplication for your queue, Amazon SQS uses a
  5425  	//    SHA-256 hash to generate the MessageDeduplicationId using the body of
  5426  	//    the message (but not the attributes of the message). If you don't provide
  5427  	//    a MessageDeduplicationId and the queue doesn't have ContentBasedDeduplication
  5428  	//    set, the action fails with an error. If the queue has ContentBasedDeduplication
  5429  	//    set, your MessageDeduplicationId overrides the generated one. When ContentBasedDeduplication
  5430  	//    is in effect, messages with identical content sent within the deduplication
  5431  	//    interval are treated as duplicates and only one copy of the message is
  5432  	//    delivered. If you send one message with ContentBasedDeduplication enabled
  5433  	//    and then another message with a MessageDeduplicationId that is the same
  5434  	//    as the one generated for the first MessageDeduplicationId, the two messages
  5435  	//    are treated as duplicates and only one copy of the message is delivered.
  5436  	//
  5437  	// The following attributes apply only to high throughput for FIFO queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/high-throughput-fifo.html):
  5438  	//
  5439  	//    * DeduplicationScope – Specifies whether message deduplication occurs
  5440  	//    at the message group or queue level. Valid values are messageGroup and
  5441  	//    queue.
  5442  	//
  5443  	//    * FifoThroughputLimit – Specifies whether the FIFO queue throughput
  5444  	//    quota applies to the entire queue or per message group. Valid values are
  5445  	//    perQueue and perMessageGroupId. The perMessageGroupId value is allowed
  5446  	//    only when the value for DeduplicationScope is messageGroup.
  5447  	//
  5448  	// To enable high throughput for FIFO queues, do the following:
  5449  	//
  5450  	//    * Set DeduplicationScope to messageGroup.
  5451  	//
  5452  	//    * Set FifoThroughputLimit to perMessageGroupId.
  5453  	//
  5454  	// If you set these attributes to anything other than the values shown for enabling
  5455  	// high throughput, normal throughput is in effect and deduplication occurs
  5456  	// as specified.
  5457  	//
  5458  	// For information on throughput quotas, see Quotas related to messages (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-messages.html)
  5459  	// in the Amazon SQS Developer Guide.
  5460  	//
  5461  	// Attributes is a required field
  5462  	Attributes map[string]*string `locationName:"Attribute" locationNameKey:"Name" locationNameValue:"Value" type:"map" flattened:"true" required:"true"`
  5463  
  5464  	// The URL of the Amazon SQS queue whose attributes are set.
  5465  	//
  5466  	// Queue URLs and names are case-sensitive.
  5467  	//
  5468  	// QueueUrl is a required field
  5469  	QueueUrl *string `type:"string" required:"true"`
  5470  }
  5471  
  5472  // String returns the string representation.
  5473  //
  5474  // API parameter values that are decorated as "sensitive" in the API will not
  5475  // be included in the string output. The member name will be present, but the
  5476  // value will be replaced with "sensitive".
  5477  func (s SetQueueAttributesInput) String() string {
  5478  	return awsutil.Prettify(s)
  5479  }
  5480  
  5481  // GoString returns the string representation.
  5482  //
  5483  // API parameter values that are decorated as "sensitive" in the API will not
  5484  // be included in the string output. The member name will be present, but the
  5485  // value will be replaced with "sensitive".
  5486  func (s SetQueueAttributesInput) GoString() string {
  5487  	return s.String()
  5488  }
  5489  
  5490  // Validate inspects the fields of the type to determine if they are valid.
  5491  func (s *SetQueueAttributesInput) Validate() error {
  5492  	invalidParams := request.ErrInvalidParams{Context: "SetQueueAttributesInput"}
  5493  	if s.Attributes == nil {
  5494  		invalidParams.Add(request.NewErrParamRequired("Attributes"))
  5495  	}
  5496  	if s.QueueUrl == nil {
  5497  		invalidParams.Add(request.NewErrParamRequired("QueueUrl"))
  5498  	}
  5499  
  5500  	if invalidParams.Len() > 0 {
  5501  		return invalidParams
  5502  	}
  5503  	return nil
  5504  }
  5505  
  5506  // SetAttributes sets the Attributes field's value.
  5507  func (s *SetQueueAttributesInput) SetAttributes(v map[string]*string) *SetQueueAttributesInput {
  5508  	s.Attributes = v
  5509  	return s
  5510  }
  5511  
  5512  // SetQueueUrl sets the QueueUrl field's value.
  5513  func (s *SetQueueAttributesInput) SetQueueUrl(v string) *SetQueueAttributesInput {
  5514  	s.QueueUrl = &v
  5515  	return s
  5516  }
  5517  
  5518  type SetQueueAttributesOutput struct {
  5519  	_ struct{} `type:"structure"`
  5520  }
  5521  
  5522  // String returns the string representation.
  5523  //
  5524  // API parameter values that are decorated as "sensitive" in the API will not
  5525  // be included in the string output. The member name will be present, but the
  5526  // value will be replaced with "sensitive".
  5527  func (s SetQueueAttributesOutput) String() string {
  5528  	return awsutil.Prettify(s)
  5529  }
  5530  
  5531  // GoString returns the string representation.
  5532  //
  5533  // API parameter values that are decorated as "sensitive" in the API will not
  5534  // be included in the string output. The member name will be present, but the
  5535  // value will be replaced with "sensitive".
  5536  func (s SetQueueAttributesOutput) GoString() string {
  5537  	return s.String()
  5538  }
  5539  
  5540  type TagQueueInput struct {
  5541  	_ struct{} `type:"structure"`
  5542  
  5543  	// The URL of the queue.
  5544  	//
  5545  	// QueueUrl is a required field
  5546  	QueueUrl *string `type:"string" required:"true"`
  5547  
  5548  	// The list of tags to be added to the specified queue.
  5549  	//
  5550  	// Tags is a required field
  5551  	Tags map[string]*string `locationName:"Tag" locationNameKey:"Key" locationNameValue:"Value" type:"map" flattened:"true" required:"true"`
  5552  }
  5553  
  5554  // String returns the string representation.
  5555  //
  5556  // API parameter values that are decorated as "sensitive" in the API will not
  5557  // be included in the string output. The member name will be present, but the
  5558  // value will be replaced with "sensitive".
  5559  func (s TagQueueInput) String() string {
  5560  	return awsutil.Prettify(s)
  5561  }
  5562  
  5563  // GoString returns the string representation.
  5564  //
  5565  // API parameter values that are decorated as "sensitive" in the API will not
  5566  // be included in the string output. The member name will be present, but the
  5567  // value will be replaced with "sensitive".
  5568  func (s TagQueueInput) GoString() string {
  5569  	return s.String()
  5570  }
  5571  
  5572  // Validate inspects the fields of the type to determine if they are valid.
  5573  func (s *TagQueueInput) Validate() error {
  5574  	invalidParams := request.ErrInvalidParams{Context: "TagQueueInput"}
  5575  	if s.QueueUrl == nil {
  5576  		invalidParams.Add(request.NewErrParamRequired("QueueUrl"))
  5577  	}
  5578  	if s.Tags == nil {
  5579  		invalidParams.Add(request.NewErrParamRequired("Tags"))
  5580  	}
  5581  
  5582  	if invalidParams.Len() > 0 {
  5583  		return invalidParams
  5584  	}
  5585  	return nil
  5586  }
  5587  
  5588  // SetQueueUrl sets the QueueUrl field's value.
  5589  func (s *TagQueueInput) SetQueueUrl(v string) *TagQueueInput {
  5590  	s.QueueUrl = &v
  5591  	return s
  5592  }
  5593  
  5594  // SetTags sets the Tags field's value.
  5595  func (s *TagQueueInput) SetTags(v map[string]*string) *TagQueueInput {
  5596  	s.Tags = v
  5597  	return s
  5598  }
  5599  
  5600  type TagQueueOutput struct {
  5601  	_ struct{} `type:"structure"`
  5602  }
  5603  
  5604  // String returns the string representation.
  5605  //
  5606  // API parameter values that are decorated as "sensitive" in the API will not
  5607  // be included in the string output. The member name will be present, but the
  5608  // value will be replaced with "sensitive".
  5609  func (s TagQueueOutput) String() string {
  5610  	return awsutil.Prettify(s)
  5611  }
  5612  
  5613  // GoString returns the string representation.
  5614  //
  5615  // API parameter values that are decorated as "sensitive" in the API will not
  5616  // be included in the string output. The member name will be present, but the
  5617  // value will be replaced with "sensitive".
  5618  func (s TagQueueOutput) GoString() string {
  5619  	return s.String()
  5620  }
  5621  
  5622  type UntagQueueInput struct {
  5623  	_ struct{} `type:"structure"`
  5624  
  5625  	// The URL of the queue.
  5626  	//
  5627  	// QueueUrl is a required field
  5628  	QueueUrl *string `type:"string" required:"true"`
  5629  
  5630  	// The list of tags to be removed from the specified queue.
  5631  	//
  5632  	// TagKeys is a required field
  5633  	TagKeys []*string `locationNameList:"TagKey" type:"list" flattened:"true" required:"true"`
  5634  }
  5635  
  5636  // String returns the string representation.
  5637  //
  5638  // API parameter values that are decorated as "sensitive" in the API will not
  5639  // be included in the string output. The member name will be present, but the
  5640  // value will be replaced with "sensitive".
  5641  func (s UntagQueueInput) String() string {
  5642  	return awsutil.Prettify(s)
  5643  }
  5644  
  5645  // GoString returns the string representation.
  5646  //
  5647  // API parameter values that are decorated as "sensitive" in the API will not
  5648  // be included in the string output. The member name will be present, but the
  5649  // value will be replaced with "sensitive".
  5650  func (s UntagQueueInput) GoString() string {
  5651  	return s.String()
  5652  }
  5653  
  5654  // Validate inspects the fields of the type to determine if they are valid.
  5655  func (s *UntagQueueInput) Validate() error {
  5656  	invalidParams := request.ErrInvalidParams{Context: "UntagQueueInput"}
  5657  	if s.QueueUrl == nil {
  5658  		invalidParams.Add(request.NewErrParamRequired("QueueUrl"))
  5659  	}
  5660  	if s.TagKeys == nil {
  5661  		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
  5662  	}
  5663  
  5664  	if invalidParams.Len() > 0 {
  5665  		return invalidParams
  5666  	}
  5667  	return nil
  5668  }
  5669  
  5670  // SetQueueUrl sets the QueueUrl field's value.
  5671  func (s *UntagQueueInput) SetQueueUrl(v string) *UntagQueueInput {
  5672  	s.QueueUrl = &v
  5673  	return s
  5674  }
  5675  
  5676  // SetTagKeys sets the TagKeys field's value.
  5677  func (s *UntagQueueInput) SetTagKeys(v []*string) *UntagQueueInput {
  5678  	s.TagKeys = v
  5679  	return s
  5680  }
  5681  
  5682  type UntagQueueOutput struct {
  5683  	_ struct{} `type:"structure"`
  5684  }
  5685  
  5686  // String returns the string representation.
  5687  //
  5688  // API parameter values that are decorated as "sensitive" in the API will not
  5689  // be included in the string output. The member name will be present, but the
  5690  // value will be replaced with "sensitive".
  5691  func (s UntagQueueOutput) String() string {
  5692  	return awsutil.Prettify(s)
  5693  }
  5694  
  5695  // GoString returns the string representation.
  5696  //
  5697  // API parameter values that are decorated as "sensitive" in the API will not
  5698  // be included in the string output. The member name will be present, but the
  5699  // value will be replaced with "sensitive".
  5700  func (s UntagQueueOutput) GoString() string {
  5701  	return s.String()
  5702  }
  5703  
  5704  const (
  5705  	// MessageSystemAttributeNameSenderId is a MessageSystemAttributeName enum value
  5706  	MessageSystemAttributeNameSenderId = "SenderId"
  5707  
  5708  	// MessageSystemAttributeNameSentTimestamp is a MessageSystemAttributeName enum value
  5709  	MessageSystemAttributeNameSentTimestamp = "SentTimestamp"
  5710  
  5711  	// MessageSystemAttributeNameApproximateReceiveCount is a MessageSystemAttributeName enum value
  5712  	MessageSystemAttributeNameApproximateReceiveCount = "ApproximateReceiveCount"
  5713  
  5714  	// MessageSystemAttributeNameApproximateFirstReceiveTimestamp is a MessageSystemAttributeName enum value
  5715  	MessageSystemAttributeNameApproximateFirstReceiveTimestamp = "ApproximateFirstReceiveTimestamp"
  5716  
  5717  	// MessageSystemAttributeNameSequenceNumber is a MessageSystemAttributeName enum value
  5718  	MessageSystemAttributeNameSequenceNumber = "SequenceNumber"
  5719  
  5720  	// MessageSystemAttributeNameMessageDeduplicationId is a MessageSystemAttributeName enum value
  5721  	MessageSystemAttributeNameMessageDeduplicationId = "MessageDeduplicationId"
  5722  
  5723  	// MessageSystemAttributeNameMessageGroupId is a MessageSystemAttributeName enum value
  5724  	MessageSystemAttributeNameMessageGroupId = "MessageGroupId"
  5725  
  5726  	// MessageSystemAttributeNameAwstraceHeader is a MessageSystemAttributeName enum value
  5727  	MessageSystemAttributeNameAwstraceHeader = "AWSTraceHeader"
  5728  )
  5729  
  5730  // MessageSystemAttributeName_Values returns all elements of the MessageSystemAttributeName enum
  5731  func MessageSystemAttributeName_Values() []string {
  5732  	return []string{
  5733  		MessageSystemAttributeNameSenderId,
  5734  		MessageSystemAttributeNameSentTimestamp,
  5735  		MessageSystemAttributeNameApproximateReceiveCount,
  5736  		MessageSystemAttributeNameApproximateFirstReceiveTimestamp,
  5737  		MessageSystemAttributeNameSequenceNumber,
  5738  		MessageSystemAttributeNameMessageDeduplicationId,
  5739  		MessageSystemAttributeNameMessageGroupId,
  5740  		MessageSystemAttributeNameAwstraceHeader,
  5741  	}
  5742  }
  5743  
  5744  const (
  5745  	// MessageSystemAttributeNameForSendsAwstraceHeader is a MessageSystemAttributeNameForSends enum value
  5746  	MessageSystemAttributeNameForSendsAwstraceHeader = "AWSTraceHeader"
  5747  )
  5748  
  5749  // MessageSystemAttributeNameForSends_Values returns all elements of the MessageSystemAttributeNameForSends enum
  5750  func MessageSystemAttributeNameForSends_Values() []string {
  5751  	return []string{
  5752  		MessageSystemAttributeNameForSendsAwstraceHeader,
  5753  	}
  5754  }
  5755  
  5756  const (
  5757  	// QueueAttributeNameAll is a QueueAttributeName enum value
  5758  	QueueAttributeNameAll = "All"
  5759  
  5760  	// QueueAttributeNamePolicy is a QueueAttributeName enum value
  5761  	QueueAttributeNamePolicy = "Policy"
  5762  
  5763  	// QueueAttributeNameVisibilityTimeout is a QueueAttributeName enum value
  5764  	QueueAttributeNameVisibilityTimeout = "VisibilityTimeout"
  5765  
  5766  	// QueueAttributeNameMaximumMessageSize is a QueueAttributeName enum value
  5767  	QueueAttributeNameMaximumMessageSize = "MaximumMessageSize"
  5768  
  5769  	// QueueAttributeNameMessageRetentionPeriod is a QueueAttributeName enum value
  5770  	QueueAttributeNameMessageRetentionPeriod = "MessageRetentionPeriod"
  5771  
  5772  	// QueueAttributeNameApproximateNumberOfMessages is a QueueAttributeName enum value
  5773  	QueueAttributeNameApproximateNumberOfMessages = "ApproximateNumberOfMessages"
  5774  
  5775  	// QueueAttributeNameApproximateNumberOfMessagesNotVisible is a QueueAttributeName enum value
  5776  	QueueAttributeNameApproximateNumberOfMessagesNotVisible = "ApproximateNumberOfMessagesNotVisible"
  5777  
  5778  	// QueueAttributeNameCreatedTimestamp is a QueueAttributeName enum value
  5779  	QueueAttributeNameCreatedTimestamp = "CreatedTimestamp"
  5780  
  5781  	// QueueAttributeNameLastModifiedTimestamp is a QueueAttributeName enum value
  5782  	QueueAttributeNameLastModifiedTimestamp = "LastModifiedTimestamp"
  5783  
  5784  	// QueueAttributeNameQueueArn is a QueueAttributeName enum value
  5785  	QueueAttributeNameQueueArn = "QueueArn"
  5786  
  5787  	// QueueAttributeNameApproximateNumberOfMessagesDelayed is a QueueAttributeName enum value
  5788  	QueueAttributeNameApproximateNumberOfMessagesDelayed = "ApproximateNumberOfMessagesDelayed"
  5789  
  5790  	// QueueAttributeNameDelaySeconds is a QueueAttributeName enum value
  5791  	QueueAttributeNameDelaySeconds = "DelaySeconds"
  5792  
  5793  	// QueueAttributeNameReceiveMessageWaitTimeSeconds is a QueueAttributeName enum value
  5794  	QueueAttributeNameReceiveMessageWaitTimeSeconds = "ReceiveMessageWaitTimeSeconds"
  5795  
  5796  	// QueueAttributeNameRedrivePolicy is a QueueAttributeName enum value
  5797  	QueueAttributeNameRedrivePolicy = "RedrivePolicy"
  5798  
  5799  	// QueueAttributeNameFifoQueue is a QueueAttributeName enum value
  5800  	QueueAttributeNameFifoQueue = "FifoQueue"
  5801  
  5802  	// QueueAttributeNameContentBasedDeduplication is a QueueAttributeName enum value
  5803  	QueueAttributeNameContentBasedDeduplication = "ContentBasedDeduplication"
  5804  
  5805  	// QueueAttributeNameKmsMasterKeyId is a QueueAttributeName enum value
  5806  	QueueAttributeNameKmsMasterKeyId = "KmsMasterKeyId"
  5807  
  5808  	// QueueAttributeNameKmsDataKeyReusePeriodSeconds is a QueueAttributeName enum value
  5809  	QueueAttributeNameKmsDataKeyReusePeriodSeconds = "KmsDataKeyReusePeriodSeconds"
  5810  
  5811  	// QueueAttributeNameDeduplicationScope is a QueueAttributeName enum value
  5812  	QueueAttributeNameDeduplicationScope = "DeduplicationScope"
  5813  
  5814  	// QueueAttributeNameFifoThroughputLimit is a QueueAttributeName enum value
  5815  	QueueAttributeNameFifoThroughputLimit = "FifoThroughputLimit"
  5816  
  5817  	// QueueAttributeNameRedriveAllowPolicy is a QueueAttributeName enum value
  5818  	QueueAttributeNameRedriveAllowPolicy = "RedriveAllowPolicy"
  5819  )
  5820  
  5821  // QueueAttributeName_Values returns all elements of the QueueAttributeName enum
  5822  func QueueAttributeName_Values() []string {
  5823  	return []string{
  5824  		QueueAttributeNameAll,
  5825  		QueueAttributeNamePolicy,
  5826  		QueueAttributeNameVisibilityTimeout,
  5827  		QueueAttributeNameMaximumMessageSize,
  5828  		QueueAttributeNameMessageRetentionPeriod,
  5829  		QueueAttributeNameApproximateNumberOfMessages,
  5830  		QueueAttributeNameApproximateNumberOfMessagesNotVisible,
  5831  		QueueAttributeNameCreatedTimestamp,
  5832  		QueueAttributeNameLastModifiedTimestamp,
  5833  		QueueAttributeNameQueueArn,
  5834  		QueueAttributeNameApproximateNumberOfMessagesDelayed,
  5835  		QueueAttributeNameDelaySeconds,
  5836  		QueueAttributeNameReceiveMessageWaitTimeSeconds,
  5837  		QueueAttributeNameRedrivePolicy,
  5838  		QueueAttributeNameFifoQueue,
  5839  		QueueAttributeNameContentBasedDeduplication,
  5840  		QueueAttributeNameKmsMasterKeyId,
  5841  		QueueAttributeNameKmsDataKeyReusePeriodSeconds,
  5842  		QueueAttributeNameDeduplicationScope,
  5843  		QueueAttributeNameFifoThroughputLimit,
  5844  		QueueAttributeNameRedriveAllowPolicy,
  5845  	}
  5846  }