google-api-python-client 2.164.0__py2.py3-none-any.whl → 2.166.0__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. {google_api_python_client-2.164.0.dist-info → google_api_python_client-2.166.0.dist-info}/METADATA +4 -4
  2. {google_api_python_client-2.164.0.dist-info → google_api_python_client-2.166.0.dist-info}/RECORD +159 -157
  3. googleapiclient/discovery_cache/documents/accesscontextmanager.v1.json +15 -1
  4. googleapiclient/discovery_cache/documents/addressvalidation.v1.json +8 -8
  5. googleapiclient/discovery_cache/documents/adsense.v2.json +9 -9
  6. googleapiclient/discovery_cache/documents/aiplatform.v1.json +60 -4
  7. googleapiclient/discovery_cache/documents/aiplatform.v1beta1.json +263 -8
  8. googleapiclient/discovery_cache/documents/alloydb.v1.json +74 -5
  9. googleapiclient/discovery_cache/documents/alloydb.v1alpha.json +156 -5
  10. googleapiclient/discovery_cache/documents/alloydb.v1beta.json +156 -5
  11. googleapiclient/discovery_cache/documents/analyticsadmin.v1alpha.json +7 -6
  12. googleapiclient/discovery_cache/documents/analyticsadmin.v1beta.json +7 -6
  13. googleapiclient/discovery_cache/documents/analyticshub.v1.json +7 -2
  14. googleapiclient/discovery_cache/documents/androidpublisher.v3.json +2 -2
  15. googleapiclient/discovery_cache/documents/apigee.v1.json +442 -1
  16. googleapiclient/discovery_cache/documents/appengine.v1.json +50 -1
  17. googleapiclient/discovery_cache/documents/appengine.v1beta.json +50 -1
  18. googleapiclient/discovery_cache/documents/backupdr.v1.json +8 -2
  19. googleapiclient/discovery_cache/documents/beyondcorp.v1.json +1 -206
  20. googleapiclient/discovery_cache/documents/beyondcorp.v1alpha.json +9 -262
  21. googleapiclient/discovery_cache/documents/bigquery.v2.json +41 -1
  22. googleapiclient/discovery_cache/documents/bigquerydatapolicy.v1.json +2 -2
  23. googleapiclient/discovery_cache/documents/bigqueryreservation.v1.json +5 -1
  24. googleapiclient/discovery_cache/documents/bigtableadmin.v2.json +160 -1
  25. googleapiclient/discovery_cache/documents/binaryauthorization.v1.json +5 -1
  26. googleapiclient/discovery_cache/documents/chat.v1.json +9 -5
  27. googleapiclient/discovery_cache/documents/chromemanagement.v1.json +10 -22
  28. googleapiclient/discovery_cache/documents/civicinfo.v2.json +267 -267
  29. googleapiclient/discovery_cache/documents/cloudasset.v1.json +15 -1
  30. googleapiclient/discovery_cache/documents/cloudasset.v1beta1.json +15 -1
  31. googleapiclient/discovery_cache/documents/cloudasset.v1p1beta1.json +15 -1
  32. googleapiclient/discovery_cache/documents/cloudasset.v1p5beta1.json +15 -1
  33. googleapiclient/discovery_cache/documents/cloudasset.v1p7beta1.json +15 -1
  34. googleapiclient/discovery_cache/documents/cloudchannel.v1.json +8 -8
  35. googleapiclient/discovery_cache/documents/composer.v1.json +2 -2
  36. googleapiclient/discovery_cache/documents/composer.v1beta1.json +2 -2
  37. googleapiclient/discovery_cache/documents/compute.alpha.json +1454 -456
  38. googleapiclient/discovery_cache/documents/compute.beta.json +1385 -18
  39. googleapiclient/discovery_cache/documents/compute.v1.json +98 -19
  40. googleapiclient/discovery_cache/documents/contactcenterinsights.v1.json +185 -5
  41. googleapiclient/discovery_cache/documents/container.v1.json +369 -10
  42. googleapiclient/discovery_cache/documents/container.v1beta1.json +31 -10
  43. googleapiclient/discovery_cache/documents/containeranalysis.v1.json +95 -2
  44. googleapiclient/discovery_cache/documents/containeranalysis.v1alpha1.json +95 -2
  45. googleapiclient/discovery_cache/documents/containeranalysis.v1beta1.json +44 -2
  46. googleapiclient/discovery_cache/documents/datacatalog.v1.json +2 -2
  47. googleapiclient/discovery_cache/documents/datacatalog.v1beta1.json +2 -2
  48. googleapiclient/discovery_cache/documents/dataflow.v1b3.json +16 -2
  49. googleapiclient/discovery_cache/documents/dataform.v1beta1.json +5 -5
  50. googleapiclient/discovery_cache/documents/dataplex.v1.json +58 -16
  51. googleapiclient/discovery_cache/documents/dataproc.v1.json +347 -5
  52. googleapiclient/discovery_cache/documents/datastream.v1.json +40 -4
  53. googleapiclient/discovery_cache/documents/dialogflow.v2.json +421 -7
  54. googleapiclient/discovery_cache/documents/dialogflow.v2beta1.json +421 -7
  55. googleapiclient/discovery_cache/documents/dialogflow.v3.json +193 -1
  56. googleapiclient/discovery_cache/documents/dialogflow.v3beta1.json +394 -2
  57. googleapiclient/discovery_cache/documents/discoveryengine.v1.json +532 -18
  58. googleapiclient/discovery_cache/documents/discoveryengine.v1alpha.json +413 -17
  59. googleapiclient/discovery_cache/documents/discoveryengine.v1beta.json +663 -17
  60. googleapiclient/discovery_cache/documents/displayvideo.v2.json +24 -8
  61. googleapiclient/discovery_cache/documents/displayvideo.v3.json +279 -62
  62. googleapiclient/discovery_cache/documents/displayvideo.v4.json +222 -52
  63. googleapiclient/discovery_cache/documents/dlp.v2.json +129 -1
  64. googleapiclient/discovery_cache/documents/documentai.v1.json +14 -8
  65. googleapiclient/discovery_cache/documents/documentai.v1beta3.json +18 -8
  66. googleapiclient/discovery_cache/documents/doubleclickbidmanager.v2.json +3 -3
  67. googleapiclient/discovery_cache/documents/eventarc.v1.json +8 -1
  68. googleapiclient/discovery_cache/documents/fcm.v1.json +2 -2
  69. googleapiclient/discovery_cache/documents/firebase.v1beta1.json +2 -2
  70. googleapiclient/discovery_cache/documents/firebaseappdistribution.v1alpha.json +2 -2
  71. googleapiclient/discovery_cache/documents/firebaseml.v2beta.json +23 -1
  72. googleapiclient/discovery_cache/documents/forms.v1.json +99 -2
  73. googleapiclient/discovery_cache/documents/gkebackup.v1.json +39 -1
  74. googleapiclient/discovery_cache/documents/gkehub.v1.json +11 -1
  75. googleapiclient/discovery_cache/documents/gkehub.v1alpha.json +11 -1
  76. googleapiclient/discovery_cache/documents/gkehub.v1beta.json +11 -1
  77. googleapiclient/discovery_cache/documents/gkehub.v2.json +11 -1
  78. googleapiclient/discovery_cache/documents/gkehub.v2alpha.json +11 -1
  79. googleapiclient/discovery_cache/documents/gkehub.v2beta.json +11 -1
  80. googleapiclient/discovery_cache/documents/healthcare.v1beta1.json +11 -1
  81. googleapiclient/discovery_cache/documents/iam.v1.json +3 -3
  82. googleapiclient/discovery_cache/documents/integrations.v1.json +176 -14
  83. googleapiclient/discovery_cache/documents/language.v1.json +5 -3
  84. googleapiclient/discovery_cache/documents/language.v1beta2.json +5 -3
  85. googleapiclient/discovery_cache/documents/language.v2.json +5 -3
  86. googleapiclient/discovery_cache/documents/logging.v2.json +82 -1
  87. googleapiclient/discovery_cache/documents/looker.v1.json +1 -237
  88. googleapiclient/discovery_cache/documents/managedkafka.v1.json +1982 -0
  89. googleapiclient/discovery_cache/documents/merchantapi.accounts_v1beta.json +193 -24
  90. googleapiclient/discovery_cache/documents/merchantapi.conversions_v1beta.json +2 -2
  91. googleapiclient/discovery_cache/documents/merchantapi.datasources_v1beta.json +64 -2
  92. googleapiclient/discovery_cache/documents/merchantapi.inventories_v1beta.json +2 -2
  93. googleapiclient/discovery_cache/documents/merchantapi.lfp_v1beta.json +2 -2
  94. googleapiclient/discovery_cache/documents/merchantapi.notifications_v1beta.json +2 -2
  95. googleapiclient/discovery_cache/documents/merchantapi.products_v1beta.json +41 -2
  96. googleapiclient/discovery_cache/documents/merchantapi.promotions_v1beta.json +2 -2
  97. googleapiclient/discovery_cache/documents/merchantapi.quota_v1beta.json +2 -2
  98. googleapiclient/discovery_cache/documents/merchantapi.reports_v1beta.json +2 -2
  99. googleapiclient/discovery_cache/documents/merchantapi.reviews_v1beta.json +4 -4
  100. googleapiclient/discovery_cache/documents/migrationcenter.v1alpha1.json +3 -3
  101. googleapiclient/discovery_cache/documents/monitoring.v3.json +5 -1
  102. googleapiclient/discovery_cache/documents/mybusinessaccountmanagement.v1.json +8 -8
  103. googleapiclient/discovery_cache/documents/mybusinessbusinessinformation.v1.json +8 -8
  104. googleapiclient/discovery_cache/documents/mybusinessverifications.v1.json +8 -8
  105. googleapiclient/discovery_cache/documents/netapp.v1.json +2 -2
  106. googleapiclient/discovery_cache/documents/netapp.v1beta1.json +16 -2
  107. googleapiclient/discovery_cache/documents/networkconnectivity.v1.json +19 -3
  108. googleapiclient/discovery_cache/documents/networkmanagement.v1.json +3 -1
  109. googleapiclient/discovery_cache/documents/networkmanagement.v1beta1.json +3 -1
  110. googleapiclient/discovery_cache/documents/networksecurity.v1.json +86 -1
  111. googleapiclient/discovery_cache/documents/networksecurity.v1beta1.json +160 -5
  112. googleapiclient/discovery_cache/documents/networkservices.v1.json +109 -7
  113. googleapiclient/discovery_cache/documents/networkservices.v1beta1.json +113 -7
  114. googleapiclient/discovery_cache/documents/notebooks.v2.json +6 -1
  115. googleapiclient/discovery_cache/documents/observability.v1.json +588 -0
  116. googleapiclient/discovery_cache/documents/oracledatabase.v1.json +103 -1
  117. googleapiclient/discovery_cache/documents/oslogin.v1.json +2 -2
  118. googleapiclient/discovery_cache/documents/oslogin.v1alpha.json +2 -2
  119. googleapiclient/discovery_cache/documents/oslogin.v1beta.json +2 -2
  120. googleapiclient/discovery_cache/documents/paymentsresellersubscription.v1.json +15 -15
  121. googleapiclient/discovery_cache/documents/places.v1.json +68 -6
  122. googleapiclient/discovery_cache/documents/playdeveloperreporting.v1alpha1.json +145 -1
  123. googleapiclient/discovery_cache/documents/playdeveloperreporting.v1beta1.json +145 -1
  124. googleapiclient/discovery_cache/documents/pubsub.v1.json +7 -2
  125. googleapiclient/discovery_cache/documents/redis.v1.json +17 -5
  126. googleapiclient/discovery_cache/documents/redis.v1beta1.json +17 -5
  127. googleapiclient/discovery_cache/documents/retail.v2.json +7 -3
  128. googleapiclient/discovery_cache/documents/retail.v2alpha.json +275 -3
  129. googleapiclient/discovery_cache/documents/retail.v2beta.json +7 -3
  130. googleapiclient/discovery_cache/documents/run.v1.json +6 -1
  131. googleapiclient/discovery_cache/documents/run.v2.json +18 -64
  132. googleapiclient/discovery_cache/documents/securitycenter.v1.json +121 -9
  133. googleapiclient/discovery_cache/documents/securitycenter.v1beta1.json +121 -9
  134. googleapiclient/discovery_cache/documents/securitycenter.v1beta2.json +121 -9
  135. googleapiclient/discovery_cache/documents/serviceconsumermanagement.v1.json +2 -2
  136. googleapiclient/discovery_cache/documents/serviceconsumermanagement.v1beta1.json +2 -2
  137. googleapiclient/discovery_cache/documents/servicenetworking.v1.json +4 -4
  138. googleapiclient/discovery_cache/documents/servicenetworking.v1beta.json +2 -2
  139. googleapiclient/discovery_cache/documents/serviceusage.v1.json +2 -2
  140. googleapiclient/discovery_cache/documents/serviceusage.v1beta1.json +2 -2
  141. googleapiclient/discovery_cache/documents/spanner.v1.json +93 -75
  142. googleapiclient/discovery_cache/documents/sqladmin.v1.json +582 -8
  143. googleapiclient/discovery_cache/documents/sqladmin.v1beta4.json +582 -8
  144. googleapiclient/discovery_cache/documents/storage.v1.json +117 -2
  145. googleapiclient/discovery_cache/documents/sts.v1.json +166 -1
  146. googleapiclient/discovery_cache/documents/sts.v1beta.json +166 -1
  147. googleapiclient/discovery_cache/documents/tagmanager.v1.json +86 -190
  148. googleapiclient/discovery_cache/documents/tagmanager.v2.json +242 -308
  149. googleapiclient/discovery_cache/documents/tasks.v1.json +4 -4
  150. googleapiclient/discovery_cache/documents/tpu.v2alpha1.json +7 -1
  151. googleapiclient/discovery_cache/documents/verifiedaccess.v2.json +3 -2
  152. googleapiclient/discovery_cache/documents/walletobjects.v1.json +2 -2
  153. googleapiclient/discovery_cache/documents/workloadmanager.v1.json +20 -1
  154. googleapiclient/discovery_cache/documents/workstations.v1.json +6 -6
  155. googleapiclient/discovery_cache/documents/workstations.v1beta.json +7 -7
  156. googleapiclient/version.py +1 -1
  157. {google_api_python_client-2.164.0.dist-info → google_api_python_client-2.166.0.dist-info}/LICENSE +0 -0
  158. {google_api_python_client-2.164.0.dist-info → google_api_python_client-2.166.0.dist-info}/WHEEL +0 -0
  159. {google_api_python_client-2.164.0.dist-info → google_api_python_client-2.166.0.dist-info}/top_level.txt +0 -0
@@ -2431,7 +2431,7 @@
2431
2431
  ]
2432
2432
  },
2433
2433
  "batchWrite": {
2434
- "description": "Batches the supplied mutation groups in a collection of efficient transactions. All mutations in a group are committed atomically. However, mutations across groups can be committed non-atomically in an unspecified order and thus, they must be independent of each other. Partial failure is possible, i.e., some groups may have been committed successfully, while some may have failed. The results of individual batches are streamed into the response as the batches are applied. BatchWrite requests are not replay protected, meaning that each mutation group may be applied more than once. Replays of non-idempotent mutations may have undesirable effects. For example, replays of an insert mutation may produce an already exists error or if you use generated or commit timestamp-based keys, it may result in additional rows being added to the mutation's table. We recommend structuring your mutation groups to be idempotent to avoid this issue.",
2434
+ "description": "Batches the supplied mutation groups in a collection of efficient transactions. All mutations in a group are committed atomically. However, mutations across groups can be committed non-atomically in an unspecified order and thus, they must be independent of each other. Partial failure is possible, that is, some groups might have been committed successfully, while some might have failed. The results of individual batches are streamed into the response as the batches are applied. `BatchWrite` requests are not replay protected, meaning that each mutation group can be applied more than once. Replays of non-idempotent mutations can have undesirable effects. For example, replays of an insert mutation can produce an already exists error or if you use generated or commit timestamp-based keys, it can result in additional rows being added to the mutation's table. We recommend structuring your mutation groups to be idempotent to avoid this issue.",
2435
2435
  "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:batchWrite",
2436
2436
  "httpMethod": "POST",
2437
2437
  "id": "spanner.projects.instances.databases.sessions.batchWrite",
@@ -2489,7 +2489,7 @@
2489
2489
  ]
2490
2490
  },
2491
2491
  "commit": {
2492
- "description": "Commits a transaction. The request includes the mutations to be applied to rows in the database. `Commit` might return an `ABORTED` error. This can occur at any time; commonly, the cause is conflicts with concurrent transactions. However, it can also happen for a variety of other reasons. If `Commit` returns `ABORTED`, the caller should re-attempt the transaction from the beginning, re-using the same session. On very rare occasions, `Commit` might return `UNKNOWN`. This can happen, for example, if the client job experiences a 1+ hour networking failure. At that point, Cloud Spanner has lost track of the transaction outcome and we recommend that you perform another read from the database to see the state of things as they are now.",
2492
+ "description": "Commits a transaction. The request includes the mutations to be applied to rows in the database. `Commit` might return an `ABORTED` error. This can occur at any time; commonly, the cause is conflicts with concurrent transactions. However, it can also happen for a variety of other reasons. If `Commit` returns `ABORTED`, the caller should retry the transaction from the beginning, reusing the same session. On very rare occasions, `Commit` might return `UNKNOWN`. This can happen, for example, if the client job experiences a 1+ hour networking failure. At that point, Cloud Spanner has lost track of the transaction outcome and we recommend that you perform another read from the database to see the state of things as they are now.",
2493
2493
  "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:commit",
2494
2494
  "httpMethod": "POST",
2495
2495
  "id": "spanner.projects.instances.databases.sessions.commit",
@@ -2518,7 +2518,7 @@
2518
2518
  ]
2519
2519
  },
2520
2520
  "create": {
2521
- "description": "Creates a new session. A session can be used to perform transactions that read and/or modify data in a Cloud Spanner database. Sessions are meant to be reused for many consecutive transactions. Sessions can only execute one transaction at a time. To execute multiple concurrent read-write/write-only transactions, create multiple sessions. Note that standalone reads and queries use a transaction internally, and count toward the one transaction limit. Active sessions use additional server resources, so it is a good idea to delete idle and unneeded sessions. Aside from explicit deletes, Cloud Spanner may delete sessions for which no operations are sent for more than an hour. If a session is deleted, requests to it return `NOT_FOUND`. Idle sessions can be kept alive by sending a trivial SQL query periodically, e.g., `\"SELECT 1\"`.",
2521
+ "description": "Creates a new session. A session can be used to perform transactions that read and/or modify data in a Cloud Spanner database. Sessions are meant to be reused for many consecutive transactions. Sessions can only execute one transaction at a time. To execute multiple concurrent read-write/write-only transactions, create multiple sessions. Note that standalone reads and queries use a transaction internally, and count toward the one transaction limit. Active sessions use additional server resources, so it's a good idea to delete idle and unneeded sessions. Aside from explicit deletes, Cloud Spanner can delete sessions when no operations are sent for more than an hour. If a session is deleted, requests to it return `NOT_FOUND`. Idle sessions can be kept alive by sending a trivial SQL query periodically, for example, `\"SELECT 1\"`.",
2522
2522
  "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions",
2523
2523
  "httpMethod": "POST",
2524
2524
  "id": "spanner.projects.instances.databases.sessions.create",
@@ -2547,7 +2547,7 @@
2547
2547
  ]
2548
2548
  },
2549
2549
  "delete": {
2550
- "description": "Ends a session, releasing server resources associated with it. This will asynchronously trigger cancellation of any operations that are running with this session.",
2550
+ "description": "Ends a session, releasing server resources associated with it. This asynchronously triggers the cancellation of any operations that are running with this session.",
2551
2551
  "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}",
2552
2552
  "httpMethod": "DELETE",
2553
2553
  "id": "spanner.projects.instances.databases.sessions.delete",
@@ -2602,7 +2602,7 @@
2602
2602
  ]
2603
2603
  },
2604
2604
  "executeSql": {
2605
- "description": "Executes an SQL statement, returning all results in a single reply. This method cannot be used to return a result set larger than 10 MiB; if the query yields more data than that, the query fails with a `FAILED_PRECONDITION` error. Operations inside read-write transactions might return `ABORTED`. If this occurs, the application should restart the transaction from the beginning. See Transaction for more details. Larger result sets can be fetched in streaming fashion by calling ExecuteStreamingSql instead. The query string can be SQL or [Graph Query Language (GQL)](https://cloud.google.com/spanner/docs/reference/standard-sql/graph-intro).",
2605
+ "description": "Executes an SQL statement, returning all results in a single reply. This method can't be used to return a result set larger than 10 MiB; if the query yields more data than that, the query fails with a `FAILED_PRECONDITION` error. Operations inside read-write transactions might return `ABORTED`. If this occurs, the application should restart the transaction from the beginning. See Transaction for more details. Larger result sets can be fetched in streaming fashion by calling ExecuteStreamingSql instead. The query string can be SQL or [Graph Query Language (GQL)](https://cloud.google.com/spanner/docs/reference/standard-sql/graph-intro).",
2606
2606
  "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:executeSql",
2607
2607
  "httpMethod": "POST",
2608
2608
  "id": "spanner.projects.instances.databases.sessions.executeSql",
@@ -2660,7 +2660,7 @@
2660
2660
  ]
2661
2661
  },
2662
2662
  "get": {
2663
- "description": "Gets a session. Returns `NOT_FOUND` if the session does not exist. This is mainly useful for determining whether a session is still alive.",
2663
+ "description": "Gets a session. Returns `NOT_FOUND` if the session doesn't exist. This is mainly useful for determining whether a session is still alive.",
2664
2664
  "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}",
2665
2665
  "httpMethod": "GET",
2666
2666
  "id": "spanner.projects.instances.databases.sessions.get",
@@ -2728,7 +2728,7 @@
2728
2728
  ]
2729
2729
  },
2730
2730
  "partitionQuery": {
2731
- "description": "Creates a set of partition tokens that can be used to execute a query operation in parallel. Each of the returned partition tokens can be used by ExecuteStreamingSql to specify a subset of the query result to read. The same session and read-only transaction must be used by the PartitionQueryRequest used to create the partition tokens and the ExecuteSqlRequests that use the partition tokens. Partition tokens become invalid when the session used to create them is deleted, is idle for too long, begins a new transaction, or becomes too old. When any of these happen, it is not possible to resume the query, and the whole operation must be restarted from the beginning.",
2731
+ "description": "Creates a set of partition tokens that can be used to execute a query operation in parallel. Each of the returned partition tokens can be used by ExecuteStreamingSql to specify a subset of the query result to read. The same session and read-only transaction must be used by the `PartitionQueryRequest` used to create the partition tokens and the `ExecuteSqlRequests` that use the partition tokens. Partition tokens become invalid when the session used to create them is deleted, is idle for too long, begins a new transaction, or becomes too old. When any of these happen, it isn't possible to resume the query, and the whole operation must be restarted from the beginning.",
2732
2732
  "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:partitionQuery",
2733
2733
  "httpMethod": "POST",
2734
2734
  "id": "spanner.projects.instances.databases.sessions.partitionQuery",
@@ -2757,7 +2757,7 @@
2757
2757
  ]
2758
2758
  },
2759
2759
  "partitionRead": {
2760
- "description": "Creates a set of partition tokens that can be used to execute a read operation in parallel. Each of the returned partition tokens can be used by StreamingRead to specify a subset of the read result to read. The same session and read-only transaction must be used by the PartitionReadRequest used to create the partition tokens and the ReadRequests that use the partition tokens. There are no ordering guarantees on rows returned among the returned partition tokens, or even within each individual StreamingRead call issued with a partition_token. Partition tokens become invalid when the session used to create them is deleted, is idle for too long, begins a new transaction, or becomes too old. When any of these happen, it is not possible to resume the read, and the whole operation must be restarted from the beginning.",
2760
+ "description": "Creates a set of partition tokens that can be used to execute a read operation in parallel. Each of the returned partition tokens can be used by StreamingRead to specify a subset of the read result to read. The same session and read-only transaction must be used by the `PartitionReadRequest` used to create the partition tokens and the `ReadRequests` that use the partition tokens. There are no ordering guarantees on rows returned among the returned partition tokens, or even within each individual `StreamingRead` call issued with a `partition_token`. Partition tokens become invalid when the session used to create them is deleted, is idle for too long, begins a new transaction, or becomes too old. When any of these happen, it isn't possible to resume the read, and the whole operation must be restarted from the beginning.",
2761
2761
  "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:partitionRead",
2762
2762
  "httpMethod": "POST",
2763
2763
  "id": "spanner.projects.instances.databases.sessions.partitionRead",
@@ -2786,7 +2786,7 @@
2786
2786
  ]
2787
2787
  },
2788
2788
  "read": {
2789
- "description": "Reads rows from the database using key lookups and scans, as a simple key/value style alternative to ExecuteSql. This method cannot be used to return a result set larger than 10 MiB; if the read matches more data than that, the read fails with a `FAILED_PRECONDITION` error. Reads inside read-write transactions might return `ABORTED`. If this occurs, the application should restart the transaction from the beginning. See Transaction for more details. Larger result sets can be yielded in streaming fashion by calling StreamingRead instead.",
2789
+ "description": "Reads rows from the database using key lookups and scans, as a simple key/value style alternative to ExecuteSql. This method can't be used to return a result set larger than 10 MiB; if the read matches more data than that, the read fails with a `FAILED_PRECONDITION` error. Reads inside read-write transactions might return `ABORTED`. If this occurs, the application should restart the transaction from the beginning. See Transaction for more details. Larger result sets can be yielded in streaming fashion by calling StreamingRead instead.",
2790
2790
  "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:read",
2791
2791
  "httpMethod": "POST",
2792
2792
  "id": "spanner.projects.instances.databases.sessions.read",
@@ -2815,7 +2815,7 @@
2815
2815
  ]
2816
2816
  },
2817
2817
  "rollback": {
2818
- "description": "Rolls back a transaction, releasing any locks it holds. It is a good idea to call this for any transaction that includes one or more Read or ExecuteSql requests and ultimately decides not to commit. `Rollback` returns `OK` if it successfully aborts the transaction, the transaction was already aborted, or the transaction is not found. `Rollback` never returns `ABORTED`.",
2818
+ "description": "Rolls back a transaction, releasing any locks it holds. It's a good idea to call this for any transaction that includes one or more Read or ExecuteSql requests and ultimately decides not to commit. `Rollback` returns `OK` if it successfully aborts the transaction, the transaction was already aborted, or the transaction isn't found. `Rollback` never returns `ABORTED`.",
2819
2819
  "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/sessions/{sessionsId}:rollback",
2820
2820
  "httpMethod": "POST",
2821
2821
  "id": "spanner.projects.instances.databases.sessions.rollback",
@@ -3406,7 +3406,7 @@
3406
3406
  }
3407
3407
  }
3408
3408
  },
3409
- "revision": "20250220",
3409
+ "revision": "20250304",
3410
3410
  "rootUrl": "https://spanner.googleapis.com/",
3411
3411
  "schemas": {
3412
3412
  "AdaptMessageRequest": {
@@ -3814,13 +3814,13 @@
3814
3814
  "id": "BatchCreateSessionsRequest",
3815
3815
  "properties": {
3816
3816
  "sessionCount": {
3817
- "description": "Required. The number of sessions to be created in this batch call. The API may return fewer than the requested number of sessions. If a specific number of sessions are desired, the client can make additional calls to BatchCreateSessions (adjusting session_count as necessary).",
3817
+ "description": "Required. The number of sessions to be created in this batch call. The API can return fewer than the requested number of sessions. If a specific number of sessions are desired, the client can make additional calls to `BatchCreateSessions` (adjusting session_count as necessary).",
3818
3818
  "format": "int32",
3819
3819
  "type": "integer"
3820
3820
  },
3821
3821
  "sessionTemplate": {
3822
3822
  "$ref": "Session",
3823
- "description": "Parameters to be applied to each created session."
3823
+ "description": "Parameters to apply to each created session."
3824
3824
  }
3825
3825
  },
3826
3826
  "type": "object"
@@ -3844,7 +3844,7 @@
3844
3844
  "id": "BatchWriteRequest",
3845
3845
  "properties": {
3846
3846
  "excludeTxnFromChangeStreams": {
3847
- "description": "Optional. When `exclude_txn_from_change_streams` is set to `true`: * Modifications from all transactions in this batch write operation will not be recorded in change streams with DDL option `allow_txn_exclusion=true` that are tracking columns modified by these transactions. * Modifications from all transactions in this batch write operation will be recorded in change streams with DDL option `allow_txn_exclusion=false or not set` that are tracking columns modified by these transactions. When `exclude_txn_from_change_streams` is set to `false` or not set, Modifications from all transactions in this batch write operation will be recorded in all change streams that are tracking columns modified by these transactions.",
3847
+ "description": "Optional. When `exclude_txn_from_change_streams` is set to `true`: * Modifications from all transactions in this batch write operation are not be recorded in change streams with DDL option `allow_txn_exclusion=true` that are tracking columns modified by these transactions. * Modifications from all transactions in this batch write operation are recorded in change streams with DDL option `allow_txn_exclusion=false or not set` that are tracking columns modified by these transactions. When `exclude_txn_from_change_streams` is set to `false` or not set, Modifications from all transactions in this batch write operation are recorded in all change streams that are tracking columns modified by these transactions.",
3848
3848
  "type": "boolean"
3849
3849
  },
3850
3850
  "mutationGroups": {
@@ -3891,7 +3891,7 @@
3891
3891
  "properties": {
3892
3892
  "mutationKey": {
3893
3893
  "$ref": "Mutation",
3894
- "description": "Optional. Required for read-write transactions on a multiplexed session that commit mutations but do not perform any reads or queries. Clients should randomly select one of the mutations from the mutation set and send it as a part of this request."
3894
+ "description": "Optional. Required for read-write transactions on a multiplexed session that commit mutations but don't perform any reads or queries. You must randomly select one of the mutations from the mutation set and send it as a part of this request."
3895
3895
  },
3896
3896
  "options": {
3897
3897
  "$ref": "TransactionOptions",
@@ -3899,7 +3899,7 @@
3899
3899
  },
3900
3900
  "requestOptions": {
3901
3901
  "$ref": "RequestOptions",
3902
- "description": "Common options for this request. Priority is ignored for this request. Setting the priority in this request_options struct will not do anything. To set the priority for a transaction, set it on the reads and writes that are part of this transaction instead."
3902
+ "description": "Common options for this request. Priority is ignored for this request. Setting the priority in this `request_options` struct doesn't do anything. To set the priority for a transaction, set it on the reads and writes that are part of this transaction instead."
3903
3903
  }
3904
3904
  },
3905
3905
  "type": "object"
@@ -3991,7 +3991,7 @@
3991
3991
  "id": "CommitRequest",
3992
3992
  "properties": {
3993
3993
  "maxCommitDelay": {
3994
- "description": "Optional. The amount of latency this request is configured to incur in order to improve throughput. If this field is not set, Spanner assumes requests are relatively latency sensitive and automatically determines an appropriate delay time. You can specify a commit delay value between 0 and 500 ms.",
3994
+ "description": "Optional. The amount of latency this request is configured to incur in order to improve throughput. If this field isn't set, Spanner assumes requests are relatively latency sensitive and automatically determines an appropriate delay time. You can specify a commit delay value between 0 and 500 ms.",
3995
3995
  "format": "google-duration",
3996
3996
  "type": "string"
3997
3997
  },
@@ -4004,19 +4004,19 @@
4004
4004
  },
4005
4005
  "precommitToken": {
4006
4006
  "$ref": "MultiplexedSessionPrecommitToken",
4007
- "description": "Optional. If the read-write transaction was executed on a multiplexed session, the precommit token with the highest sequence number received in this transaction attempt, should be included here. Failing to do so will result in a FailedPrecondition error."
4007
+ "description": "Optional. If the read-write transaction was executed on a multiplexed session, then you must include the precommit token with the highest sequence number received in this transaction attempt. Failing to do so results in a `FailedPrecondition` error."
4008
4008
  },
4009
4009
  "requestOptions": {
4010
4010
  "$ref": "RequestOptions",
4011
4011
  "description": "Common options for this request."
4012
4012
  },
4013
4013
  "returnCommitStats": {
4014
- "description": "If `true`, then statistics related to the transaction will be included in the CommitResponse. Default value is `false`.",
4014
+ "description": "If `true`, then statistics related to the transaction is included in the CommitResponse. Default value is `false`.",
4015
4015
  "type": "boolean"
4016
4016
  },
4017
4017
  "singleUseTransaction": {
4018
4018
  "$ref": "TransactionOptions",
4019
- "description": "Execute mutations in a temporary transaction. Note that unlike commit of a previously-started transaction, commit with a temporary transaction is non-idempotent. That is, if the `CommitRequest` is sent to Cloud Spanner more than once (for instance, due to retries in the application, or in the transport library), it is possible that the mutations are executed more than once. If this is undesirable, use BeginTransaction and Commit instead."
4019
+ "description": "Execute mutations in a temporary transaction. Note that unlike commit of a previously-started transaction, commit with a temporary transaction is non-idempotent. That is, if the `CommitRequest` is sent to Cloud Spanner more than once (for instance, due to retries in the application, or in the transport library), it's possible that the mutations are executed more than once. If this is undesirable, use BeginTransaction and Commit instead."
4020
4020
  },
4021
4021
  "transactionId": {
4022
4022
  "description": "Commit a previously-started transaction.",
@@ -4032,7 +4032,7 @@
4032
4032
  "properties": {
4033
4033
  "commitStats": {
4034
4034
  "$ref": "CommitStats",
4035
- "description": "The statistics about this Commit. Not returned by default. For more information, see CommitRequest.return_commit_stats."
4035
+ "description": "The statistics about this `Commit`. Not returned by default. For more information, see CommitRequest.return_commit_stats."
4036
4036
  },
4037
4037
  "commitTimestamp": {
4038
4038
  "description": "The Cloud Spanner timestamp at which the transaction committed.",
@@ -4041,7 +4041,7 @@
4041
4041
  },
4042
4042
  "precommitToken": {
4043
4043
  "$ref": "MultiplexedSessionPrecommitToken",
4044
- "description": "If specified, transaction has not committed yet. Clients must retry the commit with the new precommit token."
4044
+ "description": "If specified, transaction has not committed yet. You must retry the commit with the new precommit token."
4045
4045
  }
4046
4046
  },
4047
4047
  "type": "object"
@@ -4658,16 +4658,16 @@
4658
4658
  "type": "object"
4659
4659
  },
4660
4660
  "DirectedReadOptions": {
4661
- "description": "The DirectedReadOptions can be used to indicate which replicas or regions should be used for non-transactional reads or queries. DirectedReadOptions may only be specified for a read-only transaction, otherwise the API will return an `INVALID_ARGUMENT` error.",
4661
+ "description": "The `DirectedReadOptions` can be used to indicate which replicas or regions should be used for non-transactional reads or queries. `DirectedReadOptions` can only be specified for a read-only transaction, otherwise the API returns an `INVALID_ARGUMENT` error.",
4662
4662
  "id": "DirectedReadOptions",
4663
4663
  "properties": {
4664
4664
  "excludeReplicas": {
4665
4665
  "$ref": "ExcludeReplicas",
4666
- "description": "Exclude_replicas indicates that specified replicas should be excluded from serving requests. Spanner will not route requests to the replicas in this list."
4666
+ "description": "`Exclude_replicas` indicates that specified replicas should be excluded from serving requests. Spanner doesn't route requests to the replicas in this list."
4667
4667
  },
4668
4668
  "includeReplicas": {
4669
4669
  "$ref": "IncludeReplicas",
4670
- "description": "Include_replicas indicates the order of replicas (as they appear in this list) to process the request. If auto_failover_disabled is set to true and all replicas are exhausted without finding a healthy replica, Spanner will wait for a replica in the list to become available, requests may fail due to `DEADLINE_EXCEEDED` errors."
4670
+ "description": "`Include_replicas` indicates the order of replicas (as they appear in this list) to process the request. If `auto_failover_disabled` is set to `true` and all replicas are exhausted without finding a healthy replica, Spanner waits for a replica in the list to become available, requests might fail due to `DEADLINE_EXCEEDED` errors."
4671
4671
  }
4672
4672
  },
4673
4673
  "type": "object"
@@ -4753,7 +4753,7 @@
4753
4753
  "id": "ExecuteBatchDmlRequest",
4754
4754
  "properties": {
4755
4755
  "lastStatements": {
4756
- "description": "Optional. If set to true, this request marks the end of the transaction. The transaction should be committed or aborted after these statements execute, and attempts to execute any other requests against this transaction (including reads and queries) will be rejected. Setting this option may cause some error reporting to be deferred until commit time (e.g. validation of unique constraints). Given this, successful execution of statements should not be assumed until a subsequent Commit call completes successfully.",
4756
+ "description": "Optional. If set to `true`, this request marks the end of the transaction. After these statements execute, you must commit or abort the transaction. Attempts to execute any other requests against this transaction (including reads and queries) are rejected. Setting this option might cause some error reporting to be deferred until commit time (for example, validation of unique constraints). Given this, successful execution of statements shouldn't be assumed until a subsequent `Commit` call completes successfully.",
4757
4757
  "type": "boolean"
4758
4758
  },
4759
4759
  "requestOptions": {
@@ -4761,7 +4761,7 @@
4761
4761
  "description": "Common options for this request."
4762
4762
  },
4763
4763
  "seqno": {
4764
- "description": "Required. A per-transaction sequence number used to identify this request. This field makes each request idempotent such that if the request is received multiple times, at most one will succeed. The sequence number must be monotonically increasing within the transaction. If a request arrives for the first time with an out-of-order sequence number, the transaction may be aborted. Replays of previously handled requests will yield the same response as the first execution.",
4764
+ "description": "Required. A per-transaction sequence number used to identify this request. This field makes each request idempotent such that if the request is received multiple times, at most one succeeds. The sequence number must be monotonically increasing within the transaction. If a request arrives for the first time with an out-of-order sequence number, the transaction might be aborted. Replays of previously handled requests yield the same response as the first execution.",
4765
4765
  "format": "int64",
4766
4766
  "type": "string"
4767
4767
  },
@@ -4785,7 +4785,7 @@
4785
4785
  "properties": {
4786
4786
  "precommitToken": {
4787
4787
  "$ref": "MultiplexedSessionPrecommitToken",
4788
- "description": "Optional. A precommit token will be included if the read-write transaction is on a multiplexed session. The precommit token with the highest sequence number from this transaction attempt should be passed to the Commit request for this transaction."
4788
+ "description": "Optional. A precommit token is included if the read-write transaction is on a multiplexed session. Pass the precommit token with the highest sequence number from this transaction attempt should be passed to the Commit request for this transaction."
4789
4789
  },
4790
4790
  "resultSets": {
4791
4791
  "description": "One ResultSet for each statement in the request that ran successfully, in the same order as the statements in the request. Each ResultSet does not contain any rows. The ResultSetStats in each ResultSet contain the number of rows modified by the statement. Only the first ResultSet in the response contains valid ResultSetMetadata.",
@@ -4806,7 +4806,7 @@
4806
4806
  "id": "ExecuteSqlRequest",
4807
4807
  "properties": {
4808
4808
  "dataBoostEnabled": {
4809
- "description": "If this is for a partitioned query and this field is set to `true`, the request is executed with Spanner Data Boost independent compute resources. If the field is set to `true` but the request does not set `partition_token`, the API returns an `INVALID_ARGUMENT` error.",
4809
+ "description": "If this is for a partitioned query and this field is set to `true`, the request is executed with Spanner Data Boost independent compute resources. If the field is set to `true` but the request doesn't set `partition_token`, the API returns an `INVALID_ARGUMENT` error.",
4810
4810
  "type": "boolean"
4811
4811
  },
4812
4812
  "directedReadOptions": {
@@ -4814,14 +4814,14 @@
4814
4814
  "description": "Directed read options for this request."
4815
4815
  },
4816
4816
  "lastStatement": {
4817
- "description": "Optional. If set to true, this statement marks the end of the transaction. The transaction should be committed or aborted after this statement executes, and attempts to execute any other requests against this transaction (including reads and queries) will be rejected. For DML statements, setting this option may cause some error reporting to be deferred until commit time (e.g. validation of unique constraints). Given this, successful execution of a DML statement should not be assumed until a subsequent Commit call completes successfully.",
4817
+ "description": "Optional. If set to `true`, this statement marks the end of the transaction. After this statement executes, you must commit or abort the transaction. Attempts to execute any other requests against this transaction (including reads and queries) are rejected. For DML statements, setting this option might cause some error reporting to be deferred until commit time (for example, validation of unique constraints). Given this, successful execution of a DML statement shouldn't be assumed until a subsequent `Commit` call completes successfully.",
4818
4818
  "type": "boolean"
4819
4819
  },
4820
4820
  "paramTypes": {
4821
4821
  "additionalProperties": {
4822
4822
  "$ref": "Type"
4823
4823
  },
4824
- "description": "It is not always possible for Cloud Spanner to infer the right SQL type from a JSON value. For example, values of type `BYTES` and values of type `STRING` both appear in params as JSON strings. In these cases, `param_types` can be used to specify the exact SQL type for some or all of the SQL statement parameters. See the definition of Type for more information about SQL types.",
4824
+ "description": "It isn't always possible for Cloud Spanner to infer the right SQL type from a JSON value. For example, values of type `BYTES` and values of type `STRING` both appear in params as JSON strings. In these cases, you can use `param_types` to specify the exact SQL type for some or all of the SQL statement parameters. See the definition of Type for more information about SQL types.",
4825
4825
  "type": "object"
4826
4826
  },
4827
4827
  "params": {
@@ -4829,11 +4829,11 @@
4829
4829
  "description": "Properties of the object.",
4830
4830
  "type": "any"
4831
4831
  },
4832
- "description": "Parameter names and values that bind to placeholders in the SQL string. A parameter placeholder consists of the `@` character followed by the parameter name (for example, `@firstName`). Parameter names must conform to the naming requirements of identifiers as specified at https://cloud.google.com/spanner/docs/lexical#identifiers. Parameters can appear anywhere that a literal value is expected. The same parameter name can be used more than once, for example: `\"WHERE id > @msg_id AND id < @msg_id + 100\"` It is an error to execute a SQL statement with unbound parameters.",
4832
+ "description": "Parameter names and values that bind to placeholders in the SQL string. A parameter placeholder consists of the `@` character followed by the parameter name (for example, `@firstName`). Parameter names must conform to the naming requirements of identifiers as specified at https://cloud.google.com/spanner/docs/lexical#identifiers. Parameters can appear anywhere that a literal value is expected. The same parameter name can be used more than once, for example: `\"WHERE id > @msg_id AND id < @msg_id + 100\"` It's an error to execute a SQL statement with unbound parameters.",
4833
4833
  "type": "object"
4834
4834
  },
4835
4835
  "partitionToken": {
4836
- "description": "If present, results will be restricted to the specified partition previously created using PartitionQuery(). There must be an exact match for the values of fields common to this message and the PartitionQueryRequest message used to create this partition_token.",
4836
+ "description": "If present, results are restricted to the specified partition previously created using `PartitionQuery`. There must be an exact match for the values of fields common to this message and the `PartitionQueryRequest` message used to create this `partition_token`.",
4837
4837
  "format": "byte",
4838
4838
  "type": "string"
4839
4839
  },
@@ -4849,7 +4849,7 @@
4849
4849
  "enumDescriptions": [
4850
4850
  "The default mode. Only the statement results are returned.",
4851
4851
  "This mode returns only the query plan, without any results or execution statistics information.",
4852
- "This mode returns the query plan, overall execution statistics, operator level execution statistics along with the results. This has a performance overhead compared to the other modes. It is not recommended to use this mode for production traffic.",
4852
+ "This mode returns the query plan, overall execution statistics, operator level execution statistics along with the results. This has a performance overhead compared to the other modes. It isn't recommended to use this mode for production traffic.",
4853
4853
  "This mode returns the overall (but not operator-level) execution statistics along with the results.",
4854
4854
  "This mode returns the query plan, overall (but not operator-level) execution statistics along with the results."
4855
4855
  ],
@@ -4869,7 +4869,7 @@
4869
4869
  "type": "string"
4870
4870
  },
4871
4871
  "seqno": {
4872
- "description": "A per-transaction sequence number used to identify this request. This field makes each request idempotent such that if the request is received multiple times, at most one will succeed. The sequence number must be monotonically increasing within the transaction. If a request arrives for the first time with an out-of-order sequence number, the transaction may be aborted. Replays of previously handled requests will yield the same response as the first execution. Required for DML statements. Ignored for queries.",
4872
+ "description": "A per-transaction sequence number used to identify this request. This field makes each request idempotent such that if the request is received multiple times, at most one succeeds. The sequence number must be monotonically increasing within the transaction. If a request arrives for the first time with an out-of-order sequence number, the transaction can be aborted. Replays of previously handled requests yield the same response as the first execution. Required for DML statements. Ignored for queries.",
4873
4873
  "format": "int64",
4874
4874
  "type": "string"
4875
4875
  },
@@ -5004,11 +5004,11 @@
5004
5004
  "type": "object"
5005
5005
  },
5006
5006
  "IncludeReplicas": {
5007
- "description": "An IncludeReplicas contains a repeated set of ReplicaSelection which indicates the order in which replicas should be considered.",
5007
+ "description": "An `IncludeReplicas` contains a repeated set of `ReplicaSelection` which indicates the order in which replicas should be considered.",
5008
5008
  "id": "IncludeReplicas",
5009
5009
  "properties": {
5010
5010
  "autoFailoverDisabled": {
5011
- "description": "If true, Spanner will not route requests to a replica outside the include_replicas list when all of the specified replicas are unavailable or unhealthy. Default value is `false`.",
5011
+ "description": "If `true`, Spanner doesn't route requests to a replica outside the <`include_replicas` list when all of the specified replicas are unavailable or unhealthy. Default value is `false`.",
5012
5012
  "type": "boolean"
5013
5013
  },
5014
5014
  "replicaSelections": {
@@ -5999,7 +5999,7 @@
5999
5999
  "type": "object"
6000
6000
  },
6001
6001
  "MultiplexedSessionPrecommitToken": {
6002
- "description": "When a read-write transaction is executed on a multiplexed session, this precommit token is sent back to the client as a part of the [Transaction] message in the BeginTransaction response and also as a part of the [ResultSet] and [PartialResultSet] responses.",
6002
+ "description": "When a read-write transaction is executed on a multiplexed session, this precommit token is sent back to the client as a part of the Transaction message in the BeginTransaction response and also as a part of the ResultSet and PartialResultSet responses.",
6003
6003
  "id": "MultiplexedSessionPrecommitToken",
6004
6004
  "properties": {
6005
6005
  "precommitToken": {
@@ -6136,13 +6136,17 @@
6136
6136
  "description": "If true, then the final value in values is chunked, and must be combined with more values from subsequent `PartialResultSet`s to obtain a complete field value.",
6137
6137
  "type": "boolean"
6138
6138
  },
6139
+ "last": {
6140
+ "description": "Optional. Indicates whether this is the last `PartialResultSet` in the stream. The server might optionally set this field. Clients shouldn't rely on this field being set in all cases.",
6141
+ "type": "boolean"
6142
+ },
6139
6143
  "metadata": {
6140
6144
  "$ref": "ResultSetMetadata",
6141
6145
  "description": "Metadata about the result set, such as row type information. Only present in the first response."
6142
6146
  },
6143
6147
  "precommitToken": {
6144
6148
  "$ref": "MultiplexedSessionPrecommitToken",
6145
- "description": "Optional. A precommit token will be included if the read-write transaction is on a multiplexed session. The precommit token with the highest sequence number from this transaction attempt should be passed to the Commit request for this transaction."
6149
+ "description": "Optional. A precommit token is included if the read-write transaction has multiplexed sessions enabled. Pass the precommit token with the highest sequence number from this transaction attempt to the Commit request for this transaction."
6146
6150
  },
6147
6151
  "resumeToken": {
6148
6152
  "description": "Streaming calls might be interrupted for a variety of reasons, such as TCP connection loss. If this occurs, the stream of results can be resumed by re-sending the original request and including `resume_token`. Note that executing any other transaction in the same session invalidates the token.",
@@ -6151,10 +6155,10 @@
6151
6155
  },
6152
6156
  "stats": {
6153
6157
  "$ref": "ResultSetStats",
6154
- "description": "Query plan and execution statistics for the statement that produced this streaming result set. These can be requested by setting ExecuteSqlRequest.query_mode and are sent only once with the last response in the stream. This field will also be present in the last response for DML statements."
6158
+ "description": "Query plan and execution statistics for the statement that produced this streaming result set. These can be requested by setting ExecuteSqlRequest.query_mode and are sent only once with the last response in the stream. This field is also present in the last response for DML statements."
6155
6159
  },
6156
6160
  "values": {
6157
- "description": "A streamed result set consists of a stream of values, which might be split into many `PartialResultSet` messages to accommodate large rows and/or large values. Every N complete values defines a row, where N is equal to the number of entries in metadata.row_type.fields. Most values are encoded based on type as described here. It is possible that the last value in values is \"chunked\", meaning that the rest of the value is sent in subsequent `PartialResultSet`(s). This is denoted by the chunked_value field. Two or more chunked values can be merged to form a complete value as follows: * `bool/number/null`: cannot be chunked * `string`: concatenate the strings * `list`: concatenate the lists. If the last element in a list is a `string`, `list`, or `object`, merge it with the first element in the next list by applying these rules recursively. * `object`: concatenate the (field name, field value) pairs. If a field name is duplicated, then apply these rules recursively to merge the field values. Some examples of merging: # Strings are concatenated. \"foo\", \"bar\" => \"foobar\" # Lists of non-strings are concatenated. [2, 3], [4] => [2, 3, 4] # Lists are concatenated, but the last and first elements are merged # because they are strings. [\"a\", \"b\"], [\"c\", \"d\"] => [\"a\", \"bc\", \"d\"] # Lists are concatenated, but the last and first elements are merged # because they are lists. Recursively, the last and first elements # of the inner lists are merged because they are strings. [\"a\", [\"b\", \"c\"]], [[\"d\"], \"e\"] => [\"a\", [\"b\", \"cd\"], \"e\"] # Non-overlapping object fields are combined. {\"a\": \"1\"}, {\"b\": \"2\"} => {\"a\": \"1\", \"b\": 2\"} # Overlapping object fields are merged. {\"a\": \"1\"}, {\"a\": \"2\"} => {\"a\": \"12\"} # Examples of merging objects containing lists of strings. {\"a\": [\"1\"]}, {\"a\": [\"2\"]} => {\"a\": [\"12\"]} For a more complete example, suppose a streaming SQL query is yielding a result set whose rows contain a single string field. The following `PartialResultSet`s might be yielded: { \"metadata\": { ... } \"values\": [\"Hello\", \"W\"] \"chunked_value\": true \"resume_token\": \"Af65...\" } { \"values\": [\"orl\"] \"chunked_value\": true } { \"values\": [\"d\"] \"resume_token\": \"Zx1B...\" } This sequence of `PartialResultSet`s encodes two rows, one containing the field value `\"Hello\"`, and a second containing the field value `\"World\" = \"W\" + \"orl\" + \"d\"`. Not all `PartialResultSet`s contain a `resume_token`. Execution can only be resumed from a previously yielded `resume_token`. For the above sequence of `PartialResultSet`s, resuming the query with `\"resume_token\": \"Af65...\"` will yield results from the `PartialResultSet` with value `[\"orl\"]`.",
6161
+ "description": "A streamed result set consists of a stream of values, which might be split into many `PartialResultSet` messages to accommodate large rows and/or large values. Every N complete values defines a row, where N is equal to the number of entries in metadata.row_type.fields. Most values are encoded based on type as described here. It's possible that the last value in values is \"chunked\", meaning that the rest of the value is sent in subsequent `PartialResultSet`(s). This is denoted by the chunked_value field. Two or more chunked values can be merged to form a complete value as follows: * `bool/number/null`: can't be chunked * `string`: concatenate the strings * `list`: concatenate the lists. If the last element in a list is a `string`, `list`, or `object`, merge it with the first element in the next list by applying these rules recursively. * `object`: concatenate the (field name, field value) pairs. If a field name is duplicated, then apply these rules recursively to merge the field values. Some examples of merging: Strings are concatenated. \"foo\", \"bar\" => \"foobar\" Lists of non-strings are concatenated. [2, 3], [4] => [2, 3, 4] Lists are concatenated, but the last and first elements are merged because they are strings. [\"a\", \"b\"], [\"c\", \"d\"] => [\"a\", \"bc\", \"d\"] Lists are concatenated, but the last and first elements are merged because they are lists. Recursively, the last and first elements of the inner lists are merged because they are strings. [\"a\", [\"b\", \"c\"]], [[\"d\"], \"e\"] => [\"a\", [\"b\", \"cd\"], \"e\"] Non-overlapping object fields are combined. {\"a\": \"1\"}, {\"b\": \"2\"} => {\"a\": \"1\", \"b\": 2\"} Overlapping object fields are merged. {\"a\": \"1\"}, {\"a\": \"2\"} => {\"a\": \"12\"} Examples of merging objects containing lists of strings. {\"a\": [\"1\"]}, {\"a\": [\"2\"]} => {\"a\": [\"12\"]} For a more complete example, suppose a streaming SQL query is yielding a result set whose rows contain a single string field. The following `PartialResultSet`s might be yielded: { \"metadata\": { ... } \"values\": [\"Hello\", \"W\"] \"chunked_value\": true \"resume_token\": \"Af65...\" } { \"values\": [\"orl\"] \"chunked_value\": true } { \"values\": [\"d\"] \"resume_token\": \"Zx1B...\" } This sequence of `PartialResultSet`s encodes two rows, one containing the field value `\"Hello\"`, and a second containing the field value `\"World\" = \"W\" + \"orl\" + \"d\"`. Not all `PartialResultSet`s contain a `resume_token`. Execution can only be resumed from a previously yielded `resume_token`. For the above sequence of `PartialResultSet`s, resuming the query with `\"resume_token\": \"Af65...\"` yields results from the `PartialResultSet` with value \"orl\".",
6158
6162
  "items": {
6159
6163
  "type": "any"
6160
6164
  },
@@ -6168,7 +6172,7 @@
6168
6172
  "id": "Partition",
6169
6173
  "properties": {
6170
6174
  "partitionToken": {
6171
- "description": "This token can be passed to Read, StreamingRead, ExecuteSql, or ExecuteStreamingSql requests to restrict the results to those identified by this partition token.",
6175
+ "description": "This token can be passed to `Read`, `StreamingRead`, `ExecuteSql`, or `ExecuteStreamingSql` requests to restrict the results to those identified by this partition token.",
6172
6176
  "format": "byte",
6173
6177
  "type": "string"
6174
6178
  }
@@ -6176,16 +6180,16 @@
6176
6180
  "type": "object"
6177
6181
  },
6178
6182
  "PartitionOptions": {
6179
- "description": "Options for a PartitionQueryRequest and PartitionReadRequest.",
6183
+ "description": "Options for a `PartitionQueryRequest` and `PartitionReadRequest`.",
6180
6184
  "id": "PartitionOptions",
6181
6185
  "properties": {
6182
6186
  "maxPartitions": {
6183
- "description": "**Note:** This hint is currently ignored by PartitionQuery and PartitionRead requests. The desired maximum number of partitions to return. For example, this may be set to the number of workers available. The default for this option is currently 10,000. The maximum value is currently 200,000. This is only a hint. The actual number of partitions returned may be smaller or larger than this maximum count request.",
6187
+ "description": "**Note:** This hint is currently ignored by `PartitionQuery` and `PartitionRead` requests. The desired maximum number of partitions to return. For example, this might be set to the number of workers available. The default for this option is currently 10,000. The maximum value is currently 200,000. This is only a hint. The actual number of partitions returned can be smaller or larger than this maximum count request.",
6184
6188
  "format": "int64",
6185
6189
  "type": "string"
6186
6190
  },
6187
6191
  "partitionSizeBytes": {
6188
- "description": "**Note:** This hint is currently ignored by PartitionQuery and PartitionRead requests. The desired data size for each partition generated. The default for this option is currently 1 GiB. This is only a hint. The actual size of each partition may be smaller or larger than this size request.",
6192
+ "description": "**Note:** This hint is currently ignored by `PartitionQuery` and `PartitionRead` requests. The desired data size for each partition generated. The default for this option is currently 1 GiB. This is only a hint. The actual size of each partition can be smaller or larger than this size request.",
6189
6193
  "format": "int64",
6190
6194
  "type": "string"
6191
6195
  }
@@ -6200,7 +6204,7 @@
6200
6204
  "additionalProperties": {
6201
6205
  "$ref": "Type"
6202
6206
  },
6203
- "description": "It is not always possible for Cloud Spanner to infer the right SQL type from a JSON value. For example, values of type `BYTES` and values of type `STRING` both appear in params as JSON strings. In these cases, `param_types` can be used to specify the exact SQL type for some or all of the SQL query parameters. See the definition of Type for more information about SQL types.",
6207
+ "description": "It isn't always possible for Cloud Spanner to infer the right SQL type from a JSON value. For example, values of type `BYTES` and values of type `STRING` both appear in params as JSON strings. In these cases, `param_types` can be used to specify the exact SQL type for some or all of the SQL query parameters. See the definition of Type for more information about SQL types.",
6204
6208
  "type": "object"
6205
6209
  },
6206
6210
  "params": {
@@ -6208,7 +6212,7 @@
6208
6212
  "description": "Properties of the object.",
6209
6213
  "type": "any"
6210
6214
  },
6211
- "description": "Parameter names and values that bind to placeholders in the SQL string. A parameter placeholder consists of the `@` character followed by the parameter name (for example, `@firstName`). Parameter names can contain letters, numbers, and underscores. Parameters can appear anywhere that a literal value is expected. The same parameter name can be used more than once, for example: `\"WHERE id > @msg_id AND id < @msg_id + 100\"` It is an error to execute a SQL statement with unbound parameters.",
6215
+ "description": "Parameter names and values that bind to placeholders in the SQL string. A parameter placeholder consists of the `@` character followed by the parameter name (for example, `@firstName`). Parameter names can contain letters, numbers, and underscores. Parameters can appear anywhere that a literal value is expected. The same parameter name can be used more than once, for example: `\"WHERE id > @msg_id AND id < @msg_id + 100\"` It's an error to execute a SQL statement with unbound parameters.",
6212
6216
  "type": "object"
6213
6217
  },
6214
6218
  "partitionOptions": {
@@ -6216,12 +6220,12 @@
6216
6220
  "description": "Additional options that affect how many partitions are created."
6217
6221
  },
6218
6222
  "sql": {
6219
- "description": "Required. The query request to generate partitions for. The request fails if the query is not root partitionable. For a query to be root partitionable, it needs to satisfy a few conditions. For example, if the query execution plan contains a distributed union operator, then it must be the first operator in the plan. For more information about other conditions, see [Read data in parallel](https://cloud.google.com/spanner/docs/reads#read_data_in_parallel). The query request must not contain DML commands, such as `INSERT`, `UPDATE`, or `DELETE`. Use `ExecuteStreamingSql` with a PartitionedDml transaction for large, partition-friendly DML operations.",
6223
+ "description": "Required. The query request to generate partitions for. The request fails if the query isn't root partitionable. For a query to be root partitionable, it needs to satisfy a few conditions. For example, if the query execution plan contains a distributed union operator, then it must be the first operator in the plan. For more information about other conditions, see [Read data in parallel](https://cloud.google.com/spanner/docs/reads#read_data_in_parallel). The query request must not contain DML commands, such as `INSERT`, `UPDATE`, or `DELETE`. Use `ExecuteStreamingSql` with a `PartitionedDml` transaction for large, partition-friendly DML operations.",
6220
6224
  "type": "string"
6221
6225
  },
6222
6226
  "transaction": {
6223
6227
  "$ref": "TransactionSelector",
6224
- "description": "Read only snapshot transactions are supported, read/write and single use transactions are not."
6228
+ "description": "Read-only snapshot transactions are supported, read and write and single-use transactions are not."
6225
6229
  }
6226
6230
  },
6227
6231
  "type": "object"
@@ -6243,7 +6247,7 @@
6243
6247
  },
6244
6248
  "keySet": {
6245
6249
  "$ref": "KeySet",
6246
- "description": "Required. `key_set` identifies the rows to be yielded. `key_set` names the primary keys of the rows in table to be yielded, unless index is present. If index is present, then key_set instead names index keys in index. It is not an error for the `key_set` to name rows that do not exist in the database. Read yields nothing for nonexistent rows."
6250
+ "description": "Required. `key_set` identifies the rows to be yielded. `key_set` names the primary keys of the rows in table to be yielded, unless index is present. If index is present, then key_set instead names index keys in index. It isn't an error for the `key_set` to name rows that don't exist in the database. Read yields nothing for nonexistent rows."
6247
6251
  },
6248
6252
  "partitionOptions": {
6249
6253
  "$ref": "PartitionOptions",
@@ -6414,11 +6418,11 @@
6414
6418
  "id": "QueryOptions",
6415
6419
  "properties": {
6416
6420
  "optimizerStatisticsPackage": {
6417
- "description": "An option to control the selection of optimizer statistics package. This parameter allows individual queries to use a different query optimizer statistics package. Specifying `latest` as a value instructs Cloud Spanner to use the latest generated statistics package. If not specified, Cloud Spanner uses the statistics package set at the database level options, or the latest package if the database option is not set. The statistics package requested by the query has to be exempt from garbage collection. This can be achieved with the following DDL statement: ``` ALTER STATISTICS SET OPTIONS (allow_gc=false) ``` The list of available statistics packages can be queried from `INFORMATION_SCHEMA.SPANNER_STATISTICS`. Executing a SQL statement with an invalid optimizer statistics package or with a statistics package that allows garbage collection fails with an `INVALID_ARGUMENT` error.",
6421
+ "description": "An option to control the selection of optimizer statistics package. This parameter allows individual queries to use a different query optimizer statistics package. Specifying `latest` as a value instructs Cloud Spanner to use the latest generated statistics package. If not specified, Cloud Spanner uses the statistics package set at the database level options, or the latest package if the database option isn't set. The statistics package requested by the query has to be exempt from garbage collection. This can be achieved with the following DDL statement: ```sql ALTER STATISTICS SET OPTIONS (allow_gc=false) ``` The list of available statistics packages can be queried from `INFORMATION_SCHEMA.SPANNER_STATISTICS`. Executing a SQL statement with an invalid optimizer statistics package or with a statistics package that allows garbage collection fails with an `INVALID_ARGUMENT` error.",
6418
6422
  "type": "string"
6419
6423
  },
6420
6424
  "optimizerVersion": {
6421
- "description": "An option to control the selection of optimizer version. This parameter allows individual queries to pick different query optimizer versions. Specifying `latest` as a value instructs Cloud Spanner to use the latest supported query optimizer version. If not specified, Cloud Spanner uses the optimizer version set at the database level options. Any other positive integer (from the list of supported optimizer versions) overrides the default optimizer version for query execution. The list of supported optimizer versions can be queried from SPANNER_SYS.SUPPORTED_OPTIMIZER_VERSIONS. Executing a SQL statement with an invalid optimizer version fails with an `INVALID_ARGUMENT` error. See https://cloud.google.com/spanner/docs/query-optimizer/manage-query-optimizer for more information on managing the query optimizer. The `optimizer_version` statement hint has precedence over this setting.",
6425
+ "description": "An option to control the selection of optimizer version. This parameter allows individual queries to pick different query optimizer versions. Specifying `latest` as a value instructs Cloud Spanner to use the latest supported query optimizer version. If not specified, Cloud Spanner uses the optimizer version set at the database level options. Any other positive integer (from the list of supported optimizer versions) overrides the default optimizer version for query execution. The list of supported optimizer versions can be queried from `SPANNER_SYS.SUPPORTED_OPTIMIZER_VERSIONS`. Executing a SQL statement with an invalid optimizer version fails with an `INVALID_ARGUMENT` error. See https://cloud.google.com/spanner/docs/query-optimizer/manage-query-optimizer for more information on managing the query optimizer. The `optimizer_version` statement hint has precedence over this setting.",
6422
6426
  "type": "string"
6423
6427
  }
6424
6428
  },
@@ -6542,7 +6546,7 @@
6542
6546
  "type": "array"
6543
6547
  },
6544
6548
  "dataBoostEnabled": {
6545
- "description": "If this is for a partitioned read and this field is set to `true`, the request is executed with Spanner Data Boost independent compute resources. If the field is set to `true` but the request does not set `partition_token`, the API returns an `INVALID_ARGUMENT` error.",
6549
+ "description": "If this is for a partitioned read and this field is set to `true`, the request is executed with Spanner Data Boost independent compute resources. If the field is set to `true` but the request doesn't set `partition_token`, the API returns an `INVALID_ARGUMENT` error.",
6546
6550
  "type": "boolean"
6547
6551
  },
6548
6552
  "directedReadOptions": {
@@ -6555,10 +6559,10 @@
6555
6559
  },
6556
6560
  "keySet": {
6557
6561
  "$ref": "KeySet",
6558
- "description": "Required. `key_set` identifies the rows to be yielded. `key_set` names the primary keys of the rows in table to be yielded, unless index is present. If index is present, then key_set instead names index keys in index. If the partition_token field is empty, rows are yielded in table primary key order (if index is empty) or index key order (if index is non-empty). If the partition_token field is not empty, rows will be yielded in an unspecified order. It is not an error for the `key_set` to name rows that do not exist in the database. Read yields nothing for nonexistent rows."
6562
+ "description": "Required. `key_set` identifies the rows to be yielded. `key_set` names the primary keys of the rows in table to be yielded, unless index is present. If index is present, then key_set instead names index keys in index. If the partition_token field is empty, rows are yielded in table primary key order (if index is empty) or index key order (if index is non-empty). If the partition_token field isn't empty, rows are yielded in an unspecified order. It isn't an error for the `key_set` to name rows that don't exist in the database. Read yields nothing for nonexistent rows."
6559
6563
  },
6560
6564
  "limit": {
6561
- "description": "If greater than zero, only the first `limit` rows are yielded. If `limit` is zero, the default is no limit. A limit cannot be specified if `partition_token` is set.",
6565
+ "description": "If greater than zero, only the first `limit` rows are yielded. If `limit` is zero, the default is no limit. A limit can't be specified if `partition_token` is set.",
6562
6566
  "format": "int64",
6563
6567
  "type": "string"
6564
6568
  },
@@ -6570,28 +6574,28 @@
6570
6574
  "LOCK_HINT_EXCLUSIVE"
6571
6575
  ],
6572
6576
  "enumDescriptions": [
6573
- "Default value. LOCK_HINT_UNSPECIFIED is equivalent to LOCK_HINT_SHARED.",
6577
+ "Default value. `LOCK_HINT_UNSPECIFIED` is equivalent to `LOCK_HINT_SHARED`.",
6574
6578
  "Acquire shared locks. By default when you perform a read as part of a read-write transaction, Spanner acquires shared read locks, which allows other reads to still access the data until your transaction is ready to commit. When your transaction is committing and writes are being applied, the transaction attempts to upgrade to an exclusive lock for any data you are writing. For more information about locks, see [Lock modes](https://cloud.google.com/spanner/docs/introspection/lock-statistics#explain-lock-modes).",
6575
- "Acquire exclusive locks. Requesting exclusive locks is beneficial if you observe high write contention, which means you notice that multiple transactions are concurrently trying to read and write to the same data, resulting in a large number of aborts. This problem occurs when two transactions initially acquire shared locks and then both try to upgrade to exclusive locks at the same time. In this situation both transactions are waiting for the other to give up their lock, resulting in a deadlocked situation. Spanner is able to detect this occurring and force one of the transactions to abort. However, this is a slow and expensive operation and results in lower performance. In this case it makes sense to acquire exclusive locks at the start of the transaction because then when multiple transactions try to act on the same data, they automatically get serialized. Each transaction waits its turn to acquire the lock and avoids getting into deadlock situations. Because the exclusive lock hint is just a hint, it should not be considered equivalent to a mutex. In other words, you should not use Spanner exclusive locks as a mutual exclusion mechanism for the execution of code outside of Spanner. **Note:** Request exclusive locks judiciously because they block others from reading that data for the entire transaction, rather than just when the writes are being performed. Unless you observe high write contention, you should use the default of shared read locks so you don't prematurely block other clients from reading the data that you're writing to."
6579
+ "Acquire exclusive locks. Requesting exclusive locks is beneficial if you observe high write contention, which means you notice that multiple transactions are concurrently trying to read and write to the same data, resulting in a large number of aborts. This problem occurs when two transactions initially acquire shared locks and then both try to upgrade to exclusive locks at the same time. In this situation both transactions are waiting for the other to give up their lock, resulting in a deadlocked situation. Spanner is able to detect this occurring and force one of the transactions to abort. However, this is a slow and expensive operation and results in lower performance. In this case it makes sense to acquire exclusive locks at the start of the transaction because then when multiple transactions try to act on the same data, they automatically get serialized. Each transaction waits its turn to acquire the lock and avoids getting into deadlock situations. Because the exclusive lock hint is just a hint, it shouldn't be considered equivalent to a mutex. In other words, you shouldn't use Spanner exclusive locks as a mutual exclusion mechanism for the execution of code outside of Spanner. **Note:** Request exclusive locks judiciously because they block others from reading that data for the entire transaction, rather than just when the writes are being performed. Unless you observe high write contention, you should use the default of shared read locks so you don't prematurely block other clients from reading the data that you're writing to."
6576
6580
  ],
6577
6581
  "type": "string"
6578
6582
  },
6579
6583
  "orderBy": {
6580
- "description": "Optional. Order for the returned rows. By default, Spanner will return result rows in primary key order except for PartitionRead requests. For applications that do not require rows to be returned in primary key (`ORDER_BY_PRIMARY_KEY`) order, setting `ORDER_BY_NO_ORDER` option allows Spanner to optimize row retrieval, resulting in lower latencies in certain cases (e.g. bulk point lookups).",
6584
+ "description": "Optional. Order for the returned rows. By default, Spanner returns result rows in primary key order except for PartitionRead requests. For applications that don't require rows to be returned in primary key (`ORDER_BY_PRIMARY_KEY`) order, setting `ORDER_BY_NO_ORDER` option allows Spanner to optimize row retrieval, resulting in lower latencies in certain cases (for example, bulk point lookups).",
6581
6585
  "enum": [
6582
6586
  "ORDER_BY_UNSPECIFIED",
6583
6587
  "ORDER_BY_PRIMARY_KEY",
6584
6588
  "ORDER_BY_NO_ORDER"
6585
6589
  ],
6586
6590
  "enumDescriptions": [
6587
- "Default value. ORDER_BY_UNSPECIFIED is equivalent to ORDER_BY_PRIMARY_KEY.",
6588
- "Read rows are returned in primary key order. In the event that this option is used in conjunction with the `partition_token` field, the API will return an `INVALID_ARGUMENT` error.",
6591
+ "Default value. `ORDER_BY_UNSPECIFIED` is equivalent to `ORDER_BY_PRIMARY_KEY`.",
6592
+ "Read rows are returned in primary key order. In the event that this option is used in conjunction with the `partition_token` field, the API returns an `INVALID_ARGUMENT` error.",
6589
6593
  "Read rows are returned in any order."
6590
6594
  ],
6591
6595
  "type": "string"
6592
6596
  },
6593
6597
  "partitionToken": {
6594
- "description": "If present, results will be restricted to the specified partition previously created using PartitionRead(). There must be an exact match for the values of fields common to this message and the PartitionReadRequest message used to create this partition_token.",
6598
+ "description": "If present, results are restricted to the specified partition previously created using `PartitionRead`. There must be an exact match for the values of fields common to this message and the PartitionReadRequest message used to create this partition_token.",
6595
6599
  "format": "byte",
6596
6600
  "type": "string"
6597
6601
  },
@@ -6632,9 +6636,9 @@
6632
6636
  "OPTIMISTIC"
6633
6637
  ],
6634
6638
  "enumDescriptions": [
6635
- "Default value. If the value is not specified, the pessimistic read lock is used.",
6636
- "Pessimistic lock mode. Read locks are acquired immediately on read.",
6637
- "Optimistic lock mode. Locks for reads within the transaction are not acquired on read. Instead the locks are acquired on a commit to validate that read/queried data has not changed since the transaction started."
6639
+ "Default value. * If isolation level is REPEATABLE_READ, then it is an error to specify `read_lock_mode`. Locking semantics default to `OPTIMISTIC`. No validation checks are done for reads, except to validate that the data that was served at the snapshot time is unchanged at commit time in the following cases: 1. reads done as part of queries that use `SELECT FOR UPDATE` 2. reads done as part of statements with a `LOCK_SCANNED_RANGES` hint 3. reads done as part of DML statements * At all other isolation levels, if `read_lock_mode` is the default value, then pessimistic read locks are used.",
6640
+ "Pessimistic lock mode. Read locks are acquired immediately on read. Semantics described only applies to SERIALIZABLE isolation.",
6641
+ "Optimistic lock mode. Locks for reads within the transaction are not acquired on read. Instead the locks are acquired on a commit to validate that read/queried data has not changed since the transaction started. Semantics described only applies to SERIALIZABLE isolation."
6638
6642
  ],
6639
6643
  "type": "string"
6640
6644
  }
@@ -6693,11 +6697,11 @@
6693
6697
  "type": "object"
6694
6698
  },
6695
6699
  "ReplicaSelection": {
6696
- "description": "The directed read replica selector. Callers must provide one or more of the following fields for replica selection: * `location` - The location must be one of the regions within the multi-region configuration of your database. * `type` - The type of the replica. Some examples of using replica_selectors are: * `location:us-east1` --> The \"us-east1\" replica(s) of any available type will be used to process the request. * `type:READ_ONLY` --> The \"READ_ONLY\" type replica(s) in nearest available location will be used to process the request. * `location:us-east1 type:READ_ONLY` --> The \"READ_ONLY\" type replica(s) in location \"us-east1\" will be used to process the request.",
6700
+ "description": "The directed read replica selector. Callers must provide one or more of the following fields for replica selection: * `location` - The location must be one of the regions within the multi-region configuration of your database. * `type` - The type of the replica. Some examples of using replica_selectors are: * `location:us-east1` --> The \"us-east1\" replica(s) of any available type is used to process the request. * `type:READ_ONLY` --> The \"READ_ONLY\" type replica(s) in the nearest available location are used to process the request. * `location:us-east1 type:READ_ONLY` --> The \"READ_ONLY\" type replica(s) in location \"us-east1\" is used to process the request.",
6697
6701
  "id": "ReplicaSelection",
6698
6702
  "properties": {
6699
6703
  "location": {
6700
- "description": "The location or region of the serving requests, e.g. \"us-east1\".",
6704
+ "description": "The location or region of the serving requests, for example, \"us-east1\".",
6701
6705
  "type": "string"
6702
6706
  },
6703
6707
  "type": {
@@ -6738,11 +6742,11 @@
6738
6742
  "type": "string"
6739
6743
  },
6740
6744
  "requestTag": {
6741
- "description": "A per-request tag which can be applied to queries or reads, used for statistics collection. Both request_tag and transaction_tag can be specified for a read or query that belongs to a transaction. This field is ignored for requests where it's not applicable (e.g. CommitRequest). Legal characters for `request_tag` values are all printable characters (ASCII 32 - 126) and the length of a request_tag is limited to 50 characters. Values that exceed this limit are truncated. Any leading underscore (_) characters will be removed from the string.",
6745
+ "description": "A per-request tag which can be applied to queries or reads, used for statistics collection. Both `request_tag` and `transaction_tag` can be specified for a read or query that belongs to a transaction. This field is ignored for requests where it's not applicable (for example, `CommitRequest`). Legal characters for `request_tag` values are all printable characters (ASCII 32 - 126) and the length of a request_tag is limited to 50 characters. Values that exceed this limit are truncated. Any leading underscore (_) characters are removed from the string.",
6742
6746
  "type": "string"
6743
6747
  },
6744
6748
  "transactionTag": {
6745
- "description": "A tag used for statistics collection about this transaction. Both request_tag and transaction_tag can be specified for a read or query that belongs to a transaction. The value of transaction_tag should be the same for all requests belonging to the same transaction. If this request doesn't belong to any transaction, transaction_tag will be ignored. Legal characters for `transaction_tag` values are all printable characters (ASCII 32 - 126) and the length of a transaction_tag is limited to 50 characters. Values that exceed this limit are truncated. Any leading underscore (_) characters will be removed from the string.",
6749
+ "description": "A tag used for statistics collection about this transaction. Both `request_tag` and `transaction_tag` can be specified for a read or query that belongs to a transaction. The value of transaction_tag should be the same for all requests belonging to the same transaction. If this request doesn't belong to any transaction, `transaction_tag` is ignored. Legal characters for `transaction_tag` values are all printable characters (ASCII 32 - 126) and the length of a `transaction_tag` is limited to 50 characters. Values that exceed this limit are truncated. Any leading underscore (_) characters are removed from the string.",
6746
6750
  "type": "string"
6747
6751
  }
6748
6752
  },
@@ -6874,7 +6878,7 @@
6874
6878
  },
6875
6879
  "precommitToken": {
6876
6880
  "$ref": "MultiplexedSessionPrecommitToken",
6877
- "description": "Optional. A precommit token will be included if the read-write transaction is on a multiplexed session. The precommit token with the highest sequence number from this transaction attempt should be passed to the Commit request for this transaction."
6881
+ "description": "Optional. A precommit token is included if the read-write transaction is on a multiplexed session. Pass the precommit token with the highest sequence number from this transaction attempt to the Commit request for this transaction."
6878
6882
  },
6879
6883
  "rows": {
6880
6884
  "description": "Each element in `rows` is a row whose format is defined by metadata.row_type. The ith element in each row matches the ith field in metadata.row_type. Elements are encoded based on type as described here.",
@@ -6888,7 +6892,7 @@
6888
6892
  },
6889
6893
  "stats": {
6890
6894
  "$ref": "ResultSetStats",
6891
- "description": "Query plan and execution statistics for the SQL statement that produced this result set. These can be requested by setting ExecuteSqlRequest.query_mode. DML statements always produce stats containing the number of rows modified, unless executed using the ExecuteSqlRequest.QueryMode.PLAN ExecuteSqlRequest.query_mode. Other fields may or may not be populated, based on the ExecuteSqlRequest.query_mode."
6895
+ "description": "Query plan and execution statistics for the SQL statement that produced this result set. These can be requested by setting ExecuteSqlRequest.query_mode. DML statements always produce stats containing the number of rows modified, unless executed using the ExecuteSqlRequest.QueryMode.PLAN ExecuteSqlRequest.query_mode. Other fields might or might not be populated, based on the ExecuteSqlRequest.query_mode."
6892
6896
  }
6893
6897
  },
6894
6898
  "type": "object"
@@ -6934,7 +6938,7 @@
6934
6938
  "type": "string"
6935
6939
  },
6936
6940
  "rowCountLowerBound": {
6937
- "description": "Partitioned DML does not offer exactly-once semantics, so it returns a lower bound of the rows modified.",
6941
+ "description": "Partitioned DML doesn't offer exactly-once semantics, so it returns a lower bound of the rows modified.",
6938
6942
  "format": "int64",
6939
6943
  "type": "string"
6940
6944
  }
@@ -7013,7 +7017,7 @@
7013
7017
  "id": "Session",
7014
7018
  "properties": {
7015
7019
  "approximateLastUseTime": {
7016
- "description": "Output only. The approximate timestamp when the session is last used. It is typically earlier than the actual last use time.",
7020
+ "description": "Output only. The approximate timestamp when the session is last used. It's typically earlier than the actual last use time.",
7017
7021
  "format": "google-datetime",
7018
7022
  "readOnly": true,
7019
7023
  "type": "string"
@@ -7036,7 +7040,7 @@
7036
7040
  "type": "object"
7037
7041
  },
7038
7042
  "multiplexed": {
7039
- "description": "Optional. If true, specifies a multiplexed session. Use a multiplexed session for multiple, concurrent read-only operations. Don't use them for read-write transactions, partitioned reads, or partitioned queries. Use `sessions.create` to create multiplexed sessions. Don't use BatchCreateSessions to create a multiplexed session. You can't delete or list multiplexed sessions.",
7043
+ "description": "Optional. If `true`, specifies a multiplexed session. Use a multiplexed session for multiple, concurrent read-only operations. Don't use them for read-write transactions, partitioned reads, or partitioned queries. Use `sessions.create` to create multiplexed sessions. Don't use BatchCreateSessions to create a multiplexed session. You can't delete or list multiplexed sessions.",
7040
7044
  "type": "boolean"
7041
7045
  },
7042
7046
  "name": {
@@ -7123,7 +7127,7 @@
7123
7127
  "additionalProperties": {
7124
7128
  "$ref": "Type"
7125
7129
  },
7126
- "description": "It is not always possible for Cloud Spanner to infer the right SQL type from a JSON value. For example, values of type `BYTES` and values of type `STRING` both appear in params as JSON strings. In these cases, `param_types` can be used to specify the exact SQL type for some or all of the SQL statement parameters. See the definition of Type for more information about SQL types.",
7130
+ "description": "It isn't always possible for Cloud Spanner to infer the right SQL type from a JSON value. For example, values of type `BYTES` and values of type `STRING` both appear in params as JSON strings. In these cases, `param_types` can be used to specify the exact SQL type for some or all of the SQL statement parameters. See the definition of Type for more information about SQL types.",
7127
7131
  "type": "object"
7128
7132
  },
7129
7133
  "params": {
@@ -7131,7 +7135,7 @@
7131
7135
  "description": "Properties of the object.",
7132
7136
  "type": "any"
7133
7137
  },
7134
- "description": "Parameter names and values that bind to placeholders in the DML string. A parameter placeholder consists of the `@` character followed by the parameter name (for example, `@firstName`). Parameter names can contain letters, numbers, and underscores. Parameters can appear anywhere that a literal value is expected. The same parameter name can be used more than once, for example: `\"WHERE id > @msg_id AND id < @msg_id + 100\"` It is an error to execute a SQL statement with unbound parameters.",
7138
+ "description": "Parameter names and values that bind to placeholders in the DML string. A parameter placeholder consists of the `@` character followed by the parameter name (for example, `@firstName`). Parameter names can contain letters, numbers, and underscores. Parameters can appear anywhere that a literal value is expected. The same parameter name can be used more than once, for example: `\"WHERE id > @msg_id AND id < @msg_id + 100\"` It's an error to execute a SQL statement with unbound parameters.",
7135
7139
  "type": "object"
7136
7140
  },
7137
7141
  "sql": {
@@ -7239,6 +7243,20 @@
7239
7243
  "description": "When `exclude_txn_from_change_streams` is set to `true`: * Modifications from this transaction will not be recorded in change streams with DDL option `allow_txn_exclusion=true` that are tracking columns modified by these transactions. * Modifications from this transaction will be recorded in change streams with DDL option `allow_txn_exclusion=false or not set` that are tracking columns modified by these transactions. When `exclude_txn_from_change_streams` is set to `false` or not set, Modifications from this transaction will be recorded in all change streams that are tracking columns modified by these transactions. `exclude_txn_from_change_streams` may only be specified for read-write or partitioned-dml transactions, otherwise the API will return an `INVALID_ARGUMENT` error.",
7240
7244
  "type": "boolean"
7241
7245
  },
7246
+ "isolationLevel": {
7247
+ "description": "Isolation level for the transaction.",
7248
+ "enum": [
7249
+ "ISOLATION_LEVEL_UNSPECIFIED",
7250
+ "SERIALIZABLE",
7251
+ "REPEATABLE_READ"
7252
+ ],
7253
+ "enumDescriptions": [
7254
+ "Default value. If the value is not specified, the `SERIALIZABLE` isolation level is used.",
7255
+ "All transactions appear as if they executed in a serial order, even if some of the reads, writes, and other operations of distinct transactions actually occurred in parallel. Spanner assigns commit timestamps that reflect the order of committed transactions to implement this property. Spanner offers a stronger guarantee than serializability called external consistency. For further details, please refer to https://cloud.google.com/spanner/docs/true-time-external-consistency#serializability.",
7256
+ "All reads performed during the transaction observe a consistent snapshot of the database, and the transaction will only successfully commit in the absence of conflicts between its updates and any concurrent updates that have occurred since that snapshot. Consequently, in contrast to `SERIALIZABLE` transactions, only write-write conflicts are detected in snapshot transactions. This isolation level does not support Read-only and Partitioned DML transactions. When `REPEATABLE_READ` is specified on a read-write transaction, the locking semantics default to `OPTIMISTIC`."
7257
+ ],
7258
+ "type": "string"
7259
+ },
7242
7260
  "partitionedDml": {
7243
7261
  "$ref": "PartitionedDml",
7244
7262
  "description": "Partitioned DML transaction. Authorization to begin a Partitioned DML transaction requires `spanner.databases.beginPartitionedDmlTransaction` permission on the `session` resource."