# Module client (3.68.0)

3.68.0 (latest) 3.67.0 3.66.0 3.65.0 3.64.0 3.63.0 3.62.0 3.61.0 3.60.0 3.59.0 3.58.0 3.57.0 3.56.0 3.55.0 3.54.0 3.53.0 3.52.0 3.51.0 3.50.1 3.46.0 3.45.0 3.44.0 3.43.0 3.42.0 3.41.0 3.40.1 3.39.0 3.38.0 3.37.0 3.36.0 3.35.1 3.34.0 3.33.0 3.32.0 3.31.0 3.30.0 3.29.0 3.28.0 3.27.1 3.26.0 3.25.0 3.24.0 3.23.0 3.22.2 3.21.0 3.20.0 3.19.0 3.18.0 3.17.0 3.16.0 3.15.1 3.14.1 3.13.0 3.12.1 3.11.1 3.10.0 3.9.0 3.8.0 3.7.0 3.6.0 3.5.0 3.4.0 3.3.0 3.2.0 3.1.0 3.0.0 2.1.1 2.0.0 1.19.3 1.18.0 1.17.1 1.16.0 1.15.1 1.14.0 1.13.0 1.12.0 1.11.0 1.10.0 Parent client for calling the Cloud Spanner API.

This is the base from which all interactions with the API occur.

In the hierarchy of API concepts

- a [Client](https://docs.cloud.google.com/python/docs/reference/spanner/latest/google.cloud.spanner_v1.client.Client) owns an [Instance](https://docs.cloud.google.com/python/docs/reference/spanner/latest/google.cloud.spanner_v1.instance.Instance)
- a [Instance](https://docs.cloud.google.com/python/docs/reference/spanner/latest/google.cloud.spanner_v1.instance.Instance) owns a [Database](https://docs.cloud.google.com/python/docs/reference/spanner/latest/google.cloud.spanner_v1.database.Database)

## Classes

### [Client](https://docs.cloud.google.com/python/docs/reference/spanner/latest/google.cloud.spanner_v1.client.Client)

    Client(
        project=None,
        credentials=None,
        client_info=google.api_core.gapic_v1.client_info.ClientInfo,
        client_options=None,
        query_options=None,
        route_to_leader_enabled=True,
        directed_read_options=None,
        observability_options=None,
        default_transaction_options: typing.Optional[
            google.cloud.spanner_v1.transaction.DefaultTransactionOptions
        ] = None,
        experimental_host=None,
        disable_builtin_metrics=False,
        client_context=None,
        use_plain_text=False,
        ca_certificate=None,
        client_certificate=None,
        client_key=None,
        instance_type=None,
    )

Client for interacting with Cloud Spanner API.

> [!NOTE]
> **Note:** Since the Cloud Spanner API requires the gRPC transport, no `_http` argument is accepted by this class.

| **Parameters** ||
|---|---|
| **Name** | **Description** |
| `default_transaction_options` | `` DefaultTransactionOptions or `dict` `` (Optional) Default options to use for all transactions. |
| `project` | `` `str` or `unicode ` `` (Optional) The ID of the project which owns the instances, tables and data. If not provided, will attempt to determine from the environment. |
| `credentials` | `` `Credentials ` or :data:`NoneType ` `` (Optional) The authorization credentials to attach to requests. These credentials identify this application to the service. If none are specified, the client will attempt to ascertain the credentials from the environment. |
| `client_info` | `` `google.api_core.gapic_v1.client_info.ClientInfo` `` (Optional) The client info used to send a user-agent string along with API requests. If `None`, then default info will be used. Generally, you only need to set this if you're developing your own library or partner tool. |
| `client_options` | `` `google.api_core.client_options.ClientOptions` or `dict` `` (Optional) Client options used to set user options on the client. API Endpoint should be set through client_options. |
| `query_options` | `` https://docs.cloud.google.com/python/docs/reference/spanner/latest/google.cloud.spanner_v1.types.ExecuteSqlRequest.QueryOptions or `dict` `` (Optional) Query optimizer configuration to use for the given query. If a dict is provided, it must be of the same form as the protobuf message [QueryOptions](https://docs.cloud.google.com/python/docs/reference/spanner/latest/google.cloud.spanner_v1.types.ExecuteSqlRequest.QueryOptions) |
| `route_to_leader_enabled` | `boolean` (Optional) Default True. Set route_to_leader_enabled as False to disable leader aware routing. Disabling leader aware routing would route all requests in RW/PDML transactions to the closest region. |
| `directed_read_options` | `` DirectedReadOptions or `dict` `` (Optional) Client options used to set the directed_read_options for all ReadRequests and ExecuteSqlRequests that indicates which replicas or regions should be used for non-transactional reads or queries. |
| `observability_options` | `dict (str -> any) or None` (Optional) the configuration to control the tracer's behavior. tracer_provider is the injected tracer provider enable_extended_tracing: :type:boolean when set to true will allow for spans that issue SQL statements to be annotated with SQL. Default `True`, please set it to `False` to turn it off or you can use the environment variable `SPANNER_ENABLE_EXTENDED_TRACING=` to control it. enable_end_to_end_tracing: :type:boolean when set to true will allow for spans from Spanner server side. Default `False`, please set it to `True` to turn it on or you can use the environment variable `SPANNER_ENABLE_END_TO_END_TRACING=` to control it. |
| `experimental_host` | `str` (Deprecated) Use `client_options` with `api_endpoint` and `instance_type="omni"` instead. |
| `instance_type` | `str` (Optional) The type of Spanner instance to connect to. Supported values are `"cloud"` or `"omni"`. Connecting to Spanner Omni requires setting instance_type="omni". |
| `disable_builtin_metrics` | `bool` (Optional) Default False. Set to True to disable the Spanner built-in metrics collection and exporting. |

| **Exceptions** ||
|---|---|
| **Type** | **Description** |
| `` `ValueErro `` |   |