4141from google .cloud .spanner_admin_instance_v1 .services .instance_admin .transports .grpc import (
4242 InstanceAdminGrpcTransport ,
4343)
44+ from google .cloud .spanner_v1 import TransactionOptions
4445from google .cloud .spanner_admin_instance_v1 import ListInstanceConfigsRequest
4546from google .cloud .spanner_admin_instance_v1 import ListInstancesRequest
4647from google .cloud .spanner_v1 import __version__
@@ -136,6 +137,11 @@ class Client(ClientWithProject):
136137 or you can use the environment variable `SPANNER_ENABLE_EXTENDED_TRACING=<boolean>`
137138 to control it.
138139
140+ :type default_transaction_options: :class:`~google.cloud.spanner_v1.TransactionOptions`
141+ or :class:`dict`
142+ :param default_transaction_options: (Optional) Client options used to set the default_transaction_options
143+ used for all Read Write Transactions.
144+
139145 :raises: :class:`ValueError <exceptions.ValueError>` if both ``read_only``
140146 and ``admin`` are :data:`True`
141147 """
@@ -157,6 +163,7 @@ def __init__(
157163 route_to_leader_enabled = True ,
158164 directed_read_options = None ,
159165 observability_options = None ,
166+ default_transaction_options = None ,
160167 ):
161168 self ._emulator_host = _get_spanner_emulator_host ()
162169
@@ -199,6 +206,7 @@ def __init__(
199206 self ._route_to_leader_enabled = route_to_leader_enabled
200207 self ._directed_read_options = directed_read_options
201208 self ._observability_options = observability_options
209+ self ._default_transaction_options = default_transaction_options
202210
203211 @property
204212 def credentials (self ):
@@ -289,6 +297,17 @@ def observability_options(self):
289297 """
290298 return self ._observability_options
291299
300+ @property
301+ def default_transaction_options (self ):
302+ """Getter for default_transaction_options.
303+
304+ :rtype:
305+ :class:`~google.cloud.spanner_v1.TransactionOptions`
306+ or :class:`dict`
307+ :returns: The default_transaction_options for the client.
308+ """
309+ return self ._default_transaction_options
310+
292311 @property
293312 def directed_read_options (self ):
294313 """Getter for directed_read_options.
@@ -434,3 +453,19 @@ def directed_read_options(self, directed_read_options):
434453 or regions should be used for non-transactional reads or queries.
435454 """
436455 self ._directed_read_options = directed_read_options
456+
457+ @default_transaction_options .setter
458+ def default_transaction_options (self , default_transaction_options ):
459+ """Sets default_transaction_options for the client
460+ :type default_transaction_options: :class:`~google.cloud.spanner_v1.TransactionOptions`
461+ or :class:`dict`
462+ :param default_transaction_options: Client options used to set the default_transaction_options
463+ used for all Read Write Transactions.
464+ """
465+ if default_transaction_options is not None and not isinstance (
466+ default_transaction_options , TransactionOptions
467+ ):
468+ raise TypeError (
469+ "default_transaction_option must be a TransactionOptions instance"
470+ )
471+ self ._default_transaction_options = default_transaction_options
0 commit comments