Class QueueAsyncClient

java.lang.Object
com.azure.storage.queue.QueueAsyncClient

public final class QueueAsyncClient extends Object
This class provides a client that contains all the operations for interacting with a queue in Azure Storage Queue. Operations allowed by the client are creating and deleting the queue, retrieving and updating metadata and access policies of the queue, and enqueuing, dequeuing, peeking, updating, and deleting messages.

Instantiating an Asynchronous Queue Client

 QueueAsyncClient client = new QueueClientBuilder()
     .connectionString("connectionstring")
     .endpoint("endpoint")
     .buildAsyncClient();
 

View this for additional ways to construct the client.

See Also:
  • Method Details

    • getQueueUrl

      public String getQueueUrl()
      Returns:
      the URL of the storage queue
    • getServiceVersion

      public QueueServiceVersion getServiceVersion()
      Gets the service version the client is using.
      Returns:
      the service version the client is using.
    • getMessageEncoding

      public QueueMessageEncoding getMessageEncoding()
      Gets the message encoding the client is using.
      Returns:
      the message encoding the client is using.
    • getHttpPipeline

      public HttpPipeline getHttpPipeline()
      Gets the HttpPipeline powering this client.
      Returns:
      The pipeline.
    • create

      public Mono<Void> create()
      Creates a new queue.

      Code Samples

      Create a queue

       client.create().subscribe(
           response -> {
           },
           error -> System.err.print(error.toString()),
           () -> System.out.println("Complete creating the queue!")
       );
       

      For more information, see the Azure Docs.

      Returns:
      An empty response
      Throws:
      QueueStorageException - If a queue with the same name already exists in the queue service.
    • createWithResponse

      public Mono<Response<Void>> createWithResponse(Map<String,String> metadata)
      Creates a new queue.

      Code Samples

      Create a queue with metadata "queue:metadataMap"

       client.createWithResponse(Collections.singletonMap("queue", "metadataMap")).subscribe(
           response -> System.out.println("Complete creating the queue with status code:" + response.getStatusCode()),
           error -> System.err.print(error.toString())
       );
       

      For more information, see the Azure Docs.

      Parameters:
      metadata - Metadata to associate with the queue. If there is leading or trailing whitespace in any metadata key or value, it must be removed or encoded.
      Returns:
      A response that only contains headers and response status code
      Throws:
      QueueStorageException - If a queue with the same name and different metadata already exists in the queue service.
    • createIfNotExists

      public Mono<Boolean> createIfNotExists()
      Creates a new queue.

      Code Samples

      Create a queue

       client.createIfNotExists().subscribe(created -> {
           if (created) {
               System.out.println("Successfully created.");
           } else {
               System.out.println("Already exists.");
           }
       });
       

      For more information, see the Azure Docs.

      Returns:
      A reactive response signaling completion. true indicates a new queue was created, false indicates the specified queue already existed.
    • createIfNotExistsWithResponse

      public Mono<Response<Boolean>> createIfNotExistsWithResponse(Map<String,String> metadata)
      Creates a new queue.

      Code Samples

      Create a queue with metadata "queue:metadataMap"

       client.createIfNotExistsWithResponse(Collections.singletonMap("queue", "metadataMap"))
           .subscribe(response -> {
               if (response.getStatusCode() == 409) {
                   System.out.println("Already exists.");
               } else {
                   System.out.println("successfully created.");
               }
           });
       

      For more information, see the Azure Docs.

      Parameters:
      metadata - Metadata to associate with the queue. If there is leading or trailing whitespace in any metadata key or value, it must be removed or encoded.
      Returns:
      A reactive response signaling completion. If Response's status code is 201, a new queue was successfully created. If status code is 204 or 409, a queue already existed at this location.
    • delete

      public Mono<Void> delete()
      Permanently deletes the queue.

      Code Samples

      Delete a queue

       client.delete().doOnSuccess(
           response -> System.out.println("Deleting the queue completed.")
       );
       

      For more information, see the Azure Docs.

      Returns:
      An empty response
      Throws:
      QueueStorageException - If the queue doesn't exist
    • deleteWithResponse

      public Mono<Response<Void>> deleteWithResponse()
      Permanently deletes the queue.

      Code Samples

      Delete a queue

       client.deleteWithResponse().subscribe(
           response -> System.out.println("Deleting the queue completed with status code: " + response.getStatusCode())
       );
       

      For more information, see the Azure Docs.

      Returns:
      A response that only contains headers and response status code
      Throws:
      QueueStorageException - If the queue doesn't exist
    • deleteIfExists

      public Mono<Boolean> deleteIfExists()
      Permanently deletes the queue if it exists.

      Code Samples

      Delete a queue

       client.deleteIfExists().subscribe(deleted -> {
           if (deleted) {
               System.out.println("Successfully deleted.");
           } else {
               System.out.println("Does not exist.");
           }
       });
       

      For more information, see the Azure Docs.

      Returns:
      a reactive response signaling completion. true indicates that the queue was successfully deleted, false indicates that the queue did not exist.
    • deleteIfExistsWithResponse

      public Mono<Response<Boolean>> deleteIfExistsWithResponse()
      Permanently deletes the queue if it exists.

      Code Samples

      Delete a queue

       client.deleteIfExistsWithResponse().subscribe(response -> {
           if (response.getStatusCode() == 404) {
               System.out.println("Does not exist.");
           } else {
               System.out.println("successfully deleted.");
           }
       });
       

      For more information, see the Azure Docs.

      Returns:
      A reactive response signaling completion. If Response's status code is 204, the queue was successfully deleted. If status code is 404, the queue does not exist.
    • getProperties

      public Mono<QueueProperties> getProperties()
      Retrieves metadata and approximate message count of the queue.

      Code Samples

      Get the properties of the queue

       client.getProperties()
           .subscribe(properties -> {
               System.out.printf("Metadata: %s, Approximate message count: %d", properties.getMetadata(),
                   properties.getApproximateMessagesCount());
           });
       

      For more information, see the Azure Docs.

      Returns:
      A response containing a QueueProperties value which contains the metadata and approximate messages count of the queue.
      Throws:
      QueueStorageException - If the queue doesn't exist
    • getPropertiesWithResponse

      public Mono<Response<QueueProperties>> getPropertiesWithResponse()
      Retrieves metadata and approximate message count of the queue.

      Code Samples

      Get the properties of the queue

       client.getPropertiesWithResponse()
           .subscribe(response -> {
               QueueProperties properties = response.getValue();
               System.out.printf("Metadata: %s, Approximate message count: %d", properties.getMetadata(),
                   properties.getApproximateMessagesCount());
           });
       

      For more information, see the Azure Docs.

      Returns:
      A response containing a QueueProperties value which contains the metadata and approximate messages count of the queue.
      Throws:
      QueueStorageException - If the queue doesn't exist
    • setMetadata

      public Mono<Void> setMetadata(Map<String,String> metadata)
      Sets the metadata of the queue. Passing in a null value for metadata will clear the metadata associated with the queue.

      Code Samples

      Set the queue's metadata to "queue:metadataMap"

       client.setMetadata(Collections.singletonMap("queue", "metadataMap"))
           .subscribe(response -> System.out.println("Setting metadata completed."));
       

      Clear the queue's metadata

       client.setMetadata(null)
           .subscribe(response -> System.out.println("Clearing metadata completed."));
       

      For more information, see the Azure Docs.

      Parameters:
      metadata - Metadata to set on the queue
      Returns:
      A response that only contains headers and response status code
      Throws:
      QueueStorageException - If the queue doesn't exist
    • setMetadataWithResponse

      public Mono<Response<Void>> setMetadataWithResponse(Map<String,String> metadata)
      Sets the metadata of the queue. Passing in a null value for metadata will clear the metadata associated with the queue.

      Code Samples

      Set the queue's metadata to "queue:metadataMap"

       client.setMetadataWithResponse(Collections.singletonMap("queue", "metadataMap"))
           .subscribe(response -> System.out.printf("Setting metadata completed with status code %d",
               response.getStatusCode()));
       

      Clear the queue's metadata

       client.setMetadataWithResponse(null)
           .subscribe(response -> System.out.printf("Clearing metadata completed with status code %d",
               response.getStatusCode()));
       

      For more information, see the Azure Docs.

      Parameters:
      metadata - Metadata to set on the queue
      Returns:
      A response that only contains headers and response status code
      Throws:
      QueueStorageException - If the queue doesn't exist
    • getAccessPolicy

      public PagedFlux<QueueSignedIdentifier> getAccessPolicy()
      Retrieves stored access policies specified on the queue.

      Code Samples

      List the stored access policies

       client.getAccessPolicy()
           .subscribe(result -> System.out.printf("Access policy %s allows these permissions: %s",
               result.getId(), result.getAccessPolicy().getPermissions()));
       

      For more information, see the Azure Docs.

      Returns:
      The stored access policies specified on the queue.
      Throws:
      QueueStorageException - If the queue doesn't exist
    • setAccessPolicy

      public Mono<Void> setAccessPolicy(Iterable<QueueSignedIdentifier> permissions)
      Sets stored access policies on the queue.

      Code Samples

      Set a read only stored access policy

       QueueAccessPolicy accessPolicy = new QueueAccessPolicy().setPermissions("r")
           .setStartsOn(OffsetDateTime.now(ZoneOffset.UTC))
           .setExpiresOn(OffsetDateTime.now(ZoneOffset.UTC).plusDays(10));
      
       QueueSignedIdentifier permission = new QueueSignedIdentifier().setId("mypolicy").setAccessPolicy(accessPolicy);
       client.setAccessPolicy(Collections.singletonList(permission))
           .subscribe(response -> System.out.println("Setting access policies completed."));
       

      For more information, see the Azure Docs.

      Parameters:
      permissions - Access policies to set on the queue
      Returns:
      An empty response
      Throws:
      QueueStorageException - If the queue doesn't exist, a stored access policy doesn't have all fields filled out, or the queue will have more than five policies.
    • setAccessPolicyWithResponse

      public Mono<Response<Void>> setAccessPolicyWithResponse(Iterable<QueueSignedIdentifier> permissions)
      Sets stored access policies on the queue.

      Code Samples

      Set a read only stored access policy

       QueueAccessPolicy accessPolicy = new QueueAccessPolicy().setPermissions("r")
           .setStartsOn(OffsetDateTime.now(ZoneOffset.UTC))
           .setExpiresOn(OffsetDateTime.now(ZoneOffset.UTC).plusDays(10));
      
       QueueSignedIdentifier permission = new QueueSignedIdentifier().setId("mypolicy").setAccessPolicy(accessPolicy);
       client.setAccessPolicyWithResponse(Collections.singletonList(permission))
           .subscribe(response -> System.out.printf("Setting access policies completed with status code %d",
               response.getStatusCode()));
       

      For more information, see the Azure Docs.

      Parameters:
      permissions - Access policies to set on the queue
      Returns:
      A response that only contains headers and response status code
      Throws:
      QueueStorageException - If the queue doesn't exist, a stored access policy doesn't have all fields filled out, or the queue will have more than five policies.
    • clearMessages

      public Mono<Void> clearMessages()
      Deletes all messages in the queue.

      Code Samples

      Clear the messages

       client.clearMessages().subscribe(
           response -> System.out.println("Clearing messages completed."));
       

      For more information, see the Azure Docs.

      Returns:
      An empty response
      Throws:
      QueueStorageException - If the queue doesn't exist
    • clearMessagesWithResponse

      public Mono<Response<Void>> clearMessagesWithResponse()
      Deletes all messages in the queue.

      Code Samples

      Clear the messages

       client.clearMessagesWithResponse().doOnSuccess(
           response -> System.out.println("Clearing messages completed with status code: " + response.getStatusCode())
       );
       

      For more information, see the Azure Docs.

      Returns:
      A response that only contains headers and response status code
      Throws:
      QueueStorageException - If the queue doesn't exist
    • sendMessage

      public Mono<SendMessageResult> sendMessage(String messageText)
      Enqueues a message that has a time-to-live of 7 days and is instantly visible.

      Code Samples

      Enqueue a message of "Hello, Azure"

       client.sendMessage("Hello, Azure").subscribe(
           response -> {
           },
           error -> System.err.print(error.toString()),
           () -> System.out.println("Complete enqueuing the message!")
       );
       

      For more information, see the Azure Docs.

      Parameters:
      messageText - Message text
      Returns:
      A SendMessageResult value that contains the messageId and popReceipt that are used to interact with the message and other metadata about the enqueued message.
      Throws:
      QueueStorageException - If the queue doesn't exist
    • sendMessage

      public Mono<SendMessageResult> sendMessage(BinaryData message)
      Enqueues a message that has a time-to-live of 7 days and is instantly visible.

      Code Samples

      Enqueue a message of "Hello, Azure"

       client.sendMessage(BinaryData.fromString("Hello, Azure")).subscribe(
               response -> {
               },
               error -> System.err.print(error.toString()),
               () -> System.out.println("Complete enqueuing the message!")
       );
       

      For more information, see the Azure Docs.

      Parameters:
      message - Message content
      Returns:
      A SendMessageResult value that contains the messageId and popReceipt that are used to interact with the message and other metadata about the enqueued message.
      Throws:
      QueueStorageException - If the queue doesn't exist
    • sendMessageWithResponse

      public Mono<Response<SendMessageResult>> sendMessageWithResponse(String messageText, Duration visibilityTimeout, Duration timeToLive)
      Enqueues a message with a given time-to-live and a timeout period where the message is invisible in the queue.

      Code Samples

      Add a message of "Hello, Azure" that has a timeout of 5 seconds

       client.sendMessageWithResponse("Hello, Azure",
           Duration.ofSeconds(5), null).subscribe(
               response -> System.out.printf("Message %s expires at %s", response.getValue().getMessageId(),
                   response.getValue().getExpirationTime()),
               error -> System.err.print(error.toString()),
               () -> System.out.println("Complete enqueuing the message!")
       );
       

      Add a message of "Goodbye, Azure" that has a time to live of 5 seconds

       client.sendMessageWithResponse("Goodbye, Azure",
           null, Duration.ofSeconds(5)).subscribe(
               response -> System.out.printf("Message %s expires at %s", response.getValue().getMessageId(),
                   response.getValue().getExpirationTime()),
               error -> System.err.print(error.toString()),
               () -> System.out.println("Complete enqueuing the message!")
       );
       

      For more information, see the Azure Docs.

      Parameters:
      messageText - Message text
      visibilityTimeout - Optional. The timeout period for how long the message is invisible in the queue. If unset the value will default to 0 and the message will be instantly visible. The timeout must be between 0 seconds and 7 days.
      timeToLive - Optional. How long the message will stay alive in the queue. If unset the value will default to 7 days, if Duration.ofSeconds(-1) is passed the message will not expire. The time to live must be Duration.ofSeconds(-1) or any positive number of seconds.
      Returns:
      A SendMessageResult value that contains the messageId and popReceipt that are used to interact with the message and other metadata about the enqueued message.
      Throws:
      QueueStorageException - If the queue doesn't exist or the visibilityTimeout or timeToLive are outside the allowed limits.
    • sendMessageWithResponse

      public Mono<Response<SendMessageResult>> sendMessageWithResponse(BinaryData message, Duration visibilityTimeout, Duration timeToLive)
      Enqueues a message with a given time-to-live and a timeout period where the message is invisible in the queue.

      Code Samples

      Add a message of "Hello, Azure" that has a timeout of 5 seconds

       client.sendMessageWithResponse(BinaryData.fromString("Hello, Azure"),
               Duration.ofSeconds(5), null).subscribe(
               response -> System.out.printf("Message %s expires at %s", response.getValue().getMessageId(),
                   response.getValue().getExpirationTime()),
               error -> System.err.print(error.toString()),
               () -> System.out.println("Complete enqueuing the message!")
       );
       

      Add a message of "Goodbye, Azure" that has a time to live of 5 seconds

       client.sendMessageWithResponse(BinaryData.fromString("Goodbye, Azure"),
               null, Duration.ofSeconds(5)).subscribe(
               response -> System.out.printf("Message %s expires at %s", response.getValue().getMessageId(),
                   response.getValue().getExpirationTime()),
               error -> System.err.print(error.toString()),
               () -> System.out.println("Complete enqueuing the message!")
       );
       

      For more information, see the Azure Docs.

      Parameters:
      message - Message content.
      visibilityTimeout - Optional. The timeout period for how long the message is invisible in the queue. If unset the value will default to 0 and the message will be instantly visible. The timeout must be between 0 seconds and 7 days.
      timeToLive - Optional. How long the message will stay alive in the queue. If unset the value will default to 7 days, if Duration.ofSeconds(-1) is passed the message will not expire. The time to live must be Duration.ofSeconds(-1) or any positive number of seconds.
      Returns:
      A SendMessageResult value that contains the messageId and popReceipt that are used to interact with the message and other metadata about the enqueued message.
      Throws:
      QueueStorageException - If the queue doesn't exist or the visibilityTimeout or timeToLive are outside the allowed limits.
    • receiveMessage

      public Mono<QueueMessageItem> receiveMessage()
      Retrieves the first message in the queue and hides it from other operations for 30 seconds.

      Code Samples

      Dequeue a message

       client.receiveMessage().subscribe(
           message -> System.out.println("The message got from getMessages operation: "
               + message.getBody().toString()),
           error -> System.err.print(error.toString()),
           () -> System.out.println("Complete receiving the message!")
       );
       

      For more information, see the Azure Docs.

      Returns:
      The first QueueMessageItem in the queue, it contains messageId and popReceipt used to interact with the message, additionally it contains other metadata about the message.
      Throws:
      QueueStorageException - If the queue doesn't exist
    • receiveMessages

      public PagedFlux<QueueMessageItem> receiveMessages(Integer maxMessages)
      Retrieves up to the maximum number of messages from the queue and hides them from other operations for 30 seconds.

      Code Samples

      Dequeue up to 5 messages

       client.receiveMessages(5).subscribe(
           message -> System.out.println("The message got from getMessages operation: "
               + message.getBody().toString()),
           error -> System.err.print(error.toString()),
           () -> System.out.println("Complete receiving the message!")
       );
       

      For more information, see the Azure Docs.

      Parameters:
      maxMessages - Optional. Maximum number of messages to get, if there are fewer messages exist in the queue than requested all the messages will be returned. If left empty only 1 message will be retrieved, the allowed range is 1 to 32 messages.
      Returns:
      Up to maxMessages ReceiveMessageItem from the queue. Each DequeuedMessage contains messageId and popReceipt used to interact with the message and other metadata about the message.
      Throws:
      QueueStorageException - If the queue doesn't exist or maxMessages is outside the allowed bounds
    • receiveMessages

      public PagedFlux<QueueMessageItem> receiveMessages(Integer maxMessages, Duration visibilityTimeout)
      Retrieves up to the maximum number of messages from the queue and hides them from other operations for the timeout period.

      Code Samples

      Dequeue up to 5 messages and give them a 60 second timeout period

       client.receiveMessages(5, Duration.ofSeconds(60))
           .subscribe(
               message -> System.out.println("The message got from getMessages operation: "
                   + message.getBody().toString()),
               error -> System.err.print(error.toString()),
               () -> System.out.println("Complete receiving the message!")
           );
       

      For more information, see the Azure Docs.

      Parameters:
      maxMessages - Optional. Maximum number of messages to get, if there are fewer messages exist in the queue than requested all the messages will be returned. If left empty only 1 message will be retrieved, the allowed range is 1 to 32 messages.
      visibilityTimeout - Optional. The timeout period for how long the message is invisible in the queue. If left empty the dequeued messages will be invisible for 30 seconds. The timeout must be between 1 second and 7 days.
      Returns:
      Up to maxMessages DequeuedMessages from the queue. Each DeqeuedMessage contains messageId and popReceipt used to interact with the message and other metadata about the message.
      Throws:
      QueueStorageException - If the queue doesn't exist or maxMessages or visibilityTimeout is outside the allowed bounds
    • peekMessage

      public Mono<PeekedMessageItem> peekMessage()
      Peeks the first message in the queue. Peeked messages don't contain the necessary information needed to interact with the message nor will it hide messages from other operations on the queue.

      Code Samples

      Peek the first message

       client.peekMessage().subscribe(
           peekMessages -> System.out.println("The message got from peek operation: "
               + peekMessages.getBody().toString()),
           error -> System.err.print(error.toString()),
           () -> System.out.println("Complete peeking the message!")
       );
       

      For more information, see the Azure Docs.

      Returns:
      A PeekedMessageItem that contains metadata about the message.
    • peekMessages

      public PagedFlux<PeekedMessageItem> peekMessages(Integer maxMessages)
      Peek messages from the front of the queue up to the maximum number of messages. Peeked messages don't contain the necessary information needed to interact with the message nor will it hide messages from other operations on the queue.

      Code Samples

      Peek up to the first five messages

       client.peekMessages(5).subscribe(
           peekMessage -> System.out.printf("Peeked message %s has been received %d times",
               peekMessage.getMessageId(), peekMessage.getDequeueCount()),
           error -> System.err.print(error.toString()),
           () -> System.out.println("Complete peeking the message!")
       );
       

      For more information, see the Azure Docs.

      Parameters:
      maxMessages - Optional. Maximum number of messages to peek, if there are fewer messages exist in the queue than requested all the messages will be peeked. If left empty only 1 message will be peeked, the allowed range is 1 to 32 messages.
      Returns:
      Up to maxMessages PeekedMessages from the queue. Each PeekedMessage contains metadata about the message.
      Throws:
      QueueStorageException - If the queue doesn't exist or maxMessages is outside the allowed bounds
    • updateMessage

      public Mono<UpdateMessageResult> updateMessage(String messageId, String popReceipt, String messageText, Duration visibilityTimeout)
      Updates the specific message in the queue with a new message and resets the visibility timeout.

      Code Samples

      Dequeue the first message and update it to "Hello again, Azure" and hide it for 5 seconds

       client.receiveMessage().subscribe(
           message -> {
               client.updateMessage("newText", message.getMessageId(),
                   message.getPopReceipt(), null).subscribe(
                       response -> {
                       },
                       updateError -> System.err.print(updateError.toString()),
                       () -> System.out.println("Complete updating the message!")
               );
           },
           error -> System.err.print(error.toString()),
           () -> System.out.println("Complete receiving the message!")
       );
       

      For more information, see the Azure Docs.

      Parameters:
      messageId - ID of the message to update
      popReceipt - Unique identifier that must match for the message to be updated
      messageText - Updated value for the message
      visibilityTimeout - The timeout period for how long the message is invisible in the queue in seconds. The timeout period must be between 1 second and 7 days. The default value is Duration.ZERO.
      Returns:
      A UpdateMessageResult that contains the new popReceipt to interact with the message, additionally contains the updated metadata about the message.
      Throws:
      QueueStorageException - If the queue or messageId don't exist, the popReceipt doesn't match on the message, or the visibilityTimeout is outside the allowed bounds
    • updateMessageWithResponse

      public Mono<Response<UpdateMessageResult>> updateMessageWithResponse(String messageId, String popReceipt, String messageText, Duration visibilityTimeout)
      Updates the specific message in the queue with a new message and resets the visibility timeout.

      Code Samples

      Dequeue the first message and update it to "Hello again, Azure" and hide it for 5 seconds

      
       client.receiveMessage().subscribe(
           message -> {
               client.updateMessageWithResponse(message.getMessageId(), message.getPopReceipt(), "newText",
                   null).subscribe(
                       response -> System.out.println("Complete updating the message with status code:"
                           + response.getStatusCode()),
                       updateError -> System.err.print(updateError.toString()),
                       () -> System.out.println("Complete updating the message!")
               );
           },
           error -> System.err.print(error.toString()),
           () -> System.out.println("Complete receiving the message!")
       );
       

      For more information, see the Azure Docs.

      Parameters:
      messageId - ID of the message to update
      popReceipt - Unique identifier that must match for the message to be updated
      messageText - Updated value for the message
      visibilityTimeout - The timeout period for how long the message is invisible in the queue in seconds. The timeout period must be between 1 second and 7 days. The default value is Duration.ZERO.
      Returns:
      A UpdateMessageResult that contains the new popReceipt to interact with the message, additionally contains the updated metadata about the message.
      Throws:
      QueueStorageException - If the queue or messageId don't exist, the popReceipt doesn't match on the message, or the visibilityTimeout is outside the allowed bounds
    • deleteMessage

      public Mono<Void> deleteMessage(String messageId, String popReceipt)
      Deletes the specified message in the queue

      Code Samples

      Delete the first message

       client.receiveMessage().subscribe(
           message -> {
               client.deleteMessage(message.getMessageId(), message.getPopReceipt()).subscribe(
                   response -> {
                   },
                   deleteError -> System.err.print(deleteError.toString()),
                   () -> System.out.println("Complete deleting the message!")
               );
           },
           error -> System.err.print(error.toString()),
           () -> System.out.println("Complete receiving the message!")
       );
       

      For more information, see the Azure Docs.

      Parameters:
      messageId - ID of the message to deleted
      popReceipt - Unique identifier that must match for the message to be deleted
      Returns:
      An empty response
      Throws:
      QueueStorageException - If the queue or messageId don't exist or the popReceipt doesn't match on the message.
    • deleteMessageWithResponse

      public Mono<Response<Void>> deleteMessageWithResponse(String messageId, String popReceipt)
      Deletes the specified message in the queue

      Code Samples

      Delete the first message

       client.receiveMessage().subscribe(
           message -> {
               client.deleteMessageWithResponse(message.getMessageId(), message.getPopReceipt())
                   .subscribe(
                       response -> System.out.println("Complete deleting the message with status code: "
                           + response.getStatusCode()),
                       deleteError -> System.err.print(deleteError.toString()),
                       () -> System.out.println("Complete deleting the message!")
                   );
           },
           error -> System.err.print(error.toString()),
           () -> System.out.println("Complete receiving the message!")
       );
       

      For more information, see the Azure Docs.

      Parameters:
      messageId - ID of the message to deleted
      popReceipt - Unique identifier that must match for the message to be deleted
      Returns:
      A response that only contains headers and response status code
      Throws:
      QueueStorageException - If the queue or messageId don't exist or the popReceipt doesn't match on the message.
    • getQueueName

      public String getQueueName()
      Get the queue name of the client.

      Code Samples

       String queueName = client.getQueueName();
       System.out.println("The name of the queue is " + queueName);
       
      Returns:
      The name of the queue.
    • getAccountName

      public String getAccountName()
      Get associated account name.
      Returns:
      account name associated with this storage resource.
    • generateSas

      public String generateSas(QueueServiceSasSignatureValues queueServiceSasSignatureValues)
      Generates a service sas for the queue using the specified QueueServiceSasSignatureValues

      Note : The client must be authenticated via StorageSharedKeyCredential

      See QueueServiceSasSignatureValues for more information on how to construct a service SAS.

      Code Samples

       OffsetDateTime expiryTime = OffsetDateTime.now().plusDays(1);
       QueueSasPermission permission = new QueueSasPermission().setReadPermission(true);
      
       QueueServiceSasSignatureValues values = new QueueServiceSasSignatureValues(expiryTime, permission)
           .setStartTime(OffsetDateTime.now());
      
       client.generateSas(values); // Client must be authenticated via StorageSharedKeyCredential
       
      Parameters:
      queueServiceSasSignatureValues - QueueServiceSasSignatureValues
      Returns:
      A String representing the SAS query parameters.
    • generateSas

      public String generateSas(QueueServiceSasSignatureValues queueServiceSasSignatureValues, Context context)
      Generates a service sas for the queue using the specified QueueServiceSasSignatureValues

      Note : The client must be authenticated via StorageSharedKeyCredential

      See QueueServiceSasSignatureValues for more information on how to construct a service SAS.

      Code Samples

       OffsetDateTime expiryTime = OffsetDateTime.now().plusDays(1);
       QueueSasPermission permission = new QueueSasPermission().setReadPermission(true);
      
       QueueServiceSasSignatureValues values = new QueueServiceSasSignatureValues(expiryTime, permission)
           .setStartTime(OffsetDateTime.now());
      
       // Client must be authenticated via StorageSharedKeyCredential
       client.generateSas(values, new Context("key", "value"));
       
      Parameters:
      queueServiceSasSignatureValues - QueueServiceSasSignatureValues
      context - Additional context that is passed through the code when generating a SAS.
      Returns:
      A String representing the SAS query parameters.