Class TableServiceClient

java.lang.Object
com.azure.data.tables.TableServiceClient

public final class TableServiceClient extends Object
Provides a synchronous service client for accessing the Azure Tables service.

The client encapsulates the URL for the Tables service endpoint and the credentials for accessing the storage or CosmosDB table API account. It provides methods to create, delete, and list tables within the account. These methods invoke REST API operations to make the requests and obtain the results that are returned.

Instances of this client are obtained by calling the TableServiceClientBuilder.buildClient() method on a TableServiceClientBuilder object.

Samples to construct a sync client

 TableServiceClient tableServiceClient = new TableServiceClientBuilder()
     .endpoint("https://myvault.azure.net/")
     .credential(new AzureNamedKeyCredential("name", "key"))
     .buildClient();
 
See Also:
  • Method Details

    • getAccountName

      public String getAccountName()
      Gets the name of the account containing the table.
      Returns:
      The name of the account containing the table.
    • getServiceEndpoint

      public String getServiceEndpoint()
      Gets the endpoint for the Tables service.
      Returns:
      The endpoint for the Tables service.
    • getServiceVersion

      public TableServiceVersion getServiceVersion()
      Gets the REST API version used by this client.
      Returns:
      The REST API version used by this client.
    • generateAccountSas

      public String generateAccountSas(TableAccountSasSignatureValues tableAccountSasSignatureValues)
      Generates an account SAS for the Azure Storage account using the specified TableAccountSasSignatureValues.

      Note: The client must be authenticated via AzureNamedKeyCredential.

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

      Parameters:
      tableAccountSasSignatureValues - TableAccountSasSignatureValues.
      Returns:
      A String representing the SAS query parameters.
      Throws:
      IllegalStateException - If this TableClient is not authenticated with an AzureNamedKeyCredential.
    • getTableClient

      public TableClient getTableClient(String tableName)
      Gets a TableClient instance for the table in the account with the provided tableName. The resulting TableClient will use the same pipeline and service version as this TableServiceClient.
      Parameters:
      tableName - The name of the table.
      Returns:
      A TableClient instance for the table in the account with the provided tableName.
      Throws:
      IllegalArgumentException - If tableName is null or empty.
    • createTable

      public TableClient createTable(String tableName)
      Creates a table within the Tables service.

      Code Samples

      Creates a table. Prints out the details of the created table.

       TableClient tableClient = tableServiceClient.createTable("myTable");
      
       System.out.printf("Table with name '%s' was created.", tableClient.getTableName());
       
      Parameters:
      tableName - The name of the table to create.
      Returns:
      A TableClient for the created table.
      Throws:
      IllegalArgumentException - If tableName is null or empty.
      TableServiceException - If a table with the same name already exists within the service.
    • createTableWithResponse

      public Response<TableClient> createTableWithResponse(String tableName, Duration timeout, Context context)
      Creates a table within the Tables service.

      Code Samples

      Creates a table. Prints out the details of the HTTP response and the created table.

       Response<TableClient> response = tableServiceClient.createTableWithResponse("myTable", Duration.ofSeconds(5),
           new Context("key1", "value1"));
      
       System.out.printf("Response successful with status code: %d. Table with name '%s' was created.",
           response.getStatusCode(), response.getValue().getTableName());
       
      Parameters:
      tableName - The name of the table to create.
      timeout - An optional timeout value beyond which a RuntimeException will be raised.
      context - Additional Context that is passed through the HTTP pipeline during the service call.
      Returns:
      The HTTP response containing a TableClient for the created table.
      Throws:
      IllegalArgumentException - If tableName is null or empty.
      TableServiceException - If a table with the same name already exists within the service.
    • createTableIfNotExists

      public TableClient createTableIfNotExists(String tableName)
      Creates a table within the Tables service if the table does not already exist.

      Code Samples

      Creates a table if it does not already exist. Prints out the details of the created table.

       TableClient tableClient = tableServiceClient.createTableIfNotExists("myTable");
      
       System.out.printf("Table with name '%s' was created.", tableClient.getTableName());
       
      Parameters:
      tableName - The name of the table to create.
      Returns:
      A TableClient for the created table.
      Throws:
      IllegalArgumentException - If tableName is null or empty.
    • createTableIfNotExistsWithResponse

      public Response<TableClient> createTableIfNotExistsWithResponse(String tableName, Duration timeout, Context context)
      Creates a table within the Tables service if the table does not already exist.

      Code Samples

      Creates a table if it does not already exist. Prints out the details of the HTTP response and the created table.

       Response<TableClient> response =
           tableServiceClient.createTableIfNotExistsWithResponse("myTable", Duration.ofSeconds(5),
               new Context("key1", "value1"));
      
       System.out.printf("Response successful with status code: %d. Table with name '%s' was created.",
           response.getStatusCode(), response.getValue().getTableName());
       
      Parameters:
      tableName - The name of the table to create.
      timeout - An optional timeout value beyond which a RuntimeException will be raised.
      context - Additional Context that is passed through the HTTP pipeline during the service call.
      Returns:
      The HTTP response containing a TableClient for the created table.
      Throws:
      IllegalArgumentException - If tableName is null or empty.
    • deleteTable

      public void deleteTable(String tableName)
      Deletes a table within the Tables service.

      Code Samples

      Deletes a table.

       String tableName = "myTable";
      
       tableServiceClient.deleteTable(tableName);
      
       System.out.printf("Table with name '%s' was deleted.", tableName);
       
      Parameters:
      tableName - The name of the table to delete.
      Throws:
      IllegalArgumentException - If tableName is null or empty.
      TableServiceException - If the request is rejected by the service.
    • deleteTableWithResponse

      public Response<Void> deleteTableWithResponse(String tableName, Duration timeout, Context context)
      Deletes a table within the Tables service.

      Code Samples

      Deletes a table. Prints out the details of the HTTP response.

       String myTableName = "myTable";
      
       Response<Void> response = tableServiceClient.deleteTableWithResponse(myTableName, Duration.ofSeconds(5),
           new Context("key1", "value1"));
      
       System.out.printf("Response successful with status code: %d. Table with name '%s' was deleted.",
           response.getStatusCode(), myTableName);
       
      Parameters:
      tableName - The name of the table to delete.
      timeout - An optional timeout value beyond which a RuntimeException will be raised.
      context - Additional Context that is passed through the HTTP pipeline during the service call.
      Returns:
      The HTTP response.
      Throws:
      IllegalArgumentException - If tableName is null or empty.
      TableServiceException - If the request is rejected by the service.
    • listTables

      public PagedIterable<TableItem> listTables()
      Lists all tables within the account.

      Code Samples

      Lists all tables. Prints out the details of the retrieved tables.

       PagedIterable<TableItem> tableItems = tableServiceClient.listTables();
      
       tableItems.forEach(tableItem ->
           System.out.printf("Retrieved table with name '%s'.%n", tableItem.getName()));
       
      Returns:
      A PagedIterable containing all tables within the account.
      Throws:
      TableServiceException - If the request is rejected by the service.
    • listTables

      public PagedIterable<TableItem> listTables(ListTablesOptions options, Duration timeout, Context context)
      If the filter parameter in the options is set, only tables matching the filter will be returned. If the top parameter is set, the maximum number of returned tables per page will be limited to that value.

      Code Samples

      Lists all tables that match the filter. Prints out the details of the retrieved tables.

       ListTablesOptions options = new ListTablesOptions().setFilter("TableName eq 'myTable'");
      
       PagedIterable<TableItem> retrievedTableItems = tableServiceClient.listTables(options, Duration.ofSeconds(5),
           new Context("key1", "value1"));
      
       retrievedTableItems.forEach(tableItem ->
           System.out.printf("Retrieved table with name '%s'.%n", tableItem.getName()));
       
      Parameters:
      options - The filter and top OData query options to apply to this operation.
      timeout - An optional timeout value beyond which a RuntimeException will be raised.
      context - Additional Context that is passed through the HTTP pipeline during the service call.
      Returns:
      A PagedIterable containing matching tables within the account.
      Throws:
      IllegalArgumentException - If one or more of the OData query options in options is malformed.
      TableServiceException - If the request is rejected by the service.
    • getProperties

      public TableServiceProperties getProperties()
      Gets the properties of the account's Table service, including properties for Analytics and CORS (Cross-Origin Resource Sharing) rules.

      This operation is only supported on Azure Storage endpoints.

      Code Samples

      Gets the properties of the account's Table service.

       TableServiceProperties properties = tableServiceClient.getProperties();
      
       System.out.print("Retrieved service properties successfully.");
       
      Returns:
      The properties of the account's Table service.
      Throws:
      TableServiceException - If the request is rejected by the service.
    • getPropertiesWithResponse

      public Response<TableServiceProperties> getPropertiesWithResponse(Duration timeout, Context context)
      Gets the properties of the account's Table service, including properties for Analytics and CORS (Cross-Origin Resource Sharing) rules.

      This operation is only supported on Azure Storage endpoints.

      Code Samples

      Gets the properties of the account's Table service. Prints out the details of the HTTP response.

       Response<TableServiceProperties> response =
           tableServiceClient.getPropertiesWithResponse(Duration.ofSeconds(5), new Context("key1", "value1"));
      
       System.out.printf("Retrieved service properties successfully with status code: %d.", response.getStatusCode());
       
      Parameters:
      timeout - An optional timeout value beyond which a RuntimeException will be raised.
      context - Additional Context that is passed through the HTTP pipeline during the service call.
      Returns:
      The HTTP response and the properties of the account's Table service.
      Throws:
      TableServiceException - If the request is rejected by the service.
    • setProperties

      public void setProperties(TableServiceProperties tableServiceProperties)
      Sets the properties of the account's Table service, including properties for Analytics and CORS (Cross-Origin Resource Sharing) rules.

      This operation is only supported on Azure Storage endpoints.

      Code Samples

      Sets the properties of the account's Table service.

       TableServiceProperties properties = new TableServiceProperties()
           .setHourMetrics(new TableServiceMetrics()
               .setVersion("1.0")
               .setEnabled(true))
           .setLogging(new TableServiceLogging()
               .setAnalyticsVersion("1.0")
               .setReadLogged(true)
               .setRetentionPolicy(new TableServiceRetentionPolicy()
                   .setEnabled(true)
                   .setDaysToRetain(5)));
      
       tableServiceClient.setProperties(properties);
      
       System.out.print("Set service properties successfully.");
       
      Parameters:
      tableServiceProperties - The TableServiceProperties to set.
      Throws:
      TableServiceException - If the request is rejected by the service.
    • setPropertiesWithResponse

      public Response<Void> setPropertiesWithResponse(TableServiceProperties tableServiceProperties, Duration timeout, Context context)
      Sets the properties of an account's Table service, including properties for Analytics and CORS (Cross-Origin Resource Sharing) rules.

      This operation is only supported on Azure Storage endpoints.

      Code Samples

      Sets the properties of the account's Table service. Prints out the details of the HTTP response.

       TableServiceProperties myProperties = new TableServiceProperties()
           .setHourMetrics(new TableServiceMetrics()
               .setVersion("1.0")
               .setEnabled(true))
           .setLogging(new TableServiceLogging()
               .setAnalyticsVersion("1.0")
               .setReadLogged(true)
               .setRetentionPolicy(new TableServiceRetentionPolicy()
                   .setEnabled(true)
                   .setDaysToRetain(5)));
      
       Response<Void> response = tableServiceClient.setPropertiesWithResponse(myProperties, Duration.ofSeconds(5),
           new Context("key1", "value1"));
      
       System.out.printf("Retrieved service properties successfully with status code: %d.", response.getStatusCode());
       
      Parameters:
      tableServiceProperties - The TableServiceProperties to set.
      timeout - An optional timeout value beyond which a RuntimeException will be raised.
      context - Additional Context that is passed through the HTTP pipeline during the service call.
      Returns:
      The HTTP response.
      Throws:
      TableServiceException - If the request is rejected by the service.
    • getStatistics

      public TableServiceStatistics getStatistics()
      Retrieves statistics related to replication for the account's Table service. It is only available on the secondary location endpoint when read-access geo-redundant replication is enabled for the account.

      This operation is only supported on Azure Storage endpoints.

      Code Samples

      Gets the replication statistics of the account's Table service.

       TableServiceStatistics statistics = tableServiceClient.getStatistics();
      
       System.out.print("Retrieved service statistics successfully.");
       
      Returns:
      Statistics for the account's Table service.
      Throws:
      TableServiceException - If the request is rejected by the service.
    • getStatisticsWithResponse

      public Response<TableServiceStatistics> getStatisticsWithResponse(Duration timeout, Context context)
      Retrieves statistics related to replication for the account's Table service. It is only available on the secondary location endpoint when read-access geo-redundant replication is enabled for the account.

      This operation is only supported on Azure Storage endpoints.

      Code Samples

      Gets the replication statistics of the account's Table service. Prints out the details of the HTTP response.

       Response<TableServiceStatistics> response = tableServiceClient.getStatisticsWithResponse(Duration.ofSeconds(5),
           new Context("key1", "value1"));
      
       System.out.printf("Retrieved service statistics successfully with status code: %d.",
           response.getStatusCode());
       
      Parameters:
      timeout - An optional timeout value beyond which a RuntimeException will be raised.
      context - Additional Context that is passed through the HTTP pipeline during the service call.
      Returns:
      An HTTP response containing statistics for the account's Table service.
      Throws:
      TableServiceException - If the request is rejected by the service.