Class CosmosClient

java.lang.Object
com.azure.cosmos.CosmosClient
All Implemented Interfaces:
Closeable, AutoCloseable

public final class CosmosClient extends Object implements Closeable
Provides a client-side logical representation of the Azure Cosmos DB service. Calls to CosmosClient API's are blocked for completion.

CosmosClient is thread-safe. It's recommended to maintain a single instance of CosmosClient per lifetime of the application which enables efficient connection management and performance. CosmosClient initialization is a heavy operation - don't use initialization CosmosClient instances as credentials or network connectivity validations.

  • Method Details

    • createDatabaseIfNotExists

      public CosmosDatabaseResponse createDatabaseIfNotExists(String id, ThroughputProperties throughputProperties)
      Create a Cosmos database if it does not already exist on the service.
       ThroughputProperties throughputProperties = ThroughputProperties
           .createAutoscaledThroughput(autoScaleMaxThroughput);
       cosmosClient.createDatabaseIfNotExists(databaseName, throughputProperties);
       
      The throughputProperties will only be used if the specified database does not exist and therefor a new database will be created with throughputProperties.
      Parameters:
      id - the id of the database.
      throughputProperties - the throughputProperties.
      Returns:
      the CosmosDatabaseResponse with the created database.
    • createDatabaseIfNotExists

      public CosmosDatabaseResponse createDatabaseIfNotExists(String id)
      Create a Cosmos database if it does not already exist on the service.
       CosmosDatabaseProperties databaseProperties = new CosmosDatabaseProperties(databaseName);
       cosmosClient.createDatabaseIfNotExists(databaseProperties);
       
      Parameters:
      id - the id of the database.
      Returns:
      the CosmosDatabaseResponse with the created database.
    • createDatabase

      public CosmosDatabaseResponse createDatabase(CosmosDatabaseProperties databaseProperties, CosmosDatabaseRequestOptions options)
      Creates a database.
       CosmosDatabaseProperties databaseProperties = new CosmosDatabaseProperties(databaseName);
       cosmosClient.createDatabase(databaseProperties);
       
      Parameters:
      databaseProperties - CosmosDatabaseProperties the database properties.
      options - the request options.
      Returns:
      the CosmosDatabaseResponse with the created database.
      Throws:
      CosmosException - if resource with specified id already exists
    • createDatabase

      public CosmosDatabaseResponse createDatabase(CosmosDatabaseProperties databaseProperties)
      Creates a Cosmos database.
       CosmosDatabaseProperties databaseProperties = new CosmosDatabaseProperties(databaseName);
       cosmosClient.createDatabase(databaseProperties);
       
      Parameters:
      databaseProperties - CosmosDatabaseProperties the database properties.
      Returns:
      the CosmosDatabaseResponse with the created database.
      Throws:
      CosmosException - if resource with specified id already exists
    • createDatabase

      public CosmosDatabaseResponse createDatabase(String id)
      Creates a Cosmos database.
       CosmosDatabaseProperties databaseProperties = new CosmosDatabaseProperties(databaseName);
       cosmosClient.createDatabase(databaseProperties);
       
      Parameters:
      id - the id of the database.
      Returns:
      the CosmosDatabaseResponse with the created database.
      Throws:
      CosmosException - if resource with specified id already exists
    • createDatabase

      public CosmosDatabaseResponse createDatabase(CosmosDatabaseProperties databaseProperties, ThroughputProperties throughputProperties, CosmosDatabaseRequestOptions options)
      Creates a Cosmos database.
       ThroughputProperties throughputProperties = ThroughputProperties
           .createAutoscaledThroughput(autoScaleMaxThroughput);
       cosmosClient.createDatabase(databaseName, throughputProperties);
       
      Parameters:
      databaseProperties - CosmosDatabaseProperties the database properties.
      throughputProperties - the throughput properties.
      options - CosmosDatabaseRequestOptions the request options.
      Returns:
      the CosmosDatabaseResponse with the created database.
      Throws:
      CosmosException - if resource with specified id already exists
    • createDatabase

      public CosmosDatabaseResponse createDatabase(CosmosDatabaseProperties databaseProperties, ThroughputProperties throughputProperties)
      Creates a Cosmos database.
       ThroughputProperties throughputProperties = ThroughputProperties
           .createAutoscaledThroughput(autoScaleMaxThroughput);
       cosmosClient.createDatabase(databaseName, throughputProperties);
       
      Parameters:
      databaseProperties - CosmosDatabaseProperties the database properties.
      throughputProperties - the throughput properties.
      Returns:
      the CosmosDatabaseResponse with the created database.
      Throws:
      CosmosException - if resource with specified id already exists
    • createDatabase

      public CosmosDatabaseResponse createDatabase(String id, ThroughputProperties throughputProperties)
      Creates a Cosmos database.
       ThroughputProperties throughputProperties = ThroughputProperties
           .createAutoscaledThroughput(autoScaleMaxThroughput);
       cosmosClient.createDatabase(databaseName, throughputProperties);
       
      Parameters:
      id - the id of the database.
      throughputProperties - the throughput properties.
      Returns:
      the CosmosDatabaseResponse with the created database.
      Throws:
      CosmosException - if resource with specified id already exists
    • readAllDatabases

      public CosmosPagedIterable<CosmosDatabaseProperties> readAllDatabases()
      Reads all Cosmos databases.
       CosmosPagedIterable<CosmosDatabaseProperties> cosmosDatabaseProperties =
           cosmosClient.readAllDatabases();
       cosmosDatabaseProperties.forEach(databaseProperties -> {
           System.out.println(databaseProperties);
       });
       
      Returns:
      the CosmosPagedIterable for feed response with the read databases.
    • queryDatabases

      Query a Cosmos database.
       CosmosQueryRequestOptions options = new CosmosQueryRequestOptions();
       CosmosPagedIterable<CosmosDatabaseProperties> databaseProperties =
           cosmosClient.queryDatabases("select * from d", options);
       databaseProperties.forEach(properties -> {
           System.out.println(properties.getId());
       });
       
      Parameters:
      query - the query.
      options - CosmosQueryRequestOptionsthe feed options.
      Returns:
      the CosmosPagedIterable for feed response with the obtained databases.
    • queryDatabases

      Query a Cosmos database.
       CosmosQueryRequestOptions options = new CosmosQueryRequestOptions();
       CosmosPagedIterable<CosmosDatabaseProperties> databaseProperties =
           cosmosClient.queryDatabases("select * from d", options);
       databaseProperties.forEach(properties -> {
           System.out.println(properties.getId());
       });
       
      Parameters:
      querySpec - SqlQuerySpec the query spec.
      options - the query request options.
      Returns:
      the CosmosPagedIterable for feed response with the obtained databases.
    • getDatabase

      public CosmosDatabase getDatabase(String id)
      Gets the Cosmos database instance without making a service call.
      Parameters:
      id - the id of the database.
      Returns:
      CosmosDatabase the cosmos sync database.
    • close

      public void close()
      Close this CosmosClient instance.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
    • createGlobalThroughputControlConfigBuilder

      public GlobalThroughputControlConfigBuilder createGlobalThroughputControlConfigBuilder(String databaseId, String containerId)
      Create global throughput control config builder which will be used to build GlobalThroughputControlConfig.
      Parameters:
      databaseId - The database id of the control container.
      containerId - The container id of the control container.
      Returns:
      A GlobalThroughputControlConfigBuilder.