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 }