Class QueueServiceAsyncClient


  • public final class QueueServiceAsyncClient
    extends Object
    This class provides a client that contains all the operations for interacting with a queue account in Azure Storage. Operations allowed by the client are creating, listing, and deleting queues, retrieving and updating properties of the account, and retrieving statistics of the account.

    Instantiating an Asynchronous Queue Service Client

     QueueServiceAsyncClient client = new QueueServiceClientBuilder()
         .connectionString("connectionstring")
         .endpoint("endpoint")
         .buildAsyncClient();
     

    View this for additional ways to construct the client.

    See Also:
    QueueServiceClientBuilder, QueueServiceClient, StorageSharedKeyCredential
    • Method Detail

      • getQueueServiceUrl

        public String getQueueServiceUrl()
        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.
      • getQueueAsyncClient

        public QueueAsyncClient getQueueAsyncClient​(String queueName)
        Constructs a QueueAsyncClient that interacts with the specified queue. This will not create the queue in the storage account if it doesn't exist.
        Parameters:
        queueName - Name of the queue
        Returns:
        QueueAsyncClient that interacts with the specified queue
      • createQueue

        public Mono<QueueAsyncClient> createQueue​(String queueName)
        Creates a queue in the storage account with the specified name and returns a QueueAsyncClient to interact with it.

        Code Samples

        Create the queue "test"

         client.createQueue("myqueue").subscribe(
             response -> {
             },
             error -> System.err.print(error.toString()),
             () -> System.out.println("Complete creating the queue!")
         );
         
        Parameters:
        queueName - Name of the queue
        Returns:
        The QueueAsyncClient
        Throws:
        QueueStorageException - If a queue with the same name and different metadata already exists
      • createQueueWithResponse

        public Mono<com.azure.core.http.rest.Response<QueueAsyncClient>> createQueueWithResponse​(String queueName,
                                                                                                 Map<String,​String> metadata)
        Creates a queue in the storage account with the specified name and metadata and returns a QueueAsyncClient to interact with it.

        Code Samples

        Create the queue "test" with metadata "queue:metadata"

         client.createQueueWithResponse("myqueue", Collections.singletonMap("queue", "metadata"))
             .subscribe(
                 response -> System.out.printf("Creating the queue with status code %d", response.getStatusCode()),
                 error -> System.err.print(error.toString()),
                 () -> System.out.println("Complete creating the queue!")
             );
         
        Parameters:
        queueName - Name of the queue
        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 containing the QueueAsyncClient and the status of creating the queue
        Throws:
        QueueStorageException - If a queue with the same name and different metadata already exists
      • deleteQueue

        public Mono<Void> deleteQueue​(String queueName)
        Deletes a queue in the storage account

        Code Samples

        Delete the queue "test"

         client.deleteQueue("myshare").subscribe(
             response -> System.out.println("Deleting the queue completed.")
         );
         
        Parameters:
        queueName - Name of the queue
        Returns:
        An empty response
        Throws:
        QueueStorageException - If the queue doesn't exist
      • deleteQueueWithResponse

        public Mono<com.azure.core.http.rest.Response<Void>> deleteQueueWithResponse​(String queueName)
        Deletes a queue in the storage account

        Code Samples

        Delete the queue "test"

         client.deleteQueueWithResponse("myshare").subscribe(
             response -> System.out.println("Deleting the queue completed with status code: " + response.getStatusCode())
         );
         
        Parameters:
        queueName - Name of the queue
        Returns:
        A response that only contains headers and response status code
        Throws:
        QueueStorageException - If the queue doesn't exist
      • listQueues

        public com.azure.core.http.rest.PagedFlux<QueueItem> listQueues()
        Lists all queues in the storage account without their metadata.

        Code Samples

        List all queues in the account

         client.listQueues().subscribe(
             queueItem -> System.out.printf("Queue %s exists in the account", queueItem.getName()),
             error -> System.err.print(error.toString()),
             () -> System.out.println("Complete listing the queues!")
         );
         

        For more information, see the Azure Docs.

        Returns:
        Queues in the storage account
      • listQueues

        public com.azure.core.http.rest.PagedFlux<QueueItem> listQueues​(QueuesSegmentOptions options)
        Lists the queues in the storage account that pass the filter. Pass true to includeMetadata to have metadata returned for the queues.

        Code Samples

        List all queues that begin with "azure"

         client.listQueues(new QueuesSegmentOptions().setPrefix("azure")).subscribe(
             queueItem -> System.out.printf("Queue %s exists in the account and has metadata %s",
                 queueItem.getName(), queueItem.getMetadata()),
             error -> System.err.print(error.toString()),
             () -> System.out.println("Complete listing the queues!")
         );
         

        For more information, see the Azure Docs.

        Parameters:
        options - Options for listing queues
        Returns:
        Queues in the storage account that satisfy the filter requirements
      • getProperties

        public Mono<QueueServiceProperties> getProperties()
        Retrieves the properties of the storage account's Queue service. The properties range from storage analytics and metric to CORS (Cross-Origin Resource Sharing).

        Code Samples

        Retrieve Queue service properties

         client.getProperties()
             .subscribe(properties -> {
                 System.out.printf("Hour metrics enabled: %b, Minute metrics enabled: %b",
                     properties.getHourMetrics().isEnabled(), properties.getMinuteMetrics().isEnabled());
             });
         

        For more information, see the Azure Docs.

        Returns:
        Storage account Queue service properties
      • getPropertiesWithResponse

        public Mono<com.azure.core.http.rest.Response<QueueServiceProperties>> getPropertiesWithResponse()
        Retrieves the properties of the storage account's Queue service. The properties range from storage analytics and metric to CORS (Cross-Origin Resource Sharing).

        Code Samples

        Retrieve Queue service properties

         client.getPropertiesWithResponse()
             .subscribe(response -> {
                 QueueServiceProperties properties = response.getValue();
                 System.out.printf("Hour metrics enabled: %b, Minute metrics enabled: %b",
                     properties.getHourMetrics().isEnabled(), properties.getMinuteMetrics().isEnabled());
             });
         

        For more information, see the Azure Docs.

        Returns:
        A response containing the Storage account Queue service properties
      • setProperties

        public Mono<Void> setProperties​(QueueServiceProperties properties)
        Sets the properties for the storage account's Queue service. The properties range from storage analytics and metric to CORS (Cross-Origin Resource Sharing). To maintain the CORS in the Queue service pass a null value for CORS. To disable all CORS in the Queue service pass an empty list for CORS.

        Code Sample

        Clear CORS in the Queue service

         QueueServiceProperties properties = client.getProperties().block();
         client.setProperties(properties)
             .doOnSuccess(response -> System.out.println("Setting Queue service properties completed."));
         

        Enable Minute and Hour Metrics

         QueueServiceProperties properties = client.getProperties().block();
         properties.getMinuteMetrics().setEnabled(true);
         properties.getHourMetrics().setEnabled(true);
         client.setProperties(properties).subscribe(
             response -> System.out.println("Setting Queue service properties completed."));
         

        For more information, see the Azure Docs.

        Parameters:
        properties - Storage account Queue service properties
        Returns:
        An empty response
        Throws:
        QueueStorageException - When one of the following is true
      • setPropertiesWithResponse

        public Mono<com.azure.core.http.rest.Response<Void>> setPropertiesWithResponse​(QueueServiceProperties properties)
        Sets the properties for the storage account's Queue service. The properties range from storage analytics and metric to CORS (Cross-Origin Resource Sharing). To maintain the CORS in the Queue service pass a null value for CORS. To disable all CORS in the Queue service pass an empty list for CORS.

        Code Sample

        Clear CORS in the Queue service

         QueueServiceProperties properties = client.getProperties().block();
         client.setPropertiesWithResponse(properties)
             .subscribe(response -> System.out.printf("Setting Queue service properties completed with status code %d",
                 response.getStatusCode()));
         

        Enable Minute and Hour Metrics

         QueueServiceProperties properties = client.getProperties().block();
         properties.getMinuteMetrics().setEnabled(true);
         properties.getHourMetrics().setEnabled(true);
         client.setPropertiesWithResponse(properties)
             .subscribe(response -> System.out.printf("Setting Queue service properties completed with status code %d",
                 response.getStatusCode()));
         

        For more information, see the Azure Docs.

        Parameters:
        properties - Storage account Queue service properties
        Returns:
        A response that only contains headers and response status code
        Throws:
        QueueStorageException - When one of the following is true
      • getStatistics

        public Mono<QueueServiceStatistics> getStatistics()
        Retrieves the geo replication information about the Queue service.

        Code Samples

        Retrieve the geo replication information

         client.getStatistics()
             .subscribe(stats -> {
                 System.out.printf("Geo replication status: %s, Last synced: %s",
                     stats.getGeoReplication().getStatus(), stats.getGeoReplication().getLastSyncTime());
             });
         

        For more information, see the Azure Docs.

        Returns:
        The geo replication information about the Queue service
      • getStatisticsWithResponse

        public Mono<com.azure.core.http.rest.Response<QueueServiceStatistics>> getStatisticsWithResponse()
        Retrieves the geo replication information about the Queue service.

        Code Samples

        Retrieve the geo replication information

         client.getStatisticsWithResponse()
             .subscribe(response -> {
                 QueueServiceStatistics stats = response.getValue();
                 System.out.printf("Geo replication status: %s, Last synced: %s",
                     stats.getGeoReplication().getStatus(), stats.getGeoReplication().getLastSyncTime());
             });
         

        For more information, see the Azure Docs.

        Returns:
        A response containing the geo replication information about the Queue service
      • getAccountName

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

        public com.azure.core.http.HttpPipeline getHttpPipeline()
        Gets the HttpPipeline powering this client.
        Returns:
        The pipeline.
      • generateAccountSas

        public String generateAccountSas​(AccountSasSignatureValues accountSasSignatureValues)
        Generates an account SAS for the Azure Storage account using the specified AccountSasSignatureValues.

        Note : The client must be authenticated via StorageSharedKeyCredential

        See AccountSasSignatureValues for more information on how to construct an account SAS.

        The snippet below generates a SAS that lasts for two days and gives the user read and list access to queues and file shares.

         AccountSasPermission permissions = new AccountSasPermission()
             .setListPermission(true)
             .setReadPermission(true);
         AccountSasResourceType resourceTypes = new AccountSasResourceType().setContainer(true).setObject(true);
         AccountSasService services = new AccountSasService().setQueueAccess(true).setFileAccess(true);
         OffsetDateTime expiryTime = OffsetDateTime.now().plus(Duration.ofDays(2));
        
         AccountSasSignatureValues sasValues =
             new AccountSasSignatureValues(expiryTime, permissions, services, resourceTypes);
        
         // Client must be authenticated via StorageSharedKeyCredential
         String sas = queueServiceAsyncClient.generateAccountSas(sasValues);
         
        Parameters:
        accountSasSignatureValues - AccountSasSignatureValues
        Returns:
        A String representing the SAS query parameters.
      • generateAccountSas

        public String generateAccountSas​(AccountSasSignatureValues accountSasSignatureValues,
                                         com.azure.core.util.Context context)
        Generates an account SAS for the Azure Storage account using the specified AccountSasSignatureValues.

        Note : The client must be authenticated via StorageSharedKeyCredential

        See AccountSasSignatureValues for more information on how to construct an account SAS.

        The snippet below generates a SAS that lasts for two days and gives the user read and list access to queues and file shares.

         AccountSasPermission permissions = new AccountSasPermission()
             .setListPermission(true)
             .setReadPermission(true);
         AccountSasResourceType resourceTypes = new AccountSasResourceType().setContainer(true).setObject(true);
         AccountSasService services = new AccountSasService().setQueueAccess(true).setFileAccess(true);
         OffsetDateTime expiryTime = OffsetDateTime.now().plus(Duration.ofDays(2));
        
         AccountSasSignatureValues sasValues =
             new AccountSasSignatureValues(expiryTime, permissions, services, resourceTypes);
        
         // Client must be authenticated via StorageSharedKeyCredential
         String sas = queueServiceAsyncClient.generateAccountSas(sasValues, new Context("key", "value"));
         
        Parameters:
        accountSasSignatureValues - AccountSasSignatureValues
        context - Additional context that is passed through the code when generating a SAS.
        Returns:
        A String representing the SAS query parameters.