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__
@@ -161,6 +162,11 @@ class Client(ClientWithProject):
161162 or you can use the environment variable `SPANNER_ENABLE_EXTENDED_TRACING=<boolean>`
162163 to control it.
163164
165+ :type default_transaction_options: :class:`~google.cloud.spanner_v1.TransactionOptions`
166+ or :class:`dict`
167+ :param default_transaction_options: (Optional) Client options used to set the default_transaction_options
168+ used for all Read Write Transactions.
169+
164170 :raises: :class:`ValueError <exceptions.ValueError>` if both ``read_only``
165171 and ``admin`` are :data:`True`
166172 """
@@ -182,6 +188,7 @@ def __init__(
182188 route_to_leader_enabled = True ,
183189 directed_read_options = None ,
184190 observability_options = None ,
191+ default_transaction_options = None ,
185192 ):
186193 self ._emulator_host = _get_spanner_emulator_host ()
187194
@@ -243,6 +250,7 @@ def __init__(
243250 self ._route_to_leader_enabled = route_to_leader_enabled
244251 self ._directed_read_options = directed_read_options
245252 self ._observability_options = observability_options
253+ self ._default_transaction_options = default_transaction_options
246254
247255 @property
248256 def credentials (self ):
@@ -333,6 +341,17 @@ def observability_options(self):
333341 """
334342 return self ._observability_options
335343
344+ @property
345+ def default_transaction_options (self ):
346+ """Getter for default_transaction_options.
347+
348+ :rtype:
349+ :class:`~google.cloud.spanner_v1.TransactionOptions`
350+ or :class:`dict`
351+ :returns: The default_transaction_options for the client.
352+ """
353+ return self ._default_transaction_options
354+
336355 @property
337356 def directed_read_options (self ):
338357 """Getter for directed_read_options.
@@ -478,3 +497,19 @@ def directed_read_options(self, directed_read_options):
478497 or regions should be used for non-transactional reads or queries.
479498 """
480499 self ._directed_read_options = directed_read_options
500+
501+ @default_transaction_options .setter
502+ def default_transaction_options (self , default_transaction_options ):
503+ """Sets default_transaction_options for the client
504+ :type default_transaction_options: :class:`~google.cloud.spanner_v1.TransactionOptions`
505+ or :class:`dict`
506+ :param default_transaction_options: Client options used to set the default_transaction_options
507+ used for all Read Write Transactions.
508+ """
509+ if default_transaction_options is not None and not isinstance (
510+ default_transaction_options , TransactionOptions
511+ ):
512+ raise TypeError (
513+ "default_transaction_option must be a TransactionOptions instance"
514+ )
515+ self ._default_transaction_options = default_transaction_options
0 commit comments