/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Http { class HttpClient; class HttpClientFactory; } // namespace Http namespace Utils { template< typename R, typename E> class Outcome; namespace Threading { class Executor; } // namespace Threading namespace Xml { class XmlDocument; } // namespace Xml } // namespace Utils namespace Auth { class AWSCredentials; class AWSCredentialsProvider; } // namespace Auth namespace Client { class RetryStrategy; } // namespace Client namespace SQS { namespace Model { class AddPermissionRequest; class ChangeMessageVisibilityRequest; class ChangeMessageVisibilityBatchRequest; class CreateQueueRequest; class DeleteMessageRequest; class DeleteMessageBatchRequest; class DeleteQueueRequest; class GetQueueAttributesRequest; class GetQueueUrlRequest; class ListDeadLetterSourceQueuesRequest; class ListQueueTagsRequest; class ListQueuesRequest; class PurgeQueueRequest; class ReceiveMessageRequest; class RemovePermissionRequest; class SendMessageRequest; class SendMessageBatchRequest; class SetQueueAttributesRequest; class TagQueueRequest; class UntagQueueRequest; typedef Aws::Utils::Outcome AddPermissionOutcome; typedef Aws::Utils::Outcome ChangeMessageVisibilityOutcome; typedef Aws::Utils::Outcome ChangeMessageVisibilityBatchOutcome; typedef Aws::Utils::Outcome CreateQueueOutcome; typedef Aws::Utils::Outcome DeleteMessageOutcome; typedef Aws::Utils::Outcome DeleteMessageBatchOutcome; typedef Aws::Utils::Outcome DeleteQueueOutcome; typedef Aws::Utils::Outcome GetQueueAttributesOutcome; typedef Aws::Utils::Outcome GetQueueUrlOutcome; typedef Aws::Utils::Outcome ListDeadLetterSourceQueuesOutcome; typedef Aws::Utils::Outcome ListQueueTagsOutcome; typedef Aws::Utils::Outcome ListQueuesOutcome; typedef Aws::Utils::Outcome PurgeQueueOutcome; typedef Aws::Utils::Outcome ReceiveMessageOutcome; typedef Aws::Utils::Outcome RemovePermissionOutcome; typedef Aws::Utils::Outcome SendMessageOutcome; typedef Aws::Utils::Outcome SendMessageBatchOutcome; typedef Aws::Utils::Outcome SetQueueAttributesOutcome; typedef Aws::Utils::Outcome TagQueueOutcome; typedef Aws::Utils::Outcome UntagQueueOutcome; typedef std::future AddPermissionOutcomeCallable; typedef std::future ChangeMessageVisibilityOutcomeCallable; typedef std::future ChangeMessageVisibilityBatchOutcomeCallable; typedef std::future CreateQueueOutcomeCallable; typedef std::future DeleteMessageOutcomeCallable; typedef std::future DeleteMessageBatchOutcomeCallable; typedef std::future DeleteQueueOutcomeCallable; typedef std::future GetQueueAttributesOutcomeCallable; typedef std::future GetQueueUrlOutcomeCallable; typedef std::future ListDeadLetterSourceQueuesOutcomeCallable; typedef std::future ListQueueTagsOutcomeCallable; typedef std::future ListQueuesOutcomeCallable; typedef std::future PurgeQueueOutcomeCallable; typedef std::future ReceiveMessageOutcomeCallable; typedef std::future RemovePermissionOutcomeCallable; typedef std::future SendMessageOutcomeCallable; typedef std::future SendMessageBatchOutcomeCallable; typedef std::future SetQueueAttributesOutcomeCallable; typedef std::future TagQueueOutcomeCallable; typedef std::future UntagQueueOutcomeCallable; } // namespace Model class SQSClient; typedef std::function&) > AddPermissionResponseReceivedHandler; typedef std::function&) > ChangeMessageVisibilityResponseReceivedHandler; typedef std::function&) > ChangeMessageVisibilityBatchResponseReceivedHandler; typedef std::function&) > CreateQueueResponseReceivedHandler; typedef std::function&) > DeleteMessageResponseReceivedHandler; typedef std::function&) > DeleteMessageBatchResponseReceivedHandler; typedef std::function&) > DeleteQueueResponseReceivedHandler; typedef std::function&) > GetQueueAttributesResponseReceivedHandler; typedef std::function&) > GetQueueUrlResponseReceivedHandler; typedef std::function&) > ListDeadLetterSourceQueuesResponseReceivedHandler; typedef std::function&) > ListQueueTagsResponseReceivedHandler; typedef std::function&) > ListQueuesResponseReceivedHandler; typedef std::function&) > PurgeQueueResponseReceivedHandler; typedef std::function&) > ReceiveMessageResponseReceivedHandler; typedef std::function&) > RemovePermissionResponseReceivedHandler; typedef std::function&) > SendMessageResponseReceivedHandler; typedef std::function&) > SendMessageBatchResponseReceivedHandler; typedef std::function&) > SetQueueAttributesResponseReceivedHandler; typedef std::function&) > TagQueueResponseReceivedHandler; typedef std::function&) > UntagQueueResponseReceivedHandler; /** *

Welcome to the Amazon Simple Queue Service API Reference.

*

Amazon Simple Queue Service (Amazon SQS) is a reliable, highly-scalable * hosted queue for storing messages as they travel between applications or * microservices. Amazon SQS moves data between distributed application components * and helps you decouple these components.

You can use AWS SDKs to access Amazon SQS using * your favorite programming language. The SDKs perform tasks such as the following * automatically:

  • Cryptographically sign your service requests

    *
  • Retry requests

  • Handle error responses

  • *

Additional Information

*/ class AWS_SQS_API SQSClient : public Aws::Client::AWSXMLClient { public: typedef Aws::Client::AWSXMLClient BASECLASS; /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ SQSClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ SQSClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ SQSClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); virtual ~SQSClient(); /** * Converts any request object to a presigned URL with the GET method, using region for the signer and a timeout of 15 minutes. */ Aws::String ConvertRequestToPresignedUrl(const Aws::AmazonSerializableWebServiceRequest& requestToConvert, const char* region) const; /** *

Adds a permission to a queue for a specific principal. * This allows sharing access to the queue.

When you create a queue, you * have full control access rights for the queue. Only you, the owner of the queue, * can grant or deny permissions to the queue. For more information about these * permissions, see Allow * Developers to Write Messages to a Shared Queue in the Amazon Simple Queue * Service Developer Guide.

  • AddPermission * generates a policy for you. You can use SetQueueAttributes * to upload your policy. For more information, see Using * Custom Policies with the Amazon SQS Access Policy Language in the Amazon * Simple Queue Service Developer Guide.

  • An Amazon SQS policy * can have a maximum of 7 actions.

  • To remove the ability to * change queue permissions, you must deny permission to the * AddPermission, RemovePermission, and * SetQueueAttributes actions in your IAM policy.

*

Some actions take lists of parameters. These lists are specified * using the param.n notation. Values of n are integers * starting from 1. For example, a parameter list with two elements looks like * this:

&AttributeName.1=first

* &AttributeName.2=second

Cross-account * permissions don't apply to this action. For more information, see Grant * Cross-Account Permissions to a Role and a User Name in the Amazon Simple * Queue Service Developer Guide.

See Also:

AWS * API Reference

*/ virtual Model::AddPermissionOutcome AddPermission(const Model::AddPermissionRequest& request) const; /** *

Adds a permission to a queue for a specific principal. * This allows sharing access to the queue.

When you create a queue, you * have full control access rights for the queue. Only you, the owner of the queue, * can grant or deny permissions to the queue. For more information about these * permissions, see Allow * Developers to Write Messages to a Shared Queue in the Amazon Simple Queue * Service Developer Guide.

  • AddPermission * generates a policy for you. You can use SetQueueAttributes * to upload your policy. For more information, see Using * Custom Policies with the Amazon SQS Access Policy Language in the Amazon * Simple Queue Service Developer Guide.

  • An Amazon SQS policy * can have a maximum of 7 actions.

  • To remove the ability to * change queue permissions, you must deny permission to the * AddPermission, RemovePermission, and * SetQueueAttributes actions in your IAM policy.

*

Some actions take lists of parameters. These lists are specified * using the param.n notation. Values of n are integers * starting from 1. For example, a parameter list with two elements looks like * this:

&AttributeName.1=first

* &AttributeName.2=second

Cross-account * permissions don't apply to this action. For more information, see Grant * Cross-Account Permissions to a Role and a User Name in the Amazon Simple * Queue Service Developer Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::AddPermissionOutcomeCallable AddPermissionCallable(const Model::AddPermissionRequest& request) const; /** *

Adds a permission to a queue for a specific principal. * This allows sharing access to the queue.

When you create a queue, you * have full control access rights for the queue. Only you, the owner of the queue, * can grant or deny permissions to the queue. For more information about these * permissions, see Allow * Developers to Write Messages to a Shared Queue in the Amazon Simple Queue * Service Developer Guide.

  • AddPermission * generates a policy for you. You can use SetQueueAttributes * to upload your policy. For more information, see Using * Custom Policies with the Amazon SQS Access Policy Language in the Amazon * Simple Queue Service Developer Guide.

  • An Amazon SQS policy * can have a maximum of 7 actions.

  • To remove the ability to * change queue permissions, you must deny permission to the * AddPermission, RemovePermission, and * SetQueueAttributes actions in your IAM policy.

*

Some actions take lists of parameters. These lists are specified * using the param.n notation. Values of n are integers * starting from 1. For example, a parameter list with two elements looks like * this:

&AttributeName.1=first

* &AttributeName.2=second

Cross-account * permissions don't apply to this action. For more information, see Grant * Cross-Account Permissions to a Role and a User Name in the Amazon Simple * Queue Service Developer Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void AddPermissionAsync(const Model::AddPermissionRequest& request, const AddPermissionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Changes the visibility timeout of a specified message in a queue to a new * value. The default visibility timeout for a message is 30 seconds. The minimum * is 0 seconds. The maximum is 12 hours. For more information, see Visibility * Timeout in the Amazon Simple Queue Service Developer Guide.

*

For example, you have a message with a visibility timeout of 5 minutes. After * 3 minutes, you call ChangeMessageVisibility with a timeout of 10 * minutes. You can continue to call ChangeMessageVisibility to extend * the visibility timeout to the maximum allowed time. If you try to extend the * visibility timeout beyond the maximum, your request is rejected.

An * Amazon SQS message has three basic states:

  1. Sent to a queue by a * producer.

  2. Received from the queue by a consumer.

  3. *
  4. Deleted from the queue.

A message is considered to be * stored after it is sent to a queue by a producer, but not yet received * from the queue by a consumer (that is, between states 1 and 2). There is no * limit to the number of stored messages. A message is considered to be in * flight after it is received from a queue by a consumer, but not yet deleted * from the queue (that is, between states 2 and 3). There is a limit to the number * of inflight messages.

Limits that apply to inflight messages are * unrelated to the unlimited number of stored messages.

For most * standard queues (depending on queue traffic and message backlog), there can be a * maximum of approximately 120,000 inflight messages (received from a queue by a * consumer, but not yet deleted from the queue). If you reach this limit, Amazon * SQS returns the OverLimit error message. To avoid reaching the * limit, you should delete messages from the queue after they're processed. You * can also increase the number of queues you use to process your messages. To * request a limit increase, file * a support request.

For FIFO queues, there can be a maximum of 20,000 * inflight messages (received from a queue by a consumer, but not yet deleted from * the queue). If you reach this limit, Amazon SQS returns no error messages.

*

If you attempt to set the VisibilityTimeout to a * value greater than the maximum time left, Amazon SQS returns an error. Amazon * SQS doesn't automatically recalculate and increase the timeout to the maximum * remaining time.

Unlike with a queue, when you change the visibility * timeout for a specific message the timeout value is applied immediately but * isn't saved in memory for that message. If you don't delete a message after it * is received, the visibility timeout for the message reverts to the original * timeout value (not to the value you set using the * ChangeMessageVisibility action) the next time the message is * received.

See Also:

AWS * API Reference

*/ virtual Model::ChangeMessageVisibilityOutcome ChangeMessageVisibility(const Model::ChangeMessageVisibilityRequest& request) const; /** *

Changes the visibility timeout of a specified message in a queue to a new * value. The default visibility timeout for a message is 30 seconds. The minimum * is 0 seconds. The maximum is 12 hours. For more information, see Visibility * Timeout in the Amazon Simple Queue Service Developer Guide.

*

For example, you have a message with a visibility timeout of 5 minutes. After * 3 minutes, you call ChangeMessageVisibility with a timeout of 10 * minutes. You can continue to call ChangeMessageVisibility to extend * the visibility timeout to the maximum allowed time. If you try to extend the * visibility timeout beyond the maximum, your request is rejected.

An * Amazon SQS message has three basic states:

  1. Sent to a queue by a * producer.

  2. Received from the queue by a consumer.

  3. *
  4. Deleted from the queue.

A message is considered to be * stored after it is sent to a queue by a producer, but not yet received * from the queue by a consumer (that is, between states 1 and 2). There is no * limit to the number of stored messages. A message is considered to be in * flight after it is received from a queue by a consumer, but not yet deleted * from the queue (that is, between states 2 and 3). There is a limit to the number * of inflight messages.

Limits that apply to inflight messages are * unrelated to the unlimited number of stored messages.

For most * standard queues (depending on queue traffic and message backlog), there can be a * maximum of approximately 120,000 inflight messages (received from a queue by a * consumer, but not yet deleted from the queue). If you reach this limit, Amazon * SQS returns the OverLimit error message. To avoid reaching the * limit, you should delete messages from the queue after they're processed. You * can also increase the number of queues you use to process your messages. To * request a limit increase, file * a support request.

For FIFO queues, there can be a maximum of 20,000 * inflight messages (received from a queue by a consumer, but not yet deleted from * the queue). If you reach this limit, Amazon SQS returns no error messages.

*

If you attempt to set the VisibilityTimeout to a * value greater than the maximum time left, Amazon SQS returns an error. Amazon * SQS doesn't automatically recalculate and increase the timeout to the maximum * remaining time.

Unlike with a queue, when you change the visibility * timeout for a specific message the timeout value is applied immediately but * isn't saved in memory for that message. If you don't delete a message after it * is received, the visibility timeout for the message reverts to the original * timeout value (not to the value you set using the * ChangeMessageVisibility action) the next time the message is * received.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ChangeMessageVisibilityOutcomeCallable ChangeMessageVisibilityCallable(const Model::ChangeMessageVisibilityRequest& request) const; /** *

Changes the visibility timeout of a specified message in a queue to a new * value. The default visibility timeout for a message is 30 seconds. The minimum * is 0 seconds. The maximum is 12 hours. For more information, see Visibility * Timeout in the Amazon Simple Queue Service Developer Guide.

*

For example, you have a message with a visibility timeout of 5 minutes. After * 3 minutes, you call ChangeMessageVisibility with a timeout of 10 * minutes. You can continue to call ChangeMessageVisibility to extend * the visibility timeout to the maximum allowed time. If you try to extend the * visibility timeout beyond the maximum, your request is rejected.

An * Amazon SQS message has three basic states:

  1. Sent to a queue by a * producer.

  2. Received from the queue by a consumer.

  3. *
  4. Deleted from the queue.

A message is considered to be * stored after it is sent to a queue by a producer, but not yet received * from the queue by a consumer (that is, between states 1 and 2). There is no * limit to the number of stored messages. A message is considered to be in * flight after it is received from a queue by a consumer, but not yet deleted * from the queue (that is, between states 2 and 3). There is a limit to the number * of inflight messages.

Limits that apply to inflight messages are * unrelated to the unlimited number of stored messages.

For most * standard queues (depending on queue traffic and message backlog), there can be a * maximum of approximately 120,000 inflight messages (received from a queue by a * consumer, but not yet deleted from the queue). If you reach this limit, Amazon * SQS returns the OverLimit error message. To avoid reaching the * limit, you should delete messages from the queue after they're processed. You * can also increase the number of queues you use to process your messages. To * request a limit increase, file * a support request.

For FIFO queues, there can be a maximum of 20,000 * inflight messages (received from a queue by a consumer, but not yet deleted from * the queue). If you reach this limit, Amazon SQS returns no error messages.

*

If you attempt to set the VisibilityTimeout to a * value greater than the maximum time left, Amazon SQS returns an error. Amazon * SQS doesn't automatically recalculate and increase the timeout to the maximum * remaining time.

Unlike with a queue, when you change the visibility * timeout for a specific message the timeout value is applied immediately but * isn't saved in memory for that message. If you don't delete a message after it * is received, the visibility timeout for the message reverts to the original * timeout value (not to the value you set using the * ChangeMessageVisibility action) the next time the message is * received.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ChangeMessageVisibilityAsync(const Model::ChangeMessageVisibilityRequest& request, const ChangeMessageVisibilityResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Changes the visibility timeout of multiple messages. This is a batch version * of ChangeMessageVisibility. The result of the action on * each message is reported individually in the response. You can send up to 10 * ChangeMessageVisibility requests with each * ChangeMessageVisibilityBatch action.

Because the * batch request can result in a combination of successful and unsuccessful * actions, you should check for batch errors even when the call returns an HTTP * status code of 200.

Some actions take lists of * parameters. These lists are specified using the param.n notation. * Values of n are integers starting from 1. For example, a parameter * list with two elements looks like this:

* &AttributeName.1=first

* &AttributeName.2=second

See Also:

AWS * API Reference

*/ virtual Model::ChangeMessageVisibilityBatchOutcome ChangeMessageVisibilityBatch(const Model::ChangeMessageVisibilityBatchRequest& request) const; /** *

Changes the visibility timeout of multiple messages. This is a batch version * of ChangeMessageVisibility. The result of the action on * each message is reported individually in the response. You can send up to 10 * ChangeMessageVisibility requests with each * ChangeMessageVisibilityBatch action.

Because the * batch request can result in a combination of successful and unsuccessful * actions, you should check for batch errors even when the call returns an HTTP * status code of 200.

Some actions take lists of * parameters. These lists are specified using the param.n notation. * Values of n are integers starting from 1. For example, a parameter * list with two elements looks like this:

* &AttributeName.1=first

* &AttributeName.2=second

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ChangeMessageVisibilityBatchOutcomeCallable ChangeMessageVisibilityBatchCallable(const Model::ChangeMessageVisibilityBatchRequest& request) const; /** *

Changes the visibility timeout of multiple messages. This is a batch version * of ChangeMessageVisibility. The result of the action on * each message is reported individually in the response. You can send up to 10 * ChangeMessageVisibility requests with each * ChangeMessageVisibilityBatch action.

Because the * batch request can result in a combination of successful and unsuccessful * actions, you should check for batch errors even when the call returns an HTTP * status code of 200.

Some actions take lists of * parameters. These lists are specified using the param.n notation. * Values of n are integers starting from 1. For example, a parameter * list with two elements looks like this:

* &AttributeName.1=first

* &AttributeName.2=second

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ChangeMessageVisibilityBatchAsync(const Model::ChangeMessageVisibilityBatchRequest& request, const ChangeMessageVisibilityBatchResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates a new standard or FIFO queue. You can pass one or more attributes in * the request. Keep the following in mind:

  • If you don't specify * the FifoQueue attribute, Amazon SQS creates a standard queue.

    *

    You can't change the queue type after you create it and you can't * convert an existing standard queue into a FIFO queue. You must either create a * new FIFO queue for your application or delete your existing standard queue and * recreate it as a FIFO queue. For more information, see Moving * From a Standard Queue to a FIFO Queue in the Amazon Simple Queue Service * Developer Guide.

  • If you don't provide a value for * an attribute, the queue is created with the default value for the attribute.

    *
  • If you delete a queue, you must wait at least 60 seconds before * creating a queue with the same name.

To successfully create a * new queue, you must provide a queue name that adheres to the limits * related to queues and is unique within the scope of your queues.

*

After you create a queue, you must wait at least one second after the queue * is created to be able to use the queue.

To get the queue URL, use * the GetQueueUrl action. GetQueueUrl * requires only the QueueName parameter. be aware of existing queue * names:

  • If you provide the name of an existing queue along with * the exact names and values of all the queue's attributes, * CreateQueue returns the queue URL for the existing queue.

  • *
  • If the queue name, attribute names, or attribute values don't match an * existing queue, CreateQueue returns an error.

*

Some actions take lists of parameters. These lists are specified using the * param.n notation. Values of n are integers starting * from 1. For example, a parameter list with two elements looks like this:

* &AttributeName.1=first

* &AttributeName.2=second

Cross-account * permissions don't apply to this action. For more information, see Grant * Cross-Account Permissions to a Role and a User Name in the Amazon Simple * Queue Service Developer Guide.

See Also:

AWS API * Reference

*/ virtual Model::CreateQueueOutcome CreateQueue(const Model::CreateQueueRequest& request) const; /** *

Creates a new standard or FIFO queue. You can pass one or more attributes in * the request. Keep the following in mind:

  • If you don't specify * the FifoQueue attribute, Amazon SQS creates a standard queue.

    *

    You can't change the queue type after you create it and you can't * convert an existing standard queue into a FIFO queue. You must either create a * new FIFO queue for your application or delete your existing standard queue and * recreate it as a FIFO queue. For more information, see Moving * From a Standard Queue to a FIFO Queue in the Amazon Simple Queue Service * Developer Guide.

  • If you don't provide a value for * an attribute, the queue is created with the default value for the attribute.

    *
  • If you delete a queue, you must wait at least 60 seconds before * creating a queue with the same name.

To successfully create a * new queue, you must provide a queue name that adheres to the limits * related to queues and is unique within the scope of your queues.

*

After you create a queue, you must wait at least one second after the queue * is created to be able to use the queue.

To get the queue URL, use * the GetQueueUrl action. GetQueueUrl * requires only the QueueName parameter. be aware of existing queue * names:

  • If you provide the name of an existing queue along with * the exact names and values of all the queue's attributes, * CreateQueue returns the queue URL for the existing queue.

  • *
  • If the queue name, attribute names, or attribute values don't match an * existing queue, CreateQueue returns an error.

*

Some actions take lists of parameters. These lists are specified using the * param.n notation. Values of n are integers starting * from 1. For example, a parameter list with two elements looks like this:

* &AttributeName.1=first

* &AttributeName.2=second

Cross-account * permissions don't apply to this action. For more information, see Grant * Cross-Account Permissions to a Role and a User Name in the Amazon Simple * Queue Service Developer Guide.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateQueueOutcomeCallable CreateQueueCallable(const Model::CreateQueueRequest& request) const; /** *

Creates a new standard or FIFO queue. You can pass one or more attributes in * the request. Keep the following in mind:

  • If you don't specify * the FifoQueue attribute, Amazon SQS creates a standard queue.

    *

    You can't change the queue type after you create it and you can't * convert an existing standard queue into a FIFO queue. You must either create a * new FIFO queue for your application or delete your existing standard queue and * recreate it as a FIFO queue. For more information, see Moving * From a Standard Queue to a FIFO Queue in the Amazon Simple Queue Service * Developer Guide.

  • If you don't provide a value for * an attribute, the queue is created with the default value for the attribute.

    *
  • If you delete a queue, you must wait at least 60 seconds before * creating a queue with the same name.

To successfully create a * new queue, you must provide a queue name that adheres to the limits * related to queues and is unique within the scope of your queues.

*

After you create a queue, you must wait at least one second after the queue * is created to be able to use the queue.

To get the queue URL, use * the GetQueueUrl action. GetQueueUrl * requires only the QueueName parameter. be aware of existing queue * names:

  • If you provide the name of an existing queue along with * the exact names and values of all the queue's attributes, * CreateQueue returns the queue URL for the existing queue.

  • *
  • If the queue name, attribute names, or attribute values don't match an * existing queue, CreateQueue returns an error.

*

Some actions take lists of parameters. These lists are specified using the * param.n notation. Values of n are integers starting * from 1. For example, a parameter list with two elements looks like this:

* &AttributeName.1=first

* &AttributeName.2=second

Cross-account * permissions don't apply to this action. For more information, see Grant * Cross-Account Permissions to a Role and a User Name in the Amazon Simple * Queue Service Developer Guide.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateQueueAsync(const Model::CreateQueueRequest& request, const CreateQueueResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the specified message from the specified queue. To select the message * to delete, use the ReceiptHandle of the message (not the * MessageId which you receive when you send the message). Amazon SQS * can delete a message from a queue even if a visibility timeout setting causes * the message to be locked by another consumer. Amazon SQS automatically deletes * messages left in a queue longer than the retention period configured for the * queue.

The ReceiptHandle is associated with a * specific instance of receiving a message. If you receive a message more * than once, the ReceiptHandle is different each time you receive a * message. When you use the DeleteMessage action, you must provide * the most recently received ReceiptHandle for the message * (otherwise, the request succeeds, but the message might not be deleted).

*

For standard queues, it is possible to receive a message even after you * delete it. This might happen on rare occasions if one of the servers which * stores a copy of the message is unavailable when you send the request to delete * the message. The copy remains on the server and might be returned to you during * a subsequent receive request. You should ensure that your application is * idempotent, so that receiving a message more than once does not cause * issues.

See Also:

AWS * API Reference

*/ virtual Model::DeleteMessageOutcome DeleteMessage(const Model::DeleteMessageRequest& request) const; /** *

Deletes the specified message from the specified queue. To select the message * to delete, use the ReceiptHandle of the message (not the * MessageId which you receive when you send the message). Amazon SQS * can delete a message from a queue even if a visibility timeout setting causes * the message to be locked by another consumer. Amazon SQS automatically deletes * messages left in a queue longer than the retention period configured for the * queue.

The ReceiptHandle is associated with a * specific instance of receiving a message. If you receive a message more * than once, the ReceiptHandle is different each time you receive a * message. When you use the DeleteMessage action, you must provide * the most recently received ReceiptHandle for the message * (otherwise, the request succeeds, but the message might not be deleted).

*

For standard queues, it is possible to receive a message even after you * delete it. This might happen on rare occasions if one of the servers which * stores a copy of the message is unavailable when you send the request to delete * the message. The copy remains on the server and might be returned to you during * a subsequent receive request. You should ensure that your application is * idempotent, so that receiving a message more than once does not cause * issues.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteMessageOutcomeCallable DeleteMessageCallable(const Model::DeleteMessageRequest& request) const; /** *

Deletes the specified message from the specified queue. To select the message * to delete, use the ReceiptHandle of the message (not the * MessageId which you receive when you send the message). Amazon SQS * can delete a message from a queue even if a visibility timeout setting causes * the message to be locked by another consumer. Amazon SQS automatically deletes * messages left in a queue longer than the retention period configured for the * queue.

The ReceiptHandle is associated with a * specific instance of receiving a message. If you receive a message more * than once, the ReceiptHandle is different each time you receive a * message. When you use the DeleteMessage action, you must provide * the most recently received ReceiptHandle for the message * (otherwise, the request succeeds, but the message might not be deleted).

*

For standard queues, it is possible to receive a message even after you * delete it. This might happen on rare occasions if one of the servers which * stores a copy of the message is unavailable when you send the request to delete * the message. The copy remains on the server and might be returned to you during * a subsequent receive request. You should ensure that your application is * idempotent, so that receiving a message more than once does not cause * issues.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteMessageAsync(const Model::DeleteMessageRequest& request, const DeleteMessageResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes up to ten messages from the specified queue. This is a batch version * of DeleteMessage. The result of the action on each message * is reported individually in the response.

Because the batch * request can result in a combination of successful and unsuccessful actions, you * should check for batch errors even when the call returns an HTTP status code of * 200.

Some actions take lists of parameters. * These lists are specified using the param.n notation. Values of * n are integers starting from 1. For example, a parameter list with * two elements looks like this:

&AttributeName.1=first *

&AttributeName.2=second

See Also:

AWS * API Reference

*/ virtual Model::DeleteMessageBatchOutcome DeleteMessageBatch(const Model::DeleteMessageBatchRequest& request) const; /** *

Deletes up to ten messages from the specified queue. This is a batch version * of DeleteMessage. The result of the action on each message * is reported individually in the response.

Because the batch * request can result in a combination of successful and unsuccessful actions, you * should check for batch errors even when the call returns an HTTP status code of * 200.

Some actions take lists of parameters. * These lists are specified using the param.n notation. Values of * n are integers starting from 1. For example, a parameter list with * two elements looks like this:

&AttributeName.1=first *

&AttributeName.2=second

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteMessageBatchOutcomeCallable DeleteMessageBatchCallable(const Model::DeleteMessageBatchRequest& request) const; /** *

Deletes up to ten messages from the specified queue. This is a batch version * of DeleteMessage. The result of the action on each message * is reported individually in the response.

Because the batch * request can result in a combination of successful and unsuccessful actions, you * should check for batch errors even when the call returns an HTTP status code of * 200.

Some actions take lists of parameters. * These lists are specified using the param.n notation. Values of * n are integers starting from 1. For example, a parameter list with * two elements looks like this:

&AttributeName.1=first *

&AttributeName.2=second

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteMessageBatchAsync(const Model::DeleteMessageBatchRequest& request, const DeleteMessageBatchResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the queue specified by the QueueUrl, regardless of the * queue's contents.

Be careful with the * DeleteQueue action: When you delete a queue, any messages in the * queue are no longer available.

When you delete a queue, the * deletion process takes up to 60 seconds. Requests you send involving that queue * during the 60 seconds might succeed. For example, a SendMessage * request might succeed, but after 60 seconds the queue and the message * you sent no longer exist.

When you delete a queue, you must wait at least * 60 seconds before creating a queue with the same name.

*

Cross-account permissions don't apply to this action. For more information, * see Grant * Cross-Account Permissions to a Role and a User Name in the Amazon Simple * Queue Service Developer Guide.

See Also:

AWS API * Reference

*/ virtual Model::DeleteQueueOutcome DeleteQueue(const Model::DeleteQueueRequest& request) const; /** *

Deletes the queue specified by the QueueUrl, regardless of the * queue's contents.

Be careful with the * DeleteQueue action: When you delete a queue, any messages in the * queue are no longer available.

When you delete a queue, the * deletion process takes up to 60 seconds. Requests you send involving that queue * during the 60 seconds might succeed. For example, a SendMessage * request might succeed, but after 60 seconds the queue and the message * you sent no longer exist.

When you delete a queue, you must wait at least * 60 seconds before creating a queue with the same name.

*

Cross-account permissions don't apply to this action. For more information, * see Grant * Cross-Account Permissions to a Role and a User Name in the Amazon Simple * Queue Service Developer Guide.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteQueueOutcomeCallable DeleteQueueCallable(const Model::DeleteQueueRequest& request) const; /** *

Deletes the queue specified by the QueueUrl, regardless of the * queue's contents.

Be careful with the * DeleteQueue action: When you delete a queue, any messages in the * queue are no longer available.

When you delete a queue, the * deletion process takes up to 60 seconds. Requests you send involving that queue * during the 60 seconds might succeed. For example, a SendMessage * request might succeed, but after 60 seconds the queue and the message * you sent no longer exist.

When you delete a queue, you must wait at least * 60 seconds before creating a queue with the same name.

*

Cross-account permissions don't apply to this action. For more information, * see Grant * Cross-Account Permissions to a Role and a User Name in the Amazon Simple * Queue Service Developer Guide.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteQueueAsync(const Model::DeleteQueueRequest& request, const DeleteQueueResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Gets attributes for the specified queue.

To determine whether a * queue is FIFO, * you can check whether QueueName ends with the .fifo * suffix.

See Also:

AWS * API Reference

*/ virtual Model::GetQueueAttributesOutcome GetQueueAttributes(const Model::GetQueueAttributesRequest& request) const; /** *

Gets attributes for the specified queue.

To determine whether a * queue is FIFO, * you can check whether QueueName ends with the .fifo * suffix.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetQueueAttributesOutcomeCallable GetQueueAttributesCallable(const Model::GetQueueAttributesRequest& request) const; /** *

Gets attributes for the specified queue.

To determine whether a * queue is FIFO, * you can check whether QueueName ends with the .fifo * suffix.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetQueueAttributesAsync(const Model::GetQueueAttributesRequest& request, const GetQueueAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns the URL of an existing Amazon SQS queue.

To access a queue * that belongs to another AWS account, use the QueueOwnerAWSAccountId * parameter to specify the account ID of the queue's owner. The queue's owner must * grant you permission to access the queue. For more information about shared * queue access, see AddPermission or see Allow * Developers to Write Messages to a Shared Queue in the Amazon Simple Queue * Service Developer Guide.

See Also:

AWS API * Reference

*/ virtual Model::GetQueueUrlOutcome GetQueueUrl(const Model::GetQueueUrlRequest& request) const; /** *

Returns the URL of an existing Amazon SQS queue.

To access a queue * that belongs to another AWS account, use the QueueOwnerAWSAccountId * parameter to specify the account ID of the queue's owner. The queue's owner must * grant you permission to access the queue. For more information about shared * queue access, see AddPermission or see Allow * Developers to Write Messages to a Shared Queue in the Amazon Simple Queue * Service Developer Guide.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetQueueUrlOutcomeCallable GetQueueUrlCallable(const Model::GetQueueUrlRequest& request) const; /** *

Returns the URL of an existing Amazon SQS queue.

To access a queue * that belongs to another AWS account, use the QueueOwnerAWSAccountId * parameter to specify the account ID of the queue's owner. The queue's owner must * grant you permission to access the queue. For more information about shared * queue access, see AddPermission or see Allow * Developers to Write Messages to a Shared Queue in the Amazon Simple Queue * Service Developer Guide.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetQueueUrlAsync(const Model::GetQueueUrlRequest& request, const GetQueueUrlResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns a list of your queues that have the RedrivePolicy queue * attribute configured with a dead-letter queue.

For more information about * using dead-letter queues, see Using * Amazon SQS Dead-Letter Queues in the Amazon Simple Queue Service * Developer Guide.

See Also:

AWS * API Reference

*/ virtual Model::ListDeadLetterSourceQueuesOutcome ListDeadLetterSourceQueues(const Model::ListDeadLetterSourceQueuesRequest& request) const; /** *

Returns a list of your queues that have the RedrivePolicy queue * attribute configured with a dead-letter queue.

For more information about * using dead-letter queues, see Using * Amazon SQS Dead-Letter Queues in the Amazon Simple Queue Service * Developer Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListDeadLetterSourceQueuesOutcomeCallable ListDeadLetterSourceQueuesCallable(const Model::ListDeadLetterSourceQueuesRequest& request) const; /** *

Returns a list of your queues that have the RedrivePolicy queue * attribute configured with a dead-letter queue.

For more information about * using dead-letter queues, see Using * Amazon SQS Dead-Letter Queues in the Amazon Simple Queue Service * Developer Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListDeadLetterSourceQueuesAsync(const Model::ListDeadLetterSourceQueuesRequest& request, const ListDeadLetterSourceQueuesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

List all cost allocation tags added to the specified Amazon SQS queue. For an * overview, see Tagging * Your Amazon SQS Queues in the Amazon Simple Queue Service Developer * Guide.

Cross-account permissions don't apply to this action. * For more information, see Grant * Cross-Account Permissions to a Role and a User Name in the Amazon Simple * Queue Service Developer Guide.

See Also:

AWS * API Reference

*/ virtual Model::ListQueueTagsOutcome ListQueueTags(const Model::ListQueueTagsRequest& request) const; /** *

List all cost allocation tags added to the specified Amazon SQS queue. For an * overview, see Tagging * Your Amazon SQS Queues in the Amazon Simple Queue Service Developer * Guide.

Cross-account permissions don't apply to this action. * For more information, see Grant * Cross-Account Permissions to a Role and a User Name in the Amazon Simple * Queue Service Developer Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListQueueTagsOutcomeCallable ListQueueTagsCallable(const Model::ListQueueTagsRequest& request) const; /** *

List all cost allocation tags added to the specified Amazon SQS queue. For an * overview, see Tagging * Your Amazon SQS Queues in the Amazon Simple Queue Service Developer * Guide.

Cross-account permissions don't apply to this action. * For more information, see Grant * Cross-Account Permissions to a Role and a User Name in the Amazon Simple * Queue Service Developer Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListQueueTagsAsync(const Model::ListQueueTagsRequest& request, const ListQueueTagsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns a list of your queues. The maximum number of queues that can be * returned is 1,000. If you specify a value for the optional * QueueNamePrefix parameter, only queues with a name that begins with * the specified value are returned.

Cross-account permissions don't * apply to this action. For more information, see Grant * Cross-Account Permissions to a Role and a User Name in the Amazon Simple * Queue Service Developer Guide.

See Also:

AWS API * Reference

*/ virtual Model::ListQueuesOutcome ListQueues(const Model::ListQueuesRequest& request) const; /** *

Returns a list of your queues. The maximum number of queues that can be * returned is 1,000. If you specify a value for the optional * QueueNamePrefix parameter, only queues with a name that begins with * the specified value are returned.

Cross-account permissions don't * apply to this action. For more information, see Grant * Cross-Account Permissions to a Role and a User Name in the Amazon Simple * Queue Service Developer Guide.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListQueuesOutcomeCallable ListQueuesCallable(const Model::ListQueuesRequest& request) const; /** *

Returns a list of your queues. The maximum number of queues that can be * returned is 1,000. If you specify a value for the optional * QueueNamePrefix parameter, only queues with a name that begins with * the specified value are returned.

Cross-account permissions don't * apply to this action. For more information, see Grant * Cross-Account Permissions to a Role and a User Name in the Amazon Simple * Queue Service Developer Guide.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListQueuesAsync(const Model::ListQueuesRequest& request, const ListQueuesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the messages in a queue specified by the QueueURL * parameter.

When you use the PurgeQueue action, * you can't retrieve any messages deleted from a queue.

The message * deletion process takes up to 60 seconds. We recommend waiting for 60 seconds * regardless of your queue's size.

Messages sent to the queue * before you call PurgeQueue might be received but are deleted * within the next minute.

Messages sent to the queue after you call * PurgeQueue might be deleted while the queue is being * purged.

See Also:

AWS API * Reference

*/ virtual Model::PurgeQueueOutcome PurgeQueue(const Model::PurgeQueueRequest& request) const; /** *

Deletes the messages in a queue specified by the QueueURL * parameter.

When you use the PurgeQueue action, * you can't retrieve any messages deleted from a queue.

The message * deletion process takes up to 60 seconds. We recommend waiting for 60 seconds * regardless of your queue's size.

Messages sent to the queue * before you call PurgeQueue might be received but are deleted * within the next minute.

Messages sent to the queue after you call * PurgeQueue might be deleted while the queue is being * purged.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::PurgeQueueOutcomeCallable PurgeQueueCallable(const Model::PurgeQueueRequest& request) const; /** *

Deletes the messages in a queue specified by the QueueURL * parameter.

When you use the PurgeQueue action, * you can't retrieve any messages deleted from a queue.

The message * deletion process takes up to 60 seconds. We recommend waiting for 60 seconds * regardless of your queue's size.

Messages sent to the queue * before you call PurgeQueue might be received but are deleted * within the next minute.

Messages sent to the queue after you call * PurgeQueue might be deleted while the queue is being * purged.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void PurgeQueueAsync(const Model::PurgeQueueRequest& request, const PurgeQueueResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves one or more messages (up to 10), from the specified queue. Using * the WaitTimeSeconds parameter enables long-poll support. For more * information, see Amazon * SQS Long Polling in the Amazon Simple Queue Service Developer Guide. *

Short poll is the default behavior where a weighted random set of * machines is sampled on a ReceiveMessage call. Thus, only the * messages on the sampled machines are returned. If the number of messages in the * queue is small (fewer than 1,000), you most likely get fewer messages than you * requested per ReceiveMessage call. If the number of messages in the * queue is extremely small, you might not receive any messages in a particular * ReceiveMessage response. If this happens, repeat the request.

*

For each message returned, the response includes the following:

  • *

    The message body.

  • An MD5 digest of the message body. For * information about MD5, see RFC1321.

  • The * MessageId you received when you sent the message to the queue.

    *
  • The receipt handle.

  • The message attributes.

    *
  • An MD5 digest of the message attributes.

The * receipt handle is the identifier you must provide when deleting the message. For * more information, see Queue * and Message Identifiers in the Amazon Simple Queue Service Developer * Guide.

You can provide the VisibilityTimeout parameter * in your request. The parameter is applied to the messages that Amazon SQS * returns in the response. If you don't include the parameter, the overall * visibility timeout for the queue is used for the returned messages. For more * information, see Visibility * Timeout in the Amazon Simple Queue Service Developer Guide.

A * message that isn't deleted or a message whose visibility isn't extended before * the visibility timeout expires counts as a failed receive. Depending on the * configuration of the queue, the message might be sent to the dead-letter * queue.

In the future, new attributes might be added. If you write * code that calls this action, we recommend that you structure your code so that * it can handle new attributes gracefully.

See Also:

AWS * API Reference

*/ virtual Model::ReceiveMessageOutcome ReceiveMessage(const Model::ReceiveMessageRequest& request) const; /** *

Retrieves one or more messages (up to 10), from the specified queue. Using * the WaitTimeSeconds parameter enables long-poll support. For more * information, see Amazon * SQS Long Polling in the Amazon Simple Queue Service Developer Guide. *

Short poll is the default behavior where a weighted random set of * machines is sampled on a ReceiveMessage call. Thus, only the * messages on the sampled machines are returned. If the number of messages in the * queue is small (fewer than 1,000), you most likely get fewer messages than you * requested per ReceiveMessage call. If the number of messages in the * queue is extremely small, you might not receive any messages in a particular * ReceiveMessage response. If this happens, repeat the request.

*

For each message returned, the response includes the following:

  • *

    The message body.

  • An MD5 digest of the message body. For * information about MD5, see RFC1321.

  • The * MessageId you received when you sent the message to the queue.

    *
  • The receipt handle.

  • The message attributes.

    *
  • An MD5 digest of the message attributes.

The * receipt handle is the identifier you must provide when deleting the message. For * more information, see Queue * and Message Identifiers in the Amazon Simple Queue Service Developer * Guide.

You can provide the VisibilityTimeout parameter * in your request. The parameter is applied to the messages that Amazon SQS * returns in the response. If you don't include the parameter, the overall * visibility timeout for the queue is used for the returned messages. For more * information, see Visibility * Timeout in the Amazon Simple Queue Service Developer Guide.

A * message that isn't deleted or a message whose visibility isn't extended before * the visibility timeout expires counts as a failed receive. Depending on the * configuration of the queue, the message might be sent to the dead-letter * queue.

In the future, new attributes might be added. If you write * code that calls this action, we recommend that you structure your code so that * it can handle new attributes gracefully.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ReceiveMessageOutcomeCallable ReceiveMessageCallable(const Model::ReceiveMessageRequest& request) const; /** *

Retrieves one or more messages (up to 10), from the specified queue. Using * the WaitTimeSeconds parameter enables long-poll support. For more * information, see Amazon * SQS Long Polling in the Amazon Simple Queue Service Developer Guide. *

Short poll is the default behavior where a weighted random set of * machines is sampled on a ReceiveMessage call. Thus, only the * messages on the sampled machines are returned. If the number of messages in the * queue is small (fewer than 1,000), you most likely get fewer messages than you * requested per ReceiveMessage call. If the number of messages in the * queue is extremely small, you might not receive any messages in a particular * ReceiveMessage response. If this happens, repeat the request.

*

For each message returned, the response includes the following:

  • *

    The message body.

  • An MD5 digest of the message body. For * information about MD5, see RFC1321.

  • The * MessageId you received when you sent the message to the queue.

    *
  • The receipt handle.

  • The message attributes.

    *
  • An MD5 digest of the message attributes.

The * receipt handle is the identifier you must provide when deleting the message. For * more information, see Queue * and Message Identifiers in the Amazon Simple Queue Service Developer * Guide.

You can provide the VisibilityTimeout parameter * in your request. The parameter is applied to the messages that Amazon SQS * returns in the response. If you don't include the parameter, the overall * visibility timeout for the queue is used for the returned messages. For more * information, see Visibility * Timeout in the Amazon Simple Queue Service Developer Guide.

A * message that isn't deleted or a message whose visibility isn't extended before * the visibility timeout expires counts as a failed receive. Depending on the * configuration of the queue, the message might be sent to the dead-letter * queue.

In the future, new attributes might be added. If you write * code that calls this action, we recommend that you structure your code so that * it can handle new attributes gracefully.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ReceiveMessageAsync(const Model::ReceiveMessageRequest& request, const ReceiveMessageResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Revokes any permissions in the queue policy that matches the specified * Label parameter.

  • Only the owner of a queue * can remove permissions from it.

  • Cross-account permissions * don't apply to this action. For more information, see Grant * Cross-Account Permissions to a Role and a User Name in the Amazon Simple * Queue Service Developer Guide.

  • To remove the ability to * change queue permissions, you must deny permission to the * AddPermission, RemovePermission, and * SetQueueAttributes actions in your IAM policy.

*

See Also:

AWS * API Reference

*/ virtual Model::RemovePermissionOutcome RemovePermission(const Model::RemovePermissionRequest& request) const; /** *

Revokes any permissions in the queue policy that matches the specified * Label parameter.

  • Only the owner of a queue * can remove permissions from it.

  • Cross-account permissions * don't apply to this action. For more information, see Grant * Cross-Account Permissions to a Role and a User Name in the Amazon Simple * Queue Service Developer Guide.

  • To remove the ability to * change queue permissions, you must deny permission to the * AddPermission, RemovePermission, and * SetQueueAttributes actions in your IAM policy.

*

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::RemovePermissionOutcomeCallable RemovePermissionCallable(const Model::RemovePermissionRequest& request) const; /** *

Revokes any permissions in the queue policy that matches the specified * Label parameter.

  • Only the owner of a queue * can remove permissions from it.

  • Cross-account permissions * don't apply to this action. For more information, see Grant * Cross-Account Permissions to a Role and a User Name in the Amazon Simple * Queue Service Developer Guide.

  • To remove the ability to * change queue permissions, you must deny permission to the * AddPermission, RemovePermission, and * SetQueueAttributes actions in your IAM policy.

*

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void RemovePermissionAsync(const Model::RemovePermissionRequest& request, const RemovePermissionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Delivers a message to the specified queue.

A message can * include only XML, JSON, and unformatted text. The following Unicode characters * are allowed:

#x9 | #xA | #xD | * #x20 to #xD7FF | #xE000 to * #xFFFD | #x10000 to #x10FFFF

Any * characters not included in this list will be rejected. For more information, see * the W3C specification for * characters.

See Also:

AWS API * Reference

*/ virtual Model::SendMessageOutcome SendMessage(const Model::SendMessageRequest& request) const; /** *

Delivers a message to the specified queue.

A message can * include only XML, JSON, and unformatted text. The following Unicode characters * are allowed:

#x9 | #xA | #xD | * #x20 to #xD7FF | #xE000 to * #xFFFD | #x10000 to #x10FFFF

Any * characters not included in this list will be rejected. For more information, see * the W3C specification for * characters.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SendMessageOutcomeCallable SendMessageCallable(const Model::SendMessageRequest& request) const; /** *

Delivers a message to the specified queue.

A message can * include only XML, JSON, and unformatted text. The following Unicode characters * are allowed:

#x9 | #xA | #xD | * #x20 to #xD7FF | #xE000 to * #xFFFD | #x10000 to #x10FFFF

Any * characters not included in this list will be rejected. For more information, see * the W3C specification for * characters.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SendMessageAsync(const Model::SendMessageRequest& request, const SendMessageResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Delivers up to ten messages to the specified queue. This is a batch version * of SendMessage. For a FIFO queue, multiple messages within * a single batch are enqueued in the order they are sent.

The result of * sending each message is reported individually in the response. Because the batch * request can result in a combination of successful and unsuccessful actions, you * should check for batch errors even when the call returns an HTTP status code of * 200.

The maximum allowed individual message size and the * maximum total payload size (the sum of the individual lengths of all of the * batched messages) are both 256 KB (262,144 bytes).

A message * can include only XML, JSON, and unformatted text. The following Unicode * characters are allowed:

#x9 | #xA | * #xD | #x20 to #xD7FF | * #xE000 to #xFFFD | #x10000 to * #x10FFFF

Any characters not included in this list will be * rejected. For more information, see the W3C specification for * characters.

If you don't specify the * DelaySeconds parameter for an entry, Amazon SQS uses the default * value for the queue.

Some actions take lists of parameters. These lists * are specified using the param.n notation. Values of n * are integers starting from 1. For example, a parameter list with two elements * looks like this:

&AttributeName.1=first

* &AttributeName.2=second

See Also:

AWS * API Reference

*/ virtual Model::SendMessageBatchOutcome SendMessageBatch(const Model::SendMessageBatchRequest& request) const; /** *

Delivers up to ten messages to the specified queue. This is a batch version * of SendMessage. For a FIFO queue, multiple messages within * a single batch are enqueued in the order they are sent.

The result of * sending each message is reported individually in the response. Because the batch * request can result in a combination of successful and unsuccessful actions, you * should check for batch errors even when the call returns an HTTP status code of * 200.

The maximum allowed individual message size and the * maximum total payload size (the sum of the individual lengths of all of the * batched messages) are both 256 KB (262,144 bytes).

A message * can include only XML, JSON, and unformatted text. The following Unicode * characters are allowed:

#x9 | #xA | * #xD | #x20 to #xD7FF | * #xE000 to #xFFFD | #x10000 to * #x10FFFF

Any characters not included in this list will be * rejected. For more information, see the W3C specification for * characters.

If you don't specify the * DelaySeconds parameter for an entry, Amazon SQS uses the default * value for the queue.

Some actions take lists of parameters. These lists * are specified using the param.n notation. Values of n * are integers starting from 1. For example, a parameter list with two elements * looks like this:

&AttributeName.1=first

* &AttributeName.2=second

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SendMessageBatchOutcomeCallable SendMessageBatchCallable(const Model::SendMessageBatchRequest& request) const; /** *

Delivers up to ten messages to the specified queue. This is a batch version * of SendMessage. For a FIFO queue, multiple messages within * a single batch are enqueued in the order they are sent.

The result of * sending each message is reported individually in the response. Because the batch * request can result in a combination of successful and unsuccessful actions, you * should check for batch errors even when the call returns an HTTP status code of * 200.

The maximum allowed individual message size and the * maximum total payload size (the sum of the individual lengths of all of the * batched messages) are both 256 KB (262,144 bytes).

A message * can include only XML, JSON, and unformatted text. The following Unicode * characters are allowed:

#x9 | #xA | * #xD | #x20 to #xD7FF | * #xE000 to #xFFFD | #x10000 to * #x10FFFF

Any characters not included in this list will be * rejected. For more information, see the W3C specification for * characters.

If you don't specify the * DelaySeconds parameter for an entry, Amazon SQS uses the default * value for the queue.

Some actions take lists of parameters. These lists * are specified using the param.n notation. Values of n * are integers starting from 1. For example, a parameter list with two elements * looks like this:

&AttributeName.1=first

* &AttributeName.2=second

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SendMessageBatchAsync(const Model::SendMessageBatchRequest& request, const SendMessageBatchResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Sets the value of one or more queue attributes. When you change a queue's * attributes, the change can take up to 60 seconds for most of the attributes to * propagate throughout the Amazon SQS system. Changes made to the * MessageRetentionPeriod attribute can take up to 15 minutes.

*
  • In the future, new attributes might be added. If you write * code that calls this action, we recommend that you structure your code so that * it can handle new attributes gracefully.

  • Cross-account * permissions don't apply to this action. For more information, see Grant * Cross-Account Permissions to a Role and a User Name in the Amazon Simple * Queue Service Developer Guide.

  • To remove the ability to * change queue permissions, you must deny permission to the * AddPermission, RemovePermission, and * SetQueueAttributes actions in your IAM policy.

*

See Also:

AWS * API Reference

*/ virtual Model::SetQueueAttributesOutcome SetQueueAttributes(const Model::SetQueueAttributesRequest& request) const; /** *

Sets the value of one or more queue attributes. When you change a queue's * attributes, the change can take up to 60 seconds for most of the attributes to * propagate throughout the Amazon SQS system. Changes made to the * MessageRetentionPeriod attribute can take up to 15 minutes.

*
  • In the future, new attributes might be added. If you write * code that calls this action, we recommend that you structure your code so that * it can handle new attributes gracefully.

  • Cross-account * permissions don't apply to this action. For more information, see Grant * Cross-Account Permissions to a Role and a User Name in the Amazon Simple * Queue Service Developer Guide.

  • To remove the ability to * change queue permissions, you must deny permission to the * AddPermission, RemovePermission, and * SetQueueAttributes actions in your IAM policy.

*

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SetQueueAttributesOutcomeCallable SetQueueAttributesCallable(const Model::SetQueueAttributesRequest& request) const; /** *

Sets the value of one or more queue attributes. When you change a queue's * attributes, the change can take up to 60 seconds for most of the attributes to * propagate throughout the Amazon SQS system. Changes made to the * MessageRetentionPeriod attribute can take up to 15 minutes.

*
  • In the future, new attributes might be added. If you write * code that calls this action, we recommend that you structure your code so that * it can handle new attributes gracefully.

  • Cross-account * permissions don't apply to this action. For more information, see Grant * Cross-Account Permissions to a Role and a User Name in the Amazon Simple * Queue Service Developer Guide.

  • To remove the ability to * change queue permissions, you must deny permission to the * AddPermission, RemovePermission, and * SetQueueAttributes actions in your IAM policy.

*

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SetQueueAttributesAsync(const Model::SetQueueAttributesRequest& request, const SetQueueAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Add cost allocation tags to the specified Amazon SQS queue. For an overview, * see Tagging * Your Amazon SQS Queues in the Amazon Simple Queue Service Developer * Guide.

When you use queue tags, keep the following guidelines in * mind:

  • Adding more than 50 tags to a queue isn't * recommended.

  • Tags don't have any semantic meaning. Amazon SQS * interprets tags as character strings.

  • Tags are * case-sensitive.

  • A new tag with a key identical to that of an * existing tag overwrites the existing tag.

For a full list of * tag restrictions, see Limits * Related to Queues in the Amazon Simple Queue Service Developer * Guide.

Cross-account permissions don't apply to this action. * For more information, see Grant * Cross-Account Permissions to a Role and a User Name in the Amazon Simple * Queue Service Developer Guide.

See Also:

AWS API * Reference

*/ virtual Model::TagQueueOutcome TagQueue(const Model::TagQueueRequest& request) const; /** *

Add cost allocation tags to the specified Amazon SQS queue. For an overview, * see Tagging * Your Amazon SQS Queues in the Amazon Simple Queue Service Developer * Guide.

When you use queue tags, keep the following guidelines in * mind:

  • Adding more than 50 tags to a queue isn't * recommended.

  • Tags don't have any semantic meaning. Amazon SQS * interprets tags as character strings.

  • Tags are * case-sensitive.

  • A new tag with a key identical to that of an * existing tag overwrites the existing tag.

For a full list of * tag restrictions, see Limits * Related to Queues in the Amazon Simple Queue Service Developer * Guide.

Cross-account permissions don't apply to this action. * For more information, see Grant * Cross-Account Permissions to a Role and a User Name in the Amazon Simple * Queue Service Developer Guide.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::TagQueueOutcomeCallable TagQueueCallable(const Model::TagQueueRequest& request) const; /** *

Add cost allocation tags to the specified Amazon SQS queue. For an overview, * see Tagging * Your Amazon SQS Queues in the Amazon Simple Queue Service Developer * Guide.

When you use queue tags, keep the following guidelines in * mind:

  • Adding more than 50 tags to a queue isn't * recommended.

  • Tags don't have any semantic meaning. Amazon SQS * interprets tags as character strings.

  • Tags are * case-sensitive.

  • A new tag with a key identical to that of an * existing tag overwrites the existing tag.

For a full list of * tag restrictions, see Limits * Related to Queues in the Amazon Simple Queue Service Developer * Guide.

Cross-account permissions don't apply to this action. * For more information, see Grant * Cross-Account Permissions to a Role and a User Name in the Amazon Simple * Queue Service Developer Guide.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void TagQueueAsync(const Model::TagQueueRequest& request, const TagQueueResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Remove cost allocation tags from the specified Amazon SQS queue. For an * overview, see Tagging * Your Amazon SQS Queues in the Amazon Simple Queue Service Developer * Guide.

Cross-account permissions don't apply to this action. * For more information, see Grant * Cross-Account Permissions to a Role and a User Name in the Amazon Simple * Queue Service Developer Guide.

See Also:

AWS API * Reference

*/ virtual Model::UntagQueueOutcome UntagQueue(const Model::UntagQueueRequest& request) const; /** *

Remove cost allocation tags from the specified Amazon SQS queue. For an * overview, see Tagging * Your Amazon SQS Queues in the Amazon Simple Queue Service Developer * Guide.

Cross-account permissions don't apply to this action. * For more information, see Grant * Cross-Account Permissions to a Role and a User Name in the Amazon Simple * Queue Service Developer Guide.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UntagQueueOutcomeCallable UntagQueueCallable(const Model::UntagQueueRequest& request) const; /** *

Remove cost allocation tags from the specified Amazon SQS queue. For an * overview, see Tagging * Your Amazon SQS Queues in the Amazon Simple Queue Service Developer * Guide.

Cross-account permissions don't apply to this action. * For more information, see Grant * Cross-Account Permissions to a Role and a User Name in the Amazon Simple * Queue Service Developer Guide.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UntagQueueAsync(const Model::UntagQueueRequest& request, const UntagQueueResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; void OverrideEndpoint(const Aws::String& endpoint); private: void init(const Aws::Client::ClientConfiguration& clientConfiguration); void AddPermissionAsyncHelper(const Model::AddPermissionRequest& request, const AddPermissionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ChangeMessageVisibilityAsyncHelper(const Model::ChangeMessageVisibilityRequest& request, const ChangeMessageVisibilityResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ChangeMessageVisibilityBatchAsyncHelper(const Model::ChangeMessageVisibilityBatchRequest& request, const ChangeMessageVisibilityBatchResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateQueueAsyncHelper(const Model::CreateQueueRequest& request, const CreateQueueResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteMessageAsyncHelper(const Model::DeleteMessageRequest& request, const DeleteMessageResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteMessageBatchAsyncHelper(const Model::DeleteMessageBatchRequest& request, const DeleteMessageBatchResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteQueueAsyncHelper(const Model::DeleteQueueRequest& request, const DeleteQueueResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetQueueAttributesAsyncHelper(const Model::GetQueueAttributesRequest& request, const GetQueueAttributesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetQueueUrlAsyncHelper(const Model::GetQueueUrlRequest& request, const GetQueueUrlResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListDeadLetterSourceQueuesAsyncHelper(const Model::ListDeadLetterSourceQueuesRequest& request, const ListDeadLetterSourceQueuesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListQueueTagsAsyncHelper(const Model::ListQueueTagsRequest& request, const ListQueueTagsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListQueuesAsyncHelper(const Model::ListQueuesRequest& request, const ListQueuesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void PurgeQueueAsyncHelper(const Model::PurgeQueueRequest& request, const PurgeQueueResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ReceiveMessageAsyncHelper(const Model::ReceiveMessageRequest& request, const ReceiveMessageResponseReceivedHandler& handler, const std::shared_ptr& context) const; void RemovePermissionAsyncHelper(const Model::RemovePermissionRequest& request, const RemovePermissionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SendMessageAsyncHelper(const Model::SendMessageRequest& request, const SendMessageResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SendMessageBatchAsyncHelper(const Model::SendMessageBatchRequest& request, const SendMessageBatchResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SetQueueAttributesAsyncHelper(const Model::SetQueueAttributesRequest& request, const SetQueueAttributesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void TagQueueAsyncHelper(const Model::TagQueueRequest& request, const TagQueueResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UntagQueueAsyncHelper(const Model::UntagQueueRequest& request, const UntagQueueResponseReceivedHandler& handler, const std::shared_ptr& context) const; Aws::String m_uri; Aws::String m_configScheme; std::shared_ptr m_executor; }; } // namespace SQS } // namespace Aws