CosmosClient Class

A client-side logical representation of an Azure Cosmos DB account.

Use this client to configure and execute requests to the Azure Cosmos DB service.

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.

Instantiate a new CosmosClient.

Inheritance
builtins.object
CosmosClient

Constructor

CosmosClient(url: str, credential: TokenCredential | str | Dict[str, Any], consistency_level: str | None = None, **kwargs)

Parameters

Name Description
url
Required
str

The URL of the Cosmos DB account.

credential
Required

Can be the account key, or a dictionary of resource tokens.

consistency_level
str

Consistency level to use for the session. The default value is None (Account level). More on consistency levels and possible values: https://aka.ms/cosmos-consistency-levels

Default value: None

Keyword-Only Parameters

Name Description
timeout
int

An absolute timeout in seconds, for the combined HTTP request and response processing.

connection_timeout
int

The HTTP request timeout in seconds.

connection_mode
str

The connection mode for the client - currently only supports 'Gateway'.

proxy_config

Connection proxy configuration.

ssl_config

Connection SSL configuration.

connection_verify

Whether to verify the connection, default value is True.

connection_cert
str

An alternative certificate to verify the connection.

retry_total
int

Maximum retry attempts.

retry_backoff_max
int

Maximum retry wait time in seconds.

retry_fixed_interval
int

Fixed retry interval in milliseconds.

retry_read
int

Maximum number of socket read retry attempts.

retry_connect
int

Maximum number of connection error retry attempts.

retry_status
int

Maximum number of retry attempts on error status codes.

retry_on_status_codes

A list of specific status codes to retry on.

retry_backoff_factor

Factor to calculate wait time between retry attempts.

enable_endpoint_discovery

Enable endpoint discovery for geo-replicated database accounts. (Default: True)

preferred_locations

The preferred locations for geo-replicated database accounts.

enable_diagnostics_logging

Enable the CosmosHttpLogging policy. Must be used along with a logger to work.

logger

Logger to be used for collecting request diagnostics. Can be passed in at client level (to log all requests) or at a single request level. Requests will be logged at INFO level.

no_response_on_write

Indicates whether service should be instructed to skip sending response payloads on rite operations for items.

Examples

Create a new instance of the Cosmos DB client:


   from azure.cosmos import exceptions, CosmosClient, PartitionKey
   from typing import Dict, Any

   import os

   url = os.environ["ACCOUNT_URI"]
   key = os.environ["ACCOUNT_KEY"]
   client = CosmosClient(url, key)

Methods

create_database

Create a new database with the given ID (name).

create_database_if_not_exists

Create the database if it does not exist already. If the database already exists, the existing settings are returned.

..note:: This function does not check or update existing database settings or offer throughput if they differ from what is passed in.

delete_database

Delete the database with the given ID (name).

from_connection_string

Create a CosmosClient instance from a connection string.

This can be retrieved from the Azure portal.For full list of optional keyword arguments, see the CosmosClient constructor.

get_database_account

Retrieve the database account information.

get_database_client

Retrieve an existing database with the ID (name) id.

list_databases

List the databases in a Cosmos DB SQL database account.

query_databases

Query the databases in a Cosmos DB SQL database account.

create_database

Create a new database with the given ID (name).

create_database(id: str, populate_query_metrics: bool | None = None, offer_throughput: int | ThroughputProperties | None = None, *, session_token: str | None = None, initial_headers: Dict[str, str] | None = None, etag: str | None = None, match_condition: MatchConditions | None = None, **kwargs: Any) -> DatabaseProxy

Parameters

Name Description
id
Required
str

ID (name) of the database to create.

offer_throughput
Required

The provisioned throughput for this offer.

Keyword-Only Parameters

Name Description
session_token
str

Token for use with Session consistency.

initial_headers

Initial headers to be sent as part of the request.

etag
str

An ETag value, or the wildcard character (*). Used to check if the resource has changed, and act according to the condition specified by the match_condition parameter.

match_condition

The match condition to use upon the etag.

response_hook

A callable invoked with the response metadata.

Returns

Type Description

A DatabaseProxy instance representing the new database.

Exceptions

Type Description

Database with the given ID already exists.

Examples

Create a database in the Cosmos DB account:


   database_name = "testDatabase"
   try:
       database = client.create_database(id=database_name)
   except exceptions.CosmosResourceExistsError:
       database = client.get_database_client(database=database_name)

create_database_if_not_exists

Create the database if it does not exist already. If the database already exists, the existing settings are returned.

..note:: This function does not check or update existing database settings or offer throughput if they differ from what is passed in.

create_database_if_not_exists(id: str, populate_query_metrics: bool | None = None, offer_throughput: int | ThroughputProperties | None = None, *, session_token: str | None = None, initial_headers: Dict[str, str] | None = None, etag: str | None = None, match_condition: MatchConditions | None = None, **kwargs: Any) -> DatabaseProxy

Parameters

Name Description
id
Required
str

ID (name) of the database to read or create.

populate_query_metrics
Required

Enable returning query metrics in response headers.

offer_throughput
Required

The provisioned throughput for this offer.

Keyword-Only Parameters

Name Description
session_token
str

Token for use with Session consistency.

initial_headers

Initial headers to be sent as part of the request.

etag
str

An ETag value, or the wildcard character (*). Used to check if the resource has changed, and act according to the condition specified by the match_condition parameter.

match_condition

The match condition to use upon the etag.

response_hook

A callable invoked with the response metadata.

Returns

Type Description

A DatabaseProxy instance representing the database.

Exceptions

Type Description

The database read or creation failed.

delete_database

Delete the database with the given ID (name).

delete_database(database: str | DatabaseProxy | Mapping[str, Any], populate_query_metrics: bool | None = None, *, session_token: str | None = None, initial_headers: Dict[str, str] | None = None, etag: str | None = None, match_condition: MatchConditions | None = None, **kwargs: Any) -> None

Parameters

Name Description
database
Required

The ID (name), dict representing the properties or DatabaseProxy instance of the database to delete.

Keyword-Only Parameters

Name Description
session_token
str

Token for use with Session consistency.

initial_headers

Initial headers to be sent as part of the request.

etag
str

An ETag value, or the wildcard character (*). Used to check if the resource has changed, and act according to the condition specified by the match_condition parameter.

match_condition

The match condition to use upon the etag.

response_hook

A callable invoked with the response metadata.

Returns

Type Description

Exceptions

Type Description

If the database couldn't be deleted.

from_connection_string

Create a CosmosClient instance from a connection string.

This can be retrieved from the Azure portal.For full list of optional keyword arguments, see the CosmosClient constructor.

from_connection_string(conn_str: str, credential: TokenCredential | str | Dict[str, Any] | None = None, consistency_level: str | None = None, **kwargs) -> CosmosClient

Parameters

Name Description
conn_str
Required
str

The connection string.

credential

Alternative credentials to use instead of the key provided in the connection string.

Default value: None
consistency_level
str

Consistency level to use for the session. The default value is None (Account level).

Default value: None

Keyword-Only Parameters

Name Description
session_token
str

Token for use with Session consistency.

initial_headers

Initial headers to be sent as part of the request.

etag
str

An ETag value, or the wildcard character (*). Used to check if the resource has changed, and act according to the condition specified by the match_condition parameter.

match_condition

The match condition to use upon the etag.

response_hook

A callable invoked with the response metadata.

Returns

Type Description

A CosmosClient instance representing the new client.

Exceptions

Type Description

Database with the given ID already exists.

get_database_account

Retrieve the database account information.

get_database_account(**kwargs) -> DatabaseAccount

Keyword-Only Parameters

Name Description
response_hook

A callable invoked with the response metadata.

Returns

Type Description

A DatabaseAccount instance representing the Cosmos DB Database Account.

Exceptions

Type Description

Database with the given ID already exists.

get_database_client

Retrieve an existing database with the ID (name) id.

get_database_client(database: str | DatabaseProxy | Mapping[str, Any]) -> DatabaseProxy

Parameters

Name Description
database
Required

The ID (name), dict representing the properties or DatabaseProxy instance of the database to read.

Keyword-Only Parameters

Name Description
session_token
str

Token for use with Session consistency.

initial_headers

Initial headers to be sent as part of the request.

etag
str

An ETag value, or the wildcard character (*). Used to check if the resource has changed, and act according to the condition specified by the match_condition parameter.

match_condition

The match condition to use upon the etag.

response_hook

A callable invoked with the response metadata.

Returns

Type Description

A DatabaseProxy instance representing the retrieved database.

Exceptions

Type Description

Database with the given ID already exists.

list_databases

List the databases in a Cosmos DB SQL database account.

list_databases(max_item_count: int | None = None, populate_query_metrics: bool | None = None, *, session_token: str | None = None, initial_headers: Dict[str, str] | None = None, **kwargs: Any) -> ItemPaged[Dict[str, Any]]

Parameters

Name Description
max_item_count
Required
int

Max number of items to be returned in the enumeration operation.

Keyword-Only Parameters

Name Description
session_token
str

Token for use with Session consistency.

initial_headers

Initial headers to be sent as part of the request.

response_hook

A callable invoked with the response metadata.

Returns

Type Description

An Iterable of database properties (dicts).

Exceptions

Type Description

Database with the given ID already exists.

query_databases

Query the databases in a Cosmos DB SQL database account.

query_databases(query: str | None = None, parameters: List[Dict[str, Any]] | None = None, enable_cross_partition_query: bool | None = None, max_item_count: int | None = None, populate_query_metrics: bool | None = None, *, session_token: str | None = None, initial_headers: Dict[str, str] | None = None, **kwargs: Any) -> ItemPaged[Dict[str, Any]]

Parameters

Name Description
query
Required
str

The Azure Cosmos DB SQL query to execute.

parameters
Required

Optional array of parameters to the query. Ignored if no query is provided.

enable_cross_partition_query
Required

Allow scan on the queries which couldn't be served as indexing was opted out on the requested paths.

max_item_count
Required
int

Max number of items to be returned in the enumeration operation.

Keyword-Only Parameters

Name Description
session_token
str

Token for use with Session consistency.

initial_headers

Initial headers to be sent as part of the request.

response_hook

A callable invoked with the response metadata.

Returns

Type Description

An Iterable of database properties (dicts).

Exceptions

Type Description

Database with the given ID already exists.